32

我正在帮助一位同事完成他的博士论文,我们需要在每章的末尾展示参考书目。

问题是:在这种情况下,有没有人有一个使用latex+bibtex 的最小工作示例?

我们使用的当前文档结构如下:

main.tex
chap1.tex
chap2.tex
...
chapn.tex
biblio.bib

其中main.tex包含每章的包、文档声明、宏和\includes。biblio.bib唯一的bibtex 文件(我认为将所有引文放在一个地方更容易)。

我们已经搜索并尝试了不同的乳胶包,阅读并遵循他们的文档。具体来说,bibitems 和 chapterbib。

bibitems 成功生成bu*.aux文件,但是在为每个文件运行 bibtex 时,由于文件中没有\bibdata元素而发生错误.aux

chapterbib 也会生成一个文件,但 bibtex 以在文件中使用多个(每章一个).aux导致的错误结束。\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}
}

最后,生成文档:

#!/bin/bash
latex main.tex
for auxfile in chap*.aux
do
    bibtex `basename $auxfile .aux`
done
latex main.tex
latex main.tex
4

2 回答 2

12

前段时间我快速记下了关于chapterbib的一些笔记。他们帮助你吗?

http://wiki.davidhaberthuer.ch/latex#chapterbib

于 2010-05-04T13:24:46.637 回答
2

那是一个TeX 常见问题解答项目

可以为文档的每个“章节”提供一个单独的参考书目chapterbib(附带一堆其他好的参考书目)。该包允许您为每个\included文件使用不同的参考书目(即,尽管包的名称,参考书目的可用性与文档的组件源文件有关,而不是与逻辑结构文档的章节有关)。[...]

于 2010-05-04T12:36:42.280 回答