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}