TeXML
# 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-Prozess

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

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