====== 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 <latex>\TeX</latex> 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 <latex>\TeX</latex> ou <latex>\LaTeX</latex>.

===== Avec l'extension “graphicx” =====

L'extension [[ctanpkg>graphicx]] fournit la commande ''\graphicspath'' (comme les extensions [[ctanpkg>graphics|graphics]] et [[ctanpkg>epsfig|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 : 

<code latex>
\graphicspath{{images/grandes/}{images/petites/}}
</code>

Cette commande ''\graphicspath'' a deux particularités :
  * si certains systèmes <latex>\TeX</latex> ou <latex>\LaTeX</latex> ne vous permettent d'utiliser que des fichiers du répertoire courant et ses sous-répertoires, ''\graphicspath'' n'impose, lui, aucune restriction de ce type : vous pouvez accéder à des fichiers placés n'importe où ;
  * elle n'affecte pas les opérations des extensions autres que celles citées ci-dessus. Ainsi, les extensions [[https://faq.latex-fr.net/1_generalites/histoire/liste_des_packages_obsoletes|obsolètes]] [[ctanpkg>epsf]] et [[ctanpkg>psfig]] y sont insensibles.

Le léger inconvénient de la méthode ''\graphicspath'' est son « inefficacité ». L'extension appelle <latex>\LaTeX</latex> pour chaque entrée de la liste afin qu'il la recherche, ce qui ralentit la compilation. De plus, <latex>\LaTeX</latex> 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 <latex>\LaTeX</latex> 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 « [[https://faq.latex-fr.net/5_fichiers/tds/changer_le_chemin_d_acces_d_un_fichier|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 :

<code latex>
TEXINPUTS=.:⟨chemin(s) de dossiers image(s)⟩:
</code>

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é (<latex>\TeX</latex> 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 [[ctanpkg>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 : 

<code latex>
\input{fichier2.tex}
</code>

et est inclus par le fichier ''fichier1.tex'' grace à la commande

<code latex>
\input{fils/inclus.tex}
</code>

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 [[ctanpkg>relinput]] est utilisée et que la ligne suivante est présente dans le fichier ''inclus.tex'' :

<code latex>
\relinput{fils}{inclus.tex}
</code>

Supposons également que la ligne suivante est incluse dans le fichier ''fichier1.tex'' :

<code latex>
\relinput{.}{fichier2.tex}
</code>

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 :

<code latex>
\relinput{..}{fichier2.tex}
</code>

===== 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 [[ctanpkg>import]] pourrait bien être ce qu'il vous faut. Voir à ce sujet la question « [[https://faq.latex-fr.net/3_composition/document/utiliser_des_fichiers_dans_differents_repertoires|Comment inclure des fichiers sans modifier leurs liens internes ?]] ». 

-----
//Source:// [[faquk>FAQ-graphicspath|Importing graphics from "somewhere else"]]

{{htmlmetatags>metatag-keywords=(LaTeX,fichiers,inclure des fichiers)
metatag-og:title=(Comment spécifier un chemin pour les fichiers à inclure)
metatag-og:site_name=(FAQ LaTeX francophone)
}}