ConTeXt 能做到 luaTeX 能做到的吗?

ConTeXt 能做到 luaTeX 能做到的吗?

我知道 ConTeXt 是一个宏包,而 luaTeX 是一个引擎。据我所知,luaTeX 是纯 TeX + Lua 作为嵌入式脚本语言。此外,ConTeXt 可以使用 Lua。

我的问题是,它们的区别在哪里?换句话说,在哪些情况下,一个会胜过另一个(即优点和缺点)?

答案1

与 Gaussler 所说的相反,从 2018 年左右开始,出现了一种名为 ConTeXt LMTX(Lua、Metapost、TeX、XML)的新格式,使用名为 LuaMetaTeX 的新引擎。我将尝试总结一些我熟悉的优点和缺点。此外,为了简单起见,我列出了 ConTeXt(格式)和 LuaMetaTeX(引擎)的功能。

编辑:Gaussler 对普通用户来说是正确的。ConTeXt MkIV 和 LuaTeX(OpTeX、LaTeX、Plain 等)理论上应该能够做基本相同的事情。只有当您需要更多调整或功能时,差异才会变得明显。

优点

缺点

  • 默认情况下不支持编译库 (.so/.dll)。这是因为 LuaMetaTeX 不完全支持它们,您必须包含自己的 Lua 库。此外,与使用 LuaTeX 的 ConTeXt 不同,您需要一个额外的标志--permitloadlib。根据 LuaMetaTeX 手册,“之所以有这个选项是出于对安全性的期望 [...],所以这可能会给人一种额外的保护感”:http://www.pragma-ade.com/general/manuals/luametatex.pdf
  • 不算缺点,但需要注意。LuaMetaTeX 使用 Lua 5.4,目前该版本正在积极开发中,因此与 Lua 5.3 相比会存在一些细微差异(和错误)。

答案2

ConTeXt(最新版本)专门在 LuaTeX 上运行。因此,LuaTeX 能做的所有事,ConTeX 都能做。

相关内容