我们知道 TeX 家族的引擎是编译 TeX 文件的二进制可执行文件。人们有时会XeLaTeX
提到引擎;那么问题来了:这样称呼XeLaTeX
引擎是错误的吗?如果不是,那么应该怎么称呼它呢?
答案1
这是一个相当基于观点的答案,因为我不确定是否真的有所有这些术语的一般参考。
我通常使用“...TeX”(以交替的大小写字母拼写)来表示语言,即可在该特定 TeX 变体中使用的所有预定义宏、分配、特定原语等的集合。
另一方面,我使用...tex
当我表示特定编译器即实现一组特定原始命令和行为的已编译二进制文件,或者我指的是预编译的格式,它只是编译器使用的一组预编译的定义。
后者使事情变得有点复杂,因为在现代 TeX 发行版中,编译器和格式之间的区别不再那么明显。例如,如果你想编译一个 XeLaTeX 文件,你可以运行类似这样的命令xelatex myfile.tex
。这里的xelatex
行为就像一个编译器,但(据我所知)实际上只是一个围绕xetex
编译器调用的包装二进制文件,它预加载xelatex
格式,进而定义 XeLaTeX 语言使用的所有宏。
由于这种区别,我倾向于避免使用“引擎”一词。人们只能将编译器称为引擎,因为只有它们才能提供编译某种语言文件所需的核心功能。但人们也可以使用该术语来指代编译器和格式,因为对于所有常见的格式变体,从用户的角度来看它们基本上是相同的。至少我永远不会使用“引擎”一词来指代语言。