LaTeX 文档的编译流程
编译
约 721 字大约 2 分钟
2025-12-06
编译 LaTeX 文件
之前曾经提到过,LATEX 写文档有时候和编程一样,于是得到目标格式就需要一个编译的过程。这里有几个概念格式,引擎和驱动。目前,编译 LATEX文档的目标格式通常是 PDF。
先来看格式。TEX 也称为 Plain TeX,是最初高德纳设计的版本。TEX 本身文档是没有章节等结构的,于是后续有人定义了一些控制序列,使得文档可以形成一定的结构,譬如正文之前的导言区,结果产生了 LATEX 和 ConTeXt。此外,TEX 最早的目标格式是 DVI,需要通过 dvips 转换为 PostScript 文件,然后再由 ps2pdf 转换为 PDF。之后出现了 dvipdf,后续为了支持 UTF-8 字体,东亚字体等更加丰富的 PDF 功能出现了 dvipdfm,dvipdvmx,xdvipdfmx。这些把 DVI 格式转换为其他格式的程序称为驱动,PDF 是我们最常用的一种。最后 TeX,以及基于 TeX 的 pdfTeX,LuaTeX 和 XeTeX 这样的引擎,会把 tex 源代码的解析,直到输出成为 PDF 的整个流程串联起来,表现为一个可执行的命令。以下是各种引擎所使用的命令和格式的关系。
| Plain TeX | LaTeX | ConTeXt | |
|---|---|---|---|
| TeX | tex | ||
| pdfTeX | pdftex | pdflatex | texexec |
| XeTeX | xetex | xelatex | 参数设置 |
| LuaTeX | luatex | lualatex | context |
下面这个编译流程可以帮助我们理解从文档到目标格式 PDF 的过程。
我们通常使用 TeX Live 中的 XeLaTeX 来编译文档,它对中文的支持比较好,不需要额外的配置。
Tectonic 是一个新兴的 LATEX 编译工具,它的目标是提供一个快速、简单、可靠的编译流程。它的编译流程和 XeLaTeX 类似,但是不需要安装任何额外的程序。它的编译速度也比 XeLaTeX 快很多。
文件类型
当我们使用 LATEX 时,会涉及到以下文件类型。它们有的是 LATEX 自带的,有的是编译的过程生成的中间文件。
- .sty:宏包
- .cls:文档类
- .aux:辅助交叉引用,需要两次编译才能正常显示
- .log:日志
- .toc:目录
- .lof:图形目录
- .lot:表格目录
- .idx:索引信息
- .ind:索引记录文件
- .ilg:索引日志
- .bib:BibTeX 参考文献数据
- .bbl:生成的参考文献纪律
- .bst:BibTeX 模板
- .blg:BibTeX 日志
- .out:hyperref 宏包生成的泡打粉书签目录
如果我们的编辑环境中安装了 Git,可以将这些文件添加到 .gitignore 文件中,避免提交到版本控制中。
