TeX
Dateinamenerweiterung
.tex
Internet-Medientyp
Erstveröffentlichung1978 ( 1978 )
FormattypDokumentdateiformat

TeX ( / tɛx / ) , stilisiert als T e X , ist ein freies und quelloffenes Textsatzprogramm , das vom Informatiker und Stanford-Professor Donald Knuth [ 2 ] entwickelt und geschrieben und erstmals 1978 veröffentlicht wurde . Der Begriff bezeichnet heute das System von Erweiterungen – darunter Softwareprogramme, sogenannte TeX- Engines , Sammlungen von TeX -Makros und Pakete mit zusätzlichen Satzfunktionen –, das auf der ursprünglichen TeX-Sprache aufbaut. TeX ist ein beliebtes Mittel zum Setzen komplexer mathematischer Formeln und gilt als eines der fortschrittlichsten digitalen Typografiesysteme . [ 3 ]

TeX ist in der Wissenschaft weit verbreitet, insbesondere in Mathematik , Informatik , Wirtschaftswissenschaften , Politikwissenschaft , Ingenieurwissenschaften , Linguistik , Physik , Statistik und quantitativer Psychologie . Es hat Unix troff (das zuvor bevorzugte Formatierungssystem) in den meisten Unix- Installationen längst abgelöst (obwohl troff weiterhin der Standardformatierer der UNIX-Dokumentation ist). TeX wird auch für viele andere Satzaufgaben verwendet, insbesondere als Grundlage für LaTeX , ConTeXt und andere Makropakete .

TeX wurde mit zwei Hauptzielen entwickelt: jedem die Möglichkeit zu geben, mit minimalem Aufwand hochwertige Bücher zu erstellen, und ein System bereitzustellen, das auf allen Computern und zu jeder Zeit exakt die gleichen Ergebnisse liefert (zusammen mit der Metafont- Sprache zur Schriftbeschreibung und der Computer Modern - Schriftfamilie ). [ 4 ] TeX ist freie Software und daher für eine breite Nutzergruppe zugänglich.

Geschichte

Als der erste Band von Knuths „ The Art of Computer Programming“ 1968 erschien [ 5 ], wurde er im Bleisatzverfahren auf einer Monotype-Setzmaschine gesetzt . Diese Methode , die bis ins 19. Jahrhundert zurückreichte, erzeugte einen von Knuth geschätzten „klassischen Stil“ [ 6 ] . Bei Erscheinen der zweiten Auflage 1976 musste das gesamte Buch neu gesetzt werden, da die Monotype-Technologie weitgehend durch den Fotosatz ersetzt worden war und die Originalschriften nicht mehr verfügbar waren. Als Knuth am 30. März 1977 die Korrekturfahnen des neuen Buches erhielt , war er von der Qualität enttäuscht. Daraufhin entwickelte er sein eigenes Satzsystem.

Knuth sah zum ersten Mal die Ausgabe eines hochwertigen digitalen Satzsystems und begann sich für digitale Typografie zu interessieren. Am 13. Mai 1977 verfasste er ein Memo, in dem er die grundlegenden Merkmale von TeX beschrieb. [ 7 ] Er plante, es während seines Sabbaticals 1978 fertigzustellen (obwohl die Syntax der Sprache letztendlich erst 1989 endgültig festgelegt wurde). Guy Steele hielt sich im Sommer 1978 zufällig in Stanford auf , als Knuth seine erste Version von TeX entwickelte. Nach seiner Rückkehr ans Massachusetts Institute of Technology im Herbst desselben Jahres überarbeitete Steele die Ein-/Ausgabe ( E/A ) von TeX, um sie unter dem Betriebssystem Incompatible Timesharing System (ITS) lauffähig zu machen. Die erste Version von TeX, TeX78 genannt, wurde in der Programmiersprache SAIL geschrieben und lief auf einer PDP-10 unter dem WAITS- Betriebssystem von Stanford. [ 8 ]

Für spätere Versionen von TeX entwickelte Knuth das Konzept des Literate Programming , eine Methode, um aus derselben Originaldatei kompilierbaren Quellcode und eine in TeX gesetzte, verlinkte Dokumentation zu erzeugen. Die verwendete Sprache heißt WEB und erzeugt Programme in DEC PDP-10 Pascal .

TeX82 , eine von Grund auf neu geschriebene Version von TeX, wurde 1982 veröffentlicht. Unter anderemwurde der ursprüngliche Silbentrennungsalgorithmus durch einen neuen Algorithmus von Frank Liang ersetzt . TeX82 verwendet außerdem Festkommaarithmetik anstelle von Gleitkommaarithmetik , um die Reproduzierbarkeit der Ergebnisse auf unterschiedlicher Computerhardware zu gewährleisten [ 9 ] und beinhaltet nach intensivem Lobbying von Guy Steele eine echte, Turing-vollständige Programmiersprache [ 10 ] . 1989 veröffentlichte Donald Knuth neue Versionen von TeX und Metafont [ 11 ] .Obwohl er das Programm stabil halten wollte, erkannte Knuth, dass 128 verschiedene Zeichen für die Texteingabe nicht ausreichten, um Fremdsprachen zu unterstützen. Die wichtigste Änderung in TeX 3.0 ist daher die Unterstützung von 8-Bit- Eingaben, wodurch 256 verschiedene Zeichen in der Texteingabe möglich sind. TeX 3.0 wurde am 15. März 1990 veröffentlicht [ 12 ].

Versionsnummerierung

Seit Version 3 verwendet TeX ein eigenes Versionsnummerierungssystem . Aktualisierungen werden durch eine zusätzliche Ziffer am Ende der Dezimalzahl gekennzeichnet, sodass sich die Versionsnummer asymptotisch π annähert . Dies spiegelt die hohe Stabilität von TeX wider, weshalb nur noch kleinere Aktualisierungen zu erwarten sind. Die aktuelle Version von TeX ist 3.141592653; sie wurde zuletzt 2021 aktualisiert. [ 13 ] Das Design wurde nach Version 3.0 eingefroren, und es werden keine neuen Funktionen oder grundlegenden Änderungen mehr hinzugefügt. Alle neueren Versionen enthalten daher nur noch Fehlerbehebungen . [ 14 ] Obwohl Donald Knuth selbst einige Bereiche vorgeschlagen hat, in denen TeX hätte verbessert werden können, betonte er, dass ein unverändertes System, das heute und in Zukunft die gleiche Ausgabe erzeugt, wichtiger sei als die Einführung neuer Funktionen. Aus diesem Grund hat er erklärt, dass die „absolut letzte Änderung (die nach meinem Tod vorgenommen wird)“ darin bestehen wird, die Versionsnummer auf π zu ändern , wodurch alle verbleibenden „Bugs“ zu „Features“ werden. [ 15 ] Ebenso nähern sich Metafont-Versionen nach 2.0 asymptotisch e (derzeit bei 2.7182818), und eine ähnliche Änderung wird nach Knuths Tod vorgenommen. [ 14 ]

Aussprache und Rechtschreibung

Der Name TeX soll laut seinem Entwickler / tɛx / ausgesprochen werden , mit dem letzten Konsonanten von „loch “ . [ 16 ] Die Buchstaben des Namens sollen die griechischen Großbuchstaben Tau , Epsilon und Chi repräsentieren , da TeX eine Abkürzung von τέχνη ( Texnė technē ) ist, dem griechischen Wort für „Kunst“ und „Handwerk“, das auch die Wurzel von „technical “ ist . Englischsprachige sprechen es oft / tɛk / aus , wie die erste Silbe von technical . Knuth gibt an , dass der Name mit dem „E“ unterhalb der Grundlinie und reduziertem Buchstabenabstand gesetzt werden soll. Dies dient, wie Knuth in seinem TeXbook erwähnt , der Unterscheidung von TeX von anderen Systemnamen wie TEX, dem Text-Executive-Prozessor (entwickelt von Honeywell Information Systems). [ 17 ]

Syntax

TeX-Befehle beginnen üblicherweise mit einem Backslash und werden in geschweiften Klammern gruppiert . Fast alle syntaktischen Eigenschaften von TeX lassen sich dynamisch ändern, was die Verarbeitung von TeX-Eingaben durch andere Programme als TeX selbst erschwert. TeX ist eine makro- und tokenbasierte Sprache: Viele Befehle, darunter die meisten benutzerdefinierten, werden dynamisch expandiert, bis nur noch nicht expandierbare Token übrig sind, die dann ausgeführt werden. Die Expansion selbst ist praktisch frei von Seiteneffekten. Endrekursion von Makros benötigt keinen Speicherplatz, und if-then-else-Konstrukte sind verfügbar. Dadurch ist TeX selbst auf der Expansionsebene eine Turing-vollständige Sprache. [ 18 ] Das System lässt sich in vier Ebenen unterteilen: Auf der ersten Ebene werden Zeichen aus der Eingabedatei gelesen und ihnen ein Kategoriecode (kurz „Catcode“) zugewiesen. Kombinationen aus einem Backslash (eigentlich ein beliebiges Zeichen der Kategorie Null), gefolgt von Buchstaben (Zeichen der Kategorie 11) oder einem einzelnen anderen Zeichen, werden durch ein Steuerzeichen ersetzt. In diesem Sinne ähnelt diese Phase der lexikalischen Analyse, obwohl sie keine Zahlen aus Ziffern bildet. In der nächsten Phase werden erweiterbare Steuersequenzen (wie Bedingungen oder definierte Makros) durch ihren Ersetzungstext ersetzt. Die Eingabe für die dritte Phase besteht dann aus einem Zeichenstrom (einschließlich der Zeichen mit Sonderbedeutung) und nicht erweiterbaren Steuersequenzen (typischerweise Zuweisungen und visuellen Befehlen). Hier werden die Zeichen zu einem Absatz zusammengefügt, und der Absatzumbruchalgorithmus von TeX optimiert die Umbruchpunkte innerhalb des gesamten Absatzes. Die vierte Phase unterteilt die vertikale Liste von Zeilen und anderem Material in Seiten.

Das TeX-System kennt die genauen Größen aller Zeichen und Symbole und berechnet anhand dieser Informationen die optimale Anordnung von Buchstaben pro Zeile und Zeilen pro Seite. Anschließend erzeugt es eine DVI- Datei („geräteunabhängig“), die die endgültigen Positionen aller Zeichen enthält. Diese DVI-Datei kann mit einem geeigneten Druckertreiber direkt gedruckt oder in andere Formate konvertiert werden. Heutzutage wird häufig pdfTeX verwendet, das die DVI-Generierung komplett umgeht. [ 19 ] Das Basis-TeX-System versteht etwa 300 Befehle, sogenannte Primitive . [ 20 ] Diese Low-Level-Befehle werden von Benutzern selten direkt verwendet; die meisten Funktionen werden durch Formatdateien bereitgestellt (vorab erstellte Speicherabbilder von TeX nach dem Laden großer Makrosammlungen). Knuths ursprüngliches Standardformat, das etwa 600 Befehle hinzufügt, istPlain TeX . [ 21 ] Das am weitesten verbreitete Format ist LaTeX , ursprünglich von Leslie Lamport entwickelt . Es beinhaltet Dokumentstile für Bücher, Briefe, Präsentationen usw. und bietet Unterstützung für Referenzierung sowie die automatische Nummerierung von Abschnitten und Gleichungen. Ein weiteres weit verbreitetes Format ist AMS-TeX , das von der American Mathematical Society herausgegeben wird und viele weitere benutzerfreundliche Befehle bietet, die von Fachzeitschriften an ihren jeweiligen Stil angepasst werden können. Die meisten Funktionen von AMS-TeX lassen sich in LaTeX mithilfe der „AMS-Pakete“ (z. B. `a`,amsmath`b`amssymb) und der „AMS-Dokumentklassen“ (z. B. `a`,amsart`b` ) nutzen. Dies wird dann als AMS-LaTeXamsbook bezeichnet. [ 22 ] Zu den weiteren Formaten gehört ConTeXt , das hauptsächlich für Desktop-Publishing verwendet und größtenteils von Hans Hagen bei Pragma entwickelt wurde .

Design

Die TeX-Software enthielt mehrere Aspekte, die in anderen Satzprogrammen zum Zeitpunkt ihrer Veröffentlichung nicht oder nur in geringerer Qualität verfügbar waren. Einige der Neuerungen basieren auf interessanten Algorithmen und haben Knuths Studenten zu mehreren Abschlussarbeiten angeregt. Während einige dieser Entdeckungen inzwischen in andere Satzprogramme integriert wurden, sind andere, wie beispielsweise die Regeln für mathematische Abstände, nach wie vor einzigartig.

Mathematische Abstände

Mathematischer Text, gesetzt mit TeX und der AMS Euler -Schriftart

Da das Hauptziel der TeX-Sprache die Erstellung hochwertiger Satze für Buchverlage ist, widmete Knuth den Abstandsregeln für mathematische Formeln große Aufmerksamkeit. [ 23 ] [ 24 ] Er untersuchte drei Werke, die er als Maßstab für mathematische Typografie ansah: die vom Addison-Wesley Verlag (dem Herausgeber von „The Art of Computer Programming “) unter der Leitung von Hans Wolf gesetzten Bücher; Ausgaben der mathematischen Zeitschrift „Acta Mathematica“ aus der Zeit um 1910; und ein Exemplar der „Indagationes Mathematicae“ , einer niederländischen Mathematikzeitschrift. Knuth analysierte diese gedruckten Arbeiten eingehend, um Abstandsregeln zu entwickeln. [ 25 ] [ 26 ] Obwohl TeX einige Grundregeln und die notwendigen Werkzeuge zur Festlegung korrekter Abstände bereitstellt, hängen die genauen Parameter von der verwendeten Schriftart ab. Beispielsweise wurde der Abstand für Knuths Computer Modern- Schriftarten über die Jahre präzise optimiert und ist nun festgelegt. Als Knuth jedoch zum ersten Mal andere Schriftarten wie AMS Euler verwendete, mussten neue Abstandsparameter definiert werden. [ 27 ]

Der Satz von mathematischen Formeln in TeX ist nicht unumstritten, insbesondere hinsichtlich der technischen Details der Schriftmetriken, die in einer Zeit entwickelt wurden, in der der Speicherplatzbedarf im Vordergrund stand. Dies führte zu einigen „Hacks“, die bestimmte Felder überlasteten, was wiederum weitere „Hacks“ erforderlich machte. Auch die Darstellung von Radikalen wurde aus ästhetischer Sicht kritisiert. [ 28 ] Die OpenType-Spezifikation für mathematische Formeln orientiert sich weitgehend an TeX, bietet aber einige neue Funktionen und Verbesserungen. [ 29 ] [ 30 ] [ 31 ]

Silbentrennung und Ausrichtung

Im Vergleich zum manuellen Satz lässt sich das Problem des Blocksatzes mit einem digitalen System wie TeX leicht lösen. TeX kann, sofern geeignete Zeilenumbruchpunkte definiert wurden, die Wortabstände automatisch verteilen, um die Zeile zu füllen. Die Herausforderung besteht also darin, die Umbruchpunkte zu finden, die das optisch ansprechendste Ergebnis liefern. Viele Zeilenumbruchalgorithmen verwenden einen Greedy-Algorithmus , bei dem die Umbruchpunkte für jede Zeile nacheinander bestimmt und nach ihrer Auswahl nicht mehr geändert werden. [ 32 ] Ein solches System kann einen Umbruchpunkt nicht in Abhängigkeit von seinen Auswirkungen auf die folgenden Zeilen definieren. Im Gegensatz dazu verwendet TeX einen global optimierenden Zeilenumbruchalgorithmus, der von Donald Knuth und Michael Plass entwickelt wurde [ 33 ] und alle möglichen Umbruchpunkte in einem Absatz berücksichtigt.

Formal definiert der Algorithmus einen Wert namens „Schlechtigkeit“ für jeden möglichen Zeilenumbruch. Die Schlechtigkeit erhöht sich, wenn die Leerzeichen in der Zeile zu stark gedehnt oder gestaucht werden müssen, um die korrekte Zeilenbreite zu erreichen. Strafen werden verhängt, wenn ein Umbruchpunkt besonders unerwünscht ist: beispielsweise, wenn ein Wort getrennt werden muss , wenn zwei Zeilen hintereinander getrennt werden oder wenn auf eine sehr lockere Zeile unmittelbar eine sehr enge folgt. Der Algorithmus findet dann die Umbruchpunkte, die die Summe der Quadrate der Schlechtigkeit (einschließlich Strafen) der resultierenden Zeilen minimieren. Enthält der Absatz mögliche Umbruchpunkte, beträgt die Anzahl der zu prüfenden Fälle naiv . Durch die Anwendung dynamischer Programmierung lässt sich die Komplexität des Algorithmus jedoch auf O(n²) reduzieren (siehe Big-O-Notation ). Weitere Vereinfachungen (z. B. das Nichtberücksichtigen extrem unwahrscheinlicher Umbruchpunkte wie einer Trennung im ersten Wort eines Absatzes oder sehr voller Zeilen) führen zu einem effizienten Algorithmus mit einer Laufzeit von O(n²) , wobei n die Zeilenbreite ist. Ein ähnlicher Algorithmus dient dazu, den optimalen Absatzumbruch über zwei Seiten zu bestimmen, um verwaiste oder verwitwete Zeilen (Zeilen, die allein auf einer Seite stehen, während der Rest des Absatzes auf der folgenden oder vorhergehenden Seite zu finden ist) zu vermeiden. Eine Dissertation von Michael Plass zeigt jedoch, dass das Problem des Seitenumbruchs aufgrund der zusätzlichen Komplikation der Abbildungsplatzierung NP-vollständig sein kann. [ 34 ] Der Zeilenumbruchalgorithmus von TeX wurde von verschiedenen anderen Programmen übernommen, darunter Adobe InDesign (eine Desktop-Publishing- Anwendung ) [ 35 ] und das Unix -Befehlszeilenprogramm GNU fmt . [ 36 ]

Wenn kein geeigneter Zeilenumbruch gefunden werden kann, versucht das System, ein Wort zu trennen. Die ursprüngliche Version von TeX verwendete einen Silbentrennungsalgorithmus, der auf Regeln zur Entfernung von Präfixen und Suffixen sowie zur Entscheidung über die Einfügung eines Trennzeichens zwischen zwei Konsonanten in der Form Vokal – Konsonant – Konsonant – Vokal (was meistens möglich ist) basierte. [ 37 ] TeX82 führte einen neuen Silbentrennungsalgorithmus ein, der 1983 von Frank Liang entwickelt wurde , um Trennzeichen in Buchstabengruppen Prioritäten zuzuweisen. Zunächst wird automatisch eine Liste von Silbentrennungsmustern aus einem Korpus von 50.000 Wörtern mit Silbentrennung generiert. Wenn TeX beispielsweise die zulässigen Silbentrennungspositionen im Wort „ encyclopedia “ finden muss , berücksichtigt es alle Teilwörter des erweiterten Wortes „.encyclopedia.“ , wobei „. “ ein spezielles Zeichen ist, das den Anfang oder das Ende des Wortes kennzeichnet. Die Liste der Teilwörter umfasst alle Teilwörter der Länge 1 ( . , e , n , c , y usw.), der Länge 2 ( .e , en , nc usw.) usw. bis hin zum Teilwort der Länge 14, das das Wort selbst inklusive der Trennzeichen ist. TeX durchsucht dann seine Liste der Trennmuster und findet Teilwörter, für die es die Wahrscheinlichkeit einer Trennung an jeder Position berechnet hat. Im Fall unseres Wortes können 11 solcher Muster gefunden werden, nämlich 1 c 4 l 4 , 1 cy, 1 d 4 i 3 a, 4 edi, e 3 dia, 2 i 1 a, ope 5 d, 2 p 2 ed, 3 pedi, pedia 4 , y 1 c . Für jede Position im Wort berechnet TeX den Maximalwert aller übereinstimmenden Muster, was beispielsweise en 1 cy 1 c 4 l 4 o 3 p 4 e 5 d 4 i 3 a 4 ergibt . Die zulässigen Positionen sind diejenigen, die durch eine ungerade Zahl gekennzeichnet sind, was zu den zulässigen Bindestrichen en-cy-clo-pe-di-a führt . Dieses auf Teilwörtern basierende System ermöglicht die Definition sehr allgemeiner Muster (wie z. B.2 i 1 a), mit niedrigen Indikatorzahlen (entweder gerade oder ungerade), die bei Bedarf durch spezifischere Muster (wie 1 d 4 i 3 a) ersetzt werden können. Diese Muster finden etwa 90 % der Bindestriche im ursprünglichen Wörterbuch; wichtiger noch: Sie fügen keine überflüssigen Bindestriche ein. Zusätzlich enthält das Plain-TeX-Format eine Liste von Ausnahmen (Wörter, für die die Muster die korrekte Silbentrennung nicht vorhersagen); weitere können vom Benutzer angegeben werden. [ 38 ] [ 39 ]

Metafont

Metafont, das nicht direkt zu TeX gehört, ist ein Schriftbeschreibungssystem, mit dem Designer Zeichen algorithmisch beschreiben können. Es verwendet Bézierkurven in einer recht gängigen Weise, um die anzuzeigenden Zeichen zu generieren. Knuth widmet dem Rasterisierungsproblem auf Bitmap -Bildschirmen jedoch besondere Aufmerksamkeit. Eine weitere Arbeit von John Hobby untersucht dieses Problem der Digitalisierung von „Pinselstrichen“ genauer. Dieser Begriff leitet sich davon ab, dass Metafont Zeichen so beschreibt, als wären sie mit abstrakten Pinseln (und Radierern) gezeichnet worden. Es herrscht die weitverbreitete Annahme, dass TeX auf Bitmap-Schriften basiert, aber tatsächlich „wissen“ diese Programme außer den Abmessungen nichts über die verwendeten Schriften. Es liegt in der Verantwortung des Gerätetreibers, andere Schrifttypen, einschließlich PostScript Type 1 und TrueType, korrekt zu verarbeiten. Computer Modern (allgemein bekannt als „die TeX-Schrift“) ist im Type-1-Format frei verfügbar, ebenso wie die AMS-Mathematikschriften. Benutzer von TeX-Systemen, die direkt in PDF ausgeben, wie z. B. pdfTeX, XeTeX oder LuaTeX, verwenden im Allgemeinen überhaupt keine Metafont-Ausgabe.

Makrosprache

TeX-Dokumente werden mithilfe einer ungewöhnlichen Makrosprache geschrieben und programmiert. Vereinfacht gesagt, umfasst die Ausführung dieser Makrosprache Expansions- und Ausführungsphasen, die nicht direkt miteinander interagieren. Die Expansion beinhaltet sowohl die wörtliche Erweiterung von Makrodefinitionen als auch bedingte Verzweigungen, während die Ausführung Aufgaben wie das Setzen von Variablen/Registern und den eigentlichen Satzprozess des Hinzufügens von Glyphen zu Kästchen umfasst.

Die Definition eines Makros umfasst nicht nur eine Liste von Befehlen, sondern auch die Syntax des Aufrufs. Sie unterscheidet sich von den meisten weit verbreiteten lexikalischen Präprozessoren wie M4 dadurch, dass der Makrokörper bei der Definition tokenisiert wird.

Die TeX-Makrosprache wurde zur Entwicklung größerer Dokumentenproduktionssysteme verwendet, insbesondere von LaTeX und ConTeXt.

Betrieb

Eine Beispielseite, die mit TeX und den LaTeX -Makros erstellt wurde

Ein Beispiel für ein „Hello World“-Programm in einfachem TeX lautet:

Hallo Welt \bye % markiert das Ende der Datei; wird in der endgültigen Ausgabe nicht angezeigt.

Dies könnte sich in einer Datei namens „myfile.tex“ befinden , da „.tex“ eine gängige Dateiendung für reine TeX-Dateien ist. Standardmäßig ist alles, was in einer Zeile auf ein Prozentzeichen folgt, ein Kommentar, der von TeX ignoriert wird. Wenn TeX diese Datei ausführt (z. B. über dietex myfile.tex Kommandozeile oder eine grafische Benutzeroberfläche ) , wird eine Ausgabedatei namens „myfile.dvi“ erstellt , die den Seiteninhalt in einem geräteunabhängigen Format (DVI) darstellt . Eine DVI-Datei kann dann entweder auf dem Bildschirm angezeigt oder in ein geeignetes Format für einen der verschiedenen Drucker konvertiert werden, für die ein Gerätetreiber existierte (Druckerunterstützung war zur Zeit der Entwicklung von TeX im Allgemeinen keine Betriebssystemfunktion). Knuth hat erklärt, dass TeX nicht grundsätzlich DVI als Ausgabeformat vorschreibt, und spätere Versionen von TeX, insbesondere pdfTeX, XeTeX und LuaTeX, unterstützen die direkte Ausgabe in PDF .

TeX bietet eine spezielle Textsyntax für mathematische Formeln. Die quadratische Lösungsformel (die Lösung der quadratischen Gleichung ) sieht beispielsweise so aus:

QuellcodeWird gerendert als
Die quadratische Lösungsformel lautet $ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $ \bye

Die Formel wird so gedruckt, wie man sie handschriftlich schreiben oder setzen würde. In einem Dokument wird der mathematische Modus durch ein Dollarzeichen ($) am Anfang, die Formel in TeX-Syntax und ein weiteres Dollarzeichen am Ende aktiviert. Knuth erklärte scherzhaft, er habe das Dollarzeichen gewählt, um den Anfang und das Ende des mathematischen Modus in reinem TeX zu kennzeichnen, da das Setzen mathematischer Formeln traditionell als teuer galt. [ 40 ] Die Darstellung mathematischer Formeln (zentriert in einer neuen Zeile) funktioniert ähnlich, verwendet aber $$ anstelle eines einzelnen Dollarzeichens. Zum Beispiel die obige Formel mit quadratischer Formel in Darstellungsform:

QuellcodeWird gerendert als
Die quadratische Lösungsformel lautet: $$ - b \pm \sqrt {b^ 2 - 4 ac} \over 2 a $$ \bye

Verwendung

In verschiedenen technischen Bereichen wie Informatik, Mathematik, Ingenieurwesen und Physik hat sich TeX als De-facto-Standard etabliert . Tausende von Büchern wurden mit TeX veröffentlicht, darunter Publikationen von Addison-Wesley , Cambridge University Press , Elsevier , Oxford University Press und Springer . Zahlreiche Fachzeitschriften dieser Bereiche werden mit TeX oder LaTeX erstellt, sodass Autoren ihre Manuskripte direkt in TeX einreichen können. [ 41 ] Obwohl auch in anderen Bereichen, wie beispielsweise Wörterbüchern und juristischen Publikationen, viele Publikationen mit TeX erstellt wurden, war es dort nicht so erfolgreich wie in den technischen Bereichen, da TeX primär für den Satz mathematischer Formeln entwickelt wurde.

Als Donald Knuth TeX entwarf, glaubte er nicht, dass ein einziges Satzsystem allen Bedürfnissen gerecht werden könnte. Stattdessen integrierte er zahlreiche Schnittstellen in das Programm, um Erweiterungen zu ermöglichen, und veröffentlichte den Quellcode in der Hoffnung, dass Verlage Versionen entwickeln würden, die ihren jeweiligen Anforderungen entsprachen. Obwohl solche Erweiterungen entstanden sind (darunter auch einige von Knuth selbst) [ 42 ] , haben die meisten Entwickler TeX lediglich mithilfe von Makros erweitert, und es ist nach wie vor ein System, das mit technischem Satz in Verbindung gebracht wird. [ 43 ] [ 44 ] [ 26 ]

Chemische Notation

Pakete wie mhchem , XyMTeX , chemfig und chemmacros zum Setzen von chemischen Gleichungen , Strukturen und Reaktionen in LaTeX. [ 45 ]

XML-Veröffentlichung

TeX ermöglicht die automatische Generierung komplexer Layouts für XML-Daten. Die Syntaxunterschiede zwischen den beiden Beschreibungssprachen lassen sich mithilfe von TeXML überbrücken . Im Kontext der XML-Publikation kann TeX daher als Alternative zu XSL-FO betrachtet werden . TeX ermöglichte es, wissenschaftliche Arbeiten in mathematischen Disziplinen auf relativ kleine Dateien zu reduzieren, die clientseitig gerendert werden konnten. Dadurch war der Austausch vollständig gesetzter wissenschaftlicher Arbeiten über das frühe Internet und das entstehende World Wide Web möglich, selbst in Zeiten, in denen der Versand großer Dateien schwierig war. Dies ebnete den Weg für die Entstehung von Repositorien für wissenschaftliche Arbeiten wie arXiv , über die Arbeiten ohne zwischengeschalteten Verlag „veröffentlicht“ werden konnten. [ 46 ]

Entwicklung

Der ursprüngliche Quellcode der aktuellen TeX-Software ist in WEB geschrieben , einer Mischung aus in TeX verfasster Dokumentation und einer Pascal- Teilmenge, um Lesbarkeit und Portabilität zu gewährleisten. So führt TeX beispielsweise die gesamte dynamische Speicherverwaltung selbst mit Arrays fester Größe durch und verwendet für interne Berechnungen ausschließlich Festkommaarithmetik . Dadurch konnte TeX auf nahezu alle Betriebssysteme portiert werden , üblicherweise mithilfe des Programms web2c , das den Quellcode in C konvertiert , anstatt den Pascal-Code direkt zu kompilieren. Knuth hat seit 1982 ein sehr detailliertes Protokoll aller von ihm behobenen Fehler und vorgenommenen Änderungen am Programm geführt; Stand 2025 umfasst die Liste 440 Einträge, ohne die Versionsänderung, die nach seinem Tod als letzte Änderung an TeX vorgenommen werden soll. [ 47 ] [ 48 ] Knuth setzt Geldprämien für das Finden und Melden von Fehlern in TeX aus. Die Prämie pro gefundenem Fehler begann bei 2,56 US-Dollar (einem „hexadezimalen Dollar“ [ 49 ] ) und verdoppelte sich jährlich, bis sie auf ihren aktuellen Wert von 327,68 US-Dollar eingefroren wurde. Knuth hat relativ wenig Geld verloren, da nur sehr wenige Fehler gemeldet wurden. Darüber hinaus ist bekannt, dass Empfänger ihren Scheck als Beweis für das Finden eines Fehlers in TeX einrahmen, anstatt ihn einzulösen. [ 50 ] [ 51 ]

Da Betrüger gescannte Kopien seiner Schecks im Internet gefunden und versucht haben, damit sein Bankkonto zu plündern, versendet Knuth keine echten Schecks mehr. Stattdessen können diejenigen, die Fehlerberichte einreichen, eine Gutschrift bei der Bank von San Serriffe erhalten . [ 52 ]

Distributionen und Erweiterungen

TeX wird üblicherweise als einfach zu installierendes Paket bereitgestellt, das neben TeX selbst auch Metafont und alle notwendigen Schriftarten, Dokumentformate und Hilfsprogramme für die Verwendung des Satzsystems enthält. Auf UNIX-kompatiblen Systemen, einschließlich Linux und Apple macOS , ist TeX Teil der umfassenderen TeX Live- Distribution. (Vor TeX Live war die teTeX- Distribution der De-facto-Standard auf UNIX-kompatiblen Systemen.) Für Microsoft Windows gibt es die MiKTeX- Distribution (erweitert durch proTeXt) und die Microsoft Windows-Version von TeX Live.

Mehrere Dokumentenverarbeitungssysteme basieren auf TeX, insbesondere jadeTeX , das TeX als Backend für den Druck aus James Clarks DSSSL Engine , dem Arbortext -Publishing-System und Texinfo , dem GNU-Dokumentationsverarbeitungssystem, nutzt. TeX ist seit 1984 das offizielle Satzpaket für das GNU-Betriebssystem.

Es existieren zahlreiche Erweiterungen und Begleitprogramme für TeX, darunter BibTeX für Bibliografien (im Lieferumfang von LaTeX enthalten); pdfTeX, eine TeX-kompatible Engine, die direkt PDF-Dateien erzeugen kann (und weiterhin die ursprüngliche DVI-Ausgabe unterstützt); XeTeX , eine TeX-kompatible Engine mit Unterstützung für Unicode und OpenType ; und LuaTeX , eine Unicode-fähige Erweiterung für TeX mit einer Lua-Laufzeitumgebung und umfassenden Schnittstellen zu den zugrundeliegenden TeX-Routinen und -Algorithmen. Die meisten TeX-Erweiterungen sind kostenlos über CTAN , das Comprehensive TeX Archive Network, erhältlich .

Lizenz

Donald Knuth hat mehrfach [ 53 ] [ 54 ] [ 55 ] [ 26 ] darauf hingewiesen , dass der Quellcode von TeX gemeinfrei ist , und er ermutigt ausdrücklich zu Modifikationen und Experimenten damit. Da Knuth jedoch großen Wert auf die Reproduzierbarkeit der Ausgabe aller TeX-Versionen legt, darf jede veränderte Version nicht TeX oder etwas Verwechslungsähnliches genannt werden. Um diese Regel durchzusetzen, muss jede Implementierung des Systems den sogenannten TRIP-Test [ 56 ] bestehen , bevor sie als TeX bezeichnet werden darf. Die Lizenzfrage wird durch die am Anfang des TeX-Quellcodes enthaltenen Hinweise [ 57 ] etwas verkompliziert , die besagen: „Alle Rechte vorbehalten. Das Kopieren dieser Datei ist nur dann gestattet, wenn … Sie keinerlei Änderungen an Ihrer Kopie vornehmen.“ Diese Einschränkung ist als Verbot der Änderung des Quellcodes zu verstehen, solange die Datei den Namen tex.web trägt . Der Copyright-Vermerk am Anfang von tex.web (und mf.web) wurde 2021 geändert, um dies explizit zu verdeutlichen. Diese Auslegung wird später im Quellcode bestätigt, wenn der TRIP-Test erwähnt wird („Wenn dieses Programm geändert wird, darf das resultierende System nicht ‚TeX ‘ genannt werden. “). [ 58 ] Die American Mathematical Society versuchte Anfang der 1980er Jahre, die Marke TeX zu beanspruchen. Dies wurde abgelehnt, da „TEX“ (in Großbuchstaben) zu diesem Zeitpunkt von Honeywell für das Textverarbeitungssystem „Text EXecutive“ registriert war .

Da der Quellcode von TeX im Wesentlichen gemeinfrei ist , dürfen andere Programmierer das System verbessern (und werden ausdrücklich dazu ermutigt). Sie müssen jedoch einen anderen Namen verwenden, um die modifizierte TeX-Version zu verbreiten, wodurch der Quellcode weiterentwickelt werden kann. Beispielsweise wurde das Omega -Projekt nach 1991 entwickelt, vor allem um die mehrsprachigen Satzfähigkeiten von TeX zu verbessern. [ 59 ] Knuth erstellte „inoffizielle“ modifizierte Versionen wie TeX-XeT , mit dem Benutzer Texte, die in links- und rechts-nach-links- Schriftsystemen verfasst sind , im selben Dokument mischen können . [ 42 ]

Gemeinschaft

Logo der TeX Users Group

Zu den bedeutenden Organisationen der TeX-Community gehört die TeX Users Group (TUG), die aktuell TUGboat und ehemals das PracTeX Journal herausgibt . Diese Zeitschriften decken ein breites Spektrum an Themen der digitalen Typografie mit Bezug zu TeX ab. Die Deutschsprachige Anwendervereinigung TeX (DANTE) ist eine große Anwendervereinigung in Deutschland. Die TeX Users Group wurde 1980 zu Bildungs- und Forschungszwecken gegründet und bietet eine Plattform für alle, die sich für Typografie und Schriftgestaltung interessieren und das von Knuth entwickelte TeX-Satzsystem nutzen. Die TeX Users Group vertritt die Interessen von TeX-Anwendern weltweit. Die TeX Users Group gibt die Zeitschrift TUGboat dreimal jährlich heraus; [ 60 ] DANTE veröffentlicht Die TeXnische Komödie viermal jährlich. Weitere Anwendervereinigungen sind DK-TUG in Dänemark , GUTenberg in Frankreich , GuIT in Italien , NTG in den Niederlanden und UK-TUG im Vereinigten Königreich ; die Anwendervereinigungen führen gemeinsam eine vollständige Liste. [ 61 ]

Redakteure

Es gibt eine Vielzahl von Editoren, die für die Arbeit mit TeX entwickelt wurden :

  • Der Texteditor TeXmacs ist ein WYSIWYG / WYSIWYM - Editor für wissenschaftliche Texte, der von TeX und Emacs inspiriert ist . Er verwendet Knuths Schriftarten und kann TeX-Ausgabe erzeugen.
  • Overleaf ist ein teilweise WYSIWYG-fähiger Online-Editor, der eine Cloud-basierte Lösung für TeX sowie zusätzliche Funktionen für die kollaborative Bearbeitung in Echtzeit bietet.
  • LyX ist ein WYSIWYM- Dokumentenprozessor, der auf einer Vielzahl von Plattformen läuft, darunter:
  • TeXShop (für macOS), TeXworks (für Linux, macOS und Windows) und WinShell (für Windows) sind ähnliche Werkzeuge und bieten eine integrierte Entwicklungsumgebung (IDE) für die Arbeit mit LaTeX oder TeX. Für KDE /Qt stellt Kile eine solche IDE bereit.
  • Texmaker ist das reine Qt-Äquivalent von Kile und verfügt über eine Benutzeroberfläche, die nahezu identisch mit der von Kile ist.
  • TeXstudio ist ein Open-Source-Fork (2009) von Texmaker , der einen anderen Ansatz hinsichtlich Konfigurierbarkeit und Funktionen bietet. Kostenlose Binärdateien stehen für Windows, Linux, macOS, OS/2 und FreeBSD zum Download bereit.
  • GNU Emacs verfügt über verschiedene integrierte und Drittanbieterpakete mit Unterstützung für TeX, wobei AUCTeX das wichtigste ist .
  • Visual Studio Code . Eine bemerkenswerte Erweiterung ist LaTeX Workshop.
  • Für Vim sind mögliche Plugins unter anderem Vim-LaTeX Suite, [ 62 ] Automatic TeX, [ 63 ] und TeX-9. [ 64 ]
  • Für Apache OpenOffice und LibreOffice bieten die Erweiterungen iMath und TexMaths mathematischen TeX-Satz. [ 65 ] [ 66 ]
  • Für MediaWiki bietet die Math-Erweiterung mathematischen TeX-Satz, allerdings muss der Code von einem <math>-Tag umschlossen werden <math>.

Erweiterungen

Siehe auch

Anmerkungen

  1. ^ "CTAN" . Abgerufen am 23. Dezember 2025 .
  2. ^ „Per Bothner (Teilnehmer an TeX-Projekttreffen) diskutiert die Autorschaft“ . Knuth hat den Großteil des Codes definitiv selbst geschrieben, zumindest für die Neuentwicklung von Metafont, worüber ich persönlich Bescheid weiß. Allerdings haben einige seiner Studenten (wie Michael Plass und John Hobby) an den in TeX und Metafont verwendeten Algorithmen mitgearbeitet.
  3. ^ Yannis Haralambous. Fonts & Encodings (Übersetzt von P. Scott Horne) . Beijing; Sebastopol, Kalifornien: O'Reilly Media, 2007, S. 235.
  4. ^ Gaudeul, Alexia (2006). „Reagieren Open-Source-Entwickler auf Wettbewerb?: Die (La)TeX-Fallstudie“ . SSRN Electronic Journal . doi : 10.2139/ssrn.908946 . ISSN 1556-5068 . 
  5. ^ Knuth, Donald E. „Weniger kurze Biografie“ . Don Knuths Homepage . Archiviert vom Original am 5. Dezember 2016. Abgerufen am 9. Januar 2017 .
  6. ^ Knuth, Donald E. „Gedenkvorlesung zum Kyoto-Preis 1996“ (PDF) . Kyoto-Preis . Archiviert vom Original (PDF) am 27. Januar 2018. Abgerufen am 18. August 2018 .
  7. ^ Knuth, Donald Ervin, TEXDR.AFT , archiviert vom Original am 12. Januar 2015
  8. ^ Dieser Artikel basiert auf Material, das vor dem 1. November 2008 aus TeX im Free On-line Dictionary of Computing entnommen und unter den „Relicensing“-Bedingungen der GFDL , Version 1.3 oder später, integriert wurde.
  9. ^ Knuth & Plass 1981 , S. 144.
  10. ^ Knuth, Donald E. Knuth meets NTG members , NTG: MAPS. 16 (1996), 38–49. Nachgedruckt als Questions and Answers, III , Kapitel 33 von Digital Typography , S. 648.
  11. ^ Knuth, Donald E. Die neuen Versionen von TeX und METAFONT , TUGboat 10 (1989), 325–328; 11 (1990), 12. Nachgedruckt als Kapitel 29 von Digital Typography .
  12. ^ Hoenig, Alan (1998). TeX Unbound: LaTeX & TeX Strategies for Fonts, Graphics, & More . Oxford University Press. ISBN 978-0-19-509686-6Die
  13. ^ „TeX 21 release“ . Abgerufen am 5. Januar 2022 .
  14. ^ a b „Was ist die Zukunft von TeX?“ . Die TeX-FAQ . 27. Mai 2018. Archiviert vom Original am 28. April 2019 . Abgerufen am 21. Juli 2019 .
  15. ^ Knuth, Donald E. Die Zukunft von TeX und METAFONT , NTG journal MAPS (1990), 489. Nachgedruckt als Kapitel 30 von Digital Typography , S. 571.
  16. ^ Knuth, Donald E. The TeXbook , Kap. 1: Der Name des Spiels, S. 1.
  17. ^ Knuth, Donald E. Das TeX-Logo in verschiedenen Schriftarten , TUGboat 7 (1986), 101. Nachgedruckt als Kapitel 6 von Digital Typography .
  18. ^ Jeffrey, Alan (1990), „Lists in TeX's Mouth“ (PDF) , TUGboat , 11 (2) : 237–45
  19. ^ "CTAN: Paket pdftex" . ctan.org . Abgerufen am 21. Juli 2019 .
  20. ^ Knuth 1984 , S. 9.
  21. ^ Plain TeX (Quellcode), CTAN, archiviert vom Original am 9. Mai 2021
  22. ^ „Was sind die AMS-Pakete (amsmath usw.)?“ . Die TeX-FAQ . 27. Mai 2018. Archiviert vom Original am 28. April 2019 . Abgerufen am 21. Juli 2019 .
  23. ^ Slater, Robert (1989), Portraits in Silicon , MIT Press, p. 349, ISBN 9780262691314
  24. ^ Syropoulos, Apostolos; Tsolomitis, Antonis; Sofroniou, Nick (2003), Digital Typography Using LaTeX , Springer, S. 93, ISBN 9780387952178
  25. ^ Knuth, Donald E (1996). "Fragen und Antworten II". TUGboat . 17 : 355– 367.
  26. ^ a b c Knuth, Donald E. (1999). Digitale Typografie . Stanford, Kalifornien: Center for the Study of Language and Information Publications. ISBN 978-1-57586-010-7Die
  27. ^ Knuth, Donald E. Typesetting Concrete Mathematics , TUGboat 10 (1989), S. 31–36, 342. Nachgedruckt als Kapitel 18 in Digital Typography , S. 367–378.
  28. ^ Vieth, Ulrik. „Mathematiksatz in TeX: Das Gute, das Schlechte, das Hässliche“ (PDF) . Archiviert vom Original (PDF) am 20. Januar 2022.
  29. ^ „Hochwertige Bearbeitung und Darstellung mathematischer Texte in Office 2007“ .
  30. ^ "LineServices" .
  31. ^ "Karte" (PDF) . ntg.nl .
  32. ^ Barnett, Michael P (1965), Computer Typesetting: Experiments and Prospects , Cambridge , MA : MIT Press
  33. ^ url= http://svn.tug.org/interviews/plass.html
  34. ^ Knuth & Plass 1981 .
  35. ^ „Donald E. Knuth“ , TUGboat (Interview), 21 , Advogato : 103–10 , 2000, archiviert vom Original am 22. Januar 2009 , abgerufen am 26. Dezember 2005
  36. ^ „4.1 fmt: Absatztext neu formatieren“ , Handbuch zu den GNU Core Utilities (GNU coreutils) , GNU-Projekt, 2016, archiviert vom Original am 12. Oktober 2025 , abgerufen am 4. April 2016
  37. ^ Liang 1983 , S. 3.
  38. ^ Liang 1983 .
  39. ^ „Anhang H: Silbentrennung“, The TeXbook , S.  449–55
  40. ^ Knuth 1984 , S. 127, Kap. 16: Eingabe mathematischer Formeln.
  41. ^ Beebe 2004 , S. 10.
  42. ^ a b Knuth, Donald E; MacKay, Pierre (1987), „Mixing Right-to-Left Texts with Left-to-Right Texts“ (PDF) , TUGboat , 8 : 14– 25Die
  43. ^ Knuth, Donald E (1996), "Fragen und Antworten I", TUGboat , 17 : 7– 22Die
  44. ^ Knuth, Donald E (1996), „Fragen und Antworten II“, TUGboat , 17 : 355– 367Die
  45. ^ "Hilfreiche LaTeX-Pakete für die Chemie | Ressourcen für die Computerchemie" .
  46. ^ O'Connell, Heath (2002). „Physiker profitieren vom papierlosen Publizieren“. Hep Lib.web . 6 : 3. arXiv : physics/0007040 .
  47. ^ Knuth, Donald E. Liste der Aktualisierungen der TeX82-Liste, veröffentlicht im September 1982 , verfügbar auf CTAN .
  48. ^ Knuth, Donald E. Anhang zum Artikel Errors of TeX , verfügbar auf CTAN, zuletzt geändert im Januar 2003.
  49. ^ Knuth, Donald E. „Knuth: Häufig gestellte Fragen“ . Stanford Computer Science . Archiviert vom Original am 6. März 2008. Abgerufen am 28. November 2019 .
  50. ^ Kara Platoni (Mai–Juni 2006). „Liebe auf den ersten Byte“ . Stanford Magazine . Archiviert vom Original am 4. Juni 2006.
  51. ^ „Geschichte von TeX“ . TeX Users Group . Abgerufen am 28. November 2019 .
  52. ^ Knuth, Donald E. (2008). „Knuth: Aktuelle Nachrichten – Finanzielles Fiasko“ . Stanford Computer Science . Archiviert vom Original am 29. November 2019. Abgerufen am 29. November 2019 .
  53. ^ Knuth, Donald E. (1986). „Remarks to Celebrate the Publication of Computers & Typesetting“ (PDF) . TUGboat . 7 (2): 95–98 . Abgerufen am 6. Dezember 2024 .
  54. ^ Knuth, Donald E. (1990). „Die Zukunft von TeX und METAFONT“ (PDF) . TUGboat . 11 (4): 489. Abgerufen am 6. Dezember 2024 .
  55. ^ Knuth, Donald Ervin (1. November 1997). „Digitale Typografie: Vortrag zur Verleihung des Kyoto-Preises 1996“ (PDF) . Kyoto-Preis . Die Inamori-Stiftung . Abgerufen am 6. Dezember 2024 .
  56. ^ "Trip", CTAN (Quellcode), archiviert vom Original (TeX) am 12. Juni 2021
  57. ^ Knuth, Donald E. (1986), TeX: Das Programm , Computer und Satz, Bd. B, Reading, MA: Addison-Wesley, ISBN 0-201-13437-3
  58. ^ Open Source: Technology and Policy von Fadi P. Deek, James AM McHugh, "Public domain", Seite 227 (2008)
  59. ^ „Entwicklung der TeX-Engine“ . Die TeX-FAQ . 24. Mai 2018. Archiviert vom Original am 28. April 2019. Abgerufen am 21. Juli 2019 .
  60. ^ „Die Mitteilungen der TeX-Benutzergruppe“ . tug.org . TeX-Benutzergruppe . Abgerufen am 15. März 2019 .
  61. ^ „Alle TeX-Benutzergruppen“ . tug.org . TeX-Benutzergruppe . Abgerufen am 17. November 2019 .
  62. ^ Vim-LaTex , SourceForge, archiviert vom Original am 8. März 2024
  63. ^ Automatisches TeX-Plugin , Launchpad
  64. ^ TeX-9 , Vim.org
  65. ^ TexMaths Homepage , free.fr
  66. ^ iMath , SourceForge

Referenzen