Wer für gewöhnlich mit einer der großen Textverarbeitungen wie LibreOffice Writer oder Microsoft Office Word arbeitet, kennt das recht nützliches Tool zum Abgleich zweier Dokumente mit dem Ziel, deren inhaltliche Gemeinsamkeiten oder Unterschiede visuell sichtbar zu machen. So könnte man ein Publikationsmanuskript an einen Co-Autor weitergeben und es nach Rückgabe auf Unterschiede zum versendeten »Original« vergleichen: Sichtbar werden würden all jene Stellen, an denen Wörter/Textpassagen ersetzt, gelöscht oder ergänzt worden sind.
Ein solches Werkzeug gibt es auch für LaTeX-Dokumente und nennt sich latexdiff. Das Paket ist für gewöhnlich in einer voll installierten TeXLive-Installation unter GNU/Linux
verfügbar; zur Installation unter Windows muß man etwas weiter gehen, da eine Perl-Installation vorausgesetzt wird und das Perl-Script latexdiff in einen der Unterordner des Perl-Verzeichnisses
kopiert werden muß. Näheres steht dazu hier. Auf
gleicher Seite sowie hier findet man auch gleich ein paar optische Beispiele. Eine
ausführliche Dokumentation zu allen möglichen Optionen bietet die offizielle
Dokumentation.
Prinzipiell ist die Anwendung einfach: unter GNU/Linux wird ein Terminal-Fenster in jenem Ordner gestartet (oder dorthin navigiert), in dem die zu vergleichenden .tex-Dateien liegen. Dann:
latexdiff Original.tex Revision.tex > Unterschied.tex
Die erzeugte tex-Datei Unterschied.tex wird nun einfach kompiliert, und heraus kommt ein Dokument, in dem farblich die Unterschiede hervorgehoben sind.
Wer auf die oben gezeigte Weise ein Dokument kompiliert, erhält ggf. – d.h. wenn das Dokument eine Menge fortlaufender Zitate enthält, die nun korrigiert worden sind – ein etwas zerrissenes Layout, bei dem Gruppen aus mehreren Zitaten über den Seitenrand hinauslaufen, ohne umgebrochen worden zu sein.
Grund dafür ist, daß jede dieser Zitat-Gruppen in eine \mbox{Zitat} eingefaßt wurde, um den ursprünglichen Stil zu bewahren. Um das zu umgehen, gibt man latexdiff noch
eine Option mit:
latexdiff --disable-citation-markup Original.tex
Revision.tex > Unterschied.tex
Das nun erzeugte Dokument enthält zwar nicht mehr die alten (»falschen«) Zitate, dafür aber alle neuen (»korrigierten«) ohne \mbox{ }, so daß sie umbrechen.
Der LyX-Editor hat eine integrierte Funktion, über die sich Dokumente (im lyx-Format) vergleichen lassen: Menü »Werkzeuge | Vergleichen«.
Wer unter Linux arbeitet, kann sich des kleinen Konsolenprogramms sdiff bedienen:
Nebenstehend ein Beispiel fast identischer TeX-Quellcodes (die Präambel habe ich weggelassen), die verglichen werden sollen. Ich habe drei Änderungen (rechts) zum Original (links) vorgenommen.
Wird ein Terminal im selben Verzeichnis geöffnet, kann man den gezeigten Befehl sdiff -s alt.tex neu.tex nutzen. Die Ausgabe zeigt in drei Zeilen die Änderungen.
Den Nutzen dieser Methode erkennt man vielleicht mit folgendem Beispiel: In einem TeX-Dokument von > 200.000 Wörtern Länge habe ich genau eine Textstelle geändert. Und zwar nahm ich eine grammatikalische Korrektur vor: Der Ausdruck "nahe des Hauses" ist grammatikalisch falsch, denn das Wort "nahe" diktiert den Dativ, also ist korrekt: "nahe dem Haus". Nun will ich diese eine Textstelle wiederfinden.
Bei Verwendung von latexdiff muß ich lange warten, bis eine Vergleichsdatei kompiliert worden ist, und in der muß ich die gekennzeichnete Passage auch erst suchen. Die
sdiff-Methode dagegen zeigt mir nach einer Sekunde das Ergebnis an (die Zeile mit dem Satz), nach dem ich im Quellcode suchen kann.