我正在尝试更改链接颜色,使其\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
结合的组中的命令将发挥作用。\hypersetup
linkbordercolor
首先将定义存储\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}