Cleveref 全局设置标签和计数器的文本颜色

Cleveref 全局设置标签和计数器的文本颜色

我在文档中使用hyperref和。现在,为了让读者看得更清楚,我希望链接(将引用其他文档,因此可能不太清楚)的颜色不同于黑色。而且,为了我自己的理智,我更愿意继续使用命令。我该如何实现这一点?我可以找到cleveref\cref{...}(以及更多),但是;第一个不是全局的,只适用于特定类型。第二个重新定义了命令\cref{},这不应该是这个基本问题的解决方案。

我想要实现的是:

彩色章

可以使用以下命令创建:

\textcolor{bluegray}{\cref{chap:lorem}}

但是,当我尝试让该\textcolor命令在全球范围内使用时,我只能做到这一点:

沒有色章

可以使用序言中的以下内容来创建它:

\crefdefaultlabelformat{\textcolor{bluegray}{#2#1}#3}

并且只\cref{chap:lorem}在文本中使用。使用此解决方案,章节也不会变成蓝灰色,这正是我想要实现的。这是合乎逻辑的,因为此命令仅适用于标签计数器cleveref文档。

提到的解决方案这里使用 可以实现我想要的功能\crefformat{<type>}{<format>};但是,那里的代码仅适用于该特定类型。我不想到处去重新定义我在文档中使用的每种类型(虽然这当然是可能的,但我觉得必须有一种更简洁的方法来实现这一点)。我没有\crefdefaultformat{<format>}cleveref文档。

最好的方法是什么?我基本上被迫覆盖默认\cref{}命令吗?

答案1

您可以使用\crefname命令将文本“章节”更改为您想要的任何内容,包括彩色版本:

\crefname{chapter}{\textcolor{bluegray}{chapter}}{\textcolor{bluegray}{chapters}}

使用\Crefname与版本类似的语法\Cref

答案2

因为我不想重新定义原来的命令,所以我只是简单地添加了一个新命令,如下所示:

\usepackage{hyperref}
\usepackage[nameinlink]{cleveref}

\definecolor{bluegray}{rgb}{0.4, 0.6, 0.8}
\newcommand{\ccref}[1]{\textcolor{bluegray}{\cref{#1}}}
\newcommand{\Ccref}[1]{\textcolor{bluegray}{\Cref{#1}}}

相关内容