在编写和编译文档时,我注意到有时“LuaTeX-1.18.0”是文档的生成者,而在其他情况下则是“luahbtex-1.18.0”。但我找不到开关,哪个命令指向哪个引擎。生成者显示在 PDF 信息中,我在 PDF 查看器中使用Ctrl+获得它。TeX 输出显示:D
这是 LuaHBTeX,版本 1.18.0(TeX Live 2024)
但是早在 HarfBuzz 成为塑造者之前,我们就有了 LuaTeX(就我而言:LuaLaTeX)。我猜“hb”是“HarfBuzz”的缩写?
我可以让 luatex 使用非 hb 引擎吗?我在我的系统上找到了手册页 luahbtex.man1.pdf,上面写着:
luahbtex 变体可以使用 HarfBuzz 引擎进行字形塑造,而不是 LuaTEX 的内置塑造器。
那么:现在还存在哪些其他变体(TeX 直播2024)?我该如何使用它们?有文档吗?我只是好奇。
答案1
您可以使用 LuaTeX 而不是 LuaHBTeX 来构建 LaTeX,例如在类 Unix 系统上
luatex -ini $(kpsewhich luatex.ini)
这将生成一个格式文件lualatex.fmt
,然后您可以将其用作
luatex "&lualatex" <input-name>
并将得到类似这样的日志
This is LuaTeX, Version 1.18.0 (TeX Live 2024)
restricted system commands enabled.
(./test.tex
LaTeX2e <2023-11-01> patch level 1
L3 programming layer <2024-03-14>
使用 LuaHBTeX(LuaTeX + HarfBuzz)构建标准 LuaLaTeX 格式的原因是 HarfBuzz可用的;这不同于默认启用。如果您运行没有任何软件包的(库存)LuaLaTeX,您仍将使用整形器luaotfload
:切换到 HarfBuzz 的正常方式是使用适当的fontspec
设置。
目前还有luajittex
,它使用 Lua 的“即时”版本。但是,对该版本的支持似乎可能会终止。因此,我认为不值得进一步考虑。
答案2
有两个类似的 TeX 引擎:luatex(可以通过luatex
命令运行)和 luahbtex(可以通过命令运行luahbtex
)。第二个与 HarfBuzz 库链接(正如您在问题中提到的)。
LaTeX 格式使用 luahbtex 引擎。这意味着该fmt
文件由 luahbtex 生成,并且该命令lualatex
以 LaTeX 格式运行 luahbtex 引擎。如果您想使用纯 luatex 和 LaTeX 格式,您必须使用 luatex 引擎生成 LaTeX 格式(TeXlive 发行版中不会自动准备),然后luatex -ini lualatex.ini
您就可以运行luatex -fmt lualatex
。
另一方面,OpTeX 默认使用 luatex 引擎,因此该命令optex
以 OpTeX 格式运行 luatex 引擎。如果要将 luahbtex 引擎与 OpTeX 一起使用,则必须通过 生成 OpTeX 格式,luahbtex -ini optex.ini
然后通过 运行它luahbtex -fmt optex
。