“\pageref” 给出的页码错误。是时候争论了!

“\pageref” 给出的页码错误。是时候争论了!

我知道这可以被视为重复问题。我来这里不是为了寻找解决方案。我问这个问题只是为了争论可靠性pageref。我的意思是,为什么这种故障如此频繁发生?这背后有什么技术问题吗?

我在排版时遇到了这个问题,在“first-latex-doc.zip”中找到的“latex-second-d.tex”文件来自一篇文章“first-latex-doc – 一份适合 LATEX 初学者的文档”https://ctan.org/pkg/first-latex-doc

当我们点击它时,它产生的不是 2,而是 3,但仍然显示“转到第 2 页”(如预期的那样),为什么?
代码如下:(我使用的是 TeXworks 版本 0.6.2)

\documentclass{article}
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{amsmath,amsthm,amssymb}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{lipsum}

\title{Test document}
\author{Your name \\ \url{[email protected]}}
\date{2009-Oct-12}
\begin{document}
\maketitle
\tableofcontents
\newpage

This is some preamble text that you enter 
yourself.\footnote{First footnote.}\footnote{Second footnote.}

\section{Text for the first section}
\lipsum[1]

\subsection{Text for a subsection of the first section}
\lipsum[2-3]
\label{labelone}

\subsection{Another subsection of the first section}
\lipsum[4-5]
\label{labeltwo}

\section{The second section}
\lipsum[6]

Refer again to \ref{labelone}.\cite{ConcreteMath}
Note also the discussion on page \pageref{labeltwo}

\subsection{Title of the first subsection of the second section}
\lipsum[7]

\begin{thebibliography}{9}
\bibitem{ConcreteMath}
Ronald L. Graham, Donald E. Knuth, and Oren Patashnik, 
\textit{Concrete mathematics}, 
Addison-Wesley, Reading, MA, 1995.
\end{thebibliography}
\end{document}

其输出内容如下:
在此处输入图片描述

答案1

该命令的\pageref行为与设计一致:它生成相应内容出现的页码\label,并且不是\refstepcounter上一个(在示例中由触发)出现的位置\subsection。如果您希望它生成后一个页码,请将其放置在紧接着命令\section

然而,这个hyperref包却把事情搞得一团糟。它使用不同的机制来实现其目标,因此它链接到的是子节,而不是发生事件的地方\label

如果您想要后者,您需要创建自己的超目标: \hypertarget{somename}{some contents}\label{labeltwo}

然后在引用的地方使用\hyperlink{somename}{\pageref*{labeltwo}}

相关内容