我正在帮助一位同事获得博士论文,我们需要在每章末尾提供参考书目.
问题是:有没有人使用latex + bibtex这个案例的最小工作示例?
我们使用的当前文档结构如下:
main.tex
chap1.tex
chap2.tex
...
chapn.tex
biblio.bib
Run Code Online (Sandbox Code Playgroud)
其中main.tex
包含\include
每章的包,文档声明,宏和s.biblio.bib
是唯一的 bibtex文件(我认为在一个地方更容易引用所有引用).
我们搜索并尝试了不同的乳胶包装,阅读和遵循他们的文档.具体来说,bibitems和chapterbib.
bibitems成功生成bu*.aux
文件,但是当为每一个文件运行bibtex时,由于文件中没有\bibdata
元素,因此会发生错误.aux
.
chapterbib也会生成一个.aux
文件,但是bibtex会\bibliography{file}
因.tex
文件中使用多个错误而导致错误(每章一个).
一些同事建议为每一章使用单独的bibtex文件,这可能是将来引用不同章节中相同出版物时的维护问题.
如果可能,我们希望继续使用此文档结构.所以,如果有人能够解决这个问题,我们将不胜感激.
谢谢.
更新:发现MWE 感谢Habi的帮助,这是一个有效的例子:
使用上面提到的文档结构:
% main.tex
\documentclass{report}
\usepackage{url}
\usepackage{natbib}
\usepackage{chapterbib}
\begin{document}
\include{chap1}
\include{chap2}
% other chapters ...
\end{document}
% chap1.tex
\chapter{one chapter}
text~\cite{paper1}
text~\cite{paper2}
% don't forget:
\bibliographystyle{plainnat}
\bibliography{biblio}
% chap2.tex
\chapter{another chapter}
text~\cite{paper2, paper3}
% don't forget, again:
\bibliographystyle{plainnat}
\bibliography{biblio}
% biblio.bib
@Article{paper1,
author = {John Smith},
title = {A title},
journal = {A Journal},
year = {2010}
}
@Article{paper2,
author = {John Doe},
title = {A paper},
journal = {Another journal},
year = {2009}
}
@Article{paper3,
author = {Yuppie Networking},
title = {My paper},
journal = {The best journal},
year = {2000}
}
Run Code Online (Sandbox Code Playgroud)
最后,生成文档:
#!/bin/bash
latex main.tex
for auxfile in chap*.aux
do
bibtex `basename $auxfile .aux`
done
latex main.tex
latex main.tex
Run Code Online (Sandbox Code Playgroud)
那是TeX FAQ 项目:
\n\n\n\n文档的每个 \xe2\x80\x9cchapter\xe2\x80\x9d 的单独参考书目可以随软件包一起提供
\nchapterbib
(它附带了一堆其他好的参考书目)。该包允许您为每个文件使用不同的参考书目\\included
(即,尽管包名\xe2\x80\x99s\n,参考书目的可用性与文档的组件\n 源文件相关,而不是与该文档的章节相关。 \n 逻辑地构建文档)。\n [...]