Я помогаю коллеге со своей докторской диссертацией, и нам нужно представить библиографию в конце каждой главы.
Вопрос: У кого-нибудь есть минимальный рабочий пример для этого случая, используя латекс + bibtex?
Текущая структура документа, которую мы используем, следующая:
main.tex
chap1.tex
chap2.tex
...
chapn.tex
biblio.bib
Где main.tex
содержит пакеты, декларации документов, макросы и \include
для каждой главы. biblio.bib
- это файл только bibtex (мне кажется, что все цитаты проще всего в одном месте).
Мы искали и пытались использовать разные латексные пакеты, читали и следили за их документацией. В частности, bibitems и chapterbib.
bibitems успешно генерирует файлы bu*.aux
, но при запуске bibtex для каждого из них возникает ошибка, так как в файле .aux
нет элемента \bibdata
.
chapterbib также генерирует файл .aux
, но bibtex заканчивается ошибкой, вызванной использованием нескольких \bibliography{file}
в файлах .tex
(по одному на главу).
Некоторые сотрудники предложили использовать отдельный файл бибтекса для каждой главы, что может быть проблемой обслуживания в будущем при цитировании тех же публикаций в разных главах.
Мы хотели бы продолжить эту структуру документа, если это возможно. Поэтому, если кто-то может пролить свет на эту проблему, мы будем этому благодарны.
Спасибо.
Обновление: обнаружено MWE Спасибо Хаби за помощь, вот рабочий пример:
С упомянутой выше структурой документа:
% 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