Hyperref - (name)ref 周围有边框,引用和目录条目周围无边框

Hyperref - (name)ref 周围有边框,引用和目录条目周围无边框

引用和参考文献都应该是可点击的。我希望链接(refs 和 namerefs)周围有可见的边框,而引用(cites)周围没有边框。然而,目录中不应该有任何边框。

\documentclass[a4paper]{book}
\usepackage[hyperfootnotes=false]{hyperref}
\hypersetup{colorlinks=false, linkbordercolor={1 0 1}, citebordercolor={1 1 0}} 
                                               %101 = pink,         110=yellow

\begin{document}
\chapter{Abc}
\cite{abc} a.k.a. \nameref{yoyo}

\tableofcontents

\begin{thebibliography}{99}
\bibitem{abc}
ABC.
\end{thebibliography}

\appendix
\chapter{yoyo}
\label{yoyo}

\end{document}

在上面的例子中,引用 #1 周围和目录中不应该有任何边框。

答案1

  • 选项hidelinks删除用于识别链接的光学元素(无颜色、边框)。它可以在本地给出,例如\tableofcontents,请参阅示例。

  • \cite比较困难。但可以重新定义它,并用 包装到一个组中\hypersetup{hidelinks}

  • 如果您加载包xcolor,那么的选项*bordercolor可以是颜色名称。

例子:

\documentclass[a4paper]{book}
\usepackage{xcolor}
\usepackage[hyperfootnotes=false]{hyperref}
\hypersetup{
  colorlinks=false,
  linkbordercolor={pink},
  % citebordercolor={yellow} % not needed
}

\usepackage{letltxmacro}
\makeatletter
\newcommand*{\org@cite}{}
\LetLtxMacro\org@cite\cite % because of optional argument
\renewcommand*{\cite}[2][]{%
  \begingroup
    \hypersetup{hidelinks}%
    \ifx\\#1\\%
      \org@cite{#2}%
    \else
      \org@cite[{#1}]{#2}%
    \fi
  \endgroup
}
\makeatother

\begin{document}
\chapter{Abc}
\cite{abc} a.k.a. \nameref{yoyo}

\begingroup
  \hypersetup{hidelinks}
  \tableofcontents
\endgroup

\begin{thebibliography}{99}
\bibitem{abc}
ABC.
\end{thebibliography}

\appendix
\chapter{yoyo}
\label{yoyo}

\end{document}

相关内容