cleveref 使用安全吗?

cleveref 使用安全吗?

有时会有人警告我不要使用,cleveref因为它会对一些基本的 LaTeX 命令(例如)进行非常根本性的更改\label。这种担忧是否合理?加载它时会出现哪些问题?是否有充分的理由不是如何使用它?

答案1

cleveref 的工作原理

Cleveref 增强了\label命令,以便将一些附加信息写入文件.aux。这部分并不特别具有侵入性,因为它保持了原始实现的\label完整性,并且所有依赖它的标准函数仍将起作用(例如正常\ref命令)。增强的第二个命令是\refstepcounter- 同样,原始功能被保留,这不会造成任何问题。

几乎所有功能增强包都以某种方式重新定义标准命令(例如修改列表、部分、方程式……)。所有进一步的功能(即命令\cref)都在完全独立的函数中处理。

潜在问题

几乎所有问题都源于\refstepcounter命令的使用 - 或者说缺乏使用。所有使用它的软件包都可以与 cleveref 配合使用。对于那些不能使用 cleveref 的软件包,有两种选择:

  1. Cleveref 内置了对该包的支持,所以一切都能正常工作。
  2. Cleveref 不支持,使用\cref{label}会产生不正确的输出(不正确意味着缺少标签并且可能数字不正确)。它会引起警告但仍会编译。您现在有两个选择:
    1. 使用正常\ref命令。这总是有效的。
    2. 发送一封电子邮件给 Toby Cubitt,并请他添加对该软件包的支持。

如果你想了解人们在使用 cleveref 时遇到的问题,只需浏览https://tex.stackexchange.com/questions/tagged/cleveref

Cleveref 和 breqn 软件包不能很好地协同工作使用 cleveref 使 refcheck 工作以下是您可能会遇到的一些典型问题。

最后,cleveref 的文档中有一节介绍poor mans cleveref- 当您需要将 LaTeX 源代码发送给其他人,而他们没有安装 cleveref 时。我认为这在该软件包的早期可能是一个问题,但它已经成为所有主要 tex 发行版的标准软件包,大概已经有 5 年了 - 所以这不太可能成为问题。

为什么应该使用 cleveref

因为它很聪明,确实简化了你的交叉引用。我想指出ref、varioref 和 cleveref 之间的区别。论文决策交叉引用包:使用哪一个,哪些有冲突?如何获取更完整的参考文献

相关内容