2020-10-01 的第三个也是最后一个 LaTeX 预发布版本可供测试

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

2020-10-01 最终预发布版本的主要功能

在 5 月和 7 月发布的先前预发布版本中,以下主要功能(以及错误修复)已可用

  • xparse 软件包的功能已直接添加到 LaTeX 内核中。
  • LaTeX 的字体系列处理得到了改进。
  • 添加了一个通用的钩子管理系统,以提高软件包的互操作性并实现更轻松的自定义。

在这个最终预发布版本中,我们完全集成了钩子管理系统(之前是在最后添加的,覆盖了内核中较早的定义)。此外,还添加了以下功能

  • picture 环境现在支持尺寸(而不仅仅是乘以 \unitlength 的数字),在需要指定坐标的地方。这基本上是将 Heiko Oberdiek 的 picture.sty 软件包的功能集成到内核中。
  • 添加了 \ShowCommand,以便以简单的方式显示鲁棒命令的定义。
  • 添加了 \NewCommandCopy,以允许复制鲁棒命令(不能使用 \let 完成)。
  • docstripl3docstrip 已合并,因此现在即使使用基于 expl3 的源,也可以始终使用 docstrip

其他修复和改进

进行了大量较小的错误修复和增强。完整的修复和添加列表在 ltnews32 的草稿版本中给出,您应该可以通过运行以下命令来阅读

texdoc ltnews32

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

LaTeX 的通用钩子管理系统(2020 年秋季发布的主要功能)

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

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

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

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

钩子管理系统目前在以下三份文档中进行了描述

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

展望

我们预计这将是与 2020-10-01 版本中的代码匹配的最终预发布版本,除了从现在到发布日期之间发现的任何错误修复。

请帮助进行测试

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

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

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

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

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

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

享受吧 — Frank

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