latex 引擎
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 方式书写。
- 天然支持 UTF-8 编码 → 中文直接写就能用(配合
- 缺点:
- 有些宏包兼容性稍差(因为最早宏包都是为 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。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
