====== 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.
Les projets énumérés ici sont entièrement distincts de TeX ou de ses dérivés
(ce ne sont pas des [[1_generalites:histoire:projets_derives_de_tex|programmes « TeX-like »]]).
===== Projets actifs =====
{{ https://sile-typesetter.org/images/logo.png?170}}
==== SILE ====
[[http://sile-typesetter.org/|SILE]] est un système de mise en page écrit en Lua
et utilisant la [[wpfr>HarfBuzz|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 [[wpfr>Unicode]] et les polices [[wpfr>TrueType]]/[[wpfr>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 :
* 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).
Par ailleurs, la possibilité de prendre du XML en entrée permet d'automatiser la création de catalogues, de dictionnaires, etc.
{{ https://www.speedata.de/images/logo-int.png?180}}
==== Speedata Publisher ====
[[https://www.speedata.de/en/|Speedata Publisher]] est, comme SILE, écrit en [[wpfr>Lua]],
mais utilise [[1_generalites:glossaire:qu_est_ce_que_luatex|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é.
FIXME 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.
{{ https://raw.githubusercontent.com/wiki/gfngfn/SATySFi/img/satysfi-logo.png?170}}
==== SATySFi ====
[[https://github.com/gfngfn/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.
{{ https://patoline.github.io/images/titleduck.png?170}}
==== Patoline ====
[[http://patoline.github.io/|Patoline]] est un système de mise en page écrit en [[wpfr>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 ====
[[https://savannah.nongnu.org/projects/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.
Plus de renseignements sur [[wpfr>Lout|la page wikipedia de Lout]].
==== troff/nroff/groff ====
[[https://www.gnu.org/software/groff/|groff]]: la [[wpfr>Roff_(langage_informatique)|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, [[wpfr>Man_(Unix)|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.
===== Projets historiques =====
==== ANT typesetting system ====
//ANT// est l'acronyme de « //**A**NT is **n**ot **T**eX// ».
Le [[ctanpkg>ant|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 [[wpfr>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 [[http://mirrors.ctan.org/systems/ant/manual.pdf|en décembre 2007]].
Son développement a été [[https://github.com/Miko4/ant|brièvement repris en 2016]].
-----
//Sources://
* [[faquk>FAQ-alternatives|Alternatives to TeX]],
* [[https://discuss.ocaml.org/t/are-there-any-news-about-patoline-typesetting-engine|Are there any news about Patoline typesetting engine?]]
* [[https://tug.org/TUGboat/tb41-2/tb128gundlach-speedata.pdf|Typesetting product catalogs and otherdatabase-driven documents with the Speedata Publisher]], Patrick Gundlach, TUGboat **41**:2 (2020).
{{htmlmetatags>metatag-keywords=(LaTeX,autres logiciels de composition de documents,LaTeX et Groff,outils de mise en page,chaînes de production de documents)
metatag-og:title=(Existe-t-il des alternatives à TeX?)
metatag-og:site_name=(FAQ LaTeX francophone)
}}