
해결하기 위해서는이 문제-output-directory
, 다음과 같은 명령을 실행할 때 프로그래밍 방식으로 를 가져와야 합니다 .
$ pdflatex -shell-escape -output-directory=build test.tex
\write18
그 이유는 빌드 폴더의 위치에 따라 실행되는 명령을 변경해야 하기 때문입니다 .
(나도 직접 읽어보려고 했으나${TEXMF_OUTPUT_DIRECTORY}
이 환경 변수도 비어 있습니다.편집하다소스를 확인해 보니 TexLive 2024부터 사용 가능한 것으로 보입니다)
답변1
--output-directory
확실히 그 가치보다 더 많은 문제가 있지만 그것이 거기 있기 때문에 나는 당신이 그것을 지원해야 한다고 생각합니다.
출력 디렉터리가 현재 디렉터리 아래에 있고 유닉스를 find
사용할 수 있다고 가정하면 예를 들어 다음과 같이 할 수 있습니다.
\input{|find . -name \jobname.log}
\bye
그러면 추가 처리를 위한 경로를 가져오는 정의 와 output-directory
유사하게 로그 파일의 경로가 인쇄됩니다 .\input
답변2
나는 결국 사용자에게 다음과 같이 컴파일하도록 요청했습니다.
$ pdflatex -shell-escape -output-directory=build "\def\outputDirectory{build}\input{test.tex}"
pre_latex
( latexmk에서도 참조 )
그러나 TeXLive 2024부터 새로운 환경 변수를 정의해야 합니다.
${TEXMF_OUTPUT_DIRECTORY}
명령을 올바르게 실행하는 데 도움이 될 것입니다 -shell-escape
.