我在使用 LaTeX 时遇到了一个小问题\pageref{}
。我有一个相当大的文档,在结尾处我指向文本中的特定页面。使用hyperref
,链接跳转到文档的正确部分,但实际页码不正确。
这与这个问题有点类似(但有点相反):
我在那里实现了解决方案(\refstepcounter{dummy}
),但无济于事。\pageref
s 的目标通常是文本。 一个这样的例子是:
...these\refstepcounter{dummy}\label{s82:rclass} classifications are....
后来引用:
\S\ref{s82:richness}, p.\pageref{s82:rclass}
其中第一个引用是文本所在的部分。除了之外,我还使用以下内容(如果有帮助的话)hyperref
:
\documentclass[11pt]{book}
\usepackage[round]{natbib}
我应该注意到,这在文档开头时是可以正常工作的(我引用的是向前而不是向后,尽管我不确定这是否重要)。话虽如此,当我尝试在同一章中向前引用时,它也不起作用(文档是一篇论文)
非常感谢您的帮助。我想添加一个最小的工作示例,但对于我测试的小文档,引用工作正常。不过,我很想征求有关问题可能出在哪里的建议。
答案1
我认为你做了明显的检查:
- 没有重新运行以获取正确的交叉引用在日志文件中,
- 并且没有关于重复标签的警告。
你使用\pagenumbering{..}
? 吗?(它应该仍然有效)。按照指示重新运行 LaTeX。理论上,你可能永远无法达到固定点,但这种情况不太可能发生。我不确定,但最多运行三次pdflatex
就bibtex
足够了。
答案2
多年来我发现的标准问题是人们不了解标准 latex\label
命令的范围,并且必须运行 2 次(或更多次)才能正确执行。下图是我用来向刚接触 latex 的人解释范围的图。也许可以把类似这样的内容放在 FAQ 或 Wiki 中