
Ich baue Out-of-Source mit
pdflatex -output-dir=/foo
Eines meiner Makros generiert temporäre Dateien im Arbeitsverzeichnis.
\immediate\write18{bash -c "some-command >outputfile"}
Ich möchte, dass sie stattdessen im Ausgabeverzeichnis gespeichert werden.
-output-dir
Wie kann ich meinem Makro den der Befehlszeilenoption zugewiesenen Wert mitteilen ?
Antwort1
Das Problem ist, dass in LaTeX das Ausgabeverzeichnis gleichzeitig ein Eingabeverzeichnis ist (z. B. aux-file, toc usw.), nicht nur für pdflatex, sondern auch für andere Tools. Meiner Erfahrung nach ist es auf lange Sicht viel besser, es nicht zu verwenden --output-dir
. Es gibt immer ein Tool, das seine Eingabedateien nicht findet. In Git verwende ich einfach eine sinnvolle .gitignore
Datei, um zu vermeiden, dass die Hilfsdateien übermittelt werden.
Außerdem: Mit luatex können Sie auf die Kommandozeilenargumente zugreifen, wie in dieser Antwort beschrieben:https://tex.stackexchange.com/a/18813/2388.
Mit pdflatex können Sie den --output-dir
Pfad in texlive mithilfe des Pakets currfile abrufen. Dazu ist die --recorder
Option - erforderlich.
\documentclass{article}
\usepackage[abspath]{currfile}
\begin{document}
\getabspath{test-utf8.log}
\theabsdir
\end{document}