
我只是偶然發現了這個部落格文章關於rubber
並在想:「這不正是如此latexmk
嗎?」。所以,現在我想知道:不是嗎?或者說有什麼差別嗎?
答案1
橡膠似乎具有以下功能,但 Latexmk 尚未提供:
- 橡皮解析 LaTeX 日誌文件,對其進行過濾,並僅漂亮地列印「相關」訊息(警告、錯誤)。橡膠總是在乳膠中運行非互動模式,而 Latexmk 似乎需要額外的開關或配置。
- 有了橡膠你就可以擁有LaTeX 原始碼中的設定選項作為註釋; Latexmk 需要輔助設定檔。
- 最重要的是,rubber 可以讓您指定正確的值TEXINPUTS、BIBINPUTS、BSTINPUTS 等對於使用上述配置選項的每個文件; Latexmk 似乎期望這些環境變數已經被正確定義。
當然,其中許多問題可以透過一些包裝腳本和輔助文件來解決。顯然,latexmk 有許多橡膠所不具備的功能。
答案2
Latexmk 相對於 Rubber 的一個重要優勢是 Latexmk 更可靠地偵測依賴檔案。據我所知,rubber 透過解析 tex 檔案、查找\input
、\include
和 \includegraphics
巨集來確定依賴檔案。但是,如果這些巨集被隱藏在另一個巨集中,rubber 就無法正確偵測依賴檔案。例如,如果你有
\newcommand\try[1]{\input{#1}}
\try{sub}
ruby 不會偵測到這sub.tex
是一個依賴檔案。因此,如果檔案sub.tex
發生更改,rubber 將不會偵測到需要再次執行編譯。
Latexmk 而是解析日誌檔案並使用-recorder
( pdf
)選項latex
來確定依賴檔案。
答案3
Latexmk 還帶來了自動預覽功能,一旦儲存 tex,它就會(聰明地)重新編譯 pdf。
還有更高級的功能,例如與 makefile 的緊密整合。