TeX ([], im deutschsprachigen Raum auch ), in Eigenschreibweise , ist ein von Donald E. Knuth ab 1977 entwickeltes und 1986 fertiggestelltes Textsatzsystem, mit dem (insbesondere wissenschaftliche) Texte geschrieben und für den Druck oder die Bildschirmansicht formatiert werden können. In TeX enthalten ist eine eingebaute Makrosprache, die ebenfalls TeX genannt wird.
Im engeren Sinn ist TeX ein einzelnes Programm (auf einem Rechner eine ausführbare Datei bzw. der zugrundeliegende Quellcode), das einfache Textdateien und Zeichensatzdateien einliest und eine binäre Dokumentdatei (einer Seitenbeschreibungssprache) erzeugt, die von anderen Programmen ausgedruckt, angezeigt oder anderweitig für eine Ausgabe weiterverarbeitet werden kann; die Funktionalität dieses Programms ist seit 1990 „eingefroren“, und heutzutage wird es vorwiegend von Weiterentwicklungen wie pdfTeX emuliert. In einem weiten Sinne besteht das Textsatzsystem TeX aus Weiterentwicklungen dieses Programms, aus Zeichensatzdateien, tausenden Paketen, die als Eingabetexte verwendet werden können, und vielen weiteren Programmen zur Vor-, Nach- und Zwischenbearbeitung (Sortieren von Registereinträgen, Erzeugen des Literaturverzeichnisses aus einer Datenbank, Bildschirmanzeige, …). Der am einfachsten zu erlernende und auch für unterschiedlichste Kombinationen von Anforderungen am besten gepflegte Zugang zu TeX besteht in der Verwendung des Makropakets LaTeX (samt seinen Erweiterungen), sodass für die Masse der Anwender „TeX“ und „LaTeX“ gewissermaßen dasselbe ist.
Aussprache und Herkunft TeX ist eine Abkürzung des altgriechischen („Fähigkeit, Kunstfertigkeit, Handwerk“). Die Buchstaben stehen für die griechischen Buchstaben Tau, Epsilon und Chi (, und ). In der Darstellung sind diese nicht selten identisch mit lateinischem T, e und X, jedoch unterscheidet sich Letzteres in der Aussprache.
Laut Knuth soll das X als Ach-Laut wie etwa im deutschen Wort ach ausgesprochen werden, also: [].The TeXBook, Donald E. Knuth, Addison-Wesley, 1996. Dieser Laut ist nach einem vorderen Vokal wie e für viele deutsche Sprecher ungewohnt. Daher hat sich im Deutschen auch die Aussprache [] eingebürgert – mit Ich-Laut wie in Technik und anderen von abgeleiteten Wörtern.
Verwendung TeX kann für alle Arten von Texten verwendet werden, vom kurzen Brief bis zu mehrbändigen Büchern, wobei TeX ursprünglich für längere Texte und wissenschaftliche Arbeiten entwickelt wurde. Viele große wissenschaftliche Verlage nutzen es für den Bücherdruck bzw. Werksatz. Besondere Stärken sind der mathematische Formelsatz sowie das erzeugte Schriftbild. Bei letzterem insbesondere der hochwertige Blocksatz.
Technik Technisch gesehen handelt es sich bei TeX um einen Interpreter, der rund 300 fest eingebaute Befehle (sogenannte primitives) kennt und einen komplexen Mechanismus zur Definition eigener Makros bereitstellt. Aus entsprechenden Quelldateien erstellt TeX sogenannte DVI-Dokumente, neuere Versionen können auch direkt PDF-Dateien erzeugen. Der Textsatz erfolgt absatzweise, wobei nach einem eigenen Optimierungsverfahren alle Zeilenumbrüche (inklusive Worttrennung) im Absatz gleichzeitig bestimmt werden. Ein einfacher Algorithmus bestimmt danach den optimalen Seitenumbruch. Die Optimierungsverfahren arbeiten mit Bewertungspunkten (penalties), anhand derer die möglichen Umbruchpunkte bewertet werden. Zeilen- und Seitenumbruch werden von einer Vielzahl von Parametern, insbesondere Registern und elastischen Längen, gesteuert, die auch im Dokument geändert werden können (genauere Beschreibung erfolgt unten). TeX selbst kommt mit einem Minimum an Ressourcen aus und stellt nur die Grundfunktionen zur Verfügung.
TeX wird durch eine Vielzahl von Softwarepaketen ergänzt, die eine effiziente und komfortable Nutzung von TeX erst ermöglichen. Eine relativ einfache Software-Zusammenstellung, die die wichtigsten allgemeinen Grundbedürfnisse erfüllt, ist das von Donald E. Knuth selbst entwickelte plain TeX, das in Knuths Einführungsbuch The TeXbook ausführlich beschrieben ist. Weitaus bekannter und anwenderfreundlicher ist das ursprünglich von Leslie Lamport entwickelte LaTeX. Darauf aufbauend gibt es mehrere Tausend Zusatzpakete für alle erdenklichen Gebiete. Mit dem Paket hyperrefhyperref – Kurzdarstellung auf CTAN mit Links zu Dokumentation und Downloads. lässt sich beispielsweise ohne großen Zusatzaufwand ein Hypertext erstellen, der die Navigation im Inhaltsverzeichnis und im Index in einem PDF-Leseprogramm sowie Links ins Internet ermöglicht. Das Programm BibTeX ermöglicht die Erstellung und Verwaltung von Quellenangaben in TeX-Texten, MakeIndex erzeugt aus „rohen“ Indexeinträgen der Gestalt (Terminus, Seite) Seitenzahllisten für die jeweiligen Terminus-Einträge. Inzwischen sind moderne utf8-fähige Alternativen zu diesen Werkzeugen entwickelt worden.Etwa BibLaTeX mit biber und xindy.
„Erweiterungen“, „Formate“, Makros
„Erweiterungen von TeX“ sind folgendermaßen zu unterscheiden:
Weiterentwicklungen wie pdfTeX, die in einem einzelnen Programm (als Binärdatei) bestehen und die Funktionalität des Programms TeX erweitern (siehe unten);
Formate im Sinne typischerweise umfangreicher Makrosammlungen wie die genannten plain TeX und LaTeX („Format“ hier nicht zu verwechseln mit „Dateiformat“, mehr folgt); Zusatzpakete im Sinne kleinerer Makrosammlungen (Textdateien), die zumeist auf ein einzelnes Format zugeschnitten sind, wie LaTeX-Erweiterungen; das genannte hyperref ist eine solche „LaTeX-Erweiterung“. Ein Makro ist gekennzeichnet durch einen gewöhnlich mit einem Backslash (umgekehrten Schrägstrich) beginnenden „Befehl“ und eine damit verbundene Ersetzungsregel.Vgl. Substitution (Logik). Die Ersetzung findet allerdings nicht auf der Ebene eingebener Zeichen statt, sondern in Bezug auf das formale Alphabet der Tokens im Sinne von Kapitel 7 von The TeXbook. Im Beispiel \leavevmode wird ein einzelnes Token durch zwei andere Tokens ersetzt, die Darstellung ist im Bemühen, nicht zu technisch zu werden, irreführend. Auch einzelne Zeichen können sich wie Makros verhalten, z. B. die Tilde ~zur Erzeugung eines geschützten Leerzeichens, und das doppelte Anführungszeichen mit ngerman. Beispielsweise wird unter plain TeX und LaTeX \leavevmode durch \unhbox\voidb@x ersetzt. Wenn ein Format als „Makrosammlung“ bezeichnet wird, ist damit eine Sammlung entsprechender Ersetzungsregeln gemeint. Erst durch ein solches Format wird TeX für praktische Anwendungen handhabbar. („Lebensnahe“ Beispiele von Makros findet man unter LaTeX#Aufbau eines Dokuments.)
Ein TeX-Format ist typischerweise folgendermaßen gekennzeichnet: durch eine Textdatei, die die Makro-Ersetzungsregeln enthält – für plain TeX/LaTeX enthält die Datei plain.tex/latex.ltx eine Zeile \def\leavevmode{\unhbox\voidb@x} zur Ersetzung von \leavevmode; durch eine Binärdatei mit der Endung .fmt (plain.fmt/latex.fmt), die TeXs Speicher nach Einlesen der Makrosammlungsdatei darstellt (zusätzlich aber noch Speichergrößenparameter und sprachspezifische Trennregeln enthält); durch auf das Format zugeschnittene Zusatzpakete (z. B. LaTeX-Erweiterungen) – im „TeX-Archiv“ des Comprehensive TeX Archive Network enthält das Verzeichnis macros/tex-archive/macros Unterverzeichnisse für einzelne Formate, in denen ihrerseits die darauf zugeschnittenen Zusatzpakete aufgelistet sind; durch verfügbare Anleitungen – es gibt Bücher über plain TeX wie The TeXbook und Bücher über LaTeX und seine Erweiterungen wie Der LaTeX-Begleiter, aber keine Bücher über plain TeX und LaTeX.
Erläuterungen: Ein TeX-Format ist ein „Mittelding“ zwischen Textdatei und Binärdatei. Im Prinzip könnte TeX einfach die „Makrosammlungen“ plain.tex bzw. latex.ltx, danach die Zusatzpakete und schließlich die Dateien mit dem Text des darzustellenden Dokuments einlesen. In den Jahren um 1990 nahm das Einlesen und Verarbeiten der Makrodefinitionen jedoch so viel Zeit in Anspruch, dass es sinnvoll war, direkt das aus den Wertzuweisungen resultierende Speicherabbild einzulesen, statt diese für jeden TeX-Lauf aus der Makrosammlungsdatei heraus vornehmen zu lassen. Appendix E von The TeXbook führt Beispiele kleinerer TeX-Formate auf. Als Appendix B ist eine „menschenlesbare“ Darstellung von plain.tex abgedruckt (mit technischen Auslassungen). Im Gegensatz zu formatspezifischen Zusatzpaketen gibt es durchaus auch solche, die mit verschiedenen Formaten verwendet werden können; solche findet man im „TeX-Archive“ unter macros/generic/.tex-archive/macros/generic
ConTeXt
Neben den TeX-Formaten plain TeX und LaTeX ist auch ConTeXt recht bekannt. Im Vergleich zu LaTeX hat es mehr Funktionen (wie Hypertext-Unterstützung) direkt eingebaut, andererseits sind weniger Zusatzpakete als für LaTeX verfügbar. ConTeXt ist jedoch kein Beispiel eines mit Knuths Programm TeX verwendbaren Formats, es funktioniert nur mit „Binärerweiterungen“ von Knuths TeX, siehe ConTeXt#Mark II, Mark IV und LMTX.
Beispiel Das folgende Beispiel zeigt die Schritte, um in plain TeX Text zu setzen.
Zuerst wird eine Textdatei (zum Beispiel Text.tex) mit dem folgenden Inhalt erstellt:
Hallo \bye
Der zu setzende Text ist in diesem Fall Hallo. Die Anweisung \bye ist ein TeX-Befehl, der das Ende der Datei angibt und in der Ausgabe nicht erscheint.
Danach gibt man in einem Kommandozeileninterpreter den Befehl tex Text.tex ein. TeX erzeugt die Datei Text.dvi (dvi steht für „device independent“, also „geräteunabhängig“).
Die Datei Text.dvi kann (etwa mit dem yap-Programm der MiKTeX-Distribution oder mit xdvi unter Unix) auf dem Bildschirm dargestellt werden. Auf dem Bildschirm erscheint eine Druckseite mit dem Wort „Hallo“.
Die dvi-Datei kann direkt vom Anzeigeprogramm aus ausgedruckt werden oder in ein Druckerformat (etwa PostScript, mit dem dvips-Programm) umgewandelt werden.
Die Stärke von LaTeX liegt darin, dass für viele übliche Dokumente bereits Schablonen vorliegen, die man verwenden kann. LaTeX ist ein Softwarepaket mit einer Sammlung von Makros, die in der Sprache TeX geschrieben sind.
Geschichte und Hintergrund Knuth begann mit der Entwicklung des TeX-Systems, weil er mit der schlechter werdenden typografischen Qualität seiner Buchreihe The Art of Computer Programming (TAOCP) unzufrieden war:
Band 1 erschien 1968, Band 2 1969. Die Druckvorlagen wurden mit der Technik der Monotype gesetzt. Diese Art des Formelsatzes war aufwendig. Nach Erscheinen von Band 3 1973 verkaufte Knuths Verleger seine Monotype-Maschinen. Die korrigierten Neuauflagen von Band 1 und 3, die 1975 erschienen, mussten in Europa gesetzt werden, wo noch einige Monotype-Systeme in Gebrauch waren.
Die Neuauflage von Band 2 sollte 1976 mit Fotosatz erstellt werden, doch die Qualität der ersten Proben enttäuschte Knuth (Digital Typography, Kapitel 1). Er hatte 15 Jahre Arbeit in die Reihe gesteckt und wollte sie nur fortsetzen, wenn die Bücher entsprechend gut gesetzt waren. Im Februar 1977 bot sich ein Ausweg, als Knuth im Rahmen einer Bücherevaluierung die Ausgabe eines digitalen Drucksystems mit 1000 dpi Auflösung vorgelegt bekam. Pat Winston hatte damit ein Buch über künstliche Intelligenz geschrieben. Als Knuth dies klar wurde, unterbrach er die Arbeit an Band 4, von dem er die ersten 100 Seiten fertiggestellt hatte, und entschloss sich, selbst die Programme zu schreiben, die er und sein Verleger brauchten, um Band 2 neu zu setzen. Das Design von TeX begann am 5. Mai 1977.
Knuth schätzte die notwendige Arbeit auf wenige Monate ein. Im Mai 1977 schrieb er an seinen Verleger, dass er die ersten Vorlagen im Juli fertig haben würde.