Я помогаю коллеге с его диссертацией, и мы должны представить библиографию в конце каждой главы.
Вопрос: у кого-либо есть минимальный рабочий пример для этого случая с помощью latex+bibtex?
Структура текущего документа, которую мы используем, следующая:
main.tex
chap1.tex
chap2.tex
...
chapn.tex
biblio.bib
Где main.tex
содержит пакеты, объявления документа, макросы и \include
s для каждой главы. biblio.bib
единственный bibtex файл (я думаю, легче иметь все цитаты в одном месте).
Мы искали и попробовали различными латексными пакетами, читая и после их документации. А именно, bibitems и chapterbib.
bibitems успешно генерирует bu*.aux
файлы, но при выполнении bibtex для каждого из них, ошибка происходит, так как существует нет \bibdata
элемент в .aux
файл.
chapterbib также генерирует a .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}
}
Наконец, для генерации документа:
#!/bin/bash
latex main.tex
for auxfile in chap*.aux
do
bibtex `basename $auxfile .aux`
done
latex main.tex
latex main.tex
Некоторое время назад я быстро записал несколько заметок о chapterbib. они вам помогают?
Это пункт TeX FAQ :
Отдельная библиография для каждой «главы» документа может быть предоставлен с пакетом
chapterbib
(который включает в себя множество других хороших библиографических вещей). Пакет позволяет вам различную библиографию для каждого файла\ included
(т. Е., Несмотря на имя пакета , доступность библиографий связана с компонентом исходные файлы документа, а не главы, которые логически структурируют документ). [...]