TeXML

TeXML [tɛχːml] is – as a process – a TeX-based alternative to XSL-FO.

TeXML has been developed as an open-source project with the aim to automatically present XML data as PDF with sophisticated layout properties.

By means of an auxiliary structure definition, TeXML overcomes the syntax-based differences between TeX and XML.

Technically, the markup elements of TeX are described by using the XML syntax.

History
TeXML is a further development of a specification originally defined by Douglas Lovell at IBM, where Structure and Transformation have to be distinguished.


 * Structure


 * The XML definition of the TeXML structure can be considered as being completed since 1999 (TeXML.dtd).


 * It represents the markup link between TeX and XML.


 * Transformation


 * The transformation processes run smoothly since the end of 2010, a productive application of the technology is possible.


 * The original approach of using a Java application was published by IBM at IBM alphaWorks, but is no longer present. It was presented in a paper

at the 1999 annual meeting of the TeX Users Group.

Application
TeXML is used to generate Technical Documentation from XML data.

After the transformation TeXML → TeX, the entire LaTeX-defined range of TeX macros is available.

By means of using TeX macros, it is possible to publish XML data having configurable layout options.

Specials

 * TeXML allows automatic publication of XML data by means of a typesetting engine, which was originally designed for manual typesetting.
 * In contrast to publication using the XSL-FO technique layout properties of XML data can be manipulated by using exception rules in the intermediate code.
 * Exception rules are learned by the publication process, the layout properties are thus enhanced with each generation cycle.
 * High-speed publishing processes, an increase in speed of up to 100 times compared to XSL-FO based processes, especially in the case of large documents.

TeXML structure


The Document Type Definition (DTD) of the TeXML structure consists of the XML elements:


 * Root element: TeXML
 * Encoding commands: cmd
 * Encoding environments: env
 * Encoding groups: group
 * Encoding math groups: math and dmath
 * Encoding control symbols: ctrl
 * Encoding special symbols: spec
 * PDF literals: pdf

Composition of a TeXML document
An example of an XML document, which has already been transformed into the TeXML structure:

TeXML process
The TeXML process transforms XML data which are described in the auxiliary intermediate TeXML structure to TeX:

Supporting processes
Works on the "Data Collection Level" (XML) and on the "Publication Level" (TeX) are supported by different tools, for example:


 * Data Collection Level: XML editors
 * – Eclipse (IDE), open source
 * – other free XML editors


 * Publication Level: synchronization between code and generated PDF by means of pdfSync:


 * – Windows PC: editor MiKTeX
 * – Mac OS X: editor TeXShop

Literature

 * Frank Mittelbach The LaTeX Companion  – Tools and techniques for computer typesetting
 * Michel Goossens The XeTeX Companion – TeX meets OpenType and Unicode