Typst ist ein relativ neues (2023) Textsatzsystem. Es wurde in der Programmiersprache Rust komplett neu geschrieben. Anlaß für diese Entwicklung (gibt es nicht schon LaTeX u.a.
Textsatzsysteme?) war angeblich der hohe Einarbeitungs- und Anwendungsaufwand mit der TeX-Syntax. Man kennt es: Einige LaTeX-Pakete sind miteinander inkompatibel, und auch sonst sind Anpassungen
abseits der gängigen Makros für viele Nutzer (auch für mich!) schwer verständlich. Beim TeX-Kompilieren ergeben sich zuweilen nicht nachvollziehbare Auswirkungen oder sie werden gleich mit
Fehlermeldungen quittiert, für die man selbst die Foren durchsuchen muß.
Davon genervt, wurde das Rad also neu erfunden. Einfach in der Anwendung sollte es sein (so wie Markdown) und hochkonfigurierbar (so wie TeX), dabei verständliche ("sprechende") Fehlermeldungen erzeugen. Welche Vorzüge bietet nun diese Chimäre? Und ist sie für komplexe Dokumente weit genug gereift?
Grundanspruch ist das Erzeugen bzw. Setzen von druckfertigen Dokumenten (meist PDF) mit erstklassigen Satzlayout, dabei mit Fokus auf wissenschaftliche Publikationen. Wie TeX bietet es daher die volle Palette an Formeldarstellungen, und kann mithilfe von zahlreichen Vorlagen (templates) in die jeweilige Darstellungsform des jeweiligen Verlages gebracht werden. Derselbe Dokumentinhalt (Definition von Titel, Autorenschaft, Abstract, Dokumentinhalt usw.) kann also mit Vorlagen in verschiedene Layouts übersetzt werden (z.B. Lebensläufe verschiedener Ausführung). Man denkt dabei gleich an austauschbare CSS-Dateien. Inwiefern bei so einem Vorhaben nicht gleich Jupyter sinnvoll ist, bleibt fraglich.
Welche Vorteile ergeben sich nun gegenüber TeX?
Listenumgebungen werden unter TeX traditionell in eine itemize- oder enumerate-Umgebung eingezäunt; jeder Anführungspunkt (oder Nummer) wird dann mit \item
eingeleitet. Das ist in seiner verschachtelten Komplexität schon kurz vor HTML! Außerdem muß man peinlich genau darauf achten, die geöffneten Umgebungen wieder ordentlich zu schließen –
Editor-Automatismen helfen dabei. Mit Typst reicht es (wie bei Markdown), jedem Anführungspunkt einen Bindestrich, oder jedem Nummernpunkt ein Plus voranzustellen.
Die Eingabe wörtlicher Rede ist mit Typst viel einfacher: Zwar gibt es auch unter TeX Pakete für eine erleichterte Eingabe (z.B. enquote, siehe Abbildung), aber was ist einfacher als
vorne und hinten je ein doppeltes ASCII-Anführungszeichen zu setzen? In der Typst-Präambel wird dann je nach Dokumentsprache und Einstellung geregelt, ob daraus (im Deutschen gebräuchliche)
Gänsefüßchen oder Guillemets werden.
Auch das Setzen von Formeln ist mit Typst vereinfacht und "sprechender".
Für einen Vergleich der Satzqualität wurde derselbe Text unter denselben Bedingungen einmal mit LaTeX, einmal mit Typst und einmal mit LibreOffice Writer gesetzt. Der Text ist jeweils 11pt groß und aus der Libertine gesetzt. Die Seitenränder betragen rechts und links je 2 cm, bei einem Seitenformat von A5.
Abb. 2: Vergleich desselben Textblocks, erzeugt unter LaTeX (links), Typst (mittig) und LibreOffice Writer (rechts).
Die Satzqualität ist allgemein in Ordnung, sticht bei LaTeX aber positiv heraus: Der Satz gelingt so eng, daß er sich auf nur 15 Zeilen verteilt, während er sich bei den anderen beiden Programmen auf je 16 Zeilen erstreckt. Typst setzt dabei etwas enger, während bei LibreOffice Writer hier und da unangenehme Lücken zu sehen sind (Ursache in Abb. 3 sichtbar).
Abb. 3: Typographie im Detail: Typst setzt den Text mit sog. optischem Randausgleich (Bindestriche ragen in den weißen Seitenrand hinein), LibreOffice Writer setzt ohne optischen Randausgleich, d.h. die Trennstriche schließen mit den sonstigen Buchstaben bündig ab.
Beim optischen Randausgleich werden Trennstriche minimal verschoben, ohne daß das Auge eine unangenehme Störung des Blocksatzes wahrnimmt. Diese geringe Änderung führt aber zu etwas mehr "Spielraum" beim Verteilen der Buchstaben, so daß der Umbruch ggf. besser aussehen kann.
Der Satz mit LaTeX erfolgt selbstverständlich auch mit optischem Randausgleich (im Vergleichsbild hier links aber nicht dargestellt).
Geht es also um Satzqualität, eventuell auch um eine möglichst geringe Anzahl an Seiten unter denselben Bedingungen, ist der Satz mit LaTeX nach wie vor erste Wahl. Der Abstand zwischen Typst und TeX ist aber nicht mehr allzu groß, und die viel einfachere Syntax ist eine verlockende Sache.
Eine .bib-Literaturdatenbank läßt sich ebenfalls anbinden, und im Dokument selbst können mit entsprechender Syntax Zitate erzeugt werden.
Markdown und HTML eignen sich hervorragend zum Setzen reiner Bildschirm-Dokumente (Onscreen, Webseiten etc.), z.B. auch für dynamische Handbücher und begleitende Erläuterungen, Tutorials usw. Welche Vorzüge gibt es nun gegenüber HTML oder Standard-Markdown?
Es gibt mehrere. Die folgenden Möglichkeiten sind bei HTML und Standard-Markdown NICHT oder nur auf Umwegen gegeben:
Das sind wenige, aber erhebliche Argumente für einen angenehmen Textsatz!
Gegenüber HTML ist Typst-Code VIEL kürzer und übersichtlicher. Auch das Anbinden einer separaten CSS-Datei für die Formatierungen entfällt. Gleichwohl könnte man auch bei Typst alle Formatierungsanweisungen in eine separate Vorlagen-Datei auslagern, um sie für andere Dokumente nutzbar zu machen. Auch das Definieren von Links (auf URLs oder lokale Dateien) finde ich bei Typst übersichtlicher und einprägsamer als bei HTML oder Markdown.
Wer sich in Typst einarbeiten will, kann meine Tutorial-Lektionen durcharbeiten.
Ein Dokument über mikrotypographische Regeln beim Bearbeiten von Typst-Dokumenten findet sich hier.