我将与和hyperref
结合使用,目的是以链接颜色排版(默认情况下似乎为红色),但以正常排版。nameref
cleveref
\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}