Un fichier .bib est une base de données bibliographiques en texte brut. Chaque référence y est écrite comme une entrée : un type (par exemple @article) et des champs (author, title, …) qui enregistrent les données brutes, jamais la mise en forme. La page BibTeX explique *comment lancer les outils* ; celle-ci détaille le fichier .bib lui-même : types d’entrées, écriture des champs et ordre de sortie de la liste bibliographique.
Le grand intérêt d’un fichier .bib est la réutilisation. Rédige-le une fois avec soin, puis partage-le entre plusieurs articles ; quand la revue ou la conférence change, tu modifies seulement le style, jamais les données. La séquence de compilation (latex → bibtex → latex → latex) et le choix d’un style .bst sont traités dans la [page BibTeX](/learn/bibliography/bibtex-page), donc ils ne sont pas repris ici.
Forme d’une entrée
Une entrée commence par @ et un type, puis indique entre accolades une clé de citation suivie de ses champs. Le squelette ressemble à ceci :
@article{shannon1948,
author = {Shannon, Claude E.},
title = {A Mathematical Theory of Communication},
journal = {Bell System Technical Journal},
volume = {27},
number = {3},
pages = {379--423},
year = {1948}
}Le shannon1948 juste après l’accolade ouvrante est la clé de citation : un identifiant choisi par toi, qui doit correspondre exactement à \cite{shannon1948} dans le document (on emploie souvent surname+year, mais tout convient si la clé est unique dans le fichier). Viennent ensuite des paires fieldname = {value} séparées par des virgules ; la virgule après le dernier champ est facultative. Les valeurs sont entourées d’accolades { } ou de guillemets doubles " ", et une valeur purement numérique comme year = 1948 peut rester nue. Les noms de type et de champ ne tiennent pas compte de la casse (@Article et @article sont identiques).
Types d’entrées
Le type indique ce qu’est la référence : article de revue, livre, contribution dans des actes de conférence, etc. Le choisir indique au style quels champs composer et dans quel ordre. Le tableau ci-dessous donne les types standard du BibTeX classique. Chaque type possède des champs obligatoires (un avertissement apparaît s’il en manque un) et des champs facultatifs ; cette correspondance est fixée par le style (.bst).
| Type | Usage | Champs obligatoires clés |
|---|---|---|
@article | Article dans une revue ou un périodique | author, title, journal, year |
@book | Livre avec un éditeur commercial nommé | author ou editor, title, publisher, year |
@inproceedings | Article dans des actes de conférence | author, title, booktitle, year |
@conference | Alias de @inproceedings (compatibilité Scribe) | (identique à @inproceedings) |
@incollection | Chapitre titré dans un ouvrage collectif | author, title, booktitle, publisher, year |
@inbook | Partie d’un livre (chapitre ou intervalle de pages) | author/editor, title, chapter ou pages, publisher, year |
@phdthesis | Thèse de doctorat | author, title, school, year |
@mastersthesis | Mémoire de master | author, title, school, year |
@techreport | Rapport produit par une institution | author, title, institution, year |
@manual | Manuel technique ou logiciel | title (au minimum) |
@unpublished | Manuscrit ou brouillon non publié | author, title, note |
@misc | Tout ce qui ne rentre pas ailleurs | aucun champ obligatoire (compléter avec note, etc.) |
Deux paires prêtent souvent à confusion. @inbook et @incollection : le premier désigne *une partie d’un même livre* (par exemple le chapitre 3 de ton propre livre) ; le second, *un texte autonome, écrit par un auteur distinct, dans un ouvrage collectif*. @inproceedings et @conference sont fonctionnellement identiques : @conference n’est qu’un ancien alias compatible Scribe. Pour les thèses, choisis @phdthesis ou @mastersthesis selon le diplôme. Si rien ne convient, utilise @misc et complète avec howpublished ou note.
Le biblatex moderne englobe presque tous ces types et en ajoute d’autres : @online (alias @electronic) pour les ressources web, un @report générique (dont le champ type indique par exemple “technical report”) et un @thesis indépendant du niveau de diplôme (là aussi, la catégorie va dans type). @online convient aux notices arXiv et aux preprints, avec les champs eprint décrits plus bas. Attention : ces types récents supposent biber/biblatex ; le couple classique bibtex + .bst peut ne pas les comprendre.
Écrire les champs
Les champs sont des paires name = {value} qui décrivent les attributs d’une référence. Les plus fréquents, tous types confondus, sont :
author/editor— l’auteur ou l’éditeur scientifique ; la syntaxe multi-auteurs est détaillée dans la section suivante.title— le titre : titre d’article, titre de livre, intitulé de chapitre, etc.journal/booktitle— le nom de la revue (@article), ou le titre de l’ouvrage / des actes qui contient la contribution (@inproceedings,@incollection).year/date— l’année de publication. Le BibTeX classique utiliseyear(avecmonthfacultatif) ; biblatex préfère une forme ISO commedate = {2026-05-01}(une simple annéedate = {2026}convient aussi).volume/number— volume / numéro.pages = {379--423}utilise un double trait d’union pour l’intervalle (imprimé comme un tiret demi-cadratin “–”).publisher/institution/school— l’éditeur / l’institution émettrice (rapports) / l’université qui délivre le diplôme (thèses).doi/url— le DOI (seulement le corps10.…) et une URL ; le style les rend sous forme de liens.eprint/eprinttype/eprintclass— les champs de preprint de biblatex. Pour arXiv :eprint = {2405.00001},eprinttype = {arxiv}(anciennementarchivePrefix) eteprintclass(anciennementprimaryClass) pour le domaine.note/howpublished— remarques libres / “mode de publication” (où l’on met souvent l’URL d’une entrée@misc).
Les champs obligatoires ou facultatifs varient selon le type, et c’est le style qui tranche. Si un champ obligatoire manque, BibTeX émet un avertissement ; un champ inconnu est, dans la plupart des styles, simplement ignoré. Les champs supplémentaires venus de métadonnées importées ne posent donc pas de problème.
Noms d’auteurs et protection par accolades
author est le champ où les erreurs sont les plus fréquentes. Sépare plusieurs auteurs avec and (pas avec des virgules). Chaque nom peut s’écrire de deux façons : ordre naturel First Last (Claude E. Shannon) ou nom de famille d’abord Last, First (Shannon, Claude E.). La forme nom de famille d’abord est la plus sûre quand le nom comporte plusieurs mots ou contient un préfixe comme “von / van der” : van der Plas, Geert indique clairement que “van der” appartient au nom de famille (en ordre naturel, il faudrait le protéger comme une unité : Geert {Van der Plas}).
@book{example2026,
author = {Knuth, Donald E. and Lamport, Leslie},
editor = {{The TeX Users Group}},
title = {On the {NASA} Mission to {TeX}},
publisher = {Addison-Wesley},
year = {2026}
}Quand il y a trop d’auteurs pour tous les lister, termine par and others ; le style le transforme en “et al.”. Et quand l’auteur est une organisation (The TeX Users Group), l’usage est de l’entourer de doubles accolades {{...}} afin qu’un éventuel and interne ne soit pas pris pour un séparateur de noms.
Tout aussi importante en pratique : la protection des majuscules. Beaucoup de styles remettent les titres en sentence case, ce qui transformerait des noms propres ou acronymes comme NASA ou TeX en Nasa ou Tex. Entoure la portion à préserver d’une paire d’accolades supplémentaire — title = {On the {NASA} Mission to {TeX}} — et cette portion sera protégée de la conversion.
Macros @string et commentaires
Si la même valeur revient souvent, tu peux définir une macro avec @string. Utilise le nom défini à la place d’une valeur (sans accolades) et concatène avec #. C’est pratique pour basculer entre noms abrégés et noms complets de revues.
@string{bstj = {Bell System Technical Journal}}
@article{shannon1948,
author = {Shannon, Claude E.},
title = {A Mathematical Theory of Communication},
journal = bstj,
year = {1948}
}Une idée reçue sur les commentaires mérite d’être corrigée : dans un fichier .bib, % n’est pas un caractère de commentaire (contrairement au corps LaTeX). Le bibtex classique ignore tout texte situé hors d’une entrée (@...{}) ; une note écrite en prose entre deux entrées ne cause donc pas de dégâts. Mais biber, le backend de biblatex, est plus strict et avertit en présence de texte brut hors entrée. La forme portable est @comment{ ... } : tout son contenu est ignoré.
Ordre de la liste
L’ordre d’apparition des entrées est indépendant de leur ordre dans le .bib. Il est décidé selon deux mécanismes :
Avec le BibTeX classique, l’ordre est fixé par le style (.bst). Tu n’as presque aucune marge de manœuvre : choisir le style, c’est choisir l’ordre. Par exemple, plain et alpha trient alphabétiquement par auteur, tandis que unsrt utilise l’ordre de première citation, comme des styles d’ingénierie tels que ieeetr. Avec les mêmes données, passer de \bibliographystyle{plain} à \bibliographystyle{unsrt} suffit à changer l’ordre. Pour le japonais, pbibtex / upbibtex trient par point de code (voir la [page BibTeX](/learn/bibliography/bibtex-page)).
Avec biblatex, tu contrôles explicitement l’ordre avec l’option sorting=, indépendamment du style, par exemple \usepackage[sorting=nyt]{biblatex}. Les clés de tri sont des combinaisons de lettres : n = name, y = year, t = title. Les choix courants sont :
| Option | Ordre des clés | Sens |
|---|---|---|
nty | name → title → year | Nom, puis titre, puis année (valeur par défaut de biblatex) |
nyt | name → year → title | Nom, année, titre (préféré pour auteur-année) |
ynt | year → name → title | Année, puis nom, puis titre (chronologique) |
ydnt | year (décroissant) → name → title | Années les plus récentes d’abord |
none | (aucun tri) | Ordre de citation (équivalent à unsrt) |
En bref : pour conserver l’ordre de citation, choisis le style unsrt avec BibTeX ou sorting=none avec biblatex. Pour un ordre alphabétique, utilise plain avec BibTeX ou le nty par défaut avec biblatex (ou nyt en auteur-année). Dans tous les cas, tu n’as jamais besoin de réordonner les entrées du .bib : l’ordre relève entièrement de l’outil de traitement.