Comment spécifier un chemin pour les fichiers à inclure?
Par défaut, les commandes graphiques telles que \includegraphics
cherchent où que se trouvent le fichier pour déterminer où se trouve le fichier graphique à intégrer. Cela peut réduire votre flexibilité si vous choisissez de conserver vos fichiers graphiques dans un répertoire commun, loin de vos sources ou .
Avec l'extension “graphicx”
L'extension graphicx fournit la commande \graphicspath
(comme les extensions graphics et epsfig), dont l'argument contiendra une suite de chemins d'accès entre accolades (chaque chemin finissant par un « / ». En voici un exemple, à inclure dans le préambule du document :
\graphicspath{{images/grandes/}{images/petites/}}
Cette commande \graphicspath
a deux particularités :
Le léger inconvénient de la méthode \graphicspath
est son « inefficacité ». L'extension appelle pour chaque entrée de la liste afin qu'il la recherche, ce qui ralentit la compilation. De plus, se souvient du nom de tout fichier qu'il lui est demandé de rechercher, perdant ainsi de la mémoire, de sorte qu'un document utilisant un très grand nombre d'entrées graphiques pourrait être parasité par un manque de mémoire… même si un tel manque de mémoire est assez improbable avec n'importe quel document ordinaire dans un système récent.
Avec les variables d'environnement
Il est également possible d'ajouter des chemins de dossiers contenant des fichiers d'images à la variable d'environnement TEXINPUTS
(aussi évoquée à la question « Comment changer le chemin recherche de fichiers de TeX ? »). Ce genre de modifications dépend de l'environnement utilisé. Sur un système Unix/Linux, la ligne ressemblera à ceci :
TEXINPUTS=.:⟨chemin(s) de dossiers image(s)⟩:
Sur un système Windows, le séparateur sera « ;
» plutôt que « :
». Le « .
» initial est là pour s'assurer que le répertoire courant est recherché en premier. Le « :
» de fin indique que d'autres chemins peuvent venir compléter ces valeurs.
Cette méthode a le mérite de l'efficacité ( fait toutes les recherches, ce qui va vite) mais elle reste lourde et peut s'avérer peu pratique à utiliser dans les configurations Windows.
Avec l'extension “relinput”
L'extension relinput permet d'inclure un fichier dans un répertoire, et de rendre toutes les inclusions faites par ce fichier relatives au répertoire où se trouve ce dernier fichier.
Pour illustrer cela, prenons un exemple avec la hiérarchie de répertoire suivante d'un répertoire nommé pere/
. Celui-ci contient :
- un fichier
fichier1.tex
; - un fichier
fichier2.tex
; - un sous-répertoire
fils/
qui contient :- un fichier
inclus.tex
, - un fichier
fichier2.tex
.
Le fichier inclus.tex
contient la ligne suivante :
\input{fichier2.tex}
et est inclus par le fichier fichier1.tex
grace à la commande
\input{fils/inclus.tex}
La question est de savoir quel fichier2.tex
sera utilisé. Dans le cas présent, c'est celui du répertoire pere/
.
Supposons maintenant que l'extension relinput est utilisée et que la ligne suivante est présente dans le fichier inclus.tex
:
\relinput{fils}{inclus.tex}
Supposons également que la ligne suivante est incluse dans le fichier fichier1.tex
:
\relinput{.}{fichier2.tex}
Alors c'est le fichier du répertoire fils/
qui est utilisé. Pour inclure le fichier fichier2.tex
du répertoire pere/
, il suffit d'utiliser le code suivant :
\relinput{..}{fichier2.tex}
Avec l'extension “import”
Si votre document est divisé en plusieurs répertoires et que chaque répertoire a ses graphiques associés, l'extension import pourrait bien être ce qu'il vous faut. Voir à ce sujet la question « Comment inclure des fichiers sans modifier leurs liens internes ? ».