TeXML

title: "TeXML" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["markup-languages"] topic_path: "technology/programming-languages" source: "https://en.wikipedia.org/wiki/TeXML" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::data[format=table title="Infobox software"]
| Field | Value |
|---|---|
| name | TeXML |
| logo | [[Image:TeXML.svg |
| developer | Oleg A. Paraschenko |
| operating_system | Cross-platform |
| genre | Typesetting |
| latest_release_version | December 2010 |
| programming_language | Python |
| license | MIT/X Consortium license |
| website | http://www.getfo.org/ |
| :: |
| name = TeXML | logo = [[Image:TeXML.svg|150px|The TeXML]] | developer = Oleg A. Paraschenko | operating_system = Cross-platform | genre = Typesetting | latest_release_version = December 2010 | programming_language = Python | license = MIT/X Consortium license | website = http://www.getfo.org/
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
::figure[src="https://upload.wikimedia.org/wikipedia/commons/0/02/TeXML_structure.jpg"] ::
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:
::code[lang=latex] \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} Misinterpretation of special characters as being functional characters is called "Escaping", thus: $, ^, > ::
TeXML process
The TeXML process transforms XML data which are described in the auxiliary intermediate TeXML structure to TeX:
::code[lang=latex] \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \begin{document} Misinterpretation of special characters as being functional characters is called "Escaping", thus: \textdollar{}, ^{}, \textgreater{} \end{document} ::
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
References
- [https://www.tug.org/tug99/bulletin/preprintmap/node1.html], TUG-99
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::