cleveref v0.21.3 导致一些 \cref 无法正确打印

cleveref v0.21.3 导致一些 \cref 无法正确打印

我最近更新到了 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)。 类似地,对于subappendixsubsubappendixsubsubsubappendix,以及enumiienumiiienumivenumv它们都从 继承enumi。最后,subfigure和分别从和subtable继承。figuretable

因此它看起来像是 0.21 版本或文档中的一个错误。

无论如何,我认为不应该使用“小节 1.1”,因为双数字本身就指定了节级。请怜悯您的读者,不要让他们使用可怕的“小节”。

相关内容