
解決するためにこの問題-output-directory
次のようなコマンドを実行するときに、プログラムで を取得する必要があります。
$ pdflatex -shell-escape -output-directory=build test.tex
\write18
その理由は、ビルド フォルダーの場所に応じて、実行するコマンドを変更する必要があるためです。
${TEXMF_OUTPUT_DIRECTORY}
(コマンドラインから直接読み取ろうとしましたが、この環境変数も空です:編集ソースを確認したところ、TexLive 2024から利用可能になるようです)
答え1
--output-directory
確かに、価値に見合わないほど面倒ですが、そこにある以上はサポートする必要があると思います。
出力ディレクトリが現在のディレクトリの下にあり、UNIXがfind
利用可能であると仮定すると、例えば次のようにすることができます。
\input{|find . -name \jobname.log}
\bye
これにより、ログ ファイルへのパスが出力されます。output-directory
同様に、\input
さらなる処理のためにパスを取得するための定義に含めることもできます。
答え2
最終的に、ユーザーに次のようなコンパイルを依頼しました。
$ pdflatex -shell-escape -output-directory=build "\def\outputDirectory{build}\input{test.tex}"
( pre_latex
latexmkでも参照)
しかし、TeXLive 2024 からは、新しい環境変数を定義する必要があります。
${TEXMF_OUTPUT_DIRECTORY}
これにより、コマンドを正しく実行できるようになります-shell-escape
。