Comment déclarer un chemin absolu ?

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.
LID
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : dimanche 14 novembre 2010, 20:03
Localisation : Lausanne

[Résolu] Comment déclarer un chemin absolu ?

Message par LID »

Bonjour

Je développe une application sur FileMaker qui utilise un "programme" (soit Applescript, soit le plugin RunShellScript de ScriptMaster) pour lancer des commandes shell de compilation (latex,dvips,pstopdf).
Or, le "programme" prend en compte les fichiers externes, typiquement dans un \includegraphics{Image.eps} que si ces fichiers externes sont donnés par leur chemin absolu.

Sur la plateforme Mac, tant que le chemin absolu ne comporte pas d'espace, pas de problème. (Question bonus : comment faire s'il y a un espace ?)

Sur la plateforme Windows, (que je connais très mal), le chemin absolu tel quel ou entouré de guillemets provoque une erreur à la compilation.

Si c'est possible, est-ce que quelqu'un pourrait me donner un exemple de syntaxe d'un \includegraphics avec un chemin absolu d'une image qui fonctionne sur Windows ?

Merci d'avance
J-L Lienhard
Dernière modification par LID le jeudi 29 décembre 2011, 20:55, modifié 1 fois.

projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1916
Inscription : samedi 29 décembre 2007, 00:58

Re: Comment déclarer un chemin absolu ?

Message par projetmbc »

Bonjour.
LID a écrit :Sur la plateforme Mac, tant que le chemin absolu ne comporte pas d'espace, pas de problème. (Question bonus : comment faire s'il y a un espace ?)
Si le chemin vu par l'utilisateur est
"/Users/monLogin/Desktop/Porting To Python3"

alors il suffit d'échapper les espaces :
"/Users/monLogin/Desktop/Porting\ To\ Python3"

LID a écrit :Sur la plateforme Windows, (que je connais très mal), le chemin absolu tel quel ou entouré de guillemets provoque une erreur à la compilation.
As-tu bien mis le chemin au complet de l'application que tu utilises ? Si l'application n'est pas répertoriée dans le path, cela peut être la source de ton problème.
LID a écrit :Si c'est possible, est-ce que quelqu'un pourrait me donner un exemple de syntaxe d'un \includegraphics avec un chemin absolu d'une image qui fonctionne sur Windows ?
As-tu essayé de te placer dans le dossier où à lieu le traitement via cd sous Unix-Like ou chdir sous Windaube ? Cela peut-être un moyen de ne travailler qu'avec des chemins relatifs.
LID a écrit :Je développe une application sur FileMaker...
C'est pour faire quoi.

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

Re: Comment déclarer un chemin absolu ?

Message par gigiair »

Chez moi, un ecm comme suit marche

Code : Tout sélectionner

%%%c:/Documents and Settings/Administrateur.ZOE/Mes Documents/LaTeX/ecm.tex
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{"c:/Documents and Settings/Administrateur.ZOE/foo/image"}
\end{document}

Je ne sais pas la nature de ton projet, mais si c'était possible, je sauvegarderais les fichiers images dans un répertoire décrit pas la commande

Code : Tout sélectionner

kpsewhich --expand-var="$TEXINPUTS.eps"
(resp autre extension : jpg, png, etc..)
Par exemple, sur mon système texlive2011 sous XP, le chemin C:/Documents and Settings/Administrateur.ZOE/texmf/ et ses sous répertoires fait partie de ce chemin. J'ai créé un sous répertoire tex/latex/images qui convient, mais on peut faire n'importe quel choix.
Pour vérifier que l'image image.eps sera bien trouvée à la compilation, il suffit de taper

Code : Tout sélectionner

kpsewhich image.eps
Ensuite \includegraphics{image} passe sans problèmes.
Mais si tu n'es pas maître de l'emplacement de sauvegarde des images, ça ne marchera pas. (on peut aussi ajouter des répertoires dans le chemin de recherche, c'est juste un peu plus sportif, et moins portable)
JJR.
LaTeXien migrateur.

LID
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : dimanche 14 novembre 2010, 20:03
Localisation : Lausanne

Re: Comment déclarer un chemin absolu ?

Message par LID »

Tout d'abord, merci à projetmbc et gigiair de s'être penchés sur mon problème.

Tout d'abord concernant la réponse de projetmbc :

Concernant la proposition (sur Mac) d'échapper les espaces :
"/Users/monLogin/Desktop/Porting\ To\ Python3"
Cette solution ne fonctionne pas chez moi.
D'une part, il me semble que ce n'est pas le chemin absolu,(je verrais plutôt "/Volumes/Macintosh\ HD//Users/monLogin/Desktop/Porting\ To\ Python3/.image.eps")
D'autre part, lorsque mon chemin ne comporte pas d'espace, mon chemin absolu est reconnu seulement si je l'inscris sans les guillemets.

Sur le chemin absolu dans Windows :
As-tu bien mis le chemin au complet de l'application que tu utilises ? Si l'application n'est pas répertoriée dans le path, cela peut être la source de ton problème.
Je ne pense pas que le chemin de l'application soit en cause, car la compilation fonctionne si mon chemin est relatif. L'image est affichée si je compile depuis un éditeur Tex, mais elle ne l'est pas si je compile depuis FileMaker (le reste du document est OK).
As-tu essayé de te placer dans le dossier où à lieu le traitement via cd sous Unix-Like ou chdir sous Windaube ? Cela peut-être un moyen de ne travailler qu'avec des chemins relatifs.
La commande shell "latex" que j'envoie depuis FileMaker via un applescript ou le RunShellScript ne prend en compte les images qui ont un chemin absolu. Ainsi même si je la précède d'un "cd" cela ne marche pas.
C'est pour faire quoi ?
J'ai une base de données de fiches de problèmes de math. Ces fiches contiennent des rubriques texte qui contiennent l'énoncé et la solution au format tex et des rubriques multimédia qui contiennent les images de l'énoncé et de la solution. Un script automatise l' envoi de commandes shell (latex - dvips - pstopdf ) et de l'importation du fichier pdf dans les rubriques multimédias. Sur Mac, c'est super, car le pdf obtenu par pstopdf est postscript(=> qualité et poids réduit des images). Sur Windows, c'est un peu moins bien car ps2pdf ne fournit pas du pdf poscript et en plus Filemaker sur Windows n'accepte pas dans ces rubriques multimédia du pdf. Pour le moment j'utilise la chaîne latex - dvipng, puis l'importation.
Ces fiches d'exercices contiennent d'autres rubriques qui me permettent de cataloguer le problème selon plusieurs critères. Ensuite pour constituer un document, on constitue une liste de fiches qui par un script remplit une nouvelle rubrique. Par la même chaîne qu'avant sur Mac-latex-dvips-pstopdf + ouverture du fichier PDF obtenu j'obtiens un document identique à celui obtenu par un éditeur Tex conventionnel. (Sur Windows, le document final est bon aussi avec la chaîne latex-dvips-ps2pdf, sauf que les images ne s'affichent pas parce que je n'ai pas encore résolu cette histoire de chemin absolu).
L'intérêt d'utiliser FileMaker :
- la puissance d'une base de données pour cataloguer, rechercher, échanger avec d'autres collègues des exercices, des documents (voir un jour une base de problèmes sur le Web)
- de travailler sur un "éditeur Latex" WYSIWYG
- les possibilités de script qui me permettent désormais en 5 secondes de paramétrer mon document (taille des caractères, interligne, affichage ou non des points attribués, du barème, de la solution, etc...

Concernant la réponse de gigiair :
Le fait que tu aies déposé un ECM me permet de cerner le problème. Je n'arrive pas à le compiler (TexMaker) en laissant le chemin absolu.
Voici celui que j'ai expérimenté sur ma partition BootCamp :

Code : Tout sélectionner

\documentclass{article}
\begin{document}
\includegraphics{"C:\Users\LID\Documents\MATHOTHEQUE\Provisoire\logo"}
\end{document}
en essayant aussi le chemin : "c:\Documents\MATHOTHEQUE\Provisoire\logo", en mettant ou non l'extension .eps, en enlevant aussi les guillemets, en mettant une majuscule ou une minuscule au disque c. (Lorsque je le tire sur l'invite de commandes, il vient sur ma configuration avec une majuscule et avec \Users\LID juste après contrairement à ton ECM.
Est-ce que c'est mon fichier logo.eps qui est en cause ? Je l'ai remplacé par image.eps obtenu par une exportation au format .eps d'une figure réalisée par Geogebra. Même constat. Et puis avec le chemin relatif, cela fonctionne. J'ai l'impression donc que le fait que j'utilise Windows sur une partition BootCamp est peut-être la cause du problème.(Les chemins s'écrivent peut-être différemment). Comme je n'ai pas de PC pur à disposition pour le moment, je n'arrive pas à vérifier cette hypothèse. Mais si vous avez une autre idée, je suis prêt à l'explorer.

Bonne fêtes de fin d'année
J-L Lienhard

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

Re: Comment déclarer un chemin absolu ?

Message par gigiair »

LID a écrit : Est-ce que c'est mon fichier logo.eps qui est en cause ?
Certainement pas, mais le séparateur de chemins, c'est la barre oblique `/' , pas la contre-oblique  `\'.
La contre oblique est le caractère d'échappement qui permet à LaTeX de savoir qu'il a affaire à une commande, on ne peut pas l'utiliser comme séparateur.
Sous Ouindoz, le séparateur de chemin peut aussi bien être l'oblique que la contre oblique. C'est l'interpréteur de commandes qui n'accepte que la contre oblique, en interne les deux sont possibles. LaTeX envoie ses commandes sans utiliser l'interpréteur de commande. Avec cet ECM ça devrait marcher:

Code : Tout sélectionner

\documentclass{article}
\begin{document}
\includegraphics{"C:/Users/LID/Documents/MATHOTHEQUE/Provisoire/logo"}
\end{document}
Ouindoz, c'est très mal documenté, il faut avoir une solide formation en informatique pour l'utiliser :-).
JJR.
LaTeXien migrateur.

projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1916
Inscription : samedi 29 décembre 2007, 00:58

Re: Comment déclarer un chemin absolu ?

Message par projetmbc »

Merci pour les explications... :D

LID
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : dimanche 14 novembre 2010, 20:03
Localisation : Lausanne

Re: Comment déclarer un chemin absolu ?

Message par LID »

Merci pour ces infos, mais même en corrigeant mon chemin, l'ECM ne se compile pas.
Voici mon ECM :

Code : Tout sélectionner

\documentclass{article}
 \begin{document}
 \includegraphics{"C:/Users/LID/Desktop/Provisoire/logo"}
 \end{document}
et la copie du log :

Code : Tout sélectionner

LOG FILE :
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (MiKTeX 2.9) (preloaded format=latex 2011.10.31) 29 DEC 2011 19:08
entering extended mode
**matho.tex
(C:\Users\LID\Desktop\Provisoire\matho.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, afrikaans, ancientgreek, ar
abic, armenian, assamese, basque, bengali, bokmal, bulgarian, catalan, coptic,
croatian, czech, danish, dutch, esperanto, estonian, farsi, finnish, french, ga
lician, german, german-x-2009-06-19, greek, gujarati, hindi, hungarian, iceland
ic, indonesian, interlingua, irish, italian, kannada, kurmanji, lao, latin, lat
vian, lithuanian, malayalam, marathi, mongolian, mongolianlmc, monogreek, ngerm
an, ngerman-x-2009-06-19, nynorsk, oriya, panjabi, pinyin, polish, portuguese,
romanian, russian, sanskrit, serbian, slovak, slovenian, spanish, swedish, swis
sgerman, tamil, telugu, turkish, turkmen, ukenglish, ukrainian, uppersorbian, u
senglishmax, welsh, loaded.
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\base\article.cls"
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
("C:\Program Files (x86)\MiKTeX 2.9\tex\latex\base\size10.clo"
File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@section=\count80
\c@subsection=\count81
\c@subsubsection=\count82
\c@paragraph=\count83
\c@subparagraph=\count84
\c@figure=\count85
\c@table=\count86
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
(C:\Users\LID\Desktop\Provisoire\matho.aux)
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 2.
LaTeX Font Info: ... okay on input line 2.
! Undefined control sequence.
l.3 \includegraphics
{"C:/Users/LID/Desktop/Provisoire/logo"}
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.
[1
] (C:\Users\LID\Desktop\Provisoire\matho.aux) )
Here is how much of TeX's memory you used:
202 strings out of 494050
2314 string characters out of 3146093
48862 words of memory out of 3000000
3577 multiletter control sequences out of 15000+200000
3640 words of font info for 14 fonts, out of 3000000 for 9000
715 hyphenation exceptions out of 8191
23i,4n,17p,154b,107s stack positions out of 5000i,500n,10000p,200000b,50000s
Output written on matho.dvi (1 page, 256 bytes).
Est-ce que le problème n'est pas lié à ma configuration ?

J-L Lienhard

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

Re: Comment déclarer un chemin absolu ?

Message par gigiair »

Il faut ajouter

Code : Tout sélectionner

\usepackage{graphicx}
dans ton préambule .
JJR.
LaTeXien migrateur.

LID
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : dimanche 14 novembre 2010, 20:03
Localisation : Lausanne

Re: Comment déclarer un chemin absolu ?

Message par LID »

Cette fois, c'est bon, mais j'ai dû ôter les guillemets qui entouraient le chemin

Avec les guillemets, il n'y avait pas d'erreur, mais l'image ne s'affichait pas.

En tout cas, merci beaucoup pour l'aide.

J-L Lienhard