自从 TeXLive 更新以来,无论是在 macOS 还是 Ubuntu 上(从 12.04 到 13.04),目录中的索引都无法正确引用。相反,索引的超链接指向参考书目。
很多问题都与索引的超链接问题有关,但由于我的问题似乎有些不同,所以我发布了一个新问题。我强调的是,这在 TeXlive 的旧版本(2010 年之前)下运行正常,这表明中间的一些修改导致了这个问题。
这是一个简单的例子:
\documentclass[a4paper]{report}
\usepackage{makeidx}
\usepackage{tocbibind}
\usepackage{hyperref}
\makeindex
\begin{document}
\tableofcontents
test\index{test}
\begin{thebibliography}{1}
\bibitem{test} Test, 2013.
\end{thebibliography}
\printindex
\end{document}
答案1
hyperref 补丁(在 中hypertex.def
)\@schapter
( 使用的命令\chapter*
)用于插入锚点等
\chapter*{blub}
\addcontentsline...
按需要工作并提供正确的链接。
但tocbibind
重新定义了索引,不使用\chapter*
或\@schapter
作为标题,而只使用\@makeschapterhead
和,因此缺少锚点。我认为它从来没有起作用。
您必须自己插入锚点:
\clearpage
\phantomsection
\printindex
\@schapter
或者使用像在这种情况下使用的 scrreprt 这样的类。
答案2
链接imakeidx
是正确的,但必须在它之前加载,否则它将覆盖通过使用正确的链接获取目录中的索引tocbibind
所做的更改。imakeidx
\documentclass[a4paper]{report}
\usepackage{tocbibind}
\usepackage{imakeidx}
\usepackage{hyperref}
\makeindex[intoc]
\begin{document}
\tableofcontents
test\index{test}
\begin{thebibliography}{1}
\bibitem{test} Test, 2013.
\end{thebibliography}
\printindex
\end{document}
答案3
这不是答案,只是此处格式更好的评论。Bibtex 不相关
\documentclass[a4paper]{report}
\usepackage{makeidx}
\usepackage{tocbibind}
\usepackage{hyperref}
\makeindex
\begin{document}
\tableofcontents
test\index{test}
\begin{thebibliography}{1}
\bibitem{test} Test, 2013.
\end{thebibliography}
\printindex
\end{document}
答案4
此问题同时存在于report
和book
类中,但article
类保持不变(因为其中未定义章节)。一个简单的解决方法是使用\clearpage, \phantomsection, \printindex
将索引条目(在目录中)链接到正确的页面,但链接似乎会系统地将您带到某个地方略低于索引页的标题 - 其与图表列表、表格列表、参考书目和所有部分单元的工作方式不同。
事实上,通过 KOMA 课程进行测试scrreprt
和scrbook
结果相同,即索引链接到正确的页面,但位置略有错误。正如所提到的埃格尔,使用imakeidx
来覆盖tocbibind
的设置可以完全解决问题,但是这表明tocbibind
包中存在错误,也许是\printindex
没有通过创建章节来加载。