2019 年 LuaLaTeX 应该使用 Polyglossia 还是 Babel?

2019 年 LuaLaTeX 应该使用 Polyglossia 还是 Babel?

哪些是关键问题需要问的?2019 年 LuaLaTeX 项目在 Polyglossia 和 Babel 之间做出选择

有一个类似的、更普遍的2012 年的问题但与此同时,包装也发生了很大变化。因此,我提出了一个新的、更具体的问题。

我们能否将其简化为如下清单

如果需要,请使用套餐 A

  • utf-8 字符
  • 从右到左的支持

如果需要,请使用套餐 B

  • 包装 foo,因为 A 破坏了 foo

答案1

babel以下是我更喜欢polyglossiaLuaLaTeX 的一些原因。

  • babel的基础是积极开发的 LaTeX 核心包的一部分,但polyglossia只进行了一些小更新。
  • babel现在,LuaLaTeX 的 RTL 和 BiDi 支持非常好。但polyglossiaXeLaTeX 仅支持 RTL 文本。
  • babel新的ini语言设置系统非常简洁,我认为会迅速改进。它还可以轻松添加新语言和更新现有语言。
  • babel的字体支持更容易使用,为不同的语言设置标准系列,而polyglossia基本上只是使用标准fontspec调用。
  • 对于标准欧洲语言babel的支持非常成熟。
  • polyglossiabiblatex的语言变体与或不太兼容csquotes

您可能选择polyglossia使用 XeLaTeX 编写仅 RTL 文档,因为该bidi软件包已经存在很长时间了。但如果主要文档语言是 LTR,我现在不会这样做,因为babelLuaLaTeX 更好,涉及的黑客和变通方法更少。如果您需要某些 LuaLaTeX 仍然无法很好地处理的复杂脚本,您可能还会选择使用XeLaTeX。但是,如果您已经决定使用 LuaLaTeX,polyglossia这些原因都不是选择的理由polyglossiababel

答案2

文件夹中有 79 个语言定义文件 (gloss-XX) polyglossia。为了进行全面比较,您必须比较每种语言的 gloss-file 是否好用、是否与 lualatex 兼容、是否babel也为该语言提供定义以及与 lualatex 的兼容程度。当然,您还需要检查 babel 是否知道一种polyglossia没有的语言。这是一项繁重的工作,我不会做(但众所周知,babel 中的法语模块显然更好)。

对于所有与我相关的语言,我更喜欢 todaybabel而不是polyglossia。如果我使用 lualatex,情况会更是如此,因为 babel 有更多特定于 lualatex 的代码(polyglossia)是在考虑 xelatex 的情况下开发的)。

babel维护得更好,并且其与需要语言支持的其他包的接口(biblatex)更好。

答案3

不幸的是,我无法为这个问题提供全面的答案。但我知道polyglossia这对我来说是有用的。自 2019 年底以来,它也再次变得非常活跃。有一点polyglossiababel

  1. polyglossia提供带有选项的长 s (ſ) 字幕blackletter

编辑:之前还有关于语言元数据的第二点,从hyperxmp5.4 开始已经解决了。感谢 Scott 和 Javier 迅速解决了这个问题。

相关内容