Ce système est conçu pour la rédaction et la mise en forme de textes scientifiques et de formules mathématiques. Typst utilise une syntaxe simple pour le formatage de base, des fonctions personnalisables, un langage de script intégré et la possibilité d'écrire des formules mathématiques. Il se présente comme une alternative à LaTeX,,.
Le compilateur est développé par Typst GmbH, qui assure la maintenance et le support du développement du logiciel, et qui gére un éditeur propriétaire offrant des services gratuits et payants, comme Overleaf, qui permet aux utilisateurs de prévisualiser leur travail pendant l'écriture et qui comprend une fonctionnalité de collaboration.
Histoire
Typst est développé depuis 2019 et a été publié pour la première fois en 2022 par Laurenz Mädje et Martin Haug dans le cadre de leurs mémoires de master à l'université technique de Berlin. En mars 2023, le code source du compilateur a été partagé.
D'après un article publié par GitHub, Typst était le deuxième langage de programmation à la croissance la plus rapide en pourcentage en 2025, avec une croissance de 108%.
Système de composition typographique
Typst est un langage de balisage, similaire à Markdown, conçu pour être aussi puissant que LaTeX tout en utilisant une syntaxe plus facile à apprendre et à utiliser, y compris pour les mathématiques. Afin de permettre une mise à jour rapide des aperçus des documents, il utilise la compilation incrémentale et les appels de fonction sont mémorisés,. De fait, il compile en temps réel en quelques millisecondes, avec un temps de compilation d’un facteur 10 à 100 fois plus court que LaTeX et des diagnostics d’erreurs clairs.
L’export de documents est prévu en PDF en premier lieu, mais il est possible depuis l’été 2025 d’exporter nativement en HTML et il est possible d’importer des documents créés sous LaTeX, Word ou Markdown, puis de les retravailler directement dans Typst.
Typst propose trois modes: un pour le balisage, un pour les formules mathématiques et un mode de programmation (variables, conditions, boucles, etc.). Par défaut, l’utilisateur est dans le mode de balisage, qui est principalement utilisé pour la prose. Pour écrire des formules mathématiques il faut encadrer le texte pertinent par des signes dollar ( $ ),. Le langage de script natif de Typst s’exécute en mode programmation et est indiqué par un dièse ( # ) devant la commande ou le bloc.
Le langage de balisage utilise une syntaxe dédiée de sucre syntaxique pour les éléments de mise en forme courants tels que les titres ( = ), l’emphase ( __ ), l’emphase forte ( ** ) et les listes ( +, - ). Il est possible d'obtenir les mêmes résultats sans utiliser le mode de balisage à l'aide de fonctions dédiées dans le mode de programmation.
Contrairement à LaTeX, Typst n'impose aucune structure de base aux documents. Un préambule n'est pas nécessaire et les propriétés du document n'ont pas besoin d'être définies si elles ne diffèrent pas de leurs valeurs par défaut. De plus, de nombreuses fonctionnalités qui requièrent des paquets externes en LaTeX (comme la gestion des bibliographies) sont intégrées nativement à Typst. Il y a des paquets et modèles fournis par la communauté; cependant, à l'heure actuelle, Typst propose moins de paquets spécialisés que LaTeX.
Exemple
L'exemple ci-dessous illustre un exemple simple des fonctionnalités de Typst:
Entrée (code source)
Sortie
#setpage(paper:"a4")#settext(lang:"fr")#setpar(justify:true)// Les commentaires sont introduits par deux barres obliques= Suite de Fibonacci// le symbole = dénote un titre de section
Enmathématiques,lasuitedeFibonacciestunesuitedenombresentiersdanslaquellechaquenombreestlasommedesdeuxnombresquileprécèdent.
@wikipedia-fibonacci// '@' permet de référencer des figures, sections ou sources de la bibliographie
LasuitedeFibonacciestdéfinieparlarelationderécurrence$F_n=F_(n-1)+F_(n-2)$.Ellepeutaussiêtreexpriméeen_forme close_:// '_' met en emphase du texte (italique)$F_n=(phi.alt^n-(-phi.alt)^(-n))/sqrt(5),quadphi.alt=(1+sqrt(5))/2.$//'$' délimite un contenu de formule mathématique#letcount=18#letnums=range(1,count+1)#letfib(n)=(ifn<=2{1}else{fib(n-1)+fib(n-2)})// '#' passe en mode « programmation », et « let » définie des variables (ex. count) ou des fonctions (ex. fib(n))
Les#countpremierstermesdelasuitedeFibonaccisont:
#align(center,table(columns:count,..nums.map(n=>$F_#n$),..nums.map(n=>str(fib(n))),))#bibliography(bytes(```yamlwikipedia-fibonacci:type:articletitle:SuitedeFibonacciurl:value:https://fr.wikipedia.org/wiki/Suite_de_Fibonaccidate:2026-05-10```.text))// Une bibliographie peut être créée en Hayagriva (format basé sur YAML et développé pour Typst) ou utiliser des fichiers Bibtex locaux// Le mode programmation peut aussi être utilisé pour des variables de contenu textuel, pour générer des graphiques, des tableaux, pour contenir des données d’autres fichiers, ou pour définir des règles
Références
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé «Typst» (voir la liste des auteurs).
↑(es) Alberto Corbi, «Manuscritos digitales en Física», Revista Española de Física, Madrid, Real Sociedad Española de Física, vol.38, no2, april–june 2024 (ISSN0213-862X, lire en ligne, consulté le ).
↑Andrey Voynov, Alberto Corbi, Pau López-Olive et David Gil, «Typst: A Modern Typesetting Engine for Science», International Journal of Interactive Multimedia and Artificial Intelligence, (ISSN1989-1660, DOI10.9781/ijimai.2026.2269, lire en ligne).