使用 \ref 自定义颜色

使用 \ref 自定义颜色

我想创建一个替代命令来\ref区分两种不同颜色(例如黑色和红色)之间的链接。

在下面的代码中我只是使用了答案这里并替换\href\ref。它不起作用,但我不知道如何修复它。

\documentclass[10 pt,a4paper,oneside,openany, notitlepage]{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{amsmath, amssymb, graphics}

\usepackage[colorlinks = true,
            linkcolor = black,
            urlcolor  = black,
            citecolor = black,
            anchorcolor = black]{hyperref}

\newcommand\MYref[3][red]{\ref{#2}{\color{#1}{#3}}}% %NEW COMMAND ALTERNATIVE TO REF


\begin{document}

\section{Title}
\label{blah}
\begin{equation}
\label{eq1}
A=B
\end{equation}

See Section \MYref{blah2}

See Equation \ref{eq1} or \MYref{eq1}

\newpage
\section{Title2}
\label{blah2}

\end{document}

我想要的是当我使用时以红色显示链接(到方程式、章节、小节、图形等),\Myref当我使用时以黑色显示\ref

答案1

在你们的配对中成对使用该\hypersetup{linkcolor=red}命令。\begingroup...\endgroup\MYref

我曾经xparse提供过第三个可选参数,但在示例中根本没有给出。

\documentclass[10 pt,a4paper,oneside, notitlepage]{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{amsmath, amssymb, graphics}

\usepackage[colorlinks = true,
            linkcolor = black,
            urlcolor  = black,
            citecolor = black,
            anchorcolor = black]{hyperref}

\usepackage{xparse}

\NewDocumentCommand{\MYref}{O{red}mo}{%
  \begingroup
  \hypersetup{linkcolor=#1}%
  \ref{#2}%
  \IfValueT{#3}{%
    \color{#1}{#3}%
  }%
  \endgroup
}% %NEW COMMAND ALTERNATIVE TO REF

\newcommand\MYreforig[3][red]{\begingroup\hypersetup{linkcolor=#1}\ref{#2}{\color{#1}{#3}}\endgroup}% %NEW COMMAND ALTERNATIVE TO REF


\begin{document}

\section{Title}
\label{blah}
\begin{equation}
\label{eq1}
A=B
\end{equation}

See Section \MYref{blah2}

See Equation \ref{eq1} or \MYref{eq1}

\newpage
\section{Title2}
\label{blah2}

\end{document}

相关内容