Ma méthode, sans discours
kerTeX depuis ses débuts, et encore plus aujourd'hui, est le résultat d'un changement de point de vue. Si le présent exposé n'est pas un cours, il est cependant un cursus, un parcours tentant de vous faire partager ce point de vue.
Mais pour observer, il faut conserver les yeux et l'esprit ouverts. À savoir que :
- Pour obtenir la bonne réponse, encore faut-il déjà bien poser la question : l'exemple de la discussion d'une date dans la biographie de De Gaulle par Jean Lacouture ;
- Il ne faut pas croire l'incroyable : l'histoire fantastique de la reconstitution par enquête du premier discours radiodiffusé du général de Gaulle ;
- Ce ne sont pas les doigts portant les bagues les plus précieuses qui montrent le mieux la Lune : l'histoire du « masque de fer » ;
- Pour éviter les dérives, il faut savoir revenir aux sources : qu'est-ce qu'« un général qui a de la chance » ?
Ce que D. E. Knuth ne voulait pas ; ce qu'il a voulu et dans quel contexte
D. E. Knuth a décrit l'origine de sa recherche sur les outils typographiques. Rappel. Ce qu'il faut en retenir : ne dépendre de personne pour obtenir le résultat voulu. Discussion sur le poids des termes.
D'autres systèmes typographiques numériques existaient :
Le système Hershey, dont on ne connaît plus que les fontes digitalisées, mais qui n'étaient qu'une partie d'un tout. Un exemple de rendu de page à partir du système de composition et des fontes digitalisées. Ce qu'il faut en retenir.
Le système roff
. En quoi il diffère de TeX. Comme quoi
TeX était attendu comme un remplacement de roff
; mais
les délais ont amené à modifier roff
et l'état de la
distribution de TeX a fait s'évanouir le désir du remplacement.
Leçons.
L'état des distributions de TeX avant kerTeX
TeX n'a pas remplacé roff
, pour des raisons qui sont
liées à la durée de développement, mais aussi à l'état chaotique de la
distribution.
En quoi la distribution est chaotique :
- L'aspect exotique de l'obtention du code pour la compilation ;
- Le foisonnement de variantes et de tentatives qui, toutes, après une période de faveur, finissent par encombrer le cimetière ;
- L'incapacité ou l'absence de volonté de faire la part des choses et de savoir ce que l'on utilise, conduisant à la nécessité de tout avoir, parce qu'on ne sait jamais ce qui va être nécessaire. Un problème de... taille !
- L'effacement progressif de TeX, confondu avec tex, à savoir l'instance du moteur de rendu TeX particularisé avec les macros plain de D. E. Knuth, conduisant à la croyance répandue que dans le pâté d'alouette, TeX est l'alouette, tandis que tout le reste est le cheval. D'où le `k' minuscule de kerTeX : c'est bien TeX l'important; et ici il s'agit du noyau (kernel) du système typographique TeX.
kerTeX
kerTeX est un retour aux sources et au souhait initial de D. E. Knuth : ne dépendre de personne.
Ne dépendre de personne ni de rien, cela signifie :
- Ne dépendre que du strict minimum sur un système d'exploitation : la libc. Il n'y a qu'une dépendance à autre chose que la bibliothèque normalisée et qui est due à une primitive ajoutée pour LaTeX, mais qui est identifiée ;
- Séparer ce qui est nécessaire à la compilation et
s'exécute sur le noeud de compilation (la matrice) de ce qui va
s'exécuter sur l'hôte :
pp2rc
à savoir kertex_M (`M' pour Matrice). Ce que c'est ; - Fournir l'essentiel du système, le noyau sur lequel tout le reste tourne, en plaçant les ajouts optionnels à part ;
- Pour la gestion de ces ajouts, ne dépendre que de quelques
utilitaires : un sous-ensemble très restreint d'utilitaires POSIX.2,
qui sont de facto disponibles sur tous les systèmes
d'exploitation, par exemple, sous MS Windows, avec
MSYS
.
kerTeX est un système
Le changement complet de point de vue est que kerTeX est un système qui « fait tourner » des ``programmes''.
kerTeX est donc un système typographique hébergé, comme un O.S. qui s'exécuterait dans une machine virtuelle.
Par conséquent, les ajouts sont uniquement le problème de kerTeX et
non de l'hôte. Partant, le système de gestion des ajouts, par
l'intermédiaire des recettes (qui ne sont que des scripts
écrits pour sh
dans sa version la plus basique conforme à
POSIX.2), est uniquement le souci de kerTeX : on écrit une fois une
recette, et cette recette ne dépend pas de l'hôte. Qui plus est, elle
ne dépend généralement même pas de la version de l'ajout : elle permet
de mettre en place, le plus souvent, la dernière version de l'extension.
En quoi ce système, tant pour le noyau que pour les extensions, est la logique.
Prote : un ajout qui n'était pas prévu
Jusqu'à peu, LaTeX ne dépendait que des primitives de TeX. Puis, les extensions de e-TeX ont été requises. Et, finalement, il y a moins de cinq ans, des primitives supplémentaires ont été requises qui imposaient d'utiliser d'autres moteurs.
Prote a donc été écrit pour implémenter les primitives supplémentaires. Mais en respectant la manière dont D. E. Knuth ou l'équipe NTS avaient fourni les choses :
- Prote est un modificatif (Change file), qui s'applique après avoir appliqué le modificatif e-TeX ;
- Prote est écrit dans le même langage que TeX ou e-TeX, à savoir ne fait pas de présupposition sur le système pour lequel il faut compiler ; indique ce qui dépend du système ; fournit une implémentation basique des fonctionnalités dépendant du système ;
- Prote, développé au sein de kerTeX, ne dépend pas
de kerTeX. Le fichier est par exemple utilisé par Martin Ruckert pour
son propre engin
HiTeX
; - Les primitives ont été décrites et des fichiers de passage en banc d'essai ont été écrits. Ce qui n'avait pas été fait...
Vers TeX comme typographie du système
TeX était attendu comme le successeur de roff
. kerTeX
va permettre de cheminer vers cet objectif, parce que kerTeX compile
sur tous les systèmes et est minimal et fournit avec Prote un
moteur compatible TeX, compatible e-TeX et fournissant les primitives
nécessaires à LaTeX.
Mais TeX pourrait être aussi le moteur roff
, à savoir
pourrait être utilisé avec les ensembles de macros utilisés, entre
autres, pour la documentation ou les pages de manuel. (L'idée n'est
pas de Thierry Laronde ; l'idée a été formulée par un utilisateur /
développeur de NetBSD identifié comme "Mouse".)
Mais on peut aller plus loin parce que la suite TeX est une suite complète : non seulement un moteur de mise en page (TeX), mais un outil de création de fontes et de matricialisation : ce que cela implique.
Ce qu'il reste à faire
Pour atteindre l'objectif, il reste certes du travail. Voici quelques points essentiels :
- Changer le format des macros prédigérées à recharger afin que ce format soit indépendant de la machine hôte. Explication sur d'autres exemples d'agnosticisme binaire ;
- Créer MetaDraw, par extension de METAFONT avec les fonctionnalités de MetaPost, mais en produisant du DVI, avec des pages de code DVI en extension ;
- Extraire les routines de matricialisation de METAFONT, pour permettre le rendu des glyphes à la demande, mais également pour matricialiser les dessins ;
- Ajouter comme format de description de fontes, le rendu simplifié en lignes brisées à la façon de Hershey. Pourquoi. Avantages ;
- Pour les ajouts tiers, faire en sorte de pouvoir traiter les dépendances, sans être obligé de les ajouter de prime abord : traitement complet dans une façon de caisson d'isolation ;
- Un manuel est manquant : aux 5 ouvrages de D. E. Knuth doit être ajouté le manuel d'administration expliquant comment ces pièces s'assemblent (et il doit être singulièrement plus court).
En faire quelque chose
D. E. Knuth n'a pas développé le système TeX pour lui-même, mais pour en faire quelque chose.
Il est des choses qui pourraient être faites, et qui auraient toutes une valeur certaine, en utilisant TeX. Voici quelques exemples :
- Considérer la rectiligne de l'affirmation et la curviligne de l'interrogation comme des accents de ponctuation : vers la virgule d'exclamation et la virgule d'interrogation ;
- Algèbre : le problème, par exemple, de la commutativité : pas une propriété de la loi, mais une règle imposée par le langage d'expression. Créer la typographie le mettant en lumière ;
- Le problème ignoré et pourtant essentiel de la différence entre l'identité et l'égalité : la typographie doit le refléter, d'autant que cette différence est la source des antinomies, rend caduc le langage des Principia Mathematica, indique que l'argument EPR est inconsistant etc.