我有一个奇怪的情况,cref
对于单个标签来说,它工作得很好,即\cref{eq:some equation}
对于前两个表单的多个引用,\cref{thm:first theorem,thm:second theorem,thm:amazing third theorem}
它工作得很好,然后之后多个引用被打印出正确的数字,但没有类型,例如
定理 3.4 和 3.6
它会打印
?? 3.4?? 3.6
这种情况既发生在相同类型标签(例如所有定理)中,也发生在混合类型(例如一个引理和一个定理)中。我cref
单独编辑了每个项目,它选择了类型。我尝试过加倍逗号,确保没有空格,多次重新编译等。没有什么可以解决这个问题。
梅威瑟:
\documentclass{article}
\usepackage{cleveref}
\newtheorem{claim}{Claim}
\begin{document}
\begin{claim} \label{b}
\end{claim}
\begin{claim} \label{c}
\end{claim}
\cref{b} % claim 1
\cref{c} % claim 2
\cref{b,c} % ?? 1?? 2
\end{document}
答案1
该包cleveref
预定义了一些常见的标签,例如
方程式、图表、页面、表格、部分、章节、节、附录、脚注、定理、引理、推论
以及其他一些标签,但它无法提前知道用户想要用于其环境的所有标签。该包会根据计数器的名称猜测单数形式,但不会尝试构建复数形式。因此,当
\cref reference format for label type xyz
出现警告,是时候帮助包并定义标签了。因此添加
\crefname{claim}{claim}{claims}
添加到文档前言行之后\newtheorem
。还有\Crefname
用于定义大写形式的,但包通常能够根据小写形式猜测它们。