Saut de page Markdown PDF : commencer une nouvelle page exactement où vous voulez
Par Équipe pdftomd.tools · Mis à jour le · 8 min de lecture
Markdown n'a pas de syntaxe pour les sauts de page. Pour un saut de page dans le PDF, on insère à la place une ligne de HTML : <div style="page-break-after: always"></div>, avec une ligne vide au-dessus et en dessous. Les outils d'export basés sur HTML, y compris notre outil pour convertir Markdown en PDF, commencent une nouvelle page à cet endroit. Avec Pandoc et sa voie LaTeX, écrivez \newpage. Vérifiez ensuite qu'il n'y a pas de pages blanches dans le PDF.

Pourquoi Markdown n'a pas de saut de page
Markdown a été écrit pour le web, et une page web n'a pas de pages. Ni la syntaxe d'origine ni CommonMark ne définissent de saut de page. Ce qui s'en rapproche le plus, c'est une ligne de trois tirets ---, une rupture thématique : elle devient une ligne <hr>, pas une nouvelle page. Beaucoup de gens l'essaient d'abord comme saut de page, puis se demandent pourquoi rien ne se passe.
Ce que Markdown autorise, c'est le HTML brut. La plupart des outils convertissent d'abord le Markdown en HTML, puis impriment ce HTML en PDF ; un saut de page est donc en réalité une règle CSS posée sur un élément HTML. L'exception est la voie par défaut de Pandoc, qui passe par LaTeX et attend plutôt une commande LaTeX.
Les extraits de saut de page qui fonctionnent
Choisissez la ligne qui correspond à votre outil et placez-la seule sur sa ligne, avec une ligne vide avant et après, pour que le parseur Markdown la traite comme un bloc HTML :
Last paragraph of the first part.
<div style="page-break-after: always"></div>
## Part two
This heading starts a new page.- CSS moderne :
<div style="break-after: page"></div>, oubreak-before: pagesur l'élément qui doit ouvrir la page. - Directement sur un titre :
<h2 style="page-break-before: always">Partie deux</h2>, si écrire ce titre en HTML ne vous gêne pas. - Extension VS Code Markdown PDF : son README indique
<div class="page"/>; c'est la feuille de style de l'extension qui produit le saut. C'est la réponse habituelle pour VS Code, et le style en ligne ci-dessus y fonctionne aussi. - Pandoc avec LaTeX (la voie par défaut vers le PDF) : une ligne avec
\newpage. L'extensionraw_texne la transmet telle quelle qu'aux writers LaTeX et ConTeXt. La commande newpage de Pandoc n'est pas prévue pour une sortie HTML ; si vous utilisez un moteur HTML pour le PDF, prenez plutôt le div.
Pourquoi deux noms ? La spécification CSS sur la fragmentation a remplacé page-break-before et page-break-after par break-before et break-after, en gardant les anciens noms comme alias : page-break-after: always se comporte comme break-after: page. L'ancienne forme reste le choix le plus sûr pour les vieux outils ; MDN documente les deux.
“Force toujours un saut de page avant/après la boîte principale.”
Comment notre outil traite un saut manuel
Jusqu'au 19 oct. 2026, notre outil ignorait les sauts de page manuels et choisissait lui-même chaque coupure. Désormais, il lit les valeurs calculées break-before et break-after de chaque élément du document rendu : un saut de page CSS dans un attribut style est donc respecté, avec l'ancienne comme avec la nouvelle écriture. L'aperçu en direct trace une ligne en pointillés marquée « Saut de page » là où la nouvelle page commence, et après l'export, un message indique combien de sauts manuels ont été appliqués.

Quelques règles gardent un résultat propre :
- Un saut tout au début ou tout à la fin du document est ignoré : vous n'aurez jamais de première ou de dernière page blanche.
- Deux sauts à la suite comptent pour un seul. Chrome imprime une page blanche entre les deux ; nous partons du principe que c'est rarement voulu.
- Les valeurs
left,right,rectoetversocommencent une nouvelle page. Nous n'ajoutons pas de page blanche pour tomber sur une page de gauche ou de droite. ---reste une ligne horizontale, comme le définit Markdown.- Les sauts automatiques s'appliquent toujours à l'intérieur des longues parties et évitent toujours de couper une ligne, une ligne de tableau ou une image.

Ce que nous avons testé, comparé à l'impression depuis Chrome
Nous avons écrit 9 petits documents, chacun testant une façon d'écrire un saut de page. Chacun a été exporté avec le vrai bouton Télécharger le PDF, puis relu avec pdfinfo et pdftotext pour voir quel texte avait atterri sur quelle page. Comme référence, nous avons aussi imprimé le même HTML avec l'imprimante PDF de Chrome. Dans nos tests, les 9 cas ont donné les pages attendues sans page blanche, et 8 sur 9 correspondaient à Chrome page par page.
| Balisage | Nos pages | Pages dans Chrome | Pages blanches (les nôtres) | Résultat attendu | Par rapport à Chrome |
|---|---|---|---|---|---|
<div style="page-break-after: always"> | 2 | 2 | 0 | Oui | Identique |
<div style="break-before: page"> | 2 | 2 | 0 | Oui | Identique |
<div style="break-after: page"> | 2 | 2 | 0 | Oui | Identique |
<h2 style="page-break-before: always"> | 2 | 2 | 0 | Oui | Identique |
| Saut, puis un titre Markdown | 2 | 2 | 0 | Oui | Identique |
| Deux div de saut à la suite | 2 | 3 | 0 | Oui | Différent |
| Saut tout au début et tout à la fin | 1 | 1 | 0 | Oui | Identique |
--- (une ligne Markdown) | 1 | 1 | 0 | Oui | Identique |
| Sauts de page manuels et automatiques mélangés | 4 | 4 | 0 | Oui | Identique |
Garder un titre avec son texte, et les autres coupures malvenues
Les sauts manuels règlent les endroits que vous connaissez. Le reste est l'affaire de l'outil d'export, et l'erreur classique est un titre seul en bas de page alors que son texte commence à la page suivante. Les traitements de texte appellent la solution « paragraphes solidaires » ou « lier au suivant ». En CSS, la règle correspondante est break-after: avoid sur les titres, mais la prise en charge des valeurs avoid à l'impression varie d'un moteur à l'autre ; testez avant de vous y fier.

Notre outil le fait sans aucun balisage : un titre reste avec la première ligne qui le suit, et les lignes de tableau et les images ne sont pas coupées si elles tiennent sur une page. Si l'endroit où une page se termine ne vous plaît toujours pas, placez un saut de page manuel juste avant le titre. L'image ci-dessous montre où une coupure peut tomber et où elle ne le peut pas.

Les tableaux demandent un soin particulier. Notre guide pour imprimer des tableaux traite des tableaux longs et larges, et un export rapide avec MD en PDF est le moyen le plus rapide d'essayer une mise en page avant le vrai document.
Erreurs courantes avec les sauts de page
Quand un saut de page ne fait rien, la cause est presque toujours l'un de ces quatre points :
- Pas de ligne vide après le div. En CommonMark, un bloc HTML qui commence par
<div>continue jusqu'à la prochaine ligne vide. Le texte placé juste en dessous est avalé dans le HTML et s'affiche sans mise en forme, avec##et**en caractères littéraux. - Le div est dans une liste, une citation ou un tableau. Placez-le au premier niveau du document, là où tout outil le voit comme un bloc à part.
- Le HTML brut est désactivé. Certains moteurs de rendu désactivent le HTML par défaut et affichent la balise comme du texte. Activez le HTML dans les réglages, ou utilisez la syntaxe de saut propre à l'outil s'il en a une.
- Juger d'après l'aperçu. Les aperçus qui nettoient le HTML suppriment souvent les styles en ligne : le saut semble absent à l'écran mais fonctionne quand même à l'export. Notre aperçu affiche le repère en pointillés, mais le vrai test reste le fichier exporté.
Une autre habitude aide : placez chaque saut manuel juste au-dessus du titre de la partie qui doit commencer sur une nouvelle page, jamais en dessous. Le titre et le premier paragraphe restent ainsi toujours ensemble, et si vous supprimez le saut plus tard, le document se lit toujours dans le bon ordre.
Vérification rapide avant de partager le PDF
- Faites défiler toutes les pages et repérez les pages blanches ; elles signalent en général deux sauts à la suite ou un saut à la fin.
- Vérifiez que chaque partie commence en haut de sa page, titre en premier.
- Cherchez un mot de la dernière page pour confirmer que la couche de texte est réelle.
- Si le PDF est imprimé en recto verso et que les chapitres doivent commencer sur une page de droite, utilisez un outil qui gère
break-before: right; le nôtre le traite comme une simple nouvelle page.
Sources
- CSS Fragmentation Module Level 3 — W3C
- break-before — MDN Web Docs
- page-break-after — MDN Web Docs
- CommonMark Spec 0.31.2, Thematic breaks — CommonMark, 2024
- Pandoc User’s Guide (raw_tex extension) — pandoc.org
- Markdown PDF (VS Code extension) — yzane, GitHub
FAQ
Comment insérer un saut de page en Markdown pour un PDF ?
Markdown n'a pas de syntaxe pour ça. Ajoutez la ligne HTML <div style="page-break-after: always"></div> avec des lignes vides avant et après ; les outils d'export PDF basés sur HTML commencent une nouvelle page à cet endroit.
Est-ce que `---` crée un saut de page ?
Non. Trois tirets donnent une rupture thématique, qui s'affiche comme une ligne horizontale. Dans le PDF, cela reste une ligne.
Faut-il utiliser page-break-after ou break-after ?
Les deux marchent. break-after: page est le nom CSS actuel, page-break-after: always l'ancien alias. L'ancien est un peu plus sûr avec les vieux outils ; notre outil lit les deux.
Comment insérer un saut de page avec Pandoc ?
Pour un PDF via LaTeX, mettez \newpage sur sa propre ligne. Si vous produisez le PDF via HTML (par exemple avec un moteur HTML), prenez plutôt le div CSS, car la commande LaTeX n'est transmise qu'aux writers LaTeX et ConTeXt.
Pourquoi ai-je obtenu une page blanche ?
Le plus souvent, deux sauts se suivent, ou un saut se trouve tout à la fin. Chrome imprime une page blanche dans les deux cas ; notre outil la saute.
Chaque H2 peut-il commencer sur une nouvelle page ?
Avec une feuille de style, h2 { break-before: page; } s'en charge dans les outils qui acceptent du CSS personnalisé. Dans notre éditeur, mettez la ligne div avant chaque H2, ou écrivez le titre sous la forme <h2 style="page-break-before: always">.

