Sie schreiben in Markdown oder LaTeX. Gemeinsam, mehrere Autoren. Was war noch die neueste Version dieses Kapitels? Haben wir diesen Abschnitt schon überarbeitet? Welchen Stand hat der Lektor abgesegnet? Versionierung mit Git liefert die Lösung.
Sie schreiben also nicht alleine, sondern im Team. Was Sie klassischerweise ohne Dokument/Versionsverwaltung versuchen, ist eine dieser Methoden:
- Hin- und herkopieren der LaTeX- oder Markdown-Dateien, bzw. per E-Mail verschicken. Irgendwann kommen Sie durcheinander, und keiner weiß mehr, was die neueste Version ist, und ob da die Änderungen in der Zwischenzeit schon drin sind. Sie werden in der Schlussphase viel Zeit damit verbringen, Ihr E-Mail-Postfach zu durchsuchen und wild hin- und herkopieren.
- Gemeinsamer Ordner auf z.B. Dropbox oder Ihrem Instituts-Server. Das führt zu zwei Effekten.
Erstens: Dateinamen mit der Endung _v1, _v2, _v2a, _v2b, _v2b_Johann, _v2b_Alex usw.
Zweitens: Irgendwann überschreibt einer der Autoren eine Fassung eines anderen Autors mit seinen eigenen, was zu großem Wehklagen und erneutem Schreiben führt.
Geben Sie’s zu: Sie mussten bei mindestens einem dieser Punkte schmunzeln, haben sich ertappt gefühlt oder verspürten das Gefühl der Ohnmacht, das schon erlebt zu haben, gell?
Genau dafür haben Programmierer schon vor vielen Jahren eine Lösung erfunden: ein Versionskontrollsystem. Eine automatische Versionierung. Wie etwa Git.
Das funktioniert hervorragend mit Programmcode, und ebenso hervorragend mit Dokumenten in LaTeX und Markdown.
Wie Sie Git für LaTeX prinzipiell einrichten, können Sie in Git fürs Versionieren von LaTeX-Dokumenten lesen.
Lange Dokumente in LaTeX und Markdown – mehrere Dateien
Wenn Sie in LaTeX oder Markdown wirklich lange Dokumente schreiben wie etwa ein ganzes Buch, dann empfehle ich, jedes Kapitel in eine eigene Datei zu speichern. Auf diese Weise können Sie später leichter die Ausgabe probehalber für nur ein Kapitel erzeugen.
Auch die Zusammenarbeit mit mehreren Autoren gelingt in der Regel problemlos, wenn jeder an seinem eigenen Kapitel in einer eigenen Datei arbeitet.
Legen Sie zuerst die Struktur fest. Auch wenn diese sich später noch ändert, brauchen Sie als Autorenteam ja zunächst etwas, um die Arbeit untereinander aufzuteilen.
Auch klar ist: Sie sollten nicht zu viele Dateien haben. Das behindert den Überblick. Eine gute Richtline ist: größere Einheiten, die von verschiedenen Autoren geschrieben werden, dürfen meist auch in separate Dateien.
In LaTeX legen Sie dann eine Hauptdatei an, die dann auch zum Kompilieren angestossen wird, und referenzieren von dort aus mit dem \include
-Befehl die einzelnen Kapitel-Dateien.
In Markdown sind die Dateien zunächst unverbunden, und werden erst durch den Übersetzer wie etwa pandoc einfach zusammengefügt, wenn Sie mehrere Dateinamen als Argument mitgeben. Es ist sinnvoll, den Befehl in ein Skript zu kopieren, damit Sie nicht immer neu tippen müssen.
Git und mehrere Autoren
Git als Versionsverwaltung ist hervorragend dafür geeignet, gemeinsam an einem größeren Projekt zu arbeiten. Dadurch, dass jeder zu jeder Zeit auch die Historie des Projekts bei sich hat, lässt sich immer gut nachvollziehen, was der aktuelle Stand ist und wo dieser herkam.
Rein technisch dürfen Sie dafür in Git ein so genanntes Remote Repository aufsetzen.
Entweder Sie haben an Ihrer Institution, Universität oder Firma bereits einen Git-Server zur Verfügung, oder Sie nutzen einen öffentlichen Git-Server wie z.B. GitHub.
Bei GitHub können Sie kostenlos Ihre Projekte beherbergen, die dann aber öffentlich, d.h. für alle lesbar sind. Möchten Sie ein privates Projekt anlegen, das nur den Autoren zugänglich ist, brauchen Sie einen kostenpflichtigen GitHub-Zugang.
Alternativen
Um mit mehreren Autoren an einem LaTeX-Dokument schreiben zu können, gibt es auch Dienste, die speziell dafür ausgelegt sind:
- ShareLaTeX (auch auf Deutsch verfügbar)
- Overleaf (früher writeLaTeX)
- Authorea
Diese Online-Dienste gleichen die Änderungen die Autoren automatisch im Hintergrund ab und zeigen sie sofort an. Sie haben dort also eher das »Echtzeit«-Gefühl.
Ob die LaTeX-Pakete und Funktionalitäten dort für Ihr Vorhaben hinreichend sind, sollten Sie selbst bewerten. Speziell dann, wenn Sie sich nach der Lektüre dieses Beitrags unsicher sind, ob Sie das mit Git selbst hinbekommen, dann ist sind ShareLaTeX oder Overleaf oder Authorea eine Überlegung wert. Ich selbst bin weder Nutzer noch Affiliate von weder Authorea noch Overleaf noch ShareLaTeX.
Arbeitsweise mit Git
Sie schreiben nach wie vor in Ihrem Lieblingseditor. Öfter am Tag führen Sie einen Commit durch, lassen also den Git-Client den aktuellen Stand wegspeichern. In TeXstudio können Sie das auch automatisieren.
Denken Sie daran, auch in der Zwischenzeit erstellte Grafiken und sonstige relevante Daten-Dateien mit einzupflegen, nicht jedoch die temporären Zwischen-Dateien, die beim LaTeX-Lauf entstehen. Um zu verhindern, dass Ihr Git-Client immer wieder anbietet, diese Dateien mit ins Repository aufzunehmen, können Sie eine besondere Datei .gitignore
im Projektordner ablegen. Falls Sie Anregung brauchen, was Sie dort alles reinschreiben sollten, nehmen Sie doch einstweilen meine .gitignore-Datei.
Mindestens einmal am Tag sollten Sie dann mit dem zentralen Repository abgleichen, so dass Sie die Änderungen Ihrer Co-Autoren bekommen und ihre eigenen dort verfügbar machen.
In den üblichen Git-Clients gibt es dazu ein Kommando git push oder etwa in GitHub oben rechts einen Knopf namens Sync.
Bitte denken Sie dran, auch immer Ihre Grafik-Dateien oder sonstige Daten-Dateien, die Sie eingebunden haben, auch in Ihren nächsten Commit in Git einzufügen.
Konflikte beim Editieren
Im Idealfall arbeiten Sie als Autorenteam immer an verschiedenen Teilen des Dokuments, am besten sogar in verschiedenen Dateien.
Git kann jedoch auch meist damit umgehen, wenn Sie gleichzeitig an derselben Dokument-Datei arbeiten, so lange Sie nicht im selben Abschnitt schreiben.
Sie werden bei Ihrem Schreiben zwar nicht direkt sehen, was die anderen gerade tun, aber beim nächsten Synchronisieren mit dem Remote Repository bekommen Sie die Änderungen eingespielt. Der Vorgang heißt Mergen.
Schreiben Sie tatsächlich am selben Abschnitt, dann bekommen Sie beim nächsten Synchronisieren einen Konflikt beim Mergen, also wenn Git versucht, die zwei Versionen derselben Datei zusammen zu führen. Da Git dann nicht wissen kann, welche Variante der fraglichen Abschnitte es nehmen soll, meldet es Ihnen einen Konflikt, und gibt Ihnen die Datei mit beiden Varianten, entsprechend markiert, zur Überarbeitung.
Falls Sie sich vorher nicht mit Ihren Co-Autoren unterhalten haben, wäre jetzt eine gute Gelegenheit dazu.
Branch oder nicht Branch
Wenn Sie in diversen Foren zum Thema LaTeX oder auch Git nachlesen, werden Sie immer wieder auf folgenden Disput stoßen: Sollten wir beim gemeinsamen Schreiben mit expliziter Verzweigung, dem Branch, arbeiten oder nicht.
Ein Branch in Git dient dazu, sich für einige Zeit vom Haupt-Entwicklungszweig abzukapseln. Dies ist dann nötig oder anzuraten, wenn eine der folgenden Situationen eintritt:
- Sie experimentieren mit zusätzlichen LaTeX-Paketen, bei denen Sie nicht genau absehen können, welche Auswirkungen diese auf die Arbeit der anderen haben, oder ob sich die Pakete vertragen. Erstellen Sie einen Branch, probieren Sie die Pakete einige Tage aus, testen alles, und führen dann die Zweige wieder zusammen.
- Sie überarbeiten ein Kapitel, sind sich aber noch nicht sicher, ob das so besser ist als vorher. Schaffen Sie einen Zweig, einen Branch, schreiben dort das Kapitel um, und bitten dann Ihre Mit-Autoren, beide Fassungen zu begutachten. Je nach Ergebnis führen Sie dann die Abzweigung wieder zurück in den Hauptpfad, oder lassen den Pfad so wie er ist und wechseln auf den Hauptzweig.
- Sie überarbeiten Kapitel von anderen Autoren. Da Sie noch nicht wissen, ob Ihre Änderungen alle angenommen werden sollen, editieren Sie in einer Abzweigung. Lassen Sie regelmäßig die Änderungen aus dem Hauptzweig einfließen, dann gestaltet sich später die Rückführung leichter.
Schreiben Sie also jeder an seinem Kapitel, besteht kein großes Risiko, dass Sie sich in die Quere kommen. Arbeiten Sie einfach auf dem Hauptzweig, dem Master Branch weiter und erhalten so automatisch die Neuerungen Ihrer Mit-Schreiber.
LaTeX- oder Markdown-Dokument testen
Um sicherzustellen, dass Sie alles in konsistenter Form im Git-Repository haben, sollten Sie in einen ansonsten leeren Ordner, in dem niemand aktiv schreibt, einen Klon des Repositories anlegen.
Erzeugen Sie regelmäßig das LaTeX-Dokument und sehen kurz durch. Achten Sie vor allem auf Warnungen und Fehlermeldungen.
Dinge, die ich gern vergesse: Die Haupt-Datei committen, nachdem ich ein neues Paket eingebunden habe. Eine Grafik-Datei, die ich verwende, zum Repository hinzufügen.
Und als Nicht-Techie?
Die Frage, die ich immer wieder bekomme, ist diese:
»Ich bin kein Computer-Experte. Kann und sollte ich trotzdem Git verwenden?«
Allein schon der Umstand, dass Sie als Nicht-Techie in LaTeX schreiben können oder sich dazu zumindest haben breitschlagen lassen, zeugt von einem gewissen Lern- und Leidensfähigkeit.
Organisieren Sie sich sauber, versuchen keine Dreifachen Rittberger in Git zu turnen, und Sie werden mit lediglich fünf Git-Befehlen (add, update, commit, push, pull) bzw. Knöpfen für den täglichen Betrieb und weiteren zwei Befehlen (init, clone) bzw. Knöpfen in GitHub fürs Einrichten hinkommen. Das schaffen Sie.
Wie alle Werkzeuge ist auch das Werkzeug Git zunächst zu erlernen, bevor es Nutzen bringt. Auf das gesamte gemeinsame Schreib-Vorhaben gesehen wird Git Ihnen viel Ärger, und viele schlaflose Nächte ersparen.
Fazit: Git mit Markdown und LaTeX ist ein Werkzeug fürs Schreiben , kein Heilmittel
Git ist ein Werkzeug, damit Sie sich zusammen besser organisieren können. Git ist kein Heilmittel für mangelnde Abstimmung und mangelnde Organisation.
Wenn Sie sich nicht einig sind, wer für welchen Teil zuständig ist, dann werden Sie ständig Merge-Konflikte bekommen und sich spätestens dann Zeit für die Abstimmung nehmen müssen.
Was Git bietet: eine robuste Umgebung, die für Sie sicherstellt, dass alle Änderungen nachvollziehbar sind und nichts verloren geht.
Ich persönlich nutze Git für alle größeren Dokumente in LaTeX und Markdown, auch wenn ich allein schreibe, und ganz sicher, wenn es mehrere Autoren sind.
Locker bleiben
Wie sehen Sie das?
Lassen Sie die anderen Leser ebenso wie mich bitte teilhaben an Ihren Gedanken und kommentieren Sie!
Photo: Death to the Stock Photo, Proprietary License
Schreiben Sie einen Kommentar