这与之前的问题类似,但我无法使用他们的答案找到解决方法。下面的 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
包,它有一个选项,可以在“全局”参考列表中列出“本地”引用。
加载
bibunits
globalcitecopy
以添加条目到全球的书目也是如此。如果您对所有单元使用相同的.bib
文件和相同的书目样式,则可以使用\defaultbibliography{...}
和\defaultbibliographystyle{...}
来指定它们。使用
\bibliographyunit[\chapter]
将每个文件激活\chapter
为本地书目单元。在\include
包含章节的每个文件中,使用\putbib
插入本地书目/参考列表。对于根文件中的“全局”书目
Thesis.tex
:使用通常的\bibliographystyle{...}
和\bibliography{...}
。
这是示例Thesis.tex
和chapter1.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 声明,那么这可能会很有用...如果这有效的话。