如何启动 LuaTeX-non-hb 引擎?

如何启动 LuaTeX-non-hb 引擎?

在编写和编译文档时,我注意到有时“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

相关内容