![导航中的索引链接不正确](https://linux22.com/image/251111/%E5%AF%BC%E8%88%AA%E4%B8%AD%E7%9A%84%E7%B4%A2%E5%BC%95%E9%93%BE%E6%8E%A5%E4%B8%8D%E6%AD%A3%E7%A1%AE.png)
我在使索引在文档的 pdf 预览中可见时遇到了麻烦。也就是说,以下是我的主 .tex 文件的结尾:
% Bibliography
% =================================================================
\bibliographystyle{plainnat}
\bibliography{refs}
\addcontentsline{toc}{chapter}{Bibliography}
% =================================================================
\printindex
\addcontentsline{toc}{chapter}{Index}
这确实在导航中显示了 Index,但它实际上指向了参考书目。交换 \printindex 和 \addcontentsline 的位置会将 Index 从导航中删除。我如何才能实现对 Index 的精确导航?
答案1
当 LaTeX 看到你的\addcontentsline
命令时,它已经完成了索引的排版。因此,如果索引超过一页,对页码的引用将是错误的。请
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{\indexname}
\printindex
或者尝试自动添加条目的包tocbibind
(也适用于参考书目,并且默认情况下,还适用于目录本身):
\usepackage[nottoc]{tocbibind} % nottoc will exclude the toc
或者你可以使用
\usepackage{imakeidx}
\makeindex[intoc]
而不是\usepackage{makeidx}\makeindex
。这也会平衡索引中的最后一页。记得hyperref
在 之后调用imakeidx
。