smartef 使用安全嗎?

smartef 使用安全嗎?

有時有人警告我不要使用,cleveref因為它對一些基本的 LaTeX 命令進行了根本性的改變,例如\label.這種擔心是否合理?有充分的理由嗎不是使用它?

答案1

聰明的工作原理

Cleveref 增強了該\label命令,以便將一些附加資訊寫入.aux檔案中。這部分並不是特別具有侵入性,因為它保持了原始實現的\label完整性,並且依賴它的所有標準功能仍然可以工作(例如正常\ref命令)。增強的第二個命令是\refstepcounter- 再次保留原始功能,這應該不會引起任何問題。

幾乎所有功能增強包都以某種方式重新定義標準命令(例如修改列表、部分、方程式...)。所有進一步的功能(即\cref命令)都在完全獨立的函數中處理。

潛在問題

幾乎所有問題都來自該命令的使用\refstepcounter- 或者更確切地說是缺乏它的使用。所有使用它的軟體包都可以開箱即用地使用 smartef。對於那些不這樣做的人,有兩種選擇:

  1. Cleveref 對此軟體包有內建支持,一切都會正常運作。
  2. Cleveref 不支持,使用\cref{label}會產生不正確的輸出(不正確意味著缺少標籤和可能不正確的數字)。它會導致警告,但仍會編譯。您現在有兩個選擇:
    1. 使用普通\ref命令。這永遠有效。
    2. 向 Toby Cubitt 發送電子郵件,並要求他添加對該軟體包的支援。

如果您想了解人們在 smartef 方面遇到的問題,只需瀏覽https://tex.stackexchange.com/questions/tagged/cleveref

Cleveref 和 breqn 軟體包無法很好地協同工作使 refcheck 與 smartef 一起工作以下是您可能遇到的一些典型問題。

最後,cleveref 的文檔中有一個部分是關於poor mans cleveref- 當您需要將 LaTeX 原始程式碼發送給其他人,而他們沒有安裝 Cleveref 時。我認為這在這個包的早期可能是一個問題,但它已經成為所有主要 tex 發行版的標準包可能已經有 5 年了 - 所以這不太可能是一個問題。

為什麼你應該使用 smartef

因為它很聰明並且確實簡化了您的交叉引用。我想向你指出ref、varioref 和 Cleveref 之間的區別。論文決定,交叉引用包:使用哪一個,哪個衝突?如何獲得更完整的參考資料

相關內容