
A fim de resolveresse assunto, eu precisaria obter programaticamente o -output-directory
ao executar comandos como:
$ pdflatex -shell-escape -output-directory=build test.tex
O motivo é que eu precisaria alterar os comandos executados \write18
dependendo da localização da pasta de construção.
(Também tentei ler diretamente ${TEXMF_OUTPUT_DIRECTORY}
na linha de comando, mas esta variável de ambiente também está vazia:EDITARdepois de verificar a fonte, parece estar disponível a partir do TexLive 2024)
Responder1
--output-directory
certamente é mais problemático do que vale a pena, mas como está lá, suponho que você tenha que apoiá-lo.
Supondo que o diretório de saída esteja abaixo do diretório atual e um unix find
esteja disponível, você pode fazer, por exemplo
\input{|find . -name \jobname.log}
\bye
que imprimirá o caminho para o arquivo de log, incluindo output-directory
você poderia similarmente \input
em uma definição para obter o caminho para processamento posterior.
Responder2
Acabei pedindo ao usuário para compilar com algo como:
$ pdflatex -shell-escape -output-directory=build "\def\outputDirectory{build}\input{test.tex}"
(veja também pre_latex
em latexmk)
Mas a partir do TeXLive 2024, uma nova variável de ambiente deverá ser definida:
${TEXMF_OUTPUT_DIRECTORY}
o que deve ajudar a executar comandos -shell-escape
corretamente.