多年来我一直想知道这个问题,但从来没有遇到过这么多麻烦,以至于我无法忍受不知道,但现在我想我会问一下,看看是否有人知道。
给定理、推论、评论等贴上标签,然后输入“按照定理\ref{theoremname}
...”,是一种常见的做法,但我想知道的是,我是否可以给我的定理贴上标签,这样我就可以输入“按照\ref{whatever}
”,参考标签将自动使用“定理 6.1”或其他内容。
我的理由是,我刚刚将注释升级为推论,尽管注释已加标签,但我现在必须找到对该注释的引用,并将其从“注释\ref{tag}
”更改为“推论\ref{tag}
”。这不是一个经常发生的麻烦,但只是我想知道的事情之一。
答案1
我使用fncylab
包来实现这一点,它允许你将宏扩展与每个计数器关联起来,这样\ref{<label>}
不仅可以生成对应的计数器的值,还可以生成其他值<label>
。例如,
\usepackage{fncylab}
\labelformat{theorem}{Theorem #1}
完全符合您的要求。我也倾向于\labelformat{equation}{(#1)}
这样做,这样我就不必为之烦恼\eqref
,而且,作为奖励,当与 一起使用时hyperref
,整个(<number>)
都是超链接,而不仅仅是数字。
答案2
这cleveref
确实有助于解决这个问题。
而不是写作
我们在定理 \ref{thm:bigimportantthm} 中看到
你只需使用
我们在 \cref{thm:bigimportantthm} 中看到
在你的序言中,你告诉包你希望它如何表现 - 在这个例子中,你可以写
% each of the following has two versions
% \crefname{environmentname}{singular}{plural}, to be used mid-sentence
% \Crefname{environmentname}{singular}{plural}, to be used at the beginning of a sentence
\crefname{theorem}{thm}{thms}
\Crefname{table}{Thms}{Thms}
您可以轻松地让它与hyperref
和varioref
详见ref、varioref 和 cleveref 之间的区别。论文决策