Как сослаться на output-dir в макросе?

Как сослаться на output-dir в макросе?

Я создаю исходный код с помощью

pdflatex -output-dir=/foo

Один из моих макросов генерирует временные файлы в рабочем каталоге.

\immediate\write18{bash -c "some-command >outputfile"}

Я хочу, чтобы он сохранял их в выходном каталоге.

Как сделать так, чтобы мой макрос учитывал значение, заданное -output-dirпараметром командной строки?

решение1

Проблема в том, что в LaTeX выходной каталог также является входным каталогом (например, aux-file, toc и т. д.) не только для pdflatex, но и для других инструментов. По моему опыту, в долгосрочной перспективе гораздо лучше не использовать --output-dir. Всегда есть один инструмент, который не находит свои входные файлы. В git я просто использую разумный .gitignoreфайл, чтобы избежать коммита вспомогательных файлов.

Кроме того: с помощью luatex вы можете получить доступ к аргументам командной строки, как описано в этом ответе:https://tex.stackexchange.com/a/18813/2388.

С помощью pdflatex вы можете получить --output-dirпуть в texlive с помощью пакета currfile. Для этого нужна опция --recorder-.

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

\end{document}

введите описание изображения здесь

Связанный контент