3 Gründe und 10 Tipps zur Versionierung von Dokumenten in LaTeX

Große Dokumente werden auch nicht an einem Tag erbaut.
Große Dokumente werden auch nicht an einem Tag erbaut.

Schreiben Sie Ihre Arbeit an einem Tag? Nein? Dann bearbeiten, ändern und erweitern Sie Ihre Daten über längere Zeit, bis am Ende ein Stapel gebundenes Papier beim Prüfungsamt oder beim Verleger auf dem Tresen liegt. Basierend auf meinem Buch “Wissenschaftliche Arbeiten schreiben mit LaTeX” lesen Sie hier einige Anmerkungen zum Versionieren, die Ihnen Zeit, Schweiß und Frust sparen werden.

Das ergibt für Sie mehrere Notwendigkeiten:

  1. Sie müssen sich gegen Datenverlust absichern. Sie könnten aus Versehen Ihre Dokumentdatei löschen oder Teile daraus unbedacht ausschneiden und vergessen einzufügen. Ihr Rechner könnte den Geist aufgeben, sei es durch Hardwaredefekte oder Schädlingsbefall.
  2. Sie möchten wissen, wie ein Abschnitt lautete, bevor Sie ihn umgeschrieben haben. Manchmal formuliert man neu, stellt aber dann fest, dass die erste Formulierung besser gewesen wäre.
  3. Schreiben Sie zusammen mit anderen – dann wohl weniger an Abschlussarbeiten als an gemeinsamen Berichten –, wollen Sie gleichzeitig an verschiedenen Teilen arbeiten können und am Ende eventuell herausfinden, wer welchen Text geschrieben hat.

All dies können Sie mit simplem Kopieren von Dateien nur schlecht oder gar nicht bewerkstelligen. Hilfe ist nah! Dafür gibt es eine spezielle Software namens Versionsverwaltung oder auch Konfigurationsmanagement.

  1. Nutzen Sie eine Versionsverwaltung. Diese legt Ihre Daten in einem zentralen Verzeichnis oder einer Datenbank ab, auf die Sie mittels einer Client-Software zugreifen. Sie müssen nur noch schreiben und Ihre Daten regelmäßig mit der Datenbasis abgleichen. Dieser Abgleich sollte mindestens täglich erfolgen; wenn Sie gerade sehr produktiv sind auch deutlich öfter. Da sich das System merkt, was Sie wann geändert haben, können Sie leicht zu einer früheren Version zurückkehren oder sich Änderungen anzeigen lassen.
  2. Nutzen Sie Subversion als Software für die Versionsverwaltung. Subversion ist freie Software, also auch kostenlos. Sie können die Datenbasis entweder lokal auf Ihrem Rechner installieren oder auf einem anderen Computer. Grafische Benutzeroberflächen gibt es zuhauf, für Windows empfehle ich ganz besonders TortoiseSVN.
    Nach der Installation müssen Sie zunächst ein sogenanntes Repository anlegen, also die Datenbasis. Dies können Sie entweder lokal tun, dann hilft IhnenTortoiseSVN, oder auf einem Server, dann hilft Ihnen die beiliegende Anleitung.
  3. Mit den zwei Kommandos svn update und svn commit kommen Sie schon sehr weit. Pflegen Sie Ihre Dokumentstruktur ein. Im einfachsten Fall brauchen Sie nur zwei Befehle auf der Kommandozeile oder zwei Klicks im TortoiseSVN-Kontextmenü:
    svn update aktualisiert aus dem Repository.
    svn commit überträgt Ihre lokalen, aktualisierten Daten in die Datenbasis.
  4. Nutzen Sie vorhandene Versionsverwaltungs-Server Ihrer Universität oder Instituts. Fragen Sie einfach Ihren Systemverwalter. Auf diese Weise haben Sie gleich noch ein Backup an einem anderen Ort als Ihrer Wohnung. Weitere Versionsverwaltungssysteme, auch kommerzielle, sind beispielsweise CVS, PVCS, Bitkeeper, ClearCase von Rational, Synergy/CM von Telelogic, Visual SourceSafe von Microsoft oder Perforce.
  5. Sichern Sie Ihr lokales Repository unbedingt auf eine externe Festplatte, wenn Sie nicht auf einen Uni-Server synchronisieren, nur so sind Sie gegen Datenverlust geschützt! Externe Festplatten kosten heutzutage fast nichts mehr. Stecken Sie die externe Festplatte nur zum sichern an und verwenden Sie sie für nichts anderes. Eine immer angesteckte externe Festplatte geht bei einem Blitzschlag genauso über den Jordan wie Ihr Computer.
  6. Verwenden Sie Keywords, um nachzuvollziehen, auf welcher Version ein Ausdruck basiert. Das ist vor allem fürs Korrekturlesen sehr nützlich, wenn Sie mehreren Personen vielleicht verschiedene Versionen zum Lesen geben.
    Keywords sind in Dollarzeichen eingefasste Bezeichner im Dokument, die durch die Versionsverwaltung befüllt werden und Metaangaben enthalten, beispielsweise das Ablagedatum, die Versionsnummer, den Dateinamen oder den Namen des Bearbeiters. Sehen Sie in der Dokumentation Ihrer Versionsverwaltung nach, welche Keywords diese kennt.
    Setze ich in diesen Abschnitt des Buches einen Bezeichner
    $Id$, so ersetzt die Software dies durch:
    $Id: aufsetzen.tex 1587 2010-08-10 21:10:36Z jschlosser $
  7. Aktivieren Sie die Keyword-Ersetzung in Subversion. Schreiben Sie in der Kommandozeile:
    svn propset svn:keywords "Id Date Author" meindok.tex
    Bei TortoiseSVN kann diese Einstellung über das Kontextmenü Eigenschaften—Subversion einer Datei vorgenommen werden.
  8. Verdoppeln Sie die Dollarzeichen der Keywords, damit LaTeX diese von mathematischen Formeln unterscheiden kann. Das Dollarzeichen kennzeichnet den Mathematikmodus. Wenn also Bezeichner in $...$ eingefasst werden, fasst LaTeX diese als Mathematik auf. Sie können sich ganz einfach behelfen, indem Sie die Dollarzeichen verdoppeln und durch ein Leerzeichen trennen, also $ $...$ $ schreiben.
  9. Nutzen Sie das Paket svninfo, um für den finalen Ausdruck die Keywords einfach wieder loszuwerden. Haben Sie nun alle Dateien am Beginn (am besten nach dem \chapter-Befehl) mit den Keywords verziert, kommt kurz vor Abgabe schon das nächste Problem: Die Keywords müssen wieder raus. Das Paket svninfo stellt einen Befehl \svnInfo bereit, in den Sie die Keywords schreiben. Schreiben Sie also an den Anfang jeder Datei, im Hauptdokument aber nach dem \begin{document}:
    \svnInfo $LastChangedDate$
    Die Leerzeichen müssen so stehen, alternativ kann am Ende auch ein Zeilenumbruch erfolgen. Im Beispiel würde eben das Datum der letzten Änderung ersetzt werden.
    Am Ende, bevor Sie abgeben, schreiben Sie in die Optionen zusätzlich final. Dies macht die Keywords in der Ausgabe unsichtbar.
  10. Lassen Sie mit der Option eso-foot die Keywords unten auf die Seite schreiben. Die Zeichenkette wird standardmäßig dort ausgegeben, wo sie auch im Dokument steht. Ich bevorzuge daher, svninfo mit der Option eso-foot zu laden. Diese Option schreibt die Information auf jede Seite ganz unten, ohne den Satzspiegel oder den Seitenumbruch zu verändern.

Gefallen Ihnen die Gedanken zum Zitieren und Sie wollen mehr über die Umsetzung in LaTeX wissen? Dann sollten Sie mein Buch “Wissenschaftliche Arbeiten schreiben mit LaTeX” lesen, so wie schon mehr als 4000 Leser vor Ihnen.

Teilen & Verweilen

Kommentare

5 Antworten zu „3 Gründe und 10 Tipps zur Versionierung von Dokumenten in LaTeX“

  1. kurze Anmerkung:
    Subversion, Hg/Mercurial, GIT sind alles schöne Systeme. Wenn ich eine große wissenschaftliche Arbeit schreibe würde ich empfehlen eines dieser Systeme einzusetzen (mein Favorit ist Hg/Mercurial).
    Aber wenn ich ein kleines Projekt oder nur einen Lebenslauf habe und keine Versionsverwaltung aufsetzen möche, dann nehme ich RCS (http://de.wikipedia.org/wiki/Revision_Control_System).
    Das ganze legt mir lokal eine History meiner Datei an, wenn ich sie einchecke.
    Also um mal eben zu gucken, was ich im aktuellen Lebenslauf verglichen mit dem alten geändert habe ist das Ding völlig ausreichend.

    1. Im Prinzip ja. Nur welcher nicht-Informatiker möchte sich in mehrere Versionsverwaltungssysteme einarbeiten? Von daher empfehle ich auch für solche kleinen Dokumente Git. Liegt lokal und ist leichtgewichtig im Aufsetzen. Dazu gibt’s hier im Konvergenzbereich auch einen eigenen Artikel: Git fürs Versionieren von LaTeX-Dokumenten.

  2. Hallo Herr Schlosser,

    wir hatten letzt Woche schon kurz Kontakt. Die Installation von MikTEX 2.9 ist soweit abgeschlossen. Leider habe ich ein Problem, auf dass mir kein Forum eine befriedigende Antwort gibt. Umlaute werden bei mir nicht umgesetzt bzw. nach der Kompilation (sowohl in PDF als auch die anderen Formate) in Sonderzeichen übersetzt.

    Bisher habe ich folgendes getan: Fontec habe ist in die zitierte Passage eingefügt. Im upgedateten Miktex 2.9 habe ich „Install missing packages on-the-fly“ aktiviert und die neueste upgedatee Miktexversion. Als Editor verwende ich den Texmaker.

    Könne Sie helfen? Was ist hier zu tun? Programmiert habe ich:

    \documentclass[a4paper]{report}
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \begin{document}
    \author{Peter Müller}
    \title{„`Räume“‚}
    \maketitle
    \tableofcontents

    \section{Abschnitt}
    \emph{Zeilenumbruch}

    \section{Noch ein Abschnitt}

    \subsection{Ein Unterabschnitt}

    \begin{enumerate}
    \item schreiben
    \item strukturieren
    \end{enumerate}
    \end{document}

    Beste Grüße

    Markus Setzler

    1. Das sieht alles gut aus, bis auf die Zeile
      \title{“`Räume”‘}
      hier scheinen mir die Anführungszeichen etwas durcheinander geraten zu sein. Folgendes funktioniert:
      \title{„`Räume“‚}
      Die Umlaute selbst sehen bei mir richtig aus.

    2. Das Problem kommt von der Zeichenkodierung.

      Schreiben Sie in Zeile 3
      \usepackage[utf8]{inputenc}

      statt der Codierung latin1. Denn TeXmaker schreibt Dateien standardmäßig in der Zeichenkodierung „UTF-8“, nicht im (alten) Standard „ISO-8859-1“.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert