使用 chapterbib 和 natbib 时,自定义 hyperref 的 pagebackref 会损坏吗?

使用 chapterbib 和 natbib 时,自定义 hyperref 的 pagebackref 会损坏吗?

我正在写一篇长篇文档,其中我将章节放入单独的文件中,并且每个章节都有单独的参考书目,为此我使用chapterbibnatbib

我想自定义pagebackref的功能hyperref,如下所示这个问题。只要所有内容都在一个文件中,这种方法就很好,例如,

\documentclass{report}

\usepackage{natbib}
\usepackage[pdftex,backref,pagebackref]{hyperref}
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{%
 \ifcase #1
   (Not cited.)%
 \or 
   (Cited on page~#2.)%
 \else
   (Cited on pages~#2.)%
 \fi}

\bibliographystyle{chicago}    

\begin{document}

\chapter{Some stuff}
\cite{jdoe,jdough} 

\chapter{Some stuff}
\cite{jdoe}

\bibliography{refs} 

\end{document}

但是,一旦我将文档构建为单独的文件,就会遇到以下问题:

  • \backref如果我包含和的定制\backrefalt,参考文献中的页码总是显示为“(未引用)”。
  • 如果我注释掉自定义,页码就会正确显示。

这是MWE:

\documentclass{report}

\usepackage{chapterbib}
\usepackage[sectionbib]{natbib}
\usepackage[pdftex,backref,pagebackref]{hyperref}
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4]{%
\ifcase #1
  (Not cited.)%
\or 
  (Cited on page~#2.)%
\else
  (Cited on pages~#2.)%
\fi} 

\begin{document}

\include{chap1}
\include{chap2}

\end{document}

与 chap1.tex 类似:

\bibliographystyle{chicago}    
\chapter{Some stuff}
\cite{jdoe,jdough} 
\bibliography{refs} 

和 chap2.tex:

\bibliographystyle{chicago}    
\chapter{Some stuff}
\cite{jdoe}
\bibliography{refs}

我做错了什么吗?这是由于不兼容还是错误造成的?

相关内容