Comment faire collaborer LaTeX et R
?#
Le principe est de générer un document LaTeX comportant des résultats (tableaux,
graphiques, etc.) produits par R
(ou Python
, Julia
, etc.).
Il existe plusieurs solutions toutes basées sur le même principe : dans un
document écrit dans un langage balisé (markdown ou LaTeX par ex.) on incorpore
des morceaux de code R appelés chunks délimités par des triples backticks
(```
). Une première compilation produit un document LaTeX comportant
les résultats du code R
(un tableau par exemple). On compile ensuite ce
document pour obtenir le fichier final (en PDF si on utilise LaTeX).
De plus la maintenance est simplifiée : chaque chunk peut être exécuté seul (ce qui simplifie l’écriture et le déboguage) et il n’y a qu’un seul document (au pire deux ou trois avec d’éventuels fichiers de configuration).
1. Knitr#
un fichier knitr
(.Rnw
) est un fichier LaTeX
standard qui contient des chunks de code R
. Un exemple :
\section{Introduction}
<<setup, include=FALSE, cache=FALSE>>=
plot(iris)
@
bla, bla, bla.
L’écriture est lourde et il n’existe pas de modèles prédéfinis.
2. R markdown#
R markdown est un format de fichier qui mélange
du code R
et du texte en Markdown
. Les réglages généraux sont écrits dans un
en-tête en yaml
. Après une première compilation pour R
, le fichier est
converti en LaTeX via pandoc puis compilé en PDF (toute
la précédure étant automatisée). Un export en HTML voire en .docx
est
également possible.
## Introduction
```{r, echo = FALSE, fig.cap = "Vue globale de Iris"}
plot(iris)
```
bla, bla, bla.
3. Quarto
#
Quarto
est une évolution de R Markdown. La syntaxe est
plus simple et il existe nombre de fonctions pour des mises en page complexes,
des pages de titre, etc. C’est le seul qui continue à être réellement
maintenu. La documentation est très bien faite.
## Introduction
```{r}
#| label: irisf1
#| fig-cap: Vue globale de Iris
plot(iris)
```
bla, bla, bla.
La suite de cette documentation se concentrera sur Quarto
.