프로그래밍 방식으로 출력 디렉터리 가져오기

프로그래밍 방식으로 출력 디렉터리 가져오기

해결하기 위해서는이 문제-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.

관련 정보