ExactTeX ist eine schrittweise typisierte (gradually-typed) Obermenge von LaTeX, die statische Typprüfungen, semantische Validierungen und refaktorisierungssichere Bezeichner ermöglicht, bevor ein PDF generiert wird. Jedes existierende .tex-Dokument ist ohne Modifikation als .xtex gültig, da unannotierter Quellcode über einen offenen Typ (?O) Byte für Byte unverändert durchgereicht wird. Der in Rust implementierte Kern arbeitet ohne externe Abhängigkeiten und bedient synchron eine CLI, ein Language Server Protocol (LSP) sowie eine browserbasierte WebAssembly-Laufzeitumgebung. Neben der Überprüfung von Querverweisen und strukturellen Blockeigenschaften integriert das System ein natives Revisions- und Änderungsverfolgungsmodell direkt in das Dateiformat.
Wichtigste Punkte
Graduelles Typsystem: Das System implementiert den offenen Basistyp ?O (angelehnt an Malewski et al., OOPSLA 2021), der mit allen Typen konsistent ist (?O ~ T), wodurch unannotierte Dokumente fehlerfrei bleiben und schrittweise mit Annotationen wie @id, @ref, @cite oder Typblöcken (\figure, \table) versehen werden können.
Semantische Fehlerdiagnostik: Anstelle kryptischer nativer LaTeX-Fehlermeldungen (z. B. Overfull \hbox) liefert ExactTeX kontextbezogene Fehler im Klartext unter Verwendung der deklarierten Objektnamen und deckt Typmischungen auf (z. B. eine @ref(fig:...)-Referenz auf einen Tabellenblock).
Transport-Garantie: Unannotierter LaTeX-Code wird unverändert durchgeleitet, wodurch die vollständige Kompatibilität mit dem bestehenden TeX-Ökosystem und Standard-Kompilierern erhalten bleibt.
Architektur und Plattformunterstützung: Die Codebasis basiert auf Rust (Version 1.88+) ohne Laufzeitabhängigkeiten und garantiert über eine CI-Parity-Suite identische Ergebnisse über drei Schnittstellen: die Kommandozeile (xtex-cli), Editor-Werkzeuge (xtex-lsp) und den Web-Editor Vitela via WebAssembly.
Integriertes Revisionsmodell: Änderungsvorschläge, Annotationen und Kommentare werden direkt in der Datei abgebildet (analog zu .docx), anstatt auf inkompatible externe Zusatzwerkzeuge angewiesen zu sein.
Deterministische Offline-Verifikation: Validierungen von externen Ressourcen wie DOIs, URLs und Literaturangaben werden in einem separaten Schritt aufgezeichnet und offline reproduziert, um Netzwerkaufrufe während des Kompiliervorgangs auszuschließen.
Diskussions-Highlights
Relevanz von Typsystemen in TeX: Kommentatoren hinterfragen, ob fehlende Typisierung das Kernproblem von LaTeX ist, und verweisen stattdessen auf die schwierige Abbildung zweidimensionaler Strukturen (wie TikZ-Vektorgrafiken oder Tabellen) in linearen Text sowie uneinheitliche typografische Gepflogenheiten (z. B. kursive versus aufrechte Darstellung von Differentialoperatoren).
Rolle von KI-Assistenten: Es wird argumentiert, dass moderne KI-Codierassistenten das Verfassen von nativem LaTeX bereits so weit erleichtern, dass zusätzliche Zwischen-Compiler überflüssig werden könnten; Gegenargumente betonen, dass KI beim schnellen Live-Mitschreiben oder in reglementierten Prüfungsumgebungen ungeeignet ist.
Vergleich mit Typst: In der Debatte wird Typst wiederholt als modernere und ergonomischere Alternative zu TeX angeführt, was zugleich Kritik an der thematischen Vereinnahmung des Threads gegenüber der Vorstellung von ExactTeX auslöst.
Kritik am Dokumentationsstil: Mehrere Nutzer merken an, dass Teile der Projektdokumentation und README-Formulierungen stilistische Merkmale aufweisen, die auf die Erstellung durch Large Language Models (LLMs wie Claude) hindeuten.
Glossar
Gradual Typing (Schrittweise Typisierung): Ein Typsystem, bei dem Teile eines Programms oder Dokuments dynamisch/untypisiert bleiben können, während andere Abschnitte statisch auf Typkorrektheit geprüft werden.
Superset (Obermenge): Eine Erweiterung einer bestehenden Sprache (hier LaTeX), die alle gültigen Konstrukte der Ausgangssprache unverändert unterstützt und um neue Syntax erweitert.
Language Server Protocol (LSP): Ein standardisiertes Protokoll zur Kommunikation zwischen Entwicklungsumgebungen/Editoren und Sprachwerkzeugen, das Funktionen wie Autovervollständigung, Fehleranzeige und Definitionssuche bereitstellt.
WebAssembly (WASM): Ein binäres Instruktionsformat, das es ermöglicht, in Sprachen wie Rust geschriebenen Code mit nahezu nativer Geschwindigkeit direkt im Webbrowser auszuführen.
Parity Suite (Paritätstest-Suite): Eine automatisierte Testreihe, die sicherstellt, dass unterschiedliche Implementierungen oder Schnittstellen (CLI, LSP, WASM) bei gleicher Eingabe exakt identische Ausgaben erzeugen.
Overfull \hbox: Eine typische LaTeX-Warnung, die auftritt, wenn Text oder Elemente horizontal über die definierte Seiten- oder Spaltenbreite hinausstehen.
TikZ: Ein mächtiges, aber komplexes LaTeX-Makropaket zur programmatischen Erstellung von Vektorgrafiken direkt im Dokumentenquelltext.
Typst: Ein modernes, in Rust entwickeltes Satzsystem, das als schlankere, schnellere und benutzerfreundlichere Alternative zu LaTeX konzipiert wurde.