Latexmk和橡膠有什麼差別?

Latexmk和橡膠有什麼差別?

我只是偶然發現了這個部落格文章關於rubber並在想:「這不正是如此latexmk嗎?」。所以,現在我想知道:不是嗎?或者說有什麼差別嗎?

答案1

橡膠似乎具有以下功能,但 Latexmk 尚未提供:

  1. 橡皮解析 LaTeX 日誌文件,對其進行過濾,並僅漂亮地列印「相關」訊息(警告、錯誤)。橡膠總是在乳膠中運行非互動模式,而 Latexmk 似乎需要額外的開關或配置。
  2. 有了橡膠你就可以擁有LaTeX 原始碼中的設定選項作為註釋; Latexmk 需要輔助設定檔。
  3. 最重要的是,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 的緊密整合。

相關內容