59 votes

Comment charger des fichiers latex .sty depuis un sous-répertoire?

J'utilise de la .sty-des fichiers qui ne font pas partie de texlive et que vous voulez avoir dans un sous-répertoire du dossier avec ma main.tex. J'ai utilisé la ligne suivante pour charger le package:

\usepackage{sty/prettythesis}

Cela fonctionne, mais la compilation de la main.tex avec xelatex et à l'aide de caoutchouc me donne un avertissement:

sty/prettythesis.sty: You have requested package `sty/prettythesis',
but the package provides `prettythesis'. (page 1)

Est-il un moyen pour éviter cet avertissement ou de gérer ce cas sans avoir à inclure "sty\" dans tous les .sty-files " \ProvidesPackage de commande ou de définir la variable d'environnement TEXINPUTS (qui semble ne pas être possible de la principale.tex lui-même)?

26voto

sdaau Points 6262

Je crois que ce fil de discussion ici:

parle exactement la même chose: il semble donc, les seules alternatives sont soit à l'aide d' TEXINPUTS variable d'environnement; ou en utilisant le package d'importation. (notez qu'il n'est qu'une variante de l' import paquet sur ...y Compris tex fichiers de la page 3.)

Un peu plus à propos de TEXINPUTS:

Espérons que cette aide;
Cheers!

 

EDIT: j'espère que l'on pourrait définir le TEXINPUTS chemin directement dans le fichier tex (en utilisant \write18 -- et, selon certaines versions de LaTeX utiliser --enable-write18, la mine utilise -shell-escape pour activer \write18; voir aussi ce) - mais il semble qu'il n'est pas possible:

"... Ce n'est pas possible. ... La variable d'environnement de l'enfant, le processus est défini, mais ce n'est pas un effet de son processus parent (TeX)." (Re: la définition de la variable d'environnement TEXINPUTS au sein de latex - comp.texte.tex).

... alors, maintenant, je viens de l'appeler pdflatex dans mon Linux bash comme ceci:

TEXINPUTS=.//:$TEXINPUTS pdflatex ./myfile.tex

et puis il faudra résoudre directement \usepackage{mypackage} dans la myfile.tex le fichier - même si mypackage.sty est dans un sous-répertoire, disons ./subdir/mypackage.sty.

5voto

Rudy Matela Points 1566

Mettez simplement la ligne ci-dessous avant l'appel à pdflatex (ou latex) dans votre makefile ou script de build:

 export TEXINPUTS=".:./sty:"
 

Référencez ensuite votre package comme:

 \usepackage{prettythesis}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X