TeX 实际上是如何工作的?

TeX 实际上是如何工作的?

对人类,尤其是学术界来说,有很多有用的信息。但是,TeX 引擎的底层到底是什么?它到底是如何工作的?它会解析所有内容并将内容放在一起吗?或者有什么特殊的规格信息?!甚至有什么好的资源可以进一步阅读?如何编写一些模块以及如何为社区开发更多的东西?

答案1

TeX 是一个解释器和宏处理器(其规范实现用 WEB(一种 pascal 方言)编写),它接收由文本和宏组成的文本文件以及字体文件(以及一些其他可能的东西)并扩展宏并评估 TeX 语法中定义的一些表达式并生成一系列排版页面的文件描述(通常为 dvi 或 pdf 格式)。

问“TeX 是如何工作的”就像问“C 是如何工作的”或“Fortran 是如何工作的”。这个问题可以从几个层面来回答,首先取决于你是否指的是如何编写宏TeX,或者 TeX 系统如何评估宏。(与询问如何用 C 语言编程或如何编写 C 编译器相比)。TeXBook 和 TeX-The-Program 完整记录了 TeX 语言和 TeX 程序本身。这些书不是免费的(尽管它们的源文本是免费的),但有很多信息,尤其是在这个网站上,关于 TeX 编程的各个方面。


网站上还有其他问题详细说明了 XeTeX、TeX 等之间的差异,但简而言之,经典的 TeX 是在 20 世纪 70 年代至 80 年代编写的,其核心是基于 8 位编码。它可以处理 Unicode 文件,但其内部细节并不理想。XeTeX 是一个基于原始 TeX 源的扩展系统,但尽可能使用 Unicode 编码和系统字体。LuaTeX 是 TeX 的一个独立扩展,同样具有 Unicode 基础,但更激进的是,它还结合了独立的 Lua 编程语言作为传统 TeX 宏语言的替代品。

LaTeX 是迄今为止最流行的使用 TeX 的方式,它是一组宏,也是任何人都可以贡献称为包的额外扩展宏集的机制。


最后一个:-) 这些都不是定义术语,它们只是英语描述,但“引擎”是底层解释器。原始 TeX、pdfTeX(一种接受相同输入但生成 pdf 而不是 dvi 的变体)eTeX(TeX 的变体)和较新的引擎 XeTeX 和 LuaTeX。LaTeX 是用 TeX 宏编写的,因此可以在任何引擎上使用(因此 latex pdflatex xelatex lualatex 它们或多或少都是用 TeX、pdfTeX、XeTeX 和 LuaTeX 处理的相同 TeX 源)。像“MikTeX”或“TeXLive”这样的发行版是您需要的所有文件的完整打包安装、更新机制、匹配的预览器和编辑器等。TeX 程序是一个单一的可执行文件,TeXLive TeX 发行版是一个装满数万(数十万?)个文件的 DVD。

相关内容