Document Classes and Options

In general the standard LATEX document-classes: article, report, book, letter, slides are translated by LATEX2HTML 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 LATEX2HTML 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 LATEX2HTML 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.