ConTeXt statt LaTeX – Textsatz für Autoren und Gestalter
ConTeXt ist wie LaTeX ein TeX-Makropaket für den Buchsatz. Mit seiner Entwicklung wurde 1990 begonnen. Es ist also rund zehn Jahre jünger als LaTeX. In diesem Artikel stelle ich ConTeXt vor.Rückblick
Ich bin seit einem Vierteljahrhundert ein durchschnittlicher LaTeX-Nutzer. Ich lernte LaTeX auf meinem Atari Anfang der 90er Jahre, als ich meine Magisterarbeit schrieb. Seither benutze ich es intensiv. Aber ich bin nie in die inneren Geheimnisse von LaTeX vorgedrungen, die nötig wären, ein eigenes LaTeX-Paket zu schreiben.
TeX/LaTeX ist vermutlich die einzige Software auf diesem Planeten, die nahezu unverändert bereits in der zweiten Generation benutzt wird. Meine Söhne schreiben, wie ich vor 25 Jahren, ihre Seminararbeiten mit LaTeX. Und falls in 30 Jahren noch schriftliche Hausarbeiten in ausgedruckter Form abgegeben werden, dürften auch ihre Kinder noch LaTeX nutzen – oder ConTeXt. Denn ich glaube, dass ConTeXt die Zukunft gehört.
Ich wusste schon lange, dass es neben LaTeX ein weiteres TeX-Makropaket gibt. Mitte der 90er Jahre habe ich mir ConTeXt einmal näher angesehen. Doch der Funke sprang nicht über. Ich erkannte keine besonderen Vorteile, sodass es für mich auch keinen Grund gab, ConTeXt zu erlernen. Ich war froh, dass ich LaTeX halbwegs beherrschte.
Erst kürzlich wurde ich wieder auf ConTeXt aufmerksam, als jemand in der Pandoc-Mailingliste erklärte, wie er aus Markdown-Quellen mit Hilfe von Pandoc XML-Dateien erzeugt, um diese dann mit ConTeXt weiterzuverarbeiten. Dieser Umweg erschien mir völlig unnötig, denn eine der größten Stärken von Pandoc ist der direkte Buchsatz aus Markdown-Quellen heraus via LaTeX. Und wer unbedingt ConTeXt nutzen will, kann mit Pandoc auch ConTeXt-Quelldateien erzeugen und diese dann weiterverarbeiten. Mit Hilfe eines Makefiles geht das sogar ohne langes Eintippen von Befehlen auf der Kommandozeile..
Doch eine Information ließ mich aufhorchen. ConTeXt verarbeitet XML-Dateien. Das war mir neu.
XML ist der Standard für die Auszeichnung von Texten in der Publishing-Industrie und wird nahezu überall für die Strukturierung von Informationen benutzt. Die XML-konforme Auszeichnungssprache XHTML ist das Format der allermeisten Webseiten im Internet. Wenn es also ein TeX-Macropaket gibt, das XML verarbeiten kann, so sollte man sich das einmal genauer ansehen.
Seit einigen Tagen lerne ich also ConTeXt und wie man XML-Dateien mit ConTeXt setzt. Damit die Mühe auch konkrete Ergebnisse zeigt, habe ich ein kleines Projekt begonnen. Ich will mit ConTeXt gemeinfreie deutsche Texte setzen, die das Deutsche Textarchiv in dem Format XML TEI P5 zur Verfügung stellt. Und mein nächstes Buch werde ich voraussichtlich auch mit ConTeXt setzen und dazu den in der Pandoc-Mailingliste vorgeschlagenen Weg über XHTML benutzen.
Worin unterscheidet sich nun ConTeXt von LaTeX. Ich werde hier nicht ins Detail gehen, sondern nur die beiden in meinen Augen wichtigsten Unterschiede hervorheben. Den ersten Unterschied habe ich bereits erwähnt. ConTeXt verarbeitet XML. Das eröffnet sehr viele neue Anwendungsmöglichkeiten.
Der zweite Unterschied betrifft die Flexibilität der Software. ConTeXt steckt den Benutzer nicht in eine gestalterische Zwangsjacke. Wer mit LaTeX arbeitet, kennt das Problem. Alles läuft prächtig, bis zu dem Moment, wo man an der Seitengestaltung etwas verändern möchte. Dann kommt entweder eins der zigtausend zusätzlichen LaTeX-Pakete ins Spiel oder man muss selbst Hand anlegen. Und spätestens dann merkt man, wie sich LaTeX gegen solche Eingriffe sträubt. Glücklicherweise gibt es für die meisten Wünsche bereits eine Lösung in Form eines Zusatzpaketes. Die Standard-Antwort auf LaTeX-Fragen lautet daher: nimm dies oder jenes Pake.
Bei ConTeXt ist das anders. ConTeXt ist so aufgebaut, dass der Benutzer mit recht intuitiven Key-Value-Paaren das Layout nach seinen Wünschen komplett selbst aufbauen kann. Um mit ConTeXt arbeiten zu können, muss man daher nicht nur die Auszeichnungselemente erlernen, die übrigens denen von LaTeX sehr ähneln, sondern auch die Befehle und Methoden, mit denen man das Aussehen der Elemente bestimmt. Es ist ein wenig so wie bei XHTML und CSS. Mit XHTML zeichnet man den Text semantisch aus und mit den CSS-Stylesheets definiert man das Aussehen. Die Lernkurve bis zum ersten sauber gesetzten Text ist bei ConTeXt steiler als bei LaTeX, dafür stößt man bei der Gestaltung an kaum eine Grenze.
Da ConTeXt so flexibel ist, gibt es auch kaum Zusatzpakete. Das hat den Vorteil, dass man sich nicht mit den Konzepten und Sonderbefehlen der Zusatzpakete auseinander setzen muss, sondern immer nur mit dem Befehlssatz von ConTeXt. ConTeXt ist dadurch ein schlankes System. Aktuelle LaTeX-Distributionen mit ihren zigtausend Zusatzpaketen sind rund 2,5 GB groß, ConTeXt kommt mit 380 MB aus.
Warum aber ist ConTeXt so viel weniger populär als LaTeX? Darüber kann ich nur spekulieren. Zunächst einmal ist LaTeX so viel besser als der Murks, den die Textverarbeitungsprogramme erzeugen, dass jemand, der LaTeX kennenlernt, in der Regel sehr schnell und sehr lange Zeit wunschlos glücklich ist. Der Wechsel von einem Textverarbeitungsprogramm wie Word, Pages oder LibreOffice zu LaTeX katapultiert dich in eine neue Welt, die so toll ist, dass du sehr lange Zeit nicht auf die Idee kommst, etwas anderes zu wollen. Und da die meisten über das populäre LaTeX erstmals mit einem Mengensatzprogramm in Berührung kommen, bleiben sie dort und wechseln nicht weiter zu ConTeXt.
Da die ConTeXt-Community so klein ist, gibt es auch sehr viel weniger Anleitungen und Lehrbücher. Die Kernentwickler von ConTeXt investieren viel Zeit in die Dokumentation. Wenn aber nur wenige Autoren sich mit einem Thema beschäftigen, so wird es in der Regel auch nur aus einem einzigen Blickwinkel betrachtet. Die ConTeXt-Dokumentation erweckt den Eindruck als richte sie sich an erfahrene LaTeX-Nutzer und nicht an Menschen, die bisher nur eine Textverarbeitung kennengelernt haben. Wer noch nie mit TeX zu tun hatte, wird mit der ConTeXt-Dokumentation kaum etwas anfangen können. Dabei ist ConTeXt kein LaTeX für Fortgeschrittene, sondern ein unabhängiges System, das für den Anfänger genau so leicht oder schwer zu erlernen ist wie LaTeX.
Leider ist die ConTeXt-Dokumentation nicht sehr übersichtlich. Es gibt ein Sammelsurium von PDF-Dateien, die zumeist von den Kernentwicklern erstellt wurden, und ein von der Community gepflegtes Wiki. Nach meinen Erfahrungen in anderen Open-Source-Communities ist aber eine einsteigerfreundliche Dokumentation die Grundvoraussetzung dafür, dass eine Software populär wird. Es wäre daher wünschenswert, wenn sich mehr Menschen aus unterschiedlichen Blickwinkeln um die Dokumentation von ConTeXt kümmern würden.
Warum ist ConTeXt für mich ein System mit Zukunft? Die Art und Weise, wie man in ConTeXt Seiten gestaltet, kommt Typographen und Buchgestaltern entgegen. Alle Stellschrauben sind offen zugänglich. Der Gestalter kann die gewünschten Werte (Layout, Typographie etc.) über den Key-Value-Mechanismus in eine Stil-Datei (in ConTeXt environment genannt) eintragen. Falls man mit einem DTP-Entwurf arbeitet, überträgt man einfach die Werte, die der Grafiker vorgegeben hat, in die Stil-Datei. Während LaTeX ausschließlich ein Werkzeug für Autoren ist, die sich um die Gestaltung nicht kümmern wollen, bietet ConTeXt auch dem Gestalter eine verständliche Schnittstelle an. ConTeXt ist auf der Anwenderseite ein System für Autoren und Gestalter. LaTeX ist dagegen anwenderseitig nur ein System für Autoren. Wer mit LaTeX gestalten will, muss schon sehr tief in die Programmierung einsteigen oder sich mit den Restriktionen abfinden.
In tex.stackexchange.com gibt es noch weitere Argumente, warum man sich mit ConTeXt beschäftigen sollte.