Nouvelles fonctionnalités de la version 0.15
Typst 0.15, publié en juin 2026, introduit plusieurs améliorations majeures tout en restant sous licence Apache‑2.0 et écrit en Rust. Parmi les ajouts, on trouve la prise en charge des polices variables, la génération de MathML pour l’export HTML, la gestion de plusieurs bibliographies et le nouveau mode bundle qui permet de produire plusieurs fichiers inter‑liés depuis une même source.
Gestion des polices variables
Les polices variables regroupent toutes les variantes (poids, italique, etc.) dans un seul fichier, ce qui réduit l’encombrement et offre une granularité fine via des « axes ». Typst expose ces axes grâce à la fonction text() et à l’argument variations. L’article teste deux polices open‑source : Roboto Flex, qui possède 13 axes, et Zycon, qui comporte 17 axes décoratifs. Le code suivant montre comment faire varier l’axe YTDE de Roboto Flex pour ajuster la longueur des descendantes :
#set text(font:"Roboto Flex")
#for n in (-305, -200, -98) {
set text(variations:("YTDE": n)) [A penguin jumped quietly.]
}Pour Zycon, l’axe M1 (note : les deux espaces font partie du nom) modifie la phase lunaire d’un glyphe :
#set text(font:"Zycon")
#for n in array.range(0, 10, inclusive:true) {
set text(variations:("M1 ": n/10)) str.from-unicode(127773)
}Ces variations sont rendues directement dans le PDF généré, démontrant la capacité de Typst à exploiter la continuité des axes pour des besoins typographiques précis, comme éviter les collisions de descendeurs dans des tableaux.
Export HTML et MathML
L’export HTML reste expérimental, mais la version 0.15 traduit les formules mathématiques en MathML natif, éliminant le besoin de bibliothèques JavaScript comme MathJax. Le même fichier integral.typ produit, en PDF, l’équation intégrale suivante :
∫₀¹ (arcsin x)² dx = π ln 2
En HTML, la commande suivante active la génération MathML :
typst c --features html integral.typ integral.htmlLes navigateurs modernes affichent le MathML sans perte de qualité, ce qui constitue un atout pour la diffusion scientifique en ligne.
Fonction « bundle » pour la génération multi‑format
Le mode bundle autorise la création simultanée de plusieurs documents (PDF, HTML) à partir d’un même fichier source, avec partage de données et liens intra‑ et inter‑documents. L’exemple fourni crée deux pages HTML et un PDF inter‑liés autour d’un fragment de texte :
#let text = ['Twas brillig, and the slithy toves]
#document("poems.html", title:[Famous Poems])[
#link()[Here] is a famous nonsense poem.
]
#document("jabberwocky.html", title:[Jabberwocky by Lewis Carroll])[
This famous poem begins like this: #text
]
#document("jabberwocky.pdf", title:[Jabberwocky: the Complete Poem])[
#text
]
Le traitement s’effectue avec :
typst c --features html,bundle --format bundle bundle.typLe compilateur crée alors un répertoire bundle contenant les trois fichiers, confirmant que la fonctionnalité fonctionne comme annoncé, même si elle demeure en phase de « work in progress » et nécessite le drapeau --features.