cref 多个标签不抓取标签类型

cref 多个标签不抓取标签类型

我有一个奇怪的情况,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用于定义大写形式的,但包通常能够根据小写形式猜测它们。

相关内容