使用 natbib 和 chapterbib 的多个参考书目:“BibTeX Illegal”错误

使用 natbib 和 chapterbib 的多个参考书目:“BibTeX Illegal”错误

这与之前的问题类似,但我无法使用他们的答案找到解决方法。下面的 MWE 代码。natbib使用 Overleaf,我想使用包和样式在每章末尾添加一个参考书目,并在末尾添加一个连贯的参考书目plainnat。编译时,我得到了预期的结果,但也出现了以下错误:

在此处输入图片描述

(要复制的文本:“BibTeX 非法,另一个 \bibstyle 命令:\bibstyle:{plainnat}”,“BibTeX 非法,另一个 \bibdata 命令:\bibdata:{References}”)

即使输出是我想要的,我还是喜欢对我的代码一丝不苟,并尽可能处理任何错误。我已经清除了缓存文件并刷新了。我的最小工作示例代码是:

第一章.tex

\chapter{Title}

Content, including a reference \citep{solopova2014bet}.

\bibliographystyle{plainnat}
\bibliography{References}

第二章.tex

\chapter{Title}

Content, including a reference \citep{godin2010using}.

\bibliographystyle{plainnat}
\bibliography{References}

参考文献.bib

@article{solopova2014bet,
  title={Bet-hedging during bacterial diauxic shift},
  author={Solopova, Ana and van Gestel, Jordi and Weissing, Franz J and Bachmann, Herwig and Teusink, Bas and Kok, Jan and Kuipers, Oscar P},
  journal={Proceedings of the National Academy of Sciences},
  volume={111},
  number={20},
  pages={7427--7432},
  year={2014},
  publisher={National Acad Sciences}
}

@article{godin2010using,
  title={Using buoyant mass to measure the growth of single cells},
  author={Godin, Michel and Delgado, Francisco Feij{\'o} and Son, Sungmin and Grover, William H and Bryan, Andrea K and Tzur, Amit and Jorgensen, Paul and Payer, Kris and Grossman, Alan D and Kirschner, Marc W and others},
  journal={Nature methods},
  volume={7},
  number={5},
  pages={387--390},
  year={2010},
  publisher={Nature Publishing Group}
}

论文.tex

\documentclass{report}

\usepackage{natbib}
\usepackage{chapterbib}

\begin{document}

\include{chapter1}
\include{chapter2}

\bibliography{References}

\end{document}

答案1

[免责声明:我是 Overleaf 的支持人员。]

这并非 Overleaf 所特有的;在本地计算机上编译 MWE 文件也会产生相同的错误消息。使用时chapterbib,通常没有“全局参考书目”,因此\bibliography{References}Thesis.tex 中的 会导致问题:请参阅“使用、限制和选项”部分中的第 2 项chapterbib包装文档

您可能想要使用该bibunits包,它有一个选项,可以在“全局”参考列表中列出“本地”引用。

  1. 加载bibunitsglobalcitecopy以添加条目到全球的书目也是如此。如果您对所有单元使用相同的.bib文件和相同的书目样式,则可以使用\defaultbibliography{...}\defaultbibliographystyle{...}来指定它们。

  2. 使用\bibliographyunit[\chapter]将每个文件激活\chapter为本地书目单元。在\include包含章节的每个文件中,使用\putbib插入本地书目/参考列表。

  3. 对于根文件中的“全局”书目Thesis.tex:使用通常的\bibliographystyle{...}\bibliography{...}

这是示例Thesis.texchapter1.tex文件(chapter2.tex类似)。

论文.tex

\documentclass{report}

\usepackage[sectionbib]{natbib}
\usepackage[globalcitecopy]{bibunits}
\defaultbibliographystyle{plainnat}
\defaultbibliography{References}

\begin{document}
\bibliographyunit[\chapter]

\include{chapter1}
\include{chapter2}

\bibliographystyle{plainnat}
\bibliography{References}

\end{document}

chapter1.tex(类似 chapter2.tex)

\chapter{Title}

Content, including a reference \citep{solopova2014bet}.

\putbib

答案2

这在章节用法的第 7 项中进行了讨论,建议使用

\usepackage[rootbib]{chapterbib}

第一次运行 latex+bibtex 时,如果 bibtex 的错误/警告消息有问题。

我不知道 Overleaf 在构建过程中使用了什么,但我记得 latexmk 曾经或曾经遇到过错误。从 4.70a 版开始,latexmk 应该可以处理它。

嗯。如果 chapterbib 直接从 latex 命令行接受“rootbib”选项,而不是在命令行中放置 pass-options-to-package 声明,那么这可能会很有用...如果这有效的话。

相关内容