![为什么在普通的技术文档中需要 Lua 或 LaTeX3?](https://linux22.com/image/239743/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8%E6%99%AE%E9%80%9A%E7%9A%84%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3%E4%B8%AD%E9%9C%80%E8%A6%81%20Lua%20%E6%88%96%20LaTeX3%EF%BC%9F.png)
我用 XeLaTeX 编写并维护了一份几百页的计算机相关技术规范。我使用表格、图形、位域、算法和其他典型的装饰。我对 LuaTeX 和 LaTeX3 很感兴趣,但老实说,我不知道这些会给我这样的文档带来什么好处。我是否要用更少的资源做更多的事情?取代不雅的文档策略?有没有人能举出 LaTeX3 对普通技术文档的好处的例子?
我已经通过过去的编程工作了解并尊重 Lua。我缺少的是日常文档的适用性。
答案1
Lua 和 LaTeX3 的开发是分开的,但两者在解决 LaTeX 程序员的问题方面存在一些共同点。此外,您从这些开发中看到的好处取决于文档的性质。
LuaTeX 增加了 TeX 的其他功能,但同时也使通用编程变得容易得多。通用编程内容有助于软件包作者。例如,Lua 在fontspec
加载到 LuaLaTeX 中时用于查找字体系统。一些新功能出现在 TeX“力不从心”的特定领域。其中一个突出的领域是阿拉伯语排版,它非常依赖于上下文,而 TeX 在这方面做得并不好。基于 LuaTeX 的方法可以解决这类问题。
目前,LaTeX3 的开发也集中在编程端,以便更轻松地维护软件包。例如,XeLaTeX 用户倾向于使用fontspec
,并且fontspec
是在 LaTeX3 编程系统中编写的。从长远来看,目标是在最终的 LaTeX3 格式中解决 LaTeX 的许多潜在问题。这应该会解决许多软件包功能内核,同时也让我们能够解决一些长期存在的尴尬问题(例如,由于 TeX 处理主垂直列表的方式,添加垂直空间可能会产生奇怪的效果)。更丰富的内核工具集也应该会减少多软件包兼容性。现在,除了可能为您提供更短的序言外,这对您的文档的影响可能很小。
答案2
LuaTeX 和 LaTeX3 让我很感兴趣,但说实话,我不知道它们会给我的文档带来什么好处。
我只是一个 TeX 初学者。我已经学了 25 年了。
我不会对 LaTeX3 发表评论,但我发现使用 Lua 确实非常有助于解除我使用 TeX 时长期存在的许多限制。
具体来说,Lua 在一个特定领域提供了很大帮助 - 帮助 TeX 与外界对话。
我有编写代码使 TeX 能够与 RDBMS(即 SQLite)进行通信, 使用LuaSQL. 但切换到另一个数据库应该是可能的。
我还编写了代码来使 TeX 文件能够使用以下方式解析 YAML 配置文件莱雅。
幸运的是,这两个库都已为 Debian 打包。
这两种情况对于纯 TeX 来说都非常困难,但使用 Lua 则相对简单。不过出于某种原因,这种用法似乎并不普遍。