Une structure de répertoires pour les fichiers TeX
Traduction :
Jean-Côme CHARPENTIER
Jean.come.charpentier@wanadoo.fr
et
Vincent VAQUIN
vvaquin@club-internet.fr
Ceci est la traduction française du document << A directory Structure for
TeX Files >>. En conséquence, comme l'indiquent les clauses de copyright,
il ne s'agit pas d'un document officiel, celui-ci étant la version anglaise
sus-citée. De même, ce document débute par les clauses du copyright anglais
qui doivent être jointes à toutes modifications du texte officiel (une traduction,
non officielle, est fournie à titre indicatif).
©1994, 95, 96, 97, 98, 99 TeX User Group. This is version 0.9996.
Permission to use, copy, and distribute this document without modification
for any purpose and without fee is hereby granted, provided that this notice
appears in all copies. It is provided << as is >> without expressed or
implied warranty.
Permission is granted to copy and distribute modified versions of this document
under the conditions for verbatim copying, provided that the modifications are
clearly marked and the document is not represented as the official one.
This document is available on any CTAN host (Appendix Related references has
a complete reference). Please send questions or suggestions by email to tds@tug.org
or by postal mail to Karl Berry, 135 Center Hill Road, Plymouth, MA 02360, USA.
We welcome all comments.
Traduction du copyright
La permission de copier et distribuer ce document sans modification,
dans quelque but que ce soit et de façon gratuite vous est accordée, à condition
que cette notice apparaisse dans toutes les copies. Il est proposé << tel
quel >> sans garantie implicite ou explicite.
Vous êtes autorisé à copier et distribuer des versions modifiées de ce document
sous les conditions de la copie intégrale, à condition que les modifications
soient clairement indiquées et que le document ne soit pas présenté comme officiel.
Ce document est disponible sur tous les sites du CTAN (L'annexe D
page ?? donne les références complètes). Envoyez vos
question et suggestions par courrier électronique à tds@tug.org ou
par voie postale à Karl Berry, 135 Center Hill Road, Plymouth, MA 02360,
USA. Tous les commentaires seront les bienvenus.
1 Introduction
TeX est un système de composition de textes flexible et puissant, utilisé
par beaucoup de gens dans le monde. Il est facilement portable et peut fonctionner
sur pratiquement tous les systèmes d'exploitation. Une des conséquences de la
flexibilité de TeX est qu'il n'existe pas une seule << bonne >> manière
de l'installer. Le résultat est que beaucoup de sites ont des installations
différentes.
Le but premier de ce document est de décrire une structure standard de répertoires
pour TeX (TeX Directory Structure : TDS) : une hiérarchie de répertoires
pour les macros, les fontes et les autres ajouts indépendants du système de
fichiers de TeX. De manière concrète, ce document suggère aussi des manières
d'insérer le reste des fichiers destinés à TeX dans une structure unique.
La TDS a été conçue pour fonctionner sur tous les systèmes modernes. En particulier,
le Technical Working Group (TWG) affirme qu'elle est utilisable sous Mac-OS,
MS-DOS, Unix, VMS et Windows NT. Nous espérons que les administrateurs et développeurs
des installations libres ou commerciales de TeX adopteront ce standard.
Ce document est destiné à la fois aux administrateurs d'un système TeX et
aux personnes qui préparent des distributions de TeX - que ce soit un système
complet, une simple macro ou un fichier de style. Il pourra aussi aider les
utilisateurs de TeX à trouver leur chemin dans les installations organisées
de cette manière. Ce n'est pas un tutoriel : nous supposons connue la majeure
partie d'un système TeX. Si vous n'êtes pas familiarisé(e) avec les programmes
ou les formats de fichier auxquels nous faisons référence, consultez les références
dans l'annexe D page ??.
1.1 Rôle de la TDS
Le rôle de la TDS est de stabiliser l'organisation des paquetages de fichiers
en lien avec TeX, ceux qui sont installés et ceux qui sont utilisés, éventuellement
sur plusieurs plates formes simultanément.
En première approche, il pourrait sembler que les archives du Comprehensive
TeX Archive Network (CTAN) assument une partie de ce rôle, mais ce n'est
pas le cas. Le rôle du CTAN est de simplifier l'archivage et la distribution,
pas l'installation ni l'utilisation.
En fait, les rôles de la TDS et du CTAN sont fréquemment en conflit, comme vous
pourrez le voir plus loin dans ce document. Pour la distribution, plusieurs
types de fichiers différents peuvent être combinés ; à l'utilisation, il est
fréquent de répartir des fichiers (souvent similaires) depuis un paquetage unique
dans des répertoires distincts, éventuellement éloignés.
1.2 Conventions
Dans ce document, / est utilisé pour séparer les composants des noms
de fichier; par exemple, texmf/fonts. C'est une convention Unix, mais
elle ne lui est pas spécifique.
Dans ce document, << TeX >> signifie généralement le système TeX,
ce qui inclut METAFONT, les pilotes DVI, des utilitaires, etc. et pas seulement
le logiciel TeX lui-même.
Le mot << paquetage >> (package) a, dans ce document, la signification
habituelle : un ensemble de fichiers distribué, installé et maintenu comme une
entité. Ce n'est pas un paquetage LATEX 2e, qui est un fichier de style
ajouté à une classe de document.
Nous utilisons les conventions typographiques suivantes :
-
literal Le texte tel que le nom-de-fichier est tapé en caractères
de machine à écrire.
- remplacable Le texte tel que paquetage, qui identifie
une classe d'objet, est tapé en italique et en caractères de machine à écrire.
2 Généralités
Cette partie décrit les propriétés communes à l'arborescence de la TDS.
2.1 Recherche dans les sous-répertoires
Beaucoup d'installations de TeX stockent un grand nombre de fichiers dans
des répertoires uniques, par exemple, tous les fichier TFM et/ou tous
les fichiers TeX.
Cette organisation monolithique gêne la maintenance d'un système TeX : il
est difficile de déterminer quels fichiers sont utilisés par quel paquetage,
quels sont les fichiers à mettre à jour lorsqu'une nouvelle version est installée
ou quels fichiers devront être effacés si un paquetage est retiré. C'est aussi
une source d'erreurs lorsque deux (ou plus) paquetages arrivent à avoir des
fichiers portant le même nom.
Par conséquent, le TWG préconise que chaque paquetage soit installé dans un
répertoire différent. Cependant, nous reconnaissons que la liste de tous les
répertoires dans lesquels chercher deviendrait illisible. Un site peut vouloir
installer des dizaines de paquetages. En plus de cela, lister autant de répertoires
pourrait produire des chemins de recherche de plusieurs centaines de caractères,
saturant l'espace disponible sur certains systèmes.
Ainsi, si tous les répertoires étaient listés, installer ou enlever un nouveau
paquetage voudrait dire changer le chemin aussi bien qu'installer ou enlever
les fichiers existants. Cela prendrait du temps et serait source d'erreurs,
même pour les installations qui proposent une technique pour spécifier les répertoires
au moment de l'utilisation. Sur les systèmes qui ne s'auto-configurent pas au
démarrage, cela impliquerait de recompiler le logiciel, un fardeau insupportable
(sic !).
Finalement, le TWG a conclu qu'une TDS compréhensible nécessite le support d'une
forme implicite de recherche dans les sous-répertoires. Plus précisemment, les
installations doivent faire en sorte qu'il soit possible que TeX, METAFONT
et leurs utilitaires effectuent leurs recherches de fichiers dans un répertoire
donné et, simultanément, de manière récursive dans les sous-répertoires de ce
répertoire. Les autres manières de rechercher dans les sous-répertoires, par
exemple la recherche << en remontant d'un niveau >>, peuvent aussi être
proposées. Nous encourageons les installateurs à proposer la recherche par sous-répertoire
comme option du processus d'installation et d'utilisation pour tous les répertoires.
La TDS ne précise pas de syntaxe pour préciser la recherche récursive, mais
nous engageons les installateurs à proposer de l'interopérabilité (voir Annexe
B page ??).
2.2 Enraciner l'arbre
Dans ce document, nous désignerons le fichier racine de la TDS par texmf
(au lieu de << TeX et METAFONT >>). Nous recommandons d'utiliser
ce terme, autant que possible, mais le nom actuel du répertoire est à la charge
de l'installateur. Sur un réseau, par exemple, il peut renvoyer à un lecteur
logique tel que T :.
De la même manière, l'emplacement de ce répertoire dans le système est dépendant
du site. Il peut être à la racine du fichier système. Sur les systèmes Unix, /usr/local/share,
/usr/local, /usr/local/lib et /opt sont des choix courants.
Le nom texmf a été choisi pour plusieurs raisons : il reflète le fait
que le répertoire contient les fichiers appartenant à un système TeX complet
(y compris METAFONT, MetaPost, BibTeX, etc.) et pas seulement TeX tout
seul et cela renvoie à une installation générique plutôt qu'à une installation
particulière.
Un site peut choisir d'avoir plus d'une hiérarchie TDS installée (par exemple
lors de l'installation d'une mise à jour). Cela est parfaitement légitime.
2.3 Ajouts locaux
La TDS ne peut pas préciser si un paquetage est, ou n'est pas, un << ajout
local >>. Chaque site doit déterminer ceci en accord avec ses propres conventions.
Aux deux extrêmes, un site peut considérer comme << non locaux >> tous
les fichiers qui ne font pas partie de l'installation de TeX, un autre site
peut considérer comme << locaux >> les seuls fichiers développés localement
et qui ne sont pas distribués par ailleurs.
Nous admettons les deux manières pour les ajouts locaux dans l'arborescence
de texmf.Toutes les deux ont leur place; en fait, certains peuvent
employer les deux méthodes simultanément.
-
Une arborescence totalement séparée, laquelle forme elle-même une TDS ; par
exemple, /usr/local/umbtex pour l'Université du Massachusetts à Boston.
C'est un exemple des hiérarchies texmf mentionnées dans la section
précédente.
- Un répertoire nommé local à tous les niveaux appropriés, par exemple
dans les répertoires format, package et suppliers abordés
dans les sections suivantes. La TDS réserve le nom de répertoire local
pour cela.
Nous recommandons d'utiliser local pour les fichiers configurés localement,
tel que language.dat pour le paquetage Babel ou graphics.cfg
pour le paquetage graphics. Les fichiers non-modifiés d'un paquetage donné doivent
rester dans le répertoire du paquetage. L'idée est de séparer les fichiers modifiés
ou créés localement des fichiers originaux afin de faciliter l'installation
de nouvelles versions.
Un cas courant d'ajouts locaux concerne les fichiers générés dynamiquement,
tels que les fontes pk avec le script MakeTeXPK utilisé par Dvips. On peut
stocker les fichiers générés :
-
à leur emplacement standard dans l'arborescence principale de la TDS (si elle
peut être rendue accessible en écriture à tout le monde) ;
- à un emplacement déterminé dans l'arborescence principale de la TDS (par exemple,
dans texmf/fonts/tmp) ;
- dans une seconde arborescence TDS complète (comme souligné plus haut) ;
- dans n'importe quel répertoire adapté (peut-être dans /var, par exemple /var/spool/fonts).
Il n'y a pas de solution unique valable pour tout le monde.
2.4 Noms de fichiers en double
Des fichiers différents avec le même nom peuvent exister dans l'arborescence
de la TDS. La TDS ne précise pas lequel des deux fichiers ayant le même nom
sera trouvé via le chemin de recherche. En général, le seul moyen de retrouver
un fichier donné est qu'il ait un nom unique. Cependant, la TDS exige que les
installations puissent supporter les exceptions suivantes :
-
Le nom des fichiers TeX doit être unique à l'intérieur de chacun des sous-répertoires
de premier niveau de texmf/tex et de texmf/tex/generic, mais
pas obligatoirement à l'intérieur de texmf/tex ; ainsi des formats
TeX différents peuvent avoir le même nom. (La section 3.1 page
?? traite de cela plus loin.) Ainsi, un simple chemin de recherche
indépendant du format, tel qu'une recherche récursive commençant à texmf/tex
sans préciser d'autres répertoires, ne peut suffire. Les installations doivent
donc proposer des spécifications de chemin de recherche dépendantes du format,
sous forme de scripts ou de fichiers de configuration.
- Beaucoup de fichiers de fontes auront un nom identique (tel que crm10.pk)
comme cela est indiqué dans la section 3.2.2 page ??.
Les installations doivent distinguer ces fichiers, par mode et résolution.
Toutes les installations que nous connaissons en sont capables.
Des emplacements où on retrouve des noms de fichiers en double ne sont pas rares.
- Les noms de fichiers source METAFONT (à l'inverse des bitmaps) doivent être
uniques à l'intérieur de tous les texmf/fonts. En pratique, il y a
un problème avec quelques variantes de Computer Modern, qui contiennent des
fichiers légèrement modifiés nommés punct.mf, roman1.mf, etc.
Nous pensons que la seule solution valable est de renommer ces fichiers dérivés
afin qu'ils aient un nom unique.
3 Répertoires de premier niveau
Les répertoires à l'intérieur de la racine texmf correspondent aux
composants principaux d'un système TeX (voyez la section 4
page ?? pour un résumé). Un site peut se dispenser des
répertoires inutiles pour lui.
Quoique, par nature, la TDS puisse seulement spécifier les emplacements pour
les fichiers indépendamment de l'installation, nous reconnaissons que les installateurs
puissent vouloir placer les autres fichiers à l'intérieur de texmf
afin de simplifier la gestion de l'arborescence de TeX, notamment lorsqu'elle
est assurée par quelqu'un d'autre que l'administrateur système. Par conséquent,
des répertoires supplémentaires de premier niveau peuvent être présents.
Les répertoires de premier niveau proposés par la TDS sont :
-
tex pour les fichiers TeX (section 3.1 page ??).
- fonts pour les fichiers de fontes (section 3.2 page ??).
- metafont pour les fichiers METAFONT qui ne sont pas des fontes (section
3.3 page ??).
- metapost pour les fichiers MetaPost (section 3.4 page ??).
- bibtex pour les fichiers BibTeX (section 3.5 page ??).
- doc pour la documentation destinée aux utilisateurs (section 3.6
page ??).
- source pour les sources. Cela inclut les fichiers sources des programmes
(par exemple, les sources de Web2c vont dans texmf/source/web2c) aussi
bien que, par exemple, les sources LATEX dtx (qui vont dans texmf/source/latex).
La TDS ne précise pas la structure à l'intérieur du répertoire source.
source est destiné aux fichiers qui ne sont pas nécessaires au démarrage
d'un programme TeX quelconque ; il ne doit donc pas être inclus dans un chemin
de recherche. Par exemple, plain.tex ne doit pas appartenir à texmf/source
quoiqu'il soit un << fichier source >> au sens où il n'est pas dérivé
d'un autre fichier (il va dans texmf/tex/plain/base comme cela est
expliqué dans la section 3.1 page ??).
- implementation est destiné aux installations (par exemple : emtex, web2c)
nécessaires aux intentions particulières de l'installateur ou de l'administrateur
TeX. Les fichiers ne peuvent pas être partagés entre diverses installations,
ainsi les fichiers pool (tex.pool) ou les fichiers de sauvegarde de
la mémoire (plain.fmt) vont ici, en complément des fichiers de configuration
générale de l'installation. Voyez la section B.3
page ?? pour des exemples réels
d'arborescence implementation.
- extension est destiné à accueillir les fichiers spécifiques aux nouveaux
programmes (exemples : etex, pdftex, omega) qui sont des extensions
de TeX, METAFONT ou d'autres programmes standards. Voyez la section 3.7
page ??.
- program est destiné aux fichiers d'entrée et de configuration de tous
les programmes en lien avec TeX (par exemple, mft, dvips). En fait, tex,
metapost, bibtex et extension, cités ci-dessus, peuvent être vus comme
des illustrations de ce cas de figure.
3.1 Macros
Les fichiers de macros doivent être rangés dans des répertoires séparés, triés
par format et nom de paquetage (nous utilisons << format >> au sens
traditionnel de TeX, qui signifie un paquetage auquel on peut appliquer la
commande dump) :
texmf/tex/format/package/
-
format est un nom de format (par exemple : amstex, latex,
plain, texinfo).
La TDS autorise les distributions qui peuvent être utilisées avec d'autres
formats ou paquetages (par exemple, Texinfo, Eplain) a être rangées
à un autre niveau, au choix de l'auteur du format ou de l'administrateur TeX.
Nous recommandons que les paquetages utilisés comme format dans un site particulier
soient rangés au niveau format : en ajustant le chemin
de recherche de TeX, il sera directement possible de les utiliser comme paquetages
de macros avec d'autres formats, alors que les placer dans une autre arborescence
interdirait leur utilisation possible en tant que format.
La TDS réserve l'usage des noms suivants pour format :
* generic, pour les fichiers qui sont utiles pour un grand nombre
de formats (par exemple, null.tex, path.sty). En général cela comprend
tous les formats qui peuvent utiliser le codage Plain Tex et qui ne sont pas
dépendants d'un format particulier. Á l'inverse, on trouve les fichiers qui
ne sont utilisables qu'avec Plain TeX (qui vont dans texmf/tex/plain)
tels que testfont.tex et plain.tex lui-même.
* local, pour les ajouts locaux. Voyez la section 2.3
page ??.
Ainsi, il est nécessaire, pour la quasi-totalité des formats, de faire une
recherche au minimum dans le répertoire format et ensuite dans le répertoire generic
(dans cet ordre). D'autres répertoires peuvent aussi être explorés, selon les
formats utilisés. Lorsque vous utilisez AMS-TeX, par exemple, les répertoires amstex,
plain et generic doivent être explorés, car AMS-TEX est compatible
avec Plain.
- package est un nom de paquetage TeX (exemple : babel,
texdraw).
Dans le cas où un format consiste simplement en un seul fichier sans paquetage
auxiliaire, ce fichier peut être simplement placé dans le répertoire format
à la place de /format/base. Par exemple, Texinfo va dans texmf/tex/texinfo/texinfo.tex
et NON PAS dans /texmf/tex/texinfo/base/texinfo.tex.
La TDS réserve les noms suivants pour package :
* base pour la distribution de base de chaque format, y compris
les fichiers utilisés par INITEX lorsqu'on << dump >> les fichiers de
format. Par exemple, dans la distribution LATEX standard, les fichiers ltx
créés durant le processus de construction seront rangés dans le répertoire base.
* hyphen pour les modèles de césure, y compris le fichier original
anglais-américain hyphen.tex. Il est utilisé typiquement par INITEX.
Dans la plupart des cas, ce répertoire existe seulement dans le format generic.
* images, pour les fichiers d'images, telles les images en Encapsulated
PostScript. Quoiqu'il ne soit pas très intuitif de les retrouver dans un répertoire
nommé tex, TeX a besoin de lire ces fichiers pour obtenir la << bounding
box >> et d'autres informations. Un mécanisme pour partager ces fichiers
d'images entre TeX et d'autres programmes de composition de documents (tels
que Interleaf, FrameMaker) est au-delà du propos de la TDS. Dans la plupart
des cas, ce répertoire n'a besoin d'exister qu'à l'intérieur de generic.
- local, pour les ajouts locaux et les fichiers de configuration. Voyez
la section 2.3 page ??.
- misc, pour les paquetages constitués d'un seul fichier. Un administrateur
ou un mainteneur de paquetage peut créer des répertoires pour des paquetages
constitués d'un seul fichier à sa discrétion, au lieu d'utiliser misc.
3.2 Fontes
Les fichiers de fontes seront rangés dans des répertoires séparés, classés par
type de fichier, fondeur et forme (les fichiers pk et pg ont
besoin d'une structure supplémentaire, comme cela est expliqué dans la section
qui suit) :
texmf/fonts/type/supplier/typeface
-
type est le type de fichier de fonte. La TDS réserves les noms suivants,
pour type :
* afm pour Adobe font metrics.
* gf, pour les fichiers de fontes bitmaps génériques.
* pk, pour les fichiers bitmaps empaquetés.
* source, pour les sources de fontes (fichiers METAFONT, listes
de propriétés, etc.)
* tfm, pour les fichiers TeX font metric.
* type1, pour les fichiers de fonte Type1 (dans tous les formats).
* vf, pour les fontes virtuelles.
Comme à l'habitude, un site peut se dispenser des répertoires qui ne lui seraient
pas nécessaires (gf est un candidat typique pour cela).
- supplier est un nom identifiant la source de la fonte (exemples, adobe,
ams, public). La TDS réserve les noms suivants pour supplier :
* ams, pour la collection des fontes de l'American Mathematical
Society.
* local, pour les ajouts locaux. Voir la section 2.3
page ??.
* public, pour les fontes librement distribuées qui ne nécessitent
pas leur propre répertoire (comme ams) et ne sont pas des fontes propriétaires
(comme abode). Ce répertoire ne doit pas contenir toutes les fontes
librement distribuables non plus que tous les fichiers s'ils ne sont pas entièrement
dans le domaine public.
* tmp pour les fontes générées dynamiquement, comme cela est habituel
avec certains systèmes. Comme d'habitude, il peut être omis s'il n'est pas nécessaire.
- typeface est le nom d'une famille de formes (exemples, cm, euler, times).
La TDS réserve les noms suivants pour typeface :
* cm (à l'intérieur de public) pour les fontes 75 définies dans
Computer and Typesetting, Volume E.
* latex (à l'intérieur de public) pour les fontes
distribuées avec LATEX dans la distribution de base.
* local, pour les ajouts locaux. Voir section 2.3
page ??.
Quelques exemples concrets :
texmf/fonts/source/public/pandora/pnr10.mf
texmf/fonts/tfm/public/cm/cmr10.tfm
texmf/fonts/type1/adobe/utopia/putr.pfa
Pour une liste complète des fondeurs et des types de fontes, consultez Filenames
for TeX fonts (voyez l'annexe D page ??).
3.2.1 Fontes bitmaps
Les fichiers de fontes bitmaps requièrent deux caractéristiques conjointes pour
être identifiables d'une seule manière :
-
le type de périphérique (i.e. mode) pour lequel la fonte a été créée ;
- la résolution de la bitmap.
Selon l'habitude, la TDS range les fontes selon les différents types de périphériquess
dans des répertoires séparés. Voyez modes.mf dans l'annexe D
page ??, pour la manière de nommer ces modes.
Quelques imprimantes fonctionnent dans plus d'une résolution (par ex., à 300
et 600 dpi), mais chaque résolution doit avoir nécessairement un nom de mode
différent. Rien de plus n'est nécessaire puisque TeX fonctionne implicitement
avec une seule résolution finale pour l'impression.
On utilise couramment deux stratégies d'appellation pour identifier la résolution
des fichiers de fontes bitmap. Sur les systèmes qui autorisent les noms de fichiers
longs (et dans le programme METAFONT original lui-même), la résolution est incluse
dans le nom du fichier (par ex., cmr10.300pk). Sur les systèmes qui
ne supportent pas les noms de fichier longs, les fontes sont généralement rangées
dans des répertoires, classées par résolution (par ex., dpi300/cmr10.pk).
Comme la TDS ne peut imposer des noms de fichiers longs, nous devons utiliser
la dernière méthode afin de nommer les fontes. Nous avons donc deux niveaux
supplémentaires de sous-répertoires, pour pk et gf :
texmf/fonts/pk/mode/supplier/typeface/dpinnn
texmf/fonts/gf/mode/supplier/typeface/dpinnn
-
mode est un nom qui identifie le type de périphérique (par ex., cx,
ljfour, modeless). Habituellement, c'est le nom du mode METAFONT utilisé pour
construire le fichier pk. Pour les fontes converties en bitmap par
un programme qui ne distingue pas les différents péirphériques de sortie, le
nom de mode sera simplement modeless. Le niveau mode ne doit
pas être omis, sauf s'il apparaît qu'un seul mode est effectivement utilisé.
- dpinnn précise la résolution de la fonte (exemples : dpi300,
dpi329). dpi signifie << dot per inch >> (points par pouce),
c'est à dire pixels par pouce. Nous savons que << pixels par millimètre >>
est utilisé un peu partout dans le monde, mais dpi est trop ancré dans
le monde TeX pour envisager d'en changer maintenant.
L'entier nnn doit être calculé comme si on utilisait l'arithmétique
de METAFONT puis il est arrondi ; autrement dit, c'est l'entier METAFONT utilisé
dans les noms de fichiers gf. Il existe de petites différences de résolution
qui sont cause de frustration pour quelques utilisateurs, cependant nous recommandons
aux installateurs de suivre le niveau 0 du pilote DVI standard (voir annexe
D page ??) dans les recherches
de fontes bitmap en allouant une marge de ± 0.2% (avec un minimum
de 1) pour dpi.
Les installations peuvent proposer des extensions au schéma de base d'appellation,
telles que des noms de fichier longs (comme le METAFONT original) et les fichiers
de bibliothèques de fontes (comme les fichiers .fli de emTeX), dans
la mesure où le système de base est préservé.
3.2.2 Fontes bitmap valides
Le TWG reconnaît que l'usage des noms de fichier courts présente plusieurs inconvénients.
Le plus ennuyeux est la création de douzaine de fichiers différents portant
le même nom. Sur un site typique, cmr10.pk sera le nom pour la fonte
Computer Modern Roman 10 points avec 5 à 10 grossissements et 2 ou 3 modes.
(La section 2.4 page ??
traite de la duplication des noms de fichier d'une manière générale.)
Pour limiter le problème, nous recommandons vivement que les fichiers pk contiennent
suffisamment d'informations pour identifier de manière précise la manière dont
ils ont été générés : au moins le mode, la résolution de base et le grossissement
utilisé pour créer la fonte.
Cette information est facile à fournir : un simple ajout au mode local utilisé
pour construire les fontes avec METAFONT fournira l'information requise. Si
vous avez utilisé un mode local dérivé de (ou directement) modes.mf
(voir l'annexe D page ??),
l'information en question sera aussi dans vos fichiers pk. Si ce n'est
pas le cas, un ajout basé sur le code trouvé dans modes.mf peut être
appliqué à votre fichier modes local et les fichiers pk reconstruits.
3.3 Fichiers METAFONT autres que des des fontes
La plupart des fichiers METAFONT sont des fichiers de fontes ou des parties
de fichiers de fonte et sont donc traités dans la section précédente. Cependant,
il peut exister quelques fichiers qui ne soient pas des fichiers de fonte. De
tels fichiers peuvent être rangés dans :
texmf/metafont/package/
où package est le nom d'un paquetage METAFONT (par ex., mfpic).
La TDS réserve les noms de paquetages suivant :
-
base, pour les fichiers de macro METAFONT standards tels que décrits
dans The METAFONTbook, comme plain.mf et expr.mf.
- local, pour les ajouts locaux. Voir la section 2.3
page ??.
- misc, pour les paquetages METAFONT réduits à un seul fichier (par exemple, modes.mf).
Un administrateur ou un mainteneur de paquetages peut créer des répertoires
pour les paquetages réduits à un seul fichier à sa convenance, plutôt que d'utiliser misc.
3.4 MetaPost
MetaPost est un language de création d'images dérivé du METAFONT de Knuth.
Sa première fonction est de générer des fichiers en PostScript Encapsulé au
lieu de fichiers bitmaps.
Les fichiers MetaPost et les fichiers utilitaires correspondants doivent être
stockés dans :
texmf/metapost/package
où package est le nom du paquetage MetaPost. Actuellement, il
n'en n'existe pas, mais le TWG pense qu'il est prudent de laisser de la place
pour des paquetages qui seraient écrits dans le futur.
La TDS réserve les noms suivants pour package :
-
base, pour les fichiers de macros MetaPost, tels que plain.mp,
mfplain.mf, boxes.mp et graph.mp. Cela inclut les fichiers utilisés
par INIMP lorsqu'il << dump >> les fichiers contenant des définitions
de macros.
- local, pour les ajouts locaux. Voir section 2.3 page
??.
- misc, pour les paquetages MetaPost constitués d'un unique fichier.
Les administrateurs ou mainteneurs de paquetage peuvent créer des répertoires
pour les paquetages constitués d'un seul fichier comme ils l'entendent, au lieu
d'utiliser misc.
- support, pour les fichiers additionnels requis pour les programmes
utilitaires de MetaPost, y compris les fichiers de fontes, les tables de correspondances
de caractères et des sous-répertoires contenant les programmes MetaPost de bas
niveau servant à afficher des caractères spéciaux.
3.5 BibTeX
Les fichiers en relation avec BibTeX doivent être stockés dans :
texmf/bibtex/bib/package
texmf/bibtex/bst/package
Le répertoire bib est destiné à accueillir la base de données des fichiers
BibTeX (.bib) et le répertoire bst est destiné aux fichiers
de styles (.bst).
package est le nom du paquetage BibTeX. La TDS réserve les
noms suivants pour package (les mêmes noms sont réservés pour bib
et bst).
-
base, pour les bases de données et les styles standards de BibTeX,
tels que xampl.bib, plain.bst.
- local, pour les ajouts locaux. Voir la section 2.3
page ??.
- misc, pour les paquetages BibTeX constitués d'un seul fichier. Les
administrateurs ou mainteneurs de paquetage peuvent créer des répertoires pour
les paquetages constitués d'un seul fichier comme ils l'entendent, au lieu d'utiliser misc.
3.6 Documentation
La plupart des paquetages sont fournis avec de la documentation : manuels de
l'utilisateur, fichiers d'exemples, guides de programmation, etc. De plus, beaucoup
de fichiers qui ne font pas partie d'un paquetage décrivent des aspects variés
du système TeX.
La TDS précise que ces fichiers additionnels de documentation doivent être stockés
dans une structure similaire à celle utilisée pour les répertoires fonts
et tex, comme indiqué ci-dessous :
texmf/doc/category/...
où category donne le sujet général de la documentation qu'il
contient ; par exemple, un nom de format TeX (latex), un nom de
programme (bibtex, tex), un langage (french, german) ou d'autres
composantes du système(web, fonts).
La TDS réserve les noms suivants :
-
Dans chaque arborescence category d'un format TeX, le répertoire base
est réservé pour la documentation de base fournie par le mainteneur du format.
- general, est destiné aux documents isolés qui ne sont pas spécifiques
à un programme particulier (par exemple Components of TeX par Joachim
Schrod).
- help, pour l'information globale, telle que FAQ, index des macros de
David Jones, etc.
- html, pour les documents au format HTML.
- info, pour les documents au format Texinfo (les fichiers d'information,
comme tous les autres, peuvent aussi être rangés en dehors de la TDS, selon
le choix de l'installateur).
- local, pour les ajouts locaux. Voir la section 2.3
page ??.
Le répertoire doc est destiné aux fichiers de documentation indépendants
des implémentations et indépendants des systèmes d'exploitation. Les fichiers
dépendants d'une implémentation doivent être stockés ailleurs, comme cela aura
été proposé par l'administrateur TeX ou l'installateur (par exemple, les
fichiers d'aide VMS seront dans texmf/vms/help).
Les répertoires de documentation doivent contenir les sources TeX, les fichiers
DVI, les fichiers PostScript, les fichiers texte, les fichiers d'exemples et
toute documentation utile sous n'importe quel format.
3.7 Extensions
Les nouveaux programmes qui seraient des extensions d'autres plus anciens doivent
utiliser un nouveau répertoire de premier niveau pour leurs fichiers spécifiques
à cette extension. Le nouveau répertoire doit avoir la même structure générale
que le répertoire de premier niveau du programme originel, et le nouveau programme
devra certainement effectuer des recherches dans le répertoire de premier niveau
du programme d'origine.
Par exemple, beaucoup de variantes de TeX qui reconnaissent des commandes
additionnelles ont été proposées. Les fichiers qui utilisent ces nouvelles commandes
ne peuvent être placés dans le répertoire de premier niveau tex, dans
la mesure où le programme TeX original ne peut pas les lire. Ils doivent
ainsi aller dans un nouveau répertoire avec la même structure de paquetage que tex
(voir la section 3.1 page ??).
Avec e-TeX comme exemple, cela donne ce qui suit :
-
Un nouveau répertoire de premier niveau (dans texmf), nommé etex.
- Puisque e-TeX est un extension de TeX, texmf/etex suit les mêmes
conventions que texmf/tex. texmf/etex ne contient que les fichiers
spécifiques à e-TeX.
- e-TeX effectuera ses recherche en premier lieu dans texmf/etex,
puis dans texmf/tex.
Le même principe s'applique pour PDFTeX, Omega, et (très probablement) pour
les futures variantes de TeX ou METAFONT.
4 Résumé
Voici le squelette d'une arborescence TDS pour texmf. Cela ne signifie
pas que ce sont les seules entrées autorisées. Par exemple, local peut
être présent à n'importe quel niveau.
bibtex/ fichiers BibTeX
bib/ bases de données BibTeX
base/ distribution de base (par ex., xampl.bib)
misc/ base de données sous forme d'un seul fichier
<package>/ nom d'un paquetage
bst/ fichiers de style BibTeX
base/ distribution de base (par ex., plain.bst,
acm.bst)
misc/ style sous forme d'un fichier unique
<package>/ nom d'un paquetage
doc/ voir la section Documentation et le résumé
ci-dessous
etex/ comme tex ci-dessous
fonts/ fichiers relatifs aux fontes
<type>/ type de fichier (par ex., pk)
<mode>/ type de dispositifs de sortie (pour pk et
gf seulement)
<supplier>/ nom d'un fondeur (par ex., public)
<typeface>/ nom d'un type de caractère (par ex., cm)
dpi<nnn>/ résolution d'une fonte (pour pk et gf seulement)
<implementation>/ implémentations de TeX, triées par nom (par
ex., emtex)
local/ fichiers créés ou modifiés localement
sur le site
metafont/ fichiers METAFONT (autres que des fontes)
base/ distribution de base (par ex., plain.mf)
misc/ paquetages constitués d'un seul
fichier (par ex., modes.mf)
<package>/ nom d'un paquetage (par ex., mfpic)
metapost/ fichiers et annexes MetaPost
base/ distribution de base (par ex., plain.mp)
misc/ paquetages constitués d'un seul
fichier
<package>/ nom d'un paquetage
support/ fichiers des utilitaires MetaPost
mft/ sources MFT (par ex., plain.mft)
<program>/ programmes en rapport avec TeX, classés
par nom (par ex., dvips)
source/ code source de programme, classé par
nom (par ex., latex, web2c)
tex/ fichiers TeX
<format>/ nom d'un format (par ex., plain)
base/ distribution de base d'un format
(par ex., plain.tex)
misc/ paquetage constitués d'un seul fichier
(par ex., webmac.tex)
local/ fichiers d'ajouts locaux ou de configuration
locale pour un format
<package>/ nom d'un paquetage (par ex., graphics,
mfnfss)
generic/ paquetages indépendants d'un format
hyphen/ modèles de césure (par ex., hyphen.tex)
images/ fichiers d'images (par ex., Encapsulated
PostScript)
misc/ paquetages indépendants, constitués
d'un seul fichier (par ex., null.tex).
<package>/ nom d'un paquetage (par ex., babel)
4.1 Résumé d'une arborescence de documentation
Voici le squelette d'une arborescence TDS sous texmf/doc. Cela ne signifie
pas que ce soient les seules entrées autorisées.
ams/
amsfonts/ amsfonts.faq, amfndoc
amslatex/ amslatex.faq, amsldoc
amstex/ amsguide, joyerr
bibtex/ BibTeX
base/ btxdoc.tex
fonts/
fontname/ Filenames for TeX fonts
oldgerm/ corkpapr
<format>/ nom d'un format TeX format (par ex., generic,
latex)
base/ pour la distribution de base
misc/ pour la documentation des paquetage constitué
d'un seul fichier
<package>/ pour les paquetages
general/ programmes transversaux, généralités
errata/ errata, errata[1-8]
texcomp/ Components of TeX
generic/ pour les paquetages TeX non-spécifiques à un
format
babel/
german/ germdoc
help/ meta-information
ctan/ infos à propos des sites miroirs du CTAN
faq/ FAQ de comp.text.tex, etc.
html/ fichiers HTML
info/ fichiers d'informations GNU, faits à partir
de sources Texinfo
latex/ exemple de format
base/ ltnews*, *guide, etc.
graphics/ grfguide
local/ documentation spécifique au site
<program>/ programmes en relation avec TeX, classés par
nom (des exemples suivent)
metafont/ mfbook.tex, metafont-for-beginners, etc.
metapost/ mpman, manfig, etc.
tex/ texbook.tex, A Gentle Introduction to
TeX, etc.
web/ webman, cwebman
A Éléments non-spécifiés
La TDS ne peut traiter des aspects suivants d'un système TeX fonctionnel
:
-
L'emplacement des programmes exécutables : ceci est trop dépendant des sites
pour que l'on puisse recommander un emplacement. On peut placer les exécutables
en dehors de texmf, tous ensembles (par ex. /usr/local/sbin),
dans un répertoire dépendant de la plate-forme, à l'intérieur de texmf
ou bien encore ailleurs.
- La mise à jour des paquetages lorsque de nouvelles livraisons ont lieu : nous
n'avons pas pu trouver de façon d'introduire les spécificateurs dans texmf
sans faire pire que mieux, ou qui serait commode pour la totalité des différentes
installations.
- L'emplacement des fichiers spécifique d'implantation (par ex. les fichiers TeX. fmt)
: de par leur nature même, ils doivent être laissés à l'appréciation de l'administrateur
ou de l'installateur de TeX. Voir la section B.3
page ??.
- Préciser quand un paquetage ou un fichier doit être considéré comme << local
>> et quand de tels fichiers locaux sont installés. Voir la section 2.3
page ?? pour plus d'information.
A.1 Noms de fichiers portables
La TDS ne peut imposer de restrictions particulières concernant les noms de
fichier dans l'arborescence, tant il est vrai que les noms des fichiers TeX
ne se conforment à aucun schéma standard. Pour le bénéfice de ceux qui voudraient
faire une installation ou une distribution de TeX portable, nous avons, cependant,
souligné ici les restrictions indispensables. Les spécifications de la TDS sont
elles-mêmes compatibles avec ces dernières.
ISO-9660 est le seul format de système de fichier acceptable pour les CD-ROM.
Il supporte de fortes limitations afin de fonctionner avec tous les systèmes
d'exploitation actuels. Il précise ce qui suit :
-
Les fichiers et noms de répertoires, non compris les noms de chemin ou les extensions,
ne peuvent excéder huit caractères.
- Les noms de fichiers ne doivent avoir qu'une seule extension. Les extensions
ne doivent pas excéder trois caractères. Les noms de répertoires ne doivent
pas avoir d'extension.
- Les noms et les extensions ne doivent être composés que des caractères
A-Z, 0-9 et tiret bas (underscore : _ ). Les caractères de bas de casse sont
exclus.
- Un point séparant le nom de l'extension doit toujours être présent même si le
nom ou l'extension sont absents (par ex. : FILENAME. ou .EXT).
- Un numéro de version, compris entre 1 et 32 767, doit être ajouté à l'extension
du fichier, séparé par un point-virgule (par ex. : FILENAME.EXT;1).
- On n'autorise que huit niveaux de répertoires, y compris le répertoire (monté)
de premier niveau (voir la section 2.2 page ??).
Ainsi, le chemin le plus profond conforme à la norme ISO-9660 est :
texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1
1 2 3 4 5 6 7 8
Le chemin TDS le plus profond ne nécessite que sept niveaux :
texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk
1 2 3 4 5 6 7
Quelques systèmes utilisent un format ISO-9660 modifié pour les noms, des correspondances
de caractères pour les minuscules, enlèvent les numéros de versions et les points
finaux, etc.
Depuis la livraison de décembre 1996, TeX utilise les noms en majuscules
ou minuscules pour les fichiers de descriptions de fontes. Heureusement, on
ne se réfère jamais uniquement à la casse pour distinguer les fichiers entre
eux. Il est cependant d'usage d'utiliser des noms de fichiers écrits avec des
caractères dans une seule casse.
B Proposer des implémentations
Nous pensons que la TDS peut apporter une grande aide à l'état anarchique actuel
de la plupart des installations de TeX. De plus, en proposant un cadre commun
de référence, on allège le fardeau d'administration de la documentation. Enfin,
elle est une partie nécessaire pour tout système se proposant d'accepter des
paquetages pour TeX.
B.1 Adoption de la TDS
[Cette section n'existe que pour des raisons historiques; la TDS est désormais
fortement implantée dans la plupart des distributions de TeX.]
Nous admettons que l'adoption de la TDS ne sera pas immédiate ou universelle.
La plupart des gestionnaires de TeX ne seront pas tentés de faire le saut
tant que :
-
La TDS ne montrera pas des bénéfices clairs et démontrables.
- Ne seront pas disponibles les versions conformes à la TDS des principaux programmes,
dans des versions portables et convenablement testées.
- Une période << d'installation >> n'aura pas pris place, pour résoudre
les problèmes. La mise à disposition publique du premier jet de ce document
fut le premier pas de ce processus.
De ce fait, la plupart des premiers essais de la TDS seront faits par des membres
du comité de la TDS et/ou des développeurs de programmes destinés à TeX.
Ceci à aussi été le sujet de nos délibérations (voir annexe D
page ?? pour un exemple d'arborescence disponible
sous forme électronique). Il en résultera certainement la production d'un nombre
important de paquetages conformes à la TDS. En effet, les distributions teTeX
et TeX Live sont conformes à la TDS et sont en usage en des nombreux endroits.
Depuis que les installations conformes à la TDS sont plus répandues, certains
administrateurs TeX veulent transformer leurs arborescences pour les rendre
compatibles, éventuellement en parallèle avec d'autres répertoires déjà existants
en contexte de production. Ce test permettra d'éliminer les problèmes qui n'étaient
pas évidents dans le cadre étroit des sites de développement ; par exemple,
cela aidera à résoudre les problèmes liés aux dépendances par rapport aux systèmes
d'exploitation et aux paquetages, à l'interdépendance entre paquetages et à
d'autres détails non traités dans cette version de la TDS.
Après que les petites difficultés auront été résolues, nous espérons que même
les plus conservateurs des administrateurs TeX commenceront à adopter la
TDS. Éventuellement, la plupart des sites adopteront la structure commune et
la plupart des paquetages seront accessibles d'une manière conforme à la TDS.
Nous pensons que cela se fera relativement vite. Le comité de la TDS et la communauté
TeX partagent de nombreux centres d'intérêt. En conséquence, nous estimons
que beaucoup des points traités afin de définir une définition utilisable de
la TDS ont été testés, souvent dans le détail. Des développeurs de TeX ont
été consultés à propos des possibilités d'implémentation et ont essayé la configuration
TDS. Nous pensons donc n'avoir que peu de surprises et que la TDS est mature.
Il y a de nombreux (actuels et futurs) éditeurs de CD-ROM TeX. Ces éditeurs
sont fortement motivés pour travailler dans le détail l'implantation de la TDS
et leurs productions permettront aux administrateurs TeX expérimentés d'avoir
des manières peu coûteuses d'expérimenter la TDS.
Des efforts sont en cours pour définir un << registre de la TDS >> qui
coordonnera les affectations de noms en conformité avec la TDS ainsi que pour
proposer une base de données actualisée des distributions de logiciels conformes
à la TDS (cela servira sans doute à beaucoup de sites pour définir ce qu'est
un paquetage local). Pour l'heure, les distributions disponibles sur le CTAN
ont un arrangement assez peu précis.
B.2 Plus sur la recherche dans les sous-répertoires
La recherche récursive dans les sous-répertoires est la possibilité de spécifier
une recherche non seulement dans un répertoire r donné, mais aussi
dans tous les sous-répertoires contenus dans r.
Puisque la TDS précise l'emplacement de la plupart des fichiers, sans autoriser
de sous-répertoires, la nécessité d'une réelle recherche récursive n'est pas
nécessaire pour une implémentation conforme à la TDS. Cependant, nous recommandons
fortement la recherche récursive car elle est la manière la plus naturelle et
la plus aisée d'aborder le problème, à l'inverse des méthodes compliquées destinées
à préciser des chemins de recherche sans utiliser la récursivité.
Cette possibilité est déjà en oeuvre dans beaucoup d'implémentations de TeX
et dans leurs utilitaires associés, tels que DECUS TeX pour VMS, Dvips(k),
emTeX (et ses pilotes), PubliC TeX, Web2c, Xdvi(k) et Y &YTeX. La
bibliothèque Kpathsea est une implémentation réutilisable de recherche dans
les sous répertoires de TeX, utilisées dans un grand nombre des programmes
mentionnés ci-dessus.
Même si votre installation de TeX ne supporte pas directement la recherche
dans les sous-répertoires, vous trouverez sans doute commode d'adopter cette
structure si vous n'utilisez pas trop de fontes ou de paquetages. Ainsi, si
vous utilisez uniquement les fontes Computer Modern et AMS, il sera facile de
les ranger dans la TDS et de les lister individuellement dans des fichiers de
configuration ou des variables d'environnement.
Le TWG reconnaît que la recherche dans les sous-répertoire ajoute une charge
supplémentaire au système et qu'elle est susceptible de créer des goulots d'étranglement,
notamment sur les machines les plus lentes. Néanmoins, nous prétendons que la
recherche dans les sous-répertoires est indispensables pour une TDS bien organisée
pour les raisons invoquées dans la section 2.1
page ??. Les installateurs sont encouragés
à proposer des développements au principe de base de la recherche dans les sous-répertoires
afin d'éviter des problèmes ; par exemple, l'utilisation d'un cache de noms
de fichiers (cela peut être aussi simple qu'une liste récursive de répertoires)
qui serait consulté avant que la recherche sur disque ne débute. Si une correspondance
est trouvée dans la base de données, la recherche récursive ne sera pas nécessaire
et l'efficacité sera ainsi indépendante du nombre de sous-répertoires présents
dans la machine.
Certaines implémentations précise la recherche dans les sous-répertoires de
manière différentes. Dans un but de clarté typographique, les exemples présentés
ici n'utilisent pas la fonte utilisée pour les variables.
-
Dvips : utilise une variable d'environnement TEXFONTS_SUBDIR.
- emTeX : t :\ subdir!!;t :\ subdir! pour
une recherche sur un seul niveau.
- Kpathsea : texmf/subdir//
- VMS : texmf : [subdir...]
- Xdvi (mise à jour 20) : texmf/subdir/**;texmf/subdir/* pour une
recherche sur un seul niveau. Les versions 20.50 et supérieures supportent la
syntaxe \ \ .
- Y & Y TeX : t : /subdir// ou t;\ subdir\ \ .
B.3 Exemple d'arborescence spécifiques
La TDS ne peut pas préciser d'emplacement précis pour les fichiers propres à
une implantation, tels que texmf/ini car un site peut avoir plusieurs
installations de TeX.
Néanmoins, à des fins d'information, nous proposons ici les emplacements par
défaut de quelques installations. Contactez-nous pour des ajouts ou de corrections.
Ces chemins ne sont pas définitifs, peuvent ne pas correspondre à votre site
et peuvent être modifiés sans aucun avertissement.
Nous recommandons que toutes les implantations aient des chemins de recherche
par défaut qui commencent au répertoire courant (par ex. .). Autoriser
les utilisateurs à y inclure le répertoire parent (par ex. ..) est
également utile.
B.3.1 AmiWeb 2c 2.0
(Envoyez un courrier électronique à scherer@physik.rwth-aachen-de pour
contacter le mainteneur de cette implémentation.)
AmiWeb2c est compatible avec Web2c 7 dans ses plus grandes extensions, donc
seules les toutes petites différences sont indiquées ici. Des informations détaillées
à propos des concepts de base sont données dans la section consacrée à Web2c
ci-dessous.
Grâce au mécanisme SELFAUTO de Kpathsea 3.0, il n'est pas nécessaire
de préciser un emplacement pour l'installation de Amiweb2c, dans la mesure ou
la structure globale de la distribution est préservée.
En plus de la notation // de Kpathsea, un chemin de recherche récursif
peut aussi commencer avec DEVICE :/ ; par exemple, TeXMF :/
passera complètement en revue l'emplacement spécifié.
Les binaires accompagnant AmiWeb2c sont rangés dans le répertoire bin/amiweb2c/
en dehors de l'arborescence TDS habituelle, qui est share/texmf/. En
plus de l'ensemble des binaires de AmiWeb2c vous trouverez deux sous-répertoires local/
et pastex/ avec les programmes auxiliaires.
Une version allégée de PasTeX (utilisée avec la permission de Georg Hessmann)
est proposée avec AmiWeb2c, pré-installée dans son propre sous-répertoire : share/texmf/amiweb2c/pastex.Si
vous voulez utiliser PasTeX vous devez utiliser assign pour assigner
le nom Tex : à cet endroit.
Les fichiers de documentation au format AmigaGuide doivent être rangés dans doc/guide
qui est l'équivalent de doc/info.
B.3.2 Public DECUS TeX
Si une autre implémentation VMS existe à côté de Public DECUS TeX, le répertoire
de plus haut niveau pour l'implémentation sera modifié en quelque chose de plus
spécifique (par exemple vms_decus).
texmf/
vms/ fichiers spécifiques à VMS
exe/ commandes utilisateur
common/ procédures de commandes, fichier de configuration
de commandes, etc.
axp/ binaires exécutables pour Alpha AXP
vax/ binaires exécutables pour VAX
formats/ fichiers pool, formats, bases
help/ bibliothèque d'aide VMS et diverses sources
de documentation
mgr/ procédures de commandes, programmes, doc. etc.
pour la gestion du système
B.3.3 Web2c 7
Tous les fichiers TeX dépendant de l'implémentation (.pool, .fmt,
.base, .mem) sont rangés par défaut directement dans texmf/web2c.
Le fichier de configuration texmf.cnf et de nombreux scripts auxiliaires MakeTeX
utilisés comme sous-programmes sont aussi rangés à cet endroit.
Les fichiers TeX non-spécifiques sont rangés en suivant la codification GNU
standard. En donnant un prefix pour le répertoire racine (/usr/local
par défaut), on a les emplacements suivants :
<prefix>/ racine de l'installation (/usr/local par défaut)
bin/ exécutables
man/ pages de manuel
info/ fichiers d'information
lib/ bibliothèques (libkpathsea.*)
share/ fichiers indépendants de l'installation
texmf/ racine de la TDS
web2c/ fichiers propres à l'implantation (.pool, .fmt,
texmf.cnf, etc.)
Voyez ftp ://ftp.gnu.org/pub/gnu/standards.text pour les raisons profondes
et les descriptions de cette organisation. Un site peut évidemment dépasser
ces propositions par défaut ; par exemple, il peut tout mettre dans un seul
répertoire tel que /usr/local/texmf.
C Y a-t-il une meilleure manière de procéder ?
Définir la TDS a nécessité de nombreux compromis. La structure générale et le
détail des répertoires individuels ont été fixés en trouvant un arrangement
commun parmi diverses opinions. La ligne de conduite à été la faisabilité (en
termes de ce qui était techniquement possible de faire et ce qui était raisonnable
d'attendre des développeurs) et la cohérence (les fichiers sont regroupés d'une
manière << sensée >>).
Quelques idées intéressantes n'ont pû être appliquées du fait du manque de supports
:
-
Le contrôle de la recherche au niveau de TeX. Si des documents pouvaient
restreindre la recherche dans les sous-répertoires avec une syntaxe de noms
de fichier portable, les recherches sur les noms uniques de fichiers seraient
considérablement allégées (avec la coopération des formats) et la recherche
de chemin par TeX ne serait plus dépendante du format.
- Arborescences logiques multiples pour TeX. Par exemple, un site pourrait
avoir un seul emplacement (en lecture seul) pour les fichiers stables et différents
répertoires (en lecture et écriture) pour les fichiers de fonte créés dynamiquement
ou d'autres fichiers. Il serait ainsi possible de fusionner logiquement deux
arborescences de ce type à l'occasion d'une recherche.
C.1 Structure pour les macros
Le TWG a fixé l'organisation de format/package après de longues discussions
sur la meilleure manière de ranger les fichiers.
La première version de cette organisation fut un schéma renversant l'ordre de
ces répertoires : package/format. Cette organisation inversée a un
gros avantage : elle place tous les fichiers propres à un paquetage donné en
un seul endroit. L'organisation adoptée actuellement tend à réunir les fichiers
dans deux ou trois emplacements (macros, documentation et fontes par exemple,
sont réunis dans des sections différentes de trois branches du répertoire principal).
Pourtant, la structure format/package l'a emportée pour deux raisons
:
-
C'est plus proche des pratiques courantes ; en fait, beaucoup des membres du
TWG avaient déjà adopté la hiérarchie TDS. L'autre hypothèse n'avait été adoptée
par aucun site connu et le TWG trouva incohérent de préconiser quelque chose
qui n'avait jamais été concrètement expérimenté.
- L'autre hypothèse accroissait le nombre de répertoires de premier niveau, donc
les fichiers recherchés en utilisant la méthode de recherche dans les sous-répertoires
devaient être trouvés à l'intérieur d'une arborescence très large et peu profonde.
Cela aurait eu un fort impact sur l'efficacité de la recherche dans les sous-répertoires.
C.2 Structure pour les fontes
Le TWG se battit plus à propos des fontes que sur tout autre sujet. Cela n'est
pas surprenant ; l'obligation d'utiliser la prolifération de fontes PostScript
avec TeX rendait intenable la précédente organisation avec tous les fichiers
dans un seul répertoire, ce fut précisemment ce qui justifia le travail du TWG
à ce sujet.
C.2.1 Emplacement des fichiers de fonte de caractère
Nous avons testé la première organisation en usage dans beaucoup d'endroits
:
texmf/fonts/supplier/typeface/type
Cela augmente la maintenabilité de l'arborescence des fontes, puisque tous les
fichiers d'un même type sont en un seul endroit. Mais, à moins que tous les
programmes cherchant dans ce répertoire n'utilisent un cache, il y a de sérieux
problèmes de performances. Par exemple, afin de trouver un fichier TFM,
l'implémentation la plus simple obligerait TeX à chercher à travers tout
les répertoires qui contiennent tous les fichiers PK dans toutes les
formes et toutes les résolutions.
Finalement, un groupe de développeurs a déployé une considérable résistance
à l'installation d'un mécanisme de cache, donc cette organisation fut abandonnée.
L'organisation de la TDS permet de restreindre la recherche dans l'arborescence
au type de fichier, au minimum. Il reste encore des considérations sur l'efficacité
de la recherche dans les sous-répertoires, mais elles ne semblent pas suffisantes
pour que l'on abandonne totalement la recherche récursive.
Nous avons aussi songé à répartir les fichiers de fontes par type de fichiers
de manière à ce que les fichiers METAFONT soient tous dans un répertoire texmf/fonts/mf,
que les listes de propriétés soient dans texmf/fonts/pl, que les diverses
formes de fontes Type 1 soient séparées, etc. Quoique cela soit plus cohérent,
nous avons trouvé que le revers de la médaille était une plus grande complexité
dans la construction des chemins de recherche et nous avons abandonné l'idée.
La TDS regroupe les fichiers par type (mf et pl dans source,
pfa, pfb et gsf dans type1) ce qui est préférable.
C.2.2 Emplacement des modes et résolutions
Nous avons songé à mettre le répertoire mode au fond de l'arborescence
des fontes :
texmf/fonts/pk/supplier/typeface/mode/dpi/
Dans ce cas, cependant, il devient difficile de limiter la recherche récursive
au mode donné pour un périphérique particulier.
Nous avons aussi pensé déplacer le répertoire dpinnn juste au-dessus
du mode :
texmf/fonts/pk/mode/dpi/supplier/typeface
Mais il n'était pas possible d'omettre le niveau dpinnn même sur les
systèmes qui pourraient utiliser les noms de fichiers longs.
C.2.3 Bitmaps modeless
La TDS préconise d'utiliser un seul répertoire modeless/ pour le nom
de mode de tous les utilitaires qui génèrent du bitmap, tel que texmf/fonts/modeless/times/.
Cela présente le considérable avantage de ne pas obliger chaque nom de répertoire
de ce type à être présent dans le chemin de recherche.
Une hypothèse alternative aurait été d'utiliser le nom du programme devant chacun
de ces répertoires qui auraient ainsi pu être regroupés. Cela aurait eu l'intérêt
de séparer, par exemple, les fontes bitmaps générées gsftopk de celles
générées sous la forme pstopk. Cependant, nous avons décidé que cela
n'était pas nécessaire ; la plupart des sites n'utiliseront qu'un programme
pour faire cela. De plus, les fontes PK et GF identifient généralement leurs
créateurs dans les commentaires qui suivent l'octet pk_id.
Nous avons fait l'hypothèse implicite que METAFONT est le seul programme qui
génère des bitmaps dépendants du mode. Si cela s'avérait faux, nous pourrions
ajouter une abréviation pour le programme dans le nom de mode, comme dans mfcx
opposé à xyzcxn pour un éventuel programme Xyz, ou nous pourrions à
ce moment, ajouter un niveau de nom de programme additionnel pour toute l'arborescence.
Il nous a semblé plus important de représenter la situation de manière concise
plutôt que de se préoccuper de possibilités hypothétiques qui ne pourraient
ne jamais arriver.
C.3 Structure de la documentation
Nous avons songé placer les fichiers de la documentation additionnelle dans
le même répertoire que les fichiers source des paquetages, mais nous avons trouvé
que les utilisateurs devraient pouvoir trouver la documentation indépendamment
des sources dans la mesure où beaucoup d'utilisateurs ne s'intéressent pas aux
sources.
Nous espérons qu'une structure séparée mais parallèle pour la documentation
pourra
-
laisser la documentation regroupée ;
- la rendre aussi directement consultable que possible pour les utilisateurs qui
cherchent une documentation particulière.
D Références
La présente annexe donne des liens vers des fichiers utiles et d'autres documents.
ftp ://ctan.tug.org/tex-archive
ftp ://ftp.dante.de/tex-archive
ftp ://ftp.tex.ac.uk/tex-archive
Regardez dans ctan@tug.org pour une liste complète des sites du CTAN,
ils ont des miroirs dans le monde entier.
Voici des références :
-
Les archives de la liste de diffusion de la TDS peuvent être trouvées via ftp
depuis ftp ://ftp.tug.org/mail/archives/twg-tds et ftp ://vms.rhbnc.ac.uk/archives/twg.tds.*.
- Un exemple d'arborescence TDS : CTAN :tds
- Une série de bases de données et de styles BibTeX : ftp ://ftp.math.utah.edu/pub/tex/bib.
- Components of TeX par Joachim Schrod : CTAN
:documentation/components-of-TeX.
- Le niveau 0 du standard du pilote DVI : CTAN :dviware/driv-standard/level-0.
- Filename for TeX fonts : CTAN :documentation/fontname.Cette
distribution comprend des noms de fondeurs et de type de fontes.
- Standard ISO-9660 pour les systèmes de fichiers sur CD-ROM : http ://www.iso.ch/cate/cat.html.
- Un ensemble complet de modes METAFONT : CTAN :fonts/modes/modes.mf.
Ce fichier inclut des recommandations sur les noms de mode.
E Contributeurs
Le TWG n'a pas eu de réunion formelle ; le courrier électronique fut le moyen
de communication principal.
Sebastian Rahtz est le coordinateur du TeX Users Group. Norman Walshen
en est le président.
Contributeurs originaux :
Barbara Beeton, Karl Berry, Vicki Brown, David Carlisle,
Thomas Esser, Alan Jeffrey, Jörg Knappen, Pierre
MacKay, Rich Morin, Sebastian Rahtz, Joachim Schrod,
Christian Spieler, Elizabeth Tachikawa, Philip Taylor,
Ulrik Vieth, Paul Vojta, Norman Walsh.
Autres contributeurs :
David Aspinall, Nelson Beebe, Harriet Borton, Bart
Childs, Damian Cugley, Alan Dunwell, Michael Ferguson,
Erik Frambach, Bernard Gaulle, Jeffrey Gealow, George
Greenwade, Thomas Herter, Berthold Horn, Charles
Karney, David Kastrup, David Kellerman, Wonkoo Kim,
Richard Kinch, Robin Kirkham, Alex Kok, Eberhard
Mattes, Bob Morris, Lenny Muellner, Oren Patashnik,
David Rhead, Andreas Scherer, Mark Sinke, Andrew
Trevorrow, Doug Waud, Chee-Wai Yeung.
Pour revenir à la page d'accueil