Problème avec input dans input dans input

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.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1903
Inscription : samedi 29 décembre 2007, 00:58

Problème avec input dans input dans input

Message par projetmbc »

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.

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

Re: Problème avec input dans input dans input

Message par gigiair »

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 modification par gigiair le samedi 23 juillet 2011, 18:51, modifié 1 fois.
JJR.
LaTeXien migrateur.

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

Re: Problème avec input dans input dans input

Message par projetmbc »

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

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

Re: Problème avec input dans input dans input

Message par gigiair »

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.

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

Re: Problème avec input dans input dans input

Message par projetmbc »

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.