我有一個 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 檔案中的以下內容對我有用:.fls
pdflatex
$pdflatex = "pdflatex %O %S && ".
"perl -i -p -e \"s[^INPUT (\./|)\"%R\"\\.org\\s*\$][];\" %Y%R.fls";
(我將定義分成兩行,以確保複製和貼上的安全性。有一些特定於 UNIX 的魔法可以確保引用在傳遞到系統的命令列上正常工作。)