我有一个项目,要求为每一章维护单独的参考书目,并且参考文献出现在每章的末尾。我正在使用natbib
并且我知道我应该使用
\usepackage{natbib}
\usepackage{chapterbib}
但我的目录结构有问题(我认为)。这是我的结构
Main directory
book.tex
abbr.bib (this incluses @string abbreviation definitions for journal names)
ch1-directory
ch1.tex
ch1.bib
ch2-directory
...
我的文件内容的一个最小示例book.tex
如下:
\documentclass{book}
\usepackage[square,sort]{natbib}
\usepackage{chapterbib}
\begin{document}
\include{ch1-directory/ch1}
\end{document}
我的ch1.tex
文件最后有以下内容:
\bibliographystyle{plainnat}
\bibliography{../abbr,ch01}
使用 Bibtex 处理该book.tex
文件会出现两个错误:
I couldn't open database file ../publications.bib
---line 15 of file ch-1/ch01.aux
: \bibdata{../abbr
: ,ch01}
I'm skipping whatever remains of this command
I found no database files---while reading file book.aux
Warning--I didn't find a database entry for "Luhn:1958fk"
Warning--I didn't find a database entry for "Bertossi:2011uq"
Warning--I didn't find a database entry for "Deutch:2012kx"
Warning--I didn't find a database entry for "Carenini:2011vn"
Warning--I didn't find a database entry for "Armbrust:2010ys"
我不知道我做错了什么。我确实在这里找到了关于将参考资料放在章节末尾的其他讨论,但它们没有我所拥有的嵌套目录结构,这似乎是主要问题。
答案1
您是否考虑过使用 biblatex 来代替 natbib 和 chapterbib?Biblatex 负责格式化、排序和按章节划分参考书目。我在我的一本书中使用了它,其中我也使用了每章参考书目。我序言中的相应条款是
\usepackage[firstinits=true,
bibencoding=inputenc,
hyperref=auto,
pagination=none,
%style=standard,
refsection=chapter]
{biblatex}
如果我没记错的话,有一个
style=natbib
模拟 natbib 包的格式样式的选项。
答案2
来自chapterbib
手册
每个包含的文件都应该有自己的
\bibliographystyle
和\bibliography
命令,并且您应该在每个包含的文件上单独运行 bibtex,而不是在主文件或根文件上运行。