tuteurs.ens.fr/logiciels/latex/bibtex.tml

270 lines
11 KiB
Text
Raw Normal View History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Bibliographie</title>
</head>
<body>
<h1>Faire une bibliographie avec BibTeX</h1>
<h2>Pourquoi BibTeX<65>?</h2>
<p>Il peut sembler bizarre de devoir recourir <20> un programme externe pour
g<EFBFBD>n<EFBFBD>rer quelques lignes de texte <20> la fin d'un m<>moire. N<>anmoins
l'int<6E>r<EFBFBD>t de BibTeX apparaitra tr<74>s rapidement <20> l'utilisateur d<>sireux
de construire sa bibliographie au fur et <20> mesure de la r<>daction du
texte, tout en respectant les conventions, par exemple dans le cas d'une
th<EFBFBD>se...</p>
<p>De plus, la plupart des bibliographies d'ouvrages scientifiques se
doivent d'<27>tre au format BibTeX, afin de ne pas voir <20> taper les entr<74>es
bibliographiques, mais de pouvoir utiliser les bases de donn<6E>es
existantes.</p>
<p>
Enfin, BibTeX c'est la possibilit<69> de changer l'ordre utilis<69> dans la
bibliographie (alphab<61>tique, chronologique, th<74>matique, ordre de
citation dans le texte) sans tout retaper. Il est <20>galement possible de
changer l'apparence (le titre en italique ou entre guillements<74>?),
l'ordre des <20>l<EFBFBD>ments dans une r<>f<EFBFBD>rence (le pr<70>nom avant ou apr<70>s le
nom<EFBFBD>?, le titre avant ou apr<70>s la revue<75>?), l<> encore sans grand effort.
</p>
<h2>Le principe</h2>
<p>BibTeX va chercher ses r<>f<EFBFBD>rences dans une base de donn<6E>es que
l'utilisateur cr<63>e, de mani<6E>re tr<74>s simple, en attribuant une
<EFBFBD><EFBFBD><EFBFBD>tiquette<EFBFBD><EFBFBD> <20> chaque r<>f<EFBFBD>rence, puis en remplissant un certain nombre
de champs (auteurs, titre, revue, ann<6E>e, <20>diteur, etc.). Cette base de
donn<EFBFBD>e est stock<63>e sous forme de fichier texte, avec comme extension
<code>.bib</code>. Elle peut <20>tre commune <20> plusieurs documents LaTeX,
comme on le verra plus tard.</p>
<p>Lorsque l'utilisateur veut citer une r<>f<EFBFBD>rence dans le fichier LaTeX,
il appelle l'<27>tiquette qui identifie cette r<>f<EFBFBD>rence dans le fichier
<code>.bib</code>, par la commande <code>\cite{}</code>. Lors de la
compilation du fichier par LaTeX, la liste des r<>f<EFBFBD>rences demand<6E>es
s'inscrit alors dans le fichier <code>.aux</code> correspondant. On peut
alors lancer BibTeX, qui fera le lien entre les requ<71>tes du document et
la base de donn<6E>es, en g<>n<EFBFBD>rant au passage un fichier <code>.bbl</code>,
qui sera, lui, sp<73>cifique au document LaTeX tel qu'on vient de le
compiler.</p>
<p>Enfin, une nouvelle compilation via LaTeX sera n<>cessaire pour
afficher correctement la bibliographie ainsi que les renvois du
texte.</p>
<h2>En pratique</h2>
<h3>Construire la base de donn<6E>es</h3>
<h4>Exemple</h4>
<p>Voici un extrait de base de donn<6E>es<65>:</p>
<pre>
@article{Johnson,
author = {Edgar G. Johnson and Alfred O. Nier},
title = {Angular Aberrations in Sector Shaped
Electromagnetic Lenses for Focusing Beams of Charged Particles},
journal = {Physical Review},
volume = {91},
number = {1},
month = {jul},
year = {1953}
}
@phdthesis{Zoran,
author = {Zoran Racic},
title = {\'Etude et essais du spectrom<6F>tre <20> plasma {DYMIO}
de la mission {MARS 96}},
publisher = {Universit<69> Pierre et Marie Curie},
year = {1996}
}
</pre>
<p>Toute entr<74>e commence par un <code>@</code>, suivi par un descripteur
(impos<6F> par le type de document <code>article</code>, <code>book</code>,
<code>inproceedings</code>, etc.). Entre
accolades, se trouve l'<27>tiquette, puis les champs, compos<6F>s d'un
sous-descripteur et de la valeur de celui ci, entre accolades. <em>Les
champs sont s<>par<61>s par des virgules,</em> l'oubli de celles ci <20>tant
vraisemblablement la source d'erreurs la plus courante<74>!</p>
<p><em>A priori</em>, BibTeX s'occupe des majuscules, et n'h<>site pas <20> en
supprimer si tel est son bon plaisir. Il y a moyen de lui faire savoir
qui c'est le chef, en enfermant les mots qu'on d<>sire laisser en
majuscule entre accolades. Cependant, la meilleure solution est de ne
pas placer ces accolades et de modifier le style de bibliographie ou
d'en changer s'il ne vous convient pas. Les commandes TeX sont autoris<69>es.</p>
<p>N'h<>sitez pas <20> fournir un maximum d'informations, BibTeX s'arrangera
pour tout faire rentrer (ou donnera des messages d'avertissement s'il en
manque...), et les champs inconnus seront ignor<6F>s si n<>cessaire.</p>
<p>Sauvegardez le fichier sous un nom se terminant par
<code>.bib</code></p>
<h4>Liste des types de document et des champs disponibles</h4>
<p>
La table suivante r<>sume les types et les champs couramment connus.
</p>
<table>
<thead>
<tr>
<td>
Types de documents
</td>
<td>
Champs
</td>
</tr>
</thead>
<tbody>
<tr><td><code>article</code></td> <td><code>address</code></td></tr>
<tr><td><code>book</code></td> <td><code>annote</code></td></tr>
<tr><td><code>booklet</code></td> <td><code>author</code></td></tr>
<tr><td><code>conference</code></td> <td><code>booktitle</code></td></tr>
<tr><td><code>inbook</code></td> <td><code>chapter</code></td></tr>
<tr><td><code>incollection</code></td> <td><code>crossref</code></td></tr>
<tr><td><code>inproceedings</code></td> <td><code>edition</code></td></tr>
<tr><td><code>manual</code></td> <td><code>editor</code></td></tr>
<tr><td><code>mastersthesis</code></td> <td><code>howpublished</code></td></tr>
<tr><td><code>misc</code></td> <td><code>institution</code></td></tr>
<tr><td><code>phdthesis</code></td> <td><code>journal</code></td></tr>
<tr><td><code>proceedings</code></td> <td><code>month</code></td></tr>
<tr><td><code>techreport</code></td> <td><code>note</code></td></tr>
<tr><td><code>unpublished</code></td> <td><code>number</code></td></tr>
<tr><td></td> <td><code>organization</code></td></tr>
<tr><td></td> <td><code>pages</code></td></tr>
<tr><td></td> <td><code>publisher</code></td></tr>
<tr><td></td> <td><code>school</code></td></tr>
<tr><td></td> <td><code>series</code></td></tr>
<tr><td></td> <td><code>title</code></td></tr>
<tr><td></td> <td><code>type</code></td></tr>
<tr><td></td> <td><code>volume</code></td></tr>
<tr><td></td> <td><code>year</code></td></tr>
</tbody>
</table>
<p>
<code>author</code> est le champ utilis<69> pour saisir la liste des
auteurs sous la forme <code><var>pr<70>nom</var> <var>nom</var></code> ou
<code><var>nom</var>, <var>pr<70>nom</var></code>.
</p>
<div class="attention">
Les auteurs doivent <20>tre s<>par<61>s par <code>and</code> et surtout pas
une virgule.
</div>
<p>
Pour les articles (type <code>article</code>), les champs importants
sont <code>author</code>, <code>title</code>, <code>journal</code>,
<code>year</code>, <code>pages</code> (les champs <code>volume</code> et
<code>number</code> peuvent eux aussi servir). Pour les livres (type
<code>book</code>) on prendra garde <20> donner la maison d'<27>dition <20>
l'aide du champ <code>publisher</code> et non <code>editor</code> (les
<EFBFBD>diteurs d'un ouvrage collectif) ou <code>edition</code> (le num<75>ro de
r<EFBFBD><EFBFBD>dition). L'adresse de la maison d'<27>dition est donn<6E>e par
<code>address</code>. Le type <code>misc</code> sert de fourre-tout
quand aucune cat<61>gorie ne semble correspondre <20> un document (un
manuscrit par exemple), tous les champs peuvent <20>tre utilis<69>s, mais
pensez <20> ajouter soit <code>howpublished</code> soit une
<code>note</code> explicative. <code>inbook</code> et les autres types
dont le nom commence par <code>in</code> d<>signent des chapitres (le
num<EFBFBD>ro du chapitre sera pr<70>cis<69> via le champ <code>chapter</code> et les
pages concern<72>es par <code>pages</code>) ou des paragraphes dans un
livre (le titre pourra <20>tre pr<70>cis<69> avec <code>booktitle</code>), etc.
Le champ <code>crossref</code> permet de faire r<>f<EFBFBD>rence audit livre
s'il est pr<70>sent lui aussi dans la bibliographie. Les documents
acad<EFBFBD>miques (<code>mastersthesis</code> et <code>phdthesis</code>)
pourront int<6E>grer <code>school</code> ou <code>institution</code> pour
renseigner l'universit<69>.
</p>
<h3>Afficher la biblio dans le document LaTeX</h3>
<p><3E> l'emplacement pr<70>vu dans le fichier .tex, ins<6E>rez les lignes<65>:</p>
<pre>
\bibliographystyle{plain}
\bibliography{stlong}
</pre>
<p><code>\bibliographystyle</code> permet de choisir le style de
bibliographie.</p>
<p><code>\bibliography</code> permet d'indiquer quelle base de donn<6E>es
doit <20>tre utilis<69>e. On indique le nom du fichier, sans l'extension
<code>.bib</code></p>
<h3>Cr<43>er une entr<74>e <20><>Bibliographie<69><65> dans la table des mati<74>res</h3>
<p>
Utilisez le package <code>tocbibind</code>, capable de cr<63>er des entr<74>es
pour la bibliographie, l'index et aussi la table des mati<74>res<65>(!), les
listes des figures et des tables. Ces trois derniers <20>l<EFBFBD>ments
n'<27>tant pas du meilleur effet, on lui pourra passer les options
<code>nottoc</code>, <code>notlof</code> et <code>notlot</code>.
</p>
<pre>
\usepackage[nottoc, notlof, notlot]{tocbibind}
</pre>
<h3>Citer une r<>f<EFBFBD>rence dans le texte</h3>
<p>LaTeX n'affiche pas toutes les r<>f<EFBFBD>rences contenues dans la base de
donn<EFBFBD>es, seulement celles qui sont cit<69>es dans le texte. Par cons<6E>quent, il
est normal <20> ce stade de ne rien voir s'afficher... La commande <20>
utiliser pour citer une r<>f<EFBFBD>rence est tout simplement</p>
<pre>\cite{<var>label</var>}</pre>
<p class="continue">o<> <var>label</var> est l'<27>tiquette attribu<62>e lors de
la construction de la base de donn<6E>es dans le fichier <tt>.bib</tt>. Dans le style <code>plain</code>,
cette commande appara<72>t alors dans le fichier <code>.dvi</code> sous la
forme <code>[<var>X</var>]</code>, o<> <var>X</var> est le num<75>ro utilis<69> dans la bibliographie,
ou un <b>???</b> si l'<27>tiquette est erron<6F>e, ou qu'il manque une
compilation de LaTeX ou de BibTeX.</p>
<p>On peut n<>anmoins faire appara<72>tre une r<>f<EFBFBD>rence dans la bibliographie
sans la citer explicitement dans le texte, <20> l'aide de la commande<64>:</p>
<pre>\nocite{<var>label</var>}</pre>
<p>
Un cas particulier est <code>\nocite{*}</code> qui dit <20> BibTeX
d'inclure dans la bibliographie toutes les r<>f<EFBFBD>rences, cit<69>es dans le
corps du texte ou non.
</p>
<h3>Compilation(s)</h3>
<p>Il ne reste plus qu'<27> compiler le tout<75>:</p>
<pre>
latex <var>mon_fichier</var>.tex
bibtex <var>mon_fichier</var>
latex <var>mon_fichier</var>.tex
</pre>
<div class="attention">Ce n'est ni le fichier <code>.bib</code> ni
le fichier <code>.tex</code> qu'on indique <20> BibTeX, mais le fichier
<code>.aux</code> produit dans la premi<6D>re compilation du fichier
<code>.tex</code>. Cependant, comme l'indique la commande ci-dessus,
2005-03-24 04:09:33 +01:00
cela fonctionne quand m<>me si on ne pr<70>cise pas l'extension.</div>
<div class="metainformation"> Auteur<75>: Fr<46>d<EFBFBD>ric Meynadier (2001, 2005).
Derni<EFBFBD>re modification le <date value="$Date: 2005-12-02 16:18:40 $" />
par Josselin Noirel </div>
</body> </html>