Je sais comment définir un paquet ou une classe, mais comment les rendre disponibles (pour moi) à tout moment ?
Disons que j'ai le fichier paquetage commonstuff.sty
(ou myprettyclass.cls
), que je veux pouvoir inclure dans n'importe quel fichier .tex
que je crée sur mon ordinateur. Où dois-je le mettre ? Dois-je lancer un programme d'installation, ou suffit-il de le conserver dans un certain dossier ?
*Remarque : Je sais que je peux simplement le placer dans le même dossier que le fichier ".tex", mais ce n'est pas ce que je recherche ici. Je cherche un moyen d'installer le paquet de manière centralisée sur mon ordinateur.
Vous pouvez créer un dossier sous votre répertoire d'origine TeX et y placer votre fichier .sty
. Utilisez cette commande à l'invite de commande pour trouver ce dossier :
kpsewhich -var-value=TEXMFHOME
Sur mon ordinateur, il y a
C:/Users/stefan/texmf
mais cela pourrait aussi être ~/texmf/
sur un ordinateur Linux ou Unix.
En suivant la structure de répertoire de TeX, vous devriez placer votre fichier dans un sous-répertoire comme ~/texmf/tex/latex/commonstuff/
, selon le commentaire d'Arthur ci-dessous. Ceci a l'avantage que il n'est pas nécessaire de mettre à jour la base de données des paquets puisque TeX recherche directement dans votre arbre personnel texmf
. S'il y a un fichier ls-R
dans votre arbre texmf
personnel, vous pouvez le supprimer sans risque car TeX ne l'utilisera pas de toute façon. (Note : ceci suppose que votre arbre personnel se trouve sur un système de fichiers local : les utilisateurs dont les dossiers personnels sont montés à distance peuvent encore avoir besoin de faire un hachage).
En ce qui concerne MiKTeX, jetez un oeil à la section "Installer les fichiers sty ou cls" ; dans la réponse à la question [Comment puis-je installer manuellement un paquetage sur MikTex (Windows)][1].
Vous pourrez alors vérifier quel fichier sera utilisé avec :
kpsewhich filename.sty
Ceci montrera le chemin vers le fichier récupéré par l'implémentation de TeX.
[1] : https://tex.stackexchange.com/questions/2063/how-can-i-manually-install-a-package-on-miktex-windows
Les fichiers .sty
doivent être placés dans un sous-répertoire de tex/latex
dans un arbre texmf. Ces arbres ont une structure assez fixe, mais leur emplacement peut varier en fonction de votre système d'exploitation et de votre distribution TeX. Si vous utilisez Unix (y compris Mac OS) et TeX Live, il y a par défaut une hiérarchie
/usr/local/texlive/2009/texmf
/usr/local/texlive/2009/texmf-dist
/usr/local/texlive/texmf-local
ainsi que d'autres répertoires. Vous voulez le mettre dans le répertoire texmf-local
, non dans les autres répertoires qui sont gérés par l'installateur de TeX Live ; quand vous mettez à jour TeX Live, votre paquet peut être écrasé. La hiérarchie texmf-local
, comme son nom l'indique, est destinée aux paquets locaux que vous gérez ; elle ne sera pas touchée par les mises à jour (c'est aussi pourquoi elle se trouve directement sous le répertoire texlive
, et non texlive/2009
, par exemple).
Vous pouvez également choisir de créer un répertoire appelé texmf
dans votre répertoire personnel, et le paquet ne sera visible que par vous, et non par les autres utilisateurs de votre ordinateur.
Sous Windows avec MiKTeX, je crois que le répertoire pour les installations locales est C:\Localtexmf
par défaut.
Dans tous les cas et quelle que soit votre distribution, vous devez placer le fichier .sty
à l'intérieur de .../texmf-local/tex/latex
et non directement dans le répertoire racine ; sinon, ça ne fonctionnera pas.
Ensuite, si vous avez installé le paquet dans votre répertoire personnel, vous n'avez rien à faire. Si vous avez installé texmf-local
, par contre, vous devez lancer l'utilitaire mktexlsr
(ou texhash
, c'est un alias).
Sous Linux, vous pouvez choisir n'importe quel répertoire, puis ajouter une ligne telle que
export TEXINPUTS=".:~/latex:"
à votre fichier .bashrc (vous pouvez ajouter plusieurs répertoires, séparés par des deux-points. Je pense que vous avez besoin du ' ;.' ; au début). Il y a peut-être quelque chose de similaire sous Windows. Je trouve que c'est plus facile, puisque cela sépare "mes" trucs de l'arbre texmf. Ce n'est probablement pas génial si vous écrivez un gros paquet, mais c'est pratique pour les petites choses que vous voulez simplement partager entre tous vos projets.