Figures in format-independent documents are a problem. You em(cannot) avoid
contact with the final format (HTML, LaTeX or whatever) if you want to include
figures in a text.

Yodl approaches figures as follows:
    itemization(
    it() Figures can only be included in LaTeX, HTML and XML documents.
    it() For LaTeX, you must prepare a picture in an external file that is
included in the document as en em(encapsulated PostScript) file.
Incidentally, that means that tt(epsf) must be stated as one of the LaTeX
styles using the tt(latexoptions) macro.  The default, however, can be
modified using the tt(setlatexfigureext()) macro.
    nl()
    The file in question is stated in Yodl without an extension. Yodl provides
a default extension, tt(.ps).
    it() For HTML and XML, you must prepare a picture in an external file that
is placed in the document using the tt(<img src=...>) tag. The file must
have the default extension (tt(.jpg)) or the extension specified with the
tt(sethtmlfigureext()) macro.
    it() All other output formats do not include pictures in the document, but
    typeset something like em(insert figure .. here).
    )
    The macro to include a figure is called, appropriately, tt(figure). It
takes three arguments:
    itemization(
    it() The first argument is the filename. This name may include directories,
but may not include the filename extension. The reason for this is, that
Yodl supplies the correct extension once the output format is known.
    it() The second argument is the figure title, or the caption. Yodl prefixes
this caption with the text em(Figure xx:), where em(xx) is a number.
    it() The last argument is a label, which Yodl defines as a placeholder for
the figure number.
    )
    For example, you might draw a picture or scan a photo and put it in a
tt(.jpg) file, for usage with HTML documents. The conversion to PostScript
could be automated, e.g., using a Yodl macro:
        verb(
    SYSTEM(xpmtoppm picture.xpm | pnmtops > picture.ps)
        )
    See section ref(SYSTEM) for details about using the tt(SYSTEM) macro.

    After this, you would be reasonably safe that the picture is available for
both HTML and LaTeX output. The picture would be typeset in a figure using:
        verb(
    figure(picture)
    (A photo of me.)
    (photo)
        )
    Note how the first argument, the filename, does not contain an
extension. The third argument, which is a label, can be used in, e.g.,
        verb(
    See figure ref(photo) for a photograph showing me.
        )
    Yodl has a several auxiliary macros, which are:
    itemization(
    it() tt(fig(label)): This macro is a shorthand for tt(getfigurestring()
ref(label)). It just makes typing shorter, and is used as e.g.: tt(See
fig(photo) for a photograph.) Note that the string tt(figure) that is
generated by this macro can be (re)defined, see below.
    it() tt(setfigurestring(name)): This macro is similar to
tt(setchapterstring) etc.. It defines the string that is used to identify a
figure, and is (appropriately) tt(figure) by default. The macro
tt(getfigurestring()) expands to the string in question. See also section
ref(NATIONAL) for a discussion of national language support.
    it() tt(sethtmlfigureext(.new)): This macro redefines the filename
extension for HTML conversions from tt(.gif) to tt(.new). Note that you must
include a leading dot in the redefinition.
    nl()
    The new extension is used in the first following tt(figure) statement.
    it() tt(sethtmlfigurealign(align)): This redefines the alignment of
figures in HTML, which is default tt(bottom). Check your HTML handbook for
possible options; tt(top) and tt(center) should be fairly standard.
    it() tt(setlatexfigureext(.new)): Redefines the extension from tt(.ps) to
tt(.new).
    )
