Most of the work of a class or package is in defining new commands, or
changing the appearance of documents. This is done in the body of the
package, using commands such as \newcommand or \setlength.
LATEX2e provides several new commands to help class and package writers; these are described in detail in Section 4.
There are three things that every class file must contain:
these are a definition of \normalsize and values for \textwidth
and \textheight. So a minimal document class file
looks like this:
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{minimal}[1995/10/30 Standard LaTeX minimal class]
\renewcommand{\normalsize}{\fontsize{10pt}{12pt}\selectfont}
\setlength{\textwidth}{6.5in}
\setlength{\textheight}{8in}
However, this class file will not support footnotes, marginals,
floats, etc., nor will it provide any of the 2-letter font commands
such as \rm; thus most classes will contain more than this minimum!