Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

27 März, 2007

LaTeX Müllentsorgung

Programmiersprachen

Ich schreibe gerade wieder an einem etwas größeren LaTeX-Dokument mit mehreren Dateien. Beim Compilieren der *.tex-Dateien legt pdflatex selbständig zu jeder Datei mehrere Dateien an, die eigentlich nur hindern. Vor allem dann, wenn das Dokument (die *.tex-Dateien und das PDF) in einer Versionverwaltung untergebracht werden sollen.

Bei vielen Editoren lässt sich hier ein extra Ausgabeverzeichniss anlegen und auch pdflatex selbst hat einen Schalter -output-directory dafür. Doch bei TextMate ist das ganze etwas umständlicher einzurichten. Die Hilfe sagt nur:

The latexmk.pl script does all the compiling necessary for things to be right. In order to tell TextMate to use latexmk.pl when compiling, you have to set the environment variable TM_LATEX_COMPILER to have value latexmk.pl.

Leider stand dort nirgends wo man diese latexmk.pl findet und auch spotlight war ratlos. Nach etwas suchen hab ich tief im LaTex-Bundle eine Datei mit dem Namen latexmkrc gefunden. Diese enthält alle Parameter für pdflatex und ich setzte den Schalter für das Ausgabeverzeichnis hinten dran. Das funktionierte zwar halbwegs (jetzt waren die Temp-Dateien in dem angegebenen Verzeichnis, UND im Arbeitsverzeichnis).

Also musste eine andere Lösung her: Da TextMate für jeden Befehl (auch CTRL+R für das Compilieren) ein kleines Shell-Script bereitstellt, habe ich dieses etwas modifiziert. Über Bundles -> Bundle Editor -> Edit Commands ... lassen sich diese bearbeiten. Beim TypeSet & View-Befehl hab ich folgendes unten angehängt:

# Cleanup
rm -rf *.log
rm -rf *.aux
rm -rf *.aux.bak
rm -rf *.toc

Damit wird jetzt nach jedem Compilieren das Arbeitsverzeichnis von den hässlichen Log- und Temp-Dateien geleert.

Wenn es dennoch einen ellegenten Weg gibt, dann verratet ihn mir bitte :)