4 Écriture du contenu avec Bookdown

Une fois la structure du projet en place, tu peux commencer à écrire les chapitres de ton livre. Bookdown repose sur R Markdown, un langage simple et puissant pour mélanger du texte, des équations, du code et des résultats dans un seul document.

4.1 Syntaxe Markdown (rappel rapide)

Tu peux structurer ton texte avec une syntaxe légère :

  • # : Titre de chapitre (niveau 1)
  • ##, ### : Sous-sections (niveaux 2 et 3)
  • *italique* ou _italique_
  • **gras** ou __gras__
  • > citation
  • - ou * pour des listes à puces
  • 1. pour des listes numérotées
  • `code` pour du code en ligne

Pour chaque chapitre, utilise un seul titre de niveau # au début du fichier .Rmd pour qu’il soit reconnu comme un chapitre à part entière.

4.1.1 Blocs de code R (chunks)

Tu peux insérer du code exécutable en R dans des blocs appelés chunks :

summary(mtcars)
##       mpg             cyl             disp             hp             drat             wt       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0   Min.   :2.760   Min.   :1.513  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5   1st Qu.:3.080   1st Qu.:2.581  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0   Median :3.695   Median :3.325  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7   Mean   :3.597   Mean   :3.217  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0   3rd Qu.:3.920   3rd Qu.:3.610  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0   Max.   :4.930   Max.   :5.424  
##       qsec             vs               am              gear            carb      
##  Min.   :14.50   Min.   :0.0000   Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:16.89   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :17.71   Median :0.0000   Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :17.85   Mean   :0.4375   Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:18.90   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :22.90   Max.   :1.0000   Max.   :1.0000   Max.   :5.000   Max.   :8.000
  • Les résultats (textes, graphiques, tableaux) sont automatiquement intégrés dans le livre.
  • Tu peux ajouter des options comme echo=FALSE, fig.width, message=FALSE, etc.

Pour aller plus loin tu peux te réferrer au travail de nos camarades sur le thème : Rmarkdown

4.2 Figures et tableaux

4.2.1 Figures

Tu peux générer des graphiques avec ggplot2, plot(), etc., et leur associer une légende :

plot(cars)
Exemple de graphique

Figure 4.1: Exemple de graphique

Bookdown numérote automatiquement les figures et permet de les référencer dans le texte avec \@ref(fig:plot-example).

4.2.2 Tableaux

Tu peux créer des tableaux élégants avec :

  • knitr::kable() (basique)
  • gt::gt() (avancé)
  • kableExtra (pour plus de mise en forme)
knitr::kable(head(iris), caption = "Extrait des données iris")
Table 4.1: Extrait des données iris
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
5.1 3.5 1.4 0.2 setosa
4.9 3.0 1.4 0.2 setosa
4.7 3.2 1.3 0.2 setosa
4.6 3.1 1.5 0.2 setosa
5.0 3.6 1.4 0.2 setosa
5.4 3.9 1.7 0.4 setosa

Comme les figures, tu peux les référencer dans le texte : \@ref(tab:tab-example).


4.2.3 Mathématiques et équations

Bookdown permet d’écrire des formules mathématiques en LaTeX :

  • Inline : \( E = mc^2 \)
  • Bloc centré :
$$ E = mc^2 $$

Tu peux aussi numéroter une équation pour y faire référence :

$$
E = mc^2 (\#eq:energie)
$$

Comme vu en \@ref(eq:energie), cette équation exprime...

4.2.4 🔗 Références croisées

Bookdown permet de lier dynamiquement les parties du document (chapitres, figures, tableaux, équations…).

  • Pour créer une référence : ajoute un identifiant à la fin d’un titre ou d’un chunk :

    # Méthodologie {#method}
  • Et pour y faire référence :

    Voir la section \@ref(method)

4.3 Citations bibliographiques

Bookdown prend en charge les références bibliographiques grâce à Pandoc et au format BibTeX. Cela te permet de citer des articles, des livres ou des sources web de manière dynamique, avec une mise en forme automatique.

4.3.1 1. Créer un fichier .bib

Commence par créer un fichier texte portant l’extension .bib (qui est souvent généré automatiquement sous le nom debook.bib) qui contient tes références bibliographiques au format BibTeX.

Voici un exemple de contenu typique dans book.bib :

@book{xie2016bookdown,
  title     = {bookdown: Authoring Books and Technical Documents with R Markdown},
  author    = {Yihui Xie},
  year      = {2016},
  publisher = {Chapman and Hall/CRC},
  url       = {https://bookdown.org/yihui/bookdown/}
}

Tu peux générer ce fichier à partir de Zotero, Google Scholar, ou d’autres outils de gestion bibliographique.

4.3.2 Déclarer la bibliographie dans index.Rmd

Dans le bloc YAML en tête de index.Rmd, indique le nom du fichier .bib et le style bibliographique :

bibliography: [book.bib]
biblio-style: apalike
link-citations: true
  • biblio-style: apalike : style auteur-année classique
  • Tu peux aussi utiliser d’autres styles (chicago, ieee, etc.) ou un fichier .csl (Citation Style Language)
  • link-citations: true ajoute un lien hypertexte entre la citation dans le texte et la référence complète

4.3.3 Citer une source dans le texte

Dans ton texte .Rmd, tu peux :

  • Citer entre parenthèses : [@xie2016bookdown] → (Xie 2016)
  • Intégrer la citation dans la phrase : @xie2016bookdown → Xie (2016)

Exemples :

Selon @xie2016bookdown, Bookdown est très utile pour l’écriture scientifique.

Des extensions ont été proposées dans des travaux récents [@xie2016bookdown; @wickham2019advanced].

4.3.4 Génération automatique de la bibliographie

Lors de la compilation :

  • Bookdown recherche toutes les citations dans les fichiers .Rmd
  • Il génère automatiquement la section “Références” à la fin du livre (ou à l’endroit où tu places un fichier .Rmd avec un titre # Références)

Tu n’as pas besoin d’écrire la bibliographie à la main : elle sera construite dynamiquement à partir du fichier .bib.

  • Donne à chaque référence une clé unique et explicite (@xie2016bookdown plutôt que @ref1)
  • Place le fichier .bib à la racine de ton projet
  • Utilise des groupes de références avec [@ref1; @ref2] si nécessaire
  • Teste la compilation en HTML et en PDF pour vérifier que les styles s’affichent bien

📘 Prise en main du package "Bookdown"

Projet réalisé par Ahmadou Niass et Samba SowENSAE Dakar, 2025
dans le cadre du cours de projets statistiques avec R.

📁 Code source disponible sur GitHub · Powered by Bookdown