我想要的是禁用\hypersetup{hidelinks}
。我可以在组内使用它,但这不是一个好主意。这是一个 MWE。
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\tableofcontents
{\hypersetup{hidelinks}
\section{bla}\label{aa} link text and anchore are hidden \ref{bb}}
\section{bla}\label{bb} here back to defaut \ref{aa}
But what I want is
\hypersetup{hidelinks}
\section{bla}\label{cc} link text and anchore are hidden \ref{dd}
%some thing like
%\hypersetup{hidelinks=off }
\section{bla}\label{dd} here back to defaut \ref{cc}
\end{document}
答案1
使用风险自负:
\documentclass{article}
\usepackage[colorlinks]{hyperref}
\makeatletter
\newif\ifhidelinks@hidelinks
\newcommand{\hidelinks}{%
\hidelinks@hidelinkstrue
\let\hidelinks@ifHy@colorlinks@status\ifHy@colorlinks
\let\hidelinks@ifHy@ocgcolorlinks@status\ifHy@ocgcolorlinks
\let\hidelinks@ifHy@frenchlinks@status\ifHy@frenchlinks
\let\hidelinks@Hy@colorlink\Hy@colorlink
\let\hidelinks@Hy@endcolorlink\Hy@endcolorlink
\let\hidelinks@@pdfborder\@pdfborder
\let\hidelinks@@pdfborderstyle\@pdfborderstyle
\hypersetup{hidelinks}%
}
\newcommand{\restorelinks}{%
\ifhidelinks@hidelinks
\hidelinks@hidelinksfalse
\let\ifHy@colorlinks\hidelinks@ifHy@colorlinks@status
\let\ifHy@ocgcolorlinks\hidelinks@ifHy@ocgcolorlinks@status
\let\ifHy@frenchlinks\hidelinks@ifHy@frenchlinks@status
\let\Hy@colorlink\hidelinks@Hy@colorlink
\let\Hy@endcolorlink\hidelinks@Hy@endcolorlink
\let\@pdfborder\hidelinks@@pdfborder
\let\@pdfborderstyle\hidelinks@@pdfborderstyle
\fi
}
\makeatother
\begin{document}
\tableofcontents
\hidelinks
\section{bla}\label{cc} link text and anchore are hidden \ref{dd}
\restorelinks
\section{bla}\label{dd} here back to defaut \ref{cc}
\end{document}
我以前colorlinks
可以更好地显示链接。如果命令之前曾在同一分组级别出现过\restorelinks
,则将恢复到以前的情况,否则它什么也不做。\hidelinks