TeXML (original) (raw)
From Wikipedia, the free encyclopedia
TeXML
![]() |
|
---|---|
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 [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.
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]
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.
- 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.
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]
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: $, ^, >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]
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
- 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
- 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