2010-05-04 4 views
26

J'aide un collègue avec sa thèse de doctorat et nous devons présenter la bibliographie à la fin de chaque chapitre.LaTeX: bibliographie par chapitre

La question est: Quelqu'un at-il un exemple de travail minimal pour ce cas en utilisant latex + bibtex?

La structure actuelle du document que nous utilisons est la suivante:

main.tex 
chap1.tex 
chap2.tex 
... 
chapn.tex 
biblio.bib 

main.tex contient des packages, des déclarations de documents, les macros et \include s pour chaque chapitre. biblio.bib est le seul fichier bibtex (je pense qu'il est plus facile d'avoir toutes les citations en un seul endroit).

Nous avons cherché et essayé avec différents paquets de latex, en lisant et en suivant leur documentation. Plus précisément, bibitems et chapterbib.

bibitems génère avec succès bu*.aux fichiers, mais lors de l'exécution bibtex de chacun d'eux, une erreur se produit car il n'y a aucun élément dans le fichier \bibdata.aux. Chapterbib génère aussi un fichier .aux, mais bibtex se termine avec une erreur causée par l'utilisation de plusieurs fichiers \bibliography{file} dans les fichiers .tex (un par chapitre). Certains collègues ont suggéré d'utiliser un fichier bibtex distinct pour chaque chapitre, ce qui pourrait poser un problème de maintenance à l'avenir en citant les mêmes publications dans différents chapitres.

Nous aimerions continuer à avoir cette structure de document, si possible. Donc, si quelqu'un pouvait faire la lumière sur ce problème, nous l'apprécierons.

Merci.


Mise à jour: MWE trouvé Merci à Habi pour l'aide, voici un exemple de travail:

Avec la structure du document mentionné ci-dessus:

% 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} 
} 

Enfin, pour générer la document:

#!/bin/bash 
latex main.tex 
for auxfile in chap*.aux 
do 
    bibtex `basename $auxfile .aux` 
done 
latex main.tex 
latex main.tex 
+0

Si vous souhaitez créer un exemple de travail, je crois que ce genre de choses est construit pour TeXnicCenter, un IDE fenêtres pour les documents TeX. –

+0

Le problème de chapterbib pourrait être résolu en mettant uniquement une \ bibliography dans main.tex, n'est-ce pas? –

+2

Je jurerais que nous avons fait cela avant ... et après * beaucoup * de recherche, je trouve http://stackoverflow.com/questions/2503555/using-latex-how-can-i-have-a-list- de-références-à-la-fin-de-chaque-section. Ouf.Aucune honte à l'OP pour ne pas trouver * ce * double. – dmckee

Répondre

11

il y a quelque temps que j'ai rapidement griffonné quelques notes sur chapterbib. Est-ce qu'ils vous aident?

http://wiki.davidhaberthuer.ch/latex#chapterbib

+0

Oui, cela m'a aidé, bien que la commande bibtex ne devrait pas utiliser l'extension '.aux'. Je vais mettre à jour la question pour fournir le MWE. – YuppieNetworking

+0

merci pour le heads-up. J'ai mis à jour mes notes :) – Habi

+0

Ce lien ne fonctionne plus – Addman

Questions connexes