Folio Writer

Des figures qui se régénèrent seules :
graphiques dynamiques avec Quarto, Python & R

La figure la plus dangereuse d’un manuscrit est celle qui a été faite à la main il y a trois révisions. Quand l’analyse change et que le PNG ne change pas, l’article ment sans bruit. Le remède : mettre le code dans le manuscrit et laisser chaque compilation régénérer le graphique à partir des données — Quarto l’exécute, Folio Writer orchestre.

L’idée en un bloc

N’importe où dans un document Folio Writer, écrivez une cellule exécutable au lieu de coller une image :

```{python}
#| label: fig-eos
#| fig-cap: "Third-order Birch–Murnaghan fit to the P–V data."
import pandas as pd, matplotlib.pyplot as plt
d = pd.read_csv("Research/pv-data.csv")
plt.plot(d.V, d.P, "o"); plt.plot(d.V, fit(d.V))
plt.xlabel("V (ų)"); plt.ylabel("P (GPa)")
```

Compilez avec Moteur de rendu = Quarto et la cellule s’exécute : le CSV est lu, l’ajustement est tracé, et la figure finie atterrit dans le PDF — ou dans le fichier Word, ou dans le HTML — numérotée, légendée et citée avec @fig-eos comme n’importe quelle autre figure. R fonctionne exactement de la même façon :

Une cellule {python} et sa figure exécutée, en direct dans l’aperçu.
Une cellule {python} et sa figure exécutée, en direct dans l’aperçu.
```{r}
#| label: fig-spectra
#| fig-cap: "Raman spectra by pressure step."
library(ggplot2)
ggplot(read.csv("Research/spectra.csv"),
       aes(shift, intensity, color = factor(P))) + geom_line()
```

Mettez à jour le fichier de données, recompilez, et chaque figure est à jour. Pas d’étape d’export, pas de « quel script a produit la figure 3 ? », pas de graphiques périmés — le manuscrit est la chaîne de traitement.

Le même manuscrit parle R — moteur knitr, echo: false, figure numérotée.
Le même manuscrit parle R — moteur knitr, echo: false, figure numérotée.

Mise en place

  1. Installez Quarto (quarto.org, ou brew install quarto) et Folio Helper, gratuit, qui permet à l’app App Store en bac à sable d’utiliser vos outils locaux.
  2. Cellules Python : il vous faut un Python avec Jupyter (pip install jupyter matplotlib pandas). Folio Writer oriente automatiquement Quarto vers un interpréteur compatible Jupyter, pour que les cellules s’exécutent avec un Python capable de les faire tourner — et non avec le premier python3 venu dans le PATH.
  3. Cellules R : installez R ainsi que knitr et rmarkdown — le moteur R standard de Quarto.
  4. Gardez les données et les scripts d’analyse dans le dossier Research du projet, pour que toute la chaîne de traitement voyage (et se synchronise) avec le manuscrit.
Niveau d’offre : l’exécution des cellules de code fait partie du déverrouillage Pro unique, tout comme la compilation (essai complet de 7 jours inclus). Écrire les cellules, et le rendu Quarto simple sans exécution, n’en ont pas besoin.
Où a lieu l’exécution : l’aperçu en direct reste instantané par conception — il compose le texte et les formules mais n’exécute pas de code. Les cellules s’exécutent au moment de la compilation, quand Quarto effectue le rendu du manuscrit assemblé. Pour jeter un coup d’œil rapide à une figure, compilez seulement la section sur laquelle vous travaillez (Portée ▸ Document sélectionné).

Les options de cellule qui comptent pour un manuscrit

Les options de cellule Quarto s’écrivent sous forme de lignes de commentaire #|. Cinq d’entre elles couvrent presque tous les besoins d’un manuscrit :

```{python}
#| label: fig-eos          # cite it as @fig-eos
#| fig-cap: "Compression curve with third-order fit."
#| echo: false             # figure in the paper, code not
#| fig-width: 6.5          # inches, match the journal column
#| warning: false          # keep library chatter out of the PDF
...
```

Pour un manuscrit entier où aucun code ne doit jamais s’afficher, définissez-le une fois dans le document Metadata plutôt que cellule par cellule :

execute:
  echo: false
  warning: false
Analyse lente ? Ajoutez #| cache: true à une cellule coûteuse — Quarto ne la réexécute que lorsque son code change, si bien que recompiler après une retouche du texte ne réajuste pas votre modèle.
Un cas réel : des données P–V lues dans un .xlsx de Research, un ajustement de Birch–Murnaghan, annoté et numéroté à la compilation.
Un cas réel : des données P–V lues dans un .xlsx de Research, un ajustement de Birch–Murnaghan, annoté et numéroté à la compilation.

Si les cellules ne s’exécutent pas

Trois causes couvrent presque tous les cas. Mauvais moteur de rendu : le code ne s’exécute que si le moteur de rendu de la fenêtre de compilation est Quarto — avec pandoc ou Typst, les cellules passent telles quelles sous forme de blocs de code littéraux (c’est voulu : ces chaînes n’exécutent jamais rien). Moteur manquant : Compiler ▸ Configurer les outils externes… vérifie vos outils ; pour les cellules Python, il vous faut Jupyter sur l’interpréteur (pip install jupyter), pour R il vous faut knitr + rmarkdown. Hypothèses sur les chemins : les cellules s’exécutent avec le projet comme répertoire de travail ; lisez donc les données sous la forme Research/pv-data.csv, et non par un chemin absolu venu de votre autre machine — garder des chemins relatifs au projet est aussi ce qui rend le manuscrit reproductible pour vos coauteurs.

Statique quand vous le voulez, dynamique quand ça compte

Cellules exécutables et figures ordinaires coexistent. Une photographie ou un schéma dessiné à la main reste une image Markdown normale ; les graphiques issus des données deviennent des cellules. La vérification du manuscrit de Folio Writer surveille même les figures statiques — en signalant une figure plus ancienne que le script qui la dessine — de sorte que, quel que soit le chemin suivi par une figure, elle ne peut pas devenir obsolète en silence.

Un rendu digne des revues, inclus

Comme le moteur de rendu Quarto est le même que celui qui alimente les formats de revues, les figures dynamiques fonctionnent aussi dans les modèles des éditeurs : ajoutez une extension de revue (AGU, Elsevier, Copernicus…), définissez quarto-to: dans les métadonnées, et la soumission compilée contient des figures générées à partir de votre analyse vivante — reproductibles à partir des fichiers bruts du projet, par n’importe qui, en une seule commande.

Télécharger Folio Writer gratuitement → · Plus de guides