Wie verweise ich in einem Makro auf das Ausgabeverzeichnis?

Wie verweise ich in einem Makro auf das Ausgabeverzeichnis?

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-dirWie 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 .gitignoreDatei, 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-dirPfad in texlive mithilfe des Pakets currfile abrufen. Dazu ist die --recorderOption - erforderlich.

\documentclass{article}
\usepackage[abspath]{currfile}
\begin{document}
\getabspath{test-utf8.log}
\theabsdir

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen