« La simplicité est le plus court chemin vers la vérité. » (C. de Gaulle). KerTeX se veut le plus court chemin vers le système typographique TeX et les programmes et données qui lui sont associés : le minimum de dépendances (y compris pour la licence); le minimum de place ; le minimum de temps ; le minimum d'énergie (dans tous les sens du terme) pour disposer du résultat voulu.
Et comme la vérité d'une chose est universelle, KerTeX vise à pouvoir s'installer sur tous les systèmes informatiques, même dans des environnements extrêmement restreints.
La version courante publiée est la stable : 0.99.25.01 (correction pour Plan9 — pkg). Voir la page d'explication sur l'ingénierie (présent ; futur) pour un exposé de l'état actuel.
(Inclus une correction pour Plan9 pour les recettes) Ajout de kpstopdf
à kerTeX et 22 nouvelles recettes dont
beamer@latex (ainsi que les recettes liées aux calculs en précision
étendue de Jean-François Burnol).
Un utilitaire (qui nécessite GhostScript)
permettant de traduire facilement le PostScript obtenu par
dvips
en un PDF respectant exactement la taille des pages
est ajouté. Il est nécessaire, entre autres, avec
beamer@latex
pour obtenir des présentations aux
dimensions généralement particulières. Un total de 22 nouvelles
recettes (fontes, dont les gothiques de Yannis Haralambous ; TeX et
LaTex, dont pgf et beamer) a été ajouté. Merci à Mouad A. pour les
échanges et les essais !
Pour les paquets de Jean-François Burnol pour le
calcul en précision étendue, il faut utiliser etex
qui a
été modifié également pour activer les primitives supplémentaires
implémentées par Prote.
cliquez pour agrandir
Les sources sont disponibles sous git ici :
- Le système de compilation et d'installation RISK
- La conversion de WEB en C
- Le coeur du système
- Les recettes pour les extensions (LaTeX etc.)
Une présentation de kerTeX a eu lieu durant la Journée GUTenberg 2024, à l'ENS de la rue d'Ulm à Paris. En voici les points principaux (le document sera repris pour le compléter de ce qui a été effectivement expliqué, et sera, par la suite, nourri de précisions supplémentaires qui n'ont pas fait l'objet de l'exposé) : Présentation de kerTeX lors de la Journée GUTenberg 2024 .
Donald E. Knuth a développé, décrit et publié un ensemble d'outils et de données typographiques, à savoir un logiciel permettant de décrire et de rendre (discrétiser, matricialiser ou rastériser) des glyphes pour en composer des fontes ; des fontes (les Computer Modern ou CM) ; un logiciel de mise en page : TeX, ainsi qu'un certain nombre d'utilitaires, auxquels se sont ajoutés un pilote pour convertir le format DeVice Independent (DVI) généré par TeX en PostScript : dvips de Tomas Rokicki ; une variation de METAFONT pour un logiciel de dessin générant du PostScript : MetaPost de John Hobby ; une extension de TeX avec des primitives pour l'écriture droite–gauche : ε-TeX de l'équipe NTS.
Le tout, avec quelques additions supplémentaires (les fontes AMS ainsi que les versions T1 des fontes CM; les afm des fontes normalisées de PostScript par Adobe ; BibTeX par Oren Patashnik; CWEB de Silvio Levy et D. E. Knuth; hyperbasics.tex, de Tanmoy Bhattacharya, permettant de générer les liens hypertextes en PDF depuis le PS créé par dvips), forme un système typographique complet, puisqu'il va du dessin des glyphes (et du dessin en général) à la composition du texte et au rendu (pour l'instant en converti en PostScript, ce qui permet de bénéficier de toute la puissance du PostScript, mais ce qui nécessite soit une imprimante compatible, soit un logiciel capable de l'interpréter comme une instance de gs — GhostScript).
D. E. Knuth a pleinement décrit les principales pièces du système, en utilisant le système par lui-même ! et l'a décrit dans un pseudo-Pascal — pseudo-Pascal parce que le langage a été utilisé plus comme un Algol, une manière de décrire le traitement, que dans une version précise de Pascal et cela afin de permettre le plus facilement possible d'utiliser les programmes sur n'importe quel système d'exploitation.
KerTeX prétend suivre ces principes mêmes :
- Pour que le système soit le plus universel possible, il dépend du strict minimum et du plus largement répandu et le plus facilement fourni : une bibliothèque C normalisé (libc) et il ne dépend de rien d'autre ;
- Parce que le tout forme un système : des pièces qui sont prévues pour fonctionner ensemble et qui vise à obtenir un système typographique complet, kerTeX fonctionne comme un système hébergé sur un système hôte (le système d'exploitation) : les extensions ajoutées (les macros par exemple) sont le problème de kerTeX et pas celui du système d'exploitation : il n'y a pas une myriade de versions des paquets des macros pour les différents systèmes d'exploitation, mais une version unique : celle de kerTeX ; kerTeX fournit son propre système de gestion de "paquets" ;
- Parce qu'un utilisateur doit pouvoir utiliser, de la même façon, kerTeX sur n'importe quel hôte, l'interface utilisateur est unifiée, en se basant sur un ensemble très limité d'utilitaires POSIX.2 (le but de la norme étant précisément de fournir des services communs sur différents systèmes) ;
- Par consistance, kerTeX sépare ce qui dépend de la machine de ce qui est indépendant de la machine, de manière à pouvoir partager les données qui sont partageables (par un quelconque système de fichiers distribué) tout en utilisant les programmes binaires conformes à la machine (ce que Plan9 a résolu très élégamment). Cette séparation est également réalisée à la compilation par l'infrastructure RISK (initialement développée pour KerGIS, qui permet la compilation croisée, faisant la distinction entre la matrice (le système/machine sur lequel on compile) de la cible (le système/machine pour lequel on compile) ;
- Par sûreté, kerTeX fonctionne dans son "royaume" (ce qui lui est dédié), séparé du restant du système, ce qui permet de l'installer concurremment avec une autre distribution TeX, sans la perturber en quoi que ce soit — même les pages de manuel sont dans ses répertoires.
KerTeX est donc un système de base (Quixante) et un système compagnon permettant d'alimenter le système de base avec des données internes (core) ou tierces (Pancho).
Les différentes rubriques du site vous permettent d'explorer plus en détail ce que fournit kerTeX. Mais voici quelques exemples :
cliquez pour agrandir |
METAFONT est un logiciel de conception des caractères d'une fonte ; c'est un langage et un interpréteur. Mais en fait, plus généralement (car un caractère, ce peut être très varié), c'est un logiciel de dessin mais aussi un "discrétiseur", un "arithmétiseur", un "rastériseur" : il transforme des descriptions vectorielles en une image point à point. L'affichage ci-contre est produit par METAFONT (chapitre 23 du METAFONTbook). C'est dans kerTeX appelé OGO pour Online Graphic Output (pour l'instant sur X11 seulement ; rio et GDI à venir). Cela permet donc de dessiner des objets et, lors de la conception, d'obtenir une visualisation du résultat. Le fait que METAFONT soit un "discrétiseur" ou un "arithmétiseur" a un intérêt essentiel pour qui veut bien réfléchir... |
cliquez pour agrandir |
TeX et ε-TeX mettent en forme et décrivent le résultat dans le format DVI : DeVice-Independent (partie 31 de TeX: The Program). Ce format doit alors être traduit dans un langage accepté par le périphérique de rendu (une imprimante, la fenêtre d'un écran). Dvips est le programme écrit par Tomas Rokicki pour convertir le fichier DVI en PostScript. Parce qu'il est possible d'inscrire dans le DVI des informations quelconques supplémentaires — qui ne sont en un sens, pour DVI, que des commentaires —, il est possible d'obtenir à peu près tous les effets et d'inclure aussi dans le résultat des images au format PostScript — ce qui est beaucoup plus général que le PDF : ce qui PDF peut, PostScript, à fortiori, le peu ; l'inverse n'est pas vrai. |