Подтвердить что ты не робот

LaTeX: библиография в каждой главе

Я помогаю коллеге со своей докторской диссертацией, и нам нужно представить библиографию в конце каждой главы.

Вопрос: У кого-нибудь есть минимальный рабочий пример для этого случая, используя латекс + 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
4b9b3361

Ответ 2

Это один из часто задаваемых вопросов TeX:

Отдельная библиография для каждой "главы" документа может быть предоставлена с пакетом chapterbib (который поставляется с кучей других полезных библиографических материалов). Пакет позволяет вам иметь различную библиографию для каждого \included файла (т.е. Несмотря на название пакетов, доступность библиографий связана с исходными файлами компонентов документа, а не с главами, которые логически структурируют документ). [...]