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.
\it
and\sl
are defined in most document classes including standard ones such asarticle
(although they are just legacy commands which shouldn't be used or mentioned in end-user documentation)