Next: Box commands and colour Up: Writing classes and packages Previous: Is it a class

## Command names

LaTeX has three types of command.

There are the author commands, such as \section, \emph and \times: most of these have short names, all in lower case.

There are also the class and package writer commands: most of these have long mixed-case names such as the following.

   \InputIfFileExists  \RequirePackage  \PassOptionsToClass

Finally, there are the internal commands used in the LaTeX implementation, such as \@tempcnta, \@ifnextchar and \@eha: most of these commands contain @ in their name, which means they cannot be used in documents, only in class and package files.

Unfortunately, for historical reasons the distinction between these commands is often blurred. For example, \hbox is an internal command which should only be used in the LaTeX kernel, whereas \m@ne is the constant -1 and could have been \MinusOne.

However, this rule of thumb is still useful: if a command has @ in its name then it is not part of the supported LaTeX language--and its behaviour may change in future releases! If a command is mixed-case, or is described in LaTeX: A Document Preparation System, then you can rely on future releases of LaTeX2e supporting the command.

Rainer Schoepf
Thu Jul 31 16:40:04 MEST 1997