Transforms a TeX/LaTeX file into XML.


latexml [options] texfile

 --destination=file sets destination file (default stdout).
 --output=file      [obsolete synonym for --destination]
 --preload=module   requests loading of an optional module;
                    can be repeated
 --preamble=file    sets a preamble file which will
                    effectively be prepended to the main file.
 --postamble=file   sets a postamble file which will
                    effectively be appended to the main file.
 --includestyles    allows latexml to load raw *.sty file;
                    by default it avoids this.
 --path=dir         adds to the paths searched for files,
                    modules, etc;
 --log=file         specifies log file (default is file named after job name)
 --documentid=id    assign an id to the document root.
 --quiet            suppress messages (can repeat)
 --verbose          more informative output (can repeat)
 --strict           makes latexml less forgiving of errors
 --bibtex           processes as a BibTeX bibliography.
 --xml              requests xml output (default).
 --tex              requests TeX output after expansion.
 --box              requests box output after expansion
                    and digestion.
 --noparse          suppresses parsing math
 --nocomments       omit comments from the output
 --inputencoding=enc specify the input encoding.
 --VERSION          show version number.
 --debug=package    enables debugging output for the named
 --help             shows this help message.

If texfile is ’-’, latexml reads the TeX source from standard input. If texfile has an explicit extension of .bib, it is processed as a BibTeX bibliography.

Options & Arguments


Specifies the destination file; by default the XML is written to stdout.


Requests the loading of an optional module or package. This may be useful if the TeX code does not specifically require the module (eg. through input or usepackage). For example, use --preload=LaTeX.pool to force LaTeX mode.

--preamble=file, --postamble=file

Specifies a file whose contents will effectively be prepended or appended to the main document file’s content. This can be useful when processing TeX fragments, in which case the preamble would contain documentclass and begindocument control sequences. This option is not used when processing BibTeX files.


This optional allows processing of style files (files with extensions sty, cls, clo, cnf). By default, these files are ignored unless a latexml implementation of them is found (with an extension of ltxml).

These style files generally fall into two classes: Those that merely affect document style are ignorable in the XML. Others define new markup and document structure, often using deeper LaTeX macros to achieve their ends. Although the omission will lead to other errors (missing macro definitions), it is unlikely that processing the TeX code in the style file will lead to a correct document.


Add dir to the search paths used when searching for files, modules, style files, etc; somewhat like TEXINPUTS. This option can be repeated.


Assigns an ID to the root element of the XML document. This ID is generally inherited as the prefix of ID’s on all other elements within the document. This is useful when constructing a site of multiple documents so that all nodes have unique IDs.


Reduces the verbosity of output during processing, used twice is pretty silent.


Increases the verbosity of output during processing, used twice is pretty chatty. Can be useful for getting more details when errors occur.


Specifies a strict processing mode. By default, undefined control sequences and invalid document constructs (that violate the DTD) give warning messages, but attempt to continue processing. Using –strict makes them generate fatal errors.


Forces latexml to treat the file as a BibTeX bibliography. Note that the timing is slightly different than the usual case with BibTeX and LaTeX. In the latter case, BibTeX simply selects and formats a subset of the bibliographic entries; the actual TeX expansion is carried out when the result is included in a LaTeX document. In contrast, latexml processes and expands the entire bibliography; the selection of entries is done during postprocessing. This also means that any packages that define macros used in the bibliography must be specified using the --preload option.


Requests XML output; this is the default.


Requests TeX output for debugging purposes; processing is only carried out through expansion and digestion. This may not be quite valid TeX, since Unicode may be introduced.


Requests Box output for debugging purposes; processing is carried out through expansion and digestions, and the result is printed.


Normally latexml preserves comments from the source file, and adds a comment every 25 lines as an aid in tracking the source. The option –nocomments discards such comments.


Specify the input encoding, eg. --inputencoding=iso-8859-1. The encoding must be one known to Perl’s Encode package. Note that this only enables the translation of the input bytes to UTF-8 used internally by LaTeXML, but does not affect catcodes. It is usually better to use LaTeX’s inputenc package. Note that this does not affect the output encoding, which is always UTF-8.


Shows the version number of the LaTeXML package..


Enables debugging output for the named package. The package is given without the leading LaTeXML::.


Shows this help message.

See also