Bonjour à tous,

Comme cela m'a été suggéré il y a peu par Le Barde (bon, OK, c'était il y a des mois ), je me lance pour contribuer à la FAQ avec cette question qui revient si souvent !

Je vous soumet donc une proposition, dans l'attente de vos impitoyables remarques. Et c'est parti pour le long (?) processus de peer review !

Dans ce qui suit, les citations sont destinées à devenir des exemples.
Les packages peuvent être ajoutés manuellement - au choix - dans 2 arborescences distinctes, en fonction de la porté - mono- ou multi-utilisateur(s) - désirée:
  • TEXMFLOCAL : l'arborescence locale multi-utilisateurs. Les fichier qu'elle contient sont utilisables par plusieurs utilisateurs de la machine.
  • TEXMFHOME : l'arborescences utilisateur (apparemment pas disponible sous MiKTeX).
    Elle permet notamment aux utilisateurs ayant des droits d'écriture restreints, d'installer des packages personnels. Elle doit donc se situer dans un répertoire où l'utilisateur a le droit d'écrire.

Voyons maintenant où les trouver (ou bien les définir) pour les deux principales distributions LaTeX.

TeXLive (sous GNU/Linux, ici une Ubuntu 8.04, sans doute valable pour d'autres distributions) :

Les définitions des différentes arborescences de la distribution LaTeX peuvent être trouvées dans le fichier
/etc/texmf/texmf.cnf
Certaines arborescences ne devraient pas être modifiées manuellement (plutôt destinées au(x) gestionnaire(s) de paquets), ce sont les arborescences $TEXMFMAIN (= /usr/share/texmf) et $TEXMFDIST (= /usr/share/texmf-texlive)

Deux possibilités se présentent alors :

1. Pour une installation multi-utilisateurs (privilèges super-utilisateur requis), les fichiers doivent être placés dans
$TEXMFLOCAL (= /usr/local/share/texmf)
Si elle n'existe pas, la créer avec la commande (dans un terminal):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$ sudo mkdir /usr/local/share/texmf
Pour la suite des opérations voir : Comment installer un package LaTeX ?

2. Pour une installation mono-utilisateur (pas de privilège super-utilisateur requis), les fichiers doivent être placés dans
$TEXMFHOME (= $HOME/texmf)
De même si le dossier n'existe pas, lancer dans un terminal :
Note 1 : lors de l'installation des fichiers dans $TEXMFHOME, ne pas précéder la commande de copie (cp) par sudo.

Note 2 : Il n'est pas nécessaire dans ce dernier cas d'exécuter la commande texhash pour compléter l'installation. Il n'y a en principe pas de base de donnée des fichiers présents qui soit maintenue pour cette arborescence (voir la définition de la variable $TEXMFDBS dans le fichier texmf.cnf). Celle-ci est donc parcourue récursivement avant chaque compilation... et il est donc déconseillé d'y installer de trop nombreux dossiers et fichiers.

Pour TeXLive sous Windows, le principe est le même. Les emplacements des différentes arborescences peuvent être trouvés dans le fichier
[dossier d'installation]\texmf-var\web2c\texmf.cnf
Dans celui-ci, la variable $SELFAUTOPARENT représente le dossier où la distribution est installée (e.g. C:\LaTeX)


MiKTeX (Windows) :

Seule l'arborescence correspondant à $TEXMFDIST (ou bien $TEXMFMAIN, allez savoir) est installée par défaut. Elle se trouve par exemple dans
C:\Program Files\Miktex 2.7\
Contrairement à ce qui est souvent proposé sur les fora, il est également déconseillé d'y installer des packages/modèles/feuilles de style manuellement : ils peuvent être perdus lors de mises à jour.

Une bonne façon de procéder est de définir au préalable une arborescence locale ($TEXMFLOCAL)
dans le menu démarrer: Settings > onglet Roots > Add...
dans laquelle seront copiés les fichiers.
Mes 2 propositions de changement dans la rubrique Comment installer un package LaTeX ? pour une bonne cohérence (si toutefois l'auteur est d'accord) :
  1. changer les LOCALTEXMF par TEXMFLOCAL (l'erreur est de moi ). Et pourquoi ne pas ajouter une petite note pour préciser que $TEXMFLOCAL peut être remplacé par $TEXMFHOME ?
  2. changer la note de fin par un lien vers cette nouvelle rubrique... une fois qu'elle existera.