| Title: | Paquet Compagnon du Tutoriel Quarto + Typst (Rencontres R 2026) |
|---|---|
| Description: | Fonctions utilitaires pour preparer et suivre le tutoriel "PDF sans frictions : Typst dans vos projets Quarto" (Rencontres R 2026). Le paquet verifie l'environnement (R, Quarto, Typst, paquets), installe localement les exercices et aide au rendu Typst. Installer le paquet tire automatiquement tous les prerequis du tutoriel. |
| Authors: | Christophe Dervieux [aut, cre] |
| Maintainer: | Christophe Dervieux <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.0.0.9001 |
| Built: | 2026-06-10 20:34:43 UTC |
| Source: | https://github.com/cderv/tuto-quarto-typst-rr-2026 |
font-paths (livre, Quarto < 1.10.4)Sur Quarto antérieur à 1.10.4, un projet livre avec _brand.yml a besoin de
l'option font-paths dans _quarto.yml pour trouver les polices. Cette
fonction l'ajoute si nécessaire (et ne fait rien si votre Quarto est assez
récent ou si l'option est déjà présente). Le _quarto.yml est sauvegardé.
appliquer_polices_locales(projet = ".")appliquer_polices_locales(projet = ".")
projet |
Dossier du projet livre (contenant |
Invisiblement, TRUE si le fichier a été modifié, FALSE sinon.
appliquer_polices_locales()appliquer_polices_locales()
Dépose l'une des chartes thématiques (empire, jedi, mando) comme
_brand.yml du projet, pour illustrer qu'un même projet change d'identité
en changeant simplement de charte. À utiliser après l'exercice. Votre
_brand.yml est sauvegardé avant remplacement.
basculer_charte(variante = c("empire", "jedi", "mando"), projet = ".")basculer_charte(variante = c("empire", "jedi", "mando"), projet = ".")
variante |
|
projet |
Dossier du projet. Par défaut le répertoire courant. |
Invisiblement, le chemin du _brand.yml.
basculer_charte("jedi")basculer_charte("jedi")
Quand le réseau manque, Inter (déclarée source: google dans _brand.yml)
ne peut pas être téléchargée. Cette fonction dépose les fichiers Inter
embarqués dans _fonts/ et bascule l'entrée Inter de _brand.yml en
source: file — sans toucher au reste de votre charte (couleurs, etc.).
Votre _brand.yml est sauvegardé avant modification.
basculer_hors_ligne(projet = ".", retour = FALSE)basculer_hors_ligne(projet = ".", retour = FALSE)
projet |
Dossier de l'exercice (contenant |
retour |
Logique. Restaurer le |
Invisiblement, le chemin du _brand.yml, ou NULL si rien n'a été
modifié.
basculer_hors_ligne() basculer_hors_ligne(retour = TRUE)basculer_hors_ligne() basculer_hors_ligne(retour = TRUE)
Affiche la couleur principale (primary) de chaque variante de charte, avec
un aperçu coloré (si votre console le permet).
comparer_chartes()comparer_chartes()
Invisiblement, un vecteur nommé des couleurs principales.
comparer_chartes()comparer_chartes()
Génère un squelette de projet Typst prêt à l'emploi (hors thème Star Wars),
pour réutiliser ce que vous avez appris après le tutoriel : un document
ou un livre, avec une charte _brand.yml à adapter. Sur Quarto < 1.10.4, le
contournement font-paths est ajouté automatiquement aux projets livre.
creer_projet_typst( dest, type = c("document", "livre"), brand = TRUE, offline = FALSE )creer_projet_typst( dest, type = c("document", "livre"), brand = TRUE, offline = FALSE )
dest |
Dossier à créer pour le projet. |
type |
|
brand |
Logique. Inclure une charte |
offline |
Logique. Inclure les polices Inter en local ( |
Invisiblement, le chemin absolu du projet créé.
creer_projet_typst("mon-rapport") creer_projet_typst("mon-livre", type = "livre")creer_projet_typst("mon-rapport") creer_projet_typst("mon-livre", type = "livre")
Agrège les informations utiles au dépannage : chemin et version de Quarto,
version de Typst embarqué, présence du cache de polices, et verdict sur le
besoin du contournement font-paths (Quarto < 1.10.4).
diagnostic_typst(projet = ".")diagnostic_typst(projet = ".")
projet |
Dossier de projet où chercher le cache de polices
|
Invisiblement, une liste des informations collectées.
diagnostic_typst()diagnostic_typst()
Traduit en français les messages d'erreur ou d'avertissement les plus fréquents lors du rendu Typst, et indique s'ils sont bénins (le PDF est quand même produit) ou bloquants, avec l'action à mener.
diagnostiquer_rendu(texte = NULL)diagnostiquer_rendu(texte = NULL)
texte |
Le texte de l'erreur (copié depuis la console). Si |
Invisiblement, un vecteur des gravités reconnues ("benin" /
"bloquant"), ou NULL si texte est NULL. Appelée surtout pour son
affichage.
diagnostiquer_rendu() diagnostiquer_rendu("Error: unknown font family 'Inter'")diagnostiquer_rendu() diagnostiquer_rendu("Error: unknown font family 'Inter'")
Affiche un résumé de votre environnement (R, Quarto, paquets) dans la console, à copier-coller si vous demandez de l'aide. Peut aussi l'écrire dans un fichier.
exporter_diagnostic(fichier = NULL)exporter_diagnostic(fichier = NULL)
fichier |
Chemin d'un fichier où écrire aussi le diagnostic. Par
défaut |
Invisiblement, les lignes du diagnostic.
exporter_diagnostic()exporter_diagnostic()
Rend un .qmd format: typst en conservant le .typ intermédiaire
(keep-typ), pour comprendre la couche Typst générée par Quarto. Pensé pour
un document simple (l'exercice 1) ; pour un livre, le comportement est
moins prévisible.
inspecter_typ(qmd, ouvrir = TRUE)inspecter_typ(qmd, ouvrir = TRUE)
qmd |
Chemin du fichier |
ouvrir |
Logique. Ouvrir le |
À utiliser après avoir produit votre propre PDF : c'est un outil pour comprendre la couche Typst, pas un raccourci vers la solution de l'exercice.
Invisiblement, le chemin du .typ produit, ou NULL en cas d'échec.
inspecter_typ("rapport-starwars.qmd")inspecter_typ("rapport-starwars.qmd")
Copie les fichiers de départ (« starters ») des exercices, embarqués dans le
paquet, vers un dossier de travail local. Seuls les starter/ sont copiés ;
les corrections ne sont pas posées ici (voir ouvrir_correction() pour les
consulter en ligne, recuperer_correction() pour les copier en local).
installer_exercices(dest = NULL, quels = c("tous", "01", "02"), force = FALSE)installer_exercices(dest = NULL, quels = c("tous", "01", "02"), force = FALSE)
dest |
Chemin du dossier de destination (créé si besoin). Par défaut
|
quels |
Quels exercices installer : |
force |
Logique. Passer la confirmation interactive et écraser un
dossier de destination déjà existant et non vide ? Par défaut |
Invisiblement, le chemin absolu du dossier de destination, ou NULL
si l'installation a été annulée.
installer_exercices() installer_exercices(quels = "01")installer_exercices() installer_exercices(quels = "01")
Affiche les exercices disponibles avec, pour chacun, son intention. Sert à s'orienter ; ne dévoile pas les étapes de résolution.
lister_exercices()lister_exercices()
Invisiblement, les codes des exercices (character).
lister_exercices()lister_exercices()
Supprime les artefacts de rendu (_book/, *_files/, *.typ) pour repartir
d'un état propre. Ne touche jamais à vos sources ni à _fonts/.
nettoyer_cache(projet = ".", polices = FALSE)nettoyer_cache(projet = ".", polices = FALSE)
projet |
Dossier de projet à nettoyer. Par défaut le répertoire courant. |
polices |
Logique. Vider aussi le cache de polices
|
Invisiblement, le nombre d'éléments supprimés.
nettoyer_cache()nettoyer_cache()
Ouvre, en ligne sur GitHub, le dossier correction/ d'un exercice. Les
corrections ne sont volontairement pas posées par installer_exercices() :
elles sont plus utiles après avoir cherché par vous-même. Une confirmation
est demandée. Pour en obtenir une copie locale à retravailler, voir
recuperer_correction().
ouvrir_correction(quel = c("01", "02"), je_confirme = FALSE)ouvrir_correction(quel = c("01", "02"), je_confirme = FALSE)
quel |
|
je_confirme |
Logique. Passer la confirmation (utile en script). Défaut
|
Invisiblement, l'URL de la correction, ou NULL si annulé.
recuperer_correction() pour copier la correction en local.
ouvrir_correction("01")ouvrir_correction("01")
Filet de sécurité quand on a perdu le message de installer_exercices() :
ré-affiche le chemin absolu et ouvre le dossier.
ouvrir_exercices(dossier = "exercices-typst")ouvrir_exercices(dossier = "exercices-typst")
dossier |
Dossier où les exercices ont été installés. Par défaut
|
Invisiblement, le chemin absolu du dossier.
ouvrir_exercices()ouvrir_exercices()
Boussole : détecte l'état de votre préparation (paquets, Quarto, exercices installés) et indique la prochaine action à effectuer. En cas de doute, c'est la fonction à lancer.
par_ou_commencer(dossier = "exercices-typst")par_ou_commencer(dossier = "exercices-typst")
dossier |
Dossier où chercher les exercices installés. Par défaut
|
Invisiblement, un mot-clé de l'étape courante (character).
par_ou_commencer()par_ou_commencer()
Appelle quarto typst fonts pour lister les familles de polices visibles par
Typst, et vérifie la présence d'Inter et de Star Jedi.
polices_typst(projet = NULL)polices_typst(projet = NULL)
projet |
Dossier de projet. Si fourni, son sous-dossier |
Une police déclarée source: google dans _brand.yml (Inter par défaut)
n'apparaît pas ici tant qu'un premier rendu ne l'a pas téléchargée dans le
cache. Seules les polices source: file (et système) sont visibles d'emblée.
Invisiblement, le vecteur des familles de polices.
polices_typst()polices_typst()
Copie les sources de la correction d'un exercice (embarquées dans le
paquet) vers un dossier de travail local, pour la retravailler après coup.
Comme ouvrir_correction(), une confirmation est demandée : une correction
est plus utile une fois que vous avez cherché par vous-même.
recuperer_correction( quel = c("01", "02"), dest = "exercices-typst", force = FALSE )recuperer_correction( quel = c("01", "02"), dest = "exercices-typst", force = FALSE )
quel |
|
dest |
Dossier de travail où poser la correction (créé si besoin). Par
défaut |
force |
Logique. Passer la confirmation et écraser une correction
déjà copiée et non vide ? Par défaut |
Par défaut, la correction est posée à côté du starter/ correspondant (dans
exercices-typst/<exercice>/correction/), ce qui reproduit l'arborescence du
dépôt. Aucun artefact de rendu n'est embarqué : pour obtenir le PDF / livre,
rendez la correction avec quarto render.
Invisiblement, le chemin du dossier de correction copié, ou NULL si
annulé.
recuperer_correction("01")recuperer_correction("01")
Restaure le starter/ d'un exercice (depuis la copie embarquée dans le
paquet) lorsque vous avez cassé vos fichiers. Votre dossier actuel est
sauvegardé (jamais supprimé) avant d'être remplacé.
reinitialiser_exercice( quel = c("01", "02", "00"), dossier = "exercices-typst", force = FALSE )reinitialiser_exercice( quel = c("01", "02", "00"), dossier = "exercices-typst", force = FALSE )
quel |
Quel exercice réinitialiser : |
dossier |
Dossier où les exercices ont été installés (le |
force |
Logique. Réinitialiser sans confirmation interactive ? Par
défaut |
Invisiblement, le chemin du dossier réinitialisé, ou NULL si
l'opération a été annulée.
reinitialiser_exercice("01")reinitialiser_exercice("01")
_brand.yml
Vérifie qu'un _brand.yml est cohérent : schéma valide (via le paquet
brand.yml), références croisées (couleurs, polices, logo) et existence des
fichiers de polices source: file.
valider_brand(chemin = "_brand.yml")valider_brand(chemin = "_brand.yml")
chemin |
Chemin du fichier |
Invisiblement, TRUE si tout est cohérent, FALSE sinon.
valider_brand()valider_brand()
Contrôle, dans l'ordre, votre version de R, la présence et la version de
Quarto, les paquets R prérequis, puis (par défaut) effectue un rendu de
test d'un mini-document Typst pour valider la chaîne complète
R -> Quarto -> Typst -> gt -> ggplot2. Affiche un bilan et la prochaine
étape conseillée.
verifier_installation(tester_rendu = TRUE)verifier_installation(tester_rendu = TRUE)
tester_rendu |
Logique. Effectuer le rendu de test Typst ? Activé par
défaut. Mettez |
Le rendu de test utilise un fichier format: typst volontairement minimal
(sans _brand.yml ni polices) : il valide la chaîne de compilation, mais
pas la chaîne des polices de marque (le vrai point d'attention de
l'exercice 2). Il fonctionne hors-ligne.
Invisiblement, TRUE si tout est prêt, FALSE sinon.
verifier_installation() verifier_installation(tester_rendu = FALSE)verifier_installation() verifier_installation(tester_rendu = FALSE)