Autoref 和 hyperref 顏色自訂

Autoref 和 hyperref 顏色自訂

如何更改交叉引用的顏色,我希望標籤為黑色,數字為藍色,如圖所示如圖所示

\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

我認為你需要做三件事:

  1. 定義你的藍色。
  2. 將 hyperref 的linkcolor-key 指定為您定義的藍色。
  3. \HyRef@testreftype在提供引用的名稱/類型之前使用目前文字顏色的補丁。

 

\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}

在此輸入影像描述

對於\autoref帶有超連結的 - 引用,短語“Figure”以周圍文字的顏色出現,並且可以像以 hyperref 的 -key 表示的顏色出現的數字一樣可單擊linkcolor

相關內容