Problème de chemin avec include (base de données exercices)

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 membres 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.
missPi
Utilisateur confirmé
Utilisateur confirmé
Messages : 23
Inscription : jeudi 16 juin 2022, 12:32
Statut actuel : Enseignant

[Résolu] Problème de chemin avec include (base de données exercices)

Message non lu par missPi »

Bonjour,

J'ai créé un .tex par exercice. Je souhaite créer un document les appelant sur des pages différentes à chaque fois. J'ai vu qu'il s'agissait de la commande \include. Le soucis étant que mes exercices ne sont pas dans le même répertoire que le document final. Il me faut donc inclure le chemin pour y accéder. Je ne comprends pas comment faire. J'ai viré accents et espaces de mes dossiers.

Plusieurs choses :
  1. Jusqu'où faut-il remonter dans le chemin ? Depuis C:// ou bien depuis le dossier qu'ils ont en commun ?
  2. Mes documents sont partagés avec une amie qui a besoin aussi d'y avoir accès. Ils sont dans le dossier google drive. Je ne peux pas empêcher l'espace ici. Est-ce un problème ?
  3. En allant dans ce sujet : viewtopic.php?p=105560 j'ai vu qu'il fallait utiliser \datapath mais je n'arrive pas à comprendre comment ça fonctionne.
  4. Lorsque j'écris \include{/livre/les_exos/exo001.tex} il considère que les / sont des commandes latex.
Mes exos sont dans c:\mon_nom\Google Drive\livre\exos\exo001.tex.
Mon fichier qui les appelle est dans : c:\mon_nom\Google Drive\livre\421.

J'ai appelé : \include{\livre\exos\exo001.tex} Mais comme dis plus haut, il n'aime pas les \.
J'ai appelé : \include{livre/exos/exo001.tex} Ca génère le pdf, mais vide. :crazy:
Les fichiers dans lesquels se trouvent les exos sont sans préambule ni \begin{document} et \end{document}. J'espère avoir bien fait (notez qu'au début je ne l'avais pas fait, et que ça ne fonctionnait pas mieux).

On trouve un millier de vidéos "latex en 5 min" sur youtube, mais étonnamment personne n'a eu le courage de faire des vidéos plus poussées. :think:
J'utilise LaTeX depuis des années, sans problème. Mais là, on souhaite écrire un livre avec une amie, et tout à coup je me rends compte qu'il va falloir structurer tout ça... aïe aïe aïe !!
Dernière modification par missPi le lundi 20 juin 2022, 13:52, modifié 1 fois.
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2703
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: base de donnée exo pb appel du chemin

Message non lu par gigiair »

missPi a écrit : lundi 20 juin 2022, 09:53 J'ai créé un .tex par exercice. Je souhaite créer un document les appelant sur des pages différentes à chaque fois. J'ai vu qu'il s'agissait de la commande \include. Le soucis étant que mes exercices ne sont pas dans le même répertoire que le document final. Il me faut donc inclure le chemin pour y accéder.
Il ne le faut pas, il suffit.

TeX va chercher les fichiers dont il a besoin dans une arborescence définie par la variable d'environnement TEXINPUTS. Si un fichier se trouve dans cette arborescence, il n'y a pas besoin de préciser son chemin complet.
Sa valeur peut s'obtenir dans un interpréteur de commande du système (CMD ou Powershell sous Windows)

Code : Tout sélectionner

kpsewhich -var-value TEXINPUTS.tex
Cette variable d'environnement est modifiable, mais je ne conseillerais pas de le faire pour diverses raisons.

Je préfère largement la solution que je trouve plus souple qui consiste à créer un lien symbolique dans l'arborescence TEXINPUTS (par exemple dans le répertoire de travail) pour chaque fichier appelé par \input ou \include.

Comme je ne pratique pas Windows, je me me risquerai pas à expliquer comment faire, mais une recherche google me remplacera avantageusement.

Sous Linux ou MacIntosh pour établir un lien symbolique dans le répertoire ~/texmf/tex/latex/ (qui fait partie de TEXINPUTS ) pointant sur ~/Documents/LaTeX/boites.tex la commande serait :

Code : Tout sélectionner

ln -s ~/Documents/LaTeX/boites.tex texmf/tex/latex/boites.tex 
Bien sûr, sous Windows, la commande serait différente.
Pour vérifier que le fichier sera bien trouvé, la commande kpsewhich le fait

Code : Tout sélectionner

debjjr@charlotte:~$ kpsewhich boites.tex
/home/debjjr/texmf/tex/latex/boites.tex
Si j'en crois google, sous W10 la commande serait

Code : Tout sélectionner

MKLINK "C:\Mes documents\latex\monfichier.tex C:\Répertoire\dans\Texinputs\monfichier.tex
JJR.
LaTeXien migrateur.
missPi
Utilisateur confirmé
Utilisateur confirmé
Messages : 23
Inscription : jeudi 16 juin 2022, 12:32
Statut actuel : Enseignant

Re: Base de donnée exo pb appel du chemin

Message non lu par missPi »

Bon, j'avoue ne pas avoir tout compris à ton message, ça commence à dépasser mes compétences :) Merci à toi de t'être penché sur le problème !

Cependant, mon mari a trouvé la solution mais qui ne fonctionne qu'avec la commande input et non pas avec /include, je rajoute donc un saut de page manuellement.

Pour remonter d'un dossier, il faut écrire ../
Voici mon arborescence :
  • livre
    • lecon
      • lecon.tex
    • exo
      • exo 1.tex<== sans préambule ni \begin{document} ni end{document}
Je veux insérer l'exo 1 dans le fichier "lecon.tex"
J'écris alors :
input{../exo/exo1.tex} la commande ../ permettant de remonter du dossier "lecon" au dossier "livre" dans lequel se trouve le dossier "exo".

Bon, c'est bizarre que la commande ne soit pas reconnue avec include, mais je m'en contenterais !
gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2703
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Base de donnée exo pb appel du chemin

Message non lu par gigiair »

missPi a écrit : lundi 20 juin 2022, 13:51 Bon, j'avoue ne pas avoir tout compris à ton message, ça commence à dépasser mes compétences :) Merci à toi de t'être penché sur le problème !
La notion de lien n'est pourtant pas bien difficile à comprendre. C'est un peu comme créer un alias dans le répertoire courant pour un fichier qui n'y est pas .
Je trouve ça pratique, surtout si le fichier est appelé dans plusieurs documents, si l'on a besoin de le déplacer, il suffit de modifier le lien et non modifier chacun de ses appels. Le lien symbolique n'est évidemment pas à modifier si le contenu du fichier cible est modifié.
Il existe des assistants graphiques pour créer des liens symboliques, j'ai trouvé celui-ci Créer un lien symbolique avec un logiciel
Je ne sais pas s'il y en a d'autres, je n'utilise pas Windows depuis bien longtemps, peut-être qu'un utilisateur de Windows sur ce site a mieux à proposer.
Je pense que l'utilisation de liens symboliques doit permettre de s'affranchir des contraintes dues aux caractères parfois un peu fantaisistes utilisés parfois dans les noms de certains fichiers.
Un autre avantage de la méthode est que si l'on veut modifier ce fichier, il suffit d'appeler le fichier à l'aide du lien symbolique, on n'a pas à se préoccuper de son emplacement réel, le fichier est traité comme si on l'appelait depuis son emplacement réel et les modifications sont enregistrées dans son emplacement réel. C'est totalement transparent.
JJR.
LaTeXien migrateur.
missPi
Utilisateur confirmé
Utilisateur confirmé
Messages : 23
Inscription : jeudi 16 juin 2022, 12:32
Statut actuel : Enseignant

Re: Problème de chemin avec include (base de données exercices)

Message non lu par missPi »

Intéressant en effet, je m'y pencherai, ça pourrait m'être utile pour ce que je souhaite faire en effet.
Merci. :)