Réaliser vos présentations avec Quarto

Une alternative à Powerpoint

SSP/DEMESIS/BQIS/PAOS

09/11/2023

1 Quarto et les diaporamas

1.1 Quarto, c’est quoi ?

Un nouveau système de publication scientifique et technique Open-Source, basé sur Pandoc.

  • Pensé et construit sur les 10 années d’expérience de R markdown
  • Quarto est inclus dans les dernières versions de RStudio (> 2022.07.2)
  • Avec la possibilité de mixer du texte et du code comme avec R Markdown.

Un outil en ligne de commande (CLI) qui permet de générer plusieurs formats à partir d’un document .qmd.

1.2 Mardown et navigation dans le diaporama

À retenir sur la syntaxe

La syntaxe utilisée pour rédiger des présentations avec Quarto est le markdown.
Il s’agit d’une syntaxe facile à lire, à écrire et donc à apprendre !

Pour naviguer et utiliser un diaporama Quarto/revealjs, il existe plusieurs raccourcis clavier. Voir ici pour la liste complète.

Les principaux raccourcis à retenir sont :

  • PgDown et PgUp pour passer les slides
  • o pour naviguer rapidement entre les slides
  • f pour passer en plein écran
  • m pour accéder aux menus

1.3 Pourquoi faire vos diaporamas avec Quarto ?

  • Si vous souhaitez intégrer du code/des outputs (graphiques, tableaux…) dans vos slides
  • Quarto permet l’export de vos diaporamas en Pdf donc pas de risque de compatibilité si vous changez de PC.
  • Le template assure l’adhérence à la charte graphique du Masa (logo, police Marianne….) => uniformité de vos présentations
  • Avec Quarto, vos diaporamas peuvent être déployés sur une forge gitlab et ainsi être disponibles même si vous n’avez pas votre PC avec vous.
  • Si vous êtes peu à l’aise avec Powerpoint

1.4 Guide de survie pour construire vos diapos

Vous voulez… Action
Ajouter un titre, sous-titre, date, auteur… => Modifier l’en-tête du principal fichier qmd
Ajouter une partie à votre diaporama => Ajouter un titre de niveau 1 avec #
Ajouter une diapositive => Ajouter un titre de niveau 2 avec ##
Ajouter des notes personnelles => Créer une division spéciale avec ::: {.notes} ... ::: puis taper “s” sur votre clavier
Construire votre diaporama (localement ou sous Cerise) => Cliquer sur le bouton “render” de RStudio ou taper quarto render ma_presentation.qmd

2 Styles par défaut

2.1 Titre de deuxième niveau

Titre de niveau 3

Titre de niveau 4

Titre de niveau 5
Titre de niveau 6
  • liste de niveau 1
    • liste de niveau 2
      • liste de niveau 3
        • liste de niveau 4
          • liste de niveau 5
            • liste de niveau 6

2.2 Style du texte

En markdown

texte en italique : *texte en italique*
texte en gras : **texte en gras**
texte en gras et en italique : ***texte en gras et en italique***
texte barré : ~~texte barré~~


Avec des balises html

texte en italique : <i>texte en italique</i>
texte en gras : <b>texte en gras</b>
texte barré : <strike>texte barré</strike>
texte souligné : <u>texte souligné</u>

exemple de balises combinées avec markdown : <u>_un exemple_</u>

2.3 Style du texte

gras : [gras]{.bold}

très gras : [très gras]{.bolder}

Taille des caractères

Texte très petit : [Texte très petit]{.tiny}
Texte plus petit : [Texte plus petit]{.small}
Texte standard : Texte standard
Texte plus grand : [Texte plus grand]{.large}
Texte encore plus grand : [Texte encore plus grand]{.Large}

  • texte1 : texte^[Une note de bas de page]
  • textea (indice) : texte<sub>a</sub>

2.4 Couleurs du texte

Texte en jaune Masa : [Texte en jaune Masa]{.jaune_masa}

Texte en rose Masa : [Texte en rouge Masa]{.rose_masa}

Texte en marron Masa : [Texte en marron Masa]{.marron_masa}


Texte en noir : [texte en noir]{.black}

Texte en rouge : [texte en rouge]{.red}

Texte en bleu : [texte en bleu]{.blue}

Texte en vert : [texte en vert]{.green}

Texte en orange : [texte en orange]{.orange}

Texte en violet : [texte en violet]{.purple}

Texte en gris : [texte en gris]{.gray}

2.5 Palette de couleurs du MASA (1/2)

Macaron

1 2 3

Ecume

1 2 3

Bourgeon

1 2 3

Tuile

1 2 3

Archipel

1 2 3

Glycine

1 2 3

Menthe

1 2 3

Cumulus

1 2 3

Emeraude

1 2 3

2.6 Palette de couleurs du MASA (2/2)

Tilleul_verveine

1 2 3

Cafe_creme

1 2 3

Tournesol

1 2 3

Caramel

1 2 3

Jaune_moutarde

1 2 3

Opera

1 2 3

Terre_battue

1 2 3

Gris_galet

1 2 3


Exemples :

Texte avec la classe Cumulus2 : [Texte avec la classe Cumulus2]{.Cumulus2}
Texte avec la classe Terre_battue1 : [Texte avec la classe Terre_battue1]{.Terre_battue1}

Remarque : Si vous souhaitez utiliser les mêmes palettes pour vos graphiques sous R, utiliser {gouvdown}

2.7 Content-box

[texte encadré sur fond jaune]{.content-box-yellow}

texte encadré sur fond jaune

[texte encadré sur fond rouge]{.content-box-red}

texte encadré sur fond rouge

[texte encadré sur fond vert]{.content-box-green}

texte encadré sur fond vert

[cadre en pleine largeur]{.full-width .content-box-yellow}

cadre en pleine largeur

2.8 Content-box (sur 2 colonnes)

[Très serré !...]{.pull-left-30}Très serré !… [Très au large !...]{.pull-right-70}Très au large !…

[Serré !...]{.pull-left-40}Serré !… [Au large !...]{.pull-right-60}Au large !…

[Moitié !...]{.pull-left-50}Moitié !… [Moitié !...]{.pull-right-50}Moitié !…

[Au large !...]{.pull-left-60}Au large !… [Serré !...]{.pull-right-40}Serré !…

[Très au large !...]{.pull-left-70}Très au large !… [Très serré !]{.pull-right-30}Très serré !…

2.9 Callout-box (1/2)

Quarto contient par défaut des Callouts qui sont également très utiles pour attirer l’attention des lecteurs.
Il en existe de 5 types : note, warning, important, tip et caution.

=> Voir cette page pour apprendre leurs syntaxes.

Note

Un exemple de Callout de type note.

Avertissement

Un exemple de Callout de type warning.

Très important et à retenir !

Ce callout de type important attire l’attention du lecteur. Ici le titre a été personnalisé.

2.10 Callout-box (2/2)

Astuces/Tips/Conseils

Un exemple de Callout de type tip avec un titre personnalisé.

Mise en garde

Ce Callout de type caution peut-être utilisé pour des mises en garde.

On peut y donner pleins d’infos et par exemple mettre du code…

names(iris)
summary(iris)

2.11 Insérer un tableau

Ajouter un tableau en markdown est + facile qu’il n’y paraît. Cette page contient toutes les informations dont vous avez besoin. Ce site est particulièrement utile lorsque vous devez contistuer de “gros” tableaux.

En tapant :

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

On obtient ce tableau :

fruit prix
pomme 2.05
poire 1.37
orange 3.09

2.12 Insérer une image

Il existe de nombreuses possibilités pour ajouter des images à ce diaporama. Elles sont listées sur cette page.

En tapant :

![](img/pommes.png)

On obtient cette image :

2.13 Équations mathématiques

Équation sur une ligne


  $$TCAM=\sqrt[n]\frac{valeurfinale}{valeurinitiale}-1$$


\[TCAM=\sqrt[n]\frac{valeurfinale}{valeurinitiale}-1\]

Équation sur plusieurs lignes


$$\begin{align}
(a+b)^3 &=(a+b)^2(a+b)\\
        &=(a^2+2ab+a^2)(a+b)\\
        &=a^3+3a^2b+3ab^2+b^3
\end{align}$$

\[\begin{align} (a+b)^3 &=(a+b)^2(a+b)\\ &=(a^2+2ab+a^2)(a+b)\\ &=a^3+3a^2b+3ab^2+b^3 \end{align}\]

3 Comment intégrer du code ?

3.1 Le code dans Quarto

Quarto permet d’afficher et d’exécuter du code R, Python, Julia, Observable…

Le code s’écrit dans des Code blocks ou Chunks dont les options sont très nombreuses (voir cette page pour pouvoir gérer le comportement de ces blocs de code.

Il faut retenir que ces options s’écrivent à la suite de |# et il suffit de consulter la documentation pour comprendre leurs fonctionnements.


Voyons quelques exemples en affichant du code R sans l’exécuter.

3.2 Intégration statique de code (1/4)

En tapant :

```{r}
#| echo: true
#| output: false
library(ggplot2)

ggplot(airquality, aes(Temp, Ozone)) + 
  geom_point() + 
  geom_smooth(method = "loess")
```

On obtient ceci (nécessite de cliquer sur Code pour l’afficher) :

Code
library(ggplot2)

ggplot(airquality, aes(Temp, Ozone)) + 
  geom_point() + 
  geom_smooth(method = "loess")

3.3 Intégration statique de code (2/4)

Ou plus simplement en tapant un .r à la place de r

```{.r}
library(dplyr)

iris |> 
  group_by(Species) |> 
  summarise(Total_longueur = sum(Petal.Length, na.rm = TRUE))
```

On obtient directement le code qui s’affiche sur la slide :

library(dplyr)

iris |> 
  group_by(Species) |> 
  summarise(Total_longueur = sum(Petal.Length, na.rm = TRUE))

3.4 Intégration statique de code (3/4)

En ajoutant un code-line-numbers on indique les lignes à mettre en valeur dans le code :

```{.r code-line-numbers="3-8"}
# Conversion d'un fichier csv en un fichier parquet partitionné :

csv_to_parquet(
  path_to_file = parquetize_example("region_2022.csv"),
  path_to_parquet = tempfile(fileext = ".parquet"),
  partition = "yes",
  partitioning =  c("REG")
)
#> Reading data...
#> Writing data...
#> ✔ Data are available in parquet dataset under /tmp/RtmpMT4bYz/file157830a758fa.parquet
#> Writing data..
```

On obtient ceci :

# Conversion d'un fichier csv en un fichier parquet partitionné :

csv_to_parquet(
  path_to_file = parquetize_example("region_2022.csv"),
  path_to_parquet = tempfile(fileext = ".parquet"),
  partition = "yes",
  partitioning =  c("REG")
)
#> Reading data...
#> Writing data...
#> ✔ Data are available in parquet dataset under /tmp/RtmpMT4bYz/file157830a758fa.parquet
#> Writing data..

3.5 Intégration statique de code (3/4)

Si on veut afficher un graphique et pas le code, on tape :

@fig-airquality Température et niveau d'ozone.

```{r}
#| echo: false
#| output: true
#| label: fig-airquality
#| fig-cap: Température et niveau d'ozone.
#| warning: false

ggplot(airquality, aes(Temp, Ozone)) + 
  geom_point() + 
  geom_smooth(method = "loess")
```

…et on obtient uniquement le graphique :

Figure 1 Température et niveau d’ozone.

Figure 1: Température et niveau d’ozone.

3.6 Intégration statique de données (1/2)

Sans mise en forme :

En tapant :

```{r}
head(iris)
```

On obtient :

3.7 Intégration statique de données (2/2)

Avec une mise en forme (avec le package kable par exemple)

En tapant :

```{r}
knitr::kable(head(iris), caption = "La table iris")
```

On obtient :

La table 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

3.8 Utilisation avec Observable et une table (1/3)

Dans Quarto, on peut utiliser Observable comme indiqué sur cette page.

En tapant :

```{ojs}
classeur = FileAttachment("data/afrika.xlsx").xlsx()
data = classeur.sheet("data", {headers:true})
Inputs.table(data)
```

On obtient :

3.9 Utilisation avec Observable et une carte (2/3)

Utilisons la librairie Javascript Bertin pour afficher un fond de carte.

En tapant :

```{ojs}
countries = FileAttachment("data/africa.json").json()
bertin = require("bertin@latest")
bertin.quickdraw(countries, 500)
```

On obtient :

3.10 Utilisation avec Observable et une carte (3/3)

Avec quelques lignes de code, on peut obtenir rapidement une carte interactive :

4 Comment moduler la présentation

4.1 Modularité de fichiers quarto (.qmd)

  • Il est possible d’externaliser une partie du support en créant un fichier quarto et en l’intégrant dans le fichier principal avec le code suivant :

{{< include 04_modulariteSupport.qmd >}}

  • Ce “shortcode” doit apparaitre seul sur une ligne et doit être entouré de lignes vides.
  • Cela revient à copier et coller le texte du fichier inclus dans le fichier principal.
  • Pour que chaque partie intègre le style de la page principale, il faut ajouter ce fichier dans la partie render du fichier _quarto.yml
  • Ce fichier doit être préfixé par un “_” pour ne pas être ignoré par l’option render du fichier yml.

4.2 Utilisation de variables

Utilisation du fichier _variables.yml

  • [il est possible de récupérer et utiliser les variables présentes dans ce fichier avec le shortcode var :] {{< var version >}} : 0.1

Exemple : Ainsi, au sein du MASA, vous pouvez contacter le support technique via l’adresse mail suivante : assist-stat.bmis.ssp.sg@agriculture.gouv.fr

. . .

Utilisation des métadonnées

  • [Pour utiliser un mot clé présent dans les parties yml des fichiers (ex: _quarto.yml), il faudra utiliser le shortcode meta :]

Exemple : Pour ce support, les dimensions de la page sont de 1080 (hauteur) x 1920 (largeur). Cette partie du support a pour vocation de créer un exemple de modularité dans le support de présentation.

5 Comment faire un export du support de présentation ?

5.1 PDF : Mode opératoire

  • Ouvrez votre diaporama avec Edge ou Chrome.
  • Passer en mode export pdf
    • cliquer sur l’icône du menu : sous-menu “Tools” cliquer sur “PDF Export mode” ou taper sur la lettre “e” (raccourci)

Note

Le mode export PDF est activé quand le support passe en navigation verticale (scrollable). Retaper sur “e” pour revenir au mode de navigation normal.

  • Dans la barre d’outils de votre navigateur: aller dans Fichier Imprimer…
  • Dans la fenêtre qui s’ouvre :
    • Sélectionner dans le champ destination “Enregistrer au format PDF”
    • Cocher l’option “Imprimer les arrières plans”
    • Vérifier que vous êtes bien au format paysage et régler les marges à “aucune”. Voir exemple de diaporama.

5.2 Autres formats

Il est possible de faire des exports sous d’autres formats avec quarto, et de les cumuler au sein du projet. Par exemple, dans ce support, il est possible de faire un export (relativement sommaire) au format .odt, ouvrable avec la suite libreOffice. Pour ce faire :

  • dans Rstudio, ouvrer le fichier .qmd, et cliquer sur la flèche déroulante acollée au bouton “render”. Cliquer sur “Render odt”.

Autres formats

Les formats sont listés et à configurer dans le fichier _quarto.yml, ou dans le dossier extensions si vous décidez de custom un format existant.

6 Documentation

6.1 Sites de présentation

Quarto :

MASA :

6.2 Technologies utilisées

6.3 Extensions utilisées

  • Pointer : presser “q” pour changer le pointer de la souris
  • Confetti : presser “c” pour envoyer des confettis
  • Verticator : permet d’afficher le nombre de slides disponibles verticalement.
  • Liste des icones disponibles
    • Exemples :
      • (sans pop-up)
      • (avec pop-up)

6.4 À vous maintenant !

Il est possible de constituer vos diaporamas sur votre poste en local, sur Cerise V3 et sur le SSP Cloud.