在 2021 年,与 pdfTeX 相比,使用 XeTeX(或 LuaTeX)有什么缺点?有一个类似的问题这里但答案大多是旧的。自那以后,情况有改善吗?例如就 Microtype 而言?
答案1
让我对标题中的问题给出一个有偏见的回答,并参考您帖子正文中的其他问题。
XeTeX 目前无人维护,或者有一个功能相当的不活跃维护者。XeTeX 的工作最初由 SIL 的 Jonathan Kew 发起,Khaled Hosny 也参与其中。Jonathan 后来离开了 SIL,不再参与贡献。Khaled 的兴趣似乎也转向了 LuaTeX,他为 HarfBuzz 提供了一个自定义 Lua 接口,将复杂的脚本引入 LuaTeX。有关更多背景信息和更好的概述,请参阅A.Reutenauer,“XeTeX 的现状”,TUGboat,第 40 卷(2019 年),第 2 期。
目前缺乏维护意味着 XeTeX 有一些未修复的错误。其中一些错误影响了数学排版,我个人认为 XeTeX 不再适合数学排版。这些错误有点微妙,所以你必须自己判断。这是我认为最严重的一个:https://sourceforge.net/p/xetex/bugs/87/
XeTeX 中的微排版仅限于凸起。对于扩展、跟踪、字距调整和间距,根本没有后端代码。但话又说回来,微排版通常不是非常重要。事实上,LuaTeX 和 ConTeXt 的首席开发人员 Hans Hagen 曾经说过:“我自己很少使用扩张”。
XeTeX 生成 PDF 的方式非常奇特。LuaTeX 和 pdfTeX 默认直接输出 PDF,TeX 默认输出 DVI,而 XeTeX 则不输出任何内容。由于 XeTeX 源自 TeX,因此它不包含 PDF 输出的后端代码,但由于 OpenType 字体无法以 DVI 表示,因此它发明了自己的格式“扩展 DVI”(XDV)。运行 XeTeX 时,您仍会得到 PDF 输出,但这是因为在运行过程中,XeTeX 将中间 XDV 输入其中
xdvipdfmx
以生成 PDF。该
xdvipdfmx
程序本身有一些怪癖。它实际上能够处理一些 PostScript 特殊字符,这意味着您可以将 PSTricks 与 XeTeX 一起使用。另一方面,这意味着它需要自己的驱动程序代码来处理颜色和图像放置。这些驱动程序通常非常复杂,需要深入了解文件格式。由于 XeTeX 的用户和开发人员基础比 pdfTeX 小得多,因此其中一些驱动程序质量很差,尤其是PGF/TikZ 驱动程序。不建议将 PGF/TikZ 与 XeTeX 一起使用。接受 LaTeX 的学术期刊通常只接受兼容 pdfTeX 的文档。我认为这是人们不使用 XeTeX(或 LuaTeX)的主要原因。
过去,XeTeX 是唯一一款具有 HarfBuzz 字体整形功能的 TeX 引擎,这对于需要排版阿拉伯语或 CJK(中文、日语、韩语)等复杂脚本的人来说是一个很大的优势。最近,LuaTeX 也以 LuaHBTeX 的名称获得了对 HarfBuzz 的支持,因此这一优势现在已不复存在。但是,仍有一些专门为 XeTeX 编写的宏代码来支持复杂脚本。我不知道将这些代码移植到 LuaTeX 的进展如何,但我认为未来 XeTeX 的使用率可能会下降。