通过不同的颜色区分 \ref 和 \cref

通过不同的颜色区分 \ref 和 \cref

hyperref我对和包有以下问题cleveref。我想通过不同的命令和不同的颜色区分内部链接(例如章节等)和数学链接(例如定义、定理、方程式等)。

更确切地说,我想使用\ref颜色的内部链接A,并\cref提供(!) 和颜色nameinlink选项cleveref获取包含数学内容的链接。

问题是,这显然是无法做到的。事实上,我发现了之前的两个问题——如何对不同的 \href 命令使用不同的颜色?如何用 \cref 引用不等式?-- 关于主题,但他们没有解决我的问题。帖子方程式链接中的特定颜色越来越接近,但它仍然适用于一种情况(即方程式),而我想一次性获得所有内容,而不是在序言中为可能出现的每一种情况写相同的内容。

这是我尝试解决问题的方法。

\documentclass{article}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}

\usepackage[usenames,dvipsnames]{xcolor}

\newtheorem{theorem}{Theorem}

\usepackage{varioref}
\usepackage{hyperref}

\usepackage[noabbrev,capitalise,nameinlink]{cleveref}

\hypersetup{colorlinks={true},linkcolor={blue},citecolor=green}

\newcommand{\mref}[3][red]{\cref{#2}{\color{#1}{#3}}}

%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\section{Bla}
\label{sec:bla}

\begin{theorem}
\label{th:gauss}
Gauss
\end{theorem}

\section{blabla}

In section \ref{sec:bla} we found \mref{th:gauss}

\end{document}

我认为这行不通,因为我给出的红色\mref在面对 附带的默认蓝色时不起作用\cref。我在这里的意思是,必须有某种优先级(如果我听起来不那么专业,请原谅)转到\cref,并且不会使红色活跃。

那么,有办法解决这个问题吗? 这能做到吗?

期待您的反馈。
感谢您的时间。

PS:最后一次编辑。当然,我只是尝试了一下,而且很可能不是最聪明的。我放上代码只是因为我被要求给出 MWE。相关的是第二段中的问题!

答案1

这是你想要的吗?

\documentclass{article}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[usenames,dvipsnames]{xcolor}
\newtheorem{theorem}{Theorem}
\usepackage{varioref}
\usepackage{hyperref}
\usepackage[noabbrev,capitalise,nameinlink]{cleveref}
\hypersetup{colorlinks={true},linkcolor={blue},citecolor=green}

\newcommand{\mref}[3][red]{\hypersetup{linkcolor=#1}\cref{#2}{#3}\hypersetup{linkcolor=blue}}%<<<changed

\begin{document}
\section{Bla}
\label{sec:bla}
\begin{theorem}
\label{th:gauss}
Gauss
\end{theorem}

\section{blabla}

In section \ref{sec:bla} we found \mref{th:gauss}

And again \ref{sec:bla} we found \mref{th:gauss}

\end{document}

在此处输入图片描述

相关内容