以程式方式取得輸出目錄

以程式方式取得輸出目錄

為了解決這個問題,我需要-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_latexLatexmk )

但從 TeXLive 2024 開始,應該定義一個新的環境變數:

${TEXMF_OUTPUT_DIRECTORY}

這應該有助於-shell-escape正確運行命令。

相關內容