TeXML
| {{#if: (TeXML) | (TeXML) | {{#invoke:WLink|getArticleBase}} }}
{{#if: TeXML-Logo | | ||||||||
|---|---|---|---|---|---|---|---|---|
colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | TeXML-Logo |
{{#if: {{#invoke:Wikidata|claim|P154}} |
| ||||||||
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
}} }}{{#if: | | ||||||||
| {{#if: | }}| }} | ||||||||
| Basisdaten
{{#if: | | ||||||||
| Hauptentwickler |
{{#if: {{#invoke:Wikidata|claim|P126}} |
| |||||||
| Maintainer | claim|P126|parameter=link|references=ja|list=, }}
}} }}{{#if: Oleg A. Paraschenko | | |||||||
| Entwickler |
{{#if: {{#invoke:Wikidata|claim|P178}} |
| |||||||
| Entwickler | claim|P178|parameter=link|references=ja|list=, }}
}} }}{{#if: | | |||||||
| Erscheinungsjahr |
{{#if: {{#invoke:Wikidata|claim|P577}} |
| |||||||
| Erscheinungsjahr | claim|P577|references=ja|list=, }} |
{{#if: {{#invoke:Wikidata|claim|P571}} |
| |||||||
| Erscheinungsjahr | claim|P571|references=ja|list=, }}
}} }} }}{{#ifeq: Dezember 2010 | KEINE_ANGABE || {{#if: Dezember 2010 | | |||||||
| Aktuelle Version | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} |
|
| Aktuelle Version | claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}} }}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: | | |||||||
| Aktuelle Vorabversion | ({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an. |
format | {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} | {{{2}}} | T._Monat JJJJ}} | lang= {{#switch: | -|=de | #default=de-AT
}} }} }}) }} |
{{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} |
|
| Aktuelle Vorabversion | claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} | ({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}} }}{{#if: | | |||||||
| Ausführungsumgebung |
{{#if: viele |
| |||||||
| Betriebssystem |
{{#if: {{#invoke:Wikidata|claim|P306}} |
| |||||||
| Betriebssystem | claim|P306|parameter=link|references=ja|list=, }}
}} }} }}{{#if: | | |||||||
| Programmiersprache |
{{#if: {{#invoke:Wikidata|claim|P277}} |
| |||||||
| Programmiersprache | claim|P277|parameter=link|references=ja|list=, }}
}} }}{{#if: Schriftsatz | | |||||||
| Kategorie | Schriftsatz
}}{{#if: MIT | | |||||||
| Lizenz | MIT |
{{#if: {{#invoke:Wikidata|claim|P275}} |
| |||||||
| Lizenz | claim|P275|parameter=link|references=ja|list=, }}
}} }}{{#if: | | |||||||
| deutschsprachig | faculty|}} | ja | nein }}
}}{{#if: | | |||||||
| Sonstiges | {{{Sonstiges}}}
}}{{#if: http://www.getfo.org/ | | |||||||
http://www.getfo.org/ |
{{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} |
| ||||||||
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
}} }}{{#if: | | ||||||||
| Dateien | [[c:Category:Created with {{{Dateien}}}|{{{Dateien}}}]]
}} | |||||||
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:
<syntaxhighlight lang="latex"> <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> </syntaxhighlight>
TeXML-Prozess
Der TeXML-Prozess transformiert die im Zwischenformat TeXML vorliegenden XML-Daten nach TeX:
<syntaxhighlight lang="latex"> \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} </syntaxhighlight>
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:
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)