# Which primitives does ConTeXt rename/move?

TeX's primitives can be renamed by macro formats/packages: this allows new/altered features or behaviours. Usually this is done such that the originals are still available ('renamed'): certainly LaTeX2e does this (for example \@@end). Which primitives does ConTeXT rename/move, and where do they 'end up'? As there are two ConTeXt versions (MkII and MkIV), are there any differences between the two in this regard?

## 1 Answer

ConTeXt moves several primitives, renaming them systematically using the prefix \normal.... For ConTeXt MkII, all but one of the primitives moved are from TeX90: there is also one from e-TeX and one 'pdfTeX' one that appears only in LuaTeX:

• \end
• \everyjob
• \expanded
• \input
• \language
• \mathop
• \month
• \outer
• \over
• \unexpanded
• \vcenter

All of these are saved as \normal..., e.g. \normalend is the \end primitive.

ConTeXt MkIV moves all of the above plus a few additional primitives from TeX90/e-TeX:

• \/ (saved as \normalitaliccorrection)
• \hoffset
• \left
• \middle
• \right
• \voffset

MkIV uses some Lua code to extend/alter the behaviour of these primitives: again the originals are saved as \normal....

It also moves two LuaTeX primitives:

• \bodydir
• \pagedir

These are 'hidden' as \spac_directions_normal_body_dir and \spac_directions_normal_page_dir: the \normal... commands do exist but are not equivalent to the primitives.

• @JosephWright: There are unofficial public git repos of the ConTeXt betas at repo.or.cz/w/context.git/shortlog/refs/heads/origin and gitorious.org/context. Running git blame on math-fen.mkiv shows that these primitives were overridden on 2013.10.20 commit: repo.or.cz/w/context.git/commit/… – Aditya Apr 17 '14 at 6:23
• @Aditya Thanks: that what I suspect, but wanted someone with a bit more knowledge to help me out :-) – Joseph Wright Aug 4 '14 at 16:59
• It seems as if \mathop is not moved in current TL2016 MkIV. If I typeset the following minimal expample \starttext\meaning\mathop\stoptext it simply prints \mathop. – Henri Menke Jun 20 '16 at 11:42
• Furthermore is \outer is just empty macro. – Henri Menke Jun 20 '16 at 11:50
• @HenriMenke Reuse (or similar) is a different question: if you want the \outer primitive in ConTeXt then \normalouter (or \primitive\outer or a Lua approach) is the way to go. – Joseph Wright Jun 20 '16 at 12:26