449 lines
18 KiB
Markdown
449 lines
18 KiB
Markdown
---
|
||
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
|
||
<https://www.overleaf.com/>.
|
||
|
||
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),
|
||
<https://www.texstudio.org/>[^10].
|
||
- TeXworks, libre, multiplatforme, <https://www.tug.org/texworks/>.
|
||
- Visual Studio Code, gratuit, multiplatforme,
|
||
<https://code.visualstudio.com/>, 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).
|
||
|
||
{height=300px}
|
||
|
||
Pour installer l'extension (au format `.xpi`) *Better BibTeX* :
|
||
|
||
- Se rendre sur <https://github.com/retorquere/zotero-better-bibtex/releases/latest>.
|
||
- 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é.
|
||
|
||
{height=200px}
|
||
|
||
{height=180px}
|
||
|
||
::: {.warning}
|
||
|
||
Il existe une extension pour Zotero qui facilite grandement la gestion des
|
||
extensions, leur installation et leur mise à jour : \
|
||
<https://github.com/syt2/zotero-addons>.
|
||
|
||
:::
|
||
|
||
### 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
|
||
<https://retorque.re/zotero-better-BibTeX/>.
|
||
|
||
## 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.
|
||
|
||

|
||
|
||
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{<nom-du-fichier>.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[<pre>][<post>]{<key>}
|
||
```
|
||
|
||
- `\cite` est la commande proprement dite, qui détermine le type de citation
|
||
utilisée (`\cite`, `\autocite`, etc.).
|
||
- `[<pre>]`, optionnel, permet d'ajouter du texte avant l'appel à citation. Par
|
||
exemple `[voir]` permet d'obtenir `(voir Auteur, date)`.
|
||
- `[<post>]`, 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}`.
|
||
- `{<key>}`, 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{<key1>}{<key2>}`.
|
||
|
||
### 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}
|