Problème avec input dans input dans input

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Problème avec input dans input dans input

Messagepar projetmbc » Samedi 23 Juillet 2011, 14:15

Bonjour,
j'ai trois fichiers.

main.tex
Code: Tout sélectionner
\documentclass[10pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\begin{document}
On peut insérer directement dans du texte. \input{content/test} Facile à utiliser, non ?
\end{document}


content/test.tex
Code: Tout sélectionner
Un peu de contenu avec son contenu : \input{content/subcontent}.


content/subcontent.tex
Code: Tout sélectionner
du sous-contenu d'une certaine façon


En l'état pas de souci mais ce qui me gêne, c'est d'avoir à mettre le chemin complet content/subcontent.tex dans content/test.tex. Peut-on s'en passer ?

Je précise que j'ai besoin de cela pour insérer d'affreux codes qui me permettront d'avoir des commandes de programmation colorées dans du texte avec des retours à la ligne possible.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Problème avec input dans input dans input

Messagepar gigiair » Samedi 23 Juillet 2011, 16:31

Il suffit que ton fichier soit dans le chemin de recherche des fichiers, décrit par
Code: Tout sélectionner
kpsewhich -expand-var='$TEXINPUTS.latex'

Pour plus de détails, voir
Code: Tout sélectionner
info kpathsea
m path searching

Classiquement, tu peux placer tes fichiers dans un répertoire sous ~/texmf/tex/latex/ créé à cet effet.
Dernière édition par gigiair le Samedi 23 Juillet 2011, 17:51, édité 1 fois.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2364
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Problème avec input dans input dans input

Messagepar projetmbc » Samedi 23 Juillet 2011, 17:29

Existe-t-il une commande toute faite ? N'y a-t-il pas plus simple ?
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Problème avec input dans input dans input

Messagepar gigiair » Samedi 23 Juillet 2011, 18:14

projetmbc a écrit:Existe-t-il une commande toute faite ? N'y a-t-il pas plus simple ?

Je ne vois pas ce que tu veux dire, c'est très simple si tu place tes fichiers dans les répertoires du chemin de recherche. Il y en a de prévus dans ton espace personnel. par exemple, tout répertoire sous ~/texmf/tex/latex créé à cet effet.
Si tu veux les mettre ailleurs, c'est un peu plus sportif, il faut modifier le chemin de recherche.
Le plus simple est de créer un lien symbolique vers un répertoire du chemin de recherche.
Je te propose par exemple de créer un répertoire ~/texmf/tex/latex/include et de créer un lien vers ce répertoire pour y accéder.
Code: Tout sélectionner
mkdir ~/texmf/tex/latex/include
ln -s ~/texmf/tex/latex/include latexinclude

Testons en créant un fichier bidon pour voir s'il sera trouvé:
Code: Tout sélectionner
touch ~/latexinclude/atuer.tex
kpsewhich atuer.tex
/home/gigiair/texmf/tex/latex/perso/atuer.tex

la commande kpsewhich est l'utilitaire en ligne de commande utilisant kpathsea, la bibliotèque de recherche utilisée par latex.
ceci garantit que le fichier atuer.tex sera trouvé par \input

Il faudrait que tu précise un peu mieux ou tu compte placer tes fichiers inclus.
Tu peux certes choisir la totalité de ton espace personnel, mais est-ce bien pertinent en regard à l'efficacité de la recherche ?

D'autre part, il faut être prudent quand on modifie l'environnement dans lequel se déroule la compilation. On peut avoir envie d'actualiser un document composé quelques années auparavant. Que se passera-t-il si l'environnement a été modifié entre temps (une machine, ça peut tomber en panne et se changer) ?
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2364
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Problème avec input dans input dans input

Messagepar projetmbc » Dimanche 24 Juillet 2011, 13:07

Merci pour ces explications mais du coup cela ne va pas convenir à ce que je souhaite faire. tant pis.

Concrètement, j'aurais un fichier principal dans le quel je vais inclure mes parties, sous-parties,... Ensuite, dans chaque contenu, il pourra y avoir des bouts de code en ligne via quelque chose du type :
Code: Tout sélectionner
Nous allons expliquer la commande \input{forLoop.tex}, c'est la base de la programmation !

Le fichier forLoop.tex contiendra un code illisible par un humain.

Je pourrais gérer les chemins des fichiers depuis le document principal. Le souci avec cette méthode et qu'un changement de nom de dossier, ou un déplacement de dossier, et là c'est le drame !

L'idéal serait d'avoir le fonctionnement suivant :
  • On reprend la structure de fichiers donné dans mon 1er message ci-dessus.
  • Quand main.tex insère content/test, il repère que ce fichier est dans le dossier content/, lequel chemin sera ajouté au début de toutes les variables des inputs dans le fichier content/test.
Peut-être que l'on pourrait programmer cela en créant une nouvelle commande relinput pour REL-ative INPUT.

J'ouvre un post sur ce sujet : voir ici.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Exabot [Bot], Google [Bot] et 5 invités