TeXML

TeXML
DeveloperOleg A. Paraschenko
Stable release
December 2010
Written inPython
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

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

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

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

  1. ^ [1], TUG-99

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.