Backstage #6: Mein Aufbau von LaTeX Rollenspielen
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.