LaTeX 2020-10-01 的第二个预发布版本可供测试

几天前,我们向 CTAN 提交了一个新的 LaTeX 开发格式1,现在使用 MiKTeX 或 TeX Live(在任何操作系统上)的所有用户都应该可以使用它。

2020-10-01 第二个预发布版本的主要功能

在五月底发布的第一个预发布版本具有以下两个主要功能(除了错误修复):

  • xparse 软件包的功能已直接添加到 LaTeX 内核中
  • LaTeX 的字体系列处理得到了改进

第二个预发布版本为 LaTeX 添加了一个主要的全新组件:通用的钩子管理系统,以改进软件包的互操作性,并使 LaTeX 的自定义和扩展更加容易。

LaTeX 的通用钩子管理系统

大多数 LaTeX 用户和软件包编写者都会知道 LaTeX 迄今为止提供的一些钩子,其中最重要的可能是 \AtBeginDocument。 这些是非常重要的钩子,但数量太少,以至于在许多情况下,软件包开发人员不得不直接修补 LaTeX 的内部结构。 这导致了很多问题。

有了新的钩子管理系统,LaTeX 将获得更多的钩子,软件包编写者(和作者)可以使用这些钩子以受控和可靠的方式添加代码。 通过使用新系统,已经在许多地方添加了新的钩子,并且随着时间的推移将会有更多。 现在可用的有

  • 用于在环境前后添加代码的钩子(以前通过 etoolbox 软件包提供);
  • 在加载文件、软件包或类时使用的钩子(类似于 filehook 软件包现在提供的功能);
  • 页面构建过程中的钩子(例如,以前通过诸如 atbegshiatveryend 以及其他一些软件包提供的功能)。

这里重要的不是这些软件包的功能已集成到 LaTeX 内核中,而是钩子管理系统为不同的软件包提供了一种单一的结构化方式来可靠地添加和排序代码。 这将解决许多软件包之间的互操作性问题,这些问题以前只能通过以特定顺序加载软件包,或者通过在软件包内部使用复杂且脆弱的代码来解决(如果可以解决的话),以解决用户文档中的各种情况。

钩子管理系统目前在以下三个文档中进行了描述(最终版本将合并这些文档)

  • texdoc lthooks — 接口的描述以及已添加到内核中的核心钩子。
  • texdoc ltshipout — 页面生成过程中可用的钩子的文档。
  • texdoc ltfilehook — 可在文件加载之前或之后使用的钩子。

其他修复和改进

所有修复和添加的完整列表在 ltnews32 的草稿版本中给出,您应该能够通过运行以下命令来阅读

texdoc ltnews32

在命令行中(或通过操作系统上可用的任何其他方式——应该有一个名为 ltnews32.pdf 的文件,您可以使用 PDF 阅读器打开它)。 该文件的草稿版本也可以从我们的网站 LaTeX2e News Issue 32 draft 获取。

展望

我们预计将发布第三个也是最后一个预发布版本,其中包含我们收到的用户反馈并整合一些文档。 预计还将修复一些其他未解决的问题,但不会有重大问题——计划在秋季版本中发布的主要功能现在已经在第二个预发布版本中可用。

请帮助进行测试

我们现在发布第二个预发布版本,希望您能帮助我们确保我们提供的所有增强功能和修复都是安全的,并且它们没有任何不良的副作用,因此如果可以,请帮助进行测试。

此开发格式允许您使用您的文档或软件包测试计划于 2020-10-01 发布的即将到来的 LaTeX 版本。 这种测试对于软件包维护者尤其重要,以验证对核心 LaTeX 的更改是否与现有代码引入了不兼容性。 我们尝试事先识别任何此类问题,但这种尝试必然是不完整的,这就是我们要求用户测试的原因。

除了开发人员之外,我们还要求普通用户试用新版本,因为测试新格式的人越多,在 10 月份的最终版本发布之前发现任何隐藏问题的机会就越高。

使用预发布版本处理您的文档非常简单。 您所要做的就是通过在可执行文件后附加 -dev 来替换调用命令,例如,在命令行中,您将运行

pdflatex-dev myfile    or    lualatex-dev myfile    or    xelatex-dev myfile

而不是使用 pdflatexlualatexxelatex。 如果您使用集成的编辑环境,那么这取决于系统如何配置它以使用替代格式; 但在任何情况下,必要的修改都应该很简单。

享受吧 — Frank

  1. 预发布版本的内部版本号是 LaTeX2e <2020-10-01> pre-release-7,前 5 个预发布版本只是镜像了我们为 2020-02-02 所做的补丁版本。