Vous en souvient-il ? En deux mille vingt-cinq, qpad nous présentait Typst, un nouveau système de composition de documents qui se posait en concurrent de LaTeX.
Depuis, Typst semble avoir grandi, en s’assortissant d’une galaxie (pardon, un univers) de paquets tiers. En fait, j’ai surtout l’impression qu’il a gagné en notoriété, ou en quantité de mouvement, pour le dire comme les anglophones. C’est l’occasion de présenter à nouveau ce système de composition.
Sommaire
- Un système de composition de documents
- Concurrent à LaTeX
- Impressions d’un LaTeXnicien
- Un bel avenir ?
Un système de composition de documents
Typst est donc un système de composition de documents. Comme LaTeX, il est non-visuel, c’est-à-dire qu’on code son document qui est ensuite compilé en PDF.
Concrètement, l’outillage se compose, au choix :
- du compilateur Typst, sous licence Apache ;
- de l’application Web, non libre, qui fournit un éditeur intégré et une visualisation en temps réel.
Concurrent à LaTeX
Typst partage plusieurs caractéristiques avec LaTeX dont il est ouvertement inspiré :
- c'est un système non visuel avec un langage dédié ;
- il est conçu pour permettre d’écrire des documents scientifiques.
Bien que je n’aie pas vérifié ce point, il me semble probable qu’il utilise également quelques algorithmes de mise en page assez incontournables, définis par Donald Knuth pour TeX, par exemple pour la coupure des lignes d’un paragraphe.
Il s’écarte évidemment de LaTeX sur plusieurs aspects, sinon ce ne serait pas vraiment un nouveau système de composition :
- c’est un système autonome, contrairement à LaTeX qui est construit sur TeX ;
- il est conçu dès le départ avec des préoccupations actuelles (Unicode, PDF…) ;
- il est conçu comme un langage humainement compréhensible, là où TeX semble franchement ésotérique.
Impressions d’un LaTeXnicien
Quand on arrive de LaTeX, l’impression est assez partagée, entre des différences significatives, de gros avantages et quelques inconvénients.
Le langage de texte
Le langage de base pour le texte est différent de LaTeX, mais ce n’est pas vraiment dérangeant dans la mesure où on parle seulement de paragraphes, de titres, de mise en emphase, de listes, etc. Bref, le genre de chose qu’on fait aussi bien en Markdown. D’ailleurs, Typst étant né après le développement des langages de balisage léger, sa syntaxe Typst est justement assez proche de Markdown, ce qui n’est pas désagréable :
= Titre de section
Voici du texte avec _une emphase_, *une emphase forte* et un `peu de code`.
À noter que cette syntaxe légère n’est en fait que du sucre syntaxique, et qu’on peut écrire la même chose en faisant explicitement appel à des fonctions nommées.
La compilation
Pour celles et ceux qui n’ont pas l’habitude de LaTeX, compiler un document un peu costaud, qui fait appel à quelques extensions, ça demande un temps de l’ordre d’une ou plusieurs secondes, et cela produit des centaines, voire des milliers de lignes de log. Pour avoir des références internes (sommaire, références à des images…) et externes (bibliographie), il faut lancer plusieurs fois la compilation.
Pour qui vient du monde LaTeX donc, la compilation par Typst est hallucinante. Une seule passe, même si en interne, Typst fait certainement au besoin plusieurs itérations. Quelques dizaines de millisecondes. Ok, c’était pour un document ultra-simple, mais les commentaires lisibles sur les Interwebz font généralement état d’un rapport d’un ou deux ordres de grandeur par rapport à LaTeX.
Le langage de configuration et d’extension
Là où ça change vraiment, c’est pour tout ce qui relève des réglages, des modèles, de la personnalisation ou de la programmation d’extensions. Là, ça n’a plus rien à voir avec TeX et LaTeX. À mon avis, ce n’est pas un mal dans la mesure où le langage TeX et les conventions utilisées pour le développement en LaTeX sont assez complexes, voire incompréhensibles.
Cela se ressent dans le code des extensions. À titre de comparaison, celui de la classe LaTeX lettre fait quelques milliers de lignes. Et c’est assez illisible pour qui ne connaît par TeX. Le code du modèle formalettre, qui n’est certes pas aussi complet mais qui fait très bien le travail de base d’une telle classe, fait une centaine de lignes, que je trouve relativement lisibles pour un béotien.
L’utilisation de paquets tiers
Les paquets tiers, hébergés sur l’univers Typst, sont téléchargés à l’utilisation. Par rapport à une distribution LaTeX qui pèse facilement plusieurs centaines de mébioctets, ça donne une vraie impression de légèreté.
La francisation
L’adaptation aux conventions en usage en langue française, ou dans les différents pays francophones, me semble encore assez incomplète.
Lorsqu’on passe un document en français, les changements de base s’effectuent bien : un sommaire s’appellera bien « Tables des matières » et les césures respecteront l’usage de la langue.
En revanche, cela n’adapte pas la mise en forme des paragraphes avec alinéa, et on attendrait en vain que des mots comme 1ᵉʳ
, 2ᵉ
ou Mme
soient automatiquement mis en forme selon l’usage attendu. Et non, il n’y a pas de commandes définies pour cela. Pas encore, en tout cas, parce que je serais surpris que personne ne publie un jour un paquet proposant tout cela.
Les modèles
L’équivalent d’une classe LaTeX est un modèle Typst. Cela correspond à un type de document, par exemple un article, un rapport ou une lettre.
Typst ne semble pas proposer de modèles officiels. Il y en a en revanche par mal dans l’univers Typst, et le langage est conçu pour rendre la création d’un modèle assez accessible. Le troisième chapitre du tutoriel officiel traite justement de la création d’un modèle.
Un bel avenir ?
Typst a été conçu à partir de 2019 et a vraiment vu le jour en 2023. J’en ai entendu parler pour la première fois en mars 2023, dans le journal de qpad.
Les lacunes que j’avais alors remarquées et qui me retenaient de commencer à l’utiliser pour mes propres documents, semblent avoir été comblées pour l’essentiel. L’univers Typst, qui est le dépôt de paquets tiers, s’est largement rempli et semble bien jouer son rôle pour permettre aux utilisateurs de partager les extensions et modèles.
Le langage semble bien conçu :
- il joue correctement son rôle pour la mise en forme de documents et de contenu scientifique ;
- il est beaucoup plus humain que TeX et LaTeX lorsqu’il s’agit d’écrire des modèles et des extensions.
L’écosystème est également bien conçu et bien fourni et semble bien répondre aux attentes de la communauté, avec une légèreté bienvenue. Dans l’ensemble, j’ai l’impression que Typst est bien parti pour proposer un successeur sérieux à LaTeX. Je formule tout de même quelques interrogations :
- la distribution de paquets tiers, incontournable, semble intégralement centralisée et dépendante de l’univers Typst ;
- ce dernier, ainsi que Typst en général, est maintenu par l’entreprise allemande Typst GmbH dont le financement dépend de la vente d’abonnements aux formules premium de l’application Web : espérons que cela s’avère pérenne.
Aller plus loin
- Typst (47 clics)
- Tutoriel Typst (14 clics)
- Typst pour les utilisateurs LaTeX (13 clics)
- Référence Typst (3 clics)
- Univers Typst, le dépôt de paquest tiers (7 clics)
- Journal présentant Typst en 2023 (9 clics)
# Prononciation
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 4 (+1/-0).
Au fait, j'ai oublié d'expliquer que Typst se prononce « taïpst » et non « taille-piste » par exemple.
Ce n'est pas le plus facile à prononcer pour un francophone, mais pas plus difficile que « hipster » par exemple.
# Inclusion des figures PDF
Posté par jch . Évalué à 1 (+0/-0).
Il y a quelques années, j'avais essayé de convertir quelques uns de mes documents LaTeX en Typst. J'avais buté sur une limitation : Typst ne permettait pas d'inclure des figures au format PDF. Il aurait donc fallu que je convertisse toutes mes figures en SVG.
Cette dépêche m'a fait vérifier de nouveau, et on dirait que la limitation n'existe plus depuis la version 0.14 de Typst. Je vais peut-être regarder de nouveau.
[^] # Re: Inclusion des figures PDF
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 3 (+0/-0).
Convertir toutes les figures en SVG, ça n'avait rien de bien difficile.
Mais avec en plus les autres lacunes que Typst pouvait avoir à l'époque, et celles qu'il a peut-être encore selon ce que tu veux faire…
[^] # Re: Inclusion des figures PDF
Posté par jch . Évalué à 1 (+0/-0).
Pour qu'elles soient de nouveau converties en PDF lors de la mise en page? Désolé, je m'y refuse.
C'est pour mettre en page mes notes de cours, qui ressemblent à ça : https://www.irif.fr/~jch/enseignement/programmation-systeme.pdf. Je pense que ça devrait être faisable.
[^] # Re: Inclusion des figures PDF
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 3 (+0/-0).
Très juste. Mais d'ailleurs, est-ce que l'implémentation récente de cette fonctionnalité ne ferait pas genre justement ça en interne ? :-/
# formalettre
Posté par Brndan (site web personnel) . Évalué à 2 (+1/-0).
C’est moi qui ai commis formatlettre, cela fait plaisir de constater que c’est utile. Je l’utilise pour générer mes (nombreux) courriers administratifs, c’est bien plus rapide qu’avec LuaLateX ou XeLateX pour un rendu similaire.
La procédure de publication d’un paquet est pour le moins artisanale. Il faut forker le dépôt de tous les packages, le cloner, ajouter dans un dossier à part son package / et dans un sous-dossier la bonne version, faire une pull request sur GitHub, attendre la validation, attendre la publication. Ça mériterait sans doute d’être davantage pensé pour faciliter la vie des développeurs et développeuses du dimanche qui veulent simplement partager de petits paquets.
[^] # Re: formalettre
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 3 (+0/-0).
Pour le dire autrement, l'univers Typst gagnerait à devenir un CTyAN. ;-)
Sinon, tu vas voir passer un paquet de rapports de bug sur formalettre, qui deviendront des PR d'ici quelques jours ou semaines. :-)
[^] # Re: formalettre
Posté par 🚲 Tanguy Ortolo (site web personnel) . Évalué à 3 (+0/-0).
En fait en y réfléchissant, entre ce monodépôt bizarre et l'espace de nom
preview
, l'implémentation actuelle de l'univers Typst sent le truc vite fait histoire de release early un truc très attendu et de grande valeur pour le décollage de Typst.Ça devrait sûrement évoluer dans les années à venir.
# Mon expérience
Posté par HSimpson . Évalué à 1 (+0/-0).
J’ai réalisé quelques documents pour le fun, et en ce moment, je suis en train de passer mes cours de odt à typ.
Pour souligner quelques différences (dans l’ordre où ça me vient, c’est-à-dire sans ordre) :
C’était juste mes 2c
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.