名词解释

相信你跟我一样,第一次接触LaTeX就被各种名词 (LaTeX、TeX、pdfTeX、MiKTeX)弄乱了。

TeX首先是一种宏语言,同时其也是一种排版引擎。基本的TeX系统只有300多个元命令 (primitive) ,十分精悍,但是很难读懂。

引擎

引擎是真正干活的程序。引擎的基本功能就是解释TeX语法,把字排成行,把行排成页,涉及到断字、断行、分页等算法。最原始的引擎是TeX。

  • TeX:1978年由Donald Erwin Knuth(高德纳)开发。是后来大部分TeX相关的基础。其生成dvi文件,然后经由其他程序转换为pdf文件。
  • pdfTeX:Tex语言的又一个实现,将TeX代码直接编译成PDF文件。
  • XeTeX:TeX 语言的新的实现,支持 Unicode 编码和直接访问操作系统字体。
  • LuaTeX:TeX 语言的一个完整的有扩展的实现。LuaTeX支持Unicode、系统字体和内嵌语言扩展,能直接输出PDF格式文件,也可以仍然输出 DVI 格式。

格式

TeX语言本身只有300个命令,晦涩难懂,只适合非正常的人类。一个简单的符号可能就需要多个命令来实现,可以将这些最基本的命令封装起来做个简写(宏)以实现特殊的目的。一堆简写的合集就构成了格式。格式可以与不同的引擎相结合。

  • Plain TeX:由Don Knuth提供的最小的宏集合。
  • LaTeX:更易于使用的宏集,最常见的一种格式。
  • ConTeXt:另一种常见的格式。

宏包

一些辅助文件,在LaTeX中叫做packages,在ConTeXt中叫做modules。在LaTeX格式中,导言区的usepackage的作用就是引入各种宏包。宏包其实也是一堆基本的TeX命令的集合,只是其不够全,所以称之为宏包而不是格式。

发行版

一个完整的TeX需要最基本的TeX引擎、格式支持、各种辅助宏包、一些转换程序、GUI、编辑器、文档查看器等等。通过选择不同的组合就构成了不同的发行版。

  • TeX Live:支持Linux,Windows,Mac OS
  • MiKTeX:只支持Windows
  • CTeX:CTeX基于MiKTeX,并加入了中文的支持,只支持Windows。同时CTEX是一个网站,ctex是可以很好支持中文的宏包。

其他相关

  • METAFONT:TeX中用来生成字体的程序。
  • MetaPost:用于生成图像。
  • BibTeX:用于生成参考文献。
  • dvipdf:dvi转换成pdf。

表格整理

用表格整理一下

引擎

(Knuth)TeX真正的(原始的)TeX
ε-TeX相对于原始的TeX它提供了一种扩展模式
pdfTeX它从tex文件不通过dvi文件直接生成pdf文件(开发者已经转向LuaTeX)
XeTeX相对于原始的TeX,主要增加了Unicode和 OpenType 的支持
LuaTeX它使用Lua作为扩展语言,对于LaTeX支持尚不完善?
...

宏集

plain TeX最古老的TeX宏集,提供了一些最基本的命令
AMSTeX是美国数学会提供的一个TeX宏集,它添加了许多数学符号和数学字体
LaTeX相对于PlainTeX,它使得科技文档的排版更加直观和方便
ConTeXt和LaTeX 相比,它更加灵活和自由
...

发行版

TeX Live国际TeX用户组织TUG开发,支持不同的操作系统
MiKTeXWindows 下广泛使用的一个TeX发行版
ConTeXt Minimals它包含了最新版本的 ConTeXt
teTeX一个Unix下的TeX发行版,现在已经停止更新且并入TeXLive
fpTeX一个Windows的TeX发行版,已不再更新
...

他们是如何演进的

TeX 演进图 (缩略版)

TeX 演进图 (详细版)

LaTeX 演进图

TeX Live

图来源:https://github.com/alt/tex-overview

你也可以在线查看 pdf文档

参考资料

03-05 16:13