
為了解決這個問題,我需要-output-directory
在運行如下命令時以程式方式取得:
$ pdflatex -shell-escape -output-directory=build test.tex
原因是我需要\write18
根據建置資料夾的位置更改運行的命令。
(我也嘗試直接從命令列讀取${TEXMF_OUTPUT_DIRECTORY}
,但是這個環境變數也是空的:編輯檢查來源後,這似乎從 TexLive 2024 開始可用)
答案1
--output-directory
肯定比它的價值更麻煩,但既然它在那裡,我想你必須支持它。
假設輸出目錄位於目前目錄下方且 unixfind
可用,那麼您可以執行以下操作
\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
正確運行命令。