是否有一份详尽的列表,列出 Knuth 之后的 Tex 添加的所有控制命令,例如 PdfTeX、e-TeX、XeTex、LuaTeX?
答案1
您可以使用 LuaTeX 以编程方式获取列表,前提是您对该引擎支持的 TeX 方言之一提供的新原语感兴趣。通过更改方言变量的值
proc = tex.initialize ()
dialect = "etex"
-- The dialect identifiers accepted are: tex (i.e., original Knuth, without Plain Tex macros),
-- core (core Luatex, that is, which at present is just "directlua", and is
-- not in the luatex dialect),
-- and the extension dialects:
-- etex, pdftex, omega, aleph, luatex, umath
-- so the primitives introduced by Luatex are the ones in core, luatex, and umath.
-- These dialect identifiers are case sensitive: "etex" is accepted by
-- tex.extraprimitives, "eTeX" is not.
ps = tex.extraprimitives (dialect)
for _, v in ipairs(ps) do
print (v)
end
(texlua listprims.lua
如果您已使用该文件名保存了程序,则应使用该文件名运行程序),此代码将输出给定可能值的基元列表。Unixcolumn
实用程序使输出更易于阅读。
LuaTeX 手册在其内列出此输出tex.extraprimitives部分,如果出于某种原因您愿意,可以提供此信息的非程序化路线。
LuaTeX 中不包含 TeX 的所有方言;最重要的是,XeTeX 不包含。我认为 NTS 和 ExTeX 都引入了新的原语——对于这些其他系统,请查阅其文档;XeTeX 的原语列表位于XeTeX 参考指南。
还要注意,方言会随着软件的发展而改变。例如,我认为 XeTeX 最近才获得了与 pdfTeX 兼容的原语。
至于提供所有方言的详尽列表的单一指南——嗯,因为这是一个移动的目标,我怀疑是否有足够的动力来制作和维护这样的东西。