答案1
我无法弄清楚如何将章节与章节区别对待,即使参数 #1 包含“章节”或“节”(或“部分”或...)。字符串比较不起作用。如果您还想链接页码,请告诉我。
\documentclass{book}
\let\stdnumberline\numberline
\let\stdcontentsline\contentsline
\usepackage{hyperref}
\begin{document}
\renewcommand{\contentsline}[4]%
{\bgroup
\edef\anchorname{#4}
\def\numberline#1{\stdnumberline{\hyperlink{\anchorname}{#1}}}
\stdcontentsline{#1}{#2}{#3}
\egroup}
\tableofcontents
\chapter{One}
\section{First section}
\section{Second section}
\end{document}
答案2
\documentclass{article}
\usepackage[hidelinks, colorlinks=true, allcolors=blue,linktoc=page]{hyperref}
\usepackage{lipsum}
\makeatletter
\def\numberline#1{%
\ifx\Hy@tocdestname\ltx@empty
\hb@xt@\@tempdima{#1\hfil}%
\else
\hb@xt@\@tempdima{\hyper@linkstart{link}{\Hy@tocdestname}#1\hyper@linkend\hfil}%
\fi}
\makeatother
\begin{document}
\tableofcontents
\section{First}
\lipsum[66]
\subsection{First first}
\lipsum[66]
\section{Second}
\lipsum[66]
\subsection{Second second}
\lipsum[66]
\end{document}
答案3
设置超链接:
\usepackage{hyperref}
\hypersetup{linktoc = all}
将每个 \section、\subsection 等纳入目录,如下所示
\section[\textcolor{black}{NAME}]{NAME}
要以这种方式为您的文本着色,您将需要
\usepackage{xcolor}
目录中的文本在视觉上与普通文本没有区别,但仍是链接的一部分,即可点击。这是一个非常荒谬的黑客行为,因为选项应该,但不包含在 hyperref 中,例如
\hypersetup{linktoc = numpage}
点(如果包含在目录中)在任何情况下都不是链接的一部分,没有明显的自定义功能。Hyperref 还有改进的空间。