コマンドからの埋め込みファイルを含む TeX ファイルがあります\embedfile{\jobname.org}
。埋め込みファイルが変更されたときに実行を停止したいと思いますlatexmk
。 には特定のファイルを無視する公式オプションはありませlatexmk
んが、私の特定の使用例では オプションでそれが可能になるようです$hash_calc_ignore_pattern
。
私は以下の各項目を(一度に 1 つずつ) に追加しました~/.latexmkrc
。
$hash_calc_ignore_pattern{'pdf'} = '^\\embedfile{\\jobname.org}';
$hash_calc_ignore_pattern{'pdf'} = 'jobname.org';
$hash_calc_ignore_pattern{'pdf'} = '.*jobname.org.*';
ただし、ファイルを変更するたびに.org
、latexmk
引き続き実行されます。この機能を動作させる方法についてアドバイスはありますか?
答え1
ニーズに応じて、2 つのソリューションがあります。
の値を設定するのは、ファイル内の特定の行を無視するように$hash_calc_ignore_pattern{'pdf'}
指示するため、望んでいることではありません。代わりに、ファイル内のすべての行を無視するように指示することができます。latexmk
.pdf
latexmk
.org
$hash_calc_ignore_pattern{'org'} = '^';
.org
これは、 だけでなく、拡張子 を持つすべてのファイルに適用されます\jobname.org
。
代替案としては、 を実行するたびに、pdflatex
埋め込みファイルの使用の症状が.fls
によって生成されたファイルから削除されるように設定することですpdflatex
。私の場合は、latexmkrc ファイルで次のようにするとうまくいきました。
$pdflatex = "pdflatex %O %S && ".
"perl -i -p -e \"s[^INPUT (\./|)\"%R\"\\.org\\s*\$][];\" %Y%R.fls";
(コピーと貼り付けを安全に行うために、定義を 2 行に分割しました。システムに渡されるコマンド ラインで引用符が正しく機能するようにするための UNIX 固有のマジックがあります。)