TeXML [tɛχːml] is – as a process – a TeX-based alternative to XSL-FO.
![]() | |
Developer(s) | Oleg A. Paraschenko |
---|---|
Stable release | December 2010
|
Written in | Python |
Operating system | Cross-platform |
Type | Typesetting |
License | MIT/X Consortium license |
Website | http://www.getfo.org/ |
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
editTeXML 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
editTeXML 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- 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
editThe 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
editAn 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
editThe 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
editWorks 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:
Literature
edit- Frank Mittelbach The LaTeX Companion Archived 2004-05-18 at the Wayback Machine – Tools and techniques for computer typesetting
- Michel Goossens The XeTeX Companion – TeX meets OpenType and Unicode
External links
edit- SGML/XML and (La)TeX – Approaches to transform XML to TeX
- TeXML: an XML syntax for TeX – TeXML project (Download)
- How to embed pdfsync into pdftex – Synchronization between Code and PDF
- TeXML: Typesetting XML with TEX – Original concept of the TeXML project
- Resurrecting TEX in the XML world - 2007 TUGboat article by Oleg Parashchenko re-motivates TeXML
- Generate TEX documents using pdfscript - 2010 TUGboat article by Oleg Parashchenko describes Python implementation