##
Packages and Style-Files

Subsections

- Fancy List-Markers
- Support for FoilTeX
- Indicating Differences between Document Versions

Similar to the document-class mechanism described in the previous section, LATEX2`HTML` provides a mechanism whereby the code to translate specific packages and style-files is automatically loaded, if such code is available. For example, when use of a style such as `german.sty` is detected in a LATEX source document, either by

- a `\usepackage` command of LATEX2e;
- an option to the `\documentstyle` command of LATEX2.09;
- an explicit `\input` or `\include` command;

the translator looks for a corresponding `.perl` file having the same file-name prefix; e.g. the file `$LATEX2HTMLDIR/styles/german.perl`. If such a `.perl` file is found, then its code will be incorporated with the main script, to be used as required.

This mechanism helps to keep the core script smaller, as well as making it easier for others to contribute and share solutions on how to translate specific style-files. The current distribution includes the files to support the styles listed in the table below. These provide good examples of how you can create further extensions to LATEX2`HTML`.

Table 6: Supported LATEX2`HTML` packages and style-files.
`.perl` file | Description
alltt | Supports the LATEX2e's alltt package.
amsfonts | provides recognition of the special AMS font symbols.
amsmath | same as `amstex.perl`.
amssymb | same as `amsfonts.perl`.
amstex | Supports much of the AMS-LATEX package (not yet complete).
babel | Interface to `german.perl` via the babel package.
changebar | Provides rudimentary change-bar support.
chemsym | defines the standard atomic symbols.
color | Causes colored text to be processed as ordinary text by LATEX2`HTML`.
colordvi | supports the Crayola colors.
enumerate | supports structured labels for enumerate environments.
epsbox | Processes embedded figures not enclosed in a figure environment.
epsfig | Processes embedded figures not enclosed in a figure environment.
finnish | Support for the Finnish language.
floatfig | Processes floating figures.
floatflt | Processes floating figures and tables.
foils | Supports FoilTeX system.
frames | Provides separate frames for navigation and footnotes.
francais | Support for the French language, same as `french.perl`.
french | Support for the French language.
german | Support for the German language.
germanb | Support for the German language, same as `german.perl`.
graphics | Supports commands in the graphics package.
graphicx | Supports the alternate syntax of graphics commands.
harvard | Supports the harvard style of citation (same as fnnharvard.perl).
heqn | Alters the way displayed equations are processed.
hthtml | gives an alternative syntax for specifying hyperlinks, etc.
htmllist | Provides support for fancy lists.
justify | supports paragraph alignment--no longer needed.
latexsym | supports the LATEX symbol font.
lgrind | macros for nice layout of computer program code.
longtable | supports use of long tables, as a single table.
makeidx | provides more sophisticated indexing.
multicol | suppresses requests for multi-columns.
natbib | Supports many different styles for citations and bibliographies.
nharvard | Supports harvard-style citations, using natbib.
seminar | for creation of overhead-presentation slides.
spanish | Support for the Spanish language.
supertabular | supports use super-tables, as an ordinary table.
texdefs | Supports some raw TEX commands.
verbatim | Supports verbatim input of files.
verbatimfiles | Supports verbatim input of files, also with line-numbering.
wrapfig | Supports wrapped figures.
xspace | Supports use of the xspace package and `\xspace` command.
xy | Supports use of the XY-pic graphics package.

The problem however, is that writing such extensions requires an understanding of Perl programming and of the way the processing in LATEX2`HTML` is organised. Interfaces that are more ``user-friendly'' are being investigated. Some of the techniques currently used are explained in a later section.