为什么 hyperref 的 \hyperlink 和 \hyperref 以及 TOC 链接行为在第一章和其他章节中有所不同

为什么 hyperref 的 \hyperlink 和 \hyperref 以及 TOC 链接行为在第一章和其他章节中有所不同

为什么在下面的代码中,它们都没有\hyperlink\hyperref无论是明确的还是来自目录)转到第 1 章的页面顶部,但是它们都转到第 2 章的页面顶部?

\documentclass{book}
\usepackage{hyperref}


\begin{document}

\tableofcontents

\chapter{Chapter 1}%
\hypertarget{chapter1}{}%
\label{chapter1}%

Go \hyperlink{chapter1}{directly to chapter 1 via hyperlink}.

Go \hyperref[chapter1]{directly to chapter 1 via hyperref}.

\bigskip

Go directly to \hyperlink{chapter2}{chapter 2 from Chapter 1 via hyperlink}.

Go directly to \hyperref[chapter2]{chapter 2 from Chapter 1 via hyperref}.


\chapter{Chapter 2}%
\hypertarget{chapter2}{}%
\label{chapter2}

This is chapter 2.

Go \hyperlink{chapter1}{directly to chapter 1 via hyperlink}.

Go \hyperref[chapter1]{directly to chapter 1 via hyperref}.

\bigskip

Go directly to \hyperlink{chapter2}{chapter 2 from Chapter 2 via hyperlink}.

Go directly to \hyperref[chapter2]{chapter 2 from Chapter 2 via hyperref}.


\end{document}

答案1

\chapter{Chapter 1}%
\hypertarget{chapter1}{}%
\label{chapter1}%

\chapter自动设置锚点。此锚点用于:

  • 目录中的条目,
  • 书签,以及
  • 以下\label是通过 链接的\hyperref[...]

因此所有这些链接都指向章节标题的顶部。

另一方面\hypertarget设置一个新的锚点,它被称为: 章节标题。因此\hyperlink地址为 以下章节标题。由于章节标题和 之间没有分页符\hypertarget,因此位置仍然在同一页上。

引用 Ulrike Fischer 的话:“对我来说效果如预期”对我来说也适用,已使用 pdflatex、xelatex、latex/dvips/ps2pdf 进行了测试。您是否使用了其他驱动程序?软件包hyperref是否是最新的?也许您可以测试不同的 PDF 查看器(如果输出格式为 PDF)?

锚点位置

运行pdflatex,PDF文件的锚点位置(水平和垂直位置):

chapter.1: 106.869 668.127
chapter.2: 106.869 668.127
chapter1:  106.869 488.961
chapter2:  106.869 488.961

因此,第一章和第二章的相应锚点在页面上的位置完全相同。如果您的 PDF 文件中的锚点不同,请将文件放在某个位置以供下载。

相关内容