TeX 的原语可以通过宏格式/包重命名:这允许新的/改变的功能或行为。通常这样做是为了使原始内容仍然可用(“重命名”):当然LaTeX2e 可以做到这一点(例如\@@end
)。ConTeXT 重命名/移动了哪些原语,它们最终会“到哪里”?由于有两个 ConTeXt 版本(MkII 和 MkIV),两者在这方面有什么区别吗?
答案1
ConTeXt 移动了几个基元,并使用前缀 系统地重命名它们\normal...
。对于 ConTeXt MkII,除了一个基元之外,所有移动的基元都来自 TeX90:还有一个来自 e-TeX,还有一个仅出现在 LuaTeX 中的 'pdfTeX':
\end
\everyjob
\expanded
\input
\language
\mathop
\month
\outer
\over
\unexpanded
\vcenter
所有这些都保存为\normal...
,例如 \normalend
是\end
原始的。
ConTeXt MkIV 移动了上述所有内容以及来自 TeX90/e-TeX 的一些其他原语:
\/
(另存为\normalitaliccorrection
)\hoffset
\left
\middle
\right
\voffset
MkIV 使用一些 Lua 代码来扩展/改变这些原语的行为:再次将原始内容保存为\normal...
。
它还移动两个 LuaTeX 原语:
\bodydir
\pagedir
这些是“隐藏”的,因为\spac_directions_normal_body_dir
和\spac_directions_normal_page_dir
:\normal...
命令确实存在,但并不等同于原语。