更改 eqref 的链接颜色

更改 eqref 的链接颜色

我正在尝试更改链接颜色,使其\eqref与其他\ref链接不同。我有这个

\makeatletter
\let\reftagform@=\tagform@
\def\tagform@#1{\maketag@@@{(\ignorespaces\textcolor{blue}
{#1}\unskip\@@italiccorr)}}
\renewcommand{\eqref}[1]{\textup{\reftagform@{\ref{#1}}}}
\makeatother

但它只会改变等式中的数字的颜色。你能帮我解决这个问题吗?

谢谢你!

答案1

如果参考文献的所有部分都应以特定颜色显示,则与for\color结合的组中的命令将发挥作用。\hypersetuplinkbordercolor

首先将定义存储\eqref在,例如,\@msm@th@ref然后使用

\begingroup\leavevmode\color{violet}...
\@msm@th@eqref
\endgroup

在重新定义的\eqref宏中。

这将用作violet括号、参考值和链接的颜色。

另一个选项是使用mathtools\newtagform,但这会改变方程的数字。(此处未显示此选项)

(关于用法\leavevmode请参见下面的评论egreg。感谢他指出这个可能的问题)。

\documentclass{article}

\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{hyperref}


\makeatletter
\let\@msm@th@eqref\eqref
\renewcommand{\eqref}[1]{%
  \begingroup
  \leavevmode
  \color{violet}%
  \hypersetup{linkbordercolor=[named]{violet}}%
  \@msm@th@eqref{#1}%
  \endgroup
}
\makeatother


\begin{document}

\section{Foo} \label{section::foo}
\begin{equation}
a \equiv a\label{eq::foo}
\end{equation}


See the important \eqref{eq::foo} but look also at \ref{section::foo}
\end{document} 

在此处输入图片描述

答案2

您只需重新定义\eqref下面提到的命令并插入所需的颜色。

\documentclass{article}

\usepackage{amsmath}
\usepackage{color}

\def\eqref#1{\textcolor{blue}{(\ref{#1})}}

\begin{document}

\begin{equation}
\label{eq1}
\end{equation}


This is a text \eqref{eq1}
\end{document} 

相关内容