是否可以通过 LaTeX 代码以编程方式获取 --output-directory 的值?

是否可以通过 LaTeX 代码以编程方式获取 --output-directory 的值?

我首先尝试使用 保存文件\VerbatimOut。然后,我在 中使用该文件\ShellEscape,我需要知道它的绝对路径名。一切正常,直到--output-directory被更改并将\VerbatimOut文件保存到与当前目录不同的位置。我如何获取 的值--output-directory

ps 我想,这是不可能的,因为这就是minted说:

在此处输入图片描述

答案1

在 Linux 中,你可以使用命令 搜索当前正在运行的进程列表。对我来说, withps aux的条目如下所示:pdflatex--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然后,您可以对包含和的条目进行模式匹配--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 实例正在运行,则该方法也可能无法工作。因此,我不建议实际使用它,只是概念验证。

相关内容