TeXML
TeXML ist – als Prozess – eine auf TeX basierende Alternative zu XSL-FO.

TeXML wurde als Open-Source-Projekt mit dem Ziel entwickelt, XML-Daten automatisch und in anspruchsvollem Layout als PDF darzustellen.

Mit Hilfe einer zusätzlichen Strukturdefinition überbrückt TeXML die Syntax-Unterschiede zwischen TeX und XML.

Technisch werden die Markup-Elemente von TeX im XML-Syntax dargestellt.

Entwicklung 

TeXML ist eine Weiterentwicklung der ursprünglich von IBM erstellten Spezifikation, wobei zwischen Struktur und Transformation unterschieden werden muss.

 Struktur

Die XML-Definition der TeXML-Struktur gilt seit 1999 als abgeschlossen (TeXML.dtd).

Sie ist das Markup-Bindeglied zwischen TeX und XML.

 Transformation

Die Transformationsprozesse arbeiten seit Ende 2010 stabil, so dass ein produktiver Einsatz der Technologie möglich ist.

Der ursprünglich versuchte Ansatz einer Java-Anwendung wurde von IBM aufgegeben und nicht weiter verfolgt.

Anwendung 

Zur Anwendung kommt TeXML zum Erstellen von Technischer Dokumentation aus XML-Daten.

Nach der Transformation TeXML → TeX steht die durch LaTeX definierte Sammlung von TeX-Makros zur Verfügung.

Mit Hilfe der TeX-Makros ist es möglich für die Publikation von XML-Daten ein beliebig konfigurierbares Layout zu definieren.

Besonderheiten 
 TeXML erlaubt die automatische Publikation von XML-Daten mit Hilfe eines Textsatzprogramms, das für den manuellen Schriftsatz entworfen wurde.

 Im Gegensatz zur Publikation mit der XSL-FO Technik kann das Layout der zu publizierenden XML-Daten subtil mit Ausnahmeregeln im Zwischencode beeinflusst werden.

 Ausnahmeregeln sind vom Publikations-Prozess erlernbar, das Layout wird also mit jedem Generierungslauf verbessert.

 Hohe Geschwindigkeit des Publikations-Prozesses, besonders bei umfangreichen Dokumenten bis 100-fache Geschwindigkeit im Vergleich zu XSL-FO basierten Prozessen.

TeXML-Struktur 

Die Dokumenttypdefinition der TeXML-Struktur besteht aus den XML-Elementen:
 Root element: TeXML
 Encoding commands: cmd
 Encoding environments: env
 Encoding groups: group
 Encoding math groups: math und dmath
 Encoding control symbols: ctrl
 Encoding special symbols: spec
 PDF literals: pdf

Aufbau eines TeXML-Dokuments 

Ein Beispiel für ein XML-Dokument, das bereits in die TeXML-Struktur transformiert wurde:

<TeXML>
<TeXML escape="0">
\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
</TeXML>
<env name="document">
Die Fehlinterpretation von Sonderzeichen als Steuerzeichen nennt man "Escaping", also: $, ^, >
</env>
</TeXML>

TeXML-Prozess 

Der TeXML-Prozess transformiert die im Zwischenformat TeXML vorliegenden XML-Daten nach TeX:

\documentclass[a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
Die Fehlinterpretation von Sonderzeichen als Steuerzeichen nennt man "Escaping", also: \textdollar{}, \^{}, \textgreater{}
\end{document}

Unterstützung der Prozesse 

Die Arbeiten auf der Erfassungsebene (XML) und der Publikationsebene (TeX) werden durch verschiedene Werkzeuge unterstützt, beispielsweise:

 Erfassungsebene: XML-Editoren
– Eclipse (IDE), quelloffen
– andere freie XML-Editoren

 Publikationsebene: Synchronisation zwischen dem Code und ausgegebenem PDF mit Hilfe von pdfSync:

– Windows PC: Editor MiKTeX
– Mac OS X: Editor TeXShop

Literatur 

 Frank Mittelbach The LaTeX Companion – Tools and techniques for computer typesetting
 Michel Goossens The XeTeX Companion (PDF; 3,1 MB) – TeX meets OpenType and Unicode

Weblinks 
 SGML/XML and (La)TeX – Lösungsansätze XML als TeX darzustellen
 TeXML: an XML syntax for TeX – TeXML-Projekt (Download)
 How to embed pdfsync into pdftex – Synchronisation zwischen Code und PDF
 TeXML: Typesetting XML with TEX (PDF; 182 kB) – Ursprüngliche Konzeption des TeXML Projekts
 TeXML: A three-part solution that provides a path from XML into the TeX formatting language – Kurzdarstellung des Projekts von IBM Research (Archiv)

XML-basierte Sprache
TeX