--- title: "Citer ses références et créer une bibliographie avec LaTeX et Zotero" date: Printemps 2026 creation_date: 2023-03-24T08:25:47+0100 id: 20230324082557 logo: - ./static/images/latex-logo.svg - ./static/images/zotero-logo.png lang: fr bibliography: ./static/references.json csl: ./static/heg-iso-690.csl nocite: '@*' link-citations: true --- ## Objectifs Au terme de cet atelier, vous serez en mesure de : - Comprendre ce qu'est un fichier `.bib`. - Connaître la structure d'une référence. - Créer ou de générer un fichier `.bib`. - Charger les paquets nécessaires dans le préambule pour configurer BibLaTeX. - Utiliser les commandes BibLaTeX pour : - Définir le style de citation et de bibliographie. - Insérer une citation et un appel de citation. - Insérer une bibliographie. - Compiler le document final. :::{#licence} ![Logo de la licence CC BY-SA 4.0][1] \ [CC BY-SA 4.0][2] --- [Sources][3] ::: ## Principes généraux {#first-section} > « Dans LaTeX il faut distinguer le langage de balisage, le système de > composition et la *distribution*. » [@fauchieFabriquesPublicationLaTeX2020] Pour générer des documents avec LaTeX, il faut : - Rédiger un document structuré à l'aide du *langage de balisage* LaTeX, dans un fichier `.tex`. - Compiler ce fichier avec un *système (ou moteur) de composition*, par exemple LaTeX, PdfLaTeX ou XeLaTeX. Pour disposer d'un tel système de composition, le plus souvent on installe un *environnement ou une distribution* LaTeX, par exemple TeX Live pour Linux, MacTex pour Mac OS ou MiKTeX pour Windows[^0]. Il est aussi possible d'installer des distributions plus minimales, comme Tectonic ou TinyTeX[^6]. Afin de faciliter la collaboration ou pour s'éviter une installation laborieuse, des services en ligne peuvent être préférés, comme . Enfin, un éditeur est nécessaire pour modifier les sources (le ou les fichiers `.tex`). N'importe quel éditeur de texte suffit, mais des aides comme la coloration syntaxique, la complétion des commandes ou la gestion de la compilation autrement que dans une console sont très utiles. Parmi une liste riche, les éditeurs suivants peuvent être mentionnés : - TeXstudio, libre, multiplatforme (Linux, MacOS, Windows), [^10]. - TeXworks, libre, multiplatforme, . - Visual Studio Code, gratuit, multiplatforme, , avec les extensions nécessaires[^7]. Afin de pouvoir insérer des citations et créer des bibliographies avec LaTeX, un fichier contenant les références bibliographiques est nécessaire. Il s'agit d'un fichier dont l'extension est `.bib`, ce qui correspond : - soit à la structure BibTeX, - soit à la structure Biber pour BibLaTeX. Ce fichier `.bib` se place le plus souvent dans le même dossier que le document `.tex` de travail, mais il est possible de l'enregistrer n'importe où et de préciser son chemin dans le fichier `.tex`. ### BibTeX VS BibLaTeX {#bibtex-vs-biblatex .newpage} BibTex est le logiciel historique pour la gestion des références et des bibliographies dans un document `.tex`. Il est aussi le plus souvent mentionné dans les exigences des éditeurs scientifiques. Pourtant, ce logiciel n'est plus développé depuis plusieurs décennies et n'offre pas facilement les fonctionnalités auxquelles nous pouvons nous attendre actuellement. Aussi Biber (et BibLaTeX) est fortement conseillé et c'est pourquoi il n'est question que de cette option dans ce document. Il est plus récent et évolue encore constamment. En ne chargeant que le paquet `biblatex`, il est possible de définir le type d'appel de citation (notes en bas de page, numéro, auteur-date, etc.) et différents style de bibliographies. Débuter avec BibLaTeX n'empêche pas de passer à BibTeX ensuite. ::: {.warning} Selon la distribution LaTeX, Biber n'est pas installé par défaut. Si la compilation ne fonctionne pas comme prévu, pensez à vérifier ce point. ::: ## Structure d'une référence dans un fichier `.bib` Une référence dans un fichier `.bib` au format BibLaTeX ressemble à ce qui suit : ```bib @book{sauvayreMethodesEntretienSciences2013, location = {Paris}, title = {Les méthodes de l'entretien en sciences sociales}, isbn = {978-2-10-057970-9}, series = {Psycho sup. Psychologie sociale}, pagetotal = {138}, publisher = {Dunod}, author = {Sauvayre, Romy}, date = {2013}, keywords = {Enquêtes sociologiques, Entretiens, Sociologie}, } ``` La première ligne définit le type de document, sous la forme `@type` (`@book`, `@article`, `@phdthesis`, etc.). Puis, après l'ouverture d'accolade, suit la clé de citation (*Citekey*), c'est-à-dire l'identifiant unique de la référence qui sera indiquée dans le document `.tex`, afin d'insérer une référence. \ Les lignes suivantes correspondent aux champs de la référence, sous la forme `champ = {valeur}`, séparées par une virgule. La documentation BibLaTeX détaille l'ensemble des types et des champs [@lehmanBiblatexPackageProgrammable2023, p. 7]. Un aide-mémoire les liste également [voir @reesBibLaTeXBiberCheat2017]. Il est possible de créer et de mettre à jour un fichier `.bib` « à la main », à l'aide d'un éditeur de texte. Un grand nombre de bases de données, de sites de revues ou de catalogues de bibliothèques permettent de télécharger une ou plusieurs références dans un fichier `.bib`, mais le plus souvent dans la structure BibTeX et non pas BibLaTeX. Mais, il est recommandé de déléguer la gestion du fichier `.bib` à un logiciel de gestion de références bibliographiques, comme JabRef[^1] ou Zotero[^2]. L'intérêt de ces logiciels est d'éviter les erreurs et d'automatiser en partie la collecte de références. ## Créer un fichier `.bib` via Zotero Avec Zotero, il est possible de générer un fichier `.bib` : - À partir d'une sélection de références. - En sélectionnant une collection, une sous-collection ou la bibliothèque entière. Il suffit de : - Sélectionner l'ensemble désiré. - Faire un clic-droit et sélectionner *Exporter la collection / les documents*. - Choisir le format BibTeX ou BibLaTeX.[^3] Ce procédé très simple a un inconvénient : le fichier créé est **statique**. Il ne sera pas à jour si la collection est complétée, ou si les références sont corrigées dans Zotero. Il faudra générer à nouveau et écraser le fichier `.bib` pour qu'il soit à jour. ### L'extension *Better BibTeX for Zotero* ::: {.warning} Il est fortement conseillé d'utiliser un Zotero à jour (`>= 8`) ! ::: L'extension *Better BibTeX for Zotero* améliore la fonctionnalité d'export native de Zotero. Elle permet d'exporter un fichier `.bib` **dynamique**, c'est-à-dire que le contenu de celui-ci sera mis à jour **automatiquement** lorsque les données correspondantes dans Zotero seront modifiées. Pour cela, il faut choisir le format d'exportation *Better BibTeX* ou *Better BibLaTeX* et sélectionner l'option *Garder à jour* (Figure 1). ![Fenêtre de dialogue de Better BibTex](./static/images/better-bibtex-a-jour.png){height=300px} Pour installer l'extension (au format `.xpi`) *Better BibTeX* : - Se rendre sur . - Télécharger le fichier `Zotero-better-bibtex-X.X.X.xpi`. - Dans Zotero, choisir le menu *Outils / Extensions* (Figure 2). - Cliquer sur la roue crantée en haut à droite et sélectionner *Install Add-on from file* (Figure 3). - Sélectionner le fichier téléchargé. ![Menu « outils » de Zotero](./static/images/menu-outils.png){height=200px} ![Installer un fichier `.xpi`](./static/images/install-add-on.png){height=180px} ::: {.warning} Il existe une extension pour Zotero qui facilite grandement la gestion des extensions, leur installation et leur mise à jour : \ . ::: ### Autres fonctionnalités de Better BibTeX *Better BibTeX* propose des fonctionnalités plus avancées : - Paramétrage du format des clés de citation. - Conversion des caractères UTF-8 et des éventuels balisages HTML, présents dans les références, particulièrement nécessaire avec BibTeX. - Paramétrage du comportement de la citation rapide (glisser-déposer une référence depuis Zotero dans votre document) : est-ce que vous voulez obtenir une référence rédigée au format LaTeX, une clé de citation, etc. ? - Génération de champs supplémentaires absents de Zotero. - Création de types de documents n'existant pas dans Zotero. Ces fonctionnalités ne seront pas décrites en détail dans ce document. Les informations supplémentaires à ce sujet sont disponibles sur le site . ## Configurer la compilation Pour générer le fichier PDF à partir des sources `.tex` et `.bib`, il est nécessaire de configurer le système de composition que l'on va utiliser. Il peut être appelé en ligne de commande dans une console ou pris en charge presque entièrement par une plateforme comme Overleaf. Et entre les deux, des éditeurs de texte dédiés à LaTeX offrent un certain nombre d'options de compilation ou de composition. L'exemple donné ci-dessous est adapté à l'exercice et à l'utilisation de l'éditeur TeXstudio, mais le principe est similaire dans les différents environnement. Les paramètres de TeXstudio sont dans le menu *Options / Configurer TeXstudio...*. L'onglet *Production* rassemble les configurations essentielles : - Le comportement du bouton *Production et visualisation*. - Le moteur de compilation par défaut. - Le moteur de compilation de bibliographie par défaut. ![Configuration de base de TeXstudio](./static/images/texstudio-production.png) Comme la figure 4 le montre, il faut s'assurer que : - La *Production et visualisation* soit bien sur *Compiler et voir*. - La *Compilation par défaut* doit utiliser XeLaTeX pour `polyglossia` ou PdfLaTeX pour `babel`. - Le *Moteur de bibliographie par défaut* doit être Biber si on utilise BibLaTeX. Lorsque l'on compile avec des références bibliographiques, il est nécessaire de le faire quatre fois (cinq étapes avec l'affichage du PDF) : 1. XeLaTeX. 1. Biber. 1. XeLaTeX. 1. XeLaTeX. 1. Afficher le PDF. Heureusement TeXstudio, lorsqu'il repère dans le fichier `.tex` l'existence d'éléments bibliographiques, gère tout seul cette complexité, comme c'est le cas avec Overleaf ou Tectonic[^5], par exemple. ## Utilisation de BibLaTeX ### Préambule : options de style et lien avec les références {#preambule} Voici un exemple de préambule avec le paquet `biblatex` et quelques options : ```latex \documentclass[11pt,a4paper,french]{article} \usepackage{lmodern} \usepackage[french]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{hyperref} \usepackage[style=vancouver, backend=biber]{biblatex} \addbibresource{references-exercice.bib} \author{Dimitri Donzé, Vincent Hubert, Igor Milhit} \title{Notre pseudo-article} ``` Le paquet est chargé sous la forme `\usepackage[options]{biblatex}`. Pour les options, il faut se référer à la documentation ou à la *cheatsheet* citées plus haut. L'exemple montre les options que vous allez le plus souvent utiliser : - `backend=biber` détermine l'outil de composition, le plus souvent Biber pour BibLaTeX. Cela suppose que Biber soit installé sur votre machine, par exemple dans la distribution LaTeX que vous avez choisie. - `style` détermine le style dans lequel les références seront rédigées. Pour plus de finesse, existent les options `citestyle` pour définit le style de citation et `bibstyle` pour le style bibliographique. Le plus souvent l'option `style` suffit. La commande `\addbibresource{.bib}` permet de définir le chemin et le fichier contenant les références bibliographiques. Le plus simple, est de le placer dans le même répertoire que le fichier `.tex`. ### Insérer des citations Pour insérer des citations, il existe un ensemble de commandes possibles (voir l'aide-mémoire), pour les différents cas. La syntaxe est la suivante : ```latex \cite[
][]{}
```

- `\cite` est la commande proprement dite, qui détermine le type de citation
  utilisée (`\cite`, `\autocite`, etc.).
- `[
]`, optionnel, permet d'ajouter du texte avant l'appel à citation. Par
  exemple `[voir]` permet d'obtenir `(voir Auteur, date)`.
- `[]`, optionnel, ajoute du texte après l'appel à citation, comme un
  numérotation de pages.
- Si on ajoute une option (`pre` ou `post`), il faut toujours ajouter l'autre
  option, même si on la laisse vide : `\cite[voir][]{citationKey}`.
- `{}`, obligatoire, est la clé de citation indiquant de quelle référence
  il s'agit. Par exemple `{slaweckiParadigmsQualitativeResearch2018}`.

Voici les appels de citation les plus utiles :

- `\autocite` est dépendante du style utilisé, aussi elle s'adapte
  automatiquement au style de citation.
- `\textcite` insère l'appel à citation dans le texte.
- `\parencite` insère l'appel à citation dans des parenthèses.

Ces commandes possèdent des versions pour appeler plusieurs références
simultanément : `\autocites{}{}`.

### Créer une bibliographie

La commande `\printbibliography` insère la bibliographie. Elle se place
généralement à la fin du document, mais ce n'est pas obligatoire.

Elle peut prendre un certain nombre d'options, par exemple :

```latex
\printbibliography[title=Bibliographie]
```

Cet exemple définit le titre de la bibliographie. Par défaut, le titre est
*Références* en français.

À l'aide de l'aide-mémoire ou de la documentation il est possible de comprendre
comment réaliser une bibliographie pour une section du document, ou une
bibliographie ne contenant que les références liées à un mot clé particulier.

### Enrichir BibLaTeX

Dans la bibliographie est indiqué une ressource en ligne qui liste des paquets
pouvant être installés, afin d'enrichir BibLaTeX [@CTANTopicBibLaTeX]. Dans ces
paquets, on trouve par exemple des styles bibliographiques. Or, pour les
installer, il faut savoir dans quel répertoire il faut ajouter les fichiers, si
nécessaire. Pour cela, une commande peut être tapée dans une console (par
exemple Powershell pour Windows, iterm pour Mac OS ou votre terminal Linux) :

```bash
> kpsewhich --var-value TEXMFLOCAL
/usr/local/share/texmf:/usr/share/texmf
```

La deuxième ligne est, la sortie de la commande, à savoir le chemin
correspondant à l'installation de LaTeX où les répertoires et fichiers peuvent
être ajoutés.

Sous Windows la commande ne prend qu'un tiret pour le paramètre :

```bash
kpsewhich -var-value TEXMFLOCAL
```

## LaTeX, mais sans LaTeX ?

Il est possible de produire un document au format PDF avec un rendu identique à
LaTeX avec un fichier source rédigé non pas avec la syntaxe LaTeX, mais avec
Markdown[^8]. Il s'agit d'un langage de balisage *léger*, plus simple à
maîtriser. Surtout, le mécanisme pour les citations et la bibliographie est
très similaire. C'est pourquoi il en est très brièvement question ici.

Le principe de base est le suivant :

1. La source est un ou plusieurs fichiers texte en Markdown.
1. La base de donnée des références bibliographiques est également un fichier
   texte, par exemple au format BibLaTeX (`.bib`) ou CSL Json (`.json`).
1. Dans les deux cas, *Better BibTeX* est en mesure de le créer (et de le
   mettre à jour automatiquement).
1. La conversion de la source en PDF se fait avec Pandoc[^9] (et Pandoc Citeproc
   qui est intégré à Pandoc).
1. Pandoc s'appuie sur un moteur pour LaTeX, par exemple XeLaTeX.

Dans le fichier source, pour insérer une citation on peut le faire avec les
syntaxes suivantes :

- `[@citationKey]`, équivalent à `\parencite{citationKey}`.
- `[@citationKey1; @citationKey2]`, équivalent à `\parencites{...}`.
- `@citationKey`, équivalent à `\textcite{citationKey}`.

La bibliographie sera insérée après le dernier titre de section (vide) du
document.

Pour convertir au format PDF la source, on peut utiliser la commande suivante
dans un terminal :

```bash
pandoc --citeproc --bibliography="references.bib" \
       --pdf-engine="xelatex" \
       --output="document.pdf" source.md
```

Cette commande demande au logiciel `pandoc` de convertir le fichier `source.md`
vers le fichier `document.pdf` (donc au format PDF), en utilisant XeLaTeX, en
traitant les références bibliographiques (`--citeproc`) sur la base de la liste
de références du fichier `references.bib`.

Rien n'empêche d'ajouter des configurations et des paramètres. Une solution est
d'ajouter un « frontmatter » à notre fichier Markdown, autrement dit un entête
au format YAML pour préciser des métadonnées et des paramètres, un peu comme on
le ferait avec un préambule pour LaTeX. Par exemple :

```yaml
title: Notre pseudo-article
date: Printemps 2026
lang: fr
author:
  - "Auteur 1"
  - "Auteur 2"
pdf-engine: xelatex
bibliography: ./references-exercice.bib
csl-style: ./vancouver.csl
link-citations: true
colorlinks: true
```

`csl-style` spécifie le style de citation utilisé au moyen d'un fichier CSL, à
savoir les styles utilisés par Zotero. `link-citations` et `colorlinks`
indiquent que les appels à citation sont des liens hypertextes, et que les
liens hypertextes doivent être en couleur.

La commande de conversion peut être simplifiée :

```bash
pandoc --citeproc --output="document.pdf" source.md
```

Ce principe se retrouve avec d'autres outils, construits avec les mêmes briques
(Pandoc, Markdown), comme Zettlr[^11] ou Quarto[^12].

## Bibliographie {.newpage}