« 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.23.00 (Mise à jour CWEB). Voir la page d'explication sur l'ingénierie (présent ; futur) pour un exposé de l'état actuel.
NOTES DE PUBLICATION
- 2024-11-19 : Compilation sous
Plan9/9front. Le
sed(1)
sous Plan9/9front et sous APE ne traite pas les plages de répétition etprintf(1)
n'interprète pas le format (au moins sous 9front). RISK a donc été corrigé pour pallier ces problèmes. Merci à Elyes Kanzari pour le rapport d'erreur ! - 2024-11-09 : Compilation avec nouvelles versions de gcc. La ou les versions récente(s) de gcc transforment en erreurs ce qui n'étaient que des avertissements concernant le prototypage strict du C, ou les prototypes manquants. Les utilitaires CWEB, en vue d'être aussi disponibles que possible quelle que soit la version du C, ne déclaraient pas les prototypes, conduisant à des erreurs. Cela a été corrigé, tant dans RISK — qui fournit, si besoin, ctangle — que dans kerTeX. Merci à Antonio Olivares pour la remonter du problème !
- 2024-07-07 : Modification de risk_comp afin de circonvenir un bogue dans le shell dash sous Debian. La publication ne concerne que la génération sous Debian ; kertex_T, tel qu'installé, n'est en rien changé. Merci à B. Atticus Grobe pour le rapport d'erreur et pour avoir aidé au dépistage et testé la solution !
- 2024-06-08 : Correction d'une bourde dans la gestion des paquets tiers. La bibliothèque (POSIX.2) qui sert à la gestion des paquets tiers (les recettes rcp) peut être mise à jour indépendamment des programmes en eux-mêmes. Le problème est que la version de mise à jour en ligne était incorrecte et remplaçait la version correcte de l'installation. C'est corrigé, et une nouvelle publication a été réalisée. Attention ! Il faut également récupérer les nouvelles versions de get_mk_install.sh ou get_mk_install.rc ! et ce pour une raison totalement différente : j'avais mis à jour avec une version plus récente, qui n'est plus sous la responsabilité de Silvio Levy, de CWEB. Mais cette nouvelle version dépend d'un fichier de LaTeX et ne permet plus le déverminage facilité des fichiers inclus... Retour donc à l'original et il n'y a plus de sources cweb dans le "bundle". Merci à Romano pour m'avoir signalé le problème sur 9front !
- 2024-05-21 : Mise à jour recette LaTeX. La recette a été mise à jour pour la version actuelle (et l'organisation actuelle des sources) sur CTAN — le cache de kergis.com est mis à jour également. Merci à Jack Lawler pour le rapport d'erreur !
- 2024-02-16 : Informations importantes sur les mises à jour des recettes (LaTeX). Cela concerne la gestion des langues (Babel). Voyez Les additions au noyau.
- 2024-02-14 : Correction de la recette pl@fonts.sh. Le nom du répertoire dans le fichier zip a été changé et la recette a donc été adaptée. Merci à Antonio Olivares pour le rapport d'erreur !
- 2024-02-01 : Correction de la recette urw@fonts.sh. Les Classico avaient été mises à jour et la liste était incorrecte. Merci à Antonio Olivares pour le retour !
- 2024-01-29 : Mise à jour des recettes et de l'infrastructure de gestion des extensions. Une révision importante de l'infrastructure de gestion des extensions a été réalisée et les recettes ont été mises à jour par rapport à ce qui est présent sur CTAN. Il n'est pas nécessaire de réinstaller le système mais seulement de mettre à jour la gestion des extensions : voyez Les additions au noyau.
- 2023-08-27 : kerTeX / MetaPost : correction d'une faute introduite en simplifiant la recherche d'un fichier inclus (input). En simplifiant la recherche d'un fichier inclus, qui "bégayait" en cas d'insuccès — réessayant pour exactement le même résultat — j'avais supprimé une branche alternative inutile pour le résultat mais qui assurait qu'une variable automatique était définie également en cas d'insuccès. Le résultat, c'est qu'en cas de fichier non trouvé, cette variable avait la valeur que le hasard lui donnait, qui le plus probablement était différente de zéro, et était interprétée comme "vrai" alors qu'en l'occurrence, ce devait être "faux". Le crash suivait. Corrigé. Merci à Dirk-Wilhelm Peters pour avoir signalé le problème !
- 2023-08-01 : kerTeX / Prote : modification des primitives de fichiers. Les nouvelles primitives de fichier sont utilisées en escomptant qu'elles se comporteront à l'instar de la primitive input à savoir en ajoutant ".tex" s'il n'y a pas déjà d'extension. Prote a été modifié pour ce faire. Nécessaire pour la nouvelle version de LaTeX.
- 2023-07-25 : kerTeX : mise à jour cweb ; ajout armv8l. Incorporation de la version 4.9 des utilitaires CWEB. Ajout dans RISK des paramètres pour armv8l (ISA v8, pour 32bits en little endian). Vous devez récupérer la nouvelle version de get_mk_install car il y a ajout de sources séparées pour CWEB qui est maintenu séparément. Merci à Antonio Olivares pour le rapport d'erreur sur Android !
- 2023-05-09 :Correction latex.sh pour Plan9. Sed(1) sur Plan9/9front ne gère pas les classes de caractères. Merci à Jack Lawler pour le rapport d'erreur et la proposition de correction !
- 2023-05-08 : get_mk_install.sh. Le script vérifie désormais que l'utilisateur donné (si différent de l'utilisateur par défaut) existe (car l'installation ne crée PAS les utilisateur et groupe) et qu'il est membre du groupe donné.
- 2023-03-17 : LaTeX : recette mise à
jour pour permettre d'ajouter les césures (à partir des noms Babel)
de plusieurs langages au format. En définissant sur la ligne
de commande SUPPORTED_LANGUAGES avec une liste de noms
(Babel) de langages, noms séparés par des blancs, langages dont
les motifs et exceptions de césure (hyphenation)
doivent être compilés dans le format. Exemple :
SUPPORTED_LANGUAGES="french ukenglish ngerman russian" $KERTEX_SHELL latex.sh install
ajoutera le français, l'anglais (étendu par rapport à `hyphen.tex' de D.E.K.), l'allemand (post 1996) et le russe pour la césure, la sélection se faisant, par la suite, à l'aide des macros Babel des paquets niveau utilisateur relatifs, qui devront être ajoutés par leur recette kerTeX dédiée. - 2023-03-05 : kerTeX_M : correction pour compilation sur RHEL. Sur RHEL, l'ordre des objets liés, en tout cas si l'un s'appelle "lib.o", importe. Merci à B. Atticus Grobe ! pour avoir remonté l'information.
- 2023-01-19 : kerTeX 0.99.19.01 : Augmentation de la mémoire (BIG) pour version LaTeX courante. La version courante de LaTeX sur CTAN nécessite d'augmenter la mémoire (qui est définie à la compilation). Merci à Antonio Olivares pour le rapport d'erreur !
- 2022-11-06 : Correction pour la compilation de kertex_T sur Plan9. Une macro relative à la version POSIX nécessite d'être définie pour la compilation du code dépendant du système (pour une routine implémentant une des primitives supplémentaires requises par LaTeX). Signalé par Skip Tavakkolia. Également correction d'une bourde, signalée par Martin Ruckert, dans input.ch, mais qui n'avait pas d'incidence fonctionnelle (inutile de mettre à jour juste pour ça !). Merci à tous les deux pour le retour !
- 2022-10-13 : Correction de la recette LaTex pour Plan9. Certaines commandes ajoutées récemment à la recette ne correspondait pas à l'usage sur Plan9 (rmdir, utiliser mv pour des répertoires...) et l'invocation de mf pour la génération des fontes EC présupposait que les répertoires de kerTeX étaient dans le PATH/path. Corrigé. Merci à Chris Gorman pour le rapport d'erreur !
- 2022-09-26 : Mise à jour de la recette LaTeX. La recette a été mise à jour pour incorporer divers fichiers nécessaires au traitement du dtx de bbold@fonts.sh, lorsque l'on ajoute le support de ces fontes à LaTeX (compatibilité ?). Merci à Antonio Olivares pour le rapport d'erreur et les essais !
- 2022-09-12 : Mise à jour recette
LaTeX (2022-06-01-PL5). La recette a été mise à jour
pour la version courante sur les serveurs CTAN. Note : si les noms
des fichiers sont inchangés, une recette fonctionne même avec
la version en cours sur CTAN, peut-être plus récente que la récente.
S'il y a un changement, la recette
ne fonctionnera qu'avec la version des fichiers correspondant au
moment de l'écriture de la recette et dans ce cas il faut utiliser
le cache KerGIS :
$KERTEX_SHELL rcp.sh -p http install
. Merci à Antonio Olivares pour avoir signalé la mise à jour. - 2022-09-08 : Version mineure de kerTeX. Possibilité d'utiliser fetch comme client HTTP pour FreeBSD (supporte la redirection des CDN CTAN) — il faut utiliser également la dernière version de get_mk_install.sh pour pouvoir le sélectionner à l'installation. Également, amélioration de mp2ps pour la génération des figures isolées d'un script MetaPost.
- 2022-05-18 : Deux nouveaux paquets LaTeX : exam et lcg. (Sous l'incitation d'Antonio Olivares...)
- 2022-04-29 : Paquet LaTeX. À nouveau une correction : le chemin de recherche pour les fontes LaTeX (installées par la recette) n'était pas spécifié ; or elles sont nécessaires pour pouvoir compiler le format ; donc elles étaient trouvées dans les chemins par défaut — sur l'installation — ce qui fonctionnait pour une mise à jour puisqu'elles étaient existantes, et échouait pour une installation initiale. Corrigé. Merci à Antonio Olivares pour le rapport d'erreur !
- 2022-04-26 : Problèmes de connexion pour les
recettes (pkg). La recette latex.sh utilise une adresse
qui correspond en fait à un CDN, redirigeant les requêtes, en
fonction de la position et de la charge, entre différents serveurs
HTTPS. Deux problèmes : certains clients (déclarés pour le système)
ne sont pas capables de gérer les redirections ou (le client
ftp(1) de FreeBSD) ne gèrent pas le HTTPS ; et
curl, qui gère (mais avec certains drapeaux), est banni
par certains serveurs quand il est reconnu comme étant Curl... Si
le client par défaut ne convient pas, utiliser par exemple
lftp(1) en invoquant
sys_httpc=lftp sh latex.sh install
ou mettez à jour le gestionnaire des paquets par :
sh $KERTEX_LIBDIR/pkg/rcp/tools@pkg.sh install ce qui vous permettra, normalement, d'utiliser curl comme client (sys_httpc=curl). Enfin, vous pouvez aussi, dans la recette latex.sh remplacé le serveur http://mirrors.ctan.org/ par http://downloads.kergis.com/kertex/pkg/src/ qui a reçu une copie des données pour latex.sh et qui n'a pas de CDN ou ne réclame pas le HTTPS. - 2022-04-21 : latex.sh : correction ; kerTeX 0.99.17.1 : augmentation des capacités BIG pour LaTeX. Une bourde dans la recette latex.sh conduisait à ne pas installer tous les fichiers TFM etc. du paquet de fontes psnfss. Corrigé. Merci à Jack Lawler ! également pour m'avoir signalé une faute de portabilité (unzip utilisé à la place de $PKG_UNZIP) . Pour kerTeX : les capacités n'étaient pas suffisantes pour certains usages déclarant beaucoup de macros. Correction également de l'erreur émise si on aboutissait à une fin de fichier sans fin de ligne. Confort : les macro-définitions epsf.tex sont recherchées comme epsf.sty par certains usages LaTeX : les liens sont établis par défaut. Merci à Antonio Olivares pour les remontées d'erreur !
- 2022-04-18 : latex.sh : corrections pour graphics et psnfss. Graphics était inclus mais incorrectement spécifié dans le KXPATH ; psnfss était incomplètement inclus (manquaient les définitions des fontes en pfb et les cartes dvips). Corrigé. Merci à Antonio Olivares pour avoir signalé le problème !
- 2022-04-17 : kerTeX : 0.99.16.0 : Prote et support LaTeX3. Publication de la version avec Prote comme engin TeX principal (compatible TeX et e-TeX ; primitives additionnelles requises par LaTeX3 ; compatibilité de la primitive \input avec l'usage de Web2C — TeXLive). Également : prise en compte de la spécification du répertoire courant (du processus) pour les fichiers : "./un/chemin/de/fichier" n'est pas recherché s'il n'est pas trouvé mais considéré tel quel, le répertoire courant étant celui du processus (pas le répertoire du premier script donné). La recette latex.sh a été mise à jour avec la dernière version en ligne sur CTAN (le restant des paquets LaTeX — les recettes actuelles doivent être compatibles — sera mis à jour progressivement quand la charge de travail le permettra).
- 2022-03-25 : Prote : version de développement : implémentation des méthodes supplémentaires pour la primitive input. Prote — moteur par défaut pour TeX, eTeX et LaTeX — accepte désormais les noms de fichiers entre apostrophes doubles (ce qui permet les espaces) ainsi que l'extension permettant de donner un tel nom comme un argument interprété entre caractères de groupement. Le détail est expliqué dans la doc input.pdf sur la page dédiée de Prote. Merci à Phelype Oleinik pour le fichier de banc d'essai avec les précisions sur le comportement attendu de l'implémentation ! (Note : la recette pour LaTeX n'est pas encore mise à jour, le temps de vérifier qu'un démon ne s'est pas lové dans des détails à propos des acrobaties autour des apostrophes doubles.)
- 2022-03-07 : Prote : version de développement 0.99.15.9 : permettre les espaces dans les noms de fichier pour le code partagé. La plupart des engins utilisés avec LaTeX permettent des noms de fichier comprenant des espaces (alors que les espaces sont des délimiteurs dans les programmes d'origine et sont donc interdits dans les noms). Afin de le permettre, la bibliothèque partagée par tous les utilitaires, tant écrits en Pascal qu'en C, a été modifiée et tous les change files WEB ou CWEB repris ainsi que les fichiers afin de les adapter à la nouvelle API. C'est un changement majeur. La modification de TeX/Prote pour la primitive input suivra. C'est une publication d'alpha.
- 2021-10-14 :Prote (version de développement) a été testé avec succès sur NetBSD, FreeBSD, DragonFly et Android, sur des architectures amd64, aarch64 et earmv7. Merci encore une fois à Antonio Olivares pour une bonne partie des essais sur différents systèmes !
- 2021-10-11 : Prote a été intégré dans la version de développement de kerTeX. Cette version est disponible en téléchargement en sélectionnant dev lorsque get_mk_install.sh (ou get_mk_install.rc) demande de sélectionner la version. Voyez la page de Prote pour plus d'informations !
- 2021-09-21 : Prote : nouveau processeur typographique, compatible TeX et e-TeX, avec extensions. Dans l'esprit de e-TeX, Prote est un nouveau processeur typographique développé sur TeX, compatible avec TeX, incorporant les extensions e-TeX et ajoutant des fonctionnalités supplémentaires. Les premières sont les primitives requises par les versions les plus récentes de LaTeX. Le moteur sera intégré prochainement dans la distribution.
- 2021-09-02 : Correction de sécurité de TeX, METAFONT, MetaPost et e-TeX. Un comportement cafardeux du traitement des noms de fichiers dans des cas extrêmes a été trouvé et une correction appliquée pour imposer, au minimum, que les fichiers de log et dvi aient dans tous les cas l'extension. Pour les utilisateurs de LaTeX, le paquet doit être également réinstallé (afin que LaTeX utilise le nouvel engin e-TeX.
- 2021-06-27 : Correction de kerTeX_T:mp2ps. L'utilitaire echo interprète ou pas les séquences d'échappement (le comportement n'est pas prescrit par POSIX.2). L'interprétation est faite dans le shell fourni sur Pi, ce qui provoquait une génération incorrecte du script TeX généré par mp2ps. C'est corrigé — il s'agit du seul changement pour l'instant, si l'utilitaire fonctionne sur votre système, il est donc inutile de mettre à jour. Merci à Antonio Olivares pour le rapport d'erreur !
- 2021-04-22 : Nouvelle version des sources de D.E. Knuth. D.E. Knuth a mis à jour TeX, METAFONT et les programmes auxiliaires au titre de la révision de 2021. KerTeX a été mis à jour pour fournir la dernière version des programmes et adapter e-TeX et MetaPost en conséquence.
- 2021-04-07 : corrections de certaines recettes babel (pkg). Les recettes belarusian, friulan, georgian, hungarian, italian, occitan, piedmontese, romansh et slovenian de Babel ont été corrigées pour une erreur (sans conséquence sur l'usage) : il n'y a pas de .ins donc le code relatif ne doit pas être invoqué. Merci à Antonio Olivares pour le rapport d'erreur !
- 2021-03-08 : corrections pour Plan9. Plan9 ne fournit pas rmdir et mv ne renomme/déplace que des fichiers. Corrections dans RISK, ajustement de version RISK pour kertex_M, correction dans kertex_T pour mp2ps, et corrections des recettes (pkg) latex.sh et amstex.sh . Merci à Gilman Ironworks pour la remontée du problème !
- 2021-02-11 : correction RISK pour Raspberry Pi OS. La bibliothèque dynamiquement partagée C nécessite une bibliothèque statique annexe, dont les informations sont données par une pseudo bibliothèque sous /usr/lib/... qui est en fait un script ld(1). En cherchant, d'abord, sous /lib/..., c'est la bibliothèque nue qui est trouvée conduisant à des symboles non définis lors de l'édition des liens. Solution : l'ordre de recherche dans les répertoires est changé pour raspbian. (Merci à Antonio Olivares pour la remontée de l'échec sur la nouvelle version de Raspberry Pi !)
- 2020-11-22 : correction recette latex.sh. La recette intègre désormais des paquets (ams, babel core, cyrillic, graphics, tools — les fontes ec) qui étaient disponibles séparément mais qui sont requis. En conséquence, si ces paquets obsolètes sont installés, ils sont automatiquement désinstallés après l'installation de LaTeX. Problème : les nouveaux fichiers étaient installés dans le même répertoire que celui de l'ancien paquet, et si l'ancien paquet avait été installé, les (nouveaux) fichiers, ayant remplacé les anciens étaient donc désinstallés... Corrigé. Merci à Antonio Olivares !
- 2020-11-22 : correction RISK et kerTeX_T. correction RISK pour une instruction "cd répertoire_alternatif" qui peut échouer (Linux) ; corrections RISK et kerTeX pour la compilation statique sous les distributions Linux (testé sous Android). Merci une fois encore à Antonio Olivares pour la remontée d'information !
- 2020-11-18 : Mise à jour RISK pour FreeBSD et correction recettes russian et ukrainian. RISK : Chercher spécifiquement clang et ne pas récupérer c99 qui n'accepte que les options POSIX. Russian et ukrainian : docstrip, le nom batchfile doit être conservé. Merci à Antonio Olivares pour le rapport !
- 2020-11-17 : Mise à jour RISK pour OpenBSD et arm64. Des correctifs ont été appliqués pour la compilation sur OpenBSD ; les paramètres ont été ajoutés pour arm64 (aarch64). Merci à Asad Lodhia pour les rapports et les essais !
- Correction des recettes de langue LaTeX (babel). L'autogénération des fichiers est réalisée via docstrip, qui est fourni par LaTeX et doit donc être réalisée par latex et non tex — docstrip est accessible par tex si et seulement si babel@tex a été ajouté. Merci à Antonio Olivares pour le rapport d'erreur !
- Ajout de la recette carlisle@latex pour diverses feuilles de style ou de macros dues à David Carlisle (scalefnt.sty par exemple).
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.)
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. |