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 :

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.

  1. 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.
  2. 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 :

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 :

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 :

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/

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

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 :

  1. le type de périphérique (i.e. mode) pour lequel la fonte a été créée ;
  2. 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

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/

package est le nom d'un paquetage METAFONT (par ex., mfpic).

La TDS réserve les noms de paquetages suivant :

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

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 :

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).

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/...

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 :

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 :

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 :

  1. 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.
  2. 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.
  3. 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 ??.
  4. 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 :

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 :

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.

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 :

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.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

  1. laisser la documentation regroupée ;
  2. 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 :

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