ConTeXt 重命名/移动了哪些原语?

ConTeXt 重命名/移动了哪些原语?

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...命令确实存在,但并不等同于原语。

相关内容