超链接到目录页面

超链接到目录页面

我想要指向目录页面的超链接。(在我的 MWE 中,链接位于章节标题中,但这对此处的讨论没有影响)。我的 MWE:

\documentclass{article}
\usepackage{hyperref}
\usepackage{blindtext}

\let\oldtableofcontents\tableofcontents
\renewcommand{\tableofcontents}[0]{\label{toc}\oldtableofcontents}

\begin{document}
First page\newpage
\tableofcontents\newpage

\section{Premier. Go to \hyperref[toc]{toc}}
\blindtext  \blindtext  
\section{deuxieme. Go to \hyperref[toc]{toc}}
\blindtext  \blindtext  
\section{Troisieme. Go to \hyperref[toc]{toc}}
\blindtext  \blindtext  
\end{document}

它只能部分工作:链接在那里,但如果我点击它们,它会转到“首页”,而不是目录页。我重新定义了\tableofcontents,以便在前面放置一个标签\tableofcontents,但我猜这是问题所在。在原始命令中\tableofcontents,必须在开头进行一些初始化,如\newpage或类似,这会导致问题。

答案1

使用\hypertarget\hyperlink放置目标并链接到它们。您可以使用\addtocontents将写入\hypertarget.toc 文件。

\documentclass{article}
\usepackage{hyperref}
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
First page\newpage
\addtocontents{toc}{\protect\hypertarget{toc}{}}
\tableofcontents\newpage
\section[Premier]{Premier. Go to \hyperlink{toc}{toc}}
\blindtext  \blindtext  
\section[Deuxieme]{Deuxieme. Go to \hyperlink{toc}{toc}}
\blindtext  \blindtext  
\section[Troisieme]{Troisieme. Go to \hyperlink{toc}{toc}}
\blindtext  \blindtext  
\end{document}

或者,更好的是,\hypertarget直接放置在 之前\tableofcontents,但\clearpage先制作。

\clearpage
\hypertarget{toc}{}
\tableofcontents

这确保链接位于内容标题上方。此\addtocontents方法将目标置于标题下方。

相关内容