我对 TeX 及其后代(LaTeX、pdfTeX/pdfLaTeX、e-TeX、ConTeXt、LuaTeX、ETC。) 是。
有些,比如 LaTeX,看起来像是 TeX 的附加组件(可能改变了眼睛和嘴巴,但不是胃)。其他的,比如 pdfTeX,看起来像是对底层系统的改变(IE,胃部变化)。
有没有好的参考资料可以解释差异和演变?
答案1
TeX 引擎
目前七台发动机常用的可以处理 TeX 输入的二进制文件,尽管并非所有文件的使用程度都相同。
Knuth 的TeX,如所述TeXbook。这当然是权威的 TeX,但只有在使用纯格式时,它才在现代 TeX 发行版中用作标准引擎(IE但
tex <somefile>
没有其他内容)。(Knuth 在 1990 年为 TeX 版本 3 添加了新的原语,因此当今的大多数代码都需要“TeX90”原语。之前的 TeX,即版本 2,也可能称为“TeX82”。TeX90 使用 8 位输入,而 TeX82 是 7 位。)电子特克斯,于 20 世纪 90 年代末发布。它为 TeX 添加了许多额外的原语,例如
\unexpanded
,以及双向排版扩展TeX--XeT
。e-TeX 扩展被整合到所有较新的引擎中,因此 e-TeX 本身并未得到广泛使用:人们主要使用较新的引擎之一。请参阅有关 e-TeX 的英国常见问题解答另一种观点。(注:LuaTeX 不使用 TeX-XeT 方法进行双向排版,因此包括所有 e-TeX 基元除了与 TeX-XeT 相关的。pdfTeX,它整合了 e-TeX,然后添加了许多(主要是)PDF 相关的原语。pdfTeX 可以生成 DVI 和 PDF 输出(人们经常因为引擎名称而忽略这一点)。pdfTeX 是现代 TeX 系统的默认引擎,因此当您执行例如
latex
或pdflatex
时,实际上是 pdfTeX 是执行工作的二进制文件。再次,有一个英国关于 pdfTeX 的常见问题解答。特克斯,它集成了 e-TeX,可以使用原生 UTF-8 输入,并且可以访问系统字体。XeTeX 包含一些 pdfTeX 原语,但目前并非全部(有时名称也会有所不同!)。XeTeX 使用系统相关的库来访问系统字体,这确实使这变得非常容易。
LuaTeX,最初旨在成为 pdfTeX 的 v2,但现在是一种有点独立的方法。LuaTeX 再次整合了 e-TeX 扩展,使用原生 UTF-8 输入,还包含 Lua 脚本引擎。它具有一些 pdfTeX 原语,但其他一些原语已被放弃,转而使用 Lua 脚本。LuaTeX 可以使用 Lua 访问系统字体,而不是通过在二进制文件中构建库来访问。LuaTeX 还融合了一些来自欧米茄和阿莱夫比如多向排版。(Omega 和 Aleph 是早期将 TeX 扩展为非拉丁文字工作和多向排版的尝试。)
特克斯和更新TeX这些是 TeX 的变体,主要为日文排版而编写。pTeX 添加了许多原语,以支持使用“传统”日文编码的垂直排版,而 upTeX 则接受 Unicode 输入(但有一些附加条件:它不是一个“简单”的 Unicode 引擎)。upTeX 还添加了一些其他原语。由于这两个引擎密切相关,因此它们通常被称为 (u)pTeX。pTeX 和 upTeX 都可通过 e-TeX 扩展获得:e-pTeX 和 e-upTeX。对于“常规”工作,建议使用支持 e-TeX 的版本:它们还包含来自 pdfTeX 的交叉兼容性原语。(
expl3
例如,这允许 e-(u)pTeX 与 一起使用。)
如您所见,XeTeX 和 LuaTeX 都是原生 UTF-8 引擎,其中 XeTeX 存在时间更长,目前可能是双向工作中使用最广泛的引擎。两者都可以轻松使用 UTF-8 输入和系统字体。请参阅LuaTeX、ConTeXt 和 XeTeX 之间的区别了解更多信息。
答案2
值得一提的是,我很久以前写过一个网页,简要概述了这些事情:http://tug.org/levels.html。