![有哪些功能是 TeX 可以做而 LaTeX3 做不到的?](https://linux22.com/image/432385/%E6%9C%89%E5%93%AA%E4%BA%9B%E5%8A%9F%E8%83%BD%E6%98%AF%20TeX%20%E5%8F%AF%E4%BB%A5%E5%81%9A%E8%80%8C%20LaTeX3%20%E5%81%9A%E4%B8%8D%E5%88%B0%E7%9A%84%EF%BC%9F.png)
抱歉,我问了这么一个笼统的问题,但说实话,我越来越讨厌用 TeX 编码,尽管我是 LaTeX3 的初级编码员,但我真的很喜欢使用它。
答案1
严格来说,正如评论中提到的,LaTeX3 是 TeX 的超集。因此,如果 TeX 提供了某些功能,那么它也可以在 LaTeX3 中提供。
LaTeX3 编程语法旨在使 TeX 编程的许多方面更加规范和可预测。正如您所注意到的,TeX 的编程风格非常孤岛(我认为最接近的非 TeX 类似物是 C 预处理器,而后者是非图灵完备的,功能不如 TeX 的宏语言)。LaTeX3 试图建立命名和语法的约定,以便在保留 TeX 功能的同时提高编程的表现力。问题的评论给出了一些很好的例子。
我认为,思考 LaTeX3 与 TeX 之间关系的最佳方式是将其与各种 JavaScript 库(例如 jQuery、Prototype、React、Angular 等)与纯 JavaScript 之间的关系进行比较。这些库以在 JavaScript 之上有效地创建一种新的编程语言为代价,对 JavaScript 有点难以驾驭的性质施加了一定程度的秩序,但纯 JS 中可以完成的任何事情都可以用这些库编写的代码访问,同样,LaTeX3 在 TeX 之上创建了一种新语言,同时在必要时保留对其功能的访问。