LaTeX コードからプログラムで --output-directory の値を取得することは可能ですか?

LaTeX コードからプログラムで --output-directory の値を取得することは可能ですか?

まず を使用して、ファイルを保存しようとしています\VerbatimOut。次に、このファイルを で使用していますが、その絶対パス名を知る必要があります。が変更され、ファイルが現在のディレクトリとは異なる場所に保存される\ShellEscapeまで、すべて正常に動作します。の値を取得するにはどうすればよいですか?--output-directory\VerbatimOut--output-directory

追伸:これは不可能だと思います。minted言う:

ここに画像の説明を入力してください

答え1

Linux では、 コマンドを使用して現在実行中のプロセスのリストを検索できます。 私の場合、のps 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等号の後に続くものをキャプチャできます。

MWE:

 \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-dirLaTeX ドキュメントをコンパイルすると、フラグが使用されている場合と使用されていない場合の両方で、ファイルの内容がターミナルに表示されるようになりました。

出力ディレクトリにスペースが含まれている場合、これは機能しません。また、指定された出力ディレクトリ自体が何らかのスクリプトまたは変数への呼び出しである場合も、機能しない可能性があります。さらに、LaTeX のインスタンスが複数実行されている場合も機能しない可能性があります。したがって、実際の使用にはお勧めしません。あくまで概念実証です。

関連情報