0

How to change the colour of cross-reference, I want the label to be in black and the number in blue as in the image as in the image

\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{caption}
\begin{document}
    Insert cross reference \autoref{figure}
\begin{figure}%h!
    \centering
    \includegraphics[]{example-image-a}
    \caption{Validation procedure for LR model}\label{figure}   
\end{figure}
\end{document}
1

I think you need to do three things:

  1. Define your blue color.
  2. Assign hyperref's linkcolor-key your defined blue color.
  3. Patch \HyRef@testreftype to resort to the current textcolor before delivering the name/type of the reference.

 

\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\definecolor{mylinkcolor}{rgb}{0.561, 0.667, 0.863}
\usepackage[colorlinks=true, linkcolor=mylinkcolor]{hyperref}

\makeatletter
\newcommand\MyAutoefPhrasecolorGroup[1]{%
  \color@begingroup\color{MyCurrentcolor}#1\endgroup
}%
\def\HyRef@testreftype#1.#2\\{%
 \colorlet{MyCurrentcolor}{.}%
 \ltx@IfUndefined{#1autorefname}{%
   \ltx@IfUndefined{#1name}{%
     \HyRef@StripStar#1\\*\\\@nil{#1}%
     \ltx@IfUndefined{\HyRef@name autorefname}{%
       \ltx@IfUndefined{\HyRef@name name}{%
         \def\HyRef@currentHtag{}%
         \Hy@Warning{No autoref name for `#1'}%
       }{%
         \edef\HyRef@currentHtag{%
           \noexpand\MyAutoefPhrasecolorGroup{%
             \expandafter\noexpand\csname\HyRef@name name\endcsname
           }%
           \noexpand~%
         }%
       }%
     }{%
       \edef\HyRef@currentHtag{%
         \noexpand\MyAutoefPhrasecolorGroup{%
           \expandafter\noexpand
           \csname\HyRef@name autorefname\endcsname
         }%
         \noexpand~%
       }%
     }%
   }{%
     \edef\HyRef@currentHtag{%
       \noexpand\MyAutoefPhrasecolorGroup{%
         \expandafter\noexpand\csname#1name\endcsname
       }%
       \noexpand~%
     }%
   }%
 }{%
   \edef\HyRef@currentHtag{%
     \noexpand\MyAutoefPhrasecolorGroup{%
       \expandafter\noexpand\csname#1autorefname\endcsname
     }%
     \noexpand~%
   }%
 }%
}%
\makeatother


\usepackage{caption}

\begin{document}

    {\bfseries\verb|\autoref|-references with hyperlink:}

    Textcolor unchanged: Insert cross reference \autoref{figure}

    Textcolor sawitched to green: \textcolor{green}{Insert cross reference \autoref{figure}}

    {\bfseries\verb|\autoref*|-references without hyperlink:}

    Textcolor unchanged: Insert cross reference \autoref*{figure}

    Textcolor sawitched to green: \textcolor{green}{Insert cross reference \autoref*{figure}}

\begin{figure}%h!
    \centering
    \includegraphics[]{example-image-a}
    \caption{Validation procedure for LR model}\label{figure}   
\end{figure}
\end{document}

enter image description here

With \autoref-references with hyperlinks the phrase "Figure" occurs in the color of the surrounding text and is clickable like the number which occurs in the color denoted by hyperref's linkcolor-key.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.