Convertir avec Pandoc
Nous avons installé Pandoc à la fin du chapitre précédent. Voici maintenant un premier contact avec Pandoc, sans entrer dans trop de détails techniques. C'est un choix délibéré : si Pandoc est un outil indispensable, sa polyvalence peut paraître intimidante au premier abord. Pour ne pas surcharger votre apprentissage, nous restons ici en surface. Je n'aborderai de Pandoc qu'une faible partie de ses capacités réelles.
En effet, maintenant que vous savez écrire en Markdown, il me semble important de montrer ce qu'on peut concrètement faire à partir de fichiers Markdown. Bien entendu je n'ai pas encore abordé des sujets plus complexes comme la manière d'entrer une bibliographie ou utiliser un modèle de mise en page pour la sortie. Je n'ai pas non plus montré comment on se sert de Pandoc de manière automatisée avec un éditeur Markdown (ce sera pour plus tard). Mais il me semble important, dès maintenant, de montrer un des mécanismes crucial par lequel notre chaîne de production va fonctionner : la conversion de fichiers.
Il y a d'autres manières de convertir des fichiers qu'en utilisant Pandoc. Mais cet outil est si puissant qu'il est impossible de faire l'impasse dessus.
Lorsque je parle de fichiers, j'entends : toutes sortes de fichiers. Des fichiers .md vers .odt, .docx ou .pdf ou .html, des .odt vers .html, des .md vers .pptx, etc. Et parmi tout cela, le Markdown est le plus convertible possible en toutes sortes de formats, c'est cela qui fait tout son intérêt.
Et oui, Pandoc s'utilise en ligne de commande, mais c'est hautement pédagogique ! c'est la meilleure manière de comprendre comment fonctionne la conversion.
Essayer Pandoc
Vous pouvez essayer Pandoc et ses multiples formats de conversion sur le site pandoc.org. En haut à droite vous obtenez la ligne de commande utilisée. Vous pouvez télécharger le résultat de la production.
La règle d'or de la commande Pandoc¶
Toutes les commandes de base de Pandoc suivent la même structure logique :
- Le premier nom est le fichier que vous avez écrit.
- L'option
-o(Output) indique que vous voulez créer un fichier de sortie. - Le dernier nom est le nom du fichier que vous voulez obtenir (Pandoc déduit le format grâce à l'extension :
.docx,.odt, etc.).
Exemples de conversions¶
Voici les commandes les plus utiles pour vos travaux quotidiens. Pour que ces exemples fonctionnent, ouvrez votre terminal directement dans le dossier où se trouvent vos textes (ou naviguez jusqu'à ce dossier).
Vers Microsoft Word¶
Si vous devez envoyer votre brouillon à un·e collègue qui ne travaille que sur Word (dommage !) :
Vers LibreOffice (format ouvert)¶
Si vous préférez finaliser votre mise en page dans la suite bureautique libre de Linux Mint (c'est aussi l'une des manière de produire un PDF par la suite, sans utiliser LaTeX, nous en reparlerons) :
Fusionner et convertir d'un coup¶
C'est ici que l'on gagne un temps précieux. Vous pouvez donner plusieurs fichiers à Pandoc, il les collera ensemble dans l'ordre pour créer un seul document final tout en convertissant :
Avec une bibliographie¶
Pour clore cette initiation, voici l'exemple qui démontre pourquoi Pandoc est indispensable. La gestion des citations et de la bibliographie est souvent la tâche la plus ingrate : avec Pandoc, elle devient automatique.
Pour générer un document avec une bibliographie aux normes, il vous faut trois fichiers :
- Votre texte (
.md) : contenant des clés de citation (ex:@nom2024). - Votre base de données (
.bib,.jsonou.yaml) : exportée depuis Zotero ou un autre gestionnaire. - Le style (
.csl) : un petit fichier.cslqui définit les règles de ponctuation de la norme (ici, l'ISO-690 français) que vous téléchargez depuis le Zotero Style Repository
Voici la commande magique à taper dans votre terminal :
pandoc mon_article.md --citeproc --bibliography=ma_biblio.bib --csl=iso690-note-fr.csl -M lang=fr-FR -o mon_article.odt
Explications :
--citeproc: c'est le moteur de Pandoc qui s'occupe de lire les citations et de générer la liste de références à la fin du document.--bibliography=ma_biblio.bib: vous indiquez où se trouve votre fichier de sources bibliographiques.--csl=iso690-note-fr.csl: le fichier CSL dit à Pandoc quelque chose comme : « affiche les noms en majuscules, utilise 'et al.' en italique, etc. et range tout par ordre alphabétique selon la norme ISO ».
Si vous décidez demain d'envoyer votre article à une revue qui utilise une norme différente (comme APA ou Chicago), vous ne changez rien à votre texte. Vous changez simplement le nom du fichier .csl dans votre commande Bash, et Pandoc reformate l'intégralité de vos 50 citations en une seconde.
Et si l'en-tête YAML est correcte¶
Si vous avez bien compris l'intérêt de réaliser un en-tête YAML pour votre fichier, vous pourriez renseigner d'emblée divers éléments de la commande dans cet en-tête. Ce qui aurait pour intérêt d'en limiter la longueur. L'exemple typique est cette occurence ci-dessus : -M lang=fr-FR où le -M signifie qu'on écrase les métadonnées pour les reproduire dans la commande.
Dès lors, avec un en-tête de ce type (ici les fichiers .bib et .csl sont dans le même dossier que le fichier que nous convertissons, mais on peu indiquer les chemins) :
---
title: "L'impact de la technologie sur les SHS"
subtitle: "Rapport d'étape 2025"
author: "Jean Dupont"
date: "21 décembre 2025"
lang: fr-FR
bibliography: "Ma-biblio.bib"
csl: "iso690-author-date-fr-no-abstract.csl"
keywords: [Linux, Markdown, Recherche]
---
La ligne de commande pour convertir le fichier vers un .odt (ou .docx), comprenant la gestion de la bibliographie et son affichage, se simplifie grandement. Il ne reste qu'à préciser que nous utiliserons le moteur Citeproc. Ainsi :
Si vous avez plusieurs fichiers Markdown dont les en-têtes sont correctement construits, avec des fichiers de bibliographie différents et des modèles CSL différents, plus besoin de refaire à chaque fois les commandes : les bonnes informations sont déjà dans les en-têtes. Les logiciels comme Zettlr ont bien compris ce principe.
Rien de nouveau
Le système est déjà fort connu des utilisateurs de LaTeX, qu'ils utilisent CSL ou les fichiers BibteX (.bib) avec un moteur de conversion. LaTeX est aussi un langage de balisage, plus complexe que Markdown, et a pour objectif de produire des documents dont la mise en page est juste parfaite (c'est un système complet de composition). Il est possible avec Pandoc de convertir des fichiers Markdown en fichiers LaTeX. Ce qui explique que beaucoup d'utilisateurs de LaTeX utilisent le Markdown en première intention, puis retravaillent la mise en page avec LaTeX par la suite… sauf que LaTeX est aussi un langage de programmation et permet de réaliser de véritables prouesses dans le traitement de l'information.