von gast » Di 30. Jun 2020, 09:06
Schon vor zehn Jahren ist lualatex als Nachfolger von pdflatex angetreten, war so gesehen also die Zukunft. Heute ist lualatex vergleichbar stabil wie xelatex. Mit luahbtex, das seit TeX Live 2020 die Basis für lualatex ist, ist der Vorsprung von xelatex bei bestimmten Sprachen deutlich geschrumpft. lualatex hat dagegen Vorteile bei der Einbindung von Fonts via Fontname statt Dateiname. Und es bietet über den Lua-Teil der Engine Möglichkeiten, die kein andere andere TeX-Engine hat. So gibt es inzwischen einige sehr interessante Pakete, die auf lualatex angewiesen sind oder damit weit leistungsfähiger sind. Die Zukunft bei tagged-PDF setzt klar auf lualatex, wenn auch derzeit noch vieles auch notdürftig mit pdflatex geht. Unschlagbar ist das Speichermanagement von lualatex. Das merkt man ganz schnell, wenn man aufwändigere Plots mit pgfplots erstellt. Da steigen pdflatex und xelatex teilweise recht schnell mit Speichermangel aus, während lualatex einfach dynamisch mehr Speicher alloziert.
Die UTF-8-Unterstützung in LaTeX für pdflatex wird übrigens nie an die native UTF-8-Unterstützung durch xelatex oder lualatex heranreichen. Für die Engine pdftex bleiben eben Mehrbyte-UTF-8-Zeichen immer mehrere Zeichen, während es für xetex und luatex ein Zeichen ist. Und es bedeutet immer Extraaufwand auf Tokenebene diese Besonderheit zu verarbeiten. Das führt beispielsweise dazu, dass bei den regulären Ausdrücken in l3kernel solche Mehrbyte-Zeichen mit pdflatex teilweise nicht so verarbeitet werden, wie der Anwender sich das erhofft. Wenn eben [äöü] in Wirklichkeit in vier statt drei erlaubte Zeichen zerfällt, dann kann das schon Auswirkungen haben.
Verbreitet sind inzwischen alle drei Engines. Beide großen TeX-Distributionen stellen sie bereit. Overleaf schaltet bei Verwendung von fontspec automatisch auf LuaLaTeX um. Viele Beispiele in den Foren verwenden fontspec und sind damit für LuaLaTeX oder XeLaTeX aber nicht für PDFLaTeX. Andere verwenden weder fontenc noch (das inzwischen ohnehin meist überflüssige) inputenc und sind ggf. sogar für alle drei Engines geeignet. Nur an Unis scheinen noch immer Beispiele herumzugeistern, die sogar \usepackage[latin1]{inputenc} verwenden. Das ist dann schon ein Hinweis, dass man besser die Finger davon lassen sollte, weil der Code seit Jahren nicht mehr vernünftig gepflegt wurde. Alle weit verbreiteten LaTeX-Editoren verwenden in der Voreinstellung inzwischen UTF-8.
Meine Empfehlung: Nimm lualatex oder xelatex. Wenn du ein alter PS-Tricks-Fan bist, dann nimm xelatex. Wenn du beispielsweise automatisch Ligaturen nur an den richtigen Stellen haben willst oder intensiv mit pgfplots arbeiten willst, dann nimm lualatex. Wobei der Wechsel von xelatex zu lualatex oft problemlos möglich ist. Es gibt nur wenige Pakete, die ausschließlich mit xelatex funktionieren. Wenn du das letzte bisschen Geschwindigkeit herauskitzeln musst, weil du Rechnungen für 1 Mio Kunden automatisiert erstellen musst, dann bleib bei pdflatex.
Schon vor zehn Jahren ist [tt]lualatex[/tt] als Nachfolger von [tt]pdflatex[/tt] angetreten, war so gesehen also die Zukunft. Heute ist [tt]lualatex[/tt] vergleichbar stabil wie [tt]xelatex[/tt]. Mit [tt]luahbtex[/tt], das seit TeX Live 2020 die Basis für [tt]lualatex[/tt] ist, ist der Vorsprung von [tt]xelatex[/tt] bei bestimmten Sprachen deutlich geschrumpft. [tt]lualatex[/tt] hat dagegen Vorteile bei der Einbindung von Fonts via Fontname statt Dateiname. Und es bietet über den Lua-Teil der Engine Möglichkeiten, die kein andere andere TeX-Engine hat. So gibt es inzwischen einige sehr interessante Pakete, die auf [tt]lualatex[/tt] angewiesen sind oder damit weit leistungsfähiger sind. Die Zukunft bei tagged-PDF setzt klar auf [tt]lualatex[/tt], wenn auch derzeit noch vieles auch notdürftig mit [tt]pdflatex[/tt] geht. Unschlagbar ist das Speichermanagement von [tt]lualatex[/tt]. Das merkt man ganz schnell, wenn man aufwändigere Plots mit [ctan]pgfplots[/ctan] erstellt. Da steigen [tt]pdflatex[/tt] und [tt]xelatex[/tt] teilweise recht schnell mit Speichermangel aus, während [tt]lualatex[/tt] einfach dynamisch mehr Speicher alloziert.
Die UTF-8-Unterstützung in LaTeX für [tt]pdflatex[/tt] wird übrigens nie an die native UTF-8-Unterstützung durch [tt]xelatex[/tt] oder [tt]lualatex[/tt] heranreichen. Für die Engine [tt]pdftex[/tt] bleiben eben Mehrbyte-UTF-8-Zeichen immer mehrere Zeichen, während es für [tt]xetex[/tt] und [tt]luatex[/tt] ein Zeichen ist. Und es bedeutet immer Extraaufwand auf Tokenebene diese Besonderheit zu verarbeiten. Das führt beispielsweise dazu, dass bei den regulären Ausdrücken in [ctan]l3kernel[/ctan] solche Mehrbyte-Zeichen mit [tt]pdflatex[/tt] teilweise nicht so verarbeitet werden, wie der Anwender sich das erhofft. Wenn eben [tt][äöü][/tt] in Wirklichkeit in vier statt drei erlaubte Zeichen zerfällt, dann kann das schon Auswirkungen haben.
Verbreitet sind inzwischen alle drei Engines. Beide großen TeX-Distributionen stellen sie bereit. Overleaf schaltet bei Verwendung von [ctan]fontspec[/ctan] automatisch auf LuaLaTeX um. Viele Beispiele in den Foren verwenden [ctan]fontspec[/ctan] und sind damit für LuaLaTeX oder XeLaTeX aber nicht für [ctan]PDFLaTeX[/ctan]. Andere verwenden weder [ctan]fontenc[/ctan] noch (das inzwischen ohnehin meist überflüssige) [ctan]inputenc[/ctan] und sind ggf. sogar für alle drei Engines geeignet. Nur an Unis scheinen noch immer Beispiele herumzugeistern, die sogar [tt]\usepackage[latin1]{inputenc}[/tt] verwenden. Das ist dann schon ein Hinweis, dass man besser die Finger davon lassen sollte, weil der Code seit Jahren nicht mehr vernünftig gepflegt wurde. Alle weit verbreiteten LaTeX-Editoren verwenden in der Voreinstellung inzwischen UTF-8.
Meine Empfehlung: Nimm [tt]lualatex[/tt] oder [tt]xelatex[/tt]. Wenn du ein alter PS-Tricks-Fan bist, dann nimm [tt]xelatex[/tt]. Wenn du beispielsweise automatisch Ligaturen nur an den richtigen Stellen haben willst oder intensiv mit [ctan]pgfplots[/ctan] arbeiten willst, dann nimm [tt]lualatex[/tt]. Wobei der Wechsel von [tt]xelatex[/tt] zu [tt]lualatex[/tt] oft problemlos möglich ist. Es gibt nur wenige Pakete, die ausschließlich mit [tt]xelatex[/tt] funktionieren. Wenn du das letzte bisschen Geschwindigkeit herauskitzeln musst, weil du Rechnungen für 1 Mio Kunden automatisiert erstellen musst, dann bleib bei [tt]pdflatex[/tt].