Typst ist einfacher als LaTeX

Mi, 22. März 2023, Ralf Hersel

LaTeX ist ein hochwertiges Schriftsatzsystem, das Funktionen für die Erstellung technischer und wissenschaftlicher Dokumentationen enthält. LaTeX ist der De-facto-Standard für die Kommunikation und Veröffentlichung von wissenschaftlichen Dokumenten.

Die beiden Hochschulabsolventen Martin Haug und Laurenz Mädje aus Berlin haben eine Leidenschaft für Software. Da sie frustriert über die Komplexität von LaTeX waren, hatten sie die Idee zu einem leistungsstarken und einfachen Schriftsatzsystem als Alternative zu LaTeX. Nach vier Jahren Entwicklungszeit ist ihr Satzsystem Typst fast startklar.

Typst bietet folgende Vorteile:

  • Integriertes Markup für die gängigsten Formatierungsaufgaben
  • Flexible Funktionen für alles andere
  • Ein eng integriertes Skripting-System
  • Mathematischer Satz, Verwaltung von Bibliografien und mehr
  • Schnelle Kompilierzeiten dank inkrementeller Kompilierung
  • Freundliche Fehlermeldungen, falls etwas schiefgeht

Der Typst-Compiler ist in Rust geschrieben und steht unter der Apache 2.0 Lizenz.

Das Beispiel im Titelbild verwendet das Projekt als kleine Einführung in die Syntax des Satzsystems:

Mithilfe von Set-Regeln konfigurieren wir Elementeigenschaften wie die Grösse von Seiten oder die Nummerierung von Überschriften. Setzt man die Seitenhöhe auf Auto, wird sie an den Inhalt angepasst. Die Set-Regeln eignen sich für die gängigsten Konfigurationen. Wer die volle Kontrolle haben möchte, kann auch die Show-Regeln verwenden, um das Aussehen eines Elements völlig neu zu definieren.

Wir fügen eine Überschrift mit der Syntax = Überschrift ein. Ein Gleichheitszeichen erzeugt eine Überschrift der obersten Ebene, zwei Gleichheitszeichen eine Unterüberschrift und so weiter. Typst verfügt über weitere leichtgewichtige Auszeichnungsmöglichkeiten wie diese, eine vollständige Liste gibt es in der Syntaxreferenz.

Mathematische Gleichungen werden in Dollarzeichen eingeschlossen. Durch Hinzufügen zusätzlicher Leerzeichen um den Inhalt einer Gleichung können wir sie in einen separaten Block stellen. Bezeichner mit mehreren Buchstaben werden als Typst-Definitionen und -Funktionen interpretiert, sofern sie nicht in Anführungszeichen gesetzt werden. Auf diese Weise brauchen wir keine Backslashes für Dinge wie floor und sqrt. Und phi.alt wendet den Modifikator alt auf das phi an, um eine bestimmte Symbolvariante auszuwählen.

Jetzt kommen wir zum Skripting. Um Code in ein Typst-Dokument einzugeben, können wir einen Hashtag gefolgt von einem Ausdruck schreiben. Wir definieren zwei Variablen und eine rekursive Funktion, um die n-te Fibonacci-Zahl zu berechnen. Anschliessend werden die Ergebnisse in einer mittig ausgerichteten Tabelle angezeigt. Die Tabellenfunktion nimmt ihre Zellen zeilenweise auf. Daher übergeben wir zuerst die Formeln $F_1$ bis $F_10$ und dann die berechneten Fibonacci-Zahlen. Wir wenden den Spreizungsoperator (..) auf beide an, da es sich um Arrays handelt und wir die Elemente der Arrays als einzelne Argumente übergeben wollen.

Für die Installation findet man den Quellcode und vorgefertigten Binärdateien für die neueste Version von Typst auf der Release-Seite. Damit erhält man die Typst-CLI, die Typst-Quellen in PDFs umwandelt. Diese Aufrufe wandeln ein Typst-Skript in eine PDF-Datei um:

# Creates `file.pdf` in working directory.
typst file.typ

# Creates PDF file at the desired path.
typst path/to/source.typ path/to/output.pdf

Ausser dem Compiler bietet das Projekt einen Online-Editor (in einer Beta-Version). Dieser unterstützt kollaboratives Arbeiten und eine Live-Vorschau des gerenderten Textes.

Quellen:
https://typst.app/
https://github.com/typst/typst

Tags

LaTex, Typst, Schriftsatz, Satzsystem