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.
Vous pouvez utiliser TEX Live de trois façons différentes :
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 :
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 :
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 !
Nous décrivons ici la structure et le contenu de TEX Live et de TEX Collection qui est un sur-ensemble de TEX Live.
Des limitations d’espace liées au format des CD-ROM nous ont contraint à diviser TEX Collection en plusieurs distributions :
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.
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.
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).
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.
Les possibilités offertes par texconfig sont décrites à la section 4.1, p. 26.
TEX Live contient plusieurs extensions de TEX.
Voici quelques autres programmes couramment utilisés et présents dans TEX Live :
Comme on l’a vu en section 1.1 p. 5, le TEX Live peut être utilisé de trois façons principales :
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.
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.
Se placer au point de montage du lecteur :
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.
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 :
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.
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.
Se placer au point de montage du lecteur :
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 !
|
Voici quelques précisions sur chaque option.
|
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.
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 :
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.
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 :
et pour un C shell (csh, tcsh), mettre dans le fichier $HOME/.cshrc :
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
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.
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.
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.
Se placer au point de montage du lecteur :
Lancer le script install-pkg.sh (et non install-tl.sh qui n’est destiné qu’à l’installation complète) :
Le premier jeu d’options permet de choisir ce qui sera installé :
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.
Options additionnelles :
Voici quelques exemples d’utilisation :
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.
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 :
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) :
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
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.
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.
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.
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.
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/
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 :
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.
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.
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 :
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 :
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 :
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 :
Si vous choisissez d’utiliser TeXShop ou ITeXMac, il sera nécessaire de donner à ces logiciels les informations concernant le PATH :
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 :
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.
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 Start→Run 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 Start→Programs→TeXLive2005.
Si nécessaire (Windows 9x/WinME), il vous sera demandé de redémarrer l’ordinateur.
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 :
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.
Une fois la distribution TEX Live installée, vous pouvez vous servir du programme tlpmgui pour modifier ou compléter votre installation.
Le raccourci tlpmgui du menu Start→Programs→TeXLive2005 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
Lors de l’ajout de composants, la liste des composants installés est comparée à la liste des composants disponibles sur le CD/DVD. Seuls les composants non installés sont affichés, à vous de choisir ceux que vous souhaitez ajouter.
Inversement, lors de la suppression de composants, seuls les composants installés sont affichés.
Noter que les collections sont en tête de liste.
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.
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.
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
Le programme tlpm.exe utilisé par tlpmgui possède de nombreuses options utiles dont la liste est donnée par
Consulter le fichier tlpm.readme pour plus de renseignements et des exemples.
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 :
La version Windows de Web2C possède quelques spécificités qui méritent d’être notées.
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.
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 :
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.
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 :
Sauvegarder le fichier et sortir de l’éditeur.
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 Media→Letter. 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.
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 View→Options→Papertype 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 :
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.
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) Command→LaTeX ou sur l’icône LATEX (WinShell) dans la barre d’outils, ensuite affichez-le en cliquant sur le menu (XEmacs) Command→View 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.
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.
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.
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.
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 :
mais pas :
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.
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.
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.
Les modifications ne prendront effet qu’après redémarrage de la machine.
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
la valeur correspondante doit alors être affichée..
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 :
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.
Vous pouvez également définir un niveau de trace :
La trace de l’exécution des commandes suivantes sera conservée dans le fichier err.log. Si vous voulez rediriger le flux stderr sur le flux stdout, ce qui n’est normalement possible sous aucune version de Windows, il vous suffit de faire :
De cette manière, vous pourrez rediriger à la fois stdout et stderr dans le même fichier.
kpsewhich -expand-path $SELFAUTOPARENT | C :/TeX |
kpsewhich -expand-path $TEXMF | C :/TeX/texmf.... |
kpsewhich -expand-path $TEXMFCNF | . ;C :/TeX/texmf-var/web2c ; |
kpsewhich -expand-var $TEXINPUTS | . ;C :/TeX/texmf/tex// |
kpsewhich cmr10.tfm | C :/TeX/texmf/fonts/tfm/public/cm/cmr10.tfm |
kpsewhich latex.fmt | C :/TeX/texmf/web2c/latex.fmt |
Il faut se poser plusieurs questions :
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).
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 :
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 :
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.
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.
Un chemin de recherche peut provenir de plusieurs sources. Voici l’ordre dans lequel Kpathsea les utilise.
On peut voir chacune de ces valeurs pour un chemin de recherche donné en utilisant l’option de débogage (voir page 66).
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
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.
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
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 « : ».
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) :
Avec ceci, on peut écrire quelque chose comme
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.
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é.
La liste suivante récapitule la signification des caractères spéciaux dans les fichiers de configuration de Kpathsea.
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.
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
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.
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).
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.
Jetons un coup d’œil à Kpathsea en action ; voici une recherche toute simple :
Le dernier exemple est une base de données bibliographiques pour BibTeX servant aux articles de TUGBoat.
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).
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 :
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é.
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 :
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.
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).
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
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
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]
|
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.
Arrivé là, dvips s’identifie à l’utilisateur :
pour continuer ensuite en cherchant le fichier prologue 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) :
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 :
É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.
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.
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.
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 :
2004 a apporté beaucoup de changements (et quelques incompatibilités avec les versions précédentes) :
Les fichiers .map sont désormais recherchés uniquement dans les sous-répertoires fonts/map (dans chaque arborescence texmf), leur chemin de recherche est donné par la variable TEXFONTMAPS de texmf.cnf. De même, les fichiers .enc sont désormais recherchés uniquement dans les sous-répertoires fonts/enc, leur chemin de recherche est donné par la variable ENCFONTS de texmf.cnf. Le script updmap devrait émettre des messages d’avertissement pour les fichiers .map et .enc mal placés.
Sur les différentes façons de traiter le problème, consulter http://tug.org/texlive/mapenc.html.
Ceci rend indispensable le recours à l’extension ifpdf (qui fonctionne aussi bien avec plain que LATEX) pour déterminer si le format de sortie est DVI ou PDF. Tester si la commande \pdfoutput est définie ou non n’est pas un moyen fiable de le faire.
Consulter le manuel Web2C pour plus d’informations : texmf/doc/web2c.
Sur sparc-solaris (au moins) il sera probablement nécessaire de positionner la variable d’environnement LD_LIBRARY_PATH pour utiliser les programmes de la famille t1utils. Ceci vient du fait qu’ils sont compilés en C++, et que l’emplacement des bibliothèques dynamiques est variable. Ce n’est pas une nouveauté 2004 mais ce point n’était pas documenté précédemment. De même, sur mips-irix, les bibliothèques dynamiques MIPSpro 7.4 sont nécessaires.
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 :
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.