Input cherchés dans un répertoire de référence

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
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.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Input cherchés dans un répertoire de référence

Message non lu par petitours »

Bonjour

Dans mes documents j'utilise

Code : Tout sélectionner

\graphicspath{{../CharteGraphiqueAMoi/V1.0/ImagesLatex}}
et j'ai tous un tas de \input{../CharteGraphiqueAMoi/V1.0/NomDossierQuiASens/NomFichierText}

Comment puis je déclarer en début de document un "../CharteGraphiqueAMoi/V1.0"(ou son chemin global) pour ne plus avoir à l’écrire de partout après ?

Je n'ai trouvé que des choses qui parlent des dossiers propres à texlive où il va chercher les fichiers mais je veux pointer vers un dossier qui a rien à voir avec Teslive.

Je suis avec TexLive et TexStudio.

Merci par avance pour votre aide.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

Le chemin de recherche des fichiers est géré par la bibliothèque kpathsea, et est configuré par la variable TEXINPUTS . C'est une variable gérée par le moteur latex et pour la modifier, il faut configurer texmf.cnf. C'est assez sportif à mon idée, mais sans doute pas insurmontable.
Étant sous Linux, je préférerais créer un lien symbolique depuis le répertoire ../CharteGraphiqueAMoi/V1.0 vers une cible dans un répertoire personnel de TEXINPUTS.
Sous TeXLive, je créerais le répertoire ~/texmf/tex/inputs puis je taperais la commande

Code : Tout sélectionner

ln -s ../CharteGraphiqueAMoi/V1.0 ~/texmf/tex/inputs/mesinputs
.
J'ai testé sous cet OS avec la commande kpsewhich

Code : Tout sélectionner

kpsewhich toto
<adresse de toto.tex ou de toto.png ou autre fichier toto.extension connue de TeX
Chez moi, ça marche. Sans garantie sur une autre installation…

Il y a des liens symboliques sous Windows, mais je n'ai pas testé. Je testerai peut-être à l'occasion.
JJR.
LaTeXien migrateur.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: input cherchés dans un répertoire de référence

Message non lu par petitours »

Merci mais outch quelle usine à gaz, je n'imaginais pas plus compliqué que le si logique et simple graphicspath

J'utilise les mêmes projets LaTex sur plusieurs machines et le risque de me retrouver un jour coincé par une configuration d'environnement (le château de carte qui s'écroule) est bien trop grand.

Dommage qu'il n'y ait pas un truc aussi simple que graphicspath ou la possibilité de reconstruire le chemin à partir d'une truc du genre

Code : Tout sélectionner

\def\BasePath{../CharteGraphiqueAMoi/V1.0/}
\input{join{BasePath}{NomFichierText}}
Merci
touhami
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 499
Inscription : dimanche 11 février 2007, 11:45

Re: input cherchés dans un répertoire de référence

Message non lu par touhami »

Bonjour.
Voici un truc classique:

Code : Tout sélectionner

\makeatletter
\def\input@path{{./Dossier/}}
\makeatother
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

touhami a écrit : mercredi 10 juillet 2024, 20:12 Bonjour.
Voici un truc classique:

Code : Tout sélectionner

\makeatletter
\def\input@path{{./Dossier/}}
\makeatother
Si vous travaillez dans un environnement d'édition comme AUCTeX qui filtre les fichiers disponibles par un \\input, cette façon de faire fait perdre cette fonctionnalité. Les fichiers dans le /Dossier/ ne figurent pas dans la liste des fichiers disponibles. Sous TeXStudio, la fonctionnalité n'existe pas donc le problème ne se pose pas. C'est pratique quand l'orthographe des fichiers à inclure est un peu compliquée.
JJR.
LaTeXien migrateur.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

petitours a écrit : mercredi 10 juillet 2024, 19:24

Dommage qu'il n'y ait pas un truc aussi simple que graphicspath ou la possibilité de reconstruire le chemin à partir d'un truc du genre

Code : Tout sélectionner

\def\BasePath{../CharteGraphiqueAMoi/V1.0/}
\input{join{BasePath}{NomFichierText}}

Code : Tout sélectionner

 \input{\BasePath NomFichierText} 
Doit faire l'affaire, non ?

Personnellement, si j'avais des documents complexes à gérer, je créerais un dossier réservé à ce document et j'y placerais les liens symboliques vers les fichiers appelés et les illustrations.
JJR.
LaTeXien migrateur.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: input cherchés dans un répertoire de référence

Message non lu par petitours »

gigiair a écrit : mercredi 10 juillet 2024, 22:00Doit faire l'affaire, non ?
Oh oui ca marche, j'avais même pas essayé de compiler

le soucis est que TexStudio ne trouve pas le fichier :roll:
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

petitours a écrit : mercredi 10 juillet 2024, 22:14
gigiair a écrit : mercredi 10 juillet 2024, 22:00Doit faire l'affaire, non ?
Oh oui ça marche, j'avais même pas essayé de compiler

le soucis est que TexStudio ne trouve pas le fichier :roll:
Il faut vérifier que le chemin est bien le bon par la commande

Code : Tout sélectionner

kpsewhich /chemin/complet/daccès/fichier
Je ne pense pas qu'il puisse y avoir d'autre raison qu'une faute de syntaxe.
JJR.
LaTeXien migrateur.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: input cherchés dans un répertoire de référence

Message non lu par petitours »

gigiair a écrit : jeudi 11 juillet 2024, 08:00 Il faut vérifier que le chemin est bien le bon par la commande

Code : Tout sélectionner

kpsewhich /chemin/complet/daccès/fichier
Désolé mais je ne comprends même pas ce que fait cette commande et donc encore moins où la taper :roll:

Avec
\input{\BasePath NomFichierText}
la compilation fonctionne donc le chemin est bon mais dans la logique de fonctionnement de TexStudio lui ne voit pas le chemin et considère donc que le fichier n'existe pas.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

J'ai compris que tu étais sous Windows...
TeXStudio n'effectue aucune recherche de fichier et ne compile rien du tout. Comme le maitre d'œuvre en bâtiment ne construit aucune maison et se contente d'adresser des instructions aux différentes entreprises qui effectuent la construction, TeXStudio se contente d'envoyer des commandes à différents programmes spécialisés. Si la commande ne s'exécute pas correctement, il faut d'abord s'assurer que la commande a bien été correctement formulée. Pour ça, il faut s'adresser non au donneur d'ordre, mais à son destinataire.
En informatique, l'envoi d'une commande consiste à confier à un interpréteur de commandes un texte conforme à une syntaxe acceptée par commande.
Sous Windows il y a plusieurs interpréteurs de commandes. Le plus ancien s'appelle cmd et convient parfaitement pour les tâches usuelles.
On peut lancer cmd en utilisant le menu système, ou par l'appui simultané des touches Windows et R qui active un lanceur d'application à laquelle on accède en tapant son nom.
On tape cmd et on valide par la touche entrée.
L'interpréteur de commande se présente sous la forme d'une fenêtre noire dans laquelle on peut taper la commande.
Le programme spécialisé qui effectue la recherche des fichiers pour le compte de LaTeX s'appelle kpathsea. Pour faire appel à lui directement, on utilise la commande kpsewhich

On tape donc la commande puis on valide. La réponse apparaît sur la ligne suivante.
Par exemple, pour savoir si le fichier gnuplot-lua-tikz.tex se trouve bien sur mon installation, je tape la séquence suivante :

Code : Tout sélectionner

kpsewhich gnuplot-lua-tikz.tex
/usr/share/texmf/tex/gnuplot-lua-tikz.tex
La réponse atteste de sa présence et indique l'emplacement.
Si le nom du ficher est renvoyé, c'est qu'il a été trouvé, sinon rien n'est renvoyé.

Je suis désolé pour cette réponse, mais je ne connais pas d'autre façon de debugger. Quand ça ne va pas avec un assistant, il faut passer les commandes « à la main » unes à unes pour trouver la fautive.
JJR.
LaTeXien migrateur.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: input cherchés dans un répertoire de référence

Message non lu par petitours »

Je sais taper des commandes dans le terminal windows

Mais là du coup ce que je ne comprends pas c'est quoi tester. si texlive arrive a compiler c'est bien que le fichier est présent et que

Code : Tout sélectionner

\input{\BasePath NomFichierText} 
lui convient

C'est le coté pratique dans texstudio que ça pèche vu que lui n'est pas capable de voir que
\BasePath NomFichierText
est un chemin valide.
Moins pratique et un peu gênant d'avoir un ide qui affiche pleins de trucs en rouge
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

J'avoue ne rien comprendre. Il faut être plus clair.
Si la compilation s'exécute sans erreurs, il n'y a pas de problème. S'il y a des erreurs, il faut les identifier et en trouver leur cause.
Les erreurs sont signalées dans le fichier log, il faut le publier en entier, je ne suis pas devin.
JJR.
LaTeXien migrateur.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: input cherchés dans un répertoire de référence

Message non lu par petitours »

Avec

Code : Tout sélectionner

\def\BasePath{../CharteGraphiqueAMoi/V1.0/}
 \input{\BasePath NomFichierText} 
Ça compile mais si il y a bien problème : celui que texStudio (pas le compilo) ne trouve pas le fichier "\BasePath NomFichierText" et met donc la ligne correspondante en rouge en perdant les fonctionnalités associées au fait qu'il sait gérer ce fichier en tant qu'IDE.
BasePath.jpg
BasePath.jpg (11.27 Kio) Consulté 7838 fois
Sur la dernière version de TexStudio que je viens d'installer la ligne n'est plus en rouge, il faut passer la souris sur la ligne pour voir le problème, mais TexStudio ne sait pas gérer ce input, un double clic dessus ne permet pas de l'ouvrir, on donne juste un message d'erreur.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

J'ai une installation sous W10, et MiKTeX, mais ça ne change rien pour ce problème par rapport à TeXLive.
J'ai un fichier c:/Users/jjret/AppData/Roaming/Documents/Inputs/toto.tex, j'ai créé un document latex ecm.tex

Code : Tout sélectionner

% Fichier ecm.tex
\documentclass{article}

\begin{document}
Test
\newcommand*\base{c:/Users/jjret/AppData/Roaming/Documents/Inputs/}
\input{\base toto.tex}
\end{document}

Tout se passe bien, le fichier toto.tex est inséré dans mon document.
Je suis démuni.
Il faut me fournir ton ficher log. Sans ça je ne peux pas comprendre ce qui se passe sur ta machine, je ne suis pas voyant, malheureusement.
Le fichier log, c'est le fichier qui a le même nom de base que le fichier tex, mais avec l'extension log.

Essaye de compiler un ECM comme le mien et informes moi du résultat avec le fichier log s'il y a des erreurs.
JJR.
LaTeXien migrateur.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: input cherchés dans un répertoire de référence

Message non lu par petitours »

Ce n'est pas un soucis de compilation, je n'ai donc rien qui va pas dans le .log
C'est un soucis dans l'ide Texstudio qui lui ne voit plus le fichier. C'est gênant d’utiliser un ide et qu'il clignote comme un sapin de noël parce qu'il ne voit pas les fichiers.

Mais je le répète encore une fois : la compilation fonctionne parfaitement.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2830
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

J'ai fini par comprendre en testant en utilisant TeXStudio aussi bien sous Linux que sous W10.
Il s'agit clairement d'un bug de TeXStudio qui ne se fatigue pas à aller chercher le fichier ainsi importé. Donc rien à voir avec un problème LaTeX. Le problème est d'ailleurs le même en utilisant les liens symboliques.
Il faut poster sur une liste dédiée à TeXStudio en espérant qu'un développeur s'intéresse au problème.
Une question similaire a été posé sur le site anglopnone tex.stackexchange il y a un an et demi sans réponse.
JJR.
LaTeXien migrateur.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: input cherchés dans un répertoire de référence

Message non lu par petitours »

A tout hasard connaissez vous un équivalent à Texstudio qui n'a pas ce soucis ?

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

Re: input cherchés dans un répertoire de référence

Message non lu par gigiair »

Je n'en connais pas. J'utilise AUCTeX/Emacs que je trouve parfait, extensible à volonté et hautement personnalisable.
Je suis maintenant retraité depuis vingt ans et je n'ai pas l'occasion de produire des gros documents. J'ai toujours eu beaucoup de difficultés avec les fichiers inclus et à la fin de ma carrière, je n'en utilisais plus.

Je peux vous proposer deux solutions :
— La solution bourrine qui consiste à remplacer par une recherche et remplacement tous les ' \\BasePath ' par le chemin réel de temps en temps pour faire disparaître les affichages en erreur de TS. C'est vraiment bourrin de chez bourrin et peu confortable, mais ça marche.
— La deuxième, que je choisirais si j'avais à le faire, consiste à réserver un répertoire pour le seul document en cours d'édition et de placer dans ce répertoire les fichiers inclus. S'ils sont partagés avec d'autres documents, je les remplace par des liens symboliques vers les fichiers à inclure.
Le lien symbolique se comporte ainsi comme si le fichier lié était présent dans le répertoire, en particulier si on lui apporte des modifications. Je ne sais pas s'il est judicieux de nommer le lien symbolique du même nom que le fichier cible.
Pour créer un lien symbolique sous W10 vers le fichier toto.tex, du même nom toto.tex, j'ouvre un interpréteur cmd avec les droits d'administrateur et je tape la commande :

Code : Tout sélectionner

mklink /d c:\Chemin\vers\liensymbolique\toto.tex c:\chemin\vers\fichier\toto.tex

Cette façon de faire préserve le fonctionnement de TS et permet de modifier les fichiers inclus à la volée.

Je n'ai pas réellement d'expérience de cette pratique
Des équivalents à TeXStudio, je n'en connais pas beaucoup. Il y TeXMaker, qui est très semblable et qui se comporte de la même façon. Toutefois, les liens vers les fichiers inclus ne s'affichent pas en rouge, mais ils sont parfaitement inutiles puisque morts.
JJR.
LaTeXien migrateur.