仅限颜色 \nameref

仅限颜色 \nameref

我将与和hyperref结合使用,目的是以链接颜色排版(默认情况下似乎为红色),但以正常排版。namerefcleveref\nameref{label}\cref{label}

我尝试了以下方法,但不幸的是,它不起作用。可以修改它以使其起作用吗?如果不行,如何最好地实现此行为?

\documentclass{article}

\usepackage{etoolbox}
\usepackage{nameref}
\usepackage{hyperref}


\pretocmd{\nameref}{\begingroup\hypersetup{colorlinks}}{}{}
\apptocmd{\nameref}{\endgroup}{}{}

\begin{document}

\section{Section 1}\label{sct1}
Content of section 1.


\section{Section 2}\label{sct2}
Content of section 2.  Reference to \nameref{sct1}.

\end{document}

答案1

nameref在发出时,会对其命令进行大量重新定义\begin{document},以防加载这个或那个包。因此,我们必须在完成所有这些之后更改其定义。

输出

在此处输入图片描述

代码

\documentclass{article}

\usepackage{nameref}
\usepackage{xcolor}

\begin{document}
\makeatletter
\DeclareRobustCommand*{\nameref}{%
\color{red}%
        \@ifstar\T@nameref\T@nameref
        }%
\makeatother
\section{Section 1}\label{sct1}
Content of section 1.


\section{Section 2}\label{sct2}
Content of section 2.  Reference to \nameref{sct1}.

\end{document}

相关内容