Der Schriftsatz-Prozess |
Um das TeXmacs-Format zu verstehen, sollte man wissen, wie der Schriftsatz von Dokumenten im Editor durchgeführt wird. Der Prozess setzt die logischen TeXmacs-Baum-Strukturen in physikalische Boxen um, die auf dem Bildschirm dargestellt werden können. Man muss sich darüber klar sein, dass diese Boxen außer den Informationen, die zur Darstellung auf dem Bildschirm erforderlich sind, weitere Informationen enthalten, so z.B. wie der Cursor innerhalb der Box zu positionieren ist oder wie wie Text ausgewählt wird.
Der Prozess, der den Schriftsatz durchführt, der Schriftsetzer, führt zwei verschiedene Abläufe aus: die Auswertung des TeXmacs-Baums und den eigentlichen Schriftsatz. Diese beiden Vorgänge laufen zur Zeit in einem Schritt ab, das kann sich aber in Zukunft ändern.
Die Schriftsatz-Konstrukte sind in den Editor integriert
und auf Schnelligkeit optimiert. So gibt es z.B. Konstrukte zur
horizontalen Verkettung (
Die Sprache für Stil-Definitionen erlaubt dem
Benutzer, neue Konstrukte (Makros) zu definieren und vordefinierte zu
modifizieren. Sie enthält die Konstrukte zur Makrodefinition,
Ablaufsteuerung, Berechnungen, bedingte und verzögerte
Ausführung usw.. Die Sprache für Stil-Definitionen besitzt
außerdem den besonderen Befehl
Man beachte, dass benutzerdefinierte Makros zwei verschiedene Aufgaben durchführen.Eine Aufgabe besteht in einfachen Ersetzungen. Zum Beispiel ist das folgende Makro eine Kurzform von so etwas wie a1,…,an.
<assign|seq|<macro|var|from|to|varfrom,…,varto>>
Wenn Makros nur aus Ersetzungen bestehen, dann sind sie und ihre
Kinder „erreichbar“, accessible im Editor. Im
Beispiel oben sind z.B. die Argumente var,
from und to die
Kinder von
<assign|square|<macro|x|<times|x|x>>>
ist ein reines Rechenmakro. Generell gilt rein, dass synthetische Makros leichter zu schreiben sind, dass aber die Editierbarkeit von Makros leichter und natürlicher wird, je mehr man auf den Erhalt der Erreichbarkeit achtet.
TeXmacs produziert eine Reihe von Hilfsdaten während des Schriftsetzens, beispielsweise die Werte von Verweisen, Seitenzahlen, Inhaltsverzeichnisse, Indexe usw.. Diese werden im Zuge des Schriftsetzens ermittelt und gespeichert. Diese Hilfsdaten können prinzipiell aus dem Dokument berechnet werden. Das kann aber zeitaufwendig sein und im Fall, dass ein externes Plugin die Berechnungen durchführt, kann es passieren, dass dieses Plugin auf anderen Rechnern nicht zur Verfügung steht, die Berechnung also nicht durchführbar ist. Deshalb werden die gespeicherten Hilfsdaten mit dem Dokument zusammen abgespeichert, sobald sie es auf der Festplatte sichern.