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