Le développement de la suite typographique TeX par D. E. Knuth a été initié par les besoins typographiques personnels de D. E. Knuth, qui n'étaient pas couverts de façon pertinente par les outils alors à disposition. Ce développement a pris place dans une période qui a vu l'émergence d'autres solutions, pour certaines antérieures — comme celle due à Hershey, ou comme roff pour les systèmes d'exploitation de type Unix.

kerTeX (le 'k' minuscule initial sera justifié) est né d'une frustration devant l'état des distributions de la solution due à D. E. Knuth, qui oubliaient d'une part l'objectif premier de D. E. Knuth ; tentaient de faire oublier aussi que l'essentiel était dû à D. E. Knuth ("Personne n'utilise plus TeX. Tout le monde utilise LaTeX !", oubliant que LaTeX n'est pas un moteur de rendu) ; et qui oubliaient totalement qu'il s'agissait non d'une fin mais d'un moyen.

kerTeX, parmi les distributions des outils TeX, est donc particulier à plus d'un point. Ses principes, exposés, sont fixés — ce qui définit ce que kerTeX est, et ce qu'il ne sera pas ou ne fournira pas. Son implémentation actuelle est expliquée, aussi bien que sa gestion des paquets tiers et la logique qui la régit.

kerTeX est un changement de point de vue. Ce changement de point de vue modifie considérablement la vision du système typographique et de son intégration. Et indique également ce vers quoi kerTeX doit tendre : non plus être une distribution des outils TeX, mais la fourniture du coeur de la solution typographique d'un système d'exploitation. Des problématiques qui avaient vu le jour lors de la période de développement des diverses solutions doivent être reconsidérées. Et il est temps d'écrire le manuel manquant : comment toutes ces pièces s'assemblent et ce que, ainsi agencées, elles peuvent fournir.

  1. Ma méthode, sans discours
  2. Ce que D. E. Knuth ne voulait pas ; ce qu'il a voulu et dans quel contexte
  3. L'état des distributions de TeX avant kerTeX
  4. kerTeX
  5. kerTeX est un système
  6. Prote : un ajout qui n'était pas prévu
  7. Vers TeX comme typographie du système
  8. Ce qu'il reste à faire
  9. En faire quelque chose
quixante

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 :

  1. 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 ;
  2. 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 ;
  3. 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 » ;
  4. 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 :

  1. L'aspect exotique de l'obtention du code pour la compilation ;
  2. Le foisonnement de variantes et de tentatives qui, toutes, après une période de faveur, finissent par encombrer le cimetière ;
  3. 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 !
  4. 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 :

  1. 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 ;
  2. 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 ;
  3. Fournir l'essentiel du système, le noyau sur lequel tout le reste tourne, en plaçant les ajouts optionnels à part ;
  4. 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.

pancho

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 :

  1. Prote est un modificatif (Change file), qui s'applique après avoir appliqué le modificatif e-TeX ;
  2. 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 ;
  3. 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 ;
  4. 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 :

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 :

©2022–2024 Thierry Laronde — FRANCE