Première rédaction de cet article le 1 décembre 2025
Vous le savez, j'ai expérimenté récemment l'outil de formatage de textes Typst. Un de ses intérêts est de disposer d'un langage pour réaliser des schémas, nommé Fletcher. Voici quelques points intéressants de Fletcher.
Fletcher est sur le même créneau que des systèmes comme Asymptote (que j'utilise jusqu'à présent), Graphviz ou TikZ : un langage pour décrire les schémas techniques, qui évite de passer du temps avec la souris en essayant de placer ses éléments de schémas au bon endroit. Fletcher est écrit avec le langage de programmation de Typst, et s'appuie sur le système CeTZ.
Sans plus tarder, un exemple de code en Fletcher :
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#diagram(
{
node([Un], stroke: 1pt)
node((rel: (1, 1)), [Deux], stroke: 1pt)
node((rel: (-1, 1)), [Trois], stroke: 1pt)
edge(auto, auto, [Par ici], "->")
}
)
Compilé avec typst compile --format png
simple-fletcher-1.typ, il donne :

Voyons les détails :
Maintenant, si on veut davantage de contrôle sur le placement, on va donner des noms aux objets (et puis on met des valeurs par défaut pour les boites) :
#import "@preview/fletcher:0.5.8" as fletcher: diagram, node, edge
#diagram(
// Valeurs par défaut pour les nœuds
node-stroke: 2pt,
node-shape: fletcher.shapes.house,
{
node([Un], name: <un>)
node((rel: (1, 1)), [Deux], name: <deux>)
node((rel: (-1, 1), to: <un>), [Trois], name: <trois>)
node((rel: (3, 4), to: <deux>), [Quatre], name: <quatre>)
edge(<un>, <deux>, [Par ici], "->")
}
)
Et cela donne : 
Vous noterez, dans le deuxième essai :
Pour un exemple plus réaliste, je vous ai mis un schéma de la
résolution DNS et
un autre de l'arborescence des noms
de domaine, avec le PDF (ce que produit Typst par défaut) et le
source : fletcher-resolution-dns.pdf, fletcher-resolution-dns.typ, fletcher-arbre-domaines.pdf et fletcher-arbre-domaines.typ. La combinaison de coordonnées
relatives, et de flèches qu'on accroche à des boites, sans se
préoccuper de donner des coordonnées, est très agréable.
Voilà, bien sûr, Fletcher est beaucoup plus riche que cela et vous pouvez faire bien d'autres choses, n'hésitez pas à lire la très complète documentation.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)