Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Une brève introduction à Typst, une alternative à LaTeX pour rédiger des documents scientifiques
Article mis en ligne le 29 novembre 2023
dernière modification le 1er décembre 2023

par Mathieu Degrange

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.

Via le Web

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.

En local

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.

En local (via Visual Studio Code)

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

Une syntaxe simplifiée

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 :

Source

Typst Latex

  1. = Ceci est un titre
  2. == Ceci est un sous titre
  3. Du texte en *gras* ou en _italique_.
  4. - Voici
  5. - une
  6.   - liste
  7.   - à
  8. - puce
  9.  
  10. + Et
  11. + voici
  12.   + une
  13.   + liste
  14. + ordonnée

Télécharger



  1. \documentclass{article}
  2. \usepackage{amsmath}
  3. \begin{document}
  4.  
  5. \section{Ceci est un titre}
  6. \subsection{Ceci est un sous titre}
  7. Du texte en \textbf{gras} ou en \textit{italique}.
  8. \begin{itemize}
  9.    \item Voici
  10.    \item une
  11.    \begin{itemize}
  12.        \item liste
  13.        \item à
  14.    \end{itemize}
  15.    \item puce
  16. \end{itemize}
  17.  
  18. \begin{enumerate}
  19.    \item Et
  20.    \item voici
  21.    \begin{enumerate}
  22.        \item une
  23.        \item liste
  24.    \end{enumerate}
  25.    \item ordonnée
  26. \end{enumerate}
  27.  
  28. \end{document}

Télécharger


Résultat

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 $).

Source

Typst Latex

  1. Il est très simple d'écrire des formules $2 pi r$ ou bien des calculs $3 times 4/2 = 6$.
  2.  
  3. On peut aussi vouloir écrire des formules centrées $ (a+b)^2 = a^2 + 2 a b + b^2 $
  4.  
  5. Ou bien des calculs sur plusieurs lignes :
  6.  
  7. $ 3 times 4/2
  8. &= 3/1 times 4/2\
  9. &= (3 times 4)/(1 times 2)\
  10. &= 12/2\
  11. &= 6 $

Télécharger



  1. \documentclass{article}
  2. \usepackage{amsmath}
  3. \begin{document}
  4.  
  5. Il est très simple d'écrire des formules $2 \pi r$ ou bien des calculs $3 \times \frac{4}{2} = 6$.
  6.  
  7. On peut aussi vouloir écrire des formules centrées \[ (a+b)^2 = a^2 + 2 a b + b^2 \]
  8.  
  9. Ou bien des calculs sur plusieurs lignes :
  10.  
  11. \begin{align*}
  12. 3 \times \frac{4}{2}
  13. &= \frac{3}{1} \times \frac{4}{2}\\
  14. &= \frac{3 \times 4}{1 \times 2}\\
  15. &= \frac{12}{2}\\
  16. &= 6
  17. \end{align*}
  18.  
  19. \end{document}

Télécharger


Résultat

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.

Une compilation plus rapide et des messages d’erreurs efficaces

  • 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.

Un comparatif de la vitesse sur un exemple

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.

Résultats du test

Type de compilationDuré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.

Sources et sorties pdf

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

Des capacités de programmation

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) :

Un outil encore jeune, dont certaines fonctionnalités ne sont pas encore disponibles

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)