Chapitre 11 Pour aller plus loin sur Pagedown
Pagedown est une implémentation pour Rmarkdown de paged.js, qui permet de réaliser des documents html paginés.
C’est un outil puissant pour concilier les fonctionnalités HTML (donc mise en formes CSS) et la possibilité d’impression PDF, galerie :
https://www.justice.gouv.fr/sites/default/files/2026-01/Infos_Rapides_Justice_n35.pdf

https://edouard-legoupil.github.io/unhcr_paged/#graphics-with-style

knitr::include_url("https://dreal.statistiques.developpement-durable.gouv.fr/parc_social/2020/www/export_demarchePropre.pdf")11.1 Paged.js

paged.js est une bibliothèque javascript visant à mettre en oeuvre [les propriétés css dédiées au médias paginés(https://www.w3.org/TR/css-page-3/) du W3C.
Ces spécifications visent à pouvoir réaliser des documents prêt pour l’impression avec les technologies du web (html, css, js).
Ces spécifications sont toujours en draft pour le moment au sein du W3C, donc pas vraiment reconnues par les principaux navigateurs. D’où le besoin de cette bibliothèque javascript pour pouvoir les mettre en oeuvre.
11.2 Démarrer avec Pagedown
Pour installer {pagedown} depuis le CRAN :
Depuis Rstudio, cela vous apporte un nouveau type de document rmarkdown, accessible depuis File -> New File -> Rmarkdown... -> From template -> Paged HTML document.
Une fois celui ci créé, vous pouvez cliquer sur knit de l’interface de Rstudio. Cela vous compilera le document par défaut en html, qui sera accessible dans le répertoire du projet et visible par défaut dans le viewer.

La structure du yaml est relativement proche d’un document Rmarkdown classique.
A noter toutefois une option utile à retenir, la balise knit: pagedown::chrome_print qui vous permet de compiler directement votre document en pdf grâce à la fonction pagedown::chrome_print() livrée dans le package.
Cette fonction par ailleurs peut être utilisée pour imprimer en pdf tout document html en pdf ou en format image. Elle utilise la technologie d’impression de google chrome.
title: "A Multi-page HTML Document"
author: "Yihui Xie and Romain Lesur"
date: "2026-03-09"
output:
pagedown::html_paged:
toc: true
\# change to true for a self-contained document, but it'll be a litte slower for Pandoc to render
self_contained: false
\# uncomment this line to produce HTML and PDF in RStudio:
\#knit: pagedown::chrome_print11.3 Configurer votre yaml
Les documents html paginés étant destinés à être imprimés, l’entête yaml d’un document Pagedown contient des options du yaml spécifiques. En voici quelques unes intéressantes à connaître :
- Pour modifier le titre du sommaire du document :
- Pour ajouter et configurer une liste de tableaux et de graphiques dans le sommaire.
Si vous ne voulez pas que les graphiques et tableaux apparaissent dans le sommaire, vous pouvez utiliser lot-unlisted: true.
- Pour modifier le préfixe du titre du chapitre.
Vous pouvez ensuite insérer un chapitre en utilisant # Ceci est un titre de chapitre {.chapter}
- Pour transformer automatiquement un lien url dans votre document en note de bas de page.
Ainsi [CRAN](https://cran.r-project.org/) sera traduit comme CRAN^[(https://cran.r-project.org/)].
- front_cover et back_cover pour ajouter une image pour la première de couverture et la 4e de couverture :
pagedown::html_paged:
front_cover: !expr system.file("help","figures","lter_penguins.png", package = "palmerpenguins")
back_cover: https://www.r-project.org/Rlogo.pngOn utilise le préfixe !expr pour insérer du code R créant en sortie une image.
11.4 Quelques balises importantes à connaître
{.page-break-before} et {.page-break-after} sont des classes CSS qui insèrent un saut de page avant/après le paragraphe auquel la balise est attachée.
11.5 Modifier le CSS
Apprendre à customiser un document pagedown va vous demander d’investir sur l’apprentissage du CSS en général et de pagedjs en particulier pour construire un template ad hoc.
C’est un investissement en soit, qui pourra vous être utile de la même façon que la gestion de la mise en page d’un document bureautique.
Vous pouvez aussi centraliser cet investissement pour votre équipe sur une ou deux personnes, ou travailler avec votre service web sur vos projets.
Quelques ressources pour apprendre le CSS :
Voici déjà quelques recettes de base pour commencer à modifier votre document.
Première étape : importer les css par défaut de pagedown dans votre document.
files <- c("default-fonts", "default-page", "default")
from <- pagedown:::pkg_resource(paste0("css/", files, ".css"))
to <- c("custom-fonts.css", "custom-page.css", "custom.css")
file.copy(from = from, to = to)Ajouter une référence à ces fichiers dans le yaml :
output:
pagedown::html_paged:
css:
- custom-fonts.css
- custom-page.css
- custom.css
toc: true
self_contained: falseLancer dans la console
xaringan::inf_mr(), qui permet de compiler un document Rmarkdown en ayant un aperçu live du rendu.Appuyer ensuite sur
Show in new windowpour consulter le document sur votre navigateur par défaut.

- Puis sur
Clear all viewer item, pour que vos modifications puisse s’afficher en live.

11.6 Configurer votre CSS
Vous pouvez commencer à modifier vos fichiers css et voir le résultats immédiatement.
Les 3 fichiers correspondent aux éléments suivants :
custom-fonts.csscorrespond aux polices de caractèrescustom-page.csscorrespond aux paramètres de la page (format de la page, orientation,…)custom.cssintègre entre autre la façon dont les pages sont affichées à l’écran (couleur de fond, espacement entre les pages…)
11.7 Exemple d’usage : le modèles de 4 pages Info rapides Justice du SSER
Le Rmd modèle s’installe avec le package {chartegraphique.sser} :
devtools::install_gitlab(repo="sser/chartegraphique.sser@master",
host="https://git.lab.sspcloud.fr",
dependencies = TRUE,
upgrade = FALSE)
Après avoir redémarré R, on a une nouvelle entrée dans le menu File / New File / R Markdown... / From Template

Cliquer sur cette nouvelle entrée permet d’accéder au document, puis de le compiler pour accéder au résultat.
<<<<<<<< HEAD:03_rmarkdown_decortique_exo.Rmd
======== >>>>>>>> dev:10_exo2_rmarkdown_decortique_exo.Rmd > info importante! je n’arrive pas à installer TinyTex avec cette commande: tinytex::install_tinytex(). j’ai une erreur “Error in extract(pkg, exdir = path.expand(target)) : cannot open file ‘C:/Users/caroline.coudrin/AppData/Roaming/TinyTeX/tl-tray-menu.exe’: Permission denied”. du coup je ne peux pas tester le format PDF.