Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
1_generalites:histoire:developpement_du_moteur_tex [2021/03/25 21:11] – Traduction de l'article anglais et mise à jour des liens. yannick.tanguy | 1_generalites:histoire:developpement_du_moteur_tex [2022/09/23 16:25] (Version actuelle) – Suppression d'espace inutile dbitouze |
---|
==== XeTeX ==== | ==== XeTeX ==== |
| |
''[[1_generalites:glossaire:qu_est_ce_que_xetex|XeTeX]]'', développé à l'origine par Jonathan Kew, est un moteur Unicode <latex>\TeX</latex> capable de charger des polices système à l'aide de la [[wpfr> HarfBuzz|bibliothèque HarfBuzz]], ce qu'il obtient par une syntaxe étendue de la primitive ''\font''. Il s'appuie sur ε-<latex>\TeX</latex> et ajoute également une gamme de nouvelles primitives utiles pour travailler avec des langues non latines. Par ailleurs, le processus de composition est essentiellement le même que celui de <latex>\TeX</latex>. Comme pour ''pdfTeX'', il n'y a pas de développement majeur en cours sur le [[http://xetex.sourceforge.net/|site du projet]], bien que les corrections d'erreurs de code et la compatibilité croisée avec d'autres moteurs continuent. | ''[[1_generalites:glossaire:qu_est_ce_que_xetex|XeTeX]]'', développé à l'origine par Jonathan Kew, est un moteur Unicode <latex>\TeX</latex> |
| capable de charger des polices système à l'aide de la [[wpfr>HarfBuzz|bibliothèque HarfBuzz]], ce qu'il obtient |
| par une syntaxe étendue de la primitive ''\font''. Il s'appuie sur ε-<latex>\TeX</latex> et ajoute également une gamme |
| de nouvelles primitives utiles pour travailler avec des langues non latines. Par ailleurs, le processus de composition est essentiellement |
| le même que celui de <latex>\TeX</latex>. Comme pour ''pdfTeX'', il n'y a pas de développement majeur en cours |
| sur le [[http://xetex.sourceforge.net/|site du projet]], bien que les corrections d'erreurs de code |
| et la compatibilité croisée avec d'autres moteurs continuent. |
| |
==== LuaTeX ==== | ==== LuaTeX ==== |
| |
Comme détaillé ci-dessus, le développement de ''pdfTeX'' est « achevé ». Mais, alors que le développement de ''pdfTeX'' s'essoufflait, le développement d'un nouveau système, ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' a commencé. [[http://www.lua.org/|Lua]] est un interpréteur conçu pour être intégré dans d'autres applications. ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' consiste en un moteur de type <latex>\TeX</latex> avec un interpréteur Lua « intégré » en lui. L'interpréteur ''lua'' a accès à de nombreuses structures de données utilisées pour la composition, de sorte que le programmeur peut placer des morceaux de code Lua dans ses commandes <latex>\TeX</latex> ou <latex>\LaTeX</latex>, ou effectuer des « rappels » (//call-backs//) pour modifier le comportement de <latex>\TeX</latex> lorsqu'il effectue certaines opérations. | Comme détaillé ci-dessus, le développement de ''pdfTeX'' est « achevé ». Mais, alors que le développement de ''pdfTeX'' s'essoufflait, |
| le développement d'un nouveau système, ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' a commencé. |
| [[http://www.lua.org/|Lua]] est un interpréteur conçu pour être intégré dans d'autres applications. |
| ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' consiste en un moteur de type <latex>\TeX</latex> |
| avec un interpréteur Lua « intégré » en lui. L'interpréteur ''lua'' a accès à de nombreuses structures de données utilisées |
| pour la composition, de sorte que le programmeur peut placer des morceaux de code Lua dans ses commandes <latex>\TeX</latex> |
| ou <latex>\LaTeX</latex>, ou effectuer des « rappels » (//call-backs//) pour modifier le comportement de <latex>\TeX</latex> |
| lorsqu'il effectue certaines opérations. |
| |
Cet arrangement offre la perspective d'un moteur de composition « assoupli » : il présente le comportement classique mais l'utilisateur peut redéfinir une fonctionnalité si besoin est --- il n'est plus nécessaire de persuader le reste du monde puis de trouver un développeur disposé à travailler sur le sujet. | Cet arrangement offre la perspective d'un moteur de composition « assoupli » : il présente le comportement classique |
| mais l'utilisateur peut redéfinir une fonctionnalité si besoin est --- il n'est plus nécessaire de persuader le reste du monde |
| puis de trouver un développeur disposé à travailler sur le sujet. |
| |
| Le [[http://www.luatex.org/|LuaTeX project]] a poursuivi des pistes que de nombreux autres projets avaient en vue, |
| notamment les représentations de caractères Unicode et la prise en charge des polices [[wpfr>OpenType]]. |
| Cela incluait l'incorporation des extensions développées par Aleph (voir ci-dessous). |
| L'actuel ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' (v1.12.0 en 2020) est considéré |
| comme presque complet par l'équipe de développement : il poursuit cependant son évolution. |
| |
Le [[http://www.luatex.org/|LuaTeX project]] a poursuivi des pistes que de nombreux autres projets avaient en vue, notamment les représentations de caractères Unicode et la prise en charge des polices OpenType. Cela incluait l'incorporation des extensions développées par Aleph (voir ci-dessous). L'actuel ''[[1_generalites:glossaire:qu_est_ce_que_luatex|LuaTeX]]'' (v1.10.0) est considéré comme presque complet par l'équipe de développement : il poursuit cependant son évolution. | |
| |
===== Projets historiques ===== | ===== Projets historiques ===== |
==== ε-TeX ==== | ==== ε-TeX ==== |
| |
Dans le cadre des travaux du projet NTS (voir ci-dessous), un certain nombre d'extensions au <latex>\TeX</latex> de Donald Knuth ont été développées. Beaucoup d'entre elles prennent en charge la programmation d'une manière qui rend possible ou plus simple certaines tâches dans <latex>\TeX</latex>. D'autres étendent la gamme des registres disponibles dans <latex>\TeX</latex> ou mettent à disposition plus d'informations internes. Les distributions <latex>\TeX</latex> actuelles sont livrées avec les extensions ε-<latex>\TeX</latex> disponibles dans presque tous les formats autres que ''tex'' (le <latex>\TeX</latex> de Donald Knuth) lui-même. | Dans le cadre des travaux du projet NTS (voir ci-dessous), un certain nombre d'extensions au <latex>\TeX</latex> de Donald Knuth ont été développées. |
| Beaucoup d'entre elles prennent en charge la programmation d'une manière qui rend possibles ou plus simples certaines tâches dans <latex>\TeX</latex>. |
| D'autres étendent la gamme des registres disponibles dans <latex>\TeX</latex> ou mettent à disposition plus d'informations internes. |
| |
==== ExTeX ==== | En fait, dans les distributions <latex>\TeX</latex> actuelles, les extensions ε-<latex>\TeX</latex> sont disponibles (et souramment utilisées) |
| pour presque tous les formats autres que le format ''tex'' original de Donald Knuth. |
Le [[http://www.extex.org/|projet ExTeX]] s'appuyait sur l'expérience de nombreux projets de développement et d'extension de <latex>\TeX</latex> pour développer un nouveau système semblable à <latex>\TeX</latex>. Le système a été développé en Java. | |
| |
ExTeX a été conçu pour accepter des entrées Unicode et pour implémenter toutes les primitives de <latex>\TeX</latex> avec, pour certaines d'entre elles vues comme obsolètes, des alternatives modernes. Des extensions présentes avec [[1_generalites: glossaire:qu_est_ce_que_etex|ε-TeX]], [[1_generalites:glossaire:qu_est_ce_que_pdftex|pdfTeX]] et Omega ont été identifiées pour y être incorporées. | |
| |
==== Omega et Aleph ==== | ==== Omega et Aleph ==== |
| |
[[wpfr> Omega_(logiciel)|Omega (Ω)]] a été développé comme une extension de <latex>\TeX</latex> pour des textes multilingues utilisant une grande variété d'encodages en entrée. Omega utilisait des caractères 16 bits codés Unicode. Il a fourni de nombreux concepts innovants, dont notamment le « processus de traduction » qui prend un flux de caractères et le transforme selon différents processus qui peuvent être spécifiés en interne ou être un programme distinct. | [[wpfr>Omega_(logiciel)|Omega (Ω)]] a été développé comme une extension de <latex>\TeX</latex> pour des textes multilingues |
| utilisant une grande variété d'encodages en entrée. Omega utilisait des caractères 16 bits codés Unicode. |
| Il a apporté de nombreux concepts innovants, dont notamment le « processus de traduction » qui prend un flux de caractères |
| et le transforme selon différents processus qui peuvent être spécifiés en interne ou être un programme distinct. |
| |
Alors qu'Omega promettait beaucoup lors de son annonce au milieu des années 1990, ses progrès étaient lents et le développement est devenu moribond au moment où l'un des développeurs d'origine s'est retiré (emmenant avec lui un groupe d'étudiants en recherche). | Alors qu'Omega promettait beaucoup lors de son annonce au milieu des années 1990, ses progrès ont été lents et son développement |
| est devenu moribond au moment où l'un des développeurs d'origine s'est retiré (emmenant avec lui un groupe d'étudiants en recherche). |
| |
Avant cet événement pénible, un courant de développement séparé avait commencé afin de produire un programme appelé [[wp> Omega_(TeX)#Aleph_and_LuaTeX|Aleph]], qui fusionnait les fonctionnalités de ε-<latex>\TeX</latex> dans une base de code Omega stable et qui ajoutait d'autres extensions. Aleph s'est également avéré former une plate-forme attrayante pour de nombreuses personnes mais son développement s'est également arrêté. | Avant cet événement pénible, un courant de développement séparé avait déjà commencé afin de produire un programme appelé [[wp>Omega_(TeX)#Aleph_and_LuaTeX|Aleph]], |
| qui fusionnait les fonctionnalités de ε-<latex>\TeX</latex> dans une base de code Omega stable et qui ajoutait d'autres extensions. |
| Aleph s'est également avéré former une plate-forme attrayante pour de nombreuses personnes mais son développement s'est également arrêté. |
| |
Une partie du travail de ces projets a été incorporée dans LuaTeX. | Une partie du travail de ces projets a été incorporée dans LuaTeX. |
| |
==== New Typesetting System (NTS) ==== | ==== New Typesetting System (NTS) ==== |
| |
Le [[wp>New_Typesetting_System|projet NTS]] a entrepris de produire un logiciel pour remplacer <latex>\TeX</latex> : ce //New Typesetting System// (nouveau système de composition) partagerait les objectifs de Donald Knuth, mais mettrait en œuvre le travail de manière moderne en tenant compte des leçons apprises avec <latex>\TeX</latex>. Si un première mouture de NTS est apparue, elle n'était pas utile en pratique et le projet ne semble plus actif. | Le [[wp>New_Typesetting_System|projet NTS]] a entrepris de produire un logiciel pour remplacer <latex>\TeX</latex> : ce //New Typesetting System// |
| (nouveau système de composition) partagerait les objectifs de Donald Knuth, mais mettrait en œuvre le travail de manière moderne en tenant compte |
| des leçons apprises avec <latex>\TeX</latex>. |
| Le projet a été présenté aux [[https://web.archive.org/web/20070428230734/http://www.gutenberg.eu.org/manif/gut2000.html|journées GUTenberg 2000]]. |
| Si une première mouture de NTS est apparue, elle n'était pas encore utilisable en pratique et le projet ne semble plus actif. |
| |
| Parallèlement à ce travail, le NTS a développé un ensemble d'extensions qui peuvent être utilisées avec un système <latex>\TeX</latex>. |
| Un système ainsi modifié est connu sous le nom de système ε-<latex>\TeX</latex>, et le concept s'est avéré être un succès. |
| |
| ==== EχTeX ==== |
| |
| Le [[http://www.extex.org/|projet EχTeX]] s'appuyait sur l'expérience |
| de nombreux projets de développement et d'extension de <latex>\TeX</latex> pour développer un nouveau système semblable |
| à <latex>\TeX</latex>. Le système a été développé en Java. |
| |
| ExTeX a été conçu pour accepter des entrées [[wpfr>Unicode]] et pour implémenter toutes les primitives de <latex>\TeX</latex> avec, |
| pour certaines d'entre elles vues comme obsolètes, des alternatives modernes. |
| Des extensions présentes avec [[1_generalites:glossaire:qu_est_ce_que_etex|ε-TeX]], [[1_generalites:glossaire:qu_est_ce_que_pdftex|pdfTeX]] |
| et Omega ont été identifiées pour y être incorporées. |
| |
Parallèlement à ce travail, le NTS a développé un ensemble d'extensions qui peuvent être utilisées avec un système <latex>\TeX</latex>. Un système ainsi modifié est connu sous le nom de système ε-<latex>\TeX</latex>, et le concept s'est avéré être un succès. | |
| |
----- | ----- |
//Source:// [[faquk>FAQ-enginedev|TeX Engine development]] | //Sources:// |
| * [[faquk>FAQ-enginedev|TeX Engine development]], |
| * [[https://web.archive.org/web/20160303223139/http://nts.tug.org/|NTS: a New Typesetting System]]. |
| |
{{htmlmetatags>metatag-keywords=(omegaleph,LaTeX,luatex,développement,historique,pdftex,xetex,histoire de LaTeX,NTS) | {{htmlmetatags>metatag-keywords=(omegaleph,LaTeX,luatex,développement,historique,pdftex,xetex,histoire de LaTeX,NTS) |