Where have the legacy macros gone?

If the question is “May I use font switching commands like \it or \sl”, then the answer usually depends on the document class you are using. Indeed, these commands are not defined by the LaTeX2e kernel, although some classes do define them as a backward compatibility tool; for example, the article class does so, while the scrartcl class doesn’t (unless you specify the—now strongly deprecated, and therefore hidden—option enabledeprecatedfontcommands). Note, however, that the “backward compatibility” we are speaking of here refers to code usage that dates back to the early 1990’s, and that has been superseded by a much better device known as the New Font Selection Scheme (NFSS); NFSS was incorporated in LaTeX2e and is clearly and largely superior in that it permits to address the individual font characteristics (family, shape, etc.) one by one.

If, on the other hand, the question is “Should I use font switching commands like \it or \sl”, then the answer is a big “don’t”, for the reason explained in the last sentence of the previous paragraph.


The TeXbook documents two separate things: the set of primitives provided by the TeX binary, and the macros defined by Knuth in plain.tex on top of this. The primitives are available in LaTeX2e (though a few are renamed, for example \end is saved as \@@end), but LaTeX implements only some of the plain macros (and not necessarily in exactly the same way).

In terms of documentation, LaTeX’s user interface is described in Lamport’s book. For programmers, there is clsguide but no ‘definitive’ document saying which part of latex.ltx/primitives can and cannot be used: one has to pick this up to some extend by experimentation. One can read source2e for full details of the LaTeX2e kernel.

Notably, \it and \sl are user-level commands (no @ symbol), so their status is clear: they are not in Lamport’s book as part of the LaTeX2e document syntax so should not be used. As noted in the answer by Gustavo Mezzetti, the NFSS mechanism is available for font selection.


From a historical point of view, LaTeX was originally a file loaded on top of plain but that has not been the case for a long time: LaTeX is a separate TeX format which has its own approach.