
Я создаю исходный код с помощью
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}