\contentsline {section}{\numberline {1}Introduction}{2}
\contentsline {subsection}{\numberline {1.1}Writing classes and packages for \LaTeXe }{2}
\contentsline {subsection}{\numberline {1.2}Overview}{3}
\contentsline {subsection}{\numberline {1.3}Further information}{3}
\contentsline {subsection}{\numberline {1.4}Policy on standard classes}{4}
\contentsline {section}{\numberline {2}Writing classes and packages}{4}
\contentsline {subsection}{\numberline {2.1}Old versions}{5}
\contentsline {subsection}{\numberline {2.2}Using `docstrip' and `doc'}{5}
\contentsline {subsection}{\numberline {2.3}Is it a class or a package?}{5}
\contentsline {subsection}{\numberline {2.4}Command names}{6}
\contentsline {subsection}{\numberline {2.5}Box commands and colour}{6}
\contentsline {subsection}{\numberline {2.6}Defining text and math characters}{7}
\contentsline {subsection}{\numberline {2.7}General style}{7}
\contentsline {subsubsection}{\numberline {2.7.1}Loading other files}{7}
\contentsline {subsubsection}{\numberline {2.7.2}Make it robust}{9}
\contentsline {subsubsection}{\numberline {2.7.3}Make it portable}{9}
\contentsline {subsubsection}{\numberline {2.7.4}Useful hooks}{10}
\contentsline {section}{\numberline {3}The structure of a class or package}{10}
\contentsline {subsection}{\numberline {3.1}Identification}{10}
\contentsline {subsection}{\numberline {3.2}Using classes and packages}{11}
\contentsline {subsection}{\numberline {3.3}Declaring options}{12}
\contentsline {subsection}{\numberline {3.4}A minimal class file}{14}
\contentsline {subsection}{\numberline {3.5}Example: a local letter class}{14}
\contentsline {subsection}{\numberline {3.6}Example: a newsletter class}{15}
\contentsline {section}{\numberline {4}Commands for class and package writers}{16}
\contentsline {subsection}{\numberline {4.1}Identification}{17}
\contentsline {subsection}{\numberline {4.2}Loading files}{18}
\contentsline {subsection}{\numberline {4.3}Option declaration}{18}
\contentsline {subsection}{\numberline {4.4}Commands within option code}{19}
\contentsline {subsection}{\numberline {4.5}Moving options around}{20}
\contentsline {subsection}{\numberline {4.6}Delaying code}{21}
\contentsline {subsection}{\numberline {4.7}Option processing}{22}
\contentsline {subsection}{\numberline {4.8}Safe file commands}{24}
\contentsline {subsection}{\numberline {4.9}Reporting errors, etc}{25}
\contentsline {subsection}{\numberline {4.10}Defining commands}{26}
\contentsline {subsection}{\numberline {4.11}Moving arguments}{27}
\contentsline {section}{\numberline {5}Miscellaneous commands, etc}{28}
\contentsline {subsection}{\numberline {5.1}Layout parameters}{28}
\contentsline {subsection}{\numberline {5.2}Case changing}{28}
\contentsline {subsection}{\numberline {5.3}The `openany' option in the `book' class}{29}
\contentsline {subsection}{\numberline {5.4}Better user-defined math display environments}{29}
\contentsline {subsection}{\numberline {5.5}Normalising spacing}{30}
\contentsline {section}{\numberline {6}Upgrading \LaTeX \nobreakspace {}2.09 classes and packages}{30}
\contentsline {subsection}{\numberline {6.1}Try it first!}{30}
\contentsline {subsection}{\numberline {6.2}Troubleshooting}{30}
\contentsline {subsection}{\numberline {6.3}Font commands}{31}
\contentsline {subsection}{\numberline {6.4}Obsolete commands}{32}
