Typst, der Dokumentenprozessor, der LaTeX ablösen soll, hat in seinem neuesten Release zwei größere Updates erhalten. Version 0.15 fügt Unterstützung für variable Schriftarten und MathML hinzu und führt eine „Bundle“-Funktion ein, die es Autoren ermöglicht, eine Sammlung von Ausgabedateien in jedem von Typst unterstützten Format aus einem einzigen Quelldokument anzugeben. Das Projekt ist freie Software, lizenziert unter Apache-2.0 und in Rust geschrieben.
Das Update folgt auf ein Jahr ruhiger Entwicklung seit unserem letzten Blick auf Typst, der Version 0.13 erreichte. Die neue Version bringt das Projekt näher an eine Parität mit LaTeX bei technischen Dokumenten, während gleichzeitig sein Einfluss auf die Webveröffentlichung ausgebaut wird.
Variable Schriftarten: Eine Datei, viele Gewichte
Die meisten Schriftarten werden als eine Reihe separater Dateien ausgeliefert, die jeweils eine andere Gewichtung, einen anderen Stil oder eine andere Variation darstellen. Dieser Ansatz verschwendet Speicherplatz und erschwert die Designarbeit. Variable Schriftarten lösen beide Probleme, indem sie alle diese Variationen in einer einzigen Datei zusammenpacken.
Jede Variation wird über eine „Achse“ gesteuert, eine Einstellung, die einen Aspekt der gerenderten Glyphen anpasst. Einige Achsen haben diskrete Werte, die Funktionen ein- oder ausschalten. Andere haben kontinuierliche Werte, die es Designern ermöglichen, eine Einstellung zwischen zwei Grenzen zu verschieben.
Typsts Dokumentation demonstriert die Funktion mit zwei Open-Source-variablen Schriftarten. Roboto Flex, eine vielseitige Schriftart mit 13 Achsen, ermöglicht es Benutzern, ihre Absteigenden anzupassen. Die YTDE-Achse, wie in einem Screenshot gezeigt, steuert, wie lange die Schwänze von Kleinbuchstaben reichen, was dazu beitragen kann, Kollisionen in Tabellen zu vermeiden.
Zycon ist eine ungewöhnlichere Wahl. Sie enthält überhaupt keine Buchstaben, sondern nur 17 kleine dekorative Bilder und sechs kontinuierliche Achsen, die die Bilder sanft verändern. Die M1-Achse, benannt mit einem nachgestellten Leerzeichen, ändert die Mondphase des Mondglyphen, was die Schriftart für Animationen nützlich macht.
Der Demo-Code zeigt, wie Typst die beiden Schriftarten nebeneinander verarbeitet. Eine Schleife setzt die Variationen für jedes Glyphen an, und die Ausgabe erscheint als PDF in vfont.pdf. Die Absteigenden-Achse in Roboto Flex, wie dargestellt, bestimmt die Länge der Schriftartschwänze, während andere Eigenschaften unverändert bleiben.
MathML-Export: TeX-Qualität Gleichungen in Browsern
HTML-Export bleibt in Typst experimentell, die neue Version zeigt jedoch deutliche Fortschritte. Das Hauptmerkmal ist die MathML-Übersetzung, die mathematische Markup direkt in Webseiten darstellt.
Der Vergleich ist deutlich. Ein bestimmtes Integral, das im vorherigen Artikel als PDF dargestellt wurde, erscheint nun als eine lange Zeichenkette von MathML-Markup in HTML. Aktuelle Webbrowser wissen, wie dieses Markup zu interpretieren ist, sodass die Ausgabe fast identisch mit der PDF-Version aussieht.
Das ist wichtig für die wissenschaftliche Kommunikation. Autoren können TeX-Qualitätsgleichungen erzeugen, ohne auf JavaScript-Bibliotheken wie MathJax zurückgreifen zu müssen, oder auf Bilder. Der Schalter, um den experimentellen HTML-Output zu aktivieren, ist einfach:
typst c --features html integral.typ integral.html
Dieser Befehl wandelt eine Typst-Datei namens integral.typ in HTML um.
Die Bundle-Funktion: Eine Quelle, viele Formate
Typst hat sich immer auf einzelne Dokumente – Artikel, Bücher, PDFs – konzentriert. Die Bundle-Funktion ändert das. Autoren können nun eine Sammlung von Ausgabedateien in jedem Format festlegen, das Typst unterstützt, alles generiert aus einem einzigen Quelldokument.
Die Dateien können Daten austauschen und sowohl innerhalb- als auch zwischen Dokumenten Links enthalten. Das macht es ideal für Webseiten, die Netzwerke von HTML-Dateien miteinander vernetzen. Akademiker könnten es auch verwenden, um eine Folienpräsentation für einen Konferenzvortrag zusammen mit dem zugehörigen Preprint aus einer einzigen Quelldatei zu generieren.
Das Beispiel in der Ankündigung erstellt drei miteinander verknüpfte Dokumente: zwei HTML-Seiten und ein PDF, die einen Textfragment teilen. Der Auszug stammt aus Lewis Carrolls „Jabberwocky“, einem berühmten Nonsense-Gedicht.
Die Einrichtung ist unkompliziert. Eine Let-Anweisung definiert den Text, und die Dokumentblöcke umschließen ihn in HTML-Seiten mit Titeln und Links. Der Home-Link verweist zurück zur Hauptseite, und der jabberwockyPDF-Link verweist auf die PDF-Version des Gedichts.
Was das für Autoren bedeutet
Die Unterstützung für variable Schriftarten gibt Designern feinere Kontrolle über die Typografie. Die Möglichkeit, den Abschwung dynamisch anzupassen, könnte besonders nützlich für komplexe Layouts wie Tabellen sein, bei denen Abschwünge oft mit Zellenrändern kollidieren.
Die Unterstützung für MathML beseitigt einen großen Stolperstein für alle, die technische Inhalte online veröffentlichen. In den meisten Fällen können Autoren Bilder von Gleichungen oder umfangreiche JavaScript-Bibliotheken vermeiden. Die HTML-Ausgabe ist nativ, in den meisten Browsern lesbar und von der PDF-Darstellung nicht zu unterscheiden.
Die Bundle-Funktion ist die praktische Auswirkung. Ein Forscher, der ein Paper verfasst, kann jetzt die finale PDF-Datei, eine Web-Version und eine Präsentationsreihe aus einer einzigen Datei erstellen. Die Links funktionieren über alle drei Formate hinweg, sodass Leser zwischen der PDF- und der HTML-Datei ohne Kontextverlust springen können.
Vergleich der neuen Funktionen
| Funktion | Was es tut | Status |
|---|---|---|
| Variable Schriftarten | Einzeldateisupport für mehrere Stärken und Stile | Live in 0.15 |
| MathML-Export | TeX-Qualität-Gleichungen als natives Web-Markup rendern | Experimentell in 0.15 |
| Bundle-Ausgabe | Mehrere Formate aus einer Quelldatei generieren | Live in 0.15 |
Kasten mit den wichtigsten Fakten
- Version: 0.15, veröffentlicht im Juni
- Lizenz: Apache-2.0
- Sprache: Rust
- Unterstützte Formate: PDF, SVG, PNG, HTML (experimentell)
- In der Demo verwendete Schriftarten: Roboto Flex (13 Achsen), Zycon (17 Bilder, 6 Achsen)
- MathML flag:
--features html
Die weitere Entwicklung
Der HTML-Export bleibt experimentell, was bedeutet, dass er noch nicht für den Produktionseinsatz bereit ist. Das Feature existiert, wird aber als Work in Progress gekennzeichnet. Im Moment sind die variablen Schriftarten und Bundle-Funktionen die wichtigsten Erweiterungen.
Das Projekt hat seit unserer letzten Überprüfung deutliche Fortschritte gemacht. Die Kombination aus variablen Schriftarten, TeX-Qualität für Mathematik und mehrformatiger Bundle-Ausgabe positioniert Typst als eine ernstzunehmende Alternative zu LaTeX für die technische Dokumentation.
Die Ankündigung ist eine Erinnerung daran, dass Open-Source-Tools stetig voranschreiten. Typst ist kein fertiges Produkt, aber es ist bereits leistungsfähig, und das Tempo der Entwicklung deutet darauf hin, dass es sich kontinuierlich verbessern wird.
Die neue Version bietet echte Vorteile für alle, die Arbeiten, Bücher oder Webseiten verfassen.
Quelle: „Typst macht große Fortschritte“, lwn.net.
Das Notizbuch abonnieren.
Die besten Geschichten des Tages und jedes neue Urteil, in klarem Deutsch, um sieben im Postfach. Eine Mail am Tag, nicht mehr.

