¡¡¡

Introduction

Ce document a pour but d’expliquer comment installer TETEX (version 0.4p18-11) sur un système Linux basé sur une RedHat 5.0 ou ultérieure de façon à obtenir un TEX francisé. Par francisé, j’entend pouvoir utiliser plain TEX avec une hyphénation française et une saisie ^{⟨⟨}normale ^{⟩⟩}, à savoir de pouvoir taper ses accents directement sans devoir utiliser le très puissant mais peu pratique outil de composition des accents (\ puis accent puis lettre) mis à notre disposition par TEX.

Il est vrai que tout ceci existe sous LATEX mais le présent document ne s’adresse justement qu’à ceux qui ne désirent pas abandonner plain TEX. Les raisons sont nombreuses et ne seront pas développées ici. Les raisons qui m’ont poussées à écrire ce document sont les suivantes. Utilisateur d’une Slackware depuis mes débuts sous Linux, j’utilisais alors MLTEX, une version complètement francisée de TEX que j’utilisais déjà sous MS-DOS auparavant.

Puis pour des raisons de facilité de gestion évidente, j’ai abandonné la Slackware au profit de la RedHat. J’ai alors voulu utilisé le TEX qui s’annonce comme le futur standard sous Linux, à savoir TETEX. Malheureusement, si TETEX s’annonçait comme supportant un grand nombre de langues, dont le français, l’installation et la mise en œuvre ne furent pas de tout repos. Et surtout, la documentation ne me fut pas d’un grand secours^{1}. C’est la raison pour laquelle j’ai écrit ce document: pour que le mal que je me suis donné à installer et optimiser TETEX puisse aussi servir à d’autre...

1. À qui s’adresse ce document ?

Ce document s’adresse à toute personne désirant installer plain TEX sur un système Linux avec comme distribution une RedHat version 5.0 ou ultérieure. Il faut noter que la méthode décrite cidessous n’est pas fondamentalement particulière aux distributions RedHat; toute personne ayant un peu l’habitude d’une autre distribution (Slackware, Debian,... etc.) pourra l’adapter sans trop de difficultés.

Pour ce faire, le niveau recquis du lecteur est le suivant: savoir se débrouiller avec les commandes Unix de base (déplacement, création et suppression de répertoire, gestion des droits sur un fichier, etc...) et savoir manipuler un éditer de texte en mode console (i-e sans être sous X). De plus, il doit avoir des droits de root pour l’installation générale. Il doit être évidemment possible d’installer en local l’application mais cela demande une réelle adaptation.

1 Il faut avouer que la documentation existe pour LATEX mais que le plain TEX est vraiment le parent pauvre de la grande famille TEX

!!! Important !!!

L’auteur décline toute responsabilité (et culpabilité !) quant à l’utilisation de ce document. Il est délivré ^{⟨⟨}tel quel ^{⟩⟩}dans l’espoir qu’il pourra rendre service mais l’auteur n’assure aucune garantie quant au résultat. Le lecteur assumera intégralement tous les déboires que pourraient lui occasionner une utilisation malheureuse du présent document.

Bon, ça devait être dit: c’est le préservatif du documentaliste :-). On peut maintenant s’attaquer aux choses sérieuses.

Enfin, la configuration minimale est la suivante: système Linux basé sur la distribution RedHat 5.0 ou ultérieure et le système Xwindow installé^{2} avec un gestionnaire de fichier.

2. Installation de TETEX

2.1 Recompilation des sources

Bien que TETEX soit fourni avec les binaires sous forme de rpm, je recommande fortement de recompiler les sources de façon à optimiser son installation. De plus, j’avais rencontré quelques difficultés avec les binaires originaux, la recompilation m’a permis de résoudre une partie de mes problèmes.

Que les utilisateurs non chevronnés de Linux ne se paniquent pas; il n’est nul besoin d’être un expert du langage C (ni même d’en connaître le moindre mot) pour effectuer cette opération. On va suivre pas à pas les différentes démarches et tout devrait fonctionner tout seul. C’est la raison pour laquelle une RedHat est particulièrement agréable: elle permet de faciliter grandement les démarches d’un néophyte en Unix pour les installations ou les recompilations.

Tout d’abord, il faut récupérer les sources de TETEX au format rpm. Il s’agit du fichier suivant^{3}:

                                tetex-0.4pl8-11.src.rpm

Il est nécessaire d’avoir précédemment installé les outils de compilation (make, gcc,...etc.) Tout ceci est disponible avec n’importe quelle distribution sous forme de binaires et s’installe tout seul à l’aide

de rpm.

L’installation des sources de TETEX peut alors commencer. Pour ce faire, en tant que superutilisateur, décompacter le fichier source:

                           rpm -ivh tetex-0.4pl8-11.src.rpm

Si cette opération ne s’effectue pas correctement, compléter les bibliothèques manquantes et recommencer l’opération jusqu’à son succès.

Puis se déplacer dans le répertoire des sources:

                               cd /usr/src/redhat/SPECS

où l’on doit normalement trouver le fichier tetex-0.4pl8.spec. Il ne reste alors plus qu’à compiler le-dit fichier; pour ce faire, il suffit de taper la commande suivante:

                             rpm -bb tetex-0.4pl8-11.spec

2 Il est théoriquement possible de faire fonctionner TEX sans X mais cela recquiert l’installation d’un prévisualiseur de fichier dvi en mode console qui n’est pas installé par défaut avec TETEX.

3 La méthode de récupération importe peu: pour ceux qui possèdent une distribution sur cédérom, il est disponible dans le répertoire SRPMS. Sinon, il est possible de le récupérer sur le réseau via ftp; attention toutefois, les quelques 18 Mo du fichiers risquent de vous entrainer dans un actionnariat forcé de France Télécom...

À partir de là, il ne reste plus qu’à être patient; en effet, sur mon ordinateur (Cyrix P166+, 32 Mo de mémoire vive), il faut plus d’une demi-heure pour arriver au bout! À titre de comparaison, la compilation de mon noyau me prend moins de dix minutes^{4} et celle de Emacs moins de vingt minutes...

Donc, ne pas hésiter à aller faire autre chose, surtout si la machine est un peu faiblarde côté processeur ou mémoire. Ne pas avoir de regret car de toute façon le jeu en vaut la chandelle.

Lorsque la compilation est terminée, il ne reste plus qu’à installer tout ce qui vient d’être fait. Il suffit alors de taper les commandes suivantes:

                                    cd ../RPMS/i386
                             rpm -ivh tetex-0.4pl8-11.rpm

Le répertoire i386 est bien entendu à adapter suivant le processeur. Que les inquiets ne paniquent pas; ceux qui ne savent pas quel est leur processeur utilisent certainement un compatible Intel et ne doivent s’occuper de rien. Les autres sont suffisamment fûtés pour avoir installé un système Linux sur autre chose comme plateforme et sauront adapter sans difficulté...

TETEX est maintenant compilé et installé. Ce ne fut pas si terrible... Ceux qui se refusent toutefois à ^{⟨⟨}sauter le pas ^{⟩⟩}pour recompiler un logiciel peuvent toujours installer le binaire sous forme de rpm comme suit:

                           rpm -ivh tetex-0.4pl8-11.i386.rpm

Dans tous les cas, TETEX doit maintenant fonctionner. Il ne reste plus qu’à franciser le logiciel.

2.2 Francisation de TETEX

Par défaut, TETEX est configuré pour les anglo-saxons. C’est malheureux mais c’est comme cela... Toutefois, comme TETEX supporte un très grand nombre de langues, dont le français, un outil est proposé pour le configurer assez facilement.

Cet outil s’appelle texconfig. Par défaut, il est installé dans /usr/bin et donc ne devrait pas poser de problème de PATH. De plus, il a été conçu pour fonctionner en mode console ou dans un xterm. Il lui suffit d’avoir simplement un espace d’au moins 24 lignes et 80 colonnes.

Après avoir lancer (avec succès) texconfig, il devrait apparaître un menu resemblant à peu près à ceci:

                     EXIT    exit
                     PREF    personal preferences
                     CONF    show configuration
                     REHASH  rebuild ls-R database
                     HYPHEN  hyphenation table (tex/latex)
                     MODE    default mode (xdvi/dvips/mf)
                     XDVI    xdvi configuration
                     DVIPS   dvips configuration
                     FONT    directories for font creation
                     DOC     rebuild html documentation
                     FAQ     frequently asked question + answers
                     LOG     view logfile

Pour sélectionner un menu, agir avec les flèches de direction puis valider avec le retour charriot. Dans un premier temps, il vaut mieux sélectionner le menu personal preference de façon à choisir un éditeur de texte. Par défaut, vi est proposé. Les allergiques comprendront... Les autres s’en contenteront.

4 Bien évidement, dit comme cela, ça n’a pas beaucoup de sens: mon noyau est un noyau 2.0.35 avec grosso modo la moitié des options compilées en statique ou en modules.

Tout ceci pour arriver au sous-menu hyphenation table pour choisir une hyphénation française et ainsi obtenir un TETEX français. Après avoir sélectionné le menu HYPHEN, on arrive en édition (avec l’éditeur précédemment choisi :-) sur le fichier language.dat. Le lecteur pourra alors se rendre compte que l’hyphénation par défaut est l’anglais et... l’allemand. Pôvre langue française... Pour réparer cet ^{⟨⟨}oubli ⟩⟩malheureux, il suffit de décommenter la ligne 36 du fichier (celle correspondant à ^{⟨⟨}french ^{⟩⟩}pour ceux qui utilise des éditeurs de texte aux capacités réduites...). Pendant que l’on y est, on peut recommenter la ligne 37, celle correspondant à ^{⟨⟨}german ^{⟩⟩}. Tout le monde ne pratique pas la langue de Gœthe...

Deux remarques au passage: le commentaire est un commentaire TEX: il s’agit du pourcent (%). Lorsque TEX rencontre ce signe, il ignore tout ce qui suit jusqu’au premier retour à la ligne. Donc pour décommenter le français, il faut supprimer le caractère % devant french. Pour commenter l’allemand, il suffit d’ajouter % devant german, devant signifiant bien-sûr en tête de ligne. Enfin, il ne faut pas décommenter l’hyphénation anglaise, même si on ne l’utilise pas proprement dit. Le ^{⟨⟨}moteur ^{⟩⟩}de TEX a besoin de façon impérative du mode anglais. D’ailleurs, il ne travaille qu’en anglais: le génial Knuth n’a pas pensé qu’il existait d’autre langue que l’anglais... :-(

Enfin, le lecteur un peu curieux pourra personnaliser son environnement à souhait. Les menus sont suffisamment parlant, même en anglais.

À ce stade, TETEX est fonctionnel et traite les textes comme des textes français, à condition bien-sûr de le déclarer en tête de fichier source comme suit:

                                 \input francais.sty

Voilà, à ce stade, on a un TEX qui reconnait un texte comme étant français et qui coupe correctement les mots et présente avec un style bien français. Mais il demeure un inconvénient: les accents ne sont pas gérés directement par TETEX... Seule la composition fonctionne; et cela n’est pas très pratique. On va essayer d’arranger cela de la façon la plus propre possible. Sinon, ce document aurait un intérêt des plus limités :-)

2.3 Reconnaissance de l’accentuation par TETEX

Pour s’affanchir des problèmes d’accent, le plus simple est d’écrire une table une fois pour toute. Lorsque TEX compilera le fichier source, il remplacera alors de lui même tous les accents par sa séquence de composition. En fait, rien ne change (ou presque...) pour TEX mais on y gagne grandement et en lisibilité du source et en confort de frappe.

Plutôt que de réinventer la roue, il suffit de récupérer un fichier de conversion existant déjà. J’ai choisi (arbitrairement) celui de LATEX2e. Et comme je lui ai retiré son en-tête, je l’ai renommé France accents, ce qui fait preuve d’une originalité certaine :-).

Le fichier est le suivant:

    \chardef \atcode = \the \catcode `\@
    \catcode `\@ = 11
    %
    \catcode160=13 \def^^a0\bf?  % 160 '240, "a0
    \catcode161=13 \def^^a1¡ % 161 '241, "a1
    \catcode162=13 \def^^a2\bf?  % 162 '242, "a2
    \catcode163=13 \def^^a3\pounds % 163 '243, "a3
    \catcode164=13 \def^^a4\bf?  % 164 '244, "a4
    \catcode165=13 \def^^a5\bf?  % 165 '245, "a5
    \catcode166=13 \def^^a6\vert % 166 '246, "a6
    \catcode167=13 \def^^a7\S % 167 '247, "a7 \S ISO-1,
    \catcode168=13 \def^^a8\"  % 168 '250, "a8
    \catcode169=13 \def^^a9\copyright% 169, '251, "a9

\catcode170=13 \def^^aa\bf?  % 170 '252, "aa
\catcode171=13 % 171 '253, "ab,
%\@ifundefinedlguill\def^^ab<<\def^^ab\lguill
\catcode172=13 \def^^ac\bf?  % 172 '254, "ac
\catcode173=13 \def^^ad\bf?  % 173 '255 "ad
\catcode174=13 \def^^ae\bf?  % 174 '256, "ae
\catcode175=13 \def^^af\bf?  % 175 '257, "af
\catcode176=13 \def^^b0\bf?  % 176 '260, "b0 ?? \No
\catcode177=13 \def^^b1\pm % 177 '261, "b1 ISO-1 plus-minus
\catcode178=13 \def^^b2^{2} % 178, '262, "b2
\catcode179=13 \def^^b3^{3} % 179, '263, "b3
\catcode180=13 \def^^b4\'  % 180, '264, "b4
\catcode181=13 \def^^b5\bf?  % 181, '265, "b5
\catcode182=13 \def^^b6\P % 182, '266, "b6
\catcode183=13 \def^^b7\cdot % 183, '267, "b7
\catcode184=13 \def^^b8\c  % 184, '270, "b8
\catcode185=13 \def^^b9^{1} % 185, '271, "b9
\catcode186=13 \def^^ba\bf?  % 186, '272, "ba
\catcode187=13 % 187, '273, "bb %\@ifundefinedrguill\def^^bb>>\def^^bb\rguill
\catcode188=13 \def^^bc\frac14 % 188, '274, "bc
\catcode189=13 \def^^bd\frac12 % 189, '275, "bd
\catcode190=13 \def^^be\frac34 % 190, '276, "be
\catcode191=13 \def^^bf¿ % 191, '277, "bf
\catcode192=13 \def^^c0\`A % 192, '300, "c0
%\@ifundefined@grave@A@grave@\def^^c0\`A\let^^c0=\@grave@A@grave@
\catcode193=13 \def^^c1\'A % 193, '301, "c1
%\@ifundefined@acute@A@acute@\def^^c1\'A\let^^c1=\@acute@A@acute@
\catcode194=13 \def^^c2\^A % 194, '302, "c2
%\@ifundefined@circflx@A@circflx@\def^^c2\^A\let^^c2=\@circflx@A@circflx@
\catcode195=13 \def^^c3\ A % 195, '303, "c3
%\@ifundefined@tileda@A@tilda@\def^^c3\ A\let^^c3=\@tileda@A@tilda@
\catcode196=13 \def^^c4\"A % 196, '304, "c4
%\@ifundefined@Umlaut@A@Umlaut@\def^^c4\"A\let^^c4=\@Umlaut@A@Umlaut@
\catcode197=13 \def^^c5\AA % 197, '305, "c5
%\@ifundefined@A@A@\def^^c5\AA\let^^c5=\@A@A@
\catcode198=13 \def^^c6\AE % 198, '306, "c6
%\@ifundefined@A@E@\def^^c6\AE\let^^c6=\@A@E@
\catcode199=13 \def^^c7\cC % 199, '307, "c7
%\@ifundefined@cedilla@C@cedilla\def^^c7\cC\let^^c7=\@cedilla@C@cedilla
\catcode200=13 \def^^c8\`E % 200, '310, "c8
%\@ifundefined@grave@E@grave@\def^^c8\`E\let^^c8=\@grave@E@grave@
\catcode201=13 \def^^c9\'E % 201, '311, "c9
%\@ifundefined@acute@E@acute@\def^^c9\'E\let^^c9=\@acute@E@acute@
\catcode202=13 \def^^ca\^E % 202, '312, "ca

%\@ifundefined@circflx@E@circflx@\def^^ca\^E\let^^ca=\@circflx@E@circflx@
\catcode203=13 \def^^cb\"E % 203, '313, "cb
%\@ifundefined@Umlaut@E@Umlaut@\def^^cb\"E\let^^cb=\@Umlaut@E@Umlaut@
\catcode204=13 \def^^cc\Ì % 204, '314, "cc
%\@ifundefined@grave@I@grave@\def^^cc\`I\let^^cc=\@grave@I@grave@
\catcode205=13 \def^^cd\'I % 205, '315, "cd
%\@ifundefined@acute@I@acute@\def^^cd\'I\let^^cd=\@acute@I@acute@
\catcode206=13 \def^^ce\^I % 206, '316, "ce
%\@ifundefined@circflx@I@circflx@\def^^ce\^I\let^^ce=\@circflx@I@circflx@
\catcode207=13 \def^^cf\"I % 207, '317, "cf
%\@ifundefined@Umlaut@I@Umlaut@\def^^cf\"I\let^^cf=\@Umlaut@I@Umlaut@
\catcode208=13 \def^^d0\rlap\raise0.3ex\hbox--D % 208, '320, "d0
%\@ifundefined@Eth@\let^^d0=\@Eth@
\catcode209=13 \def^^d1? % 209, '321, "d1
%\@ifundefined@tileda@N@tilda@\def^^d1\ N\let^^d1\@tileda@N@tilda@
\catcode210=13 \def^^d2\`O % 210, '322, "d2
%\@ifundefined@grave@O@grave@\def^^d2\`O\let^^d2=\@grave@O@grave@
\catcode211=13 \def^^d3\'O % 211, '323, "d3
%\@ifundefined@acute@O@acute@\def^^d3\'O\let^^d3\@acute@O@acute@
\catcode212=13 \def^^d4\^O % 212, '324, "d4
%\@ifundefined@circflx@O@circflx@\def^^d4\^O\let^^d4=\@circflx@O@circflx@
\catcode213=13 \def^^d5\ O % 213, '325, "d5
%\@ifundefined@tileda@O@tilda@\def^^d5\ O\let^^d5\@tileda@O@tilda@
\catcode214=13 \def^^d6\"O % 214, '326, "d6
%\@ifundefined@Umlaut@O@Umlaut@\def^^d6\"O\let^^d6=\@Umlaut@O@Umlaut@
\catcode215=13 \def^^d7\times% 215, '327, "d7
\catcode216=13 \def^^d8\O % 216, '330, "d8
%\@ifundefined@OOO@\def^^d8\O\let^^d8=\@OOO@
\catcode217=13 \def^^d9\`U % 217, '331, "d9
%\@ifundefined@grave@U@grave@\def^^d9\`U\let^^d9=\@grave@U@grave@
\catcode218=13 \def^^da\'U % 218, '332, "da
%\@ifundefined@acute@U@acute@\def^^da\'U\let^^da=\@acute@U@acute@
\catcode219=13 \def^^db\^U % 219, '333, "db
%\@ifundefined@circflx@U@circflx@\def^^db\^U\let^^db=\@circflx@U@circflx@
\catcode220=13 \def^^dc\"U % 220, '334, "dc
%\@ifundefined@Umlaut@U@Umlaut@\def^^dc\"U\let^^dc=\@Umlaut@U@Umlaut@
\catcode221=13 \def^^dd\'Y % 221, '335, "dd
%\@ifundefined@acute@Y@acute@\def^^dd\'Y\let^^dd=\@acute@Y@acute@
\catcode222=13 \def^^de\lower 0.7ex \hboxl\hskip-1ex\relax b % 222, '336, "de
%\@ifundefined@Thorn@\let^^de=\@Thorn@
\catcode223=13 \def^^df\ss % 223, '337, "df
%\@ifundefined@sss@\def^^df\ss\let^^df=\@sss@
\catcode224=13 \def^^e0\`a % 224, '340, "e0
%\@ifundefined@grave@a@grave@\def^^e0\à\let^^e0=\@grave@a@grave@

\catcode225=13 \def^^e1\'a % 225, '341, "e1
%\@ifundefined@acute@a@acute@\def^^e1\'a\let^^e1=\@acute@a@acute@
\catcode226=13 \def^^e2\^a % 226, '342, "e2
%\@ifundefined@circflx@a@circflx@\def^^e2\^a\let^^e2=\@circflx@a@circflx@
\catcode227=13 \def^^e3\ a % 227, '343, "e3
%\@ifundefined@tileda@a@tilda@\def^^e3\ a\let^^e3=\@tileda@a@tilda@
\catcode228=13 \def^^e4\"a % 228, '344, "e4
%\@ifundefined@Umlaut@a@Umlaut@\def^^e4\"a\let^^e4=\@Umlaut@a@Umlaut@
\catcode229=13 \def^^e5\aa % 229, '345, "e5
%\@ifundefined@a@a@\def^^e5\aa\let^^e5=\@a@a@
\catcode230=13 \def^^e6\ae % 230, '346, "e6
%\@ifundefined@a@e@\def^^e6\ae\let^^e6=\@a@e@
\catcode231=13 \def^^e7\cc % 231, '347, "e7
%\@ifundefined@cedilla@c@cedilla\def^^e7\cc\let^^e7=\@cedilla@c@cedilla
\catcode232=13 \def^^e8\`e % 232, '350, "e8
%\@ifundefined@grave@e@grave@\def^^e8\`e\let^^e8=\@grave@e@grave@
\catcode233=13 \def^^e9\'e % 233, '351, "e9
%\@ifundefined@acute@e@acute@\def^^e9\'e\let^^e9=\@acute@e@acute@
\catcode234=13 \def^^ea\^e % 234, '352, "ea
%\@ifundefined@circflx@e@circflx@\def^^ea\^e\let^^ea=\@circflx@e@circflx@
\catcode235=13 \def^^eb\"e % 235, '353, "eb
%\@ifundefined@Umlaut@e@Umlaut@\def^^eb\"e\let^^eb=\@Umlaut@e@Umlaut@
\catcode236=13 \def^^ec\` \i % 236, '354, "ec
%\@ifundefined@grave@i@grave@\def^^ec\`\i\let^^ec=\@grave@i@grave@
\catcode237=13 \def^^ed\´ \i % 237, '355, "ed
%\@ifundefined@acute@i@acute@\def^^ed\'\i\let^^ed=\@acute@i@acute@
\catcode238=13 \def^^ee\^\i % 238, '356, "ee
%\@ifundefined@circflx@i@circflx@\def^^ee\^\i\let^^ee=\@circflx@i@circflx@
\catcode239=13 \def^^ef\¨ \i % 239, '357, "ef
%\@ifundefined@Umlaut@i@Umlaut@\def^^ef\"\i\let^^ef=\@Umlaut@i@Umlaut@
\catcode240=13 \def^^f0\partial % 240, '360, "f0
%\@ifundefined@eth@\def^^f0\partial\let^^f0=\@eth@
\catcode241=13 \def^^f1\~  n % 241, '361, "f1
%\@ifundefined@tileda@n@tilda@\def^^f1\~  n\let^^f1\@tileda@n@tilda@
\catcode242=13 \def^^f2\`o % 242, '362, "f2
%\@ifundefined@grave@o@grave@\def^^f2\`o\let^^f2=\@grave@o@grave@
\catcode243=13 \def^^f3\'o % 243, '363, "f3
%\@ifundefined@acute@o@acute@\def^^f3\'o\let^^f3\@acute@o@acute@
\catcode244=13 \def^^f4\^o % 244, '364, "f4
%\@ifundefined@circflx@o@circflx@\def^^f4\^o\let^^f4=\@circflx@o@circflx@
\catcode245=13 \def^^f5\ o % 245, '365, "f5
%\@ifundefined@tileda@o@tilda@\def^^f5\ o\let^^f5\@tileda@o@tilda@
\catcode246=13 \def^^f6\"o % 246, '366, "f6
%\@ifundefined@Umlaut@o@Umlaut@\def^^f6\"o\let^^f6=\@Umlaut@o@Umlaut@

\catcode247=13 \def^^f7\div % 247, '367, "f7
\catcode248=13 \def^^f8\o % 248, '370, "f8
%\@ifundefined@ooo@\def^^f8\o\let^^f8=\@ooo@
\catcode249=13 \def^^f9\`u % 249, '371, "f9
%\@ifundefined@grave@u@grave@\def^^f9\`u\let^^f9=\@grave@u@grave@
\catcode250=13 \def^^fa\'u % 250, '372, "fa
%\@ifundefined@acute@u@acute@\def^^fa\'u\let^^fa=\@acute@u@acute@
\catcode251=13 \def^^fb\^u % 251, '373, "fb
%\@ifundefined@circflx@u@circflx@\def^^fb\^u\let^^fb=\@circflx@u@circflx@
\catcode252=13 \def^^fc\"u % 252, '374, "fc
%\@ifundefined@Umlaut@u@Umlaut@\def^^fc\"u\let^^fc=\@Umlaut@u@Umlaut@
\catcode253=13 \def^^fd\'y % 253, '375, "fd
%\@ifundefined@acute@y@acute@\def^^fd\'y\let^^fd=\@acute@y@acute@
\catcode254=13 \def^^fe\lower 0.8ex\hboxl\hskip-1ex\relax b % 254, '376, "fe
%\@ifundefined@thorn@\let^^fe=\@thorn@
\catcode255=13 \def^^ff\"y % 255, '377, "ff
%\@ifundefined@Umlaut@y@Umlaut@\def^^ff\"y\let^^ff=\@Umlaut@y@Umlaut@
\catcode `\@ = \the \atcode
\endinput % End of iso-latin-1.tex

Ce fut un peu long mais le principe d’un document exhaustif tient justement dans son exhaustivité^{5}!

Le principe de la manœuvre est simple: on va créer un répertoire hors de l’installation de TETEX dans lequel on mettra notre fichier de conversion. par la même occasion, on pourra mettre tous les fichiers de macros personnelles dans ce répertoire. Ainsi, à chaque fois que l’on mettra une version plus récente de TETEX à jour, l’ensemble des fichiers personnels ne sera pas touché.

Pour ce faire, il faut modifier le fichier suivant^{6}:

                            /usr/lib/texmf/texmf.cnf

Après édition, aller à la ligne numéro 26 ; elle doit se présenter ainsi^{7}:

23 % Set this to the name of your local tree.  You can have none, one or
24 % even more local texmf trees.  Just make sure to list them in the TEXMFS
25 % variable.

26 TEXMFL = /usr/local/tex/texmf/macros

La ligne 26 est normalement commenté (avec le %) et le chemin est différent. L’exemple ci-dessus est le résultat des modifications que j’ai apportées au fichier original. Donc, comme dans l’exemple précédent, pour ajouter un chemin aux chemins déjà utilisés par TEX, il suffit de décommenter la ligne 26 (i-e supprimer le signe %). Puis modifier le chemin ou laisser le chemin par défaut^{8}.

5 et puis la mise en page d’un document TEX en TEX est relativement pénible alors pour que ce travail ne soit pas perdu...

6 Avec son éditeur favori :-) Par contre, dans ce cas précis, il est nécessaire d’être super-utilisateur...

7 La numérotation a été ajoutée de façon à clarifier les explications... Il en va de même pour tous les exemples qui vont suivre.

8 Pour ceux qui ne sont pas très familiers des systèmes Unix en général, et de Linux en particulier, il vaut mieux mettre des fichiers personnalisés dans /usr/local. C’est plus traditionnel qu’autre chose mais cela permet de faire les choses de façon ^{⟨⟨} propre ^{⟩⟩}. On découple ainsi les fichiers fournis avec un paquetage /usr de ceux qui sont ajoutés a posteriori /usr/local. Ainsi, lors de la mise à jour, si l’architecture du paquetage est modifiée, les mofications personnelles ne sont pas perdues.

Il ne reste alors plus qu’à décommenter la ligne 37 du fichier texmf.cnf et commenter la ligne 33:

28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29 % List all your texmf trees in TEXMFS. So far, only TEXMF can be protected
30 % by !!, since ls-R only supports one texmf tree so far.
31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
32 % No local tree:

33 %TEXMFS = !!$TEXMF

34 % Search local tree *after* the standard tree:
35 %TEXMFS = !!$TEXMF,$TEXMFL
36 % Search local tree *before* the standard tree:

37 TEXMFS = $TEXMFL,!!$TEXMF

En fait, on peut décommenter au choix la ligne 35 ou 37: dans le premier cas, les fichiers personnels seront lus en second, donc après les fichiers de TETEX. Dans le second cas, ils seront lus avant. Pour ceux qui ne voient pas pourquoi un tel choix est proposé, il vaut mieux choisir de décommenter la ligne 37^{9}.

On a bientôt terminé: il s’agit maintenant d’intégrer ces modifications dans le plain TEX: pour cela, il faut modifier la ligne 66

65 TEXINPUTS.ps2pk = $KPSE DOT:$TEXMFS/tex,fonts/afm,dvips//
66 TEXINPUTS.tex = $KPSE DOT:$TEXMFS/tex/plain,/generic,//
67 TEXINPUTS.texinfo = $KPSE DOT:$TEXMFS/tex/texinfo,plain,generic//

comme suit:

65 TEXINPUTS.ps2pk = $KPSE DOT:$TEXMFS/tex,fonts/afm,dvips//
66 TEXINPUTS.tex = $KPSE DOT:$TEXMFS:$TEXMFS/tex/plain,/generic,//
67 TEXINPUTS.texinfo = $KPSE DOT:$TEXMFS/tex/texinfo,plain,generic//

On a donc simplement ajouté $TEXMFS (qui est la concaténation des variables TEXMFL et TEXMF de la ligne 37) au chemin de plain TEX.

On sauvegarde alors et on quitte. TETEX est maintenant complètement francisé, avec une saisie en 8 bits dans le fichier source^{10}.

Il ne faut bien-entendu pas omettre d’appeler le fichier d’accentuation en début de document. Pour ce faire, il suffit de l’appeler juste après le fichier de francisation de TETEX:

                              \input francais.sty
                             \input France accents

Bien-sûr, chacun fait à ce niveau comme il lui plait: on peut aussi le lier aux autres fichiers personnels. Je l’ai personnellement lié directement à mon fichier de macros appeler macros.tex (original, n’est-ce pas ?) et qui est appelé systématiquement lorsque je fabrique un document TEX. La seule contrainte est de ne pas oublier de placer le fichier France accents (où quelque soit le nom que l’on lui a donné) dans le répertoire local que l’on a créé :-)).

9 En fait, pour les non-initiés, on peut ainsi agir sur les fichiers de configuration par défaut de TEX en appliquant ses propres fichiers en dernier. Il va de soit qu’il vaut alors mieux savoir ce que l’on fait et dans tous les cas en user avec parcimonie.

10 par opposition à 7 bits qui correspondent aux 127 premiers caractères ASCII, seul norme internationnale reconnue. Les caractères ainsi formés ne possèdent hélas pas de signe d’accentuation. On reconnait ainsi encore par qui sont faits les ^{⟨⟨} standards ^{⟩⟩} qui régissent le monde...