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

## 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 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.

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