我知道这可以被视为重复问题。我来这里不是为了寻找解决方案。我问这个问题只是为了争论可靠性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}}
。