====== Wie kann ich meinen TeX-Lauf automatisieren? ======
Moderne Editoren vereinfachen das Arbeiten und somit das Kompilieren von LaTeX-Dokumenten. Diese Editoren bedienen sich im eigentlichen Sinne nur Compilern, die im Suchpfad des Systems hinterlegt sind. Das Setzen eines einfachen Briefes oder kleineres Essays ist daher mit einem Klick getan. Häufig führt der Klick ''PDFLaTeX'', ''LuaLaTeX'' oder ''XeLaTeX'' aus.
Die Anforderungen an ein Textsatzsystem steigen kontinuierlich. Beispielsweise kommt kaum ein Buch ohne einen Index oder ein Literaturverzeichnis aus. Wie diese erstellt werden, ist bereits in anderen Fragen besprochen worden. Zusammenfassend ist festzuhalten, dass ein Kompilierungslauf nicht ausreicht. Bspw. ist folgende Reihenfolge vorstellbar:
pdflatex
makeindex
makeglossaries
bibtex
pdflatex
pdflatex
Das bedeutet, dass der Editor an jedes Projekt angepasst werden muss, um die gewünschte Kompilierung mittels eines Buttons zu gewährleisten. Alternativ muss ich mindestens 4 Buttons haben, die verschiedene Compiler aufrufen. Genau an dieser Stelle setzen die unten aufgeführten Tools an. Es muss nur ein Button konfiguriert werden und die restlichen Schritte werden separat angepasst.
===== arara =====
''[[http://pt.wikipedia.org/wiki/Arara|arara]]'' ist nicht nur ein Vogel, sondern der Name eines „cool TeX automation tool“, wie es der Author Paulo R. M. Cereda bezeichnet. Dieses Werkzeug ist für TeX-Live-Nutzer direkt verfügbar. MiKTeX-Nutzer können es sehr einfach mittels des Installers installieren. Das Paket ''arara'' inklusive der Dokumentation ist
- auf CTAN verfügbar: [[http://www.ctan.org/pkg/arara|"arara" auf CTAN]]
- auf der Entwicklerseite: [[https://github.com/cereda/arara|''arara'' auf github]]
=== Wie funktioniert arara? ===
In der Einleitung wurde bereits angesprochen, dass der Editor nur eine einzige Kompilierung durchführen muss, um alle benötigten Compiler aufzurufen. ''arara'' weiß selbst nicht, was wie kompiliert werden soll, man kann es ihm aber in der ''.tex''-Datei mitteilen. Ein einfaches Beispieldokument soll dies verdeutlichen:
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex
\documentclass[a4paper,12pt]{article}
\usepackage[style=verbose]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cite{knuth:ct}
\printbibliography
\end{document}
Angenommen, die Datei heißt ''beispieldokument.tex'', so muss dieses Dokument nur mittels
arara beispieldokument
kompiliert werden und alle benötigten Kompilierungen werden ausgeführt. Die hieraus erwachsenen Möglichkeiten sind hervorragend dokumentiert. Der Entwickler selbst ist auf [[http://tex.stackexchange.com/| TeX.SX]] sehr aktiv, so dass Fragen am ehesten dort beantwortet werden.
===== latexmk =====
''latexmk'' ist ein Programm mit dem man ebenfalls einen TeX-Lauf bzw. den Aufruf zugehöriger Tools automatisieren kann, wobei hier der große Vorteil darin besteht, dass nur die Dateien neu generiert werden müssen, wenn sie sich (bzw. eine der Abhängigkeiten) geändert haben.
Angenommen die Datei ''test.tex'' enthält die folgenden Anweisungen:
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel,csquotes}
\usepackage[backend=biber]{biblatex}
\addbibresource{l2kurz.bib}
\begin{document}
\nocite{*} % gibt alle Literaturstellen aus
\printbibliography
\end{document}
reicht ein einfaches
latexmk test -pdf
aus, um pdflatex und [[was_ist_biber|biber]] in der richtigen Reihenfolge und Anzahl durchlaufen zu lassen. Ruft man jetzt noch einmal ''latexmk test -pdf'' auf, erkennt latexmk automatisch, dass die PDF Datei noch //gültig// ist und führt keine Programme aus. Wenn sich beispielsweise nur die Literaturdatei geändert hat, wird diese erneut mit biber übersetzt und anschließend noch einmal pdflatex. biber führt somit immer nur die benötigten Programme aus, was eine Menge Zeit spart.
latexmk lässt sich per Konfigurationsdatei dazu anweisen, immer eine bestimmte Datei bzw. Ausgabeformat zu wählen, so dass man das nicht mehr angeben muss. Für die LaTeX Kurzbeschreibung l2kurz wird folgende Datei eingesetzt((https://github.com/texdoc/l2kurz)):
$pdf_mode = 1;
@default_files = ('l2kurz');
$pdflatex = 'pdflatex -synctex=1 %O %S';
Das gibt den Dateinamen vor und aktiviert den PDF-Modus und [[synctex]].