Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
3_composition:texte:document:inclusion_depuis_un_autre_repertoire [2018/05/25 10:59]
joseph.wright
3_composition:texte:document:inclusion_depuis_un_autre_repertoire [2021/02/23 14:06] (Version actuelle)
yannick.tanguy Correction de coquilles et ajout d'un lien.
Ligne 1: Ligne 1:
---- +====== Pourquoi LaTeX ne veut pas inclure mon fichier? ======
-section: The joy of TeX errors +
-permalink: /​FAQ-includeother +
-date: 2014-06-10 +
----+
  
-# LaTeX won'include ​from other directories+Vous voulez inclure un fichier avec la commande ​''\include{../​dossier/​xyz.tex}''​ mais <​latex>​\LaTeX</​latex>​ indique :
  
-You wanted to `\include{../​bar/​xyz.tex}`,​ but LaTeX says: +<​code ​latex>
-```latex+
 latex: Not writing to ../​bar/​xyz.aux (openout_any = p). latex: Not writing to ../​bar/​xyz.aux (openout_any = p).
-! I can''t write on file `../​bar/​xyz.aux''. +! I can't write on file `../​bar/​xyz.aux'​. 
-``` +</​code>​
-The error comes from TeX's protection against writing to +
-directories that aren't descendents of the one where your document +
-resides. ​ (The restriction protects against problems arising from +
-LaTeXing someone else's malicious, or merely broken, document. ​ If +
-such a document overwrites something you wanted kept, there is obvious +
-potential for havoc.)+
  
-Document directory structures that can lead to this problem will look +Autrement dit, il ne peut pas écrire dans le dossier que vous avez ciblé. L'​erreur vient de la protection de <​latex>​\TeX</​latex>​ contre l'​écriture dans un dossier qui n'est pas inclus dans le dossier (ou un de ses sous-dossiers associés) de votre document. Cette restriction vous protège contre les problèmes résultant de la compilation d'un document malveillant ou incorrect et donc le risque d'​écrasement de données que vous souhaiteriez conserver. ​ 
-like the fictional `mybook`+ 
-```latex +Les structures de dossiers qui peuvent conduire à ce problème ressembleront à ceci :  
-./base/mybook.tex+ 
 +<code bash> 
 +./base/monlivre.tex
 ./​preface/​Preface.tex ./​preface/​Preface.tex
-./preface/​*** +./chapitre1/​Intro.tex 
-./chapter1/​Intro.tex +</code>
-... +
-``` +
-With such a structure, any document directory (other than the one +
-where `mybook.tex` lives), seems ''​up''​ the tree from the +
-base directory. ​ (References to such files will look like +
-`\include{../preface/​Preface}`:​ the `..` is the +
-hint.)+
  
-But why did it want to write at all?&​nbsp;&​mdash;​  +Ici, le dossier ​''​preface'' ​n'est pas inclus dans le dossier ''​base''​. Pour aller chercher ce dossiervous devez remonter dans le dossier père du dossier ''​base''​. Dès lors, l'​erreur va se produire.
-''​[what's going in in my `\include`](/​FAQ-include)'' ​explains +
-how `\include` worksamong other things by writing an +
-`aux` file for every `\includ`ed file.+
  
-Solutions to the problem tend to be drastic:+Mais, au fait, pourquoi veut-il y écrire ? La question « [[3_composition:texte:​document:​que_fait_vraiment_include|Que fait la commande \include ?]] » en donne la raison.  
 + 
 +Les solutions au problème tendent à être drastiques.  
 + 
 +===== En restructurant vos dossiers ===== 
 + 
 +La réorganisation des dossiers doit amener votre document à se trouver à la racine de votre arborescence de dossier contenant tous les éléments qui vous sont utiles :  
 + 
 +<code bash> 
 +./​monlivre.tex 
 +./​monlivre/​preface/​Preface.tex 
 +./​monlivre/​chapitre1/​Intro.tex 
 +</​code>​ 
 + 
 +===== En remplaçant les commandes \include ===== 
 + 
 +Si vous n'avez pas particulièrement besoin des commandes ''​\include''​ et ''​\includeonly'',​ préfèrez-leur les commandes ''​\input''​. Vous pouvez aussi utiliser l'​extension [[ctanpkg>​import]] détaillée dans la question « [[3_composition:​texte:​document:​utiliser_des_fichiers_dans_differents_repertoires|Comment inclure des fichiers sans modifier leurs liens internes ?]] ». 
 + 
 +===== En modifiant le fichier texmf.cnf =====
   ​   ​
 +Vous //​pourriez//​ éditer le fichier ''​texmf.cnf''​ de votre système. Cette action n'est cependant pas recommandée et est laissée à ceux qui peuvent ici « s'​aider eux-mêmes ».   
 +
 +-----
  
-1.  Restructure the directories that hold your document so that the +//Source:// [[faquk>​FAQ-includeother|LaTeX won'​t ​include from other directories]]
-    master file is at the root of the tree: +
-    ```latex +
-    ./mybook.tex +
-    ./mybook/preface/Preface.tex +
-    ./​mybook/​preface/​*** +
-    ./​mybook/​chapter1/​Intro.tex +
-    ... +
-    ``` +
-    and so on. +
-2.  Did you actually _need_ `\include`?&​nbsp;&​mdash;​ if not, you can +
-    replace `\include` by `\input` throughout. ​ (This only works +
-    if you don'​t ​need `\includeonly`.) +
-3.  You _could_ patch your system'​s `texmf.cnf`&​nbsp;&​mdash;​ if you +
-    know what you're doing, the error message should be enough of a +
-    hint; this action is definitely not recommended,​ and is left to +
-    those who can ''​help themselves''​ in this respect.+
  
 +{{htmlmetatags>​metatag-keywords=(LaTeX,​errors)
 +metatag-og:​title=(Pourquoi LaTeX ne veut pas inclure mon fichier)
 +metatag-og:​site_name=(FAQ LaTeX francophone)
 +}}
  
3_composition/texte/document/inclusion_depuis_un_autre_repertoire.1527238753.txt.gz · Dernière modification: 2018/05/25 10:59 par joseph.wright
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0