我遇到了索引和超链接问题。索引中显示的页码是正确的,但单击它会重定向到 PDF 上的错误(物理)页面。我也在多个 PDF 查看器中尝试过。以下是 MWE:
\documentclass{book}
\usepackage{blindtext}
\usepackage{makeidx}
\makeindex
\usepackage{hyperref}
\begin{document}
Thesis Name
\cleardoublepage
\pagenumbering{roman}
University Name
\cleardoublepage
\tableofcontents
\cleardoublepage
\pagenumbering{arabic}
\chapter{Chapter Title}
\blindtext[5]
\section{A Long Section}
\blindtext[2]\\
Some Indexed Definition\index{definition!type one}\\
\blindtext[5]\\
Another Indexed Definition\index{definition!type two}\\
\blindtext[4]\\
\printindex
\end{document}
该问题与发布的问题相同这里。然而该解决方案对我不起作用:我尝试使用 \usepackage[hypertexnames=true]{hyperref}
,但问题仍然存在。
我知道这是因为这两个\pagenumbering{}
命令。事实上,如果我注释掉它们,页码和它指向的物理页面都可以正常工作。但让我困惑的是,这个makeidx
包知道正确的页码,但它似乎hyperref
不知道!
同样的事情发生在参考书目中,并将backref=page
选项添加到hyperref
包中(未在 MWE 中显示)。
任何有关此事的帮助都将不胜感激。干杯!
答案1
问题出在前两页\pagenumbering{roman}
。通常,(内部)卷首插图的编号与前页相同。
如果你坚持在“论文名称”之后开始编号,请发出
\pagenumbering{Alph}
\pagestyle{empty}
开始 ,然后 恢复\pagestyle{headings}
,\frontmatter
这比 发行 更好\cleardoublepage\pagenumbering{roman}
。
\documentclass{book}
\usepackage{blindtext}
\usepackage{makeidx}
\makeindex
\usepackage{hyperref}
\begin{document}
\pagenumbering{Alph}
\pagestyle{empty}
Thesis Name
\frontmatter
\pagestyle{headings}
University Name
\tableofcontents
\mainmatter
\chapter{Chapter Title}
\blindtext[5]
\section{A Long Section}
\blindtext[2]
Some Indexed Definition\index{definition!type one}
\blindtext[5]
Another Indexed Definition\index{definition!type two}
\blindtext[4]
\printindex
\end{document}