当使用 hyperref 包时,Chapterbib 给出引用未定义和 [?],如何解决?

当使用 hyperref 包时,Chapterbib 给出引用未定义和 [?],如何解决?

我正在使用软件包hyperrefchapterbib。引用一直显示为[?],尽管我可以在auxbbl文件中找到正确的键。逐个排除软件包后,我发现当我\usepackage{hyperref}从软件包中删除时,我确实得到了正确的引用。

有没有办法同时使用这两个包?我是否遗漏了应该添加的包选项?


工作示例:

在主目录中,main.tex

\documentclass[10pt]{book} 
% comment out \usepackage{hyperref} to get [1] instead of [?]
\usepackage{hyperref} 
\usepackage{chapterbib} 
\begin{document}
\include{chapters/chapter1}
\end{document}

chapters/目录中,chapter1.tex

\chapter[Example]{Test}
test: \cite{albertRoleRegulatoryVariation2015}
\bibliographystyle{naturemag}
\bibliography{chapters/chapter1}

chapters/目录中,chapter1.bib

@article{albertRoleRegulatoryVariation2015,
  title = {The Role of Regulatory Variation in Complex Traits and Disease},
  author = {Albert, Frank W. and Kruglyak, Leonid},
  year = {2015},
  month = apr,
  volume = {16},
  pages = {197--212},
  issn = {1471-0064},
  doi = {10.1038/nrg3891},
  journal = {Nature Reviews Genetics},
}

构建pdflatex main.tex; bibtex chapters/chapter1; pdflatex main.tex; pdflatex main.tex

答案1

除极少数例外,该hyperref软件包必须是最后加载的软件包(因为它需要修补多个软件包)

在这种情况下,加载hyperrefchapterbib可以解决问题

相关内容