Self-Publishing-Tipps: Single Source rulez!

Seit 1988 schreibe ich meine Texte mit Hilfe eines Computers. Das sind 25 Jahre Erfahrung auf den unterschiedlichsten Betriebssystemen. In der Artikelserie ›Self-Publishing-Tipps‹ empfehle ich nicht die neuesten und coolsten Programme. Hier werden ein paar Weisheiten geteilt, die sich in einem Vierteljahrhundert angesammelt haben. In der dritten Folge geht es um das Buzzword Single Source Publishing.

Sphinx installieren

Der große Augenblick ist da. Das Probeexemplar deines neuen Buches trudelt ein. Du reißt das Paket auf und hältst dein Werk endlich in den Händen. Stolz beginnst du zu blättern und entdeckst auf Seite 56, was nach dutzendfachem Korrekturlesen unentdeckt blieb: einen Tippfehler.

Dumm gelaufen. Aber eine Katastrophe ist das nicht. Schnell ist der Fehler korrigiert und die Druckvorlage wieder zum Dienstleister hochgeladen. Aber halt! In der E-Book-Ausgabe muss der Fehler ja auch korrigiert werden. Kein Problem, schnell erledigt.

Wenn man jedoch mehr als bloß einen Tippfehler ändern möchte, wird die Sache ärgerlich. Denn nun muss man jede Änderung an zwei Stellen durchführen. Einmal in der Buchausgabe und einmal im E-Book. Das will natürlich keiner.

Die Aufgabe, Inhalte in mehreren Kanälen zu veröffentlichen, ist natürlich nicht neu. Meist stand man vor dem Problem, einen Text sowohl im Internet als auch in gedruckter Form zur Verfügung stellen zu müssen. Die Lösung des Problems heißt ›Single Source Publishing‹ und funktioniert in der Regel nicht. Jedenfalls nicht so, wie man es gerne hätte. Denn auf Knopfdruck und ohne Kompromisse klappt es selten. Bei Google findet man zahllose Einträge zu diesem Buzzword. Wer mehr wissen will, kann nach SGML und XML googeln. E-Books sind erst seit ein paar Jahren Teil des Problems. Da die gängigen E-Book-Formate auf der XML-Teilmenge HTML basieren, ist es aber ein lösbares Problem.

Ich selbst mache mir erst seit kurzer Zeit Gedanken zu dieser Frage. Entsprechend chaotisch sahen auch bisher meine Publikationsmethoden aus.Was als Buch begann, liegt bei mir in der Regel als LaTeX-Quelle vor und muss mit der Hand umformatiert werden, wenn ich daraus ein E-Book machen will. Was als Blogeintrag das Licht der Welt erblickte, steckt in der Datenbank eines CMS. Um solche Texte als Buch und E-Book herauszugeben, müssen sie mühsam mit der Hand exportiert und in andere Programme importiert und weiterverarbeitet werden. Irgendwie geht das alles, aber man kommt sich nicht sonderlich intelligent dabei vor.

Gute Lösungen gibt es nur für Teilbereiche. So habe ich vor kurzem eine Erweiterung für LibreOffice entdeckt, mit der man E-Books erstellen kann. Wer mit den typografischen Qualitäten von LibreOffice zufrieden ist, kann sowohl das Print-PDF für die Buchproduktion als auch das ePub für die E-Book-Schiene mit LibreOffice erstellen. Die Publikation im Web muss dabei allerdings außen vor bleiben. Denn LibreOffice kann zwar HTML-Seiten schreiben, aber ich kenne niemanden, der seine Webseiten mit LibreOffice pflegt.

LibreOffice kommt wie jede Textverarbeitung schnell an seine Grenzen. Wer auch bei komplexen Anforderungen (viele Abbildungen, wissenschaftlicher Apparat) gut gesetzte Bücher produzieren möchte, sollte sich LaTeX anschauen. Über die Vorteile von LaTeX habe ich bereits geschrieben. Von LaTeX führt aber kein bequemer Weg zu ePub oder HTML. Natürlich gibt es auch hier Konverter, mit denen man HTML-Seiten erstellen kann, aber so wirklich überzeugend finde ich die Lösungen nicht.

Dafür gibt es aber einen Weg, um aus einer anderen Quelle, LaTeX-Dateien zu erstellen. Der Pfad der Tugend heißt Sphinx und ist für mich mittlerweile die ideale Single-Source-Publishing-Lösung.

Vor einigen Jahren begann ich damit, für das Open-Source Content-Management-System Plone die Dokumentation zu schreiben. Mein Ziel war es zunächst, den Text online anzubieten. Zunächst wollte ich das dokumentierte CMS selbst als Plattform für die Dokumentation nutzen, aber dann stieß ich auf Sphinx. Und das war kein Zufall.

Plone ist in der Programmiersprache Python geschrieben und just in dem Moment, als ich mit der Dokumentation beginnen wollte, setzte sich in der Python-Community Sphinx als Dokumentationssoftware durch. Sphinx generiert eine komplette Website mit allen notwendigen Verlinkungen. Man muss den Ordner mit den HTML-Dateien bloß noch auf den Server kopieren und schon ist die Dokumentation online.

Doch das Beste ist, dass Sphinx aus einer Quelle mit einem Befehl nicht nur eine komplette Website, sondern auch ein mit LaTeX gesetztes PDF und ein E-Book im ePub-Format erstellt.

make html latexpdf epub

Mit Sphinx pflege ich nun schon seit über drei Jahren das Plone Benutzerhandbuch, wobei ständig Verbesserungen und Ergänzungen eingepflegt werden. Jedesmal, wenn ich eine neue Version veröffentlichen will, muss ich bloß diesen einen Befehl in einer Terminal-Shell eingeben und die entstandenden Dateien hochladen.

Sphinx hat sich bei dem sehr komplexen Plone Benutzerhandbuch als Single-Source-Publishing-Lösung bestens bewährt. Das Benutzerhandbuch hat über 380 Seiten. Mit allen Abbildungen ist das PDF über 25MB groß.

Ich war so zufrieden, dass ich auch mein Buch über den polnischen Filmemacher Krzysztof Kieślowski damit produziert habe. Die Printausgabe, das E-Book und die Website mit der Leseprobe entstehen aus einer Quelle.

Sphinx verwendet als Eingabeformat reStructuredText,eine vereinfachte Markup-Sprache, die wesentlich einfacher zu lernen ist als zum Beispiel LaTeX. Hier ein Beispiel:

Durch den Befehl index:: werden Begriff in den Index eingetragen. Der Befehl _kracauer: setzt eine Markierung, auf die verwiesen werden kann. Überschriften werden durch Unterstreichungen markiert. Zu sehen ist eine Kapitelüberschrift mit Über- und Unterstreichung. Fußnoten werden mit [#]_ gesetzt und weiter unten aufgelöst. Text zwischen einfachen Sternchen wird kursiv zwischen doppelten fett gesetzt.

Sphinx ist ein in Python geschriebenes Programm. Auf dem Computer muss daher Python installiert sein. Das ist bei Linux und Mac OS X in der Regel der Fall. Windows-Nutzer müssen es nachinstallieren.

Einige Features zur E-Book-Produktion sind in der aktuellen Version von Sphinx noch nicht vorhanden, sodass wir die Entwicklungsversion installieren werden. Man findet die entsprechenden Archive hier.

Zur Installation lädt man das Archiv herunter, entpackt es, wechselt in den neu entstandenen Ordner und installiert Sphinx mit diesen Befehlen in einer Terminal-Shell:

python setup.py build

sudo python setup.py install

Es ist in diesem Zusammenhang eine gute Idee, sich mit Virtualenv vertraut zu machen. Mit Virtualenv kann man gekapselte Python-Umgebungen erstellen, mit denen man vermeidet, dass Erweiterungen wie Sphinx im System-Python installiert werden.

Sobald die Installation fehlerfrei durchgelaufen ist, kann man ein Sphinx-Projekt erstellen. Ein Tutorial findet man hier, die gesamte Dokumentation hier.

Sphinx ist eine gute Single-Source-Publishing-Lösung für den Self-Publisher. Mit Sphinx produziert man mit LaTeX gesetzte PDFs, komplette Websites mit allen Verlinkungen und E-Books im EPub-Format aus einer Quelle.

Mit Sphinx kann man auch sehr große und komplexe Projekte wie umfangreiche Dokumentationen oder wissenschaftliche Abhandlungen gut verwalten.

Als Eingabe benutzt Sphinx reStructuredText, eine vereinfachte Markup-Sprache. Alle Dateien haben das Format Plain-Text.