我最近更新到了 cleveref 的当前版本 (2018/03/03 v0.21.3),现在有些\cref
无法正确打印。
\documentclass{article}
\usepackage{cleveref}
\crefname{section}{section}{sections}
\Crefname{section}{Section}{Sections}
\crefname{subsection}{subsection}{subsections}
\Crefname{subsection}{Subsection}{Subsections}
\begin{document}
\section{First section}\label{sec1}
\subsection{First subsection}\label{sec1.1}
\subsubsection{First subsubsection}\label{sec1.1.1}
We refer to \cref{sec1}, \cref{sec1.1}, and \cref{sec1.1.1}.
\Cref{sec1} is referred to.
\Cref{sec1.1} is referred to.
\Cref{sec1.1.1} is referred to.
\end{document}
\cref{sec1.1.1}
应该打印为“subsection 1.1.1”,但它打印为“section 1.1.1”;并且\Cref{sec1.1.1}
有类似的问题。cleveref v0.19 没有这个问题;我从http://www.dr-qubit.org/cleveref.html,并且它仍能正常工作。
知道发生什么事了吗?
答案1
一些测试:
TeX Live 2018/预测试,cleveref
版本 0.21.3
我们参考第 1 节、第 1.1 小节和第 1.1.1 节。
TeX Live 2017,cleveref
版本 0.21.1
我们参考第 1 节、第 1.1 小节和第 1.1.1 节。
TeX Live 2016,cleveref
版本 0.19
我们参考第 1 节、第 1.1 小节和第 1.1.1 小节。
TeX Live 2012,cleveref
版本 0.18.9
我们参考第 1 节、第 1.1 小节和第 1.1.1 小节。
cleveref
从 TeX Live 2013 到 2017 年没有变化。
如果你删除\crefname
和\Crefname
指令,你会得到
我们参考第 1 节、第 1.1 节和第 1.1.1 节。
所有版本。
然而,文档说
为方便起见,如果在序言结尾之前它们没有被定制,则 的交叉引用名称(和标签格式)默认
subsection
从 继承section
,而 的交叉引用名称(和标签格式)subsubsection
从 继承subsection
(而 本身可能从 继承section
)。 类似地,对于subappendix
、subsubappendix
和subsubsubappendix
,以及enumii
、enumiii
和enumiv
,enumv
它们都从 继承enumi
。最后,subfigure
和分别从和subtable
继承。figure
table
因此它看起来像是 0.21 版本或文档中的一个错误。
无论如何,我认为不应该使用“小节 1.1”,因为双数字本身就指定了节级。请怜悯您的读者,不要让他们使用可怕的“小节”。