Dans cet article, je vous présenterai brièvement Typst, puis je ferai une petite comparaison par rapport à Latex. Le but de cet article n’est pas de vous apprendre à utiliser Typst (la documentation est là pour ça), mais bien de faire un tour d’horizon rapide du sujet.
Typst, c’est quoi ?
Typst est un outil (assez récent) permettant de rédiger facilement des documents scientifiques. Il s’agit d’un outil similaire à LaTeX, bien connu des professeurs de mathématiques. L’ensemble des formules et du formatage sont directement contenus dans le document au format texte. Les formules, elles, seront tapées dans une syntaxe rappelant celle de LaTeX mais simplifiée. Pour le formatage, la syntaxe se rapprochera du Markdown.
Capture d’écran extraite de la page d’accueil du site https://typst.app/
Comment utiliser Typst
Il existe deux façons d’utiliser Typst, soit via une interface web, soit en local.
Il s’agit de la méthode la plus simple. Il suffit de s’inscrire (gratuitement, du moins lors de la rédaction de cet article) sur le site officiel afin d’accéder à une interface permettant de rédiger directement via son navigateur des documents Typst. Il est même possible de collaborer à plusieurs sur le même document ! Pour les habitués à LaTeX, cette méthode pourra vous faire penser au service proposé par overleaf, à la différence qu’ici le service est directement proposé par les créateurs de l’outil.
Cette méthode, bien qu’un peu plus complexe, à l’avantage de ne pas nous rendre prisonnier d’un site web. Il est possible de compiler un document Typst directement depuis son ordinateur. Mieux encore, le compilateur est entièrement open-source (Apache License 2.0), cela signifie donc qu’il est possible d’accéder au code source du compilateur (et même de le modifier et de partager les modifications). Ainsi, et c’est très important, vous n’êtes pas tributaire du bon vouloir d’une entreprise commerciale : personne ne pourra vous interdire de continuer à compiler vos documents typst sur votre ordinateur. Il est bon de noter que l’interface web n’est, elle, pas concernée par cette licence open-source (mais si par exemple l’interface web devient payante un jour, vous pourrez tout à fait continuer à travailler sur vos documents en utilisant une compilation locale).
Vous trouvez des instructions (en anglais) sur comment utiliser typst en local sur la page du projet github. À noter que cela nécessite l’utilisation de l’invite de commande.
Pour terminer, voici une autre façon, bien plus simple, d’utiliser Typst en local.
Visual Studio Code est un éditeur de texte gratuit (développé par Microsoft) adapté à la programmation. Un plugin permettant d’utiliser Typst est disponible, ce qui facilite grandement l’utilisation de ce dernier puisqu’il n’est plus nécessaire d’utiliser l’invite de commande et que la prévisualisation se fait directement depuis Visual Studio Code. Autre avantage, il n’est pas nécessaire d’installer Typst.
Voici les instructions si vous êtes intéressé par cette méthode :
– Installer le logiciel Visual Studio Code si ce n’est pas déjà fait
– Installer ensuite l’extension Typst LSP
– Vous aurez également probablement besoin d’installer l’extension vscode-pdf afin de pouvoir visualiser directement la sortie pdf dans Visual Studio Code
Espérons qu’un logiciel à installer simplement pour utiliser Typst en local soit à terme proposé par les créateurs (ou bien par la communauté puisque, rappelons-le, Typst est open-source).
Comparaison avec LaTeX
Typst a selon moi un avantage majeur par rapport à LaTeX : la syntaxe est simplifiée.
La mise en forme pour commencer, est très efficace sur typst grâce à sa syntaxe proche du markdown :
Typst |
Latex |
= Ceci est un titre
== Ceci est un sous titre
Du texte en *gras* ou en _italique_.
- Voici
- une
- liste
- à
- puce
+ Et
+ voici
+ une
+ liste
+ ordonnée
Télécharger
|
\begin{document}
\begin{itemize}
\begin{itemize}
\end{itemize}
\end{itemize}
\begin{enumerate}
\begin{enumerate}
\end{enumerate}
\end{enumerate}
\end{document}
Télécharger
|
Typst |
Latex |
|
|
Pour les mathématiques, la syntaxe est également agréable à utiliser.
Notez que la différence entre une formule « en ligne » et une formule en « mode block » se fait en fonction de la présence ou l’absence d’espace après/avant les symboles dollars ($x^2$
vs $ x^2 $
).
Typst |
Latex |
Il est très simple d'écrire des formules $2 pi r$ ou bien des calculs $3 times 4/2 = 6$.
On peut aussi vouloir écrire des formules centrées $ (a+b)^2 = a^2 + 2 a b + b^2 $
Ou bien des calculs sur plusieurs lignes :
$ 3 times 4/2
&= 3/1 times 4/2\
&= (3 times 4)/(1 times 2)\
&= 12/2\
&= 6 $
Télécharger
|
\begin{document}
Il est très simple d'écrire des formules $2 \pi r$ ou bien des calculs $3 \times \frac{4}{2} = 6$.
On peut aussi vouloir écrire des formules centrées \[ (a+b)^2 = a^2 + 2 a b + b^2 \]
Ou bien des calculs sur plusieurs lignes :
\begin{align*}
&= \frac{3 \times 4}{1 \times 2}\\
&= 6
\end{align*}
\end{document}
Télécharger
|
Typst |
Latex |
|
|
On remarque rapidement que la syntaxe Typst est bien plus légère et agréable. En particulier, nous n’avons plus à taper des antislashs avant chaque commande. On peut également noter que les fractions sont désormais très simples à saisir.
Bien évidemment, pour des exemples plus complexes, la syntaxe se complexifie.
- La compilation via Typst est en règle générale beaucoup plus rapide que sous LaTeX, en particulier via l’éditeur web où elle est presque quasi instantanée.
Typst met en avant sur la page de son projet Github une compilation rapide grâce à une compilation incrémentale. Vérifions cette affirmation à l’aide d’un test de compilation.
Le test se base sur un code source LaTeX (généré à l’aide de ChatGpt) produisant un fichier de quelques pages et sur le code source équivalent Typst (traduit à la main). Les fichiers ont été compilés plusieurs fois, puis une dernière compilation a été faite après une légère modification. Cette dernière compilation a été effectuée plusieurs fois afin de vérifier la stabilité du temps de compilation.
A noter qu’il ne s’agit pas d’un vrai test scientifique mais d’une simple expérience. Pour quelque chose de plus scientifique, vous pouvez regarder la page 70 de la thèse d’un des deux auteurs de Typst.
Type de compilation | Durée de compilation |
Fichier Typst (web) |
Quasi instantanée |
Fichier LaTeX (compilation web via la version gratuite de Overleaf) |
Environ 2s |
Fichier Typst (local, via le plugin Visual Studio Code) |
Environ 0,5s |
Fichier Typst (compilation locale en ligne de commande) |
Environ 0,75s |
Fichier LaTeX compilé localement (PdfLaTeX) |
Environ 1,25s. |
|
|
|
|
Sortie Typst (.pdf) |
Source Typst (.typ) |
Sortie LaTeX (.pdf) |
Source LaTeX (.tex) |
- Une autre point agréable est la gestion des messages d’erreurs. Il arrive bien souvent que LaTeX produise des messages d’erreur confus. C’est moins le cas avec Typst. La version web propose d’ailleurs des explications supplémentaires qui peuvent être très pratiques pour les nouveaux utilisateurs.
Un exemple d’erreur avec explications supplémentaires sur la version web
Un autre avantage de Typst est qu’il possède un langage de programmation intégré assez similaire aux langages de programmation habituels. On peut ainsi définir des variables, faire des conditions, utiliser des boucles for ou while, et bien d’autres choses. Il est également possible d’extraire des données depuis plusieurs formats (csv, json, etc.).
LaTeX propose certes, avec certains packages (ou via LuaLaTeX), des possibilités de programmation, mais celles-ci ne sont pas intégrées nativement et ne sont pas toujours simples à utiliser.
Un exemple avancé de programmation tiré de la présentation de Typst sur Github
Pour en savoir plus sur les capacités de programmation de Typst, vous pouvez consulter ces deux pages (en anglais) :
Typst reste en revanche un outil encore jeune, qui est toujours en construction et continue d’être amélioré au fur et à mesure (voir les notes de version). Certaines fonctionnalités indispensables, comme la localisation de l’écriture des nombres (utilisation d’une virgule en français comme séparateur décimal) ne sont pas encore disponibles.
De même, si Typst possède un système de package, leur nombre reste très réduit par rapport à LaTeX. Par exemple, il n’existe pas d’équivalent au package LaTeX tkz-tab
, il n’est donc actuellement pas possible de créer des tableaux de variation sous Typst (une alternative reste cependant de les créer d’abord via LaTeX pour ensuite les inclure dans Typst sous forme d’image).
Conclusion
En conclusion, Typst propose une alternative intéressante à LaTeX avec en particulier une syntaxe simplifiée.
En revanche, il manque encore certaines fonctionnalités importantes à Typst et ce dernier ne bénéficie pas de l’immense base de package dont dispose LaTeX.
Il n’est en revanche pas nécessaire de faire un choix entre ces deux technologies, et on pourra adapter l’outil en fonction du besoin. Par exemple, Typst pourra se révéler utile pour rédiger par exemple de rapides corrections, mais on pourra préférer LaTeX pour des projets plus gros nécessitant certaines fonctionnalités avancées. On pourrait également imaginer présenter assez facilement Typst à un élève qui aurait des difficultés avec l’écriture manuscrite.
Liens utiles
– Documentation typst : https://typst.app/docs/ (en anglais)
– Guide pour les utilisateurs LaTex : https://typst.app/docs/guides/guide-for-latex-users/ (en anglais)
– Une réflexion intéressante de Bernard Ycart sur l’importance de la structure et les inconvénients de la disparition de \begin ... \end
dans Typst.
– La thèse d’un des deux auteurs de Typst : https://www.user.tu-berlin.de/mhaug/fast-typesetting-incremental-compilation.pdf (en anglais)
(ne pas afficher dans les pièces jointes)