Kunst, Geschick und Handwerk: Allein und gemeinsam - Alle Komponenten des TeX-Systems

…so lautet die sinngemäße Übersetzung von »TeX«. Ein treffender Name, denn als Satzsystem für Texte füllt TeX die Bedeutung seines Namens mit Leben wie kaum ein anderes Software-Paket. Von seinen Anwendern heiß geliebt, von den Nicht-Eingeweihten als hoffnungslos kompliziert abgetan: Wie immer liegt die Wahrheit in der Mitte, wie unser aktueller Schwerpunkt beweist.

TeX, das perfekte Schreibprogramm? Sicherlich nicht. Das nüchterne Erscheinungsbild und seine Komplexität sind für Atari-Verhältnisse mehr als ungewohnt. Optik und Organisation des Satzsystems erinnern weitaus eher an eine UNIX-Anlage als an die Arbeitsumgebung der vertrauten Atari-Programme. Daß daraus Probleme entstehen, kann niemand verwundern. Welcher TeX-User kennt sie nicht, die Hürden auf dem Weg zur Erkenntnis? Was liegt also näher, als sich TeX einmal von dieser Seite zu nähern.

Die Hauptarbeit leisten dort voneinander unabhängige Programme des Typs TTP (TOS Takes Parameter). In einem TeX-Lauf arbeiten Hauptprogramm (TeX.ttp) und Treiber Hand in Hand. Sie greifen dabei auf eine Vielzahl von externen Dateien zu, die exemplarisch in Bild 1 dargestellt sind. Das Diagramm vermittelt einen Einblick in die Grundstruktur des Gesamtsystems. Neben den hier aufgeführten Unterverzeichnissen existieren eventuell weitere Pfade, deren Bedeutung Bild 2 kurz erläutert. Unter den ausführbaren Programmen findet sich stets das Programm INITEX. Es übernimmt die eigentliche Vorbereitung der Arbeit. INITEX erhält als Eingabe alle Makros, die bekannt sein sollen, und die sprachspezifischen Trennmuster, nach denen später getrennt werden darf. Es ist klar, daß die so vorbereiteten Befehle keine endgültigen Festlegungen sind. Den Experten kann nichts und niemand daran hindern, sie wieder umzudefinieren und mit abweichenden Bedeutungen zu versehen.

Rufen Sie INITEX.TTP mit dem Argument PLAIN (bzw. PLAING) auf, so finden Sie nach einigen Minuten zwei neue Dateien auf Ihrer Festplatte (s. Bild 3). Neben der Formatdatei (*.fmt) entsteht ein LOG-File, das die Bearbeitungsmitteilungen des Bildschirms sowie weitere Zusatzinformationen bereitstellt. Während PLAIN.FMT alles enthält, was für das Arbeiten mit englischen Texten notwendig ist, kommt PLAING.FMT bei deutschen Texten zum Einsatz.

Die Installation von LaTeX folgt derselben Logik. Wesentlich sind die Dateien LATEX.TEX, LPLAIN. TEX (bzw. LPLAING.TEX) und LFONTS.TEX (vgl. Bild 3). Sie werden nach der INITEX-Bearbeitung zu einem Bestandteil von LPLAIN.FMT (bzw. LPLAING.FMT).

LATEX.TEX umfaßt das LaTeX-Grundprogramm. Enthalten sind alle LaTeX-Makrodefinitionen, die unabhängig von der gewählten Stilart und den evtl, verwendeten Optionen beim Dokumentstil-Befehl benutzt werden.

Wer sich einmal die Mühe macht, die Dateien näher zu untersuchen, stellt fest, daß das File LFONTS.TEX verglichen mit LATEX.TEX sehr viel einfacher zu durchschauen ist. LFONTS.TEX untergliedert sich in mehrere Definitionsgruppen. Von Bedeutung sind nicht zuletzt die internen Befehlsdefinitionen für die Schriftarten (z.B.\ rm, \ it) und die Schriftgrößen (z.B. \ normal-size, \ huge). Solche Makros sind es, die LaTeX für die Textformatierung erst handhabbar machen. Sie werden unterstützt durch eine Sammlung von Dokumentstilen (book.sty, article.sty usw.) für die unterschiedlichsten Textformen (Bücher, Thesenpapiere, Briefe usw.). Dokumentstile bilden die logische Struktur des Textes auf eine festgelegte äußere Form ab. Vor allem der lernwillige Anfänger weiß sie zu schätzen.

Bild 1. Das TeX-Gesamtsystem: Einzeldateien

Vielleicht haben Sie sich schon einmal nach dem Sinn dieser Vorbereitung gefragt. Der Vorteil des Verfahrens liegt eindeutig in der Zeitersparnis. Gibt man beim Programmstart des normalen TeX-Programms den Namen einer Formatdatei an (This is TeX, Version 3.14, preloaded format = plain 21.5.1992), so werden die bereits vorinterpretierten Makros sehr schnell eingelesen, ohne daß die üblichen komplexen Abprüfungen stattfinden. Einen Haken hat die Arbeit mit Format-Dateien allerdings: Durch die geladenen Makros wird Speicherplatz belegt. Dieser fehlt vielleicht später bei der einen oder anderen Anwendung, weil sehr viel Raum durch nicht benötigte Makros besetzt ist.

Ein oft vernachläßigter Kollege von TeX ist Metafont. Metafont wurde ebenso wie TeX von Donald Knuth entwickelt. Auf der Grundlage einer sehr mächtigen Makrosprache erlaubt es das Umrechnen von Vektorzeichen in eine Pixeldarstellung mit gewünschter Auflösungsstufe. Alle zu TeX gehörigen Zeichensätze sind in der Makrosprache von Metafont als Kurvenzüge definiert. Strukturbedingt bestehen viele Ähnlichkeiten zwischen Metafont und TeX. Die Plain-Quelldatei heißt hier PLAIN.MF. Nach ihrer Bearbeitung mit INIMF wird sie zur Base-Datei (*.bse), der in TeX die Format-Datei PLAIN.fmt entspricht.

Die TeX-Shell ist jenes Programm, mit dem der Anwender unmittelbar in Kontakt kommt. Sie sorgt für das reibungslose Zusammenspiel zwischen Text-Editor, Satzgestaltung und Font-Generator. Hier nimmt man auch die typischen Grundeinstellungen vor. Bei der Festlegung der Parameter ist äußerste Sorgfalt angebracht. Korrekte Pfadangaben und Parameterzuweisungen bilden die Voraussetzung zum störungsfreien Ablauf von TeX. Wie unter UNIX üblich sind die diversen Optionen mit Bindestrich und einbuchstabigen Kürzeln anzugeben.

Damit wäre auch schon die grundsätzliche Organisation von TeX geklärt. Die konkrete Arbeitsweise hängt nun davon ab, wie TeX mit Zeichen verfährt. Wie wird der Umgang mit Zeichen programmtechnisch realisiert? Untersuchen wir zunächst die Font-Dateien.

Bei der Bearbeitung eines Textfiles interessiert sich TeX allein für die Metrik der einzelnen Zeichen. Informationen darüber, wie hoch und wie breit die Zeichen sind, wie weit sie unter die Grundlinie ragen und wo standardmäßig das Folgezeichen anzubringen ist, entnimmt TeX den sogenannten Font-Dateien (.tfm). Solche Daten reichen für den zu bearbeitenden Text vollkommen aus. Die Deklaration \ font\ ssi=cmssi10(sans serife italic 10pt) wird also bereits dann akzeptiert, wenn die Datei cmssi10.tfm verfügbar ist. Für jeden Grundzeichensatz existiert genau ein TFM-File. Die Zeichensatzfiles (.pk) zur realen Erzeugung der Zeichen sind für TeX und LaTeX ohne Belang. Diese kommen erst bei der Bildschirm- und Druckerausgabe ins Spiel.

Gewiefte TeX-Benutzer mögen jetzt einwenden, daß TeX wesentlich mehr Zeichensätze kennt als TFM-Files verfügbar sind. Das ist auch richtig, nur: Vergrößerungen und Verkleinerungen benötigen keine eigenen Font-Dateien. Sie entstehen durch einen einheitlichen Skalierungsfaktor aus dem Grundzeichensatz.

Geht es um die Darstellung des eigenen Werks, treten Bildschirmoder Druckertreiber in Aktion. Da beide derselben Logik folgen, mag es an dieser Stelle genügen, den Druckertreiber näher zu beleuchten.

Zum Drucken bedarf es passender Zeichensätze. Sie liegen in der für den Drucker erforderlichen Auflösungsstufe im gepackten PK-Fo-mat vor. Die PK-Dateien beinhalten - vereinfacht ausgedrückt -Informationen, wie die Rechtecke mit Farbe zu füllen sind. Bei der Erstellung mit Metafont wird ein zu generierendes Zeichen in einer Matrix aufgemalt und die entstandene Fläche mit Punkten angereichert. Der Schwärzungsgrad ist dabei von der Auflösung des Druckers abhängig.

Bild 3. Die Ergebnisse des INITEX-Laufs

Anders als die Font-Daten müssen die Files mit den Druckerzeichensätzen für jede angesprochene Vergrößerungsstufe neben dem Grundzeichensatz existieren. Erst dann lassen sie sich ausdrucken. Ein Beispiel: Eine um\ magstep1 (= 1.2) vergrößerte Bold-extended Schrift (\font\fettugross=cmb0 scaled \ magstep1) erscheint erst dann auf dem Papier, wenn der Treiber eine Datei mit Namen cmb0.pk vorfindet.

Die Ausgabe einer TeX oder LaTeX-Behandlung erfolgt geräteunabhängig mit dem Grundnamen des bearbeiteten Textfiles und dem Anhang *.dvi. Wer einmal den Versuch macht, eine DVI-Datei zu entschlüsseln, sieht sich zunächst mit einer Fülle unverständlicher Informationen konfrontiert. Hinter dem Zeichenwirrwar verbirgt sich eine eigene Befehlssprache. Sie enthält Angaben über die auszugebenden Zeichen, die Wahl des jeweiligen Zeichensatzes sowie über die Positionierung der einzelnen Textboxen. Weitere DVI-Befehle sind Angaben zu horizontalen und vertikalen Balken sowie die Kennung des Seitenanfangs und -endes.

Die Umwandlung der DVI-Ausgabefiles in die Befehls- und Datenfolge für einen speziellen Drucker ist Aufgabe des DVI-Druckertreibers. Er leistet gewissermaßen die Anpassungsarbeit an die konkrete Hardware. Bereits der Umfang dieser Software läßt darauf schließen, daß TeX-Treiber in der Regel mehr leisten müssen als herkömmliche Druckertreiber. Im wesentlichen erfüllt die Treiber-Software zwei Aufgaben:

a) Einmal soll sie das DVI-File testen und feststellen, welche Zeichensätze mit welchen Zeichen innerhalb des DVI-Files angefordert werden. Nur die für das bearbeitete Dokument wirklich benötigten Zeichen werden geladen.

b) Die Hauptaufgabe besteht natürlich im Ausdruck des Textes. Dazu wandelt der Treiber sowohl die Positionierungsangaben des DVI-Files als auch den Ausgabekode der einzelnen Zeichen in den druckerspezifischen Kode um und gibt ihn aus. Wir sind am Ende unseres Rundgangs durch TeX angelangt und Sie haben gesehen, daß die Funktionalität des Gesamtsystems auf einem reibungslosen Zusammenspiel seiner Einzelkomponenten basiert. Wer sich damit auskennt, wird mit TeX keine Probleme haben. (wk)

Bild 2. Erklärung der Unterverzeichnisse

Klaus Konrad
Aus: TOS 04 / 1993, Seite 86

Links

Copyright-Bestimmungen: siehe Über diese Seite