Comment générer une bibliographie ?#

Il existe ici deux possibilités pour placer une bibliographie dans un document :

  • soit en la saisissant directement dans le document ;

  • soit en créant un fichier contenant les références bibliographiques (un fichier d’extension BIB) qui sera traité par une chaîne de compilation dédiée utilisant

Dans les deux cas, la commande \cite permet de citer une référence de la bibliographie dans le corps document. Toutefois, dans le cas particulier de la chaîne avec cette commande indique qu’il faut afficher la référence souhaitée dans la bibliographie, si elle existe. Toujours dans le cas de la chaîne avec pour inclure une référence dans la bibliographie sans y faire référence explicitement dans le corps du document, il faut utiliser la commande \nocite.

1.  Avec les commandes de base#

La méthode « directe » consiste à utiliser l’environnement thebibliography. C’est un environnement semblable à itemize, chaque entrée étant précédée d’un \bibitem. En voici un exemple :

\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page

\begin{document}
Si vous lisez des ouvrages en anglais et que \LaTeX{} vous intéresse,
vous devriez consulter~\cite{Lamport} et~\cite{Companion}.

\begin{thebibliography}{MMM99}
\bibitem[Lam99]{Lamport}
  L. Lamport,
  \textit{\LaTeX : A Document Preparation System},
  Addison-Wesley, 1994.
\bibitem[GMS94]{Companion}
  M. Goossens, F. Mittelbach et A. Samarin,
  \textit{The \LaTeX{} Companion},
  Addison-Wesley, 1994.
\end{thebibliography}
\end{document}

Dans la commande \bibitem[⟨clé interne⟩]{⟨clé⟩} :

  • la ⟨clé⟩, obligatoire, correspond au mot à utiliser dans le document pour faire référence à cette entrée (avec la commande \cite{⟨clé⟩}) ;

  • la ⟨clé interne⟩ est la clé que utilisera dans le document ;

  • ce qui suit la commande \bibitem est le contenu de la référence bibliographique, un code classique.

L’environnement thebibliography a un argument obligatoire, qui indique la taille du retrait à prévoir dans la liste. L’argument devra donc être, pour des raisons esthétiques, la plus longue clé apparaissant dans la bibliographie.

2.  Avec le programme #

La méthode précédente a l’inconvénient de ne pas être automatique : il faut recréer la liste des références pour chaque document. permet de créer une fois pour toutes une liste de références bibliographiques et de lister, automatiquement et de manière configurable, les références utilisées dans le document.

2.1.  Le fichier des références bibliographiques#

L’automatisation passe par la constitution d’un fichier (ou de plusieurs fichiers) d’extension BIB contenant les références bibliographiques mises sous une forme cadrée, chaque référence étant composée d’une liste de données sous la forme champ = "valeur" séparées par des virgules. Pour notre exemple de début de page, ce fichier aurait la forme suivante :

@book{Lamport,
  title     = "\LaTeX : A Document Preparation System",
  author    = "Lamport, Leslie",
  publisher = "Addison-Wesley",
  year      = 1994
}
@book{Companion,
  title     = "\LaTeX{} Companion",
  author    = "Goossens, Michel and Mittelbach, Frank and Samarin, Alexander",
  publisher = "Addison-Wesley,
  year      = 1994
}

La question « Comment créer un fichier bibliographique  » développe ce sujet.

2.2.  Le fichier de style bibliographique#

Afin de pouvoir simplement passer d’un style bibliographique à un autre, chaque style est contenu dans un fichier d’extension .bst. Il existe de nombreux fichiers de ce type, les plus courants étant abbrv, alpha, apalike, plain et unsrt (qui existent aussi en version francisée : alpha-fr, plain-fr, etc.).

Les principales caractéristiques de ces styles sont présentées à la question « Comment choisir un style de bibliographie  ».

2.3.  Les commandes à placer dans le document principal#

Pour inclure une bibliographie dans un document, il faut utiliser la commande \bibliography qui indique également à qu’il doit placer la bibliographie à l’endroit du texte où se trouve cette commande. Mais, comme vu ci-dessus, le style voulu et le(s) fichier(s) contenant les références bibliographiques doivent être indiqués. Cela se fait respectivement avec les commandes \bibliographystyle et \bibliography (encore elle). Par exemple :

\bibliographystyle{alpha}
\bibliography{mabiblio,bibliofac,commun}

Notez ici l’absence d’espaces après les virgules dans la commande \bibliography (qui permet dans le cas présent d’aller chercher les données des fichiers mabiblio.bib,bibliofac.bib et commun.bib).

2.4.  La chaîne de compilation et d’utilisation de #

À la compilation, plusieurs passes sont nécessaires. Les voici toutes détaillés, sachant que certaines pourront être à répéter, par exemple si la bibliographie elle-même contient des références (dans ce cas, les deux premières étapes ci-dessous seront répétées autant de fois que nécessaire).

Première compilation#

Lors de la première compilation de votre document par les différentes commandes ajoutent de l’information au fichier auxiliaire (.aux) à destination de

  • la commande \bibliographystyle place une note indiquant le style de la bibliographie ;

  • chaque commande \cite place une note indiquant quelle référence bibliographique est appelée ;

  • la commande \bibliography écrit une note indiquant quel est le fichier .bib qui doit être utilisé.

Notez qu’à ce stade, ne « résout » aucune des références : à chaque commande \cite, il vous avertit de la présence d’une référence non définie, et lorsque le document est terminé, il indique la présence générale de références indéfinies.

Utilisation de #

Il faut alors appeler pour qu’il traite le fichier AUX :

bibtex monfichier

Vous n’avez pas à préciser ici l’extension du fichier (AUX). Si vous indiquez bibtex monfichier.aux, tentera aveuglément de traiter monfichier.aux.aux.

scanne alors le fichier auxiliaire :

  • il cherche le style de bibliographie qu’il doit utiliser et « compile » ce style ;

  • il note les références souhaitées ;

  • il cherche les fichiers bibliographiques dont il a besoin et les parcourt en faisant correspondre les références aux entrées de la bibliographie ;

  • il trie les entrées qui ont été citées (si le style de bibliographie spécifie qu’elles doivent être triées) ;

  • il constitue un fichier BBL contenant le résultat de ces travaux, à savoir un environnement thebibliography et la liste des \bibitem demandés.

Deuxième compilation#

Cette deuxième compilation de votre document par va permettre d’inclure le contenu du fichier BBL à l’endroit où se trouve la commande \bibliography.

Une nouvelle fois, vous avertit que chaque référence bibliographique est indéfinie. Cependant, lorsqu’il rencontre chaque commande \bibitem dans le fichier, il note la définition de ces références.

Troisième compilation#

Cette dernière compilation permet à de pouvoir faire proprement toutes les références croisées à la bibliographie.

Si, lors de l’édition, vous modifiez l’une des références ou en ajoutez de nouvelles, vous devez suivre tout le processus de compilation décrit ci-dessus pour que le document se stabilise à nouveau. Ces quatre exécutions obligatoires de rendent le traitement d’un document avec une bibliographie plus fastidieux que dans le cas où vous traitez des références croisées ou dans celui où vous insérez une table des matières. Cependant, nombre de programmes d’édition de document propose des raccourcis pour exécuter la totalité de cette chaîne de compilation.

Au final, votre document et son résultat ressembleront à ce qui suit, à ceci près que pour l’affichage de la FAQ nous intégrons un code qui permet de générer le fichier BIB (sujet présenté à la question « Comment créer un fichier à la volée ? »). Dans votre cas, vous avez tout intérêt à avoir un fichier BIB séparé.

% Un fichier BIB créé par le document avec l'environnement filecontents
\begin{filecontents}[nosearch,overwrite]{mabiblio.bib}
  @book{Lamport,
    title     = "\LaTeX{} : A Document Preparation System",
    author    = "Lamport, Leslie",
    publisher = "Addison-Wesley",
    year      = 1994
  }
  @book{Companion,
    title     = "\LaTeX{} Companion",
    author    = "Goossens, Michel and Mittelbach, Frank 
                 and Samarin, Alexander",
    publisher = "Addison-Wesley",
    year      = 1994
  }
\end{filecontents}

% Le document LaTeX
\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page

\begin{document}
Si vous lisez des ouvrages en anglais et que \LaTeX{} vous intéresse,
vous devriez consulter~\cite{Lamport} et~\cite{Companion}.

\bibliographystyle{plain-fr}
\bibliography{mabiblio}
\end{document}