AsciiDoc, Markdown & Co.

31.05.2013 von Markus Wirtz mit 2 Kommentar(en)
Ursprünglich sollte dies die Antwort auf einen Kommentar zu unserem Blog-Artikel "Bye-bye LaTeX" werden. Etwas zu lang geraten, ist sie nun ein eigener Artikel.

Zunächst also vielen Dank @oelauge für den Hinweis!

Ja, auch Markup/Pandoc haben wir uns angesehen, und tatsächlich waren erste Ergebnisse ebenso schnell wie beeindruckend (ähnlich übrigens wie bei Sphinx). Folgende Überlegungen haben dann aber zu unserer Lösung geführt:

Die Eingabe

Die Unterschiede zwischen AsciiDoc und Markdown sind nicht gravierend, so dass es auf Markup/Eingabe-Ebene keinen "Gewinner" gab. Ohnehin wollten wir hier möglichst schlank bleiben und nutzen auch von AsciiDoc nur ein Subset; die Probleme ergeben sich ja erst durch Zwischenformate und die Anforderungen der Endformate, und je unaufwendiger das Ausgangsformat, desto einfacher bleiben die folgenden Schritte.

Zwischenformat(e)

Wir haben viele Jahre mit LaTeX gearbeitet und entsprechend viele Manuskripte und Formate im Archiv. Diese Basis zu übernehmen, wäre unsere Wunschoption gewesen, also ein System, das unsere LaTeX-Styles als Zwischenformat nutzt. So hätten wir mit neuem Markup (sei dies AsciiDoc, Markdown,...) in "unser" LaTeX und (und dann Print) oder andere Formate wie epub konvertieren können.

Entsprechende Versuche waren aber nicht sehr erfolgreich: Von Markdown zu LaTeX geht es zwar schnell, aber um "unser" LaTeX zu generieren, hätten wir wiederum die Eingabe verbiegen oder eine weitere Zwischenschicht einfügen müssen - und das nur für die PDF/Print-Ausgabe. epub & Co. wären damit noch nicht erledigt gewesen.

Unser Ansatz ging also weniger von der Eingabe, sondern vielmehr vom Zwischenformat aus, und weil LaTeX uns nicht geeignet scheint, z.B. epub oder mobi zu erzeugen, haben wir es schweren Herzens als Zwischenformat verworfen. Der Aufwand, nur für PDF/Print LaTeX, für andere Formate aber noch ein weiteres komplexes System zu pflegen, schien uns nicht vernünftig.

Unsere Wahl fiel auf DocBook/XSLT, weil

  • uns ein Helfer zur Seite stand, der sich damit ausgezeichnet auskennt (was zwar kein technisch überzeugendes, aber in der Praxis sehr wichtiges Kriterium ist)
  • es ungeheuer flexibel ist und tatsächlich beinahe jede Umwandlung in jedes Format erlaubt

Zielformate

Der Wunsch, mit einem Zwischenformat möglichst alle Ausgabeformate einfach und in hoher Qualität erzeugen zu können, hat uns wegen unserer gedruckten Bücher lange an LaTeX festhalten lassen. Da nun aber die ersten Bücher (z.B. LPIC-1, LEGO Mindstorms NXT und Programmieren in Lua) auf der Basis FO-PDF die Druckerei verlassen haben, wagen wir zu behaupten, dass wir auch hier keine Abstriche machen müssen! Zugegebenermaßen nutzen wir für diesen Schritt mit XEP einen kommerziellen PDF Renderer - aber die Ausgabequalität ist so überzeugend, dass wir im Interesse unserer Leserinnen und Leser diese Wahl gern verantworten.

Es ist uns aber wichtig festzustellen, dass unsere Lösung nicht die Lösung sein will. Sie hat sich vielmehr folgerichtig aus ganz unterschiedlichen Motiven ergeben:

  • freie Software in möglichst vielen Arbeitsschritten
  • Kompetenzen inhouse bzw. im eigenen Netzwerk
  • Kombinierbarkeit mit älteren Formaten bzw. Workflows

Das bedeutet zugleich, dass es in anderen Konstellationen deutlich bessere Lösungen geben kann und dass es auch für uns vielleicht andere Lösungen gegeben hätte.

Stand heute sind wir aber mit unserem Ansatz sehr zufrieden.