TeX家族的工具一共分为五个层次:引擎、格式、宏包、周边工具、发行版。
引擎(Engine)
引擎(Engine),或者称呼为编译器,是真正完成排版的程序。TeX所使用的引擎有多种不同的选择。
- TeX的初始原版引擎是Knuth TeX,只是这个最原始的引擎作为老古董基本不用了。
- 现在所认为的标准的基本TeX引擎是e-TeX,之后的引擎都是在这个引擎的基础上开发的。e-TeX引擎只能输出dvi文件,dvi即DeVice Independent。
- pdfTeX是对e-TeX改进后的引擎,它可以直接输出pdf文件,也可以直接输出dvi文件,但pdfTeX及之前Knuth TeX和e-TeX三个引擎只支持ASCII字符,从而无法直接输出非英文字符。
- 同时从pdfTeX开始,引擎支持microtype宏包以完成更美观的排版。
- XeTeX引擎对字符显示做出了改进,全面支持Unicode,避开了之前所用的字体系统,支持调用系统内部字体,也支持OpenType。
- XeTeX引擎与pdfTeX不同,并不直接输出pdf文件,而是输出dvi文件之后用xdvipdfmx将dvi文件转为pdf文件而输出。
- LuaTeX也是pdfTeX的改进后的引擎,在全面支持Unicode的同时,支持Lua脚本,但通常XeTeX的使用频率更高。
格式(Format)
格式(Format)指的是对引擎的一些常用底层宏的集合,比如最常用的Plain TeX和LaTeX。
- Plain TeX是当初Knuth搞出来的,相对复杂,现在已经基本没人用了。
- LaTeX基于Plain TeX开发,拥有比Plain TeX更为规范的命令和一整套预定义的格式。实用度上的巨大提升,以至于现在所有格式中推广程度最大、最常用的就是LaTeX。目前为止的LaTeX完善版本为LaTeX2e。注意,这里的LaTeX均指是「格式」上的LaTeX。
- 在进行文档的写作时,首先要做的是分别挑选引擎和格式,选好之后我们会对这个引擎与格式的整体进行命名:
引擎 | 格式 | 命名 |
---|---|---|
pdfTeX | Plain TeX | pdfTeX |
XeTeX | Plain TeX | XeTeX |
pdfTeX | LaTeX | pdfLaTeX |
XeTeX | LaTeX | XeLaTeX |
- 容易发现,命名和引擎、格式均有重合之处,这也是目前概念混乱、难以厘清的缘由,在各种情况下需要分析其不同的含义。
- 由于Plain TeX基本没人使用,表格前两行的pdfTeX、XeTeX一般均指TeX引擎。
- 而表格后两行的pdfLaTeX、XeLaTeX一般均指「TeX引擎 + LaTeX格式」所形成的整体。
- 日常称呼中的LaTeX通常指的是作为「pdfTeX + LaTeX格式」形成的「pdfLaTeX」,而不是「XeLaTeX」。后者一般会直接称呼「XeLaTeX」。
- 在pdfLaTeX的文本第一行中单独加入
%&latex
后,排版输出的文件就是dvi文件。 - 以及,「编译器」原本指的应该是「TeX引擎」,但在日常称呼中「编译器」也逐渐转指「TeX引擎与格式相结合」的整体。
宏包(Style Package)
宏包(Style Package)指的也是宏的集合,但这些集合一般为了特殊需要而编写。这些宏包通常以.sty为文件后缀。
- 比如为了在LaTeX中,安装ctex宏包后LaTeX即可输出中文汉字字符。
- 可以根据需要,在网上选择不同的宏包进行下载安装。
- 当需要下载的宏包数量非常大时,选择TeX发行版(Distribution)是更好的选择,我们将在之后谈到。
周边工具
周边工具正如其名,是用来负责处理TeX核心功能之外的附属内容,而这些内容通常TeX本身较难处理。
- 比如著名的BibTeX,处理论文的引用文献标注
- Makeindex,用来生成目录
发行版(Distribution)
当需要单独下载的宏包以及其他周边工具变得繁杂时,发行版(Distribution)便应运而生了。发行版指的就是一个大的整合包,里面把TeX家族的引擎、格式、宏包、扩展工具等全部包括进去了。
- Windows中通常安装TeX Live。编辑器使用TeX Live安装的TeXworks即可,也可以使用TeX Studio、Sublime Text、VS Code等。
- Windows下也可安装MikTeX,它是TeX Live的最小安装版本。如果有尚未安装的、需要的宏包等,MikTeX可以联网下载。
- Mac下安装基于TeX Live而开发的MacTeX。
- MacTeX包括三个部分:
- TeX Live
- Ghostscript
- 五个可视化程序
- 编辑器 TeXShop
- 宏包管理 TeX Live Utility
- 数学公式处理 LaTeXiT
- 文献可视化管理 BibDesk
- 拼写检查 Ghostscript