如何使用 \ref 链接到文档文本中的参考书目章节?

如何使用 \ref 链接到文档文本中的参考书目章节?

我有一个项目,其中有一个参考书目,我已使用 将其包含在目录中tocbibind。在我的报告中,我有一个部分详细介绍了报告的结构,我提到了其中的每一章,但我无法引用参考书目,因为链接指向上一节。请参阅示例代码:

\documentclass[a4paper, 12pt]{report}
\usepackage[nottoc,numbib]{tocbibind}

\begin{document}
\tableofcontents
\chapter{first chapter}\label{chap:one}
first we have \ref{chap:one} then \ref{chap:two} followed by \ref{chap:bib}

\chapter{second chapter}\label{chap:two}

\bibliography{references}{}\label{chap:bib}
\bibliographystyle{ieeetran}

\end{document}

由于参考书目不是真正的章节,因此指向\ref{chap:bib}第二章,我如何链接或在文本中引用它?

答案1

由于\bibliography读取文件时会包含

\begin{thebibliography}{<number>}
<contents>
\end{bibliography}

并且该\chapter命令出现在包围环境的组内,\label之后的设置\bibliography{references}无效,因为的值\@currentlabel已被遗忘,并且您得到的是前一个值(在示例中是与第二章相关的值)。

然而,执行numbib的选项tocbibind

\chapter{\tocbibname}

因此我们只需添加\label{chap:bib}到宏中\tocbibname

\documentclass[a4paper, 12pt]{report}
\usepackage[nottoc,numbib]{tocbibind}

\usepackage{etoolbox}
\appto{\tocbibname}{\label{chap:bib}}
%% or just \renewcommand{\tocbibname}{Bibliography\label{chap:bib}}

\begin{document}

\tableofcontents
\chapter{first chapter}\label{chap:one}
first we have \ref{chap:one} then \ref{chap:two} followed by \ref{chap:bib}

\chapter{second chapter}\label{chap:two}

\nocite{*}

\bibliography{references}
\bibliographystyle{IEEEtran}

\end{document}

这也将完美地发挥作用hyperref

请注意,{}after\bibliography{references}是多余的,并且样式的名称是IEEEtran(在不区分大小写的系统上它可能是等效的,但并非所有系统都是如此)。

相关内容