diff --git a/.gitignore b/.gitignore index 913ee2e..463cbc7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ *.pdf -polycopié.html -test.html +*.html +!template.html watched-files.txt public/ *.bib diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29..0000000 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b21d442 --- /dev/null +++ b/Makefile @@ -0,0 +1,61 @@ +SOURCE_FOLDER := sources +OUTPUT_FILENAME := document + +TEMPLATE_REPOSITORY := https://git.milhit.ch/igor/bunige-pagedjs-template/releases/download + +# Liste les fichiers sources. +MD_UNSORTED := $(wildcard $(SOURCE_FOLDER)/*.md) +# Ordonne les fichiers sources sur la base du début numérique du nom des +# fichiers. +MD_SORTED := $(shell printf '%s\n' $(MD_UNSORTED) | sort -t- -k1,1n) + +.PHONY: all +all: pdf + +# Construit le fichier HTML. +.PHONY: html +html: $(MD_SORTED) + pandoc \ + --to=html --standalone \ + --template=static/template.html --css=static/style.css \ + -V static='./static' \ + --citeproc \ + --bibliography=./static/references.json --csl=./static/heg-iso-690.csl \ + --toc --toc-depth=2 \ + --out=$(OUTPUT_FILENAME).html $(MD_SORTED) + +# Construit le fichier PDF. +.PHONY: pdf +pdf: $(MD_SORTED) + pandoc \ + --to=pdf --pdf-engine=pagedjs-cli --embed-resources=true \ + --template=static/template.html --css=static/style.css \ + -V noscript=true -V static='./static' \ + --citeproc \ + --bibliography=./static/references.json --csl=./static/heg-iso-690.csl \ + --toc --toc-depth=2 \ + --out=$(OUTPUT_FILENAME).pdf $(MD_SORTED) + +# Reconstruit le fichier HTML à la modification des autres fichiers. +.PHONY: watch +watch: + watchexec -r -w . -i document.html \ + -- make html + +# Supprime les fichiers construits lorsqu'ils ne sont plus nécessaire. +.PHONY: clean +clean: + rm -f *.html *.pdf + +# Lance un serveur web pour servir le HTML. +.PHONY: serve +serve: + watchexec -r -w . "python -m http.server" + +# Mets à jour le modèle de document +# Usage : make update VERSION=v1.0.0 +.PHONY: update +update: + curl -o modèle.zip $(TEMPLATE_REPOSITORY)/$(VERSION)/$(VERSION).zip + unzip -f -o modèle.zip + rm modèle.zip diff --git a/README.md b/README.md index 46023dc..8d605e5 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,12 @@ title: Citation et bibliographie avec LaTeX date: 2023-03-21T10:22:47+01:00 id: 20230321102247 -tags: [README, documentation, latex, rdv-info] +tags: ["README", "documentation", "latex", "rdv-info"] --- ## [Citation et bibliographie avec LaTeX][1] -Ce répertoire contient les sources pour le *Rendez-vous de l'info* sur les +Ce répertoire contient les sources pour le [*Rendez-vous de l'info*][8] sur les citations et les références bibliographiques avec LaTeX. Il contient : - La source en markdown pour le support de cours (`sources/`). @@ -119,6 +119,25 @@ Pour le PDF : pandoc -t pdf --pdf-engine=tectonic -o déroulé.pdf déroulé.md ``` +## Makefile + +Dépendances : + +- `pandoc`. +- `watchexec`. +- `gnu-make`. +- `python`. + +Le projet contient un Makefile avec les commandes suivantes : + +- `make` : construit le PDF à partir des fichiers `.md` du dossier `sources`. +- `make html` : construit le HTML (sur la base des mêmes fichiers) pour + prévisualiser le résultat dans un navigateur. +- `make watch` : construit le HTML à chaque fois qu'un fichier dans le + répertoire est modifié. +- `make serve` : lance un serveur web local dans le répertoire courant (avec le + module pour python) sur le port 8000. + [1]: ./ [2]: https://git.milhit.ch/igor/biblatex-zotero/releases/latest @@ -127,3 +146,4 @@ pandoc -t pdf --pdf-engine=tectonic -o déroulé.pdf déroulé.md [5]: https://tectonic-typesetting.github.io/en-US/install.html [6]: https://pagedjs.org/ [7]: ./déroulé +[8]: https://www.unige.ch/biblio/index.php?cID=3844 diff --git a/déroulé.md b/déroulé.md index bbaf709..2f4a011 100644 --- a/déroulé.md +++ b/déroulé.md @@ -38,8 +38,9 @@ tags: [latex, déroulé, rdv-info] ### Exercice 1. Proposer d'importer `references-exercice.ris`. -1. Export Zotero. -1. Better BibTeX. Exporter et montrer la liste des exportations. +1. Export Zotero « classique ». +1. Better BibTeX. Exporter au format BibLaTeX et montrer la liste des + exportations. 1. Ouvrir le fichier `exercice.tex` avec Texmaker. 1. Montrer : 1. Commentaires, dont l'insertion de la bibliographie. @@ -50,19 +51,22 @@ tags: [latex, déroulé, rdv-info] 1. Montrer comment configurer la compilation dans Texmaker. 1. `biber %` pour BibLaTeX. 1. Compilation rapide avec : - 1. Soit préconfiguration PdfLaTeX, Biber, PdfLaTeX 2x et affichage du - PDF. - 1. Soit, avec l'assistant XeLaTeX, Biber, XeLaTeX 2x et affichage du + 1. Soit préconfiguration PdfLaTeX, Biber, 2x PdfLaTeX et affichage du + PDF (ne fonctionne pas avec `polyglossia` et `fontenc`). + 1. Soit, avec l'assistant XeLaTeX, Biber, 2x XeLaTeX et affichage du PDF. 1. Compiler le fichier tel quel. 1. **Laisser faire.** 1. Montrer les fichiers auxiliaires. 1. Montrer qu'on peut les supprimer avec *Outils / nettoyer* dans Texmaker. -1. Ajouter un appel à citation simple (`\cite`), décommenter l'insertion de la - bibliographie. +1. Ajouter un appel à citation simple (`\cite{}`), décommenter : + - Le chargement du package BibLaTeX avec les options. + - L'insertion de la bibliographie. 1. Compiler et **Laisser faire.** -1. Changer le `\cite` en `\autocite`. -1. Essayer d'autres commandes de citation via la cheatsheet. +1. Montrer qu'on peut changer les options de `hyperref`, par exemple + `[colorlinks=true]` ou `[colorlinks=true, citecolor=red]` +1. Changer le `\cite{}` en `\autocite{}`. +1. Essayer d'autres commandes de citation via l'aide mémoire. 1. Ajouter des options à `\autocite` et souligner que les deux options doivent être affichées : `\autocite[voir][]{bohemierBibTeXNatbibBiblatex}`. @@ -75,3 +79,4 @@ tags: [latex, déroulé, rdv-info] 1. Passer à un style `numeric`, `apa`, `vancouver`. Signaler qu'il faudra peut-être installer un style. Mentionner le topic biblatex. 1. Compiler et **Laisser faire.** +1. Montrer l'exemple avec le fichier Markdown si le temps le permet. diff --git a/exercice/exercice.md b/exercice/exercice.md new file mode 100644 index 0000000..f0b5c2f --- /dev/null +++ b/exercice/exercice.md @@ -0,0 +1,54 @@ +--- +title: Notre pseudo-article +date: Printemps 2026 +creation_date: 2026-03-13T12:04:37+0100 +id: 20260313120437 +lang: fr +tags: ["biblatex", "zotero", "better bibtex"] +author: + - "Vincent Huber" + - "Igor Milhit" +bibliography: ./references-exercice.bib +pdf-engine: xelatex +link-citations: true +colorlinks: true +--- + +## Introduction + +Dans ce pseudo-travail, nous prétendons introduire notre sujet, comme la +littérature le conseille généralement [@bohemier_bibtex_nodate]. + +Une bonne introduction annonce aux lecteurs et lectrices un certain +nombre d'éléments indispensables au sujet de l'article qu'elles et ils vont +lire, comme le suggèrent @bosma_code-switching_2019 et @sauvayre_les_2013. + +## Première partie + +Dans *cette première partie*, nous pouvons insérer une "citation en +ligne" et le bloc de citation suivante : + +> The results showed that different reference managers require different +> levels of effort, and users generally prefer the tools that involve +> less effort. We also found that although reference managers share +> similar features, differences in presentation and organization matter. +> We conclude this work by providing a set of guidelines for both users and +> developers of reference managers [@cai_what_2021]. + +## Et les maths ? + +L'équation de la relativité restreinte est : + +$$ +E = mc^2 +$$ + +Une équation plus complexe, comme la distribution normale : + +$$ +f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2} +$$ + +\newpage + +## Références diff --git a/exercice/references-exercice.bib b/exercice/references-exercice.bib index dc00805..55256d7 100644 --- a/exercice/references-exercice.bib +++ b/exercice/references-exercice.bib @@ -1,16 +1,17 @@ -@online{bohemierBibTeXNatbibBiblatex, - title = {{{BibTeX}}, Natbib, Biblatex: {{Managing}} Citations in {{LaTeX}}: {{BibTeX}} and Natbib.}, +@online{bohemier_bibtex_nodate, + title = {{{BibTeX}}, Natbib, Biblatex: {{Managing}} Citations in {{LaTeX}}}, shorttitle = {Yale University Library Research Guides}, author = {Bohemier, Kayleigh}, - url = {https://guides.library.yale.edu/bibtex/bibtex-natbib}, - urldate = {2022-05-17}, + location = {New Haven, CT}, + url = {https://guides.library.yale.edu/bibtex}, + urldate = {2026-03-13}, abstract = {A short guide linking to documentation, resources for bibliographic citation styles, and other useful tools to use when citing sources using .bib files and associated packages.}, langid = {english}, - organization = {{Yale University Library Research Guides}}, - keywords = {biblatex-zotero-exercice,cmu,non lu} + organization = {Yale University Library Research Guides}, + keywords = {biblatex-zotero-exercice,cmu} } -@article{bosmaCodeswitchingAsymmetryBilingual2019, +@article{bosma_code-switching_2019, title = {A Code-Switching Asymmetry in Bilingual Children: {{Code-switching}} from {{Dutch}} to {{Frisian}} Requires More Cognitive Control than Code-Switching from {{Frisian}} to {{Dutch}}}, author = {Bosma, Evelyn and Blom, Elma}, date = {2019-12}, @@ -25,14 +26,14 @@ keywords = {biblatex-zotero-exercice,cmu,non lu} } -@inproceedings{caiWhatMakesGood2021, +@inproceedings{cai_what_2021, title = {What Makes {{A}} Good Reference Manager? {{A}} Quantitative Analysis of Bibliography Management Applications}, shorttitle = {What Makes {{A}} Good Reference Manager?}, booktitle = {Asian {{CHI}} Symposium 2021}, author = {Cai, Tongan and Chen, Chacha and Huang, Ting-Hao and Ritter, Frank E}, date = {2021-05-08}, pages = {64--69}, - publisher = {{ACM}}, + publisher = {ACM}, doi = {10.1145/3429360.3468183}, url = {https://dl.acm.org/doi/10.1145/3429360.3468183}, urldate = {2022-07-21}, @@ -41,27 +42,27 @@ keywords = {biblatex-zotero-exercice,cmu,non lu} } -@book{sauvayreMethodesEntretienSciences2013, +@book{sauvayre_les_2013, title = {Les Méthodes de l'entretien En Sciences Sociales}, author = {Sauvayre, Romy}, date = {2013}, series = {Psycho Sup. {{Psychologie}} Sociale}, - publisher = {{Dunod}}, - location = {{Paris}}, + publisher = {Dunod}, + location = {Paris}, isbn = {978-2-10-057970-9}, pagetotal = {138}, keywords = {biblatex-zotero-exercice,cmu,Enquêtes sociologiques,Entretiens,non lu,Sociologie} } -@incollection{slaweckiParadigmsQualitativeResearch2018, +@incollection{slawecki_paradigms_2018, title = {Paradigms in Qualitative Research}, booktitle = {Qualitative Methodologies in Organization Studies}, author = {Sławecki, Bartosz}, editor = {Ciesielska, Malgorzata and Jemielniak, Dariusz}, date = {2018}, pages = {7--26}, - publisher = {{Springer International Publishing}}, - location = {{Cham}}, + publisher = {Springer International Publishing}, + location = {Cham}, url = {http://link.springer.com/10.1007/978-3-319-65217-7_2}, urldate = {2022-11-08}, isbn = {978-3-319-65217-7}, diff --git a/exercice/references-exercice.ris b/exercice/references-exercice.ris index 0ecc3ed..6ba886d 100644 --- a/exercice/references-exercice.ris +++ b/exercice/references-exercice.ris @@ -3,13 +3,13 @@ TI - BibTeX, natbib, biblatex: Managing citations in LaTeX AU - Bohemier, Kayleigh T2 - Yale University Library Research Guides AB - A short guide linking to documentation, resources for bibliographic citation styles, and other useful tools to use when citing sources using .bib files and associated packages. -LA - eng +CY - New Haven, CT +LA - en ST - Yale university library research guides UR - https://guides.library.yale.edu/bibtex -Y2 - 2022/05/17/ -KW - cmu -KW - non lu +Y2 - 2026/03/13/ KW - biblatex-zotero-exercice +KW - cmu ER - TY - CONF diff --git a/sources/polycopié.md b/sources/polycopié.md index fd3bdc1..17227b2 100644 --- a/sources/polycopié.md +++ b/sources/polycopié.md @@ -1,14 +1,14 @@ --- title: "Citer ses références et créer une bibliographie avec LaTeX et Zotero" -date: Printemps 2025 +date: Printemps 2026 creation_date: 2023-03-24T08:25:47+0100 id: 20230324082557 logo: - - ./static/latex-logo.svg - - ./static/zotero-logo.png + - ./static/images/latex-logo.svg + - ./static/images/zotero-logo.png lang: fr -bibliography: references.json -csl: heg-iso-690.csl +bibliography: ./static/references.json +csl: ./static/heg-iso-690.csl nocite: '@*' link-citations: true --- @@ -34,7 +34,7 @@ Au terme de cet atelier, vous serez en mesure de : -[1]: ./static/by-sa.svg +[1]: ./static/images/by-sa.svg [2]: https://creativecommons.org/licenses/by-sa/4.0/deed.fr "Texte de la licence en français" [3]: https://git.milhit.ch/igor/biblatex-zotero "Projet git du document" @@ -45,30 +45,31 @@ Au terme de cet atelier, vous serez en mesure de : Pour générer des documents avec LaTeX, il faut : -- Rédiger un document dans un fichier `.tex` à l'aide du *langage de balisage*, - afin de le structurer. +- 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]. +d'installer des distributions plus minimales, comme Tectonic ou TinyTeX[^6]. -Afin de faciliter la collaboration ou pour s'éviter une installation parfois -laborieuse, des services en ligne sont préférés, comme +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 travailler sur 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 +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 -plutôt riche, les éditeurs suivants peuvent être mentionnés : +riche, les éditeurs suivants peuvent être mentionnés : -- Texmaker, libre, multiplatforme, . +- Texmaker, libre, multiplatforme (Linux, MacOS, Windows), + . - TeXworks, libre, multiplatforme, . - Visual Studio Code, gratuit, multiplatforme, - , avec les extensions nécessaires. + , 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 @@ -86,6 +87,9 @@ préciser son chemin dans le fichier `.tex`. [^0]: Voir le site . [^6]: Voir le site ou le site . +[^7]: Par exemple *LaTeX Workshop*. +. + ### BibTeX VS BibLaTeX {#bibtex-vs-biblatex .newpage} @@ -130,10 +134,10 @@ 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]. Une *cheatsheet* les liste +[@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, à +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 @@ -163,10 +167,10 @@ Il suffit de : - 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 néanmoins un inconvénient : le fichier créé est -statique. Il ne sera pas mis à jour automatiquement 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. +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. [^3]: Il est également possible d'exporter une bibliothèque au format BibTeX depuis d'autres logiciels bibliographiques, notamment @@ -178,18 +182,25 @@ 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* résout deux problèmes des fichiers `.bib` générés par Zotero : -1. Elle permet d'exporter **un fichier `.bib` dynamique, c'est-à-dire que le - contenu de celui-ci sera mis à jour automatiquement lorsque la collection - correspondante dans Zotero sera modifiée**. Pour cela, il faut choisir le +1. 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) \ 1. Elle permet de **modifier une clé de citation (citekey) manuellement ou de créer un format de citekey par défaut.** -![Fenêtre de dialogue de Better BibTex](./static/better-bibtex-a-jour.png) +![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* : @@ -200,17 +211,28 @@ Pour installer l'extension (au format `.xpi`) *Better BibTeX* : from file* (Figure 3). - Sélectionner le fichier téléchargé. -![Menu « outils » de Zotero](./static/menu-outils.png) +![Menu « outils » de Zotero](./static/images/menu-outils.png){height=200px} -![Installer un fichier `.xpi`](./static/install-add-on.png) +![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 : -- Création et gestion de clés uniques. -- Conversion des caractères UTF-8 et des éventuels balisages HTML - présents dans les références. +- 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. @@ -222,10 +244,10 @@ Les informations supplémentaires à ce sujet sont disponibles sur le site 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, à l'inverse, 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. +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 Texmaker, mais le principe est similaire dans les différents @@ -239,10 +261,10 @@ Il faut donc lui préciser lequel on utilise : 1. Dans l'onglet *Commandes*, chercher l'entrée *Bib(la)tex* et entrer `biber %` (Figure 4). -![Configuer Biber pour BibLaTeX dans Texmaker](./static/texmaker-biber.png) +![Configuer Biber pour BibLaTeX dans Texmaker](./static/images/texmaker-biber.png) Lorsque l'on compile avec des références bibliographiques, il est nécessaire de -le faire quatre fois : +le faire quatre fois (cinq étapes avec l'affichage du PDF) : 1. XeLaTeX. 1. Biber. @@ -262,12 +284,12 @@ Dans le cas de l'exercice présenté, une bonne solution est d'utiliser XeLaTeX. Pour cela, il faut choisir l'option *Utilisateur* et utiliser l'assistant (figure 5). -![Assistant de configuration de compil rapide](./static/compil-rapide-assistant.png) +![Assistant de configuration de compil rapide](./static/images/compil-rapide-assistant.png) Puis, dans l'assistant, sélectionner les commandes à ajouter, une à une, dans l'ordre (figure 6). -![Ajout des commandes dans l'assistant](./static/compil-rapide-liste.png) +![Ajout des commandes dans l'assistant](./static/images/compil-rapide-liste.png) Les services web comme Overleaf ou les outils comme `tectonic`[^5] prennent eux-mêmes en charge ce genre de complexité. @@ -278,7 +300,7 @@ fonction de ce qui est indiqué dans le préambule, ce qui évite d'installer un distribution de LaTeX volumineuse. À l'exception de Biber qui doit être installé sur le système. -## Utilisation de BibLaTeX +## Utilisation de BibLaTeX {.newpage} ### Préambule : options de style et lien avec les références {#preambule} @@ -319,7 +341,7 @@ 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 -la *cheatsheet*), pour les différents cas. La syntaxe est la suivante : +l'aide-mémoire), pour les différents cas. La syntaxe est la suivante : ```latex \cite[
][]{}
@@ -331,6 +353,8 @@ la *cheatsheet*), pour les différents cas. La syntaxe est la suivante :
   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}`.
 
@@ -358,10 +382,9 @@ Elle peut prendre un certain nombre d'options, par exemple :
 Cet exemple définit le titre de la bibliographie. Par défaut, le titre est
 *Références* en français.
 
-À l'aide de la *cheatsheet* 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.
+À 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
 
@@ -387,4 +410,84 @@ Sous Windows la commande ne prend qu'un tiret pour le paramètre :
 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
+```
+
+
+
+
+
+[^8]: 
+[^9]: 
+
 ## Bibliographie {.newpage}
diff --git a/sources/static/install-add-on.png b/sources/static/install-add-on.png
deleted file mode 100644
index 2bad8a9..0000000
Binary files a/sources/static/install-add-on.png and /dev/null differ
diff --git a/sources/static/menu-outils.png b/sources/static/menu-outils.png
deleted file mode 100644
index 3cac20b..0000000
Binary files a/sources/static/menu-outils.png and /dev/null differ
diff --git a/sources/heg-iso-690.csl b/static/heg-iso-690.csl
similarity index 100%
rename from sources/heg-iso-690.csl
rename to static/heg-iso-690.csl
diff --git a/static/images/better-bibtex-a-jour.png b/static/images/better-bibtex-a-jour.png
new file mode 100644
index 0000000..f26137e
Binary files /dev/null and b/static/images/better-bibtex-a-jour.png differ
diff --git a/sources/static/bibliotheque-logo.svg b/static/images/bibliotheque-logo.svg
similarity index 100%
rename from sources/static/bibliotheque-logo.svg
rename to static/images/bibliotheque-logo.svg
diff --git a/sources/static/by-sa.png b/static/images/by-sa.png
similarity index 100%
rename from sources/static/by-sa.png
rename to static/images/by-sa.png
diff --git a/sources/static/by-sa.svg b/static/images/by-sa.svg
similarity index 100%
rename from sources/static/by-sa.svg
rename to static/images/by-sa.svg
diff --git a/sources/static/compil-rapide-assistant.png b/static/images/compil-rapide-assistant.png
similarity index 100%
rename from sources/static/compil-rapide-assistant.png
rename to static/images/compil-rapide-assistant.png
diff --git a/sources/static/compil-rapide-liste.png b/static/images/compil-rapide-liste.png
similarity index 100%
rename from sources/static/compil-rapide-liste.png
rename to static/images/compil-rapide-liste.png
diff --git a/static/images/install-add-on.png b/static/images/install-add-on.png
new file mode 100644
index 0000000..9ebdb51
Binary files /dev/null and b/static/images/install-add-on.png differ
diff --git a/sources/static/latex-logo.svg b/static/images/latex-logo.svg
similarity index 100%
rename from sources/static/latex-logo.svg
rename to static/images/latex-logo.svg
diff --git a/static/images/menu-outils.png b/static/images/menu-outils.png
new file mode 100644
index 0000000..1e95c97
Binary files /dev/null and b/static/images/menu-outils.png differ
diff --git a/sources/static/better-bibtex-a-jour.png b/static/images/old-better-bibtex-a-jour.png
similarity index 100%
rename from sources/static/better-bibtex-a-jour.png
rename to static/images/old-better-bibtex-a-jour.png
diff --git a/sources/static/texmaker-biber.png b/static/images/texmaker-biber.png
similarity index 100%
rename from sources/static/texmaker-biber.png
rename to static/images/texmaker-biber.png
diff --git a/sources/static/zotero-logo.png b/static/images/zotero-logo.png
similarity index 100%
rename from sources/static/zotero-logo.png
rename to static/images/zotero-logo.png
diff --git a/sources/static/zotero-logo.svg b/static/images/zotero-logo.svg
similarity index 100%
rename from sources/static/zotero-logo.svg
rename to static/images/zotero-logo.svg
diff --git a/sources/interface.css b/static/interface.css
similarity index 100%
rename from sources/interface.css
rename to static/interface.css
diff --git a/sources/paged.polyfill.js b/static/paged.polyfill.js
similarity index 100%
rename from sources/paged.polyfill.js
rename to static/paged.polyfill.js
diff --git a/sources/references.json b/static/references.json
similarity index 100%
rename from sources/references.json
rename to static/references.json
diff --git a/sources/reload-in-place.js b/static/reload-in-place.js
similarity index 100%
rename from sources/reload-in-place.js
rename to static/reload-in-place.js
diff --git a/sources/style.css b/static/style.css
similarity index 91%
rename from sources/style.css
rename to static/style.css
index b672f15..d9f2deb 100644
--- a/sources/style.css
+++ b/static/style.css
@@ -28,7 +28,7 @@
          * bibliothèque de l'UNIGE. */
         @top-right {
                 content: "";
-                background-image: url("static/bibliotheque-logo.svg");
+                background-image: url("images/bibliotheque-logo.svg");
                 background-position: right;
                 background-repeat: no-repeat;
                 background-size: 25%;
@@ -81,11 +81,11 @@
     .logo {
         display: inline-flex;
         justify-content: center;
-        /* width: 60%; */
+        width: 60%;
         margin: 2em auto 1em auto;
     }
     .logo img {
-        max-width: 50%;
+        max-height: 7rem;
         padding: .5em;
     }
 
@@ -178,6 +178,10 @@
         text-decoration: none;
         padding-left: 2px;
     }
+    .footnote-ref sup {
+        vertical-align: text-top;
+        font-size: smaller;
+    }
     .footnote-back {
         font-size: small;
         text-decoration: none;
@@ -196,6 +200,7 @@
     figure img {
         max-width: 85%;
         margin: 0 auto;
+        max-height: 35vh;
     }
     figcaption {
         text-align: center;
@@ -207,13 +212,28 @@
         content: "Figure " counter(figureNumber) " : ";
     }
 
-    .exercise {
+    .exercise,
+    .warning {
         background-color: #f2f1f1;
         width: 90%;
         margin: 0 auto;
         border: 2px solid #d80669;
         border-radius: .5em;
-        padding: 0 .5em;
+        padding: .5em;
+        display: flex;
+        align-items: center;
+    }
+
+    .exercice > p,
+    .warning > p {
+        margin: 0;
+        padding-left: .5em;
+    }
+
+    .exercice::before,
+    .warning::before {
+        content: "⚠️";
+        font-size: larger;
     }
 
     blockquote {
diff --git a/sources/template.html b/static/template.html
similarity index 90%
rename from sources/template.html
rename to static/template.html
index 46946b6..abf1ee5 100644
--- a/sources/template.html
+++ b/static/template.html
@@ -31,9 +31,9 @@ $endfor$
      when they are unnecessary. -->
 $if(noscript)$
 $else$
-  
-  
-  
+  
+  
+  
 $endif$
 $for(header-includes)$
   $header-includes$