Guide pratique de TEX Live
TEX Collection 2005

Sebastian Rahtz & Karl Berry
http://tug.org/texlive/
Version française
Daniel Flipo (GUTenberg)

Octobre 2005

Table des matières

1 Introduction
 1.1 Utilisation élémentaire de TEX Live
 1.2 Obtenir de l’aide
2 Structure de TEX Live
 2.1 Distributions multiples : live, inst, protext
 2.2 Répertoires situés à la racine
 2.3 Description des arborescences texmf utilisées
 2.4 Les extensions de TEX
 2.5 Quelques autres programmes intéressants dans TEX Live
3 Utilisation sous Unix
 3.1 Utiliser TEX Live à partir du DVD live
 3.2 Installer TEX Live sur le disque
 3.3 Ajouter des composants à une installation
4 À faire après l’installation
 4.1 Le programme texconfig
 4.2 Tester l’installation
5 Installation pour Mac OS X
 5.1 Installation de MacTEX
 5.2 install*.sh : installation depuis TEX Live
 5.3 Interfaces graphiques pour Mac OS X
6 Installation sous Windows
 6.1 Installation sous Windows depuis le CD inst
 6.2 Programmes auxiliaires pour Windows
7 Maintenance sous Windows
 7.1 Ajouter ou supprimer des composants
 7.2 Configuration et maintenance
 7.3 Désinstallation complète de TEX Live
 7.4 Ajouter des composants à votre système
 7.5 Exécution de tlmp.exe en ligne de commande
 7.6 Installation en réseau
 7.7 Différences entre la version Windows et la version Unix de TEX Live
 7.8 Personnalisation de l’installation
 7.9 Tests
 7.10 Impression
 7.11 Trucs et astuces à propos de la plate-forme Win32
 7.12 En cas de problème
8 Guide d’utilisation du système Web2C
 8.1 Kpathsea et la recherche de fichiers
 8.2 Les bases de données
 8.3 Options à l’exécution
9 Remerciements
10 Historique des versions successives
 10.1 Les éditions précédentes
 10.2 L’édition 2005
 10.3 Versions futures

Liste des tableaux

Options d’installation du menu principal
Les binaires sont disponibles pour les architectures suivantes.

1 Introduction

Ce document décrit les principales caractéristiques de la distribution TEX Live, une distribution de TEX et LATEX pour Linux et autres Unix, Mac OS X et systèmes Windows 32 bits (attention, cette distribution n’est pas vraiment utilisable avec les anciens systèmes Mac ou MS-DOS). Elle comprend les binaires pré-compilés de TEX, LaTeX2e, Metafont, MetaPost, BibTeX et de nombreux autres programmes ainsi qu’une bibliothèque étendue de macros, de fontes et de documentations. Elle traite aussi la composition de textes qui utilisent plusieurs systèmes d’écritures différentes venant de toute la surface du globe. La distribution TEX Live est en fait un sous-ensemble de TEX Collection (décrit brièvement à la section  2, p. 7) produit grâce aux efforts combinés des différents groupes d’utilisateurs de TEX.

L’édition 2005 a été figée en octobre 2005. Les futures mises à jour des composants de la distribution 2005 seront disponibles au fur et à mesure de leur parution sur le site CTAN, http://www.ctan.org.

On trouvera à la fin du document, section 10 (p. 73), un bref historique des principales modifications apportées au fil du temps à la distribution TEX Live.

Les utilisateurs des éditions précédentes de TEX Live sont invités à lire, avant toute mise à jour, la section 10.2 p. 77 qui présente les principaux changements intervenus cette année.

1.1 Utilisation élémentaire de TEX Live

Vous pouvez utiliser TEX Live de trois façons différentes :

  1. Vous pouvez exécuter TEX Live directement depuis le DVD live (toutes plates-formes). Cela prend très peu d’espace disque et donne un accès immédiat à tout le contenu de TEX Live. C’est une solution parfaitement acceptable même si les performances obtenues sont moins bonnes que si TEX Live était lancé depuis un disque local.
  2. Vous pouvez installer tout ou partie de TEX Live sur un disque local. C’est l’utilisation la plus fréquente de TEX Live. Ceci peut se faire à partir du DVD live ou de l’un des CD de la distribution (voir section 2.1, p. 7). Il faut disposer d’un minimum de 120 Mo, mais on recommande au moins 400 Mo pour un système standard ou 800 Mo pour un système complet.
  3. Vous pouvez incorporer un jeu de composants particulier ou une collection dans un système TEX déjà présent, soit un système TEX Live installé précédemment, soit un système TEX différent.

Ces trois utilisations sont décrites en détail dans les sections concernant l’installation spécifique à chaque système. Quelques remarques générales :

1.2 Obtenir de l’aide

La communauté TEX est à la fois active et conviviale ; pratiquement toute question sérieuse finit par obtenir une réponse. Le support est pourtant informel, assuré par des volontaires et des lecteurs occasionnels, aussi est-il particulièrement important que vous fassiez votre propre travail de recherche avant de poser la question (si vous préférez un support commercial, vous pouvez renoncer à TEX Live et acheter un système payant ; voir une liste à http://tug.org/interest.html#vendors).

Voici une liste de ressources, classées selon l’ordre dans lequel nous recommandons de les utiliser :

Getting Started
Pour ceux qui débutent en TEX, la page web http://tug.org/begin.html contient une courte description du système.
FAQ TEX
La FAQ TEX est un vaste recueil de réponses à toutes sortes de questions, de la plus élémentaire à la plus complexe. Elle est enregistrée sur le DVD live dans texmf-doc/doc/english/FAQ-en et elle est disponible sur Internet à l’adresse http://www.tex.ac.uk/faq. Merci de consulter cette FAQ avant toute question.
Catalogue TEX
Si vous recherchez une extension, une fonte, un programme, ... particuliers, il faut examiner le catalogue TEX. C’est une importante liste de tous les éléments relatifs à TEX. Voir texmf-doc/doc/english/catalogue sur le DVD live, ou http://www.ctan.org/tex-archive/help/Catalogue.
Ressources TEX sur le Web
La page web http://tug.org/interest.html propose beaucoup de liens relatifs à TEX, en particulier concernant des livres, manuels et articles portant sur tous les aspects du système.
Archives des forums d’aide
Les principaux forums dédiés au support de TEX sont les groupes de news Usenet news:comp.text.tex (en anglais) et news:fr.comp.text.tex (en français) ainsi que les listes de diffusion texhax@tug.org (en anglais) et gut@ens.fr (en français). Les archives correspondantes contiennent des milliers de questions et réponses déjà traitées et permettent une recherche fructueuse. Voir http://groups.google.com/groups?group=comp.text.tex et http://tug.org/mail-archives/texhax, respectivement. Une question posée sur un moteur de recherche, tel que http://google.com, peut aussi fournir des réponses pertinentes.
Poster une question
Si vous n’obtenez pas de réponse, vous pouvez poster la question à comp.text.tex via Google ou votre lecteur de news, ou encore par messagerie à texhax@tug.org. Mais avant de le faire, merci de lire l’introduction de la FAQ donnant les conseils sur la façon de rédiger la question pour avoir des chances d’obtenir une réponse : http://www.tex.ac.uk/cgi-bin/texfaq2html?label=askquestion.
Support de TEX Live
Si vous voulez faire un rapport d’anomalie, émettre des suggestions ou des commentaires sur la distribution TEX Live, l’installation ou la documentation, utilisez la liste de diffusion tex-live@tug.org. Mais attention, si la question concerne l’utilisation d’un programme particulier inclus dans TEX Live, il vaut mieux que vous écriviez directement à la personne ou à la liste de diffusion qui maintient le programme.

L’autre aspect du sujet concerne l’aide à apporter aux personnes soumettant des questions. Les forums comp.text.tex, fr.comp.text.tex ainsi que les listes de diffusion texhax et gut sont ouverts à tous, aussi n’hésitez pas à vous y joindre, à commencer la lecture et à fournir de l’aide là où cela vous est possible. Bienvenue dans le monde TEX !

2 Structure de TEX Live

Nous décrivons ici la structure et le contenu de TEX Live et de TEX Collection qui est un sur-ensemble de TEX Live.

2.1 Distributions multiples : live, inst, protext

Des limitations d’espace liées au format des CD-ROM nous ont contraint à diviser TEX Collection en plusieurs distributions :

live
Un système exécutable complet sur DVD ; il est trop volumineux pour tenir sur CD-ROM. Le DVD contient aussi une image du système CTAN, totalement indépendant de TEX Live, la distribution MacTEX pour Mac OS X, la distribution ProTEXt pour Windows, ainsi que d’autres extensions réunies dans un répertoire texmf-extra.

Les droits d’utilisation des fichiers présents dans CTAN, ProTEXt, MacTEX et texmf-extra diffèrent de ceux de TEX Live, pensez à lire les licences si vous envisagez de modifier ou de redistribuer certains de ces fichiers.

inst(allable)
Un système complet sur CD pour les Unix (dont Linux et Mac OS X) ; pour le faire tenir sur le CD, il a fallu compresser tout ce que nous avons pu. Du coup, il n’est pas possible d’exécuter directement TEX depuis le CD d’installation, il vous faut l’installer sur disque (d’où le nom). L’installation est décrite dans les sections concernées (3.2 et 5.2 pour Mac OS X).
protext
Une extension du système MiKTEX sur CD pour Windows. Cette distribution est totalement indépendante du TEX Live, elle nécessite un mode d’installation spécifique. Elle peut être installée sur disque ou exécutée directement depuis le CD. Le site de ProTEXt se trouve ici : http://tug.org/protext.

protext est fourni à la fois sur le DVD live et sur un CD spécifique pour ceux qui n’ont pas de lecteur de DVD.

On peut déterminer la nature de la distribution utilisée en recherchant le fichier 00type.TL dans le répertoire racine du médium utilisé (CD ou DVD). Ce fichier contient aussi la date de dernière mise à jour du TEX Live.

2.2 Répertoires situés à la racine

Les répertoires les plus importants situés à la racine du DVD live sont énumérés ci-dessous. Cette année, la distribution TEX Live est dans un sous-répertoire texlive2005 et non à la racine.

bin

Programmes de la famille TEX, rangés dans des sous-répertoires selon les plates-formes.

source

Le code source de tous les programmes, incluant la distribution Web2C de TEX et Metafont. Il s’agit d’une archive au format tar, compressée par bzip2. Faute de place, le répertoire source n’est pas sur le CD inst (seulement sur le DVD live).

support

Ensemble d’extensions et programmes auxiliaires. Ils ne sont pas installés par défaut.

texmf

Répertoire contenant les programmes et leur documentation. Ne contient ni les formats ni les extensions (appelé TEXMFMAIN dans la section suivante.)

texmf-dist

Répertoire principal où se trouvent les extensions les fontes, etc., avec leur documentation (appelé TEXMFDIST dans la section suivante.)

texmf-doc

Répertoire contenant le reste de la documentation, le sous-répertoire doc est organisé par langue.

texmf-var

Répertoire contenant les fichiers générés automatiquement (appelé TEXMFSYSVAR dans la section suivante.)

xemtex

Répertoire contenant des programmes utiles pour Windows. Ce n’est pas la distribution XEmTEX de Fabrice Popineau !

Le répertoire texmf-doc ne contient que de la documentation mais pas toute la documentation. Celle concernant les programmes (manuels, pages man et fichiers de type info est dans texmf/doc car les programmes correspondants sont dans texmf. De même, la documentation des extensions et formats est dans texmf-dist/doc. Les commandes texdoc ou texdoctk trouveront pour vous les documentations où quelles soient sur le disque. Le fichier doc.html du DVD live contient une liste de liens bien utiles pour localiser les fichiers de documentation.

On trouve également, au même niveau que les répertoires mentionnés ci-dessus, les scripts d’installation et les fichiers README (dans différentes langues).

2.3 Description des arborescences texmf utilisées

Nous donnons ici la liste complète des variables prédéfinies qui contiennent les noms des différentes arborescences de type texmf et l’usage qui en est fait. La commande texconfig conf retourne les valeurs de ces variables, ce qui permet de savoir où se trouvent ces différentes arborescences dans une installation donnée.

TEXMFMAIN
contient les éléments essentiels du système, comme les scripts (web2c/mktexdir, etc.), les fichiers .pool, etc.
TEXMFDIST
contient les fichiers de macro (Plain, LATEX, ConTEXt, etc.,), les fontes, etc., de la distribution TEX Live. Rien ne devrait être ni ajouté ni supprimé dans cette arborescence.
TEXMFLOCAL
c’est là que l’administrateur de la machine place les classes et extensions locales, les fontes non disponibles dans TEX Live, etc.
TEXMFHOME
contient les fichiers personnels (extensions, classes, fontes) de l’utilisateur ; ce répertoire est sous $HOME par défaut. La variable TEXINPUTS ne devrait plus être utilisée.
TEXMFCONFIG
c’est là que les scripts updmap et fmtutil recherchent leurs fichiers de configuration en priorité. texconfig y place les versions modifiées des fichiers de configuration. Sous $HOME par défaut.
TEXMFSYSCONFIG
c’est là que les scripts updmap-sys et fmtutil-sys recherchent leurs fichiers de configuration en priorité. texconfig-sys y place les versions modifiées des fichiers de configuration.
TEXMFVAR
c’est là que les scripts texconfig, updmap et fmtutil rangent les formats et les fichiers .map qu’ils produisent. Sous $HOME par défaut.
TEXMFSYSVAR
c’est là que les scripts texconfig-sys, updmap-sys et fmtutil-sys rangent les formats et les fichiers .map qu’ils produisent.

Les possibilités offertes par texconfig sont décrites à la section 4.1, p. 26.

2.4 Les extensions de TEX

TEX Live contient plusieurs extensions de TEX.

e-TEX
ajoute un jeu, petit mais puissant, de nouvelles primitives et les extensions TEX--XE T pour l’écriture de droite à gauche ; e-TEX est, en mode normal, 100% compatible avec TEX standard. Pour plus de détails consulter le fichier texmf-dist/doc/etex/base/etex_man.pdf du DVD live.
pdfTEX
produit, au choix, des fichiers au format Acrobat PDF ou au format DVI. Le manuel d’utilisation se trouve sur le DVD live dans texmf/doc/pdftex/manual/. Le fichier texmf/doc/pdftex/pdftex/manual/samplepdf/samplepdf.tex présente un exemple d’utilisation. L’extension hyperref de LATEX possède une option « pdftex » qui active tous les mécanismes nécessaires.
pdfeTEX
combine les fonctionnalités de pdfTEX et e-TEX. C’est le moteur utilisé désormais par tous les formats à l’exception de plain TEX.
Omega (Omega)
fonctionne en utilisant Unicode et des caractères 16 bits, ce qui lui permet de travailler directement et simultanément avec presque toutes les écritures du monde entier. L’extension supporte aussi le chargement dynamique d’OTP (Omega Translation Processes) qui permet à l’utilisateur d’appliquer sur des flux d’entrée quelconques des transformations complexes qu’il aura lui-même définies. Voir la documentation (pas vraiment à jour) dans texmf-dist/doc/omega/base/doc-1.8.tex.
Aleph
combine les fonctionnalités de Omega et de e-TEX. texmf-dist/doc/aleph/base contient une documentation de base.

2.5 Quelques autres programmes intéressants dans TEX Live

Voici quelques autres programmes couramment utilisés et présents dans TEX Live :

bibtex
Traitement de la bibliographie.
makeindex
Traitement des index.
dvips
Conversion DVI vers PostScript.
xdvi
Visualisation DVI pour le système X Window.
dvilj
Pilote DVI pour les imprimantes HP LaserJet.
dv2dt, dt2dv
Conversion DVI vers ou depuis du texte simple.
dviconcat, dviselect
Couper/Coller de pages à partir de fichiers DVI.
dvipdfmx
Conversion DVI vers PDF, une autre approche que celle de pdfTEX (mentionné ci-dessus). Voir les extensions ps4pdf et pdftricks pour d’autres alternatives.
psselect, psnup, ...
Utilitaires PostScript.
lacheck
Vérification de syntaxe LATEX.
texexec
Processeur ConTEXt et PDF.
tex4ht
Conversion TEX vers HTML.

3 Utilisation sous Unix

Comme on l’a vu en section 1.1 p. 5, le TEX Live peut être utilisé de trois façons principales :

  1. Exécution directe depuis le DVD live.
  2. Installation sur le disque dur.
  3. Intégration d’un jeu de composants ou collections dans un système TEX déjà installé.

Les procédures spécifiques à Unix sont décrites pour chacun de ces cas dans les sections qui suivent.


ATTENTION : Les CD et le DVD sont au format ISO 9660 (High Sierra), avec les extensions « Rock Ridge » (et « Joliet » pour Windows). Votre système doit pouvoir reconnaître les extensions « Rock Ridge » pour une utilisation optimale de TEX Live. Consultez votre documentation concernant la commande mount pour voir si c’est le cas. Si votre réseau local est constitué de machines différentes, regardez si vous pouvez monter les CD sur une machine qui supporte Rock Ridge et utiliser ce point de montage pour les autres machines.

L’utilisation des CD sur les systèmes modernes ne devrait pas poser de problèmes. S’il y en avait, n’hésitez pas à nous le faire savoir. La suite de ce document suppose que vous avez installé et monté les CD avec une compatibilité Rock Ridge parfaite.


N.B. : les droits de « root » sont souvent requis pour monter le CD. D’autre part, selon le type d’Unix utilisé, il vous faudra probablement connaître le mot de passe de « root » ou tout au moins utiliser la commande sudo pour effectuer l’installation (le droit d’écriture sur le(s) répertoire(s) d’installation est évidemment indispensable). Cette remarque concerne particulièrement les utilisateurs de Mac OS X à qui nous recommandons de prendre d’abord connaissance de la section 5 avant toute installation.

3.1 Utiliser TEX Live à partir du DVD live

La liste des architectures sur lesquelles fonctionne TEX Live est donnée page 19 (table 2).

On peut utiliser le système TEX directement depuis DVD live, sans l’installer sur le disque dur (d’où en fait le nom TEX Live). Il n’est pas possible de faire tourner TEX directement depuis le CD inst (voir section 2.1, page 7). Pour démarrer, il faut d’abord « monter » le médium avec les extensions Rock Ridge. La commande exacte varie d’un système à l’autre ; la commande suivante fonctionne sous Linux, mais les noms du périphérique (ici /dev/cdrom) et du point de montage (ici /mnt/cdrom) peuvent changer.
N.B. Tous nos exemples utilisent > pour les lignes de commandes (shell prompt) ; les commandes de l’utilisateur sont soulignées.

> mount -t iso9660 /dev/cdrom /mnt/cdrom

Se placer au point de montage du lecteur :

> cd /mnt/cdrom
Lancer le script install-tl.sh :

> sh install-tl.sh
Welcome to TeX Live...

Après l’affichage de divers messages de bienvenue et une liste des options du menu principal, l’installation réclame l’entrée d’une commande. Taper alors le caractère voulu suivi d’un retour-chariot. Ne pas taper les chevrons (ni < ni >) ; on peut utiliser des majuscules ou des minuscules ; ici, les exemples utilisent des minuscules.

Pour exécuter live, la première commande est d suivie de la sous-commande 1 pour choisir le répertoire du disque local où seront placés les fichiers (tels que les fontes et les formats) que le système TEX génère lui-même ainsi que les fichiers de configuration si besoin est. On utilisera /opt/texlive2005 dans cet exemple, mais un utilisateur non privilégié peut très bien choisir un sous-répertoire non-existant de son répertoire personnel (il sera créé et ne contiendra donc que du matériel TEX Live). Étant donné que les fichiers créés ne sont pas toujours compatibles d’une année sur l’autre, il est recommandé d’inclure l’année dans le nom du répertoire. Si la valeur par défaut /usr/local/texlive/2005 vous convient (c.-à-d. que /usr/local/texlive/2005 n’est pas un répertoire existant et que vous avez les droits pour écrire sous /usr/local), vous pouvez sauter cette étape.

Enter command: d
Current directories setup:
<1>  TEXDIR:     /usr/local/texlive/2005
...
Enter command: 1
New value for TEXDIR [/usr/local/texlive/2005]: /opt/texlive2005
...
Enter command: r

Retour au menu principal. La seconde (et dernière) commande est r pour faire tourner live à partir du DVD sans pour autant l’installer sur le disque dur :

Enter command: r
Preparing destination directories...
...
Welcome to the TeX Live!
>

On se retrouve au niveau de la ligne de commande comme on vient de le voir.

Il faut maintenant modifier les deux variables d’environnement PATH et TEXMFSYSVAR comme indiqué à l’écran quelques lignes au dessus de « Welcome to TeX Live ! ». La syntaxe dépend du shell utilisé. Les syntaxes précises sont affichées pour les shell de type Bourne ou compatible (bash, sh ksh, etc.) et pour les C shells (csh, tcsh). Rappelons qu’il suffit de taper la commande echo $SHELL pour connaître le nom du shell utilisé. Le plus simple est de recopier par copier-coller, soit les deux lignes commençant par « setenv » pour les C shells, soit les trois lignes « PATH= », « TEXMFSYSVAR= », « export ... » pour les shell de type Bourne (suivies d’un retour-chariot) dans le terminal de commandes.

Ceci suffit pour pouvoir utiliser la distribution TEX Live pendant toute la session. Pour ne pas avoir à redéfinir PATH et TEXMFSYSVAR à chaque nouvelle connexion, il suffit d’entrer les mêmes commandes à l’aide d’un éditeur dans le fichier d’initialisation du shell (.bash_profile, .profile ou .cshrc selon le cas). L’initialisation se fera ensuite automatiquement au début de chaque nouvelle session.

Une fois l’installation terminée et les variables d’environnement initialisées, la dernière étape consiste à exécuter texconfig ou texconfig-sys pour éventuellement modifier certains paramètres. Ceci est expliqué à la section 4.1, p. 26.

Passez maintenant à la section 4.2 pour effectuer quelques tests de bon fonctionnement.

En cas de doute, n’hésitez pas à contacter un gourou système pour vous aider à résoudre vos problèmes, tels que la façon de monter le médium TEX Live, le choix des répertoires à utiliser ou les modifications à apporter dans vos fichiers d’initialisation.

3.2 Installer TEX Live sur le disque

Il est possible, et même habituel, d’installer le système TEX à partir du TEX Live sur le disque (« dur »). Ceci peut se faire en utilisant soit le DVD live, soit le CD inst (voir section 2.1, p. 7 pour des explications sur les différentes distributions).

Pour démarrer, il faut d’abord « monter » le médium avec les extensions Rock Ridge. La commande exacte varie d’un système à l’autre ; la commande suivante fonctionne sous Linux, mais les noms du périphérique (ici /dev/cdrom) et du point de montage (ici /mnt/cdrom) peuvent changer.
N.B. Tous nos exemples utilisent > pour les lignes de commandes (shell prompt) ; les commandes de l’utilisateur sont soulignées.

> mount -t iso9660 /dev/cdrom /mnt/cdrom

Se placer au point de montage du lecteur :

> cd /mnt/cdrom
Lancer le script install-tl.sh :

> sh install-tl.sh
Welcome to TeX Live...

Après l’affichage de divers messages de bienvenue et une liste des options du menu principal, l’installation réclame l’entrée d’une commande. Taper alors le caractère voulu suivi d’un retour-chariot. Ne pas taper les chevrons (ni < ni >) ; on peut utiliser des majuscules ou des minuscules ; ici, les exemples utilisent des minuscules.

La table 1 donne la liste des options du menu principal. On peut choisir les options dans n’importe quel ordre, mais i doit être la dernière choisie. Il est cependant raisonnable de procéder dans l’ordre où elles apparaissent ici !


Table 1: Options d’installation du menu principal
p plate-forme que vous utilisez
b choix des binaires à installer (architectures multiples)
s schéma d’installation de base (complet, recommandé, GUTenberg, etc.).
c modifier le choix des collections individuelles
l modifier le choix des langues à installer
d répertoire où faire l’installation
o autres options
i lancer l’installation

Voici quelques précisions sur chaque option.

p – Platform (current).
Plate-forme utilisée.
Le script d’installation détecte automatiquement la plate-forme sur laquelle il tourne, il est en général inutile de modifier cette option, sauf en cas d’erreur.
b – Binary architectures.
Binaires pour d’autres architectures.
Par défaut, seuls les binaires pour votre plate-forme seront installés. À l’aide de ce menu-ci, il est possible de choisir d’installer aussi les binaires pour d’autres plates-formes (ou de ne pas installer pour la plate-forme courante). C’est utile si on partage un arbre TEX au travers d’un réseau de machines hétérogènes. La table 2 ci-dessous donne la liste des architectures pour lesquelles des binaires sont disponibles.



Table 2: Les binaires sont disponibles pour les architectures suivantes.
     alpha-linux HP Alpha GNU/Linux
     i386-darwin Intel x86 Mac OS X
     i386-freebsd Intel x86 FreeBSD
     i386-linux Intel x86 GNU/Linux
     mips-irix SGI IRIX
     powerpc-aix IBM RS/6000 AIX
     powerpc-darwin PowerPC Mac OS X
     sparc-linux Sun Sparc GNU/Linux
     sparc-solaris Sun Sparc Solaris
     win32 Windows (32-bit)
     x86_64-linux Intel x86 64-bit GNU/Linux
    

s – Base Installation scheme.
Schéma d’installation de base.
Ce menu permet de choisir un type d’installation plus ou moins complet. L’option par défaut (full) installe tout, c’est un bon choix si l’espace disque n’est pas limité. Les francophones préféreront peut-être le schéma GUTenberg, mais on peut choisir un ensemble minimal (basic) pour économiser de la place sur le disque. On trouve aussi des ensembles spécifiques pour Omega ou pour les utilisateurs d’XML.
c – Individual collections.
Collections individuelles.
Ce menu permet d’ajouter ou de supprimer des collections parmi celles retenues par le schéma choisi ci-dessus. Chaque collection — fichiers de macros TeX, familles de fontes Metafont, etc. — est formée de plusieurs composants. Attention, le programme différencie les lettres minuscules des lettres capitales pour les touches de sélection.
l – Language collections.
Collections de langues.
Ce menu fonctionne comme celui de c pour modifier le choix des langues à installer. Attention, le programme différencie les lettres minuscules des lettres capitales pour les touches de sélection.

Voici la liste des collections de langues du TEX Live (on garde ici les noms anglais des options qui sont ceux du système !) :

African (qq scripts) Arabic Armenian Chinese Japanese Korean

Croatian Cyrillic Czech/Slovak Danish

Dutch Finnish French German

Greek Hebrew Hungarian Indic

Italian Latin Manju Mongolian

Norwegian Polish Portuguese Spanish

Swedish Tibetan UK English Vietnamese

Les collections de langues comprennent normalement des fontes, macros, motifs de césure et autres fichiers. Par exemple, frenchle.sty est installé lorsqu’on sélectionne la collection French. Par ailleurs, l’installation d’une langue de la collection modifie le fichier de configuration language.dat qui contrôle quelles divisions (ou coupures de mots) sont chargées.

d – Installation directories
Choix des répertoires d’installation.
Ceci concerne les trois répertoires suivants :
TEXDIR
Répertoire de plus haut niveau sous lequel tout le reste sera installé, la valeur par défaut est /usr/local/texlive/2005. Il est conseillé de faire figurer l’année dans le nom choisi, de façon à pouvoir conserver séparément plusieurs versions de TEX Live. L’ajout d’un lien symbolique /usr/local/texlive/current qui pointe vers la version à utiliser facilitera grandement le basculement d’une version à l’autre et le retour à l’ancienne version en cas de problème.

Sous Mac OS X, les interfaces utilisateurs recherchent TEX dans /usr/local/teTeX ; plutôt que d’installer la distribution TEX Live dans ce répertoire, on pourra faire l’installation par défaut (dans /usr/local/texlive/2005 donc) et ajouter deux liens symboliques : current qui pointe vers 2005 et teTeX qui pointe vers current. Pour cela il suffit de taper les deux commandes suivantes dans un terminal :

> (cd /usr/local/texlive ; ln -s ./2005 ./current)
> (cd /usr/local ; ln -s ./texlive/current teTeX)
TEXMFLOCAL
C’est dans cette arborescence que doivent être placés les fichiers non fournis par TEX Live. La valeur par défaut est /usr/local/texlive/texmf-local. C’est l’endroit recommandé pour y mettre les classes et les fichiers de style locaux, les fontes (par exemple commerciales) non disponibles sur TEX Live ainsi que les paramètres de configuration locaux.
TEXMFSYSVAR
C’est dans cette arborescence que les scripts texconfig-sys, fmtutil-sys, updmap-sys installent les fichiers qui sont spécifiques à la version, notamment les fichiers de format. La valeur par défaut est TEXDIR/texmf-var, il n’y a en général aucune raison de la changer. Les fichiers configuration modifiables par texconfig-sys (voir section 4.1, p. 26), comme fmtutil.cnf et updmap.cfg, sont eux dans TEXMFSYSCONFIG.
o – Other Options.
Ce menu permet de choisir les options suivantes :
a
Pour spécifier un autre répertoire pour les fontes générées. La valeur par défaut utilise l’arborescence TEXMFVAR, comme on l’a dit plus haut. Si vous voulez que l’arborescence principale soit accessible en lecture uniquement, cette option permet de choisir une autre localisation (qui doit bien sûr être accessible en lecture-écriture pour tous) pour ranger les fontes créées dynamiquement.
l
Pour créer des liens symboliques pour les binaires, la documentation (man pages) ou les fichiers Info GNU. Par exemple, on peut désirer rendre la documentation de type man accessible depuis /usr/local/man et les fichiers Info depuis /usr/local/info (il faut alors bien sûr avoir les droits d’écriture dans les répertoires spécifiés).

En revanche, il est déconseillé d’utiliser cette option pour les binaires. Rendre les binaires TEX Live accessibles depuis /usr/local/bin risque de masquer définitivement, y compris pour root, les binaires TEX fournis en standard sur la plate-forme. Sous Linux par exemple, root doit utiliser par défaut les binaires teTEX fournis avec la distribution installée (Debian, Mandrake, RedHat, etc.) et non ceux fournis par TEX Live.

d
Pour ne pas installer l’arborescence de la documentation sur les fontes et les macros. Utile pour économiser de l’espace disque ou bien si la documentation a été installée auparavant à un autre emplacement.
s
Pour ne pas installer l’arborescence des fichiers source. Ceci peut être utile si cette arborescence est commune à différentes machines ou architectures, (partage par NFS ou automount par exemple).
i – Perform Installation.
Installer.
Quand les options de configuration sont satisfaisantes, on peut taper i pour lancer effectivement l’installation.

Lorsque l’installation est terminée, l’étape suivante consiste à inclure dans la variable PATH des usagers (autres que root cf. ci-dessus) le sous-répertoire de TEXDIR/bin spécifique à l’architecture de façon que les programmes nouvellement installés puissent être trouvés. Le tableau 2 (page 19) donne la liste des noms des architectures ; on peut aussi lister le contenu de TEXDIR/bin pour déterminer le nom du sous-répertoire de TEXDIR/bin à inclure en tête de PATH.

La syntaxe de cette commande et le fichier d’initialisation à utiliser dépendent du système utilisé. Pour un shell Bourne ou compatible (sh, bash, ksh, etc.), il faut mettre dans le fichier $HOME/.profile1 des futurs utilisateurs de TEX Live :

PATH=/TEXDIR/bin/archname:$PATH; export PATH

et pour un C shell (csh, tcsh), mettre dans le fichier $HOME/.cshrc :

setenv PATH /TEXDIR/bin/archname:$PATH

Sous Mac OS X ceci se peut se faire de la manière suivante, qui évite d’avoir à ouvrir un éditeur sur un fichier caché : on redevient utilisateur de base, on se place dans son répertoire personnel, en tapant dans le Terminal

> exit ; cd
On vérifie quel est le shell utilisé en tapant

> echo $SHELL
Si la réponse est bash (ou sh) le fichier à modifier est .profile, si c’est tcsh (ou csh) le fichier à modifier est .cshrc.
Cas de bash : on tape dans le terminal 2

> touch .profile
> echo "export PATH=/usr/local/texlive/2005/bin/powerpc-darwin:$PATH" >> .profile
> source .profile
Cas de tcsh : on tape dans le terminal 2

> touch .cshrc
> echo "setenv PATH /usr/local/texlive/2005/bin/powerpc-darwin:$PATH" >> .cshrc
> source .cshrc
La mise à jour de la variable PATH est terminée.

Voici un court exemple qui sélectionne une installation complète avec les binaires du système actuel seulement (on accepte tous les choix par défaut). Les RETURN sont omis ici.

> sh install-tl.sh
i                         # lancer l’installation
# Redevenir utilisateur de base (non root)
> exit ; cd
# Nouveau PATH (sous Linux, SHELL=bash, compte avec fichier .bash_profile) :
> echo "export PATH=/usr/local/texlive/2005/bin/i386-linux:$PATH" >> .bash_profile
> source .bash_profile    # faire prendre en compte le nouveau PATH

Une fois l’installation terminée et les variables d’environnement initialisées, la dernière étape consiste à exécuter texconfig ou texconfig-sys pour éventuellement modifier certains paramètres. Ceci est expliqué à la section 4.1, p. 26.

Passez maintenant à la section 4.2 pour effectuer quelques tests de bon fonctionnement.

En cas de doute, n’hésitez pas à contacter un gourou système pour vous aider à résoudre vos problèmes, tels que la façon de monter le médium TEX Live, le choix des répertoires à utiliser ou les modifications à apporter dans vos fichiers d’initialisation.

3.3 Ajouter des composants à une installation

On peut ajouter des composants individuels ou des collections de la distribution actuelle à une distribution autre que TEX Live ou à une installation plus ancienne de TEX Live. Ceci peut se faire soit à partir du DVD live soit à partir du CD inst.

Pour démarrer, il faut d’abord « monter » le médium avec les extensions Rock Ridge. La commande exacte varie d’un système à l’autre ; la commande suivante fonctionne sous Linux, mais les noms du périphérique (ici /dev/cdrom) et du point de montage (ici /mnt/cdrom) peuvent changer.
N.B. Tous nos exemples utilisent > pour les lignes de commandes (shell prompt) ; les commandes de l’utilisateur sont soulignées.

> mount -t iso9660 /dev/cdrom /mnt/cdrom

Se placer au point de montage du lecteur :

> cd /mnt/cdrom

Lancer le script install-pkg.sh (et non install-tl.sh qui n’est destiné qu’à l’installation complète) :

> sh install-pkg.sh options

Le premier jeu d’options permet de choisir ce qui sera installé :

--package=pkgname
Le composant individuel à installer.
--collection=colname
La collection individuelle à installer.
--nodoc
Ne pas installer les fichiers de documentation pour cette opération.
--nosrc
Ne pas installer les fichiers source pour cette opération.
--cddir=dir
Répertoire source d’où on lit ; par défaut le répertoire courant. Si on a suivi les instructions ci-dessus, il n’a pas besoin d’être modifié.
--listdir=dir
Ce qu’on appelle « répertoire des listes » dans cddir d’où on lira l’information sur le composant. Si on a suivi les instructions ci-dessus, il n’y a pas besoin de le modifier.

La suite des opérations est contrôlée par les options décrites ci-dessous. Si aucune n’est spécifiée, par défaut on installe les fichiers spécifiés. L’arborescence principale de destination est le répertoire père du répertoire bin affiché par la commande which tex. On peut la modifier en changeant les variables d’environnement TEXMFMAIN ou TEXMF.

--listonly
Liste les fichiers à installer mais n’installe rien du tout !
--archive=tarfile
Au lieu d’installer les fichiers dans le système TEX, crée une archive tar.

Options additionnelles :

--config
Après l’installation, exécuter texconfig init.
--nohash
Après installation, ne pas lancer mktexlsr pour reconstruire la base de données des noms de fichiers.
--verbose
Donner plus d’informations durant l’exécution des scripts.

Voici quelques exemples d’utilisation :

  1. Voir les fichiers du composant fancyhdr sans l’installer :

    > sh install-pkg.sh --package=fancyhdr --listonly

    texmf-dist/doc/latex/fancyhdr/README
    texmf-dist/doc/latex/fancyhdr/fancyhdr.pdf
    ...
  2. Installer le composant LATEX natbib :

    > sh install-pkg.sh --package=natbib
  3. Installer le composant LATEX alg sans les sources ni la documentation :

    > sh install-pkg.sh --package=alg --nosrc --nodoc
  4. Installer tous les composants dans la collection de macros additionnelles de plain TEX  :

    > sh install-pkg.sh --collection=tex-plainextra
  5. Faire une archive tar dans /tmp contenant tous les composants de pstricks :

    > sh install-pkg.sh --package=pstricks --archive=/tmp/pstricks.tar

Passez maintenant à la section 4.2 pour effectuer quelques tests de bon fonctionnement.

En cas de doute, n’hésitez pas à contacter un gourou système pour vous aider à résoudre vos problèmes, tels que la façon de monter le médium TEX Live, le choix des répertoires à utiliser ou les modifications à apporter dans vos fichiers d’initialisation.

4 À faire après l’installation

Une fois l’installation terminée il faut, quel que soit le système, configurer le système pour certains besoins locaux et faire des tests de base.

Cette phase de post-installation comprend éventuellement la prise en compte de composants, fontes ou de programmes qui n’étaient pas inclus dans TEX Live. L’idée de base est de faire les ajouts dans l’arborescence TEXMFLOCAL (si vous avez installé depuis le disque) ou dans TEXMFSYSVAR (si vous exécutez depuis le disque) ; voir « répertoires d’installation » en page 20.

Bien sûr, les détails varient d’un cas à l’autre et nous n’essayerons donc pas de les traiter ici. Voici quelques pointeurs à consulter :

4.1 Le programme texconfig

Vous pouvez utiliser le programme texconfig n’importe quand après votre installation pour reconfigurer votre système de façon à satisfaire les besoins locaux. Il peut être nécessaire de l’exécuter au moins une fois juste après l’installation si les valeurs par défaut de certains paramètres ne vous conviennent pas. Ce programme est installé avec les autres sous le répertoire propre à votre architecture TEXDIR/bin/archname, si vous n’avez pas modifié le PATH de root, il faudra le lancer (sous root) avec son chemin complet.

Si on le lance sans arguments, il entre en mode plein-écran et on peut alors voir et modifier interactivement les paramètres.

On peut aussi le lancer avec diverses options. Voici les plus courantes (la distribution TEX Live est configurée pour utiliser du papier A4 par défaut) :

texconfig paper letter
Mettre la taille par défaut du papier à letter pour les pilotes pdftex, dvips, dvipdfm, xdvi, etc.
texconfig rehash
Mettre à jour toutes les bases de données des fichiers du système TEX (à faire après tout ajout ou suppression de fichier).
texconfig faq
Afficher la FAQ sur teTEX. (voir aussi la FAQ principale de TEX dans texmf-doc/doc/english/FAQ-en sur le DVD live).
texconfig help
Obtenir de l’aide sur la commande texconfig.

Bien sûr, texconfig ne permet de changer que certaines des nombreuses options et paramètres de configuration d’un système TEX. Le fichier principal de configuration pour les programmes de la base Web2C s’appelle texmf.cnf. ; on peut trouver son emplacement en exécutant « kpsewhich texmf.cnf ». Ce fichier contient de nombreux commentaires expliquant les options par défaut et la signification des paramètres, sa lecture est recommandée.

Depuis cette année, la commande texconfig ne modifie plus les fichiers de configuration de la machine, mais ceux de l’utilisateur qui la lance ; ces fichiers sont dans le répertoire $HOME/.texlive2005 de l’utilisateur.

De même, les commandes updmap et fmtutil opèrent maintenant au niveau de l’utilisateur dans le répertoire $HOME/.texlive2005

Important : machines multi-utilisateurs. Les administrateurs installant TEX Live sur une machine multi-utilisateurs devront dorénavant utiliser les commandes texconfig-sys, updmap-sys et fmtutil-sys pour respectivement modifier la configuration, mettre à jour les fichiers .map et créer les formats au niveau de la machine. Noter qu’aucun format n’est créé à l’installation, ils sont fabriqués à la demande ; depuis cette année, le format créé par un utilisateur l’est uniquement pour lui (il est mis dans $HOME/.texlive2005). Afin d’éviter la multiplication de fichiers de formats, il y a donc lieu créer au moins les formats les plus utilisés au niveau du système à la fin de l’installation par la commande fmtutil-sys. Le plus simple est de les créer tous (c.-à-d. ceux qui figurent dans le fichier fmtutil.conf) par

> fmtutil-sys --all
De plus, ceux qui ont des fichiers de configuration spécifiques fmtutil.cnf ou updmap.cfg devront les placer dans l’arborescence pointée par la nouvelle variable TEXMFSYSCONFIG, faute de quoi ces fichiers ne seront pas trouvés par les scripts fmtutil-sys et updmap-sys. Si les fichiers fmtutil.cnf et updmap.cfg propres à la machine sont, par exemple, dans $TEXMFLOCAL, rien n’empêche de définir TEXMFSYSCONFIG comme $TEXMFLOCAL, mais il faut le faire explicitement dans le fichier texmf.cnf.

Rappelons que la commande texconfig conf retourne les valeurs des variables TEXMFSYSCONFIG, TEXMFLOCAL, etc., et que l’utilisation des différentes arborescences texmf a été décrite à la section 2.3 p. 9.

4.2 Tester l’installation

Une fois l’installation de TEX Live terminée, il faut la tester avant de créer des documents ou des fontes. Les tests doivent être faits par un utilisateur non privilégié (autre que root).

On donne ici quelques procédures de base pour vérifier que le nouveau système est opérationnel. On les décrit pour Unix ; pour Mac OS X ou Windows, il vaut mieux tester au travers d’une interface graphique, mais les principes sont les mêmes.

  1. S’assurer en premier lieu que le programme tex fonctionne :

    > tex --version
    TeX 3.141592 (Web2C 7.5.5)
    kpathsea version 3.5.5
    ...

    Si on récupère un command not found au lieu d’informations comme le numéro de version et le copyright, il est fort probable que vous n’avez pas le bon répertoire bin dans votre PATH. Voir les informations sur l’environnement page 21.

  2. Traiter un fichier LATEX simple :

    > latex sample2e.tex
    This is pdfeTeXk, Version 3.141592...
    ...
    Output written on sample2e.dvi (3 pages, 7496 bytes).
    Transcript written on sample2e.log.
    Si ça échoue en cherchant sample2e.tex ou d’autres fichiers, il y a peut-être des interférences entre vos anciennes variables d’environnement ou fichiers de configuration. Pour analyser en détail votre problème, vous pouvez demander à TEX de dire exactement ce qu’il cherche et trouve ; voir « Actions de débogage » page 66.
  3. Prévisualiser les résultats en ligne :

    > xdvi sample2e.dvi
    Sous Windows, la commande équivalente est Windvi. Une nouvelle fenêtre doit s’ouvrir et montrer un document expliquant les bases de LATEX (document à lire d’ailleurs si vous êtes débutant !). Vous devez tourner sous X pour que xdvi fonctionne. Sinon, votre variable d’environnement DISPLAY n’est pas correcte et vous aurez une erreur « Can’t open display ».
  4. Créer un fichier PostScript pour l’imprimer ou l’afficher :

    > dvips sample2e.dvi -o sample2e.ps
  5. Créer un fichier PDF au lieu de DVI ; cet exemple traite le fichier sample2e.tex et crée directement du PDF :

    > pdflatex sample2e.tex
  6. Prévisualiser le fichier PDF :

    > gv sample2e.pdf
    ou
    > xpdf sample2e.pdf

    Hélas, ni gv ni xpdf ne sont actuellement inclus dans TEX Live, aussi devez-vous les installer séparément si ce n’est déjà fait. Voir respectivement http://www.gnu.org/software/gv et http://www.foolabs.com/xpdf.

  7. Autres fichiers de tests utiles :

    small2e.tex
    Un document plus simple à compiler que sample2e si celui-ci pose des problèmes.
    testpage.tex
    Teste que l’imprimante n’introduit pas de décalages.
    nfssfont.tex
    Imprime des tables de fontes et des tests.
    testfont.tex
    Aussi pour les tables de fontes, mais en (plain) TEX.
    story.tex
    Le fichier de test de (plain) TEX le plus canonique de tous. Il faut taper « \bye » à la commande * après « tex story.tex ».

    Pour exécuter ces tests procéder comme on l’a fait pour sample2e.tex.

Si vous êtes débutant ou si vous avez besoin d’aide pour réaliser des documents TEX ou LATEX, n’hésitez pas à consulter http://tug.org/begin.html. On vous recommande également l’introduction à LATEX de Tobias Oetiker dans sa version française disponible ici : http://daniel.flipo.free.fr/doc/dfshort/

5 Installation pour Mac OS X

TEX Live traite Mac OS X, mais pas les versions antérieures des Macintosh.

On peut installer TEX sous Mac OS X de deux façons :

  1. Utiliser la nouvelle distribution, appellée MacTEX, disponible depuis cette année sur le DVD live ; elle se trouve dans le répertoire mactex/, voir section 5.1. C’est la méthode recommandée.
  2. Utiliser les commandes install* comme pour Unix (lire d’abord la section 5.2 ci-dessous pour les spécificités Mac OS X puis la section 3).

Par ailleurs, l’utilisation de TEX sous Mac OS X se fait normalement par le biais d’une interface graphique (frontend), comme expliqué ci-dessous à la section 5.3.

5.1 Installation de MacTEX

La distribution MacTEX est une variante de TEX Live complétée par de nombreuses applications et de la documentation spécifique. Elle dispose de son propre installeur intégré.

Le site de référence pour MacTEX est http://tug.org/mactex.

5.2 install*.sh : installation depuis TEX Live

Le système Mac OS X est un Unix (presque) comme les autres, mais Apple cache soigneusement ce fait, ce qui ne facilite pas l’installation de logiciels comme TEX Live.

Nous allons essayer de décrire en détail la procédure d’installation. La première chose à faire est d’ouvrir une fenêtre « Terminal ». L’application « Terminal » se trouve dans le répertoire /Applications/Utilitaires, elle est accessible à partir du menu principal en haut de l’écran.

Ensuite, nous allons vérifier si l’interpréteur de commandes (ou shell en anglais) bash est présent ou non. Pour cela, taper dans la fenêtre « Terminal » la commande suivante :

> which bash
Si le shell bash est présent (cas des versions de 10.2 et suivantes de Mac OS X) la réponse sera un chemin, par exemple /bin/bash. Si la réponse est command not found, vous avez une version antérieure à 10.2, sur laquelle bash n’est pas installé par défaut. Vous devrez alors récupérer le shell bash sur internet (par exemple ici : http://tug.org/texlive/bash.dmg) et l’installer... ou mieux, mettre à jour votre version de Mac OS X.

Supposons désormais le shell bash présent. Il faut maintenant « passer root », c’est-à-dire se donner le pouvoir d’effectuer des opérations normalement interdites aux utilisateurs de base. Ceci se fait en tapant dans le « Terminal » la commande :

> sudo su -

Mettre le CD inst ou le DVD live dans le lecteur, son contenu devient automatiquement accessible sous le répertoire /Volumes. On tape ensuite dans le « Terminal » les commandes :

> cd /Volumes/texlive2005
> sh install-tl.sh
pour se placer à la racine de l’image disque montée et y lancer le script d’installation. Il suffit ensuite de suivre la documentation d’installation de la section 3.2 p. 16 où des notes spécifiques pour Mac OS X ont été incluses si nécessaire.

5.3 Interfaces graphiques pour Mac OS X

Normalement, l’utilisation de TEX sur un Macintosh se fait à travers une interface graphique, comprenant un shell d’exécution, un éditeur, un prévisualiseur et d’autres outils (on échappe toutefois difficilement à l’utilisation de « Terminal » dès que l’on veut réaliser des tâches un tant soit peu évoluées...).

Voici les principales interfaces disponibles :

TeXShop
Inclus dans TEX Live sous ./MacOSX/texshop.dmg.
Voir http://www.uoregon.edu/~koch/texshop/texshop.html.
ITeXMac
Inclus dans TEX Live sous ./MacOSX/iTM-*.dmg.
Voir http://itexmac.sourceforge.net.
Mac-emacs
Une adaptation d’Emacs à Mac OS X, avec AucTeX inclus.
Voir http://www.cs.man.ac.uk/~franconi/mac-emacs.

Si vous choisissez d’utiliser TeXShop ou ITeXMac, il sera nécessaire de donner à ces logiciels les informations concernant le PATH :

TeXshop
Lancer l’application et ouvrir le panneau préférences (menu TeXShop). Sélectionner l’onglet « Moteur » et modifier la première ligne en saisissant votre PATH, par exemple : /usr/local/texlive/2005/bin/powerpc-darwin.
ITeXMac
Lancer l’application et ouvrir le panneau préférences (menu ITeXMac). Sélectionner le bouton « Assistant teTeX », puis l’onglet « TeX » et cliquer sur le bouton radio « Autre ». Saisir alors votre PATH, par exemple : /usr/local/texlive/2005/bin/powerpc-darwin.

6 Installation sous Windows

Cette année la distribution TEX Live inclut de nouveau un installeur pour Windows qui s’appelle tlpmgui.

Note du traducteur : à titre personnel, je ne recommande pas l’installation sous Windows à partir de tlpmgui, sauf aux utilisateurs qui connaissent bien TEX Live sous Unix et veulent avoir sous Windows une distribution aussi proche que possible de celle-ci.

Deux autres pistes, non basées sur la distribution TEX Live, me semblent plus adaptées :

  1. soit installer la distribution ProTEXt à partir du DVD live ou du CD spécifique, elle est basée sur MiKTEX distribution très appréciée sous Windows ;
  2. soit, télécharger XEmTEX (200 Mo) sur http://www.xemtex.org/. C’est la distribution Windows qui remplace fpTEX, elle est maintenue par Fabrice Popineau et construite autour de l’éditeur XEmacs. Les outils DVI sont supprimés, le format de sortie est PDF ou HTML uniquement.

    XEmTEX, bien que totalement gratuit, inclut des programmes qui ne sont pas libres au sens Debian, c’est ce qui empêche malheureusement XEmTEX de figurer dans la distribution TEX Collection.

Si vous décidez d’opter pour ProTEXt ou pour XEmTEX vous pouvez sauter toute cette section.

tlpmgui propose essentiellement les mêmes options que le script install-tl.sh sous Unix mais dans une interface graphique : sélection des schémas, choix des collections, etc., se reporter à la section 3.2 p. 16. Certaines manipulations telles que l’ajout ou la suppression de composants, la mise à jour des bases de données et la constructions de formats sont également possibles. De plus, tlpmgui offre la possibilité d’utiliser TEX Live depuis le DVD live (sans l’installer sur le disque dur).

Pour les connaisseurs, tlpmgui repose sur le programme tlpm accessible en ligne de commande Windows.

Les binaires pour Windows sont empruntés à la distribution XEmTEX, qui a succédé à fpTEX (voir http://www.metz.supelec.fr/~popineau/xemtex-1.html). Certains binaires de l’ancienne distribution fpTEX ont été conservés, comme Windvi, le visualiseur dvi similaire à xdvi sous Unix. La documentation sur Windvi se trouve dans texmf/doc/html/windvi/windvi.html.

TEX Live peut être installé sur les systèmes Windows 9x, ME, NT, 2K or XP. Il ne fonctionne pas avec les versions plus anciennes Windows (3.1x) et MS-DOS.

Attention : Les utilisateurs de Windows 9x doit vérifier qu’il disposent d’assez d’espace pour les variables d’environnement. Le programme tlpmgui.exe crée un certain nombre de variables d’environnement, si l’espace manque ajouter SHELL=<path>COMMAND.COM /E :4096 /P dans le fichier config.sys.

6.1 Installation sous Windows depuis le CD inst

Le programme tlpmgui devrait démarrer automatiquement dès l’insertion du CD inst dans le lecteur de CD. Si ce n’est pas le cas, cliquer sur StartRun puis taper <cdrom␣drive␣letter>:\setup-win32\tplmgui.exe — resp. <drive␣letter>:\texlive\setup-win32\tplmgui.exe si vous installez à partir du DVD live — où <cdrom␣drive␣letter> désigne la lettre correspondant au lecteur de CD ; cliquer ensuite sur OK.

La fenêtre intitulée TeX Live installation and maintenance utility devrait s’ouvrir. Elle propose les options suivantes : Main customization, Install, Select a scheme, Select systems, Directories et Options.

Dans la section Directories, le nom du lecteur de CD/DVD (par exemple F :/) devrait apparaître à côté du bouton CD/DVD. S’il n’est pas affiché utiliser ce bouton pour sélectionner le lecteur de CD/DVD contenant TEX Live.

Il est possible de choisir le répertoire devant contenir la distribution TEX Live en cliquant sur le bouton TLroot(la variable TLroot contiendra le nom de ce répertoire). Le contenu des variables d’environnement TEXMFTEMP et TEXMFCNF est affiché à côté des boutons TEXMFTEMP et TEXMFCNF, il sera mis à jour automatiquement pendant l’installation (il est possible de le modifier en cas de besoin particulier).

La section Select a scheme permet, comme sous Unix, de choisir le schéma de base souhaité pour l’installation (complète, GUTenberg, etc.) : utiliser le bouton radio pour faire ce choix et le bouton Info pour une description du schéma sélectionné.

Il est possible de personnaliser le schéma choisi en lui ajoutant ou en supprimant certaines de ses composantes (appelées collections). Ceci se fait en utilisant les boutons Standard collections et Language collections (choix des langues utilisables) dans Main customization.

Remarque : Les collections Ghostscript, Perl et Wintools sont sélectionnées par défaut. elles doivent être installées... sauf si elles l’ont été par ailleurs. Les variables d’environnement PERL5LIB et GS_LIB doivent aussi être initialisées.

Finalement, cliquer sur le bouton Install dans la section Install pour lancer le processus d’installation.

Laisser le processus se poursuivre jusqu’à l’affichage du message annonçant que l’installation a réussi (un certain nombre d’étapes sont nécessaires, comme la création des formats, la mise à jour des bases de données, etc. ce qui peut prendre un certain temps).

Le raccourci tlpmgui sera ajouté dans le menu StartProgramsTeXLive2005.

Si nécessaire (Windows 9x/WinME), il vous sera demandé de redémarrer l’ordinateur.

6.2 Programmes auxiliaires pour Windows

Pour être complète, une installation TEX Live a besoin de programmes auxiliaires qu’on ne trouve pas fréquemment sur une machine Windows. De nombreux scripts sont écrits en Perl. Certains outils importants utilisent l’interpréteur PostScript Ghostscript pour afficher ou convertir les fichiers. Il faut aussi dans certains cas une boîte à outils graphique. Enfin, un éditeur orienté TEX facilite la saisie de fichiers TEX.

Tous ces outils sont assez faciles à trouver pour TEX, mais pour essayer de vous rendre la vie plus facile, nous avons incorporé des outils de ce type dans TEX Live :

Ces programmes sont empruntés à la distribution XEmTEX.

Si vous préférez ne pas installer les outils inclus dans TEX Live, vous êtes libre d’installer les outils nécessaires pour compléter votre système TEX Live ; voici une liste des adresses où les obtenir :

GhostScript
http://www.cs.wisc.edu/~ghost/
Perl
http://www.activestate.com/ (mais il vous faudra peut-être chercher des bibliothèques supplémentaires sur CPAN, http://www.cpan.org/)
ImageMagick
http://www.imagemagick.com
NetPBM
Vous pouvez aussi utiliser NetPBM à la place de ImageMagick pour traiter ou convertir vos fichiers graphiques. La page d’accueil de NetPBM est http://netpbm.sourceforge.net/
Éditeurs orientés TEX
Il y a un large choix, et cela dépend des préférences de l’utilisateur. En voici une sélection :

Il est aussi possible d’installer d’autres outils qui ne sont pas libres 3 comme GSView, le programme compagnon de GhostScript pour afficher plus facilement les fichiers PS/PDF. GSView est disponible à l’url http://www.cs.wisc.edu/~ghost/gsview/ ou sur tout site CTAN.

7 Maintenance sous Windows

Une fois la distribution TEX Live installée, vous pouvez vous servir du programme tlpmgui pour modifier ou compléter votre installation.

7.1 Ajouter ou supprimer des composants

Le raccourci tlpmgui du menu StartProgramsTeXLive2005 permet de lancer le programme et affiche la fenêtre TeX Live installation and maintenance utility. Les sections à utiliser sont Add Packages (ajout de composants), Remove packages (suppression de composants), Manage installation (maintenace), Remove installation (suppression totale de TEX Live).

Cliquer sur Add packages ou Remove packages, puis

7.2 Configuration et maintenance

La section Manage the installation permet d’effectuer les opérations courantes de configuration et de maintenance.

Voici la liste des actions possibles :

Il faut sortir de la fenêtre d’édition en cliquant sur le bouton Done pour que les mises à jour des formats, fichiers .map, base ls-R soient effectuées.

Les autres possibilités de configuration sont décrites à la section 7.8, p. 38.

7.3 Désinstallation complète de TEX Live

L’option Remove the TeX Live installation permet de supprimer toute la distribution TEX Live.

Attention, ce que vous avez éventuellement installé dans le répertoire texmf-local ne sera pas supprimé ; le contenu du répertoire setup-win32 doit être également nettoyé à la main si nécessaire.

7.4 Ajouter des composants à votre système

Tout d’abord, quelles que soient les modifications faites, n’oubliez pas de reconstruire les fichiers ls-R de bases de données, sinon les nouveaux fichiers ne seront jamais retrouvés. Pour cela, vous pouvez soit utiliser le programme tlpmgui, option Manage the installation, soit lancer manuellement la commande mktexlsr.

Si vous choisissez d’ajouter des fichiers qui ne proviennent pas de la distribution TEX Live (ou fpTEX), il est fortement recommandé de les mettre dans le répertoire $TEXMFLOCAL. De cette manière, vous serez certain qu’il n’y aura pas de problème lors d’une mise à jour de TEX Live.

L’arborescence pointée par $TEXMFLOCAL est initialement vide. Si vous souhaitez y ajouter par exemple les fichiers de style pour le logiciel de calcul formel Maple, vous devrez mettre ces fichiers dans le répertoire C:\TeXLive2005\texmf-local\tex\latex\maple et les fichiers de documentation dans C:\TeXLive2005\texmf-local\doc\latex\maple

7.5 Exécution de tlmp.exe en ligne de commande

Le programme tlpm.exe utilisé par tlpmgui possède de nombreuses options utiles dont la liste est donnée par

  tlpm --help

Consulter le fichier tlpm.readme pour plus de renseignements et des exemples.

7.6 Installation en réseau

Kpathsea est compatible avec les noms UNC, ceux-ci peuvent donc être utilisés pour récupérer l’arborescence TEXMF depuis le réseau. Mais encore mieux, tous les fichiers, y compris ceux de configuration et excepté les binaires dans bin/win32, sont compatibles et partageables avec teTEX ou le TEX Live Unix. Cela signifie que vous pouvez utiliser Samba, soit pour monter la distribution Unix sur un client Windows, ou un client Unix depuis un serveur NT. Plusieurs stratégies sont possibles :

7.7 Différences entre la version Windows et la version Unix de TEX Live

La version Windows de Web2C possède quelques spécificités qui méritent d’être notées.

Kpathsea
Les tables de hachage 4 que Kpathsea construit (à partir des fichiers ls-R entre autres) sont très volumineuses pour le TEX Live. Dans le but de diminuer le temps d’initialisation des applications qui utilisent Kpathsea, ces tables ont été mises en mémoire partagée. De cette manière, quand vous exécutez des chaînes de programmes, telles que tex qui appelle mpost qui appelle tex, le temps d’initialisation de chaque sous-programme est diminué (sauf pour le premier). Ce comportement est invisible pour l’utilisateur, sauf si celui-ci positionne le niveau de trace de Kpathsea à la valeur -1 : dans ce cas, tout accès au bloc de mémoire partagée est tracé, ce qui n’est pas souhaitable (les programmes accèdent très souvent à ce bloc !). Cette situation évoluera probablement dans le futur.
kpsecheck
Cette commande fournit des fonctionnalités qui ne rentraient pas bien dans kpsewhich. En particulier, elle permet de lister tous les fichiers qui apparaissent plusieurs fois à travers les multiples arborescences texmf/. Ceci à l’air pratique, sauf qu’en réalité, la sortie est polluée par des occurrences multiples de fichiers qui ne sont pas utiles à TEX à proprement parler (commes des dizaines de fichiers README) 5. Pour cette raison, vous pouvez combiner l’option -multiple-occurences avec deux autres options pour inclure ou exclure de la recherche tout fichier conforme à un certain motif (plusieurs motifs d’inclusion ou d’exclusion peuvent être spécifiés).

La commande kpsecheck peut aussi indiquer le statut d’utilisation de la mémoire partagée : en utilisation ou non-utilisée. Cette information peut être très utile, car si le statut rapporté est « en utilisation », cela signifie qu’un ou plusieurs processus tournent et utilisent le bloc de mémoire partagée. Dans ce cas, une réinitialisation des tables de hachage basée sur les fichiers ls-R, comme la commande mktexlsr l’effectue, sera automatiquement repoussée jusqu’à ce que tous les processus utilisant la version courante en mémoire partagée soient terminés. Il est prévu d’enlever cette limitation dans une version future, mais la version actuelle de Kpathsea ne permet pas de faire facilement cette réinitialisation.

Enfin, la même commande kpsecheck peut indiquer l’endroit où Kpathsea pense pouvoir trouver la Dll de Ghostscript. En effet, sous Win32, il est souvent plus simple de travailler directement avec la Dll de Ghostscript, et de la trouver en utilisant la clé appropriée dans la base de registre, que d’utiliser gswin32c.exe et de modifier le PATH qui a une longueur limitée.

Web2C
Les moteurs TEX ont quelques options supplémentaires par rapport à la version standard, et une option dont le comportement diffère de la version standard :

7.8 Personnalisation de l’installation

7.8.1 Dvips

Le fichier de configuration de dvips se trouve par défaut en C:\TeXLive2005\texmf-var\dvips\config\config.ps. Il peut être ouvert avec n’importe quel éditeur de texte pour modifier certains paramètres :

fontes
vous pouvez changer la résolution et le mode de l’imprimante à laquelle sont destinés vos fichiers dans le cas où dvips aurait besoin de générer des fontes bitmap. Par défaut, les fontes Type1 CM interpolées sont utilisées, et donc mktexpk ne devrait pas être appelé trop souvent.
imprimante
vous pouvez spécifier où se fera l’impression par défaut. Si l’option ‘o’ n’est pas suivie d’un nom d’imprimante, un fichier est créé avec l’extension .ps. Sinon, vous pouvez spécifier un nom d’imprimante tel que :
  o lpt1:
  % o | lpr -S server -P myprinter
  % o \\server\myprinter

papier
vous pouvez changer le format de papier retenu par défaut (A4), par exemple en format US letter, le premier format mentionné. Allez vers les lignes débutant par @. Déplacez les lignes adéquates, ainsi le fichier commencera par les lignes qui suivent.
  @ letterSize 8.5in 11in
  
  @ letter 8.5in 11in
  @+ %%BeginPaperSize: Letter
  @+ letter
  @+ %%EndPaperSize

La distribution TEX Live courante intègre la procédure permettant d’avoir toujours des fichiers fontmaps à jour pour Dvips et PdfTeX. C’est le programme updmap qui le fait durant l’installation, comme lors de l’ajout de collection de fontes. Si vous ajoutez de nouvelles fontes à la main, éditez le fichier updmap.cfg dans $TEXMFVAR/web2c.

7.8.2 PdfTeX

Si le programme pdflatex est utilisé pour écrire directement en format PDF et qu’on utilise du papier au format US letter-size, éditer le fichier C:\TeXLive2005\texmf-var\tex\generic\config\pdftexconfig.tex et modifier « \page_width » et « \page_height ». Ces entrées doivent être :

\pdfpagewidth=8.5 true in \pdfpageheight=11 true in

Sauvegarder le fichier et sortir de l’éditeur.

7.8.3 Gsview

GSView est maintenant distribué sous licence Aladdin et n’est donc plus inclus dans TEX Live.

Si vous voulez changer le format du papier, ouvrez GSView à partir du menu Démarrer et sélectionnez MediaLetter. Le sous menu Display Settings vous permet également d’améliorer la netteté du rendu en positionnant les deux valeurs Text Alpha et Graphics Alpha à 4 bits.

Pour ce qui est de l’impression, consulter la sous-section 7.10.

Les fichiers .ps et .eps seront automatiquement ouverts par GSView.

7.8.4 Windvi

Le programme tlpmgui associe automatiquement les fichiers de suffixe .dvi au programme Windvi mais il ne crée pas d’icône sur le bureau pour Windvi, il faut le faire à la main.

Lancer Windvi en double cliquant sur l’icône ou à partir de la ligne de commande.

Pour sélectionner un format de papier US Letter, allez dans le menu ViewOptionsPapertype et sélectionnez « US (8.5"x11") » dans la liste déroulante Paper Type. Cliquez OK et fermez Windvi.

La première fois que vous ouvrirez un fichier .dvi, vous pouvez trouver le facteur de zoom trop important ; réduisez-le en tapant sur la touche « moins » du clavier numérique jusqu’à ce qu’il soit à votre goût.

Vous pouvez modifier le format de papier dans les options de Windvi (menu View, Options) ainsi qu’un certain nombre d’autres paramètres comme par exemple la capacité à exécuter des commandes système spécifiées dans le document (désactivé par défaut pour des raisons de sécurité).

Les paramètres de Windvi sont enregistrés dans un fichier de nom windvi.cnf. Vous pouvez le localiser de la manière suivante :

  C:\>kpsewhich --expand-var $HOME/windvi.cnf

Si vous avez des problèmes avec Windvi, il est conseillé d’effacer le fichier de configuration, puis de refaire un test dans la configuration par défaut.

7.9 Tests

Pour des procédures génériques de vérification, voir section 4.2, page 27. Cette section décrit les tests spécifiques à Windows.

Vous pouvez tester l’installation en ouvrant le fichier sample2e.tex dans votre éditeur (XEmacs, WinShell) qui se trouve dans C:\TeXLive2005\texmf-dist\tex\latex\base. Le source LATEX doit apparaître à l’écran. Compilez-le en cliquant sur le menu (XEmacs) CommandLaTeX ou sur l’icône LATEX (WinShell) dans la barre d’outils, ensuite affichez-le en cliquant sur le menu (XEmacs) CommandView DVI ou sur l’icône Preview (Windvi).

La première fois que vous afficherez un document avec Windvi, il va créer les fichiers de fontes bitmaps qui ne sont pas installées. Après avoir visualisé quelques fichiers, vous aurez créé la plupart de ces fichiers et vous ne verrez plus souvent apparaître la fenêtre de création de fontes.

En cas de problèmes, reportez-vous à la sous-section 7.12.

7.10 Impression

Il est possible d’imprimer depuis Windvi. Dans ce cas, l’impression utilise le pilote unifié d’impression de Windows, il est donc par définition compatible avec toutes les imprimantes. Cependant, il y a un inconvénient : cette impression génère des fichiers (spool) très importants, quelques versions anciennes de Windows le supportent mal. L’avantage est que vous pouvez tirer parti de l’impression d’images BMP ou WMF par exemple. Il faut également faire bien attention à ce que les paramètres de l’imprimante soient correctement définis (sous-section 7.8.4) sous peine d’avoir un effet d’échelle (imprimer à 600 dpi sur une imprimante qui fait réellement 300 dpi aboutit à n’avoir qu’un seul quart de la page visible).

L’impression est souvent plus rapide en utilisant dvips, puis en imprimant le fichier .ps depuis GSView. Pour imprimer depuis GSView, sélectionner Print. . . dans le menu File. Une fenêtre de dialogue pour l’impression apparaît.

Si vous utilisez une imprimante PostScript, soyez sûr de sélectionner PostScript Printer en choisissant cette option dans Print Method en bas à gauche de la boîte de dialogue, faute de quoi l’impression échouera. Vous pouvez ensuite sélectionner une imprimante quelconque parmi celles installées.

Si vous utilisez une imprimante qui ne supporte pas PostScript, sélectionnez Ghostscript Device dans Print Method. Ensuite cliquez sur le bouton djet500 et sélectionnez votre imprimante.

7.11 Trucs et astuces à propos de la plate-forme Win32

7.11.1 Différentes déclinaisons de Win32

Ce que recouvre la dénomination Win32 n’est pas un système d’exploitation. C’est un ensemble de fonctions très vaste (environ 12000 fonctions dans les fichiers d’en-tête du SDK Microsoft) que vous pouvez utiliser pour écrire des programmes pour différentes versions des systèmes d’exploitation de la famille Windows.

Windows se décline en plusieurs versions :

Windows 9x peut faire tourner des programmes 32 bits et des programmes 16 bits en même temps. Mais le système d’exploitation lui-même n’est pas entièrement écrit en mode 32 bits et ne fournit pas une protection mémoire entre les applications : les applications 16 bits peuvent écraser des parties du système d’exploitation en mémoire ! Des parties du système telles que le GDI (Graphical Device Interface) ne se voient allouer que des ressources de taille très limitée pour gérer les bitmaps, les pinceaux et les polices, et ces ressources sont allouées de manière globale pour tous les programmes qui tournent de manière concurrente. Par exemple, toutes les entêtes de bitmaps utilisés par tous les programmes qui tournent simultanément ne doivent pas requérir plus de 64 ko de mémoire. Ceci explique le comportement du moniteur de performance et le fait que vous pouvez mettre votre système à genoux en utilisant de manière intensive les objets graphiques.

NT, 2K et XP ne souffrent pas de ces limitations, ni d’aucune autre limitation de Windows 9x. Ce sont de vrais environnements multitâches, avec une vraie mémoire protégée. Ils répondent de manière plus fluide que Windows 9x de par leur meilleure gestion de la mémoire, leur système de gestion de fichiers plus performant, etc.

7.11.2 La ligne de commande

Vous allez demander : mais pourquoi diable devrais-je me préoccuper d’une ligne de commande alors que j’ai Windows ?

Bonne question. Le problème est de nature très générale. Toutes les opérations ne peuvent pas être accomplies très facilement à l’aide de la seule interface graphique. La ligne de commande vous donne la puissance de la programmation – si vous avez un bon interpréteur de commandes.

Mais le problème est plus fondamental : TEX est un outil qui fonctionne en batch, de manière non-interactive. TEX a besoin de calculer la meilleure mise en page pour chaque page, de résoudre les références croisées, etc. Ceci ne peut être réalisé que par un traitement global du document. Ce n’est pas encore une tâche qui peut être réalisée interactivement.

Ceci implique que vous devriez utiliser TEX depuis la ligne de commande. En fait la situation n’est pas si catastrophique. Il y a un avantage à écrire des outils en ligne de commande pour des tâches complexes : ils sont bien plus fiables, parce qu’ils n’héritent pas de la complexité inhérente aux interfaces graphiques. Il est ensuite possible de concevoir des outils graphiques qui servent d’interface aux outils en ligne de commande. C’est le cas de TEX : vous interagirez avec lui la plupart du temps au travers d’un éditeur de textes qui possède une interface graphique.

Cependant, il se peut que vous ayez besoin d’utiliser la ligne de commande dans certaines situations. Par exemple en cas de problèmes, parce que vous avez besoin de trouver une erreur dans votre installation – voir la section 7.12.

Windows 9x, WinME
Vous ouvrirez une ligne de commande soit en cherchant l’icône MS-DOS dans le menu « DémarrerProgrammes », soit en choisissant « DémarrerExécuter », puis en tapant command.com .
NT, 2K, XP
Vous ouvrirez une ligne de commande en cherchant « Invite de commandes » dans le menu « DémarrerAccessoires » (ces emplacements peuvent changer d’une version de Windows à l’autre). Vous pouvez aussi choisir le menu « Démarrer -> Exécuter » et taper cmd.exe, qui est le nom du nouvel interpréteur de commandes pour NT.

7.11.3 Les séparateurs de chemins

L’API Win32 admet les deux caractères / et \ comme séparateurs pour les noms de fichiers. Mais pas les interpréteurs de commande ! Donc, chaque fois qu’un nom de fichier est utilisé par un programme, vous pouvez utiliser l’un ou l’autre séparateur, mais sur la ligne de commande, vous devez utiliser \ comme unique séparateur. Ce qui explique que vous pouvez taper :

   C:\>set TEXMFCNF=C:/Program Files/TeXLive/texmf-var/web2c

mais pas :

  C:\>dir "C:/Program Files/TeXLive"

Dans le premier cas, seuls des programmes utiliseront le chemin que vous avez fourni, dans le deuxième cas, c’est l’interpréteur de commandes qui va vouloir s’en servir directement.

Tout ceci pour dire, ne soyez pas surpris de voir des noms de fichiers écrits avec des / en guise de séparateurs, à la mode Unix ; fpTEX est un portage de Web2C, dont l’objectif est d’être compatible avec toutes les plates-formes. Pour cette raison, les fichiers de configuration utilisent la convention Unix des séparateurs dans les noms de fichiers.

7.11.4 Les systèmes de gestion de fichiers

Une des plus mauvaises caractéristiques de Windows 9x vis-à-vis de TEX est probablement ce qu’on appelle le système de fichiers FAT. TEX utilise une myriade de petits fichiers dont la taille varie entre 1 ko et 5 ko. Le système FAT est ancien et date d’une époque bien antérieure à l’apparition des disques de plusieurs Go qui sont monnaie courante aujourd’hui. Tout ceci pour dire qu’il n’est pas possible de gérer efficacement les dizaines de fichiers de TEX Live sur un disque dur formaté en FAT. Les fichiers se voient allouer chacun 32 ko au minimum, donc l’installation de TEX Live utilise beaucoup plus de place que nécessaire.

Le seul moyen d’éviter ce problème consiste à passer en FAT32 ou NTFS. Ces systèmes sont plus récents et n’ont pas l’inconvénient de FAT. La taille des clusters par défaut y est de 4 ko, leur accès est plus performant. NTFS est protégé, redondant et on peut même ajuster la taille des clusters jusqu’à un minimum de 512 octets à la création.

7.11.5 Comment ajouter un répertoire à votre PATH

Il existe dans votre système des variables qui agissent un peu comme des variables globales à tous vos programmes. On appelle cet ensemble de variables l’environnement. Chaque programme hérite à son démarrage d’une copie de l’environnement. Il peut modifier les valeurs des variables, ajouter ou enlever des variables, mais les modifications ne sont effectives que pour sa propre copie et ne sont pas propagées aux autres programmes, sauf à ceux qu’il lance lui-même.

Votre variable PATH est une variable spéciale de l’environnement utilisée pour chercher les programmes lorsque vous en demandez l’exécution. Il y a une procédure différente pour modifier cette variable selon que vous êtes sous Windows 9x, ME ou NT/2K/XP.

Windows 95/98
Éditez votre fichier autoexec.bat. Dans ce fichier, vous trouverez une ligne commençant par PATH= et suivie par une liste de répertoires séparés par des points-virgules. Ajoutez le répertoire contenant les programmes exécutables au bout de cette ligne. Cette ligne ressemble alors à la suivante :
  PATH=C:\windows;C:\windows\system;C:\TeXLive2005\bin\win32

Les modifications ne prendront effet qu’après redémarrage de la machine.

Windows ME
Vous devez utiliser le programme C:\windows\system\msconfig.exe pour pouvoir modifier une des variables d’environnement. Dans ce programme, choisissez l’onglet Environnement, ensuite ajoutez ou modifiez la variable de votre choix. Il faut alors redémarrer la machine pour que les modifications prennent effet.
Windows NT/2K/XP
Ouvrez le Panneau de Contrôle, accessible depuis le menu Démarrer ParamètresPanneau de Contrôle. Ouvrez l’icône Système, la fenêtre des Propriétés système s’ouvre. Choisissez l’onglet Environnement ou cherchez un bouton Variables d’environnement parmi les différentes boîtes de dialogue offertes. Vous pouvez maintenant modifier vos propres variables d’environnement. Il est à noter que les variables d’environnement système communes à tous les utilisateurs sont également affichées. Vous ne pouvez les modifier que si vous avez les droits d’administrateur. Si c’est le cas, vous pouvez modifier la variable PATH pour tous les utilisateurs du système – mais vous devez savoir précisément ce que vous faites.

S’il y a déjà un PATH défini pour votre compte utilisateur, cliquez dessus. Dans le champ Variable apparaît PATH et dans le champ Valeur, la liste courante de répertoires séparés par des points-virgules. Ajoutez les répertoires où se trouvent vos exécutables (i.e. C:\TeXLive2005\bin\win32). Si la variable PATH n’est pas encore définie, il suffit de taper son nom dans le champ Variable et la valeur initiale que vous souhaitez lui donner dans le champ Valeur. Important : cliquez sur le bouton Appliquer avant de cliquer sur Ok, de cette façon, les modifications seront propagées immédiatement à la session courante. Soyez prudent quand vous modifiez les variables d’environnement.

Le meilleur moyen de savoir si une variable a été correctement définie consiste à ouvrir une console et à taper

  set VARIABLE

la valeur correspondante doit alors être affichée..

7.11.6 Les moteurs TEX

En lisant la documentation de Web2C, on voit que les différents programmes dérivés de TEX utilisent le même moteur de base. Par exemple, tex.exe et latex.exe sont des copies exactes du même programme, mais chacun utilise un fichier de format différent, en se basant sur le nom par lequel il a été invoqué.

Sous Unix, ce mode de fonctionnement est réalisé en faisant appel aux liens symboliques. On peut ainsi économiser un peu d’espace disque, car plusieurs moteurs de base sont utilisés avec différents fichiers de format.

L’API Win32 ne connaît pas les liens symboliques. Dans le but d’économiser presqu’autant d’espace disque, tous les moteurs TEX de base ont été mis dans des DLL (Dynamic Linked Library). Ceci se traduit par l’aspect suivant pour les fichiers :

18/09/2005  14:19                3 584 latex.exe
18/09/2005  14:19                3 584 pdfetex.exe
18/09/2005  14:19              524 288 tl90pdfetex.dll
et le fichier latex.exe n’est ni plus ni moins qu’une copie presqu’identique du fichier pdfetex.exe, utilisant le même moteur tl90pdfetex.dll. La même astuce a été utilisée pour la famille de programmes mktex*.exe qui utilisent tous la bibliothèque mktex.dll.

Il existe même un outil générique appelé irun.exe qui permet de simuler les liens durs de Unix sous Win32, mais uniquement pour les fichiers .exe.

7.12 En cas de problème

7.12.1 Que faire si latex ne trouve pas vos fichiers ?

7.12.2 Que faire si votre installation ne fonctionne toujours pas selon vos attentes ?

Il faut se poser plusieurs questions :

  1. Est-ce que tex.exe est bien dans mon PATH ?
  2. Est-ce que la variable d’environnement TEXMFCNF est bien positionnée à
    C:/TeXLive2005/texmf-var/web2c (valeur par défaut) ?
  3. Est-ce qu’il y a des erreurs dans le fichier de log tlmpgui.log généré lors de l’installation par tlmpgui ? Ce fichier est dans le répertoire TEMP, les erreurs sont repérées par la séquence « Error ».
  4. Y a-t-il des correctifs de bogues correspondant au problème à http://www.tug.org/tex-live.html (improbable, mais il vaut mieux le vérifier).

Le logiciel TEX Live est composé de centaines de programmes et de milliers de fichiers d’origines très diverses. Il est pratiquement impossible de prédire toutes les causes possibles de problèmes. Néanmoins, nous ferons notre possible pour vous aider dans tous les cas (voir section 1.2, p. 6).

8 Guide d’utilisation du système Web2C

Web2Cest une collection intégrée de programmes relatifs à TEX, c.-à-d. TEX lui-même, Metafont, MetaPost, BibTeX, etc. C’est le cœur de TEX Live.

Un peu d’histoire : la première implémentation a été réalisée par Tomas Rokicki qui, en 1987, a développé un premier système TEX-to-C en adaptant les change files pour Unix (travail de Howard Trickey et Pavel Curtis principalement). Tim Morgan assura la maintenance du système, dont le nom fut remplacé durant cette période par Web-to-C. En 1990, Karl Berry reprit le travail, assisté par des dizaines de contributeurs, et en 1997 il passa le relais à Olaf Weber.

Le système Web2C fonctionne sur Unix, les systèmes Windows 32 bits, Mac OS X et de nombreux autres systèmes d’exploitation. Il utilise les sources originales de D.E. Knuth pour TEX et les autres programmes de base écrits en web qui sont tous traduits en langage C. Les composants du noyau de TEX sont :

bibtex
Gère les bibliographies.
dmp
troff vers MPX (dessins MetaPost).
dvicopy
Copie le fichier DVI en supprimant les fontes virtuelles.
dvitomp
Convertit le fichier DVI en MPX (dessins MetaPost).
dvitype
Convertit le fichier DVI en un texte lisible.
gftodvi
Visualisation de fontes génériques GF.
gftopk
Convertit les fontes génériques GF en fontes bitmap PK.
gftype
Convertit le fichier GF en un texte lisible.
makempx
Typographie des étiquettes MetaPost.
mf
Création de fontes.
mft
Mise en page de code source Metafont.
mpost
Création de diagrammes techniques.
mpto
Extraction d’étiquettes MetaPost.
newer
Comparaison de dates de modification (fichiers).
patgen
Création de motifs de césure.
pktogf
Convertit les fontes bitmap PK en fontes génériques GF.
pktype
Convertit les fontes PK en un texte lisible.
pltotf
Convertit les fichiers PL (lisibles) en TFM.
pooltype
Affiche les fichiers web pool.
tangle
web vers Pascal.
tex
Composition de textes.
tftopl
Convertit les fichiers TFM en PL (lisibles).
vftovp
Convertit les fontes virtuelles VF en VPL (lisibles).
vptovf
Convertit les fontes VPL en fontes virtuelles VF.
weave
web vers TEX.

La syntaxe et les fonctions précises de ces programmes sont décrites dans la documentation des composants individuels et dans le manuel Web2C lui-même. Toutefois, connaître un certain nombre de principes régissant l’ensemble de la famille de programmes peut aider à exploiter de façon optimale votre installation Web2C.

Presque tous ces programmes suivent les options standard de GNU :

--help
imprime le sommaire de l’utilisation,
--verbose
imprime le rapport détaillé du processus,
--version
imprime seulement le numéro de version.

Pour localiser les fichiers, les programmes Web2C utilisent la bibliothèque de recherche Kpathsea. Cette bibliothèque utilise une combinaison de variables d’environnement et un certain nombre de fichiers de paramètres pour optimiser la recherche dans l’énorme arborescence TEX. Web2C peut exécuter une recherche dans plusieurs arborescences simultanément, ce qui est utile si l’on souhaite maintenir la distribution standard de TEX et les extensions locales dans deux arborescences distinctes. Afin d’accélérer la recherche de fichiers, la racine de chaque arborescence possède un fichier ls-R contenant une entrée donnant le nom et le chemin de chaque fichier situé sous la racine.

8.1 Kpathsea et la recherche de fichiers

Décrivons en premier lieu le mécanisme de recherche de la bibliothèque Kpathsea.

Nous appelons chemin de recherche une liste, séparée par « deux-points » ou « point-virgule », d’éléments, appelés éléments de chemin, qui sont des noms de répertoires. Un chemin de recherche peut provenir de plusieurs sources. Pour rechercher un fichier « my-file » le long d’un chemin « . :/dir », Kpathsea vérifie chaque élément du chemin : d’abord ./my-file, puis /dir/my-file, et renvoie la première occurrence (voire toutes).

Afin d’optimiser l’adaptation à tous les systèmes d’exploitation, Kpathsea peut utiliser dans les noms de fichiers des séparateurs différents de deux-points (« : ») et barre oblique (« / ») pour les systèmes non-Unix.

Pour vérifier un élément de chemin particulier p, Kpathsea vérifie d’abord si une base de données existante (voir page 62) contient p, c.-à-d. si la base de données se trouve dans un répertoire qui est un préfixe de p. Si oui, la spécification du chemin est comparée avec le contenu de la base de données.

Si la base de données n’existe pas, si elle ne s’applique pas à cet élément de chemin ou si elle ne contient aucune correspondance, la recherche est lancée sur tout le système de fichiers (si cela n’a pas été interdit par une commande commençant par « ! ! » et si le fichier cherché est censé exister). Kpathsea construit la liste de répertoires qui correspondent à cet élément de chemin, puis cherche le fichier dans chaque élément de cette liste.

La condition « le fichier est censé exister » est liée aux fichiers « .vf » et aux fichiers d’entrée lus par la commande TEX \openin. De tels fichiers peuvent ne pas exister (par exemple cmr10.vf), il est donc inutile de les rechercher sur le disque. De plus, si vous n’actualisez pas le fichier ls-R lors de l’installation d’un nouveau fichier « .vf », il ne sera jamais trouvé. Chaque élément de chemin est alors vérifié : d’abord dans la base de données puis sur le disque. Si une occurrence est trouvée, la recherche s’arrête et le résultat est obtenu.

Bien que l’élément de chemin le plus simple et le plus fréquent soit un nom de répertoire, Kpathsea supporte d’autres types d’éléments dans les chemins de recherche : des valeurs par défaut différentes pour chaque programme, des noms de variables d’environnement, des valeurs de fichiers de configuration, les répertoires de l’utilisateur et la recherche récursive de sous-répertoires. Nous disons alors que Kpathsea étend un élément, c’est-à-dire que Kpathsea transforme toutes ces spécifications en noms de répertoires de base. Cette opération est décrite dans les sections suivantes.

Notons que si le nom de fichier cherché est absolu ou explicitement relatif, c’est-à-dire commençant par « / », « ./ » ou « ../ », Kpathsea ne vérifie que l’existence de ce fichier.

8.1.1 Les différentes sources

Un chemin de recherche peut provenir de plusieurs sources. Voici l’ordre dans lequel Kpathsea les utilise.

  1. Une variable d’environnement définie par l’utilisateur, par exemple TEXINPUTS. Les variables d’environnement avec une extension attachée (nom de programme) sont d’abord prises en compte : par exemple, si « latex » est le nom du programme exécuté, TEXINPUTS.latex passera avant TEXINPUTS.
  2. Un fichier de configuration de programme spécifique, par exemple une ligne « S /a :/b » dans le fichier config.ps de dvips.
  3. Un fichier de configuration texmf.cnf de Kpathsea contenant une ligne telle que
    « TEXINPUTS=/c :/d » (voir ci-dessous).
  4. La valeur par défaut obtenue à la compilation.

On peut voir chacune de ces valeurs pour un chemin de recherche donné en utilisant l’option de débogage (voir page 66).

8.1.2 Fichiers de configuration

Kpathsea lit dans les fichiers de configuration à l’exécution appelés texmf.cnf les chemins de recherche et d’autres définitions. Le chemin pour accéder à ces fichiers dans l’arborescence est stocké dans la variable TEXMFCNF (par défaut ces fichiers se trouvent dans le sous-répertoire texmf/web2c). Tous les fichiers texmf.cnf se trouvant dans le chemin de recherche vont être lus et les définitions provenant de fichiers précédents écraseront celles des fichiers suivants. Par exemple, avec un chemin tel que .:$TEXMF, les définitions du fichier ./texmf.cnf écrasent celles de $TEXMF/texmf.cnf.

Voici un fichier de configuration illustrant les points précédents

  TEXMF              = {$TEXMFLOCAL,!!$TEXMFMAIN}
  TEXINPUTS.latex    = .;$TEXMF/tex/{latex,generic;}//
  TEXINPUTS.fontinst = .;$TEXMF/tex//;$TEXMF/fonts/afm//
  % e-TeX related files
  TEXINPUTS.elatex   = .;$TEXMF/{etex,tex}/{latex,generic;}//
  TEXINPUTS.etex     = .;$TEXMF/{etex,tex}/{eplain,plain,generic;}//

8.1.3 Expansion d’un chemin de recherche

Kpathsea reconnaît certains caractères et constructions spéciales dans les chemins de recherche, semblables à ceux disponibles dans les shells Unix. Ainsi, le chemin complexe, ~$USER/{foo,bar}//baz étend la recherche vers tous les sous-répertoires situés sous les répertoires foo et bar dans le répertoire utilisateur $USER contenant un répertoire ou un fichier appelé baz. Ces expansions sont explicitées dans les sections suivantes.

8.1.4 Expansion par défaut

Si le chemin de recherche le plus prioritaire (voir section 8.1.1) contient un « : » supplémentaire (c.-à-d. en début ou fin de ligne ou double), Kpathsea insère à cet endroit le chemin suivant dont la priorité définie est immédiatement inférieure. Si ce chemin inséré possède un « : » supplémentaire, le même processus se répète pour le chemin prioritaire suivant. Par exemple, étant donné une variable d’environnement définie ainsi

> setenv TEXINPUTS /home/karl:
la valeur de TEXINPUTS d’après le fichier texmf.cnf étant

  .:$TEXMF//tex
alors la valeur finale utilisée pour la recherche sera

  /home/karl:.:$TEXMF//tex

Comme il est inutile d’insérer la valeur par défaut en plusieurs endroits, Kpathsea applique la substitution à seulement un « : » supplémentaire et laisse les autres inchangés : il cherche d’abord un « : » en début de ligne, puis en fin de ligne et enfin un double « : ».

8.1.5 Expansion spécifiée par les accolades

Option utile, l’expansion par le biais des accolades signifie, par exemple, que v{a,b}w va permettre la recherche dans vaw:vbw. Les définitions emboîtées sont autorisées. Ceci peut être utilisé pour établir des hiérarchies TEX multiples en attribuant une liste entre accolades à $TEXMF. Par exemple, dans texmf.cnf, on trouve une définition du type suivant (il y a en fait plus de répertoires) :

    TEXMF = {$TEXMFHOME,$TEXMFLOCAL,!!$TEXMFSYSVAR,!!$TEXMFMAIN}

Avec ceci, on peut écrire quelque chose comme

    TEXINPUTS = .;$TEXMF/tex//

ce qui signifie que, après avoir cherché dans le répertoire courant, les arborescences complètes $TEXMFHOME/tex suivie de $TEXMFLOCAL/tex (sur le disque) et ensuite les arborescences ! !$TEXMFVAR/tex et ! !$TEXMFMAIN/tex (définies dans le fichier de référence ls-R seulement) seront inspectées. C’est un moyen pratique permettant d’utiliser en parallèle deux distributions TEX, une « gelée » (sur un CD, par exemple) et une autre régulièrement mise à jour avec de nouvelles versions quand elles deviennent disponibles. En utilisant la variable $TEXMF dans toutes les définitions, on est toujours sûr d’inspecter d’abord l’arborescence la plus récente.

8.1.6 Expansion des sous-répertoires

Deux barres « // » ou plus consécutives dans une partie d’un chemin suivant un répertoire d sont remplacées par tous les sous-répertoires de d : d’abord les sous-répertoires directement présents dans d, ensuite les sous-répertoires de ceux-ci, et ainsi de suite. À chaque niveau, l’ordre dans lequel les répertoires sont inspectés est non-déterminé.

Dans le cas où l’on spécifie une partie de nom de fichier après le « // », seuls sont inclus les sous-répertoires auxquels le nom correspond. Par exemple, « /a//b » va correspondre aux répertoires /a/1/b, /a/2/b, /a/1/1/b, et ainsi de suite, mais pas à /a/b/c ni /a/1.

Des « // » multiples et successifs dans un chemin sont possibles, mais « // » au début d’un chemin est ignoré.

8.1.7 Liste des caractères spéciaux et de leur signification : récapitulatif

La liste suivante récapitule la signification des caractères spéciaux dans les fichiers de configuration de Kpathsea.

 :
Séparateur dans un chemin de recherche ; au début ou à la fin d’un chemin, il remplace le chemin par défaut.
 ;
Séparateur dans les systèmes non-Unix (joue le rôle de :).
$
Substitue le contenu d’une variable.
~
Représente le répertoire racine de l’utilisateur.
{...}
Expansion par les accolades, par exemple a{1,2}b devient a1b:a2b.
//
La recherche concernera aussi les sous-répertoires (peut être inséré n’importe où dans un chemin sauf au début).
%
Début d’un commentaire.
\
Caractère de continuation de ligne (permet les entrées sur plusieurs lignes).
 ! !
Cherche seulement dans la base de données pour localiser le fichier et ne cherche pas sur le disque.

8.2 Les bases de données

Kpathsea a une certaine profondeur d’investigation pour minimiser les accès disque durant les recherches. Néanmoins, dans le cas de distributions comprenant beaucoup de répertoires, inspecter chaque répertoire possible pour un fichier donné peut durer excessivement longtemps (ceci est typiquement le cas quand plusieurs centaines de répertoires de polices de caractères doivent être parcourus). En conséquence, Kpathsea peut utiliser un fichier texte appelé ls-R — en fait une base de données construite au préalable — qui fait correspondre les fichiers à leur répertoire, ce qui permet d’éviter une recherche exhaustive sur le disque.

Un deuxième fichier appelé aliases (qui est également une base de données) permet de donner des noms différents aux fichiers listés dans ls-R. Ceci peut aider à adapter ses fichiers source aux conventions de DOS 8.3 pour les noms de fichiers.

8.2.1 Le fichier base de données

Comme nous l’avons expliqué ci-dessus, le nom du principal fichier-base de données doit être ls-R. Dans votre installation, vous pouvez en mettre un à la racine de chaque arborescence TEX que vous désirez voir inspecter ($TEXMF par défaut) ; la plupart des sites ont une seule arborescence TEX. Kpathsea cherche les fichiers ls-R dans le chemin spécifié dans la variable TEXMFDBS.

La meilleure façon de créer et mettre à jour le fichier ls-R est d’exécuter le script mktexlsr inclus dans la distribution. Il est appelé par les divers scripts mktex...  En principe, ce script exécute uniquement la commande

cd /your/texmf/root && \ls -1LAR ./ >ls-R
en supposant que la commande ls de votre système produise le bon format de sortie (le ls de GNU convient parfaitement). Pour s’assurer que la base de données est toujours à jour, le meilleur moyen est de la reconstruire en utilisant la table des cron, de telle façon que le fichier ls-R prenne automatiquement en compte les changements dans les fichiers installés, par exemple après une installation ou une mise à jour d’un composant LATEX.

Si un fichier n’est pas trouvé dans la base de données, par défaut Kpathsea décide de le chercher sur le disque. Par contre, si un élément du chemin commence par « ! ! », seule la base de données sera inspectée pour cet élément, jamais le disque.

8.2.2 kpsewhich : programme de recherche dans une arborescence

Le programme kpsewhich effectue une recherche dans une arborescence indépendamment de toute application. On peut le considérer comme une sorte de find pour localiser des fichiers dans les arborescences TEX (ceci est largement utilisé dans les scripts mktex... de la distribution).

> kpsewhich option... filename...
Les options spécifiées dans option peuvent commencer soit par « - » soit par « -- » ; n’importe quelle abréviation claire est acceptée.

Kpathsea considère tout argument non optionnel dans la ligne de commande comme un nom de fichier et renvoie la première occurrence trouvée. Il n’y a pas d’option pour renvoyer tous les fichiers ayant un nom particulier (vous pouvez utiliser le find d’Unix pour cela).

Les options les plus importantes sont décrites ci-après.

--dpi=num

Définit la résolution à num ; ceci affecte seulement la recherche des fichiers « gf » et « pk ». « -D » est un synonyme pour assurer la compatibilité avec dvips. Le défaut est 600.
--format=name

Définit le format pour la recherche à name. Par défaut, le format est estimé en fonction du nom de fichier. Pour les formats qui n’ont pas de suffixe clair associé, comme les fichiers de support MetaPost et les fichiers de configuration dvips, vous devez spécifier le nom connu de Kpathsea, comme tex ou enc files. Exécutez la commande kpsewhich --help pour obtenir la liste précise.
--mode=string

Définit le nom du mode comme étant string ; ceci affecte seulement la recherche des « gf » et des « pk ». Pas d’option par défaut, n’importe quel mode sera trouvé.
--must-exist

Fait tout ce qui est possible pour trouver les fichiers, ce qui inclut une recherche sur le disque. Par défaut, seule la base de données ls-R est inspectée, dans un souci d’efficacité.
--path=string

Recherche dans le chemin string (séparé par deux-points comme d’habitude), au lieu de prendre le chemin à partir du nom de fichier. « // » et toutes les expansions habituelles sont supportées. Les options « --path » et « --format » s’excluent mutuellement.
--progname=name

Définit le nom de programme comme étant name. Ceci peut affecter les chemins de recherche via l’option .progname dans les fichiers de configuration. Le défaut est kpsewhich.
--show-path=name

Montre le chemin utilisé pour la recherche des fichiers de type name. On peut utiliser soit une extension de fichier (.pk, .vf, etc.), soit un nom de fichier, comme avec l’option « --format ».
--debug=num

Définit les options de débogage comme étant num.

8.2.3 Exemples d’utilisation

Jetons un coup d’œil à Kpathsea en action ; voici une recherche toute simple :

> kpsewhich article.cls
/usr/local/texmf-dist/tex/latex/base/article.cls
Nous recherchons le fichier article.cls. Puisque le suffixe .cls est non-ambigu, nous n’avons pas besoin de spécifier que nous voulons rechercher un fichier de type tex (répertoires des fichiers sources de TEX). Nous le trouvons dans le sous-répertoire tex/latex/base du répertoire racine « TEXMF ». De même, le suffixe non-ambigu permet de trouver facilement les autres fichiers.

> kpsewhich array.sty
   /usr/local/texmf-dist/tex/latex/tools/array.sty
> kpsewhich latin1.def
   /usr/local/texmf-dist/tex/latex/base/latin1.def
> kpsewhich size10.clo
   /usr/local/texmf-dist/tex/latex/base/size10.clo
> kpsewhich small2e.tex
   /usr/local/texmf-dist/tex/latex/base/small2e.tex
> kpsewhich tugboat.bib
   /usr/local/texmf-dist/bibtex/bib/beebe/tugboat.bib

Le dernier exemple est une base de données bibliographiques pour BibTeX servant aux articles de TUGBoat.

> kpsewhich cmr10.pk
Les fichiers de glyphes de fontes bitmaps, de type .pk, sont utilisés pour l’affichage par des programmes comme dvips et xdvi. Rien n’est renvoyé dans ce cas puisque il n’y a pas de fichiers Computer Modern .pk pré-créés sur nos systèmes (nous utilisons les versions type 1 du TEX Live).

> kpsewhich wsuipa10.pk
   /usr/local/texmf-var/fonts/pk/ljfour/public/wsuipa/wsuipa10.600pk
Pour ces fontes (alphabet phonétique de l’université Washington), nous avons dû créer les fichiers .pk et, puisque le mode Metafont par défaut sur notre installation est ljfour avec une résolution de base de 600dpi (dots per inch), cette instance est trouvée.

> kpsewhich -dpi=300 wsuipa10.pk
Dans ce cas, lorsque l’on spécifie que nous recherchons une résolution de 300dpi (-dpi=300) nous voyons qu’aucune fonte pour cette résolution n’est disponible dans le système. En fait, un programme comme dvips ou xdvi ne s’en préoccuperait pas et créerait les fichiers .pk à la résolution demandée en utilisant le script mktexpk.

Intéressons-nous à présent aux fichiers d’en-tête et de configuration pour dvips. Regardons en premier le fichier tex.pro communément utilisé pour le support de TEX avant de regarder le fichier de configuration générique (config.ps) et la liste des fontes PostScript psfonts.map. Depuis l’édition 2004, les fichiers .map et les fichiers de codage ont changé de place dans l’arborescence texmf. Comme le suffixe .ps est ambigu, nous devons spécifier quel type particulier du fichier config.ps nous considérons (dvips config).

> kpsewhich tex.pro
   /usr/local/texmf/dvips/base/tex.pro
> kpsewhich --format="dvips config" config.ps
   /usr/local/texmf-var/dvips/config/config.ps
> kpsewhich psfonts.map
   /usr/local/texmf-var/fonts/map/dvips/updmap/psfonts.map

Regardons plus en détail les fichiers de support Times PostScript d’URW. Leur nom standard dans le schéma de nommage des fontes est « utm ». Le premier fichier que nous voyons est le fichier de configuration, qui contient le nom du fichier de la liste :

> kpsewhich --format="dvips config" config.utm
   /usr/local/texmf-dist/dvips/psnfss/config.utm
Le contenu de ce fichier est

  p +utm.map
qui pointe vers le fichier utm.map, que nous cherchons à localiser ensuite.

> kpsewhich utm.map
  /usr/local/texmf-dist/fonts/map/dvips/times/utm.map
Ce fichier liste les noms des fichiers des fontes PostScript de type 1 dans la collection URW. Son contenu ressemble à (nous ne montrons qu’une partie des lignes) :

utmb8r  NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmbi8r NimbusRomNo9L-MediItal... <utmbi8a.pfb
utmr8r  NimbusRomNo9L-Regu    ... <utmr8a.pfb
utmri8r NimbusRomNo9L-ReguItal... <utmri8a.pfb
utmbo8r NimbusRomNo9L-Medi    ... <utmb8a.pfb
utmro8r NimbusRomNo9L-Regu    ... <utmr8a.pfb
Prenons par exemple le cas de Times Roman utmr8a.pfb et trouvons sa position dans l’arborescence texmf en utilisant une recherche applicable aux fichiers de fontes de type 1 :

> kpsewhich utmr8a.pfb
   /usr/local/texmf-dist/fonts/type1/urw/times/utmr8a.pfb

Il devrait être clair, d’après ces quelques exemples, qu’il est facile de trouver l’endroit où se cache un fichier donné. C’est particulièrement important si vous suspectez que c’est, pour une raison quelconque, une mauvaise version du fichier qui est utilisée, puisque kpsewhich va vous montrer le premier fichier trouvé.

8.2.4 Opérations de débogage

Il est quelquefois nécessaire de savoir comment un programme référence les fichiers. Pour permettre cela, Kpathsea offre plusieurs niveaux de débogage :

 1
Appels à stat (test d’existence de fichier). Lors d’une exécution utilisant une base de données ls-R à jour, ce niveau ne devrait donner presque aucune information en sortie.
 2
Références aux différentes tables (comme la base de données ls-R, les fichiers de correspondance de fontes, les fichiers de configuration).
 4
Opérations d’ouverture et de fermeture des fichiers.
 8
Information globale sur la localisation des types de fichiers recherchés par Kpathsea. Ceci est utile pour trouver où a été défini le chemin particulier pour un fichier.
16
Liste des répertoires pour chaque élément du chemin (utilisé uniquement en cas de recherche sur le disque).
32
Recherche de fichiers.

Une valeur de -1 activera toutes les options ci-dessus ; en pratique, c’est habituellement la valeur la plus adaptée.

De la même façon, avec le programme dvips, en utilisant une combinaison d’options de débogage, on peut suivre en détail la localisation des différents fichiers. De plus, lorsqu’un fichier n’est pas trouvé, la trace du débogage montre les différents répertoires dans lesquels le programme va chercher tel ou tel fichier, donnant ainsi des indices sur le problème.

Généralement, comme la plupart des programmes appellent la bibliothèque Kpathsea en interne, on peut sélectionner une option de débogage en utilisant la variable d’environnement KPATHSEA_DEBUG, et en la définissant égale à la valeur (ou à une combinaison de valeurs) décrite(s) dans la liste ci-dessus.

Note à l’intention des utilisateurs de Windows : il n’est pas facile de rediriger les messages d’erreur vers un fichier sur ces systèmes. À des fins de diagnostic, vous pouvez temporairement affecter KPATHSEA_DEBUG_OUTPUT=err.log pour capturer le flux standard d’erreur dans le fichier err.log.

Considérons comme exemple un petit fichier source LATEX, hello-world.tex, dont le contenu est le suivant.

    \documentclass{article}
    \begin{document}
    Hello World!
    \end{document}

Ce petit fichier utilise simplement la fonte cmr10, aussi allons voir comment dvips prépare le fichier PostScript (nous voulons utiliser la version type 1 des fontes Computer Modern, d’où l’option -Pcms).

> dvips -d4100 hello-world -Pcms -o
Dans ce cas, nous avons combiné le niveau 4 de débogage de dvips (chemins des fontes) avec l’option d’expansion des éléments du chemin de Kpathsea (voir dvips Reference Manual, texmf/doc/html/dvips/dvips_toc.html sur le DVD live). La sortie (légèrement formatée) apparaît dans la Figure 1.


debug:start search(file=texmf.cnf, must_exist=1, find_all=1,
  path=.:/usr/local/bin/texlive:/usr/local/bin:
       /usr/local/bin/texmf/web2c:/usr/local:
       /usr/local/texmf/web2c:/.:/./teTeX/TeX/texmf/web2c:).
kdebug:start search(file=ls-R, must_exist=1, find_all=1,
  path=~/tex:/usr/local/texmf).
kdebug:search(ls-R) =>/usr/local/texmf/ls-R
kdebug:start search(file=aliases, must_exist=1, find_all=1,
  path=~/tex:/usr/local/texmf).
kdebug:search(aliases) => /usr/local/texmf/aliases
kdebug:start search(file=config.ps, must_exist=0, find_all=0,
  path=.:~/tex:!!/usr/local/texmf/dvips//).
kdebug:search(config.ps) => /usr/local/texmf/dvips/config/config.ps
kdebug:start search(file=/root/.dvipsrc, must_exist=0, find_all=0,
  path=.:~/tex:!!/usr/local/texmf/dvips//).
search(file=/home/goossens/.dvipsrc, must_exist=1, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search($HOME/.dvipsrc) =>
kdebug:start search(file=config.cms, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//).
kdebug:search(config.cms)
=>/usr/local/texmf/dvips/cms/config.cms
Figure 1: Recherche des fichiers de configuration
kdebug:start search(file=texc.pro, must\_exist=0, find\_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro
Figure 2: Recherche du fichier prolog
kdebug:start search(file=cmr10.tfm, must\_exist=1, find\_all=0,
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must\_exist=0, find\_all=0,
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must\_exist=0, find\_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]
Figure 3: Recherche du fichier de fontes

dvips commence par localiser ses fichiers de fonctionnement. D’abord, texmf.cnf est trouvé, ce qui donne les définitions pour les chemins de recherche servant à localiser les autres fichiers, ensuite le fichier base de données ls-R (pour optimiser la recherche des fichiers) et le fichier aliases, qui permet de déclarer plusieurs noms (p. ex., un nom DOS de type 8.3 court et une version longue plus naturelle) pour le même fichier. Ensuite dvips continue en cherchant le fichier de configuration générique config.ps avant de rechercher le fichier de paramétrisation .dvipsrc (qui, dans notre cas, n’est pas trouvé). Enfin, dvips localise le fichier de configuration pour les fontes PostScript Computer Modern config.cms (ceci est lancé par l’option -Pcms de la commande dvips). Ce fichier contient la liste des fichiers qui définissent la relation entre les noms des fontes selon TEX, selon PostScript et dans le système de fichiers.

> more /usr/local/texmf/dvips/cms/config.cms
   p +ams.map
   p +cms.map
   p +cmbkm.map
   p +amsbkm.map
dvips veut chercher tous ces fichiers, y compris le fichier générique d’association psfonts.map, qui est toujours chargé (il contient des déclarations pour les fontes PostScript les plus communément utilisées ; voir la dernière partie de la Section 8.2.3 pour plus de détails sur la gestion du fichier d’association PostScript).

Arrivé là, dvips s’identifie à l’utilisateur :

 This is dvips(k) 5.92b Copyright 2002 Radical Eye Software (www.radicaleye.com)
 

pour continuer ensuite en cherchant le fichier prologue texc.pro,


kdebug:start search(file=texc.pro, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(texc.pro) => /usr/local/texmf/dvips/base/texc.pro

Après avoir trouvé ce fichier, dvips affiche la date et l’heure, et nous informe qu’il va générer le fichier hello-world.ps, puis qu’il a besoin du fichier de fonte cmr10, et que ce dernier est déclaré comme « résident » (pas besoin de bitmaps) :


TeX output 1998.02.26:1204’ -> hello-world.ps
Defining font () cmr10 at 10.0pt
Font cmr10 <CMR10> is resident.
Maintenant la recherche concerne le fichier cmr10.tfm, qui est trouvé, puis quelques fichiers de prologue de plus (non montrés) sont référencés ; finalement le fichier de la fonte type 1 cmr10.pfb est localisé et inclus dans le fichier de sortie (voir la dernière ligne).


kdebug:start search(file=cmr10.tfm, must_exist=1, find_all=0,
  path=.:~/tex/fonts/tfm//:!!/usr/local/texmf/fonts/tfm//:
       /var/tex/fonts/tfm//).
kdebug:search(cmr10.tfm) => /usr/local/texmf/fonts/tfm/public/cm/cmr10.tfm
kdebug:start search(file=texps.pro, must_exist=0, find_all=0,
   ...
<texps.pro>
kdebug:start search(file=cmr10.pfb, must_exist=0, find_all=0,
  path=.:~/tex/dvips//:!!/usr/local/texmf/dvips//:
       ~/tex/fonts/type1//:!!/usr/local/texmf/fonts/type1//).
kdebug:search(cmr10.pfb) => /usr/local/texmf/fonts/type1/public/cm/cmr10.pfb
<cmr10.pfb>[1]

8.3 Options à l’exécution

Web2C offre la possibilité de contrôler à l’exécution bon nombre de paramètres concernant la mémoire (en particulier la taille des tableaux utilisés) à partir du fichier texmf.cnf qui est lu par Kpathsea. Les paramètres en question se trouvent dans la troisième partie du fichier inclus dans la distribution TEX Live. Les variables les plus importantes sont :

main_memory
Nombre total de mots mémoire disponibles pour TEX, Metafont et MetaPost. Vous devez générer un nouveau fichier de format pour chaque nouveau paramétrage. Par exemple, vous pouvez générer une version large de TEX et appeler le fichier de format hugetex.fmt. En utilisant la méthode supportée par Kpathsea qui consiste à suffixer la variable par le nom du programme, la valeur particulière de la variable main_memory destinée à ce fichier de format sera lue dans le fichier texmf.cnf.
extra_mem_bot
Espace supplémentaire pour certaines structures de données de TEX : boîtes, glue, points d’arrêt... Surtout utile si vous utilisez PI CTEX par exemple.
font_mem_size
Nombre de mots mémoire disponibles pour décrire les polices. C’est plus ou moins l’espace occupé par les fichiers TFM lus.
hash_extra
Espace supplémentaire pour la table de hachage des noms de séquences de contrôle. Environ 10 000 de ces noms peuvent être stockés dans la table principale ; si vous avez un document très volumineux avec beaucoup de références croisées, il se peut que ce ne soit pas suffisant. La valeur par défaut hash_extra est 50000.

Évidemment, cette possibilité ne remplace pas une véritable allocation dynamique des tableaux et de la mémoire, mais puisque c’est complexe à implémenter dans le présent source TEX, ces paramètres lus à l’exécution fournissent un compromis pratique qui procure une certaine souplesse.

9 Remerciements

TEX Live est le résultat des efforts collectifs de pratiquement tous les groupes d’utilisateurs de TEX. La présente édition de TEX Live a été coordonnée par Sebastian Rahtz et Karl Berry. Voici la liste des principaux contributeurs :

Les binaires ont été compilés par : Tigran Aivazian (x86_64-linux), Manfred Lotz (i386-freebsd), Fabrice Popineau (win32), Norbert Preining (alpha-linux), Vladimir Volovich (powerpc-aix, sparc-linux et sparc-solaris), Staszek Wawrykiewicz (i386-linux), Olaf Weber (mips-irix), Gerben Wierda (i386-darwin, powerpc-darwin).

Documentation et mises à jour des traductions : Karl Berry (anglais), Günter Partosch, Hartmut Henkel & Klaus Höppner (allemand), Daniel Flipo (français), Petr Sojka & Janka Chlebíková (tchèque et slovaque), Boris Veytsman (russe), Staszek Wawrykiewicz (polonais).

Bien sûr, notre gratitude va en premier lieu à Donald Knuth pour avoir inventé TEX et l’avoir offert au monde entier.

10 Historique des versions successives

10.1 Les éditions précédentes

La discussion commença à la fin de 1993 quand le Groupe des Utilisateurs Néerlandais de TEX commençait à travailler à son CD 4AllTEX pour les utilisateurs de MS-DOS, et on espérait à ce moment sortir un CD unique pour tous les systèmes. C’était un objectif beaucoup trop ambitieux, mais il permit la naissance du CD 4AllTEX, projet couronné de succès, mais aussi d’un groupe de travail « TUG Technical Council » pour mettre en place TDS (TEX Directory Structure : http://tug.org/tds), qui spécifiait la gestion des fichiers TEX sous une forme logique. La mouture finale de TDS fut publiée dans le numéro de décembre 1995 de TUGboat, et il était clair depuis un certain temps qu’il fallait proposer un produit contenant une structure modèle sur CD. La distribution que vous possédez est le résultat direct des délibérations de ce groupe de travail. Il était également clair que le succès des CD 4AllTEX démontrait que les utilisateurs d’Unix trouveraient leur bonheur avec une distribution aussi simple, et ceci a été l’autre objectif de TEX Live.

Nous avons d’abord entrepris de créer un nouveau CD TDS Unix à l’automne 1995, et nous avons rapidement choisi teTEX de Thomas Esser comme étant la configuration idéale, car il supportait déjà plusieurs plates-formes et avait été construit en gardant à l’esprit la portabilité entre systèmes. Thomas accepta de nous aider et commença à travailler sérieusement au début de 1996. La première édition sortit en mai 1996. Au début de 1997, Karl Berry acheva une nouvelle distribution de Web2C, qui incluait presque toutes les caractéristiques que Thomas Esser avait ajoutées dans teTEX, et il fut décidé de baser la deuxième édition du CD sur le standard Web2C, en y ajoutant le script texconfig de teTEX. La troisième édition du CD était basée sur une version majeure de Web2C, 7.2, par Olaf Weber ; en même temps, une nouvelle version révisée de teTEX était achevée dont TEX Live partageait presque toutes les caractéristiques. La quatrième édition a suivi le même schéma, en utilisant une nouvelle version de teTEX et une nouvelle version de Web2C (7.3). Le système incluait dorénavant un programme complet d’installation pour Windows.

Pour la cinquième édition (mars 2000), de nombreuses parties du CD ont été vérifiées et révisées, des centaines de composants mis à jour. Le contenu détaillé des composants était décrit par des fichiers XML. Mais le changement majeur de cette cinquième édition a été la suppression de tout logiciel non libre de droits. Tout ce qui se trouve dans TEX Live devait être compatible avec la licence Debian (Debian Free Software Guidelines : http://www.debian.org/intro/free) ; nous avons fait de notre mieux pour vérifier les termes des licences de chaque composant, et nous souhaiterions que toute erreur nous soit signalée.

La sixième édition (juillet 2001) contient un grand nombre de mises à jour. Le changement majeur de cette version réside dans la refonte du processus d’installation : l’utilisateur peut désormais choisir les collections de manière plus précise. Les collections concernant les langues ont été entièrement réorganisées, aussi le choix d’une langue installe non seulement les macros, les fontes, etc. mais prépare également un fichier language.dat adéquat.

La septième édition (mai 2002) a comme ajout majeur une installation pour Mac OS X et l’habituelle myriade de mises à jour de composants et de programmes. Un objectif important a été de fusionner à nouveau les sources avec ceux de teTEX, alors que les versions 5 et 6 s’en étaient éloignées.

10.1.1 2003

En 2003, le flot de mises à jour et d’additions a continué, mais nous avons constaté que TEX Live était devenu si volumineux qu’il ne pouvait plus tenir sur un seul CD, aussi l’avons-nous divisé en trois distributions distinctes (voir section 2.1, p. 7). Par ailleurs :

10.1.2 2004

2004 a apporté beaucoup de changements (et quelques incompatibilités avec les versions précédentes) :

10.2 L’édition 2005

2005 a apporté son lot habituel d’innombrables mises à jour d’extensions et de programmes. L’infrastructure est restée relativement stable par rapport à 2004, à quelques changements inévitables près :

10.3 Versions futures

TEX Live n’est pas un produit parfait ! (et ne le sera jamais). Nous prévoyons de le renouveler tous les ans, et aimerions fournir plus d’aide, de fonctionnalités, de programmes d’installation, et (bien sûr) une arborescence améliorée et vérifiée de macros et de fontes. Ce travail est effectué par des volontaires débordés, dans la limite de leur temps libre, et beaucoup reste à faire. Si vous pouvez nous aider, n’hésitez pas à vous proposer !

Corrections, suggestions et propositions d’aide doivent être envoyées à :

Sebastian Rahtz  /  7 Stratfield Road  /  Oxford OX2 7BG  /  UK
tex-live@tug.org
http://tug.org/texlive

Bon travail avec TEX !

1.Pour les utilisateurs qui possèdent un fichier $HOME/.bash_profile, c’est dans ce dernier qu’il faut redéfinir la variable PATH, car pour eux, $HOME/.profile est sans effet.

2.Cet exemple suppose qu’on a fait l’installation dans /usr/local/texlive/2005, sinon il faut adapter PATH en conséquence.

3.Pas libres en fait dans le sens de la liberté de les modifier et les redistribuer, selon les Debian’s guidelines. Cela ne signifie pas qu’on ne peut pas les acquérir gratuitement.

4.Une table de hachage est une structure de données qui permet de rechercher un élément par une clé dans un ensemble. Elle doit donc mémoriser des paires de type (clé, valeur) et permettre un accès rapide à une valeur à partir de sa clé.

5.Tous ces fichiers sont susceptibles de produire des collisions lors de l’accès à la table de hachage ; heureusement TEX ne les utilise pas, ils ne sont donc pas pris en compte !

6.En fait, les systèmes Windows NT/2K/XP savent le faire, grâce à leur nouvel interpréteur de commandes, mais l’astuce spécifique à Kpathsea-Win32 fonctionne sur toutes les consoles.