biber / biblatex

biblatex est le package moderne qui compose la bibliographie du côté LaTeX. Là où le BibTeX classique fixait l’apparence dans .bst, un petit langage très particulier, biblatex écrit les styles sous forme de macros LaTeX, gère Unicode nativement et offre un contrôle fin du tri et de plusieurs listes de références. Son compagnon, le programme qui lit et trie les données, est biber. Dans le document, vous chargez un .bib avec \addbibresource, citez avec \parencite ou \textcite, puis imprimez la liste avec \printbibliography.

Ce que sont biblatex et biber

On les confond facilement, donc séparons d’abord les rôles. biblatex est un package LaTeX chargé de l’apparence des citations et de la mise en forme de la liste de références. biber est un programme externe (un backend) dédié à biblatex : il lit le fichier .bib, trie et traite les entrées, puis les transmet à biblatex sous une forme prête à composer. Le travail que faisait autrefois le .bst de BibTeX est maintenant partagé : la mise en forme revient à biblatex (côté LaTeX) et la lecture ainsi que le tri reviennent à biber.

Le manuel de biblatex indique clairement que biber est « le backend par défaut de biblatex ». biber gère us-ascii, les encodages 8 bits et UTF-8, et prend en charge le tri selon la locale (sortlocale). Vous choisissez le backend avec l’option backend= ; les anciens bibtex/bibtex8 restent possibles, mais pour profiter d’Unicode et d’un tri souple, biber est le standard de fait.

Configuration minimale (charger et imprimer)

L’usage comporte trois parties. Dans le préambule, vous choisissez un style et un backend avec \usepackage[...]{biblatex}, puis vous enregistrez la base avec \addbibresource{refs.bib}. Dans le corps, vous citez avec la famille \cite, et vous placez \printbibliography là où la liste de références doit apparaître.

document.tex
\documentclass{article}
\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{refs.bib}   % preamble; the .bib extension IS included

\begin{document}

The theory was introduced by \textcite{shannon1948}.
Later work built on it~\parencite{knuth1984}.

\printbibliography

\end{document}

Les deux différences visibles les plus importantes avec BibTeX sont les suivantes : d’abord, vous enregistrez la base dans le préambule avec \addbibresource{refs.bib}, et non avec \bibliography{refs} à la fin du corps ; ensuite, vous incluez ici l’extension .bib (le \bibliography de BibTeX n’en prenait pas). Vous pouvez écrire \addbibresource plusieurs fois pour garder des bases séparées.

Vous choisissez un style avec un seul style=. C’est une option maîtresse qui charge à la fois le style de bibliographie (.bbx) et le style de citation (.cbx). Ce n’est que si vous voulez les différencier que vous réglez séparément bibstyle= (apparence de la liste) et citestyle= (apparence des citations). Le fichier .bib lui-même, avec des entrées comme @article et des clés de citation, s’écrit exactement comme pour BibTeX et est traité en détail sur sa propre page.

Commandes de citation

L’une des forces de biblatex est son vaste ensemble de commandes de citation choisies selon le sens. Outre le \cite brut, vous choisissez les commandes suivantes selon le contexte. Toutes acceptent une note avant citation (« see »…) et une note après citation (numéro de page…), comme dans \parencite[prenote][postnote]{key}, et vous pouvez passer plusieurs clés séparées par des virgules.

CommandeCe qui est impriméQuand l’utiliser
\citeLe libellé nu, sans ajout (crochets en numérique/alphabetique)La forme minimale, intégrée au texte
\parenciteToute la citation entre parenthèses (crochets en numérique/alphabetique)Citations parenthétiques, par exemple en fin de proposition
\textciteNoms d’auteur plus libellé entre parenthèses, « Author (year) »Quand la citation fait partie de la phrase
\footcitePlace toute la citation en note de bas de page, avec un point finalStyles qui donnent les sources en notes
\autociteLa forme pilotée par le style (avec déplacement de la ponctuation)Pour laisser le style décider et changer globalement
\citeauthor / \citeyearAuteur seul / année seulePour ne mentionner que l’auteur ou l’année dans le texte

Utilisez \textcite lorsque la citation fait partie de la phrase — « as Knuth (1984) showed… » — en plaçant l’auteur en position de sujet. \parencite sert à l’inverse : une citation parenthétique discrète en fin de proposition. \autocite ajoute un niveau d’abstraction : son comportement comme \parencite ou \footcite (ou \supercite dans les styles numériques) se règle avec l’option autocite=. autocite=plain le fait agir comme \cite, autocite=inline comme \parencite, autocite=footnote comme \footcite, et autocite=superscript donne une forme en exposant (en pratique, chaque style fixe un défaut raisonnable).

Pour citer plusieurs travaux à la fois, chacun avec sa propre note avant/après, utilisez les formes multicite comme \parencites et \autocites : \parencites[35]{key1}[88--120]{key2}{key3} attache une note après citation distincte à chaque entrée.

Le système de styles

biblatex fournit des styles généraux ; passer un nom à style= change toute l’apparence. Les principaux sont ci-dessous. Chacun change à la fois l’apparence des citations (.cbx) et celle de la liste (.bbx).

StyleAspect des citationsTrait
numericUn numéro comme [1]Par défaut ; comme les numéros standard de LaTeX. numeric-comp regroupe en [1–3]
alphabeticÉtiquettes alphanumériques comme [Jon95]Comme alpha de BibTeX ; un court code tiré de l’auteur et de l’année
authoryearAuteur-année comme « Doe 1995a »Ajoute a, b… pour même auteur/année ; -comp regroupe l’auteur
authortitleAuteur plus titre abrégéFréquent en sciences humaines ; l’année n’est pas mise en avant
verboseCitation complète à la première occurrence, forme courte ensuitePour les sources détaillées en notes de bas de page

Au-delà, les styles spécialisés par domaine abondent : ieee pour l’ingénierie, apa pour la psychologie et d’autres domaines (package biblatex-apa), nature et science pour les sciences naturelles, chicago (biblatex-chicago), oscola pour le droit, mla pour les humanités, etc. Ils permettent de suivre le format d’un lieu de publication sans écrire de .bst ; plusieurs s’installent depuis CTAN.

Vous pouvez affiner l’apparence avec des options au chargement. sorting= choisit l’ordre (nty = nom, titre, année par défaut ; nyt = nom, année, titre ; ynt = année, nom, titre ; none = ordre de citation), maxbibnames / maxcitenames fixent le nombre d’auteurs affichés avant « et al. », et backref=true ajoute des renvois de chaque entrée vers les endroits où elle est citée. maxnames est l’option maîtresse qui règle ces valeurs ensemble.

La compilation (avec biber)

C’est là que les utilisateurs de BibTeX trébuchent d’abord. Pour produire correctement une bibliographie biblatex, l’ordre classique est latex → biber → latex → latex. La raison des passages multiples est la même qu’avec BibTeX : le moteur et biber échangent des données par des fichiers auxiliaires. Mais la différence décisive est que vous appelez biber, pas bibtex. Avec pdflatex, c’est identique : remplacez seulement latex par pdflatex.

terminal
$ pdflatex document.tex   # 1st pass: records cited keys
$ biber    document        # NOT bibtex: reads .bcf + .bib, sorts/processes
$ pdflatex document.tex    # pulls in the processed data
$ pdflatex document.tex    # resolves all references

Vous donnez à biber le nom de job (sans extension), pas le .tex. biber lit le fichier de contrôle .bcf (XML) écrit par biblatex. Un échec fréquent consiste à laisser l’éditeur ou latexmk configuré pour appeler bibtex, ce qui produit des avertissements de citations indéfinies ou une bibliographie vide. Une fois backend=biber choisi, pointez aussi les outils vers biber. Comme quatre passages manuels sont pénibles, on délègue généralement à latexmk.

terminal
$ latexmk -pdf document.tex   # detects biblatex and runs biber automatically

Les versions récentes de latexmk détectent biblatex et appellent biber automatiquement, terminant généralement les passages nécessaires en une seule invocation (dans les anciens environnements, on ajoute une configuration biber dans .latexmkrc avec $pdf_mode, etc.). Pour le japonais, on compose avec upLaTeX ou équivalent, puis on passe de DVI à PDF avec dvipdfmx ; comme biber gère Unicode, sortlocale=ja_JP permet de trier correctement le japonais (on utilise aussi souvent le champ langid pour séparer les listes japonaises et occidentales).

Pourquoi biblatex plutôt que BibTeX

biblatex/biber est privilégié pour les nouveaux projets parce qu’il s’attaque directement aux limites structurelles de BibTeX. Concrètement :

  • Unicode complet. biber traite UTF-8 directement ; les noms d’auteurs multilingues et les accents ne posent pas de problème.
  • Styles écrits en LaTeX. La mise en forme est contrôlée par des macros LaTeX et des options de chargement, sans écrire de .bst orienté pile.
  • Tri et localisation souples. sorting= et sortlocale donnent un contrôle précis de l’ordre et de la langue.
  • Bibliographies multiples. \printbibliography[type=...] ou [keyword=...] divise la liste par type ou sujet.
  • Commandes de citation riches. \textcite, \parencite, \autocite et autres permettent de citer selon le sens, de façon cohérente.

Ce dernier point, les listes multiples, est très utile en pratique : séparer sources primaires et secondaires, ou regrouper par type de document, le tout sans toucher aux données. Les filtres de \printbibliography incluent type= (seulement un type d’entrée), nottype= (exclure ce type), keyword= / notkeyword= (filtrer par le champ keywords du .bib) et heading= / title= (définir le titre).

document.tex
\printbibliography[type=article, title={Journal articles}]
\printbibliography[type=book,    title={Books}]
\printbibliography[keyword=primary, title={Primary sources}]

Si vous avez l’habitude de natbib depuis l’époque BibTeX, \usepackage[natbib=true]{biblatex} fournit des alias de style natbib comme \citep et \citet, ce qui facilite la migration.