1 latex 引擎的选用

1.1 pdfLaTeX

  • 最传统、最稳定 的引擎(默认 latexmk -pdf 就是用它)。
  • 直接输出 PDF(比传统的 DVI → PS → PDF 流程快很多)。
  • 优点:
    • 速度快、兼容性好,大部分宏包都优先支持。
    • 生成的 PDF 体积小,质量高。
    • 数学排版最成熟。
  • 缺点:
    • 只支持 8-bit 编码(比如 Latin-1),对中文等非西方文字支持差。
    • 字体必须用 .tfm/.pfb 这种老式格式,无法直接用系统字体(宋体、Times New Roman 等要额外配置)。
  • 适用场景:
    • 纯英文论文/书籍。
    • 没有复杂字体需求,或者使用已有的宏包(如 CJK 宏包)处理中文。

1.2 XeLaTeX

  • 基于 XeTeX,现代化的引擎,支持 Unicode。
  • 优点:
    • 天然支持 UTF-8 编码 → 中文直接写就能用(配合 ctex 宏包特别方便)。
    • 能调用系统字体(用 fontspec 就能用 Windows/Mac/Linux 上的字体)。
    • 数学公式也可以用 Unicode 方式书写。
  • 缺点:
    • 有些宏包兼容性稍差(因为最早宏包都是为 pdfLaTeX 写的)。
    • 编译速度比 pdfLaTeX 慢。
  • 适用场景:
    • 中文文档(ctex 推荐 XeLaTeX)。
    • 需要使用自定义字体的文档(比如公司文档要求特定字体)。

1.3 LuaLaTeX

  • 基于 LuaTeX,和 XeLaTeX 类似,也是支持 Unicode 和系统字体。
  • 内置 Lua 脚本引擎 → 可以在排版过程中做编程扩展。
  • 优点:
    • 支持 UTF-8 和系统字体(同 XeLaTeX)。
    • 更强大的扩展能力(比如 luacode 宏包能直接写 Lua 脚本)。
    • 未来的发展方向(LaTeX3 团队倾向推荐 LuaLaTeX)。
  • 缺点:
    • 和 XeLaTeX 一样,部分宏包兼容性不如 pdfLaTeX。
    • 编译速度相对慢。
  • 适用场景:
    • 中文/多语言文档。
    • 需要 Lua 脚本扩展功能的高级排版(比如智能断行、复杂表格生成)。
    • 想跟随 LaTeX 的未来主流趋势。

1.4 总结对比

引擎 字体支持 Unicode/UTF-8 中文支持 宏包兼容性 速度 适用场景
pdfLaTeX 传统 Type1/TFM 很差(需 CJK 宏包) 最好 🚀 快 纯英文文档、经典论文
XeLaTeX 系统字体 (fontspec) ✅ (推荐配合 ctex) 一般 🐢 稍慢 中文文档、需要特殊字体
LuaLaTeX 系统字体 (fontspec) ✅ (推荐配合 ctex) 一般 🐢 稍慢 需要脚本扩展、高级功能

1.5 实际选择指南

  • 英文论文 / 国外期刊模板 → 用 pdfLaTeX(最兼容)。
  • 中文论文 / 报告 → 用 XeLaTeX(配合 ctex 宏包最稳)。
  • 中文 + 特殊需求(脚本扩展 / 新功能) → 用 LuaLaTeX
  • 如果模板(例如 ACM、IEEE)明确要求 pdflatex,那就老老实实用 pdfLaTeX。