使用 LaTeX3(l3packages、l3kernel)有多“安全”?

使用 LaTeX3(l3packages、l3kernel)有多“安全”?

l3kernel和是否l3packages出现在大多数 LaTeX 发行版中?它们是否“足够稳定”?

我之所以问这个问题,是因为我正在.tex为客户准备一份文件。我发现使用诸如软件包xparseexpl3语法之类的东西很方便。客户在编译它时遇到问题的可能性有多大(现在或将来,如果软件包不再可用或发生重大变化)?我现在应该避免使用 LaTeX3 并坚持使用 LaTeX2e 吗?

我对这个论坛和 LaTeX3 都还很陌生,所以如果这个问题不合适,请允许我道歉。

提前谢谢您!

答案1

某事物“足够稳定”的程度取决于您的要求。我将根据我所看到的稳定性大致回答这个问题。

如果您希望“永远不会再改变”,那么纯 TeX 可能是您的最佳选择。Knuth 确实仍会定期修复错误,但现在大多数内容可能被视为“功能”而不是错误,因此,今天用纯文本编写的文档极有可能在几十年后仍能完全不加改变地工作(假设 TeX 系统继续可用)。

LaTeX2e 内核也不太可能进一步改变,因此几乎与 TeX 本身一样稳定。该团队确实修复了错误,并且确实比 Knuth 允许更多的灵活性,但即便如此,LaTeX2e 在内核级别发生任何需要更改文档的变化的可能性也极小。

有一些 LaTeX 软件包可以合理地决定使用,它们也非常稳定,不太可能发生变化,要么是因为它们不再被积极开发,要么是因为作者谨慎地只更改与真正的错误或新的、非破坏性功能相关的代码。明显的候选者是keyval,,graphicxETC。:可能实际上有一个相当不错的列表,这取决于您的要求。

对于 LaTeX3 软件包l3kernell3packages来说,“稳定”并不意味着“您永远不需要使用它们对文档进行更改”,至少目前是这样。这意味着团队不会进行“任意”更改,并且会在发生这种情况时记录/宣布。大部分l3kernel已经“完成”,计划主要集中在添加新功能而不是更改现有代码。但是,我们知道有几个地方可能需要进行一些更改,这些更改将在 LaTeX-L 邮件列表中宣布并记录在案。即使在这些更改中,“重大”(不向后兼容)更改的数量也很少,但至少有一个我们仍需要完成。

在 等情况下xparse\DeclareDocumentCommand它们是“稳定的”,因为它们只会被增强而不是被删除,但一些比较深奥的功能可能会发生一些变化(例如,存在一些围绕参数类型的问题g)。

因此,“足够稳定”取决于您的使用情况。如果您可以接受“必须根据记录和计划的更新偶尔进行更改”,那么expl3它完全可用。(我和其他人经常在软件包中使用。)另一方面,如果您希望“此代码必须与所有未来版本的支持代码兼容,而无需进行任何更改”,那么我们还没有完全实现。

答案2

我认为这取决于您的客户以及他/她打算用它做什么。我的经验是,人们通常不太乐意更新/重新配置他们的整个 TeX 发行版(或在某些情况下甚至是操作系统),只是为了让一些花哨的软件包工作,而这些软件包只是为了一些优雅的 TeX-nerd 技巧。如果 TeX 发行版安装在管理员权限成为问题的网络上,这会变得特别成问题。

话虽如此,考虑到直到最近,TeXlive 2009 仍然是许多Linux 系统,我建议您不要使用过去五年内添加的任何功能/软件包,除非您的客户也是 TeX 爱好者,或者您知道您的文件应该在哪个系统上编译。

换句话说,如果您想生成“普通” TeX 用户能够编译且不存在兼容性问题的文件,我建议您在未来几年内避免使用 LaTeX3。

相关内容