Tutoriel Quarto : gestion de la numérotation des figures, tables, équations, paragraphes et leur renvoi

Tutoriel Quarto : numérotations et renvois

Table des matières

Lorsqu’on rédige un rapport d’analyse, ou une note technique, il est très utile de pouvoir numéroter automatiquement les titre, figures, les tables et les équations introduites, et de pouvoir ensuite faire des renvois (cross references) vers ces éléments. Ceci n’était pas très aisé avec R markdown, mais maintenant que Quarto est là, c’est très facile et très efficace !

Dans ce tutoriel, je vous montre en pas à pas, comment cela fonctionne.

Remarque : si vous êtes tout nouveau sur quarto, mais que vous connaissez déjà Rmarkdown, vous pouvez consulter mon article sur la transition de Rmarkdown vers Quarto

Numérotation est renvoi vers une table

Tout d’abord, ajouter les options suivantes dans l’entête yaml (à répéter pour tous les formats de rendu souhaités)

  • df-print: "kable" : pour obtenir de belles tables plutôt qu’une sortie logiciel
  • tbl-cap-location: "bottom" : pour spécifier que vous souhaitez faire apparaitre la légende en dessous de la table (vous pouvez choisir “top”, “bottom”, ou “margin” )

Comme ceci : 

spécifier les options pour afficher des tables formatées, et la position de la légende

Ensuite, dans le chunk, ajouter les options :

  • label pour donner une étiquette  (nom) à votre table. Son nom doit obligatoirement commencer par tbl-, par exemple tbl-iristbl est un mot clé qui permet de faire comprendre à Quarto qu’il s’agit d’une table. Cela permet ensuite de faire apparaitre `Table X: votre légende’. Attention à ne jamais employer d’underscore dans les labels, car ils ne sont pas reconnus ; cela empêche la numérotation de fonctionner.

  • tbl-cap: pour préciser votre légende.  Par exemple tbl-cap: “Les 6 premières lignes du jeu de données iris”

Comme ceci :

```{r}
#| label: tbl-iris
#| tbl-cap: "Les 6 premières lignes du jeu de données iris"
head(iris)
``` 

Voici le rendu obtenu. Vous pouvez constater que la numérotation est bien présente.

Numérotation des tables sous quarto

Et enfin, pour réaliser un renvoi vers cette table,  vous devez employer la balise @tbl-label, par exemple ici @tbl-iris.

Voici un exemple :

Et le rendu obtenu : 

affichage du renvoi dans le document rendu

Numérotation et renvoi vers figure de type plot

Le principe est identique :

  • donner un label à votre graphique dans le chunk, mais en commençant par fig-Attention à ne jamais employer d’underscore dans les labels, car ils ne sont pas reconnus ;  cela empêche la numérotation de fonctionner.
  • spécifier la légende avec l’option fig.cap
  • utiliser la balise @fig-label-de-votre-plot pour faire le renvoi. 

Par exemple :

```{r}
#| label: fig-scatter-by-species
#| fig-cap: "Relation entre longueur et largeur des sépales, par espèces"

library(ggplot2)
ggplot(iris, aes(x=Sepal.Width, y=Sepal.Length, colour=Species))+
  geom_point()+
  geom_smooth(method=lm)+
  facet_wrap(~Species)
``` 

Voici le rendu obtenu. La encore, vous pouvez constater que la numérotation est bien présente.

Numérotation automatisée des figures avec Quarto

Voici un exemple de renvoi :

Renvoi d'une figure de type plot

Et le rendu

Rendu du renvoi d'une figure de type plot

Remarque : vous pouvez gérer la position de la légende des figures avec l’option fig-cap-location: de la même façon que nous l’avons fait avec les tables (c’est-à-dire dans l’entête, et pour chaque type de format)

Numérotation et renvoi vers une figure de type image

Le principe est très similaire :

  • donner un label à votre image, en commençant par #fig-, mais ici directement après la balise d’insertion de l’image. Attention à ne pas oublier le # et de ne jamais employer d’underscore dans les noms, car ils ne sont pas reconnus ; cela empêche la numérotation de fonctionner.
  • spécifier la légende dans les crochets de la balise d’insertion de l’image
  • utiliser la balise @fig-label-de-votre-image pour faire le renvoi

Par exemple :

![De bonnes vacances](images/ananas.png){#fig-ananas}
 
Numérotation automatique des figure de type image avec Quarto

Voici un exemple de renvoi : 

syntaxe de renvoi d'une figure de type image avec Quarto

Et le rendu obtenu :

gestion des renvois automatisés ou cross références des figure de type image, avec quarto

Remarque : vous pouvez gérer la position de la légende des figures avec l’option fig-cap-location: de la même façon que nous l’avons fait avec les tables (c’est-à-dire dans l’entête, et pour chaque type de format)

Numérotation et renvoi vers une équation

Pour numéroter une équation et pouvoir réaliser un renvoi, il est nécessaire que l’équation soit sous forme d’un bloc, c’est-à-dire réalisée en utilisant 2 dollars ($$) en début et fin de l’équation. Ensuite, le principe est très proche de celui de l’image :

  • ajouter un label directement après la balise d’insertion de l’équation, en utilisant le mot clé “eq-”, précédé d’un dollar : par exemple  #eq-einstein” . Attention à ne pas employer d’underscore dans les noms, car ils ne sont pas reconnus
  • utiliser la balise @eq-label-de-votre-equation pour faire le renvoi.

Voici un exemple : 

Réaliser la numérotation automatique d'une équation et son renvoi avec Quarto

Voici le rendu : 

Rendu de la numérotation et d'un renvoi d'une équation avec Quarto

Renvoi vers un paragraphe (section)

Tout d’abord, pour obtenir une numérotation automatique de vos titres, vous devez ajouter, dans l’entête yaml, l’option number-sections: true, pour chaque type de rendu souhaité.

Ajouter l'option section-numbers : true, pour obtenir une numérotation automatique des titres.

Ensuite, le principe est toujours le même :

  • ajouter un label directement après le titre, avec le mot clé “sec-”, précédé d’un dollar : par exemple #seq-packages”. Attention à ne pas employer d’underscore dans les noms, car ils ne sont pas reconnus
  • utiliser la balise @seq-label-de-votre-titre pour faire le renvoi.

Voici un exemple : 

ajouter un label sur une section

Et voici le rendu obtenu : 

rendu du renvoi d'une section

Conclusion

J’espère que ce petit tutoriel sur la gestion de la numérotation des tables, figures, équation, et section et leur renvoi avec quarto vous permettra de le mettre en place facilement sur vos documents.
Si ce tutoriel vous a été utile, n’hésitez pas à laisser un commentaire ci-dessous avec vos impressions ou questions, et partagez vos expériences avec quarto !

Si vous souhaitez vous former à Quarto, vous pouvez retrouver le programme de ma formation d’initiation à Quarto ainsi que les dates des prochaines sessions, et les modalités (tarif, programme) en cliquant ici 

6 Responses

  1. Bonjour Claire,
    merci pour ce tuto bien complémentaire à la formation Quarto!
    J’ai une petite question. Dans un de mes chunks, j’ai réalisé 2graphiques.
    J’ai donc repris #| label: fig-variable-X #| fig-cap: “Histogramme de la variable X” pour mon 1er graphe et
    #| label: fig-variable-Y#| fig-cap: “Histogramme de la variable Y”.
    Effectivement, j’ai bien figure 1 et figure 2 qui s’affiche, mais le label écrit est “fig-cap: “Histogramme de la variable X”, il ignore mon 2ème fig-cap: “Histogramme de la variable Y”.
    As tu une astuce pour récupérer ce 2ème fig-cap réalisé d’un même chunk. Faut il faire un chunk par figure?
    Merci pour ton retour
    Bonne journée
    Nadine

    1. Bonjour Nadine,

      je ne suis pas certaine d’avoir bien compris ta question. Est ce que ce bout de code te permet de faire ce que tu souhaites :

      ```{r}
      #| echo: fenced
      #| layout-ncol: 2
      #| fig-cap:
      #| - "ScatterPlot"
      #| - "Boxplot"
      #| label: fig-by-species-iris

      library(ggplot2)
      ggplot(iris, aes(x=Sepal.Width, y=Sepal.Length, colour=Species))+
      geom_point()+
      geom_smooth(method=lm)+
      facet_wrap(~Species)

      ggplot(iris, aes(x=Species, y=Sepal.Length, colour=Species))+
      geom_point()+
      geom_boxplot()

      ```

      Par contre on ne peut pas faire de renvoi.

      Pour faire le renvoi, je pense que la solution des deux chunks est la bonne.

    2. Bonjour,
      Il existe la métadonnées `fig-subcap` pour faire ce que vous décrivez.

      #| label: fig-variables
      #| fig-cap: “Histogrammes des variables X et Y”
      #| fig-subcap:
      #| – “Histogramme de la variable X”
      #| – “Histogramme de la variable Y”
      #| layout-ncol: 2

      références : voir @fig-variables (@fig-variables-1 pour la variable X et @fig-variables-2 pour la variable Y)
      qui rendra : voir Figure 1 (Figure 1 (a) pour la variable X et Figure 1 (b) pour la variable Y)

      Voir ici :

        1. Merci Claire 🙂

          L’url vers la bonne section de la doc sur quarto.org a été coupé, je re-tente

          juste le sous-chemin :

          /docs/authoring/cross-references.html#subfigures

          sans le https:// :

          quarto.org/docs/authoring/cross-references.html#subfigures

  2. Bonjour,
    Merci pour ce bref tuto. Les autres plus pour moi de quarto est de pouvoir diposer d’une vrai UI dans Rstudio pour insérer une multitude d’objet et de pouvoir compter sur des raccoucis (une lste déroulante apparait avec “/”) pour pouvoir le faire. La gestion de la bibliographie est également exceptionnelle bien meilleur que dans Word même avec un add-on de type Zotero ou EndNote.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous souhaitez vous former à Quarto ?

Retrouvez le programme de ma formation d’initiation à Quarto ainsi que le planning des prochaines session en cliquant ici

Vous souhaitez soutenir mon travail ?​

C’est possible en faisant un don  sur la page Tipeee du blog  👇👇👇

Bonjour !

vous venez souvent ?

Identifiez-vous pour avoir accès à toutes les fontionnalités !

Aide mémoire off'R ;)

Enregistrez vous pour recevoir gratuitement mes fiches “aide mémoire” (ou cheat sheets) qui vous permettront de réaliser facilement les principales analyses biostatistiques avec le logiciel R et pour être informés des mises à jour du site.