Comment gérer plusieurs bibliographies ?
* Le package 'chapterbib' permet d'inclure une bibliographie
par chapitre. Il est disponible sur
ftp://ftp.inria.fr/pub/TeX/CTAN/macros/latex/contrib/cite/. Les bibliographies
réparties peuvent alors apparaître comme section de ce chapitre
grâce à la commande : \usepackage[sectionbib]{chapterbib}.
* Le package 'bibunits', de A. Fernandez, permet de partager une
bibliographie en plusieurs unités, chacune attenante à une
section, ou à un chapitre d'un article ou d'un livre donné.
Exemple :
////////////// fichier rapport.tex /////////////
\documentclass[a4paper]{report}
\usepackage{bibunits}
\usepackage{french}
\begin{document}
\chapter{Algorithmes.}
Présentation d'algorithmes.
\nocite*
\bibliographystyle{alpha}
\bibliography{alg}
\chapter{Géométrie.}
Texte sur la géométrie.
\nocite*
\bibliographystyle{plain}
\bibliography{geom}
\end{document}
////////////// fichier alg.bib /////////////
@UNPUBLISHED{algg,
author = MPK,
title = Algorithmes et rythmes,
note = RAS,
}
////////////// fichier geom.bib /////////////
@INBOOK{geomm,
author = Me again,
title = Principes de géométrie,
chapter = Les droites,
publisher = Home publishing,
year = 1997,
}
%%%% fin exemple %%%%
* Le package 'bibtopics', de P. Basso, permet de contruire une
bibliographie générale comportant des rubriques diverses
(livres, articles, thèses, ...) ou des sujets divers (physique,
mathématiques, ...). Il est disponible par ftp sur
ftp://ftp.gutenberg.eu.org/pub/gut/contrib/.
Remarque : pour les versions récentes de LaTeX, il peut être
nécessaire d'inclure les lignes :
\makeatletter
\let\if@openbib\iffalse
\makeatother
dans le préambule du document.
* Voici un petit fichier 'multibib.sty' de V. Henn, créé en
recopiant les définitions LaTeX des commandes relatives à la
gestion des bibliographies, et en les rendant paramétrables.
Les commandes qui ont été définies sont :
\newbibliographyGENE{biblio} pour déclarer une bibliographie
biblio.
\citeGENE{biblio}{clé} pour appeler une référence.
\bibliographystyleGENE{biblio-x}{alpha} pour définir le style de
biblio.
\bibliographyGENE{biblio}{fichier-biblio1} pour faire
référence au fichier fichier-biblio1.bib qui contient
les références.
%%%% debut macro %%%%
%% A sauver dans multibib.sty
%%%%%% biblio generique %%%%%%%%
\newcommand\newbibliographyGENE[1]{%
\expandafter\expandafter\expandafter\newwrite\@nameuse{@#1aux}
\immediate\expandafter\expandafter\openout\ at nameuse{@#1aux}=#1.aux
%\expandafter\expandafter\expandafter\show\@nameuse{@#1aux}
}
\def\citeGENE#1{\@ifnextchar [{\@tempswatrue\@citexGENE{#1}}%
{\@tempswafalse\@citexGENE{#1}[]}}
\def\@citexGENE#1[#2]#3{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}{\string%
\citation{#3}}\fi
\let\@citea\@empty
\@cite{\@for\@citeb:=#3\do
{\@citea\def\@citea{,\penalty\@m\ }%
\def\@tempa##1##2\@nil{\edef\@citeb{\if##1\space##2%
\else##1##2\fi}}%
\expandafter\@tempa\@citeb\@nil
\@ifundefined{b@\@citeb}{{\reset@font\bf ?}\@warning
{Citation `\@citeb' on page \thepage \space undefined}}%
\hbox{\csname b@\@citeb\endcsname}}}{#2}}
\def\bibliographyGENE#1#2{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}{\string%
\bibdata{#2}}\fi
\ at input{#1.bbl}}
\def\bibliographystyleGENE#1#2{\if@filesw\immediate\expandafter%
\expandafter\expandafter\write\@nameuse{@#1aux}
{\string\bibstyle{#2}}\fi}
\def\nociteGENE#1#2{\@bsphack
\if@filesw\immediate\write\@nameuse{@#1aux}{\string%
\citation{#2}}\fi
\@esphack}
%%%% fin macro %%%%
Exemple d'utilisation :
Les fichiers gene.bib et speci.bib contiennent respectivement
une référence bibliographie de clé cle-gene et cle-speci.
\documentclass{report}
\usepackage{multibib}
\usepackage{french}
\begin{document}
\newbibliographyGENE{Toto}
\newbibliographyGENE{Titi}
\chapter{Introduction.}
blabla bla \citeGENE{Toto}{cle-gene} et
\citeGENE{Titi}{cle-speci} rebla rebla rebla
\bibliographystyleGENE{Toto}{plain}
\bibliographyGENE{Toto}{gene}
\bibliographystyleGENE{Titi}{alpha}
\bibliographyGENE{Titi}{speci}
\end{document}
il faut alors compiler de la manière suivante :
latex fichier-source
bibtex Toto
bibtex Titi
latex fichier-source
latex fichier-source
%%%% fin exemple %%%%