我将课程的每一章book
放在不同的文件中,并将它们链接到主文件中。我的refs.bib
文件中还有参考书目和索引。我试图创建对书中参考书目和索引特殊章节的交叉引用。
\usepackage{natbib}
\renewcommand\bibname{References}
\bibliographystyle{unsrt}
\bibliography{./tex/refs}
\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Index}
\printindex
在我的介绍中,我想总结一下我的内容,我说:“第 1 章描述了某某,第 2 章……等等。本书的末尾还包含参考文献列表,您可以通过单击方括号中的数字链接到该列表。本书的最后包含一个索引,通过单击概念可以轻松找到概念和关键词,这将带您到书中描述该概念的地方。”
我一直在努力寻找一种方法来提供参考书目和索引的交叉引用链接。我知道如何使用该\label
命令,并且没有任何问题。但我不知道在哪里或如何将\label
命令放在上述特殊章节中。
我曾尝试过这样的标签:
\bibliography{./tex/refs}\label{cha:refs}
\addcontentsline{toc}{chapter}{Index}\label{cha:index}
但这似乎输入了错误的参考编号——两个链接都显示了结论章节的编号,但每个链接实际上都正确地将我带到了每个伪章节!
有人可以建议吗
- 如果这是正确的做法
- 如果是的话,我该如何显示正确的数字,或者理想情况下将参考文献和索引显示为链接本身,这样我就不会通过为目录中没有数字的章节提供数字而让读者感到困惑?
答案1
一种可能的解决方案是使用提供的工具来etoolbox
修补\bibliography
和\printindex
命令。hyperref
您可以使用类似以下方法:
\documentclass{book}
\usepackage{natbib}
\usepackage{makeidx}
\usepackage{hyperref}
\usepackage{etoolbox}
\patchcmd{\thebibliography}{\list}{\label{bib}\list}{}{}
\appto{\theindex}{\phantomsection\label{idx}}
\makeindex
\begin{document}
Test: \hyperref[bib]{bibliography} starting at page \pageref{bib}, and
\hyperref[idx]{Index} starting at page \pageref{idx}
test\index{test}
\nocite{*}
\bibliographystyle{<bibstyle>}
\bibliography{<bibfile(s)>}
\printindex
\end{document}
答案2
\hyperref
对我来说,直接使用\addcontentsline
。例如,我想添加 介绍进入目录,我们只需这样做:\addcontentsline{toc}{chapter}{\hyperref[chap:Introduction]{Introduction}}
。chap:Introduction
是特定章节的标签名称,Introduction
是自定义标签。
\documentclass{book}
\usepackage{hyperref}
\begin{document}
\chapter*{Introduction}
\label{chap:Introduction}
\tableofcontents
\addcontentsline{toc}{chapter}{\hyperref[chap:Introduction]{Introduction}}
\end{document}