La production de PDF
Nous voici rendu à un point crucial de notre chaîne de production. Après avoir appris à séparer la création de texte de la mise en forme finale au profit du traitement de l'information, il nous fous effectuer encore un détour.
Jusqu'à présent, nous avons vu comment exporter du texte vers un logiciel de traitement de texte « courant » comme Libre Office ou MSWord. Il faut cependant considérer que pour produire des documents en PDF dont la mise en page est non seulement automatisée mais aussi parfaitement calibrée pour un rendu scientifique, ce n'est pas vers ces logiciels qu'il faut se tourner.
Certes, dans la famille des logiciels de traitement de texte les plus courants, LibreOffice tient certainement le haut du pavé pour tout ce qui concerne la production de documents longs. Couplé au plugin Zotero, il remplira parfaitement son office pour mettre en page tout ce que vous aurez exporté depuis Zettlr par exemple, y compris pour produire un PDF final. Toutefois, si votre objectif est la composition de documents par une automatisation de la mise en page à partir de fichiers sources (ici, en Markdown), nous parlons d'un processus d'automatisation complètement différent.
Composer un document¶
La composition de document désigne le processus qui consiste à transformer un contenu structuré en un document lisible et esthétiquement cohérent, en appliquant des règles typographiques et de mise en page. C'est une pratique différente de celle qui consiste à composer un document en même temps que d'en rédiger le contenu comme on le fait couramment avec un logiciel comme LibreOffice. C'est d'ailleurs pour bien séparer le contenu et le traitement de l'information de la composition de document que nous utilisons des logiciels comme Zettlr.
La composition concerne surtout la manière de présenter un document, pas le fond :
- choix des polices et de leurs tailles,
- gestion des marges, interlignes, alignements,
- césure et justification,
- hiérarchie visuelle (titres, sections, légendes),
- placement des figures, tableaux, notes,
- numérotation, références, tables (matières, figures),
- gestion des pages (sauts, veuves/orphelines).
Autant de tâches que l'on croit à tort être d'emblée gérées par les traitements de texte « graphiques », alors qu'il s'agit justement des procédures qui font perdre le plus de temps en utilisant ces logiciels.
Entendons-nous bien : il est tout à fait possible de construire une mise en page parfaite avec LibreOffice. Son utilisation des formats et des styles est justement faite pour cela, notamment pour des documents longs.
Par exemple, si l'on exporte un fichier Markdown avec Pandoc pour Libre Office, il est tout à fait possible de lui faire respecter un modèle de style lors de la conversion ou d'appliquer ce modèle (template) directement par la fonction d'import de styles.
En revanche, si nous souhaitons partir d'un document source que l'on veut transformer en article, ou en simple document de cours à imprimer, ou les deux, et surtout si l'on veut répéter l'opération sur plusieurs documents dont on souhaite automatiser la mise en page selon des modèles prédéfinis, il vaut mieux automatiser la composition.
Enfin, si votre document produit par Zettlr (ou autre) comporte des compositions de mathématiques ou de diagrammes, réalisés grâce à des « moteurs » particuliers gérés par ces programmes et dont le langage est compatible avec les composeurs de documents autres que LibreOffice, vous risquez de perdre ces contenus et devoir les refaire avec les modules spécifiques de Libre Office (valable aussi pour MSWord), à moins de les exporter comme des images, ce qui cause alors une perte différente.
Automatiser¶
Il faut donc apprendre à séparer la rédaction de la composition. Ceci en vertu de l'idée qu'un ordinateur est avant tout une machine à automatiser les choses. Vous ne gagnerez pas seulement du temps mais aussi, en respectant ce pour quoi les logiciels sont faits, de l'efficacité.
En créant des fichiers Markdown, nous donnons une structure logique à nos documents. Si bien qu'automatiser leur composition revient à traduire cette structure logique dans une forme de mise en page qui correspond à leur contenu.
Par exemple si vous écrivez un document qui contient des sections, elles comporteront des titres, ce qui les distingue d'un roman qui ne comporte que des titres de chapitres. Ou si vous écrivez un rapport, les encarts et autres éléments à mettre en exergue ne sont pas des styles mais des éléments de mise en page identifiables au long du document (démonstrations, définitions, notes en marge, etc.).
Les logiciels qui permettent la composition de documents utilisent des langages balisés. Par exemple :
- Markdown :
# Titre de section,`# Titre de sous-section,_italique_ - HTML :
<h1>Titre de section</h1>,<h2>Titre de sous-section,<i>italique</i> - Typst :
= Titre de section,== Titre de sous-section,_italique - LaTeX :
\section{Titre de section},\subsection{Titre de sous-section},\emph{italique}
Et c'est parce qu'on utilise un langage balisé pour structurer, qu'il est possible d'automatiser la composition, justement.
Créer des PDFs¶
Il y a plusieurs manières d'automatiser la composition de documents en vue de produire des PDF prêts à imprimer (ou diffuser). Les éditeurs Markdown ont généralement un générateur de PDF « par défaut » et proposent de passer par Pandoc (à installer sur votre système) pour produire les meilleurs résultats.
Rappelons que Pandoc est d'abord un convertisseur de documents. Il se contente de convertir vos documents Markdown dans un autre format. Tout dépend ensuite de ce que vous voulez faire avec ce nouveau format. Il faut donc ajouter de nouvelles opérations, et là aussi votre éditeur peut s'en charger. On appelle ce genre d'automatisation des pipelines, c'est-à-dire plusieurs étapes d'instructions.
PDF via HTML¶
Zettlr a un fonctionnement qui permet de comprendre le mécanisme « par défaut » pour produire des PDF.
Dans Zettlr, lorsque vous avez écrit votre document (avec ou sans références bibliographiques), vous pouvez simplement faire CTRL+P, ce qui vous affichera un aperçu du document à imprimer.
Vous obtiendrez exactement la même chose en cliquant sur l’icône d'exportation en haut, et en choisissant simple-pdf.
Que fait alors Zettlr ? Il appelle et transforme votre Markdown en HTML et, grâce à un moteur de rendu, le même que celui que vous utilisez dans votre navigateur Web lorsque vous voulez imprimer une page web, il crée le PDF.
graph LR
A[Fichier Markdown] --> B{Zettlr}
B --> C[Conversion en HTML]
C --> D[Moteur de rendu Web]
D --> E[Génération du PDF]
style B fill:#f9f,stroke:#333,stroke-width:2px
style E fill:#0075ff,stroke:#fff,color:#fff
Vous pouvez faire l'expérience. Cliquez sur l’icône d'exportation en haut, et choisissez cette fois HTML. Enregistrez ce fichier dans un dossier, puis ouvrez-le avec votre navigateur web, comme Firefox. Voilà une page HTML contenant votre document. Faite CTRL+P et vous pourrez créer un PDF de cette manière, ce sera le même rendu.
Et si ce rendu ne vous convient pas ? c'est parce que le modèle CSS par défaut ne vous plaît pas.
Hackez cela !¶
Pour rappel, si le rendu PDF est ni plus ni moins qu'une impression d'une page web, alors il faut changer l'apparence de cette page web. Cela s'obtient en modifiant les styles de la feuille CSS (Cascading Style Sheet) à laquelle votre page HTML fait appel.
HTML et CSS travaillent ensemble pour afficher une page : HTML décrit la structure et le contenu (titres, paragraphes, listes, images), tandis que CSS définit l’apparence visuelle de ces éléments (polices, couleurs, marges, positionnement, mise en page). Cette séparation permet de changer le style d’un même contenu sans modifier sa structure.
Dans les préférences de Zettlr, vous pouvez avoir accès à la gestion des assets, c'est-à-dire les ressources qui sont associées aux documents. Dans la partie Gestion des assets, concernant HTML.yaml, localisez la ligne css: []. Là vous pouvez indiquer le chemin de votre fichier CSS qui sera alors utilisé pour la sortie HTML. Par conséquent, lorsque vous exporterez en PDF via simple-pdf ou lorsque vosu appuierez sur CTRL+P, votre document adoptera ces styles.
graph TD
subgraph Source
MD[Fichier Markdown]
end
subgraph Configuration Zettlr
YAML[Gestion des Assets : HTML.yaml]
CSS_FILE[Fichier CSS Externe]
YAML -.->|Indique le chemin vers .css| CSS_FILE
end
subgraph Processus de Rendu
MD -->|Transformation| HTML[Structure HTML]
CSS_FILE -->|Définit l'apparence| STYLE[Styles CSS]
HTML & STYLE --> RENDER[Moteur de Rendu Web]
end
subgraph Sortie
RENDER -->|Export / CTRL+P| PDF[Document PDF Stylisé]
end
style MD fill:#fdf6e3,stroke:#657b83
style PDF fill:#d33682,stroke:#fff,color:#fff
style CSS_FILE fill:#268bd2,stroke:#fff,color:#fff
style YAML fill:#eee,stroke:#999,stroke-dasharray: 5 5
PDF via LaTeX¶
La version simple PDF n'intègre pas tout ce qui devrait être fait pour un vrai document scientifique. Vous avez peut-être parmi vos amis et collègues des utilisateurs de LaTeX. Ils vous en ont sans doute parlé en chantant les louages de ce grand composeur de documents. Ils n'ont pas trot, je pense qu'on n'a pas fait mieux depuis (sauf peut-être Typst dont nous parlerons plus loin).
Ce n'est pas l'objectif de ce guide de vous apprendre à utiliser LaTeX. Sachez cependant que vous n'avez pas besoin de maîtriser LaTeX pour vous en servir depuis Zettlr. Quelques connaissances de base suffisent. Par exemple, cette possibilité d'intégrer directement des commandes LaTeX dans vos fichiers (dans l'en-tête YAML comme dans le contenu du document).
Dans les pipelines de Zettlr, il y a la possibilité d'utiliser Pandoc + LaTeX + xeLaTeX pour produire des PDF de qualité. Pour cela, évidememnt, tout comme vous avez installé Pandoc, il vous faut installer LaTeX.
Il y a la possibilité d'installer la version minimale comprenant la distribution Texlive de base et le compilateur xelatex :
Et il y a la version complète :
Personnellement je préconise la version complète car elle vous permettra d'utiliser complètement LaTeX et vous initier. Par ailleurs, s'il vous vient d'intégrer du code LaTeX dans un document et que, pour le rendu, il vous manque un paquet absent de la version de base, il vous faudra l’installer de toute façon.
Une fois LaTeX et xeLaTeX installés, c'est un jeu d'enfant que de produire de très beaux documents. Comprenez simplement que l'en-tête YAML de votre source Markdown pourra alors être renseignée de manière à produire les PDF que l'on trouve par exemple dans les bonnes revues scientifiques. Il y a même des modèles tout fait.
À minima, l'utilisation de ce pipeline vous permet d'éviter d'entrer à chaque fois une ligne de commande ressemblant à ceci :
pandoc monfichier.md --citeproc --bibliography=mabiblio.bib --csl=monstyleCSL.csl --pdf-engine=xelatex --template=modele-latex.tex -o sortie.pdf
Et, typiquement, un en-tête YAML pourra ressembler à cela :
title: "Titre du document"
author: "Nom de l’auteur"
date: "2025-01-01"
lang: fr
documentclass: article
classoption:
- 12pt
- a4paper
geometry:
- margin=2.5cm
linestretch: 1.2
toc: true
toc-depth: 3
numbersections: true
bibliography: mabiblio.bib
csl: apa.csl
abstract: |
Ceci est le résumé du document.
Il peut contenir plusieurs lignes et s'affichera dans le PDF
au-dessus du corps principal du texte sous le titre « abstract ».
graph TD
subgraph Document Unique
MD[Fichier Markdown]
YAML[En-tête YAML / Metadata]
MD --- YAML
end
subgraph Conversion [Moteur de conversion]
YAML -->|Fournit les variables : template, police, marges| PANDOC{Pandoc}
MD -->|Fournit le contenu| PANDOC
PANDOC -->|Génère le code source| TEX[.tex / Code LaTeX]
end
subgraph Compilation [Moteur]
TEX -->|Compilation| ENGINE[xelatex / pdflatex]
ENGINE -->|Génère| PDF[Document PDF Final]
end
style YAML fill:#fff3b0,stroke:#e09f3e,stroke-width:2px
style MD fill:#fdf6e3,stroke:#657b83
style PDF fill:#e74c3c,stroke:#fff,color:#fff
style PANDOC fill:#f39c12,stroke:#fff
PDF via Libre Office (non automatique)¶
Comme vous avez pu vous en douter lorsque nous avons abordé la question de la conversion de fichiers Markdown vers le format .odt ou .docx, il possible de tout simplement convertir à partir d'un logiciel de traitement de texte bureautique classique.
À ceci près, tout de même, que lors de la conversion, Pandoc aura prit soin d'appliquer des styles, par exemple le style citation si vous avez une citation, un style pour la bibliographie, la police de caractère des paragraphes, ou le style First paragraph pour tous les premiers paragraphes de chaque section. Avec Libre Office, il est très facile de modifier ces styles pour obtenir le résultat que vous souhaitez.
Astuce
Vous pouvez créer un document markdown contenant tous les éléments markdown que vous utilisez (citations, bibliographie, titres, etc.). Vous l'exportez en .odt et vous modifiez les style comme vous le souhaitez (sans changer leur nom). Conservez ensuite ce document. La prochaine fois que vous exportez en .odt, il vous suffira d'importer ce style et l'appliquer (avec cette méthode) pour transformer ensuite en PDF.
PDF via Typst (non automatique)¶
Nous avons mentionné LaTeX mais c'était sans compter un petit nouveau qui a fait son apparition récemment dans le domaine : Typst. Typst est un composeur de document, très léger comparé à LaTeX, et dont la syntaxe de base ressemble très fortement au Markdown. Le résultat obtenu une fois le document compilé équivaut à s'y méprendre au résultat de LaTeX.
Pour utiliser Typst, il faut l'installer. À ce jour (décembre 2025), c'est une installation « manuelle » qu'il faut faire (en ligne de commande) en téléchargeant Typst et en l'installant de manière à ce que le chemin (la variable d'environnement PATH) de vos commandes prenne en en compte le chemin vers le programme Typst. Si vous ne comprenez pas la phrase précédente, renseignez-vous ou ne faites rien.
Vous pouvez ensuite exporter vos documents Markdown vers le format Typst. Cela fait, vous pouvez retravailler vos documents par exemple sur VSCodium (en utilisant le plugin Tinymist Typst) ou bien en installant un éditeur Typst comme Typesetter (dans les dépôts de votre distribution). Ces solutions permettent d'éditer des fichiers Typst avec, dans un volet, la prévisualisation directe du résultat attendu (comme le PDF final).
Pour finir¶
Il y a deux solutions pour créer des PDF sans réellement sortir de Zettlr (de votre éditeur Markdown). La première consiste à exporter via le moteur de rendu HTML, l'autre via le moteur LaTeX. Certains éditeurs, comme Obsidian, proposent des plugins différents, et ont même des export PDF clé en main.
Aucun n'égale le pipeline permettant d’utiliser Pandoc + LaTeX + xeLaTeX pour obtenir un rendu véritablement académique pour votre production finale. Toutefois, si vous êtes assez patient pour apprendre quelques ficelles de CSS, il est tout à fait envisageable d'obtenir un résultat excellent avec le HTML.
Les autres solutions supposent de quitter votre éditeur pour retravailler votre document une fois exporté dans un certain format ou bien utiliser encore d'autres moteurs comme Weazyprint dont l'export peut se faire aussi avec Pandoc (avec la commande --pdf-engine=weasyprint.
Si les possibilités sont aussi nombreuses, c'est bien la force du logiciel libre. Mais c'est aussi un défi qui vous oblige à bien réfléchir à ce que vous désirez vraiment, afin de le produire.