Comment procéder à des installations privées de fichiers ?#

Il arrive parfois que vous ayez besoin d’une nouvelle version d’une extension ou d’une police, mais que la machine que vous utilisez soit maintenue par une personne ne voulant pas faire de mise à jour et ne vous donnant pas les droits nécessaires pour faire le travail vous-même. Une installation temporaire est alors parfois la bonne approche. Cependant, dès lors qu’une installation soit nécessaire pour plus d’un projet, ces installations temporaires ne conviennent pas.

Dans les cas où vous disposez d’un espace de stockage adéquat, la bonne approche consiste à créer une installation privée de qui inclut les nouveaux éléments dont vous avez besoin. Si cette solution est l’idéale, elle n’est généralement pas possible.

Donc, puisque vous ne pouvez pas installer dans l’arborescence texmf publique, vous devez installer dans une arborescence texmf qui vous est propre. Heureusement, le standard TDS et les distributions modernes vous permettent de le faire. Les distributions les plus modernes se réfèrent à l’arbre comme $TEXMFHOME mais il s’appelait auparavant $HOMETEXMF. Ainsi, pour vérifier que votre système supporte bien le mécanisme, vous devriez commencer, par exemple, par tester cette commande :

kpsewhich -var-value TEXMFHOME

Cela vous restituera presque invariablement un pointeur vers un sous-répertoire texmf de votre répertoire personnel. Une exception concerne ici les Macintosh, utilisant où le répertoire est conventionnellement Library/texmf dans votre répertoire personnel.

Si vous pouvez confirmer que la technique fonctionne, installez votre nouvelle extension (ou autre) au bon endroit dans une arborescence basée sur $HOME/texmf et générez un index de cette arborescence :

texhash $HOME/texmf

L’argument spécifie ici quelle arborescence vous indexez. Il est ici nécessaire puisque vous n’avez pas, par hypothèse, accès à l’arborescence principale, et texhash sans l’argument essaierait d’écrire l’arborescence principale.

Il y a deux inconvénients à cette méthode simple : premièrement, l’installation que vous utilisez peut ne pas définir de répertoire TEXMF personnel, et deuxièmement, il peut y avoir un obstacle à l’utilisation de $HOME/texmf comme nom par défaut. Dans les deux cas, une bonne solution est d’avoir votre propre texmf.cnf — une idée qui semble plus effrayante qu’elle ne l’est en réalité. Le fichier existant de l’installation peut être localisé avec la commande :

kpsewhich texmf.cnf

Faites une copie du fichier et placez-la dans un répertoire de votre choix. Ce peut être n’importe quel répertoire, mais un choix évident est le répertoire web2c de l’arborescence que vous voulez créer, c’est-à-dire $HOME/texmf/web2c ou un répertoire similaire. Créez une variable d’environnement pour pointer vers ce répertoire, par exemple en shell Bourne :

TEXMFCNF=$HOME/texmf/web2c
export TEXMFCNF

De même, en C-shell :

setenv TEXMFCNF $HOME/texmf/web2c

Éditez ensuite la copie de texmf.cnf. Il y aura une ligne dans le fichier existant qui définit l’arborescencee dans laquelle tout est recherché. La forme la plus simple de cette ligne est :

TEXMF = !!$TEXMFMAIN

Il est toutefois probable qu’il y ait plusieurs paramètres alternatifs derrière les marqueurs de commentaires (%), et la personne qui a installé votre système peut les avoir laissés là. Quoi qu’il en soit, vous devez modifier la ligne en vigueur. Remplacez ce qui précède par trois lignes :

HOMETEXMF = $HOME/texmf
TEXMF = {$HOMETEXMF,!!$TEXMFMAIN}
% TEXMF = !!$TEXMFMAIN

Le point important est que $HOMETEXMF doit venir avant ce qui était là avant, à l’intérieur des accolades. Supposons que vous avez dans votre cas :

TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN}

Il doit être converti en :

HOMETEXMF = $HOME/texmf
TEXMF = {$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN}
% TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN}

Pensez à conserver l’original, en tant que commentaire, afin d’avoir un aide-mémoire au cas où vous auriez besoin de faire un autre changement par la suite.

Les signes ! indiquent à la bibliothèque de recherche de fichiers qu’elle doit insister sur une arborescence de répertoires texhash. Si vous pouvez compter sur le fait que vous vous souviendrez de lancer texhash sur votre nouvelle arborescence à chaque fois que vous la modifiez, alors cela vaut la peine d’ajouter les marques à votre arborescence :

TEXMF = {!!$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN}

Cette modificaiton permettra à de trouver ses fichiers un peu plus rapidement.

Après avoir effectué tous ces changements, devrait utiliser les fichiers de votre nouvelle arborescence, de préférence à tout ce qui se trouve dans l’arborescence principale. Vous pouvez l’utiliser pour les mises à jour des extensions de l’arborescence principale, ainsi que pour l’installation de nouvelles versions.