Latexmk 忽略嵌入文件

Latexmk 忽略嵌入文件

我有一個 TeX 文件,其中包含命令中的嵌入文件\embedfile{\jobname.org}。我想latexmk在嵌入文件更改時停止運行。沒有官方選項可以latexmk忽略某些文件,但在我的特定用例中似乎可以使用該$hash_calc_ignore_pattern選項。

我已將以下各項(一次一個)加入我的~/.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

這裡有兩種解決方案,具體取決於您的需求。

設定 的值$hash_calc_ignore_pattern{'pdf'}不是您想要的,因為這指示latexmk忽略.pdf文件中的某些行。相反,您可以指示latexmk忽略.org文件中的所有行

$hash_calc_ignore_pattern{'org'} = '^';

這將適用於所有具有擴展名的文件.org,而不僅僅是\jobname.org.

另一種方法是安排在每次執行時從 產生的檔案pdflatex中刪除使用嵌入檔案的症狀。 Latexmkrc 檔案中的以下內容對我有用:.flspdflatex

$pdflatex = "pdflatex %O %S && ".
"perl -i -p -e \"s[^INPUT (\./|)\"%R\"\\.org\\s*\$][];\" %Y%R.fls";

(我將定義分成兩行,以確保複製和貼上的安全性。有一些特定於 UNIX 的魔法可以確保引用在傳遞到系統的命令列上正常工作。)

相關內容