LaTeX入门笔记第一篇:TeX家族

TeX家族的工具一共分为五个层次:引擎、格式、宏包、周边工具、发行版。

引擎(Engine)

引擎(Engine),或者称呼为编译器,是真正完成排版的程序。TeX所使用的引擎有多种不同的选择。

  • TeX的初始原版引擎是Knuth TeX,只是这个最原始的引擎作为老古董基本不用了。
  • 现在所认为的标准的基本TeX引擎是e-TeX,之后的引擎都是在这个引擎的基础上开发的。e-TeX引擎只能输出dvi文件,dvi即DeVice Independent。
  • pdfTeX是对e-TeX改进后的引擎,它可以直接输出pdf文件,也可以直接输出dvi文件,但pdfTeX及之前的TeX引擎只支持ACSII字符,从而无法直接输出非英文字符。
  • 同时从pdfTeX开始,引擎支持microtype宏包以完成更美观的排版。
  • XeTeX引擎对字符显示做出了改进,全面支持Unicode,避开了之前所用的字体系统,支持调用系统内部字体,也支持OpenType。
  • XeTeX引擎与pdfTeX不同,并不直接输出pdf文件,而是用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格式」所形成的整体。
  • 由于「XeLaTeX」一般会单独称呼,所以日常称呼中的LaTeX通常指的是作为「pdfTeX + LaTeX格式」形成的「pdfLaTeX」。
  • 在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即可,也可以使用Sublime Text、VS Code等。
  • Windows下也可安装MikTeX,它是TeX Live的最小安装版本。如果有尚未安装的、需要的宏包等,MikTeX可以联网下载。
  • Mac下安装基于TeX Live而开发的MacTeX。
  • MacTeX包括三个部分:
    • TeX Live
    • Ghostscript
    • 五个可视化程序
      • 编辑器 TeXShop
      • 宏包管理 TeX Live Utility
      • 数学公式处理 LaTeXiT
      • 文献可视化管理 BibDesk
      • 拼写检查 Ghostscript