不使用 cleveref 的缩写

不使用 cleveref 的缩写

我想使用该cleveref包,但我不喜欢它将大多数名称插入为缩写;例如,它会打印“...图 2.1 ...”而不是“...图 2.1 ...”。

有没有办法改变这种情况没有手动更改所有crefnames?似乎没有合适的选择。

此外,与包一起使用时hyperref,实际上只有数字是链接的。它前面的文本(在我的示例中为“数字”)不是。这也可以更改吗(同样,无需重新定义所有命令)?

答案1

简短回答

\usepackage[noabbrev,nameinlink]{cleveref}

长答案

有没有办法改变这种情况,而不用手动更改所有 crefname?似乎没有合适的选择。

根据手册

某些语言的默认交叉引用名称对某些名称使用常见缩写(例如,在默认的英语格式中,\cref{eq1} 将排版为 eq.~(1))。某些作者可能更喜欢始终使用全名,而不是缩写(equation~(1) 而不是 eq.~(1))。要禁用默认交叉引用名称中的所有缩写,将 noabbrev 选项传递给 cleveref 包

对于你的第二个问题:

此外,当与 hyperref 包一起使用时,实际上只有数字被链接。它前面的文本(在我的示例中为“figure”)没有被链接。这也可以更改吗(同样,无需重新定义所有命令)?

根据手册:

使用 hyperref 包时,cleveref 会自动将所有交叉引用转换为指向相应引用的超链接。默认情况下,只有标签本身构成超链接目标的一部分(即您可以单击以导航到交叉引用的文本)。交叉引用名称不是超链接的一部分。相比之下,hyperref 的 \autoref 命令会将名称作为超链接的一部分。如果您希望在使用 cleveref 时将名称包含在超链接中,您可以将 nameinlink 选项传递给 cleveref 包

答案2

cleveref 有一个新的预发布版本 (v0.18),支持不缩写选项会自动执行此操作。新版本尚未在 CTAN 上发布,但可以在软件包作者的网站上下载:http://www.dr-qubit.org/latex.php#cleveref

答案3

嗯,确实似乎没有非缩写选项,这很烦人,因为 \Cref 可以做到这一点,但只能与大写字母一起使用。简要查看源代码,我们至少有一个方便的列表,我通过“小写选择”运行了该列表:

 \AtBeginDocument{%
    \crefname{equation}{equation}{equations}%
    \crefname{chapter}{chapter}{chapters}%
    \crefname{section}{section}{sections}%
    \crefname{appendix}{appendix}{appendices}%
    \crefname{enumi}{item}{items}%
    \crefname{footnote}{footnote}{footnotes}%
    \crefname{figure}{figure}{figures}%
    \crefname{table}{table}{tables}%
    \crefname{theorem}{theorem}{theorems}%
    \crefname{lemma}{lemma}{lemmas}%
    \crefname{corollary}{corollary}{corollaries}%
    \crefname{proposition}{proposition}{propositions}%
    \crefname{definition}{definition}{definitions}%
    \crefname{result}{result}{results}%
    \crefname{example}{example}{examples}%
    \crefname{remark}{remark}{remarks}%
    \crefname{note}{note}{notes}%
}

但我同意它很笨拙。

答案4

我们似乎不需要\CrefformatKonrad 的上述定义部分。我建议如下。

\usepackage{catoptions}
\usepackage{hyperref}
\usepackage{cleveref}[2011/03/22]
% \makeatletter
\def\setupcrefformat{%
  \docommalist{algorithm,appendix,chapter,corollary,definition,
    enumi,equation,example,figure,footnote,lemma,line,note,part,
    proposition,remark,result,section,table,theorem
  }{%
    \crefformat{##1}{####2##1~####1####3}%
    % We don't seem to need the following:
    % \Crefformat{##1}{####2\@nameuse{Cref@##1@name}~####1####3}%
  }%
}
% \makeatother
\setupcrefformat

\docommalist修剪列表元素周围的前导和尾随空格。

相关内容