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.
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 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 (en fait, ce qui précède est lu comme du XML avec une syntaxe particulière).
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.
SILE supporte complètement Unicode et les polices TrueType/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.
Bien que SILE n'ait pas la pléthore d'extensions dont dispose TeX, il possède quelques fonctionnalités qui sont absentes de TeX :
Par ailleurs, la possibilité de prendre du XML en entrée permet d'automatiser la création de catalogues, de dictionnaires, etc.
Speedata Publisher est, comme SILE, écrit en Lua, mais utilise LuaTeX pour toute la partie interne du traitement du document (nous parlons bien de LuaTeX et non de Lua pur). Il comporte une couche externe basée sur TeX, mais une fois que les données sont passées à Lua, TeX n'est plus impliqué.
Préciser clarifier la structure de la chaîne de traitement, car le paragraphe précédent est confus.
Speedata Publisher est particulièrement bien adapté à certains domaines dans lesquels TeX a un peu de mal, par exemple les documents comportant de nombreuses images, comme les catalogues de produits. Il sait utiliser XML et peut parcourir une base de données.
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.
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é à http://patoline.org/)
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.
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.
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: