我首先尝试使用 保存文件\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 实例正在运行,则该方法也可能无法工作。因此,我不建议实际使用它,只是概念验证。