LuaTeX 1.0.0: Premiere als stabile Version
Das Textsatzsystem TeX ist mit LuaTeX in einer Variante implementiert, die einerseits Unicode umfassend umsetzt, und andererseits mit der Skriptsprache Lua programmierbar ist. LuaTeX ist jetzt als stabile Version 1.0.0. erschienen.
![LuaTeX 1.0.0: Premiere als stabile Version](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/1/8/9/9/3/5/2/Unbenannt-8ef30ba59d75875f.png)
Das LuaTeX-Projekt hat die Veröffentlichung der ersten stabilen Version von LuaTeX 1.0.0 bekanntgegeben. Damit steht neben pdfTeX und XeTeX, deren Entwicklung nicht mehr wesentlich vorangetrieben wird, eine weitere moderne Engine für das Textsatzsystem TeX in einer stabilen Version zur Verfügung. Sie kann auch mit dem Format LaTeX als LuaLaTeX eingesetzt werden. Das Programm ist nicht Bestandteil der aktuellen TeX-Distributionen, sondern kann bis auf weiteres nur von der Projektseite heruntergeladen werden.
LuaTeX ist als eine Erweiterung des Programms pdfTeX angelegt, das die Standard-Satz-Engine aller TeX-Distributionen geworden ist. Wie bei pdfTeX ist PDF das standardmäßige Ausgabeformat. Durch LuaTeX entfällt jedoch eine Vielzahl von internen und systembedingten Beschränkungen, die bisher für das intern mit 8 Bit laufende Textsatzprogramm TeX galten, und die der weiteren Entwicklung von TeX in neuerer Zeit Grenzen gesetzt hatten.
Mit Unicode ...
So bietet LuaTeX eine umfassende Unterstützung von Unicode sowohl bei der Eingabekodierung (UTF-8) als auch bei der Verwendung von OpenType-Schriften. Dadurch wird ein vollständiger Unicode-basierter Arbeitsablauf mit LaTeX möglich. Außerdem ist die Skriptsprache Lua fest in das Programm integriert. Dadurch können Benutzer die Funktionen von (La)TeX beliebig erweitern, ohne in den Textsatz-Algorithmus selbst einzugreifen. Weitere wichtige Bestandteile von LuaTeX sind die Grafik-Bibliothek MetaPost, die Erweiterungen von e-TeX sowie die mittlerweile historischen Projekte Omega und Aleph, mit denen schon in den 1990er Jahren versucht worden war, TeX für den mehrsprachigen Textsatz mit dem Unicode-Zeichensatz zu erweitern. Das Textsatzsystem ConTeXt, das als eine Alternative zu LaTeX entwickelt worden ist, verwendet in der Version mark IV bereits standardmäßig LuaTeX .
Seine Vorteile kann LuaTeX naturgemäß vor allem beim Setzen mehrsprachiger Texte ausspielen, insbesondere bei den Zeichensätzen asiatischer und semitischer Sprachen (Arabisch, Hebräisch, Farsi), die von rechts nach links gesetzt werden, sowie beim Mischen solcher Schriften mit lateinischen oder etwa griechischen Texten innerhalb desselben Dokuments. Für die Nutzung typographischer Feinheiten (optischer Randausgleich, Zeichen-Protrusion, Fontexpansion), die früher pdfTeX vorbehalten waren, war das Paket microtype schon im Jahr 2013 erweitert worden.
Für den mathematischen Formelsatz wird eine Schriftart gebraucht, die über den dafür benötigten Unicode-Zeichenvorrat verfügt, etwa die Schriften LatinModern oder TeXGyre mit den Ergänzungen LatinModernMath und TeXGyreMath. Bei den Schriften muss man sich übrigens nicht mehr auf den Vorrat seiner TeX-Distribution beschränken. Vielmehr kann man wie schon bei XeTeX auf jede OpenType-Schrift zurückgreifen, die auf dem System lokal installiert ist. Die Auswahl des Fonts erfolgt über die neuen LaTeX-Befehle, die das Paket fontspec bereitstellt.
... und Lua
Außerdem kann Lua-Code unmittelbar aus dem LaTeX-Dokument heraus ausgeführt werden, beispielsweise um Berechnungen durchzuführen oder um beliebige programmierbare Schritte zur Laufzeit zu erledigen, deren Ergebnis wiederum Eingang in das zu setzende Dokument finden können.
Anwender sollten darauf achten, dass Pakete, die auf älteren Versionen von LuaTeX aufsetzen, mit aktuellen Programmversionen inkompatibel sind. Mit LuaTeX 0.95 wurden einige Primitiven geändert, die die interne Kompatibilität mit pdfTeX betrafen. Soweit die Paketentwickler darauf noch nicht reagiert haben, kann das Paket luatex85 für Abhilfe sorgen.
Kritisiert worden war, dass die Entwickler Lua als Skriptsprache für das Projekt gewählt hatten, weil die Sprache im Vergleich zu Perl oder Python bisher nur eine relativ geringe Verbreitung aufweist. Außerdem wird mit LuaTeX eines der bisherigen Mantren aufgegeben, die die Entwicklung und den Einsatz von (La)TeX von Anfang an begleitet hatten: Dass nämlich die Ausgabe des Systems nur von den verwendeten (La)TeX-Makros abhängig sei und unabhängig vom Betriebssystem und der sonstigen Umgebung immer wieder zu denselben Umbrüchen führen müsse. Demnach konnte ein Dokument aus den Quellen immer wieder mit demselben Satz hergestellt werden. LuaTeX versucht zwar so treu wie möglich am Ergebnis von (pdf)TeX zu bleiben, kann aber ebenso wie XeTeX keine vollständig identischen Ergebnisse zu TeX garantieren. Angesichts der von seinem Entwickler Donald E. Knuth verfügten Unveränderbarkeit von TeX und der vielen Vorteile, die LuaTeX in sich vereint, dürfte dieser Umstand aber für die meisten Einsatzszenarien vernachlässigbar sein.
(hps)