von Patrick Gundlach |

LuaTeX 1.0.4

Der Publisher nutzt bekanntermaßen LuaTeX als Satzengine. LuaTeX ist eine moderne Variante von TeX, was ja für seine exzellenten Satzeigenschaften bekannt ist. LuaTeX wird in der Installation des Publishers mitgeliefert, so dass sich der Anwender hierüber keine Gedanken machen muss. Auch kommt er in nicht direkt mit TeX in Berührung, daher werden auch keine speziellen TeX-Kenntnisse benötigt, um den Publisher zu bedienen.

Die mitgelieferte Version von LuaTeX ist zwar schon recht alt (0.79.1 von März 2014), hat aber alle Funktionalität, die ich für die PDF-Ausgabe benötige. Ein paar Nachteile gibt es dennoch:

  • Ganz spezielle OpenType Fonts werden nicht unterstützt.
  • Die Version lässt sich nicht einfach mit externen Bibliotheken (z.B. HarfBuzz) verbinden.
  • Neuerungen (z.B. PDF 2.0) lassen sich nicht oder nicht so leicht mit der alten Version realisieren.

Daher habe ich mal ausprobiert, den Publisher mit Version 1.0.4 von LuaTeX zu verwenden. Das ist die Version, die mit dem aktuellen TeXLive ausgeliefert wird.

Im Nachhinein war die Unterstützung doch recht leicht. Ein paar Dinge haben sich aus Sicht des Programmierers geändert:

  • Viele Funktionen aus der tex-Bibliothek sind in die pdf-Bibliothek gewandert.
  • Die Eigenschaften der dehnbaren Leerräume (glue) sind nun direkt im Knoten beschrieben, nicht mehr im Hilfsknoten (der glue_spec-Knoten ist weggefallen).
  • Die Funktion tex.linebreak() erlaubt keine Metatabelle als zweiten Parameter, warum auch immer.

Meine Änderungen sind fast alle in dem Commit 753af8d7 zu finden, der einigermaßen überschaubar ist.

Das sind doch recht kleine Änderungen, mit denen man leicht umgehen kann. Eine Sache ist aber etwas verstörend. Die Leerräume in einer Zeile werden leicht unterschiedlich verteilt.

Das ist eine Testdatei mit LuaTeX 0.79.1

Und dies hier mit LuaTeX Version 1.0.4:

Die Ausgabe scheint identisch zu sein, doch ein paar kleine Unterschiede werden mit einem automatischen PDF-Vergleich sichtbar:

Einige Buchstaben sind um einen absolut minimalen Wert verschoben. Warum das so ist, habe ich noch nicht heraus gefunden. Ich gehe davon aus, dass dem Anwender diese Änderungen nie im Leben auffallen, doch für einen automatischen Test ist das schon wichtig.

Was ändert sich für die Anwender?

Die Kurzantwort: nichts. Ich vermute, dass LuaTeX 1.0.4 (oder eine neuere Version) in der Version 4 des Publishers als Voreinstellung enthalten ist. Bis dahin müssen noch viele Tests durchgeführt werden, damit sich auch wirklich nichts ändert. Die klitzekleinen Änderungen in der Ausgabe sind zwar etwas lästig, aber meines Erachtens nicht relevant.

Ich freue mich schon auf die Fähigkeit, Zusatzbibliotheken leicht einzubinden. Dank FFI kann man auf einen komplizierten Wrapper oftmals verzichten.