Tethys in Groß!

Die Welt meines Buches – den Planeten Tethys mit seinen beiden großen Kontinenten im Norden und im Süden – habe ich vor geraumer Weile mit Buntstiften und einem A3-Zeichenblock zu Papier gebracht. Nun war einiges an „Massage“ nötig, die Bilder fit zu machen für die Darstellung in einem eBook, bei dem man ja auch Schwarz-Weiß-Darstellung berücksichtigen muss.

Lange Rede, kurzer Sinn: Die wundervollen blauen Meeresstreifen vor den Küsten fielen einer langwierigen, anstrengenden, aber nötigen Bearbeitungs-Aktion zum Opfer. Mein Mann hat das für mich gemacht und ich weiß gar nicht, wie ich ihm für die viele, stupide Klick-Arbeit danken soll!

Hier möchte ich nun aber die ursprünglichen Bilder zeigen:

Zunächst der Nordkontinent mit der auf ein gewaltiges Impakt-Ereignis zurückgehenden Struktur um den Nordpol, dem ambossförmigen dontischen Subkontinent, den weiten Fluss-Ebenen Nord-Sinros und den gewaltigen Gebirgen der Bao. In der oberen, linken Ecke ist die lange, schmale Halbinsel Arselias zu sehen. Das ist die einzige Stelle, an der Nord- und Südkontinent aneinander grenzen. Ansonsten – also fast überall – wird der Äquator von dem riesigen, breiten und tiefen Tethys-Meer eingenommen, welches durch seine schiere Größe Namensgeber des Planeten ist.

tethys-nord

Nun der Südkontinent. Dominiert wird er von der gewaltigen Landmasse in der rechten Bildhälfte, die teils auch durch die auf der Südhälfte des Planeten wieder zusammenlaufenden Schockwellen des Nordpol-Einschlags aufgeworfen wurde. Unten im Bild ist das zerfurchte Darr’Eten zu sehen, am linken Rand des Bildes liegt Quenliik, ein wichtiger Schauplatz meines Romans. Im Norden sind das matriarchisch geprägte Kimyaro und das raue, auf einer gewaltigen vulkanischen Insel liegende Sorheymhald zu sehen.

tethys-sued

Das Buch selbst – mit dem Glossar und darin ein paar Erklärungen zur Welt Tethys – ist unter Veröffentlichungen zu finden. Alternativ kann es auch über die Webseite des Bayer Verlags bezogen werden.

Arbeit im Sommer

Ich habe Urlaub – und damit eine Menge Zeit, an meinem Buch zu arbeiten. Endlich geht es wieder richtig voran, nach einigen recht stressigen Zeiten in den letzten Wochen. Vier Kapitel habe ich heute bearbeitet – und damit 56% des Textes auf „Post-Lektorat“-Stand gebracht, also quasi final.

Das Ganze sieht lässig aus und fühlt sich auch so an, aber erstaunlicherweise ist es deutlich produktiver, als Abends in der Wohnung dazusitzen. Das Weißbier dazu soll nicht den Hemingway-Spruch bestätigen, nach dem Literatur zu 10% aus Inspiration und zu 90% aus Whiskey besteht (oder waren die 90% Transpiration? Mit der kann ich an diesem Sommertag durchaus dienen, trotz Arbeit im Bikini).

In jedem Falle ist es herrlich, im Freien zu arbeiten, auf einem für die Aufgabe optimierten System.

Buch und Technik

Tja … an der einen oder anderen Stelle habe ich schon angedeutet, dass ich ein Buch schreibe. Es ist kein Sachbuch über Autobahnen. Es ist ein Roman, der zugegebenermaßen auch wesentlich mehr gefühlt cool ist als unbedingt authentisch.

Aber neben einer Menge Dinge über Stil, Lektorat und so weiter habe ich auch ein paar technische Dinge über das Schreiben gelernt. Vielleicht liegt das auch ein bisschen daran, dass ich einerseits faul bin und andererseits unorganisiert, und das irgendwie auf die Reihe kriegen muss.

Wo will ich hin?

Die Rahmenbedingungen, wie und in welche Ausgabeformate hinein ich schreiben wollte, haben sich mit der Zeit entwickelt, aber im Endeffekt steht nun folgende Anforderung im Raum:

  • Ich möchte mehrere Ausgabeformate erstellen können. Derzeit umfasst die Liste: PDF (A4, Blocksatz), „Normseiten“-PDF (A4, Zeilennummern, feste Spalten- und Zeilenzahl, breite Ränder), ePub, mobi. Außerdem soll das Ganze erweiterbar sein für neue Formate.
  • Ich möchte die Möglichkeit haben, einzelne Geschichten einzeln in die Ausgabeformate zu setzen, aber auch Sammlungen zu erstellen, in denen mehrere Einzelgeschichten zusammengefasst werden.

So weit, so einfach. Da ich aber – wie oben geschrieben – faul und unorganisiert bin, kommen noch weitere Rahmenbedingungen hinzu.

  • Ich möchte, dass ich Änderungen und Korrekturen in Geschichten nur einmal machen muss, so dass in einer Geschichte immer der gleiche Text-Content drin ist, egal in welchem Format. Das heißt: ich möchte den Quelltext meiner Geschichten nur einmal vorhalten und bei Änderungen nur an einer Stelle ändern müssen.
  • Ich möchte, dass die Formatierungen immer gleich aussehen. Wenn ich also die Spaltenzahl in meinen Normseiten-PDFs anpasse, soll das für alle Geschichten gleichermaßen vorgenommen werden. Das heißt: ich möchte die Formatierungs-Dateien nur einmal vorhalten und für jeden Text bei Übersetzung in ein bestimmtes Format das gleiche Formatierungs-File verwenden.

Auf sehr abstrakter Ebene ist die Lösung vollkommen simpel. Ich bilde eine Matrix – in den Zeilen stehen Formatierungen, in den Spalten stehen die einzelnen Texte. Mit den oben genannten vier Formaten und z.B. fünf Geschichten, die ich geschrieben habe, wären das 4 Formatierungs-Dateien und 5 Geschichten-Dateien, heraus kommen 4×5=20 Ausgabe-Dateien.

Ein winziges, aber nur winziges bisschen komplexer wird’s durch die Sammlungs-Ausgaben. Hier kommt dann noch eine Art Liste dazu, in der festgelegt wird, welche Content-Dateien in welcher Reihenfolge in die Sammlung hinein kommen.

Wie bin ich da hin gekommen?

Um zu erklären, wie ich da hin gekommen bin, wo ich hin wollte, muss ich glaube ich erst einmal meine Vorgeschichte anreißen. Ich habe Physik studiert und meine Diplom- und Doktorarbeiten in LaTeX geschrieben. Meine Analyse-Tools habe ich in C++ unter Verwendung einer Library vom CERN geschrieben, das Aufrufen meiner Analyse-Tools und auch anderer Dinge in bash mit Makros geregelt. Die Aufgabe, meine Texte zu verwalten, würde zwar mittlerweile den Einsatz eines kompilierten Programmes rechtfertigen, aber zu Anfang dachte ich, das wäre mit Kanonen auf Spatzen Schießen. Also habe ich mich an LaTeX und bash gehalten.

Mein System enthält nun vier „Arten“ von Dateien: Formatierungsdateien (LaTeX-Präambeln mit einem „Template-Include“), Sammlungslisten (LaTeX-Schnipsel, in denen letztlich nur eine Liste von \include-Befehlen drin steht), Text-Quell-Files (TeX-Dateien, in denen nur der Text meiner Geschichten drin steht, allerdings Text-Struktur-Befehlen und Sonderzeichen-Befehlen aus LaTeX, also mit LaTeX verarbeitbarer Text) und Text-Include-Files (wie die Text-Quell-Files, nur dass sie lediglich in Sammlungen verwendet werden).

Die eleganteste Lösung wäre nun eine bash-Schleife, die über alle Formatierungsdateien loopt, darin eine zweite Schleife, die über alle Sammlungslisten und Quell-Files loopt und darin der Aufruf eines Befehls. Heraus kommen (Zahl der Formate) x (Zahl der Einzelgeschichten + Zahl der Sammlungen) Dateien. Jede Formatierung und jedes Stück Inhalt wird nur einmal vorgehalten. Ganz so einfach ist es leider nicht, aber das ist das Prinzip.

Problem 1: LaTeX zu PDF und LaTeX zu eBook-Format erfordert etwas unterschiedliche Befehlsketten. Außerdem müssen noch ein paar Ersetzungen vorgenommen werden, weil manches in von LaTeX erzeugten PDFs gut aussieht, aber in über LaTeX erzeugten HTMLs, die dann per calibre command line tools zu ePub und mobi gemacht werden, nicht so gut aussieht. Die Lösung: meine Schleife im Script loopt über alle Text-Quell-Files, aber die einzelnen Präambeln stehen explizit mit individuell für das Format gemachten Befehlsketten innerhalb der Schleife.

Problem 2: LaTeX unterstützt kein „geschachteltes“ Inkludieren. Präambel inkludiert Liste inkludiert Quell- und Include-Files funktioniert also nicht. Die Lösung: daher habe ich die Include-Listen aus meiner Quell-File-Schleife herausgenommen und füge aus Muster-Präambel und Include-Liste ein Sammlungs-Master-File zusammen. Dafür benutze ich cat. Da das etwas andere Befehle (und einige Zeilen mehr) erfordert als nur die Quellfiles in die Präambeln zu inkludieren, entsteht für die Listen-Files eine zweite Schleife.

Problem 3: Der Script arbeitet und arbeitet und arbeitet – obwohl wenig geändert wurde. Die Lösung: von jedem der (an Speicherplatz kleinen) Quell-Files wird bei jedem Run des Scripts eine Kopie erstellt. Bevor der Script LaTeX anwirft, checkt er erstmal, ob sich was verändert hat. Hat sich die einzelne Geschichte geändert, übersetzt er sie nochmal. Hat sich eine Präambel geändert, übersetzt er alles nochmal in dieses Ausgabeformat. Hat sich eine Einzelgeschichte oder ein Include-File geändert, übersetzt er alle Sammlungen nochmal. So schlau, dass der Script eine Include-Liste mit der Liste der geänderten Dateien abgleichen kann, ist mein Script (noch) nicht.

Welche Werkzeuge benutze ich?

LaTeX in Form von pdflatex und htlatex aus dem Paket tex4ht. Calibre, hieraus allerdings nur die command line tools, vor allem ebook-convert, ebook-polish, ebook-meta. Ganz exzessiv bash. Für Ersetzungen und ein bisschen Statistik – Wörter Zählen, Listen der verschiedenen Worte Erstellen und so weiter – kommt perl zum Einsatz.

Kurz gefasst: Was macht mein System?

Mein System macht aus Quell-Format-Dateien und Quell-Text-Dateien formatierte Ausgabe-Dateien. Mein System macht aus Quell-Format-Dateien, Include-Listen und Quell-Text-Dateien formatierte Ausgabe-Dateien.

Dateiencontent: preamble[Format].tex, [sammlung]Basis.tex, [geschichte]Source.tex, [sammlung][bezeichnung]Include.tex

Arbeitsschritte: Vergleich mit Vergleichsordner, ob sich was geändert hat. Wenn ja: Loop über Einzelgeschichten, „Loop“ über Präambeln, Befehle zum Übersetzen, Kopieren der Enddateien in Ausgabeordner, Löschen der Zwischenschritt-Files. Loop über Include-Listen, „Loop“ über Präambeln, Bauen eines Masterfiles aus Include-Liste und Präambel, Befehle zum Übersetzen, Kopieren der Enddateien in Ausgabeordner, Löschen der Zwischenschritt-Files. Zuletzt Kopieren der Rohdaten in den Vergleichsordner.

Ausgabe: [sammlung].pdf, [sammlung]Normseiten.pdf, [sammlung].epub, [sammlung].mobi, [geschichte].pdf, [geschichte]Normseiten.pdf, [geschichte].epub, [geschichte].mobi

Was noch fehlt:

Aufräumen und Segmentieren für bessere Wartung. Eventuell Umbau in ein kompiliertes Programm für bessere Performance.

Warum ich all das hier aufgeschrieben habe?

Ich habe eingestandenerweise lange gesucht, bis ich all die Dinge zusammen hatte, die ich brauchte, um in oben genannter Weise, aus meiner Sicht „vernünftig“ mit meinen Texten umgehen konnte. Vielleicht hilft es ja irgendjemandem, sich selbst ein ähnliches System zu bauen.