是否可以透過 LaTeX 程式碼以程式設計方式取得 --output-directory 的值?

是否可以透過 LaTeX 程式碼以程式設計方式取得 --output-directory 的值?

我嘗試先使用\VerbatimOut.然後,我在 中使用這個文件\ShellEscape,我需要知道它的絕對路徑名。一切正常,直到--output-directory更改並將\VerbatimOut文件保存到與當前目錄不同的位置。我怎樣才能得到 的值--output-directory

ps我想,這是不可能的,因為這就是minted說:

在此輸入影像描述

答案1

在 Linux 中,您可以使用命令搜尋目前正在運行的進程清單ps aux。對我來說, pdflatexwith 的條目--output-dir如下所示:

marijn     94217  0.0  0.2 119940 40784 pts/1    S+   18:22   0:00 pdflatex --shell-escape --output-dir=diffout chkoutdir.tex

latex然後,您可以對包含and的條目進行模式匹配--output-dir,然後捕獲等號後面的內容。

微量元素:

 \documentclass{article}
\usepackage{fancyvrb}
\usepackage{shellesc}
\begin{document}
\begin{VerbatimOut}{verbfile.txt}
I write that. And that too.
\end{VerbatimOut}
\ShellEscape{bash chkdirscript.sh}
\end{document}

腳本:

if ps aux|pcregrep -q "latex.*[-]output-dir=[^ ]+ "; then
    OUTDIR=$(ps aux|pcregrep -o1 "latex.*[-]output-dir=([^ ]+) ")
    cat $OUTDIR/verbfile.txt
else
    cat verbfile.txt
fi

--output-dir現在,無論使用該標誌或未使用該標誌,編譯 LaTeX 文件都會在終端機中顯示文件的內容。

如果輸出目錄包含空格,則此方法不起作用。如果指定的輸出目錄本身是對某種腳本或變數的調用,它也可能不起作用。此外,如果有多個 LaTeX 實例正在運行,它可能無法運作。所以我不推薦它用於實際使用,只是一個概念證明。

相關內容