页面上跳转回目录的超链接指向错误的位置

页面上跳转回目录的超链接指向错误的位置

我尝试过解决方案如何将所有页码引用至目录?在每个页码处添加指向目录的链接。解决方案在页码处添加了链接,但指向文档的第一页,而不是目录。我使用的代码:

\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[CO]{\hyperref[toc-contents]{\thepage}}

\usepackage{blindtext}

\begin{document}
\frontmatter
Page 1 \newpage 
Page 2 \newpage

\label{toc-contents}
\tableofcontents

\mainmatter
\blinddocument

\end{document}

有什么帮助吗?

答案1

要将所有链接指向目录,请将标签附加到其标题。

还需要重新定义plain章节首页所使用的样式。

笔记。

(1)如何从所有页码到目录进行引用是不正确的。它之所以有效,只是因为它将目录作为文档的第一页,正如您已经发现的那样。

(2)为了测试此解决方案,请将其放在\tableofcontents前面\end{document}并编译两次。现在所有链接都会将您发送到页面 #5(最后一页)。

b

A

\documentclass{book}
\usepackage[utf8]{inputenc}

% ***********************************************************   
\usepackage{fancyhdr}   
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[C]{\hyperref[toc-contents]\thepage} % all pages <<<  

\fancypagestyle{plain}{%redefine \pagestyle{plain} to add the link <<<
    \fancyhf{} 
    \fancyfoot[C]{\hyperref[toc-contents]\thepage} 
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}
}%
    
\pagestyle{fancy}
\renewcommand{\contentsname}{Some title\label{toc-contents}} % label in TOC title<<<<
% ***********************************************************

\usepackage{blindtext}

\usepackage{hyperref} % last to load

\begin{document}
    \frontmatter
    Page 1 \newpage 
    Page 2 \newpage 
    
    \tableofcontents    
    \mainmatter
    \blinddocument
            
\end{document}

相关内容