TeXML

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
TeXML
DeveloperOleg A. Paraschenko
Stable release
December 2010
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inPython
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemCross-platform
    TypeTypesetting
    LicenseMIT/X Consortium license
    Websitehttp://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

    [edit | edit source]

    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.[1]

    Application

    [edit | edit source]

    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

    [edit | edit source]
    • 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

    [edit | edit source]

    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

    [edit | edit source]

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

    <TeXML>
    <TeXML escape="0">
    \documentclass[a4paper]{article}
    \usepackage[latin1]{inputenc}
    \usepackage[T1]{fontenc}
    </TeXML>
    <env name="document">
    Misinterpretation of special characters as being functional characters is called "Escaping", thus: $, ^, >
    </env>
    </TeXML>
    

    TeXML process

    [edit | edit source]

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

    \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

    [edit | edit source]

    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

    [edit | edit source]
    [edit | edit source]
    1. ^ [1], TUG-99