Backstage #6: Mein Aufbau von LaTeX Rollenspielen

20.03.2013 | #Backstage #NIPAJIN

Wie schon in einem früheren Artikel erwähnt, setze ich alle meine Rollenspielprojekte mit LaTeX. Diesmal möchte ich meinen Ansatz vorstellen, wie ich mehrere LaTeX-Projekte mit einander verzahne, um Inhalte (Regeln) und Layouts in mehreren Werken wiederverwenden zu können.

Als Beispiel sollen hier die NIP'AJIN-Dokumente dienen. Achtung, ab hier wird es sehr technisch ;)

Auf meiner Festplatte (und in meiner Versionsverwaltung) finden sich im LaTeX-Ordner folgende Unterverzeichnisse:

.../LaTeX/111Jahre
.../LaTeX/GeschlosseneGesellschaft
.../LaTeX/KuraiJikan
.../LaTeX/nipajin
.../LaTeX/nipajin-starter
.../LaTeX/style

Der gesamte LaTeX-Ordner ist in einem Versionierungs-Repository aufgehoben (früher Subversion, mittlerweile GIT), d.h. es ist möglich, zu jedem Zeitpunkt in die Vergangenheit zu springen und die Inhalte so wieder herzustellen, wie sie z.B. vor 1 Jahr zum Zeitpunkt der Veröffentlichung der Version X von PDF Y war.

Das Verzeichnis style enthält alle projektunabhängigen Layout-Dateien (.sty Dateien in LaTeX) sowie allgemeine Bilder wie z.B. die blauen Elemente für das generische NIP-AJIN Layout, Symbole usw. nipajin enthält alles, was für das NIP-AJIN Regelheft (4 Seiten) nötig ist, und referenziert dafür Teile aus style, die nötig sind (wie genau, erkläre ich gleich). 111Jahre, GeschlosseneGesellschaft und KuraiJikan enhalten den Settingteil der jeweiligen Szenarien, die Illustrationen und das angepasste Layout. Sie referenzieren ihrerseits das nipajin und das style Verzeichnis, um die aktuellen Regeln und Layoutelemente zu übernehmen. Und nipajin-starter enthält das Autorenpaket, das nichts anderes ist als ein „Template-Szenario“ zum Erstellen von NIP'AJIN-Szenarien mit viel Blindtext und ebenfalls nipajin und style referenziert (Das Paket enthält aber in einem flachen Verzeichnis alle Dateien, um Interessierte nicht mit der hier dargestellten Verzeichnisvielfalt zu verwirren und ein sofortiges Loslegen zu ermöglichen).

Der style-Ordner enthält:

.../LaTeX/style/ludusleonis.sty
.../LaTeX/style/nipajin.sty
.../LaTeX/style/images/...
.../LaTeX/style/images.sh
.../LaTeX/style/out/...

Die Datei ludusleonis.sty enthält alle generischen LaTeX-Makros, die ich über alle Projekte hinweg benutze: Schriften, Symbole, Texteinstellungen wie Silbentrennung, usw. nipajin.sty inkludiert ludusleonis.sty und ergänzt die Makros um spezifika für NIP'AJIN (blaues Layout, A5, usw.). Im images Ordner liegen alle nötigen Bilder in bestmöglicher Auflösung/Qualität, so wie ich sie im Gimp oder Inkscape produziere. Das sind dann je nach Fall .png, .jpg oder .svg. Da die Bilder i.d.R. nicht 1:1 so ins PDF kommen, weil sie für LaTeX noch in den CMYK-Farbraum umgewandelt werden, Transparenzen behandelt werden müssen und in kleine mini-PDFs zum Einbetten konvertiert werden, gibt es images.sh, das über alle Bilder in images drübersucht, sie einheitlich und in die richtige Auflösung aufbereitet und in einen out Ordner stellt. Dieser Ordner ist aber nicht in der Versionsverwaltung, weil er jederzeit aus dem Quellverzeichnis images wieder generiert werden kann.

Der nipajin Ordner enthält das komplette Regelwerk, sowie alle Zusatzfiles, um ein Standalone-PDF daraus zu machen. Im Detail sieht das so aus:

.../LaTeX/nipajin/regeln.tex
.../LaTeX/nipajin/images/...
.../LaTeX/nipajin/images.sh
.../LaTeX/nipajin/Makefile
.../LaTeX/nipajin/nipajin.tex
.../LaTeX/nipajin/out/...

Auch hier gibt es wieder images, images.sh und out für Bilder in Originalqualität und für das PDF aufbereitet. regeln.tex enthält die reinen Regeltexte, so wie sie in allen Projekten eingebunden werden können und ist alleine nicht lebensfähig. nipajin.tex inkludiert das regeln.tex und macht drum herum alle Arbeiten, daraus ein PDF zu machen. Es inkludiert alle nötigen Bilder aus out (weil dort ja die aufbereiteten liegen), sowie nipajin.sty aus dem style Ordner. Das Makefile letztlich ist ein Standard Unix make script, das alle images.sh's und den LaTeX Kompiler in der richtigen Reihenfolge aufruft und letztlich generierte LaTeX-Dateien sowie das PDF auch nach out schreibt. Damit bleibt der nipajin-Ordner immer sauber und das out-Verzeichnis (nicht im Repository verwaltet) kann jederzeit gelöscht werden, da es immer aus den Original-Dateien neu hergestellt werden kann.

Und dann haben wir noch die einzelnen Szenarien. Nehmen wir als Beispiel Kurai Jikan:

.../LaTeX/KuraiJikan/backcover.tex
.../LaTeX/KuraiJikan/charaktere.tex
.../LaTeX/KuraiJikan/content.tex
.../LaTeX/KuraiJikan/copyright.tex
.../LaTeX/KuraiJikan/cover.tex
.../LaTeX/KuraiJikan/images/...
.../LaTeX/KuraiJikan/images.sh
.../LaTeX/KuraiJikan/kuraijikan.tex
.../LaTeX/KuraiJikan/Makefile
.../LaTeX/KuraiJikan/out/...
.../LaTeX/KuraiJikan/prolog.tex
.../LaTeX/KuraiJikan/regeln.tex

Das images, images.sh, Makefile und out kommt uns hier schon bekannt vor. regeln.tex ist das selbe File wie jenes aus dem nipajin-Ordner (genauer: ein Unix-Symlink, damit es nicht physisch umkopiert werden muss - könnte aber auch eine reine Kopie sein). kuraijikan.tex ist das Master-Rahmendokument, dass die einzelnen Kapitel/Abschnitte aus cover.tex, copyright.tex, prolog.tex, charaktere.tex, content.tex, regeln.tex und backcover.tex in die richtige Reihenfolge bringt und in ein einzelnes PDF verwandelt. Das schöne hier: ändert sich in nipajin die Regeln in regeln.tex, nimmt das Makefile beim bauen des KuraiJikan PDFs automatisch die aktuelle Version hinzu und hängt die im KuraiJikan.pdf hinten mit an.

Zum Makefile und zum images.sh bzw. dem out Ordnern ließe sich auch noch viel schreiben, aber für diesen Artikel möchte ich es dabei belassen. Makefile und der Trick mit dem out-Verzeichnis kann bei Interesse im oben erwähnten Autorenpaket gefunden werden.

Ich hoffe das gibt einen groben Überblick, wie ich meine Werke technisch organisiere und aufbaue. Dieser Artikel nimmt am, von niniane organisierten RSP-Karneval vom März 2013 teil.