Existe-t-il des alternatives à TeX ?#
L’idée d’écrire ses documents « comme des programmes » ne se limite pas à TeX, et de nombreuses pistes d’implémentation ont été explorées au fil des ans, dont certaines de façon fructueuse. Quelques unes ont été antérieures à TeX, d’autres cherchent à le remplacer, enfin d’autres sont relativement complémentaires. L’utilisation d’une syntaxe de type (La)TeX se retrouve dans un certain nombre d’entre elles, mais pas dans toutes.
Note
Les projets énumérés ici sont entièrement distincts de TeX ou de ses dérivés (ce ne sont pas des programmes « TeX-like »).
1. Projets actifs#
1.1. typst#
typst est un système de mise en page écrit en Rust. Sa syntaxe est proche de celle du markdown. Typst souhaite être d’un apprentissage aisé et propose des temps de compilation réduits.
1.2. SILE#
SILE est un système de mise en page écrit en Lua et utilisant la bibliothèque HarfBuzz pour le rendu des caractères. Sa syntaxe d’entrée principale est largement inspirée de LaTeX, par exemple :
\begin{document}
Hello SILE!
\end{document}
est un document SILE valide (remarquez l’absence de préambule ici).
SILE peut également prendre du XML en entrée. Cette fonctionnalité permet principalement de créer des classes de document pour traiter des fichiers XML conçus pour d’autres systèmes : par exemple, SILE a une classe docbook
. Elle facilite également la création de catalogues ou de dictionnaires dont les données sont enregistrées dans un fichier XML.
SILE est programmable en Lua. Puisque XML est un langage de description raisonnable, et que Lua est un vrai langage de programmation, l’écriture d’extensions et de commandes pour SILE tend à être plus facile et plus rapide que pour TeX. Il est également possible de définir des macros à la manière de LaTeX dans le document pour des mises en forme simples.
SILE supporte complètement Unicode et les polices TrueType et OpenType. Comme il s’appuie sur des bibliothèques de mise en forme modernes, il prend facilement en charge plusieurs langues et tous les types d’écritures (par exemple l’arabe et le japonais). Il sait également mettre en forme les équations mathématiques.
SILE n’a pas la pléthore d’extensions dont dispose TeX, mais il possède quelques fonctionnalités fondamentales qui sont absentes de TeX :
le support de mises en pages complexes à base de cadres, inspiré d’InDesign ;
la composition du texte sur une grille (pour éviter les problèmes de transparence quand on imprime sur papier fin).
À la fin de 2023, il est en développement actif (plusieurs sorties par an) et dispose des fonctionnalités requises pour la plupart des usages. Le contenu et l’aspect du manuel d’utilisation permettent de s’en faire une idée. Cependant, il n’a pas encore atteint la version 1.0 : il faut donc s’attendre à quelques bugs (par exemple sur les titres courants) et à des changements dans de futures versions qui pourraient vous obliger à modifier certaines parties de vos documents.
1.3. SATySFi#
SATySFi (prononcé de la même manière que le verbe « satisfy » en anglais) est un nouveau système de mise en page basé sur un langage de programmation fonctionnelle à typage statique. Il se compose principalement de deux couches : la couche texte et la couche programme. La première sert à écrire des documents dans une syntaxe semblable à celle de LaTeX. La seconde, dont la syntaxe est semblable à celle d’OCaml, sert à définir les fonctions et les commandes. SATySFi vous permet d’écrire des documents balisés avec des commandes de votre cru. De plus, les erreurs de typage sont signalées avec des messages informatifs, ce qui est une aide précieuse quand on écrit ses propres fonctions.
1.4. Patoline#
Patoline est un système de mise en page écrit en OCaml qui utilise un mélange de syntaxe de type TeX et d’« échappements » vers OCaml pour fournir le contrôle de la mise en forme. Patoline vise une conception modulaire, et un traitement rapide des documents par la machine.
(Le projet Patoline était précédemment hébergé à l’adresse http://patoline.org
)
1.5. Lout#
Lout est un formateur de documents automatique, écrit par Jeffrey H. Kingston. Il prend en entrée une description de haut niveau d’un document, dans un style similaire à celui de LaTeX. Lout reprend certains des algorithmes de mise en forme de TeX mais utilise comme langage de personnalisation un langage de programmation fonctionnelle de haut niveau, au lieu d’un langage de macros. Lout a été publié en même temps que LaTeX2ε au début des années 1990. Il n’a jamais eu une base d’utilisateurs aussi vaste que celle de LaTeX, mais il est toujours maintenu.
Astuce
Plus de renseignements sur la page wikipedia de Lout.
1.6. troff/nroff/groff#
groff : la famille des outils de mise en forme « *roff
» est apparue avant TeX et a beaucoup influencé sa conception. Ils font partie intégrante d’Unix et de tous les systèmes de ce type, comme linux.
Notamment, les pages de manuel sont composées avec groff
et ses dérivés, aussi bien pour leur affichage sur écran que pour leur impression.
2. Projets historiques#
2.1. ANT typesetting system#
ANT est l’acronyme de « *ANT is* not TeX ».
Le projet ANT, d’Achim Blumensath, ne visait pas à reproduire TeX avec une implémentation simplement différente, mais plutôt à fournir un remplacement de TeX, utilisant des algorithmes de composition semblables à ceux de TeX, mais offrant un environnement de programmation très différent, basé sur OCaml et ayant une conception flexible et modulaire,
Ainsi, bien qu’ANT possède un langage de balisage essentiellement identique à celui de (La)TeX, le langage servant à définir la mise en forme des documents est un langage de programmation bien établi et assez répandu, de sorte que la conception des documents ne dépend plus des compétences de quelques experts en programmation de macros TeX.
La version la plus récente de ANT est la 0.8, publiée en décembre 2007. Son développement a été brièvement repris en 2016.
Sources
- name:
les-sources