TeXML

{{Infobox software

| 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/

}}

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.[http://www.tug.org/tug99/bulletin/preprintmap/node1.html], TUG-99

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

File: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:

\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:

\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 [http://www.latex-project.org/guides/tlc2-ch0.pdf The LaTeX Companion] {{Webarchive|url=https://web.archive.org/web/20040518142632/http://www.latex-project.org/guides/tlc2-ch0.pdf |date=2004-05-18 }} – Tools and techniques for computer typesetting
  • Michel Goossens [http://xml.web.cern.ch/XML/lgc2/xetexmain.pdf The XeTeX Companion] – TeX meets OpenType and Unicode