LaTeX 2020-02-02 的第一个预发布版本可供测试

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

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

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

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

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

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

2020-02-02 预发布版本 2 的主要功能

由于技术原因,此第一个预发布版本被标记为“预发布版本 2”。预发布版本 1 仅在 CTAN 上存在了几个小时,因为它由于构建过程中的问题而缺少一些文件,但由于它已经在 CTAN 上,我们不得不增加预发布版本号。

一个新的 LuaTeX 引擎即将推出……

在 TeXLive 2020 中,LuaLaTeX 格式将始终使用新的 LuaHBTeX 引擎,它是带有嵌入式 HarfBuzz 库的 LuaTeX。可以通过在字体声明中设置合适的渲染器来使用 HarfBuzz。fontspec 软件包为此提供了一个接口。这种额外的字体渲染器将大大改善各种脚本的成形,这些脚本目前仅由 XeTeX 正确处理。

为了简化新引擎的测试,必要的执行文件已添加到 MiKTeX 和 TeXLive 2019 中,并且两者都已更改 LuaLaTeX-dev 格式以使用它。这意味着您现在已经可以通过使用预发布版本来测试新引擎!

即使您不需要新的 HarfBuzz 功能,运行一些测试也可能是有价值的,因为从 2020 年起,这将是唯一一个 LaTeX 格式将在 2020 年起在 TeXLive 和 MikTeX 中分发的 LuaTeX 引擎。

改进了 expl3 的加载时间

LaTeX3 编程层 expl3 在过去十年中已从很大程度上是实验性的转变为广泛稳定。它现在被大量第三方软件包显式或隐式地使用(例如,通过加载 xparse 来定义用户命令界面),因此许多文档在序言的某个时候加载 expl3 代码。大多数使用 XeTeX 或 LuaTeX 编译的 LaTeX 文档都加载 fontspec,它是使用 expl3 编写的,因此在这些引擎中几乎总是使用它。

expl3 层包含大量宏,并且当与 XeTeX 和 LuaTeX 引擎一起使用时,它会加载大量的 Unicode 数据。这意味着即使在快速计算机上,每当需要 expl3 时,也会有相对较大的加载时间损失。

对于此版本,团队已在 LaTeX 2e 内核中进行了调整,以便在构建格式时预加载 expl3 的重要部分。这在用户级别是透明的,除了文档处理时间显着减少之外:加载 Unicode 数据文件不会有“暂停”。在文档和软件包中加载 expl3 可以照常进行;在未来的某个时候,可能会省略

\RequirePackage{expl3}

完全省略,但是,为了支持旧格式,目前仍然建议显式加载。

请立即测试——即使还有更多内容即将到来

我们要求您立即测试,因为(除非我们犯了一些错误)上述更改对用户应该是透明的——除了加快加载过程或允许使用 LuaLaTeX 处理以前无法正确运行的复杂脚本之外。

可能在 1 月初,我们预计将发布另一个预发布版本,该版本很可能包含对所有引擎的字体支持的改进。

预发布版本在未来永远不会过时(我们希望如此)

从这个预发布版本开始,我们将确保发行版中的预发布版本要么与主要发布代码匹配,要么比当前主要发布版本更新。过去几周情况并非如此,当时主要发布版本是 2019-10-01,添加了一些热修复程序,但 -dev 格式仍然来自 10 月之前的某一天。

未来,我们打算确保这种情况不会发生,以便为避免混淆,分发的开发版本始终比当前主要版本更新或相同。

请提供有关预发布版本的更多详细信息……

有关这些概念和开发格式过程的更多详细信息和一些背景信息,请参阅 TUGboat 文章

LaTeX 发布工作流程和 LaTeX 开发格式

  • Frank Mittelbach
  • TUGboat 40:2, 2019
  • 摘要

    如何防止创建香蕉软件(即在客户现场才成熟的软件)? 通过适当的测试!但这绝非易事。

    本文将概述 LaTeX 项目团队多年来为提供高质量软件所做的努力,并解释我们今年夏天为进一步改善情况所做的更改。


享受吧 — Frank