索引超链接未指向正确的页面

索引超链接未指向正确的页面

在下面的 MWE 中,索引页中的超链接不会将您带到包含索引的正确页面:

\documentclass{book}
\usepackage{lipsum, fancyhdr}

\usepackage{makeidx} 
\makeindex 

\usepackage{hyperref}
\hypersetup{hidelinks,backref=true,pagebackref=true,hyperindex=true,hypertexnames=false,colorlinks=false,breaklinks=true,bookmarks=true,bookmarksopen=false,pdftitle={Title},pdfauthor={Author}}

\begin{document}

\pagestyle{empty}
% pagestyle{plain}
\frontmatter

\lipsum[1]

\mainmatter
\pagestyle{fancy}

\chapter{1}
\section{1}
\lipsum
This is index ONE\index{One}
\newpage
This is index TWO\index{Two}


\backmatter
\pagestyle{empty}
%\pagestyle{plain}

\lipsum[1]

\cleardoublepage
\setlength{\columnsep}{0.75cm}
\addcontentsline{toc}{chapter}{Index}
\printindex

\end{document} 

如果您单击索引中的“2”,您将被带到第 ii 页,而不是索引所在的第 2 页。

您能否提供一个解决方案,以便您单击索引中的超链接时会被带到正确的页面?

答案1

我遇到了同样的问题,在 Index 中,显示了正确的页码,但 hyperref 指向前 3 页......

就我而言,我通过在\pagenumbering{roman}后面直接放置 来解决这个问题\begin{document}

\begin{document}
\pagenumbering{roman}

这似乎\makeindex直接获得了内部页码和超链接。

答案2

如果hypertexnames=false正确的索引链接也被禁用,则使用默认值true

选择breaklinks不是如果驱动程序不支持,则神奇地添加对跨行断开链接的支持。然后文本会跨行断开,但链接区域会完全错误。

PDF 信息键的数据应设置hyperref是通过 加载的\hypersetup。否则 LaTeX 将硬扩展值,结果可能是垃圾。

选项设置backref=truepagebackref=true是矛盾的。要么使用前者并附章节反向引用,要么使用后者并附页码反向引用。

另外,我还推荐bookmark可以更快更新书签的软件包。

相关内容