XML-Linearisierung |
Um Kompatibilität mit XML zu erreichen, unterstützt TeXmacs
auch die Linearisierung ins XML-Format. Allerdings ist das XML-Format
wortreicher und schwerer lesbar als das normale TeXmacs-Format. Um
eine Datei im XML-Format (mit Datei-Erweiterung:.tmml)
zu speichern oder zu laden, können Sie das Menü
TeXmacs-Dokumente entsprechen keinem vordefiniertem DTD, denn das für ein Dokument zutreffende DTD hängt von seinem Stil ab. Das XML-Format stellt daher nur eine XML-Darstellung von TeXmacs-Bäumen bereit. Die Syntax wurde mit dem Ziel, eine möglichst Baum-ähnliche Struktur zu erreichen, unter Verwendung konventioneller XML-Syntax entwickelt, die von den üblichen Standard-Werkzeugen unterstützt wird.
Die Blätter der TeXmacs-Bäume werden von der universellen TeXmacs-Kodierung in Unicode übertragen. Zeichen ohne Unicode-Entsprechung werden als Dateneinheit dargestellt (für die Zukunft planen wir eine tmsym-Operation zur Darstellung solcher Zeichen).
Bäume mit einem einzigen Kind werden einfach durch die entsprechende XML-Operation ersetzt. Hat der Baum mehrere Kinder, wird jedes Kind in eine tm-arg -Markierung (tag) eingeschlossen. sqrt (x + y) wird so zu
<sqrt>y+z</sqrt>
linearisiert wird, während der Bruch
1 |
2 |
<frac>
<tm-arg>1</tm-arg>
<tm-arg>2</tm-arg>
</frac>
dargestellt wird.
In dem Beispiel oben wurde Leerraum ignoriert. Indem man die Standard-Variable xml:space auf preserve setzt, kann man Leerraum erhalten.
Einige TeXmacs-Operationen werden auf eine spezielle Weise nach XML
übertragen. Die Grundoperation
1 |
2 |
<frac><tm-arg>1</tm-arg><tm-arg>2</tm-arg></frac>+<sqrt>y+z</sqrt>
Auch die
Dies ist der erste Absatz.
Das ist der zweite Absatz.
linearisiert zu
<quote-env>
<tm-par>
Dies ist der erste Absatz.
<tm-par>
Das ist der zweite Absatz.
</quote-env>
Eine
ein <with color="blue">blauer</with> Text
Umgekehrt stellt TeXmacs die Grundoperation
ein <mytag Tier="haarig">special</mytag> Text
importiert zu „ein <my-tag|<attr|Tier|haarig>|special> Text”. Deshalb ist es prinzipiell möglich, TeXmacs als Editor für normale XML-Dateien zu verwenden.