Ceci est une ancienne révision du document !
Installations privées de fichiers
Il peut arriver que vous ayez besoin d'une nouvelle version d'un package ou d'une police de caractères, mais que la machine que vous utilisez soit gérée par quelqu'un qui n'est pas disposé à effectuer les mises à jour et qui ne vous accorde pas les droits nécessaires pour que vous puissiez faire le travail vous-même. Une installation « temporaire » est parfois la bonne approche, cependant, s'il y a la moindre chance que cette installation soit nécessaire pour plus d'un projet, vous voudrez sans doute quelque chose de plus durable.
Si vous disposez d'un espace-disque suffisant (éventuellement sur un espace temporaire, comme un “scratch”), une bonne approche consiste à installer une version privée complète de (La)TeX, incluant les nouveaux éléments dont vous avez besoin ; c'est l'idéal, mais ça utilise plusieurs gigaoctets d'espace-disque.
Comme vous ne pouvez rien installer dans l'arborescence texmf
publique,
vous devez installer dans votre propre arborescence texmf
; heureusement,
la TeX Directory Structure (TDS) a prévu ça,
et les distributions modernes vous permettent de le faire. Les distributions
actuelles font référence à l'arborescence sous le nom de $TEXMFHOME
,
mais les versions plus anciennes utilisaient $HOMETEXMF
;
si vous avez un doute, vous pouvez vérifier que votre système TeX supporte effectivement
le mécanisme, en exécutant cette commande:
kpsewhich -var-value TEXMFHOME
(par exemple). Si tout va bien, ça renverra généralement le chemin
d'un sous-répertoire texmf
dans votre répertoire personnel ;
sous MacOS, si vous utilisez MacTeX, le répertoire est généralement
Library/texmf
dans votre répertoire personnel.
Si vous avez la confirmation que ça fonctionne correctement,
installez votre nouveau package (ou autre) au bon endroit
dans un sous-répertoire de $HOME/texmf
, et reconstruisez l'index de cette arborescence:
texhash $HOME/texmf
(L'argument indique quel arborescence vous indexez: il est nécessaire
dans le cas présent, vu que vous n'avez pas accès à l'arborescence principale,
or texhash
sans cet argument essaierait d'écrire dans l'arborescence principale)
Cette méthode simple peut se heurter à deux obstacles:
- d'une part, l'installation que vous utilisez peut ne pas définir de répertoire TEXMF personnel,
- d'autre part, le chemin par défaut peut ne pas être
$HOME/texmf
.
Dans les deux cas, une bonne solution est d'écrire votre propre fichier de configuration texmf.cnf
;
ça peut paraître compliqué, mais en fait, c'est très simple à faire.
Le fichier actuellement utilisé par votre installation peut être localisé à l'aide de la commande:
kpsewhich texmf.cnf
Take a copy of the file and put it into a directory of your own; this
could be any directory, but an obvious choice is the web2c
directory of the tree you want to create, i.e.,
$HOME/texmf/web2c
or the like. Make an environment variable to point to this directory:
TEXMFCNF=$HOME/texmf/web2c export TEXMFCNF
(for a Bourne shell style system), or
setenv TEXMFCNF $HOME/texmf/web2c
(for a C-shell style system). Now edit the copy of texmf.cnf
There will be a line in the existing file that defines the tree where everything searches; the simplest form of the line is:
TEXMF = !!$TEXMFMAIN
but, there are likely to be several alternative settings behind
comment markers (%
), and the person who
installed your system may have left them there. Whatever, you need to
modify the line that's in effect: change the above to three lines:
HOMETEXMF = $HOME/texmf TEXMF = {$HOMETEXMF,!!$TEXMFMAIN} % TEXMF = !!$TEXMFMAIN
the important point being that $HOMETEXMF
must come before
whatever was there before, inside the braces. For example, if the
original was
TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN}
it should be converted to:
HOMETEXMF = $HOME/texmf TEXMF = {$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN} % TEXMF = {!!$LOCALTEXMF,!!$TEXMFMAIN}
(retaining the original, as a comment, is merely an aide-memoir in
case you need to make another change, later). The !!
signs
tell the file-searching library that it should insist on a
texhash
-ed directory tree; if you can count on yourself
remembering to run texhash
on your new tree every time you
change it, then it's worth adding the marks to your tree:
TEXMF = {!!$HOMETEXMF,!!$LOCALTEXMF,!!$TEXMFMAIN}
as this will make (La)TeX find its files marginally faster.
Having made all these changes, (La)TeX should “just use” files in your new tree, in preference to anything in the main tree — you can use it for updates to packages in the main tree, as well as for installing new versions of things.
Source: