##
Document Classes and Options

In general the standard LATEX document-classes: `article`, `report`, `book`, `letter`, `slides` are translated by LATEX2`HTML` in the same way. Currently the only real difference is with the display of section-numbering, when the `-show_section_numbers` switch is used, and when numbering of theorem-like environments is linked to section-numbering.

These differences are achieved using a mechanism that automatically loads a file: `article.perl`, `report.perl`, `book.perl`, `letter.perl`, `slides.perl` according to the requested document-class. These files contain Perl code and are located in the `styles/` directory. If a file of the same name exists in the working directory, this will be loaded instead.

Typically such files ``<class>`.perl` contain code to define subroutines or sets values for variables that will affect how certain translations are performed. There can be code that is executed only when specific class-options are specified along with the chosen document-class. For example, the `foils.perl` implementation of FoilTeX's foils class defines code create a new sub-section for each `foil'. It also has code which allows LATEX2`HTML` to ignore those of FoilTeX's special formatting commands that have no relevance when constructing an `HTML` page.

Any options given on the `\documentclass` or `\documentstyle` line may also cause a file containing Perl code to be loaded. Such a file is named ``<option>`.perl` for the appropriate `<option>`. When such a file exists, in the local directory or in the `styles/` directory, it typically contains Perl code to define subroutines or set values for variables that will affect how certain translations are performed. There can be code that is executed only for specific document-classes.

Since the files for class-options are loaded after those for the document-class, it is possible for the ``<option>`.perl` file to contain code that overrides settings made within the document-class file.

If a file named ``<class>`_`<option>`.perl` happens to exist for a given combination of document-class `<class>` and class-option `<option>`, then this will be loaded. When such a file exists, reading and executing its contents is done, rather than executing any `<class>`_`<option>` specific information that may be contained in ``<class>`.perl` or ``<option>`.perl` .

Currently there are no special option or class-option files provided with the LATEX2`HTML` distribution. It is hoped that users will identify ways that specific features can be improved or adapted to specific classes of documents, and will write such files themselves, perhaps submitting them for general distribution.

Note: This mechanism for handling code specific to different document classes and class-options is more general than that employed by LATEX2e. New options can be defined for document-classes generally, or for specific classes, without the need to have corresponding `.sty` or `.clo` files. LATEX simply notes the existence of unusupported options--processing is not interrupted.