hyperref 与 backref=page 选项

hyperref 与 backref=page 选项

我在将backref=pagehyperref 包的选项与带有选项的 natbib 包一起使用时遇到了一个问题square,sort&compress,numbers
如果 natbib 包压缩了一系列引用,则中间引用在编译后不会显示反向引用(latex、bibtex、latex、latex)。

请参阅以下简短示例:

\documentclass{article}  
\usepackage[square,sort&compress,numbers]{natbib}  
\usepackage[backref=page]{hyperref}

\begin{document}  
\cite{foo,bar,hole}

\begin{thebibliography}{ab}  
\bibitem{foo} foo

\bibitem{bar} bar

\bibitem{hole} hole

\end{thebibliography}  
\end{document}

答案1

对 natbib.sty 进行以下修补:

--- natbib.sty.old 2009-07-23 10:44:10.000000000 -0400
+++ natbib.sty  2009-11-01 17:07:53.309765500 -0500
@@ -408,6 +408,7 @@
         \@ifnum{\NAT@nm=\@tempcnta}{%
          \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}%
         }{%
+           \Hy@backout{\@citeb\@extra@b@citeb}%
           \advance\@tempcnta by\@ne
           \@ifnum{\NAT@nm=\@tempcnta}{%
             \ifx\NAT@last@yr\relax

我已经向 hyperref 和 natbib 的作者报告了这个问题。Heiko(hyperref 的作者)希望在 natbib 中修复这个问题,因为这个问题在 natbib 代码中埋得太深了,他不太愿意修补它。Patrick(natbib 的作者)还没有回复我的电子邮件……

答案2

这是超纳特包含 Lev Bishop 补丁的软件包回答

\usepackage{hypernat} 

你应该表现得很好。

答案3

删除辅助文件。抑制该选项sort&compress,然后根据需要多次编译文档,以生成带有反向引用的引文;然后添加该sort&compress选项并再次编译以对引文列表进行排序和压缩。

相关内容