\compare{bibtex-vs-biber}

BibTeX ou Biber

Ce sont deux processeurs de bibliographie pour LaTeX, mais leurs compromis sont fondamentalement différents. Ce guide couvre la prise en charge de l'Unicode, le tri, les performances et le moment où chaque backend est le bon choix.

BibTeX— classique, rapideBiber— Unicode, moderne
Utilisez BibTeX quand…
  • Un modèle de revue ou d'éditeur l'exige
  • Vous utilisez le style de citation natbib
  • Votre bibliographie ne contient que du texte ASCII
  • La vitesse de compilation maximale est une priorité
Utilisez Biber quand…
  • Les noms d'auteurs contiennent des caractères non ASCII
  • Vous démarrez un nouveau projet (choix par défaut recommandé)
  • Vous avez besoin d'un tri alphabétique tenant compte de la locale
  • Vous voulez des champs étendus : doi, url, langid, eprint

\section{Ce que fait chaque outil}

Le rôle d'un processeur de bibliographie

Ni BibTeX ni Biber ne sont des paquets LaTeX : ce sont des programmes externes invoqués entre les passes de compilation LaTeX. Ils lisent votre base .bib, résolvent les citations, trient les entrées et écrivent un fichier .bbl formaté que LaTeX lit à la passe suivante.

BibTeX

bibtex main

Écrit par Oren Patashnik et publié en 1985 avec LaTeX 2.09, BibTeX est le processeur de bibliographie d'origine. Il utilise des fichiers de style .bst écrits dans un langage à pile pour contrôler la mise en forme de la sortie.

  • Entrée ASCII uniquement par conception
  • Très rapide, quelle que soit la taille de la base
  • Exigé par natbib et la plupart des styles de revues
  • .bst styles are notoriously hard to write

Biber

biber main

Écrit en Perl par Philip Kime et publié en 2009, Biber est le backend recommandé pour le paquet biblatex. Il utilise un algorithme de classement Unicode (UCA) en Perl pour le tri et prend en charge l'UTF-8 nativement sur toute la chaîne de traitement.

  • Prise en charge complète de l'UTF-8, aucun échappement nécessaire
  • Tri selon l'algorithme de classement Unicode
  • Champs étendus : doi, url, langid, eprint
  • Héritage complet des champs de références croisées

\subsection{Matrice des fonctionnalités}

Comparaison côte à côte

Fonctionnalité
BibTeX
Biber
Entrée Unicode
ASCII uniquement (échappement manuel)
UTF-8 natif
Algorithme de tri
Ordre des octets ASCII
Algorithme de classement Unicode
Performances
Très rapide
Plus lent sur les grandes bases
Compatible avec
natbib, styles plain
biblatex uniquement
Champs étendus
Ignorés ou erreurs
doi, url, langid, eprint…
Cross-references
De base
Héritage complet des champs
Internationalisation
Échappement LaTeX manuel
Prise en charge native des locales
Modèles de revues
La plupart exigent BibTeX
Nouveaux projets, modèles personnels

\begin{examples}

Comparaison de fichiers .bib

La même entrée de base de données en BibTeX classique et en BibLaTeX + Biber. Notez comment Biber prend en charge l'UTF-8 directement ainsi que des champs supplémentaires.

BibTeX
% Classic BibTeX .bib — special characters need manual escaping
@article{einstein1905,
  author  = {Einstein, Albert},
  title   = {Zur Elektrodynamik bewegter {K\"orper}},
  journal = {Annalen der Physik},
  year    = {1905},
  volume  = {17},
  pages   = {891--921},
}

@book{knuth1986,
  author    = {Knuth, Donald E.},
  title     = {The {\TeX}book},
  publisher = {Addison-Wesley},
  year      = {1986},
  isbn      = {0-201-13447-0},
}
BibLaTeX + Biber
% BibLaTeX .bib — Biber handles UTF-8 natively, no escaping needed
@article{einstein1905,
  author  = {Einstein, Albert},
  title   = {Zur Elektrodynamik bewegter Körper},
  journal = {Annalen der Physik},
  year    = {1905},
  volume  = {17},
  pages   = {891--921},
  doi     = {10.1002/andp.19053221004},
  langid  = {german},
}

@book{knuth1986,
  author    = {Knuth, Donald E.},
  title     = {The {\TeX}book},
  publisher = {Addison-Wesley},
  year      = {1986},
  location  = {Reading, MA},
  isbn      = {0-201-13447-0},
}

Prise en charge de l'Unicode

BibTeX

BibTeX traite les fichiers source en ASCII 8 bits. Les auteurs dont le nom comporte des accents (Müller, Björk, Nguyen) doivent être écrits M\"uller, Bj\"ork, etc. Oublier un caractère d'échappement provoque une sortie corrompue ou une erreur bibtex.

Biber

Biber lit les fichiers .bib en UTF-8. Vous écrivez directement Müller, Björk, Nguyễn. Aucun échappement. Les éditeurs et les outils de contrôle de version gèrent naturellement ces fichiers.

Tri

BibTeX

BibTeX trie les entrées selon les valeurs d'octets ASCII brutes. Les majuscules sont donc triées avant les minuscules, et les caractères accentués (ä, ö, ü) après Z, et non à leur place alphabétique naturelle. Pour des bibliographies uniquement en anglais, la différence est invisible ; pour un travail multilingue, elle peut produire un mauvais ordre.

Biber

Biber implémente l'algorithme de classement Unicode (UCA) et tient compte de la locale. Ä est classé avec A, Ö avec O, et vous pouvez indiquer sortlocale=de_DE pour les règles allemandes, sv_SE pour le suédois, etc.

\subsection{Guide de migration}

Migrer de BibTeX vers Biber

Le format de fichier .bib reste le même : les changements concernent votre préambule LaTeX et les commandes de citation.

Migration du préambule
% Switching bibliography backend: BibTeX → Biber + BibLaTeX

% REMOVE these (BibTeX-style):
% \bibliographystyle{plain}     ← remove from preamble
% \bibliography{refs}           ← remove from document body

% ADD this to the preamble:
\usepackage[
  backend=biber,       % use Biber processor (not bibtex)
  style=authoryear,    % citation style: authoryear, numeric, alphabetic…
  sorting=nyt,         % sort by: name, year, title
  urldate=iso,         % ISO 8601 dates for URL fields
]{biblatex}

\addbibresource{refs.bib}   % replaces \bibliography{}

% Then in the document body:
% \parencite{einstein1905}   →  (Einstein, 1905)
% \textcite{knuth1986}       →  Knuth (1986)
% \printbibliography         →  full reference list

% Compile order:
% pdflatex main.tex  →  biber main  →  pdflatex main.tex  →  pdflatex main.tex
Supprimer
\bibliographystyle{plain}

biblatex contrôle le style de citation via ses propres options : bibliographystyle n'est pas nécessaire

Supprimer
\bibliography{refs}

This call at the end of your document is replaced by \printbibliography

Ajouter
\usepackage[backend=biber, style=authoryear]{biblatex}

Déclarez biblatex dans le préambule ; backend=biber sélectionne Biber comme processeur

Ajouter
\addbibresource{refs.bib}

Replaces \bibliography{}; note the .bib extension is required here

Remplacer
\cite{key} → \parencite{key}

biblatex uses \parencite (parenthetical) and \textcite (inline) by convention

Ajouter
\printbibliography

À placer à la fin du document, à l'endroit où vous voulez imprimer la liste des références

BibTeX et Biber sont tous deux pris en charge

Compilez avec la bibliographie en quelques secondes

FormaTeX exécute automatiquement la compilation multipasse : pdflatex → biber → pdflatex. Aucune installation TeX locale requise.