3 Installation et Configuration
3.1 Prérequis : R, RStudio, LaTeX, Pandoc
Avant de commencer à créer un livre avec Bookdown, il est essentiel d’avoir un environnement de travail bien configuré. Cette section présente les outils requis ainsi que leur rôle.
3.1.1 R
Bookdown est un package du langage R. Il faut donc que R soit installé sur votre ordinateur.
- 🔗 Téléchargement : https://cran.r-project.org
- Version recommandée : 4.0 ou supérieure
Vérifiez votre version avec :
version
3.1.2 RStudio
RStudio est l’environnement de développement recommandé. Il facilite la création, l’organisation et la compilation de projets Bookdown.
- Il intègre Pandoc, le moteur de conversion utilisé par Bookdown
- Il fournit une interface graphique simple pour créer un projet et le compiler
3.1.3 LaTeX (pour la génération PDF)
Pour produire un livre en PDF, il faut une distribution LaTeX. La méthode la plus simple consiste à utiliser le package tinytex
, qui fournit une version légère et portable de LaTeX.
# Installation du package tinytex
install.packages("tinytex")
# Installation de TinyTeX (LaTeX minimal)
tinytex::install_tinytex()
# Vérification de l’installation
tinytex::is_tinytex()
🕒 L’installation de TinyTeX peut prendre quelques minutes mais ne doit être faite qu’une seule fois.
3.1.4 Package remotes
(optionnel)
Le package remotes
permet d’installer Bookdown depuis GitHub (utile pour accéder à la version de développement avec les dernières fonctionnalités).
3.1.5 Récapitulatif
Outil | Rôle | Obligatoire ? |
---|---|---|
R | Langage principal utilisé par Bookdown | ✅ Oui |
RStudio | Environnement de développement intégré | ✅ Oui |
Pandoc | Conversion vers HTML/PDF/EPUB/Word | ✅ Oui (inclus) |
LaTeX | Génération de documents PDF | ✅ Oui |
tinytex | Distribution LaTeX recommandée | ✅ Oui |
remotes | Installation avancée depuis GitHub | ❌ Optionnel |
Une fois ces outils en place, vous pouvez passer à l’installation du package
bookdown
.
3.2 Installation de Bookdown
Une fois R, RStudio, Pandoc et LaTeX installés, vous pouvez procéder à l’installation du package bookdown
.
3.2.1 Installation stable depuis le CRAN
La version stable du package bookdown
est disponible sur le CRAN (le dépôt officiel de R).
Cela garantit une version stable, testée et compatible avec les autres packages du CRAN.
3.2.2 Vérification de l’installation
Après l’installation, chargez le package pour vérifier qu’il fonctionne correctement :
Pour afficher la version installée :
3.2.3 Installation de la version de développement (optionnel)
Si vous souhaitez accéder aux toutes dernières fonctionnalités ou corriger un bug résolu récemment, vous pouvez installer la version de développement directement depuis GitHub :
r
# Assurez-vous d'avoir installé 'remotes' (voir Partie 1)
remotes::install_github("rstudio/bookdown")
Attention : cette version peut contenir des changements encore en test. À réserver à des utilisateurs expérimentés ou à ceux qui veulent contribuer au développement.
3.2.4 Exemple de vérification automatisée
Voici un script simple qui installe bookdown
seulement s’il n’est pas encore installé :
if (!requireNamespace("bookdown", quietly = TRUE)) {
message("Le package 'bookdown' n'est pas installé. Installation en cours...")
install.packages("bookdown")
} else {
message("Le package 'bookdown' est déjà installé. Version actuelle : ", packageVersion("bookdown"))
}
Avec bookdown
installé et fonctionnel, vous êtes prêt à créer votre premier projet.
Passons maintenant à la création d’un projet Bookdown dans RStudio.
#Création d’un Livre avec Bookdown
Une fois bookdown
installé, vous êtes prêt à créer votre premier projet de livre. Bookdown fournit un modèle de projet prêt à l’emploi, que vous pouvez personnaliser facilement.
3.3 Créer un projet Bookdown avec RStudio
La méthode la plus simple consiste à utiliser l’interface de RStudio :
- Allez dans
File > New Project > New Directory
- Sélectionnez Book Project using bookdown
- Donnez un nom à votre projet (ex.
MonLivre
) - Cochez l’option pour initialiser un dépôt Git (optionnel mais recommandé)
- Cliquez sur Create Project
Cette opération crée automatiquement une structure de base
3.4 Créer un squelette de livre avec R (alternative sans interface)
Tu peux aussi générer manuellement un squelette de livre avec cette commande :
Cela crée les fichiers essentiels dans ton répertoire de travail courant.
Ci-dessous, une vidéo locale illustrant ces étapes dans RStudio :
3.5 Contenu des fichiers principaux
3.5.1 fichier index.Rmd
Le fichier index.Rmd
est le point de départ de ton livre Bookdown. Il joue un rôle central :
- Il contient le bloc YAML d’en-tête, où sont définis le titre, l’auteur, la date, les fichiers de bibliographie, le format de sortie (
gitbook
,pdf_book
, etc.). - Il est toujours compilé en premier, même s’il n’est pas listé dans
_bookdown.yml
. - Dans les versions HTML, il fait office de page d’accueil du site.
Voici un exemple d’en-tête minimal :
---
title: "Titre du Livre"
author: "Ton Nom"
date: "2025-04-19"
site: bookdown::bookdown_site
output: bookdown::gitbook
bibliography: [book.bib]
---
Ce fichier peut aussi contenir une introduction au livre, une préface ou des objectifs pédagogiques. Il ne doit contenir qu’un seul titre de niveau #
, sinon Bookdown le découpe en plusieurs chapitres.
3.5.2 fichier _bookdown.yml
Ce fichier de configuration contrôle la structure logique du livre et le comportement général de la compilation. Il est écrit au format YAML, et accompagne index.Rmd
dans le dossier racine du projet.
Voici un exemple typique :
book_filename: "MonLivre"
rmd_files: [
"index.Rmd",
"01-introduction.Rmd",
"02-methodes.Rmd",
"03-resultats.Rmd"
]
new_session: true
###Que signifient ces options ?
book_filename
: définit le nom de base des fichiers de sortie (par exempleMonLivre.html
,MonLivre.pdf
,MonLivre.epub
).
> Si cette ligne est omise, le nom du dossier du projet est utilisé par défaut.rmd_files
: liste, dans l’ordre souhaité, les fichiers.Rmd
à compiler.
> Cela te permet de forcer un ordre personnalisé, même si les noms de fichiers ne sont pas numérotés.new_session
: sitrue
, chaque chapitre est exécuté dans une session R indépendante.
> Cela améliore la reproductibilité, car aucun objet n’est “hérité” d’un chapitre précédent.
> Si tu veux partager des objets entre chapitres, tu peux mettrefalse
, mais ce n’est pas recommandé.
3.5.2.1 Bonnes pratiques
- Garde une structure claire et numérotée dans
rmd_files
(01-
,02-
…) pour t’y retrouver facilement. - Active toujours
new_session: true
pour éviter les effets de bord liés à la mémoire R. - Ne liste que les fichiers que tu veux vraiment voir apparaître dans le livre final.
Ce fichier est léger mais fondamental : il permet à Bookdown de savoir quoi compiler, dans quel ordre, et avec quelle logique d’exécution.
3.5.3 fichier _output.yml
Le fichier _output.yml
permet de définir les formats de sortie de ton livre (HTML, PDF, ePub, Word, etc.) et de personnaliser leur rendu. Il complète les informations de l’en-tête YAML de index.Rmd
, en centralisant toutes les options de mise en forme et de style.
3.5.3.1 Exemple typique :
bookdown::gitbook:
css: style.css
config:
toc:
collapse: section
download: ["pdf", "epub"]
bookdown::pdf_book:
latex_engine: xelatex
toc: yes
toc_depth: 2
3.5.3.2 Détails des options
3.5.3.2.1 bookdown::gitbook
Ce bloc configure la version HTML du livre, idéale pour le web.
css: style.css
: permet d’appliquer une feuille de style personnalisée pour modifier l’apparence du site (couleurs, polices, marges, etc.)config:
:toc:
: personnalise la table des matières (ici, les sections peuvent être repliées)download:
: affiche des boutons de téléchargement en haut du site, pour les autres formats disponibles (PDF, EPUB, etc.)
Le format gitbook
est parfait pour une lecture interactive avec navigation par chapitre à gauche et il offre plus de flexbilité. C’est d’ailleurs sur ce dernier que nous nous concentrerons le plus tout au long de ce traval
3.5.3.2.2 bookdown::pdf_book
Ce bloc configure la version PDF du livre, générée via LaTeX.
latex_engine: xelatex
: moteur LaTeX recommandé (gère mieux les polices modernes et les caractères spéciaux)toc: yes
: indique si une table des matières doit être incluse dans le PDFtoc_depth: 2
: spécifie le niveau de profondeur de la table des matières (par exemple : chapitre + sections)
Tu peux aussi ajouter d’autres options, comme keep_tex: true
(pour conserver le fichier .tex
), ou includes:
pour inclure un fichier preamble.tex
.
####️ Ce que tu peux personnaliser
- Le style HTML : en ajoutant un fichier
style.css
dans ton projet (modifie l’aspect du texte, des titres, des liens…) - Le rendu PDF : via LaTeX (
xelatex
conseillé pour la langue française) - Les formats proposés au téléchargement : tu peux proposer
.pdf
,.epub
,.docx
, etc.
En résumé, _output.yml
te permet de piloter précisément l’apparence de chaque version de ton livre, sans toucher au contenu. C’est la couche “design” de Bookdown.
3.6 A retenir
À ce stade, tu disposes de tous les éléments de base pour démarrer ton livre avec Bookdown. Voici les points essentiels à retenir :
3.6.1 index.Rmd
: le cœur du projet
- Ce fichier est indispensable : il contient les métadonnées globales du livre (titre, auteur, bibliographie, format de sortie…).
- Il sert aussi de chapitre d’introduction ou de page d’accueil, notamment dans les formats HTML.
- Il est toujours traité en premier, même s’il n’est pas listé dans
_bookdown.yml
.
3.6.2 Les chapitres sont des .Rmd
numérotés
- Chaque chapitre du livre est un fichier
.Rmd
distinct. - Il est fortement recommandé d’utiliser une numérotation (
01-
,02-
, etc.) pour faciliter la lecture et l’organisation. - Les fichiers sont listés dans l’ordre voulu dans
_bookdown.yml
, ce qui détermine la structure logique du livre.
3.6.3 Configuration centralisée dans les fichiers .yml
_bookdown.yml
définit :- L’ordre des chapitres (
rmd_files
) - Le nom du fichier de sortie (
book_filename
) - Le comportement d’exécution (
new_session
)
- L’ordre des chapitres (
_output.yml
précise :- Les formats de sortie du livre (
gitbook
,pdf_book
, etc.) - Le style et les options visuelles (CSS, moteur LaTeX, table des matières, boutons de téléchargement…)
- Les formats de sortie du livre (