ConTeXt ist ein zweites, vollwertiges Dokumentvorbereitungssystem, das auf TeX aufbaut. Es gehört zur gleichen Familie wie LaTeX – beides sind „Formate“ – aber seine Designphilosophie ist ganz anders: Eine konsistente Familie von \setup...-Befehlen ermöglicht eine genaue Kontrolle über das Erscheinungsbild, und die MetaPost-Zeichnung ist tief integriert. Es handelt sich um eine Alternative zu LaTeX, die besonders für aufwändige Layouts und automatisierten Schriftsatz beliebt ist.
Was ist ConTeXt
Die pdfTeX, XeTeX und LuaTeX, die wir bisher gesehen haben, sind Engines – die Programme, die die Verarbeitung durchführen. ConTeXt befindet sich auf einer anderen Ebene: Wie LaTeX ist es ein Format, ein aus TeX-Makros zusammengesetztes Befehlssystem. Es wurde seit den 1990er Jahren von Hans Hagen aus den Niederlanden und seinem Unternehmen PRAGMA ADE (Advanced Document Engineering) entwickelt, ursprünglich als Produktionswerkzeug für ihre eigene Verlagsarbeit. Der Name kommt von „text with TeX“ – con-tex-t.
Sein Platz ist etwas verwirrend: Obwohl ConTeXt keine „Engine“ im Sinne von pdfTeX/XeTeX ist, wird es in Einführungsmaterialien oft neben den Engines und Formaten aufgeführt. Es ist genauer, es sich als Geschwister von LaTeX vorzustellen, das auf einer Engine läuft. Es basiert auf der gleichen TeX-Grundlage und bietet eine andere Art, Dokumente zu schreiben.
Wie es sich von LaTeX unterscheidet
Während LaTeX eine Kultur ist, in der Funktionen aus einer riesigen Sammlung von Paketen von Drittanbietern zusammengefügt werden, ist ConTeXt hochintegriert und monolithisch. Farbe, Layout, Schriftarten, Inhaltsverzeichnisse, Fußnoten – alles wird von Anfang an gemeinsam entworfen. So verbringen Sie weniger Zeit damit, sich zu fragen: „Welches Paket füge ich dafür hinzu und kollidiert es mit einem anderen?“, und komplexe Seitenlayouts lassen sich einfacher und sauber steuern. Diese Integration ist seine zentrale Stärke.
Auch die Schnittstelle ist einheitlich. Fast das gesamte Erscheinungsbild wird durch Setup-Befehle, die mit \setup... beginnen, kombiniert mit key=value-Optionen, festgelegt. Die Schriftgröße des Textes ist \setupbodyfont, die Papiergröße ist \setuppapersize, der Absatzabstand ist \setupwhitespace usw. – die Benennung und Syntax sind stark regelmäßig. Es gibt wenig Ad-hoc-Grammatik, die man sich merken muss, und die Einstellungen bleiben lesbar.
Auch das Markup selbst unterscheidet sich von LaTeX. Der Hauptteil – LaTeX’s \begin{document}…\end{document} – ist in \starttext … \stoptext eingeschlossen, und ein Abschnitt ist \startsection … \stopsection (oder nur \section für die Überschrift allein). Umgebungen werden mit übereinstimmenden \start…/\stop…-Paaren ausgedrückt, was der ConTeXt-Sprache entspricht.
Auch der Lernstoff stellt sich anders zusammen. Das Wissen von LaTeX ist über unzählige Bücher, Frage-und-Antwort-Seiten und Pakethandbücher weltweit verstreut, während die Dokumentation von ConTeXt vergleichsweise zentralisiert ist – das offizielle ConTeXt-Wiki (contextgarden) und Einführungen wie *ConTeXt: eine Exkursion*. Die Community trifft sich auf die gleiche Weise: Ein jährliches ConTeXt-Treffen bringt Entwickler und Benutzer persönlich zusammen, und Design- und Implementierungsdiskussionen fließen in der Regel wieder in das offizielle Material ein.
Die MkII / MkIV / LMTX-Linie
ConTeXt gibt es in drei Hauptzeilen, die jeweils auf eine Generation der zugrunde liegenden Engine abgestimmt sind. Alle heißen „ConTeXt“, laufen aber auf unterschiedlichen Engines mit unterschiedlichen Interna.
- MkII – die älteste Zeile, läuft auf pdfTeX (und auf XeTeX für Skripte wie Japanisch). Es ist jetzt eingefroren und wird nur noch gewartet.
- MkIV – die Neufassung der Lua-Ära, die auf LuaTeX ausgeführt wird. Es wurde 2007 eingeführt und nutzt die Schriftarten Unicode, OpenType und Lua-Skripting. Auch es ist weitgehend gefroren.
- LMTX (intern MkXL) – die aktuelle, empfohlene Zeile, die auf LuaMetaTeX läuft. Seit 2019 verfügbar, wird hier die aktive Entwicklung fortgesetzt.
Das Schlüsselstück hier ist LuaMetaTeX. Es handelt sich um eine schlanke Engine, die Hans Hagen und die ConTeXt-Entwickler speziell für ConTeXt als Nachfolger von LuaTeX neu erstellt haben. Es entfernt absichtlich die Ausgabe von PDF (das Backend), die Schriftartenverarbeitung und viele Grundelemente aus LuaTeX, sodass diese auf der Seite von ConTeXt (Lua) implementiert werden müssen – ein mutiges Design. Es ist nicht von externen Bibliotheken abhängig, benötigt kein komplexes Build-Ökosystem und lässt sich mit minimalem Aufwand auf alle Betriebssysteme portieren: ein abgespeckter, eigenständiger Nachfolger.
LuaMetaTeX wird von der Gruppe ConTeXt selbst verwaltet, und derzeit ist ConTeXt (LMTX) praktisch das einzige, was es wirklich nutzt. Wenn Sie mit ConTeXt neu beginnen, ist LMTX die Standardauswahl.
Tiefe MetaPost-Integration
Kein Bericht über ConTeXt ist vollständig ohne seine Fusion mit MetaPost. MetaPost ist eine Programmiersprache für präzise Zahlen, die von Knuths METAFONT abstammt. ConTeXt bettet MPlib in seinen Kern ein – MetaPost wurde 2007 von Taco Hoekwater und Hans Hagen in eine wiederverwendbare Bibliothek umgewandelt – sodass Sie MetaPost-Code direkt in ein Dokument schreiben und während derselben Kompilierung im laufenden Betrieb Figuren zeichnen können.
Im älteren MkII verlangsamte das Zeichnen von Figuren zur Laufzeit entweder den TeX-Lauf oder erforderte die Generierung von PostScript-Zwischendateien zwischen den Läufen. MPlib machte dies direkt zur Laufzeit möglich und führte zu einer ausgeprägten Zeichenkultur, in der sogar Seitenelemente – Regeln, Hintergründe, Ornamente – dynamisch mit MetaPost generiert werden.
Ein Minimalbeispiel
Um ein Gefühl dafür zu bekommen, finden Sie hier das kleinste ConTeXt-Dokument, das kompiliert werden kann. Der Körper läuft von \starttext bis \stoptext. Es gibt keine obligatorische Dokumentklassendeklaration wie in \documentclass von LaTeX; Sie richten oben mit den Befehlen \setup... das gewünschte Erscheinungsbild ein.
\setuppapersize[A4]
\setupbodyfont[12pt]
\starttext
\startsection[title=はじめに]
Hello, \ConTeXt! 数式もそのまま組めます:
\startformula
E = mc^2
\stopformula
\stopsection
\stoptextHier wählt \setuppapersize A4 aus, \setupbodyfont legt einen 12pt-Text fest und \startsection öffnet einen Abschnitt mit dem Titel „Einführung“. Eine angezeigte Gleichung geht in \startformula … \stopformula. Die Rollen stimmen mit denen von \section{…} und \[ … \] von LaTeX überein, aber Sie können sehen, dass der Schreibstil dem \start…/\stop…-Idiom folgt.
# ConTeXt は context コマンドで処理する / compile with the context command
context first-context.tex
# => first-context.pdfDer wichtige Punkt ist, dass Sie hier nicht pdflatex oder lualatex ausführen. ConTeXt ist nicht das LaTeX-Format, auch wenn die Datei möglicherweise immer noch auf .tex endet; Übergeben Sie es an den Befehl context. Fügen Sie „Dieses Dokument mit context main.tex erstellen“ in README ein, damit Mitarbeiter und CI nicht versehentlich einen LaTeX-Befehl verwenden.
LaTeX und ConTeXt nebeneinander
Für diejenigen, die an LaTeX gewöhnt sind, finden Sie hier einige repräsentative Redewendungen nebeneinander. Die Denkweise ist ähnlich, aber der Wortschatz und die Konventionen unterscheiden sich.
| LaTeX | ConTeXt | Ziel |
|---|---|---|
\begin{document} | \starttext | Beginnen Sie mit dem Körper |
\section{…} | \section{…} / \startsection | Eine Abschnittsüberschrift |
\[ … \] | \startformula … \stopformula | Eine angezeigte Gleichung |
geometry など | \setuppapersize und andere \setup... | Papier und Layout |
Wann man es wählt
- Aufwändige oder automatisierte Layouts. Komplexe Seitendesigns oder in großen Mengen aus Daten generierte Schriftsätze profitieren von der konsistenten Kontrolle.
- Präsentationen. Es verfügt über spezielle Folienmodi und MetaPost kann dynamische Verzierungen erstellen.
- Veröffentlichen von XML. ConTeXt verfügt über eine starke XML-Verarbeitungsfunktion und eignet sich gut für Workflows, die XML direkt lesen und setzen.
- Zeichnungen einbetten. Mit der Integration von MetaPost können Abbildungen und Text in einer einzigen Quelle leben.
Es gibt jedoch Vorbehalte. Die Community ist viel kleiner als die von LaTeX und es gibt weniger Pakete von Drittanbietern. Journalvorlagen, Tutorials und die gesammelten Fragen und Antworten sind eingeschränkter als für LaTeX. In der Praxis wählen die meisten akademischen Benutzer immer noch LaTeX für Arbeiten und Abschlussarbeiten. Stellen Sie sich ConTeXt als eine spezielle Option vor, die hervorragend zu ihrer Art von Arbeit passt.
Wie man es bekommt
ConTeXt wird mit der Standarddistribution TeX Live ausgeliefert und die LuaMetaTeX-Engine ist seit TeX Live 2023 enthalten, sodass Sie bei einer normalen TeX Live-Installation auch LMTX erhalten (die aktuelle TeX Live ist die Edition 2026). Wenn Sie stattdessen das allerneueste ConTeXt verfolgen möchten, ist der übliche Weg das gruppeneigene ConTeXt Standalone (jetzt vertrieben als LMTX) – ein leichtes Paket nur für ConTeXt, das regelmäßig aktualisiert wird.
Beginn eines ersten Kapitels in ConTeXt
Wenn Sie ConTeXt ausprobieren, sollten Sie die LaTeX-Angewohnheit aufgeben, nach einem weiteren Paket zu suchen. Erstellen Sie zunächst den Textkörper mit \starttext, \startsection und \startitemize und erfassen Sie dann Ränder, Schriftarten und das Erscheinungsbild der Überschrift in den Befehlen \setup... oben. Fügen Sie Stile hinzu, wenn das Kapitel wächst. Die Einstellungen bleiben aus der Prosa heraus, und eine spätere Änderung des Seitendesigns bedeutet, an einer Stelle zu suchen.
- Zeitschrifteneinreichungen sollten bei LaTeX bleiben, wenn die erforderliche Vorlage LaTeX ist.
- Broschüren, Lehrmaterialien und Kataloge, bei denen Sie für das Seitendesign verantwortlich sind, profitieren vom integrierten Einrichtungsmodell von ConTeXt.
- Zahlen aus derselben Quelle wie die Prosa sind ein guter Grund, die MetaPost-Integration frühzeitig auszuprobieren.