LaTeX-Formate

pdflatex, lualatex, platex … die Befehlsnamen sehen ähnlich aus und sorgen für Verwirrung, aber jeder ist in Wirklichkeit eine Kombination aus einem „Format“ und einer „Engine“. Ein Format ist ein vorkompiliertes Bündel von Makros; Eine Engine ist das Programm, das sie tatsächlich ausführt. LaTeX ist ein solches Format und läuft auf mehreren verschiedenen Engines. Diese Seite sortiert LaTeX2e, pLaTeX/upLaTeX, LuaLaTeX und XeLaTeX entlang genau dieser Achse.

Format vs. Engine

Eine Engine ist die ausführbare Datei, die eine .tex-Datei liest und sie formatiert (TeX, pdfTeX, XeTeX, LuaTeX, e-pTeX usw.). Im Gegensatz dazu ist ein Format eine riesige Sammlung von Makros – \documentclass, \section und der Rest –, die vorab eingelesen und in einem einzigen Dump (einer .fmt-Datei) vorkompiliert werden. Beim Start lädt die Engine das .fmt sofort und erspart sich die Neudefinition jedes Makros bei jedem Lauf.

„LaTeX“ ist also der Name eines Formats, nicht einer Engine. Das gleiche LaTeX-Format kann auf verschiedenen Engines ausgeführt werden, und der von Ihnen eingegebene Befehl codiert, welche Engine + welches Format Sie möchten. pdflatex bedeutet „pdfTeX-Engine + LaTeX-Format“; lualatex bedeutet „LuaTeX-Engine + LaTeX-Format“.

LaTeX ist nicht das einzige Format. Knuths eigene Grundgerüste plain TeX und ConTeXt sind völlig andere Formate. Diese Seite beschränkt sich auf die am häufigsten verwendete – LaTeX – und geht durch die wichtigsten Engines, auf denen Sie sie ausführen können.

LaTeX (2e)

Heute bedeutet „LaTeX“ fast ausnahmslos LaTeX2e. Es handelt sich um die aktuelle Version der LaTeX-Makros von Leslie Lamport, die jetzt vom LaTeX-Projekt verwaltet werden und 1994 auf den Markt kamen. Der 2e sollte eine „kleine Überarbeitung“ des früheren LaTeX 2.09 signalisieren, ein Zwischenschritt auf dem Weg zum lange geplanten LaTeX3.

Aber LaTeX3 entstand nie als eigenständiger neuer Kernel; seine Arbeit wurde stattdessen über LaTeX2e als expl3 (die LaTeX3-Programmierschicht) geschichtet. Seit 2020 wird expl3 standardmäßig als Teil des Formats geladen und wird zunehmend innerhalb des Kernels verwendet, um neue Funktionen zu implementieren. Das Ergebnis: Wir verwenden täglich immer noch einfaches LaTeX2e, dessen interne Komponenten jedoch ständig mit LaTeX3-Technologie modernisiert werden.

Der LaTeX2e-Kernel wird jetzt regelmäßig zweimal jährlich (ungefähr Juni und November) aktualisiert. Die neueste stabile Version ist 01.11.2025 (ausgeliefert im November 2025), und eine Vorabversion der nächsten Version, 01.06.2026, ist bereits zum Testen im Umlauf. Das Erstellungsmodell ist konsistent: Wählen Sie eine Dokumentklasse mit \documentclass an der Spitze aus, führen Sie das Laden und Konfigurieren des Pakets in der Präambel bis \begin{document} durch und schreiben Sie dann den Hauptteil – das bekannte „Klasse + Präambel“-Modell.

Das Ausführen dieses Formats auf der pdfTeX-Engine ist die klassischste Standardpaarung. Derselbe pdfTeX teilt sich nach Ausgabeziel in zwei Befehle auf: latex führt pdfTeX im DVI-Modus aus und gibt das Zwischenformat DVI aus (später von einem separaten Tool in PDF konvertiert), während pdflatex pdfTeX dazu veranlasst, PDF direkt auszugeben. Für die heutigen überwiegend westlichen Textdokumente ist pdflatex die De-facto-Standardeinstellung.

pLaTeX / upLaTeX

pLaTeX und upLaTeX stellen das LaTeX-Format in Engines bereit, die für den japanischen Schriftsatz entwickelt wurden. Japanspezifische Arbeiten – vertikales Schreiben, Rubin (Furigana), japanischer Linienaufbau – werden von der Engine-Familie pTeX verarbeitet, die ursprünglich von der ASCII Corporation erweitert wurde. Im aktuellen TeX Live laufen sowohl platex als auch uplatex auf einer e-upTeX-Basis, aber platex behält die pLaTeX-kompatible Zeichenverarbeitung bei, während uplatex im Unicode-orientierten upLaTeX-Format ausgeführt wird.

Diese Familie gibt immer DVI aus und konvertiert dann das japanische Wort DVI in PDF mit dvipdfmx – einer zweistufigen Pipeline (uplatex file.tex gefolgt von dvipdfmx file.dvi). Kombinieren Sie es mit upmendex für einen japanischen Index. Für Dokumentklassen sind jsarticle/jsbook (für pLaTeX) von Haruhiko Okumura und ihre Unicode-Gegenstücke wie ujarticle üblich, ebenso wie die neuere, JIS X 4051-konforme jlreq.

Der Unterschied zwischen platex und uplatex liegt weniger in der ausführbaren Basis als vielmehr in der Zeichenverarbeitung auf Formatebene. platex behält das traditionelle Verhalten im pTeX-Stil bei, um die Abwärtskompatibilität mit pLaTeX-Assets zu gewährleisten. uplatex setzt Unicode voraus und beherrscht Japanisch gemischt mit Hangul oder Kyrillisch gut. Für neue japanische Papiere ist uplatex die Standardwahl.

Wann man es verwenden sollte: Wenn eine japanische Gesellschaft oder ein japanischer Verlag eine Klasse oder einen Stil für pLaTeX ausliefert oder wenn Sie die ausgereifte japanische Komposition von pTeX (vertikale Schrift und dergleichen) wünschen, ist pLaTeX/upLaTeX die solide Wahl. Wenn Sie umgekehrt Systemschriftarten unverändert verwenden oder Unicode direkt einfügen möchten, passt LuaLaTeX-ja (unten) besser.

LuaLaTeX

LuaLaTeX legt das LaTeX-Format auf der LuaTeX-Engine ab; Der Befehl lautet lualatex. LuaTeX ist eine von pdfTeX abgeleitete Engine, die Unicode-Eingaben direkt verarbeitet und OpenType / TrueType-Systemschriftarten laden kann, die auf Ihrem OS über das fontspec-Paket installiert sind. Es erzeugt PDF direkt, ohne Zwischenformat.

Wie der Name schon sagt, ist sein Markenzeichen, dass die Skriptsprache Lua in die Engine eingebettet ist. Mit \directlua{...} können Sie Lua schreiben, das in die Interna von TeX hineingreift und so Erweiterungen, die früher schwierig waren, viel einfacher macht. Der japanische Schriftsatz wird vom Paket luatexja übernommen und liefert eine Komposition auf Augenhöhe mit pLaTeX, während die Systemschriftarten und Unicode beibehalten werden.

Aufgrund dieser Modernität verweist das LaTeX-Team zunehmend auf LuaLaTeX als die moderne Engine und empfiehlt sie als Standard für neue Projekte. Sein Nachteil ist die Geschwindigkeit: Die Kompilierung ist aufwändiger als pdflatex oder xelatex (manchmal etwa doppelt so langsam wie XeLaTeX). Wenn Sie eine Engine suchen, die Japanisch, mehrsprachigen Text, aufwändige Schriftartenverarbeitung und programmgesteuerten Schriftsatz unterstützt, ist LuaLaTeX der erste Kandidat.

XeLaTeX

XeLaTeX legt das LaTeX-Format auf der XeTeX-Engine ab; Der Befehl lautet xelatex. Wie LuaLaTeX unterstützt es die Unicode-Eingabe und die direkte Verwendung von Systemschriftarten über fontspec. Für die Ausgabe erzeugt es PDF über den integrierten xdvipdfmx (einen von dvipdfmx abgeleiteten Treiber).

Die Stärke von XeLaTeX ist Einfachheit. Für „Ich möchte nur meine Systemschriftarten verwenden“ ist es tendenziell einfacher zu konfigurieren und schneller zu kompilieren als LuaLaTeX. Die Auswahl der Schriftarten ähnelt der Schriftartennamensuche des Betriebssystems, so dass es einfach ist, einen Schriftartennamen nach dem anderen auszuprobieren. Andererseits fehlt ihm die umfassende Programmierbarkeit von Lua, und der Schwerpunkt der Neuentwicklung hat sich auf LuaTeX verlagert.

Befehls-Spickzettel

Selbst bei demselben LaTeX-Format entscheidet der Befehlsname über die Engine dahinter, das Ausgabeformat und die Funktionsweise von Schriftarten. Lesen Sie in der folgenden Tabelle von links nach rechts, beginnend mit dem Befehlsnamen.

BefehlMotorAusgabeUnicode / Systemschriftarten
latexpdfTeX (DVI-Modus)DVI → muss konvertiert werdenNein (benötigt Eingabe usw.)
pdflatexpdfTeXPDF (direkt)Nein (benötigt Eingabe usw.)
platexe-upTeX (pLaTeX-Kompatibilitätslaufzeit)DVI → dvipdfmxJapanisch; Legacy-Schriftarten
uplatexe-upTeXDVI → dvipdfmxIntern Unicode; Legacy-Schriftarten
lualatexLuaTeXPDF (direkt)Ja – fontspec / luatexja
xelatexXeTeXPDF (über xdvipdfmx)Ja – fontspec

In Bezug auf die eigentlichen Befehle werden die Engines, die PDF direkt ausgeben, in einem Schritt abgeschlossen, während die auf DVI basierenden Engines einen Konvertierungsschritt hinzufügen.

terminal
# pdfTeX: PDF を直接出力 / emits PDF directly
$ pdflatex main.tex      # → main.pdf

# LuaTeX: PDF を直接出力 / emits PDF directly
$ lualatex main.tex      # → main.pdf

# upLaTeX: DVI を出力し、dvipdfmx で PDF へ変換
# upLaTeX emits DVI, then dvipdfmx converts to PDF
$ uplatex main.tex       # → main.dvi
$ dvipdfmx main.dvi      # → main.pdf

Welches soll ich wählen?

Es folgt eine grobe Anleitung. Die detaillierten Kriterien – Geschwindigkeit, Paketkompatibilität, die Situation in Japan usw. – werden auf der Seite „Eine Engine auswählen“ erläutert.

  • Hauptsächlich westlicher Text, schnellpdflatex. Am ausgereiftesten und mit der umfassendsten Paketunterstützung.
  • Japanische Papiere / eine erforderliche vorhandene Klasseuplatex (oder platex bei Bedarf). DVI → dvipdfmx.
  • Eine moderne Alleskönner-Engine, auch Japanischlualatex. Unicode + Systemschriftarten + luatexja.
  • Verwenden Sie Systemschriftarten mit minimalem Aufwandxelatex. Leicht zu konfigurieren und schneller zu kompilieren.

Sobald Sie es ausgewählt haben, frieren Sie es im Projekt ein

Die Wahl des Motors kann nicht durch die Stimmung geändert werden. Sobald bei einer Abschlussarbeit Titelseite, Inhaltsverzeichnis, Abbildungen, Tabellen und Literaturverzeichnis korrekt erstellt wurden, frieren Sie den Erstellungsvorgang ein im README oder .latexmkrc. Durch das Verschieben eines Dokuments von lualatex nach uplatex werden die Schriftartenauswahl, die japanische Handhabung, die PDF-Route und oft auch die Bibliographieverarbeitung auf einmal geändert. Wenn Sie wechseln, testen Sie alle Funktionen in einer kleinen Stichprobe, bevor Sie zum vollständigen Manuskript zurückkehren.

Notieren Sie beim Einfrieren nicht nur den Befehl, sondern auch die erste Zeile des Protokolls. Zeilen wie This is LuaHBTeX ..., This is XeTeX ... oder This is e-upTeX ... geben den tatsächlichen Motor und das TeX Live-Jahr an. Wenn in der Zusammenarbeit „derselbe Befehl“ eine unterschiedliche Ausgabe liefert, kann der Vergleich dieser Zeile schnell Probleme mit den Editoreinstellungen von TeX Live oder Formatunterschieden trennen.