Chemin de compilation

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
fbellalouna
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 08 février 2013, 11:18

Chemin de compilation

Message par fbellalouna »

Bonjour,
Je viens d'installer miktex 2.9 (64), que j'édite avec winedt sous windws 7. Miktex refuse de compiler mes include.. ou peut-être de lire mes fichiers .aux créés... tout en compilant correctement, mais en perdant toutes les étiquettes etc... Je sais que c'est dû à windows 7, puisque tout allait bien avant... Quelqu'un peut-il m'indiquer comment y remédier ?
Voici la commande exacte :

Code : Tout sélectionner

\include{C:/Maths/Livre/Livre-VF1/Proba-Discr/Esp-Gen/Esp-Gen-cours}
et le message qu'il sort à la compilation, qu'il fait lorsque je le force...

Code : Tout sélectionner

I can't write on file 'C:/Maths/Livre/Livre-VF1/Proba-Discr/Esp-Gen/Esp-Gen-cours.aux'
Merci d'avance
Faouzi Bellalouna

rebouxo
Modérateur global
Modérateur global
Messages : 6962
Inscription : mercredi 15 février 2006, 13:18
Localisation : le havre

Re: Chemin de compilation..

Message par rebouxo »

Cela ressemble à un problème de droit.
Cela dit c'est très étrange de rentrer le chemin complet du fichier. Pourrais-tu essayer avec un chemin relatif (include{./Mon/chemin/relatif}.

Olivier
A line is a point that went for a walk. Paul Klee.
Par solidarité, pas de MP.

MB
Administrateur
Administrateur
Messages : 7135
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Chemin de compilation

Message par MB »

Il faut voir si l'utilisateur a le droit d'écrire dans le dossier 'C:/Maths/Livre/Livre-VF1/Proba-Discr/Esp-Gen/', car il semblerait que ça ne soit pas le cas.
MB (Pas d'aide en Message Privé)
Merci d'utiliser MathJax (voir ici) et d'éviter le style SMS pour la lisibilité des messages.

fbellalouna
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 08 février 2013, 11:18

Re: Chemin de compilation

Message par fbellalouna »

Bonjour,
merci de votre aide. ben l'utilisateur, qui est moi, unique user puisque c ma machine perso, sur laquelle j'ai tous les droits. Sinon pour le premier post, comment faire si l'on donne pas le chemin exact ?
Merci

MB
Administrateur
Administrateur
Messages : 7135
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Chemin de compilation

Message par MB »

fbellalouna a écrit :ben l'utilisateur, qui est moi, unique user puisque c ma machine perso, sur laquelle j'ai tous les droits.
Tu as vérifié que tu pouvais bien créer un fichier dans 'C:/Maths/Livre/Livre-VF1/Proba-Discr/Esp-Gen/' ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser MathJax (voir ici) et d'éviter le style SMS pour la lisibilité des messages.

fbellalouna
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 08 février 2013, 11:18

Re: Chemin de compilation

Message par fbellalouna »

oui j'ai même fait un test pour m'en assurer...

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2560
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Chemin de compilation

Message par gigiair »

Je ne sais pas trop si je peux aider, je n'ai pas d'installation MiKTeX sous la main, donc je ne peux pas vérifier.
Il semble que \include soit réservé aux fichiers du chemin de recherche de kpathsea, donc pas question de donner un chemin complet d'accès au fichier.
Deux solutions :
  1. remplacer \include par \input si ça ne présente pas d'inconvénient. Attention toutefois au caractère «:» qui est actif avec frenchb
  2. Placer les fichiers à inclure dans le chemin d'accès utilisé par kpathsea. Sous TeXLive, celui-ci est décrit par la valeur de la variable TEXINPUTS. On peut la faire afficher par exemple par la commande

    Code : Tout sélectionner

    kpsewhich -var-value TEXINPUTS
Il est possible également de modifier la valeur de TEXINPUTS pour que kpathsea inclue un répertoire donné dans TEXINPUTS. C'est plus sportif, et peut-être un peu risqué.
Autre solution : bidouiller la commande \include à coup de \makeatletter et de \expandafter, mais ça c'est pas mon truc.
JJR.
LaTeXien migrateur.

fbellalouna
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 08 février 2013, 11:18

Re: Chemin de compilation

Message par fbellalouna »

Merci pour votre aide. Je verrais avec des bidouillages...
Faouzi

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2560
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Chemin de compilation

Message par gigiair »

J'ai trouvé ça sur stackexchange , je ne connaissait pas.
http://tex.stackexchange.com/questions/2209/how-can-i-include-the-file-somedir-file-tex-in-the-file-somedir-subdir-another a écrit : With modern distributions, you can't, for security reasons: the idea is that tex input files should only allow files to be written at the same level or lower in the directory hierarchy, because tex will happily overrwrite preexisting files. Reading is ok, as with \input{../xyz} but the trouble is that \include{../xyz} causes writing of a file ../xyz.aux, which is not permitted.

One workaround is, as you said, to use symbolic links. Another (not recommended) is to deactivate the security feature:

in miktex: set environment variable MIKTEX_ALLOWUNSAFEOUTPUTFILES=1
in most other tex distributions, set openout_any=a

The best thing is to avoid needing to include files from parent directories. This is good anyway because then the structure of your files can mirror the logical structure of the document.
Il est donc déconseillé de bidouiller pour contourner cette sécurité. La meilleure solution AMHA est d'étendre l'arborescence TEXINPUTS. Sous Linux, une meilleure solution encore est de créer un lien symbolique depuis le fichier à inclure vers un répertoire de TEXINPUTS. Dans tous les cas, le fichier .aux créé par la commande \include le sera dans le répertoire courant.
JJR.
LaTeXien migrateur.

fbellalouna
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 08 février 2013, 11:18

Re: Chemin de compilation

Message par fbellalouna »

Bonjourm
merci pour votre help... effectivement cela marche mieux avec \input.. qui est une commande plus "dangereuse"..
j'ai trouve ceci sur le web, que je trouve assez perspicace
https://groups.google.com/forum/?fromgr ... 7OcIxHOJQM
http://comments.gmane.org/gmane.comp.tex.miktex/9767

je vais essayer de bidouiller mes trucs et vous tiens au courant.. Merci et a bientot
Faouzi

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2560
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Chemin de compilation

Message par gigiair »

Je ne vois pas en quoi la commande \input serait dangereuse. \include, oui parce qu'elle implique l'écriture de manière autoritaire un fichier .aux qui peut donc écraser un fichier du même nom.
S'il s'agit seulement d'inclure un fichier, la différence est minime : \include ajoute un \newpage avant d'insérer le contenu du fichier. Ce n'est d'ailleurs pas toujours souhaitable.
La différence entre \include et \input est dans la commande \includeonly, bien commode pour commander une compilation partielle.
Si on n'utilise pas ce mécanisme, je ne vois pas de raison d'utiliser \include. On peut ajouter le \newpage «à la main».

Si l'on veut absolument utiliser \include, une solution est peut-être de le faire un sur un fichier du répertoire courant, qui lui ne contient qu'une commande \input du fichier désiré.
Il y a peut-être aussi des pistes sur le site de MiKTeX : http://docs.miktex.org/manual/localadditions.html (quand un fichier est dans l'arborescence TEXINPUTS, il n'y a pas besoin de préciser le chemin d'accès)
JJR.
LaTeXien migrateur.

fbellalouna
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 08 février 2013, 11:18

Re: Chemin de compilation

Message par fbellalouna »

Bonjour,
sans rentrer dans ces considérations de choix entre input et include, j'ai bidouillé la valeur de texinputs, suivant en cela les fichiers que je vous ai envoyé et redemarré la machine... et tout marche à merveille maintenant... i.e. comme ante windows 7 et miktex 2.9... Vous avez l'air de manier latex avec dextérité, si vous pouvez alerter les développeurs de miktex à propos de ce bug de refus d'écriture (tout en lisant !), ce serait un beau help de votre part.. Merci pour votre aide et à bientôt.
Faouzi Bellalouna

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2560
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Chemin de compilation

Message par gigiair »

fbellalouna a écrit :si vous pouvez alerter les développeurs de miktex à propos de ce bug de refus d'écriture (tout en lisant !), ce serait un beau help de votre part.. Merci pour votre aide et à bientôt.
Faouzi Bellalouna
Il ne s'agit pas du tout d'un bug, le refus d'écriture est voulu. On peut le désactiver, mais en prenant certains risques. La modification de TEXINPUTS est AMHA la meilleure solution.

Le fin mot de l'affaire est sans doute donné par cette réponse de Heiko Oberdiek sur comp.tex.text il y a tout juste quelques heures :
https://groups.google.com/forum/?hl=fr& ... iRySEN4vq4
JJR.
LaTeXien migrateur.

fbellalouna
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : vendredi 08 février 2013, 11:18

Re: Chemin de compilation

Message par fbellalouna »

Instructif, vraiment. Merci et a bientot
Faouzi Bellalouna