US

Inclusion de fichiers LaTeX

Quand un fichier LaTeX commence à devenir long, il peut être difficile de mettre à jour facilement. De plus, si vous travaillez à plusieurs sur un rapport, chacun des membres doit être sûr que personne ne touche au document pour apporter une modification (à moins d'utiliser SVN ou CVS par exemple).

Il est donc intéressant de séparer le fichier source LaTeX en plusieurs fichiers. Ceux-ci seront rassemblés en un fichier par le compilateur LaTeX puis transformé comme d'habitude en DVI, PDF, ...

Inclusion de fichiers LaTeX
fig l12.1 Inclusion de fichiers LaTeX

Comme on l'a déjà vu au premier chapitre, deux commandes permettent d'effectuer ce travail : les commandes input et include.

La commande input

Comment fonctionne cette commande ? Elle prend un unique paramètre qui est le nom du fichier à inclure. Prenons tout de suite un exemple, voici le fichier fichier1.tex.

1 
Fichier 1 \LaTeX
listing l12.1 Le fichier fichier1.tex

Ce fichier n'est absolument pas un fichier LaTeX complet, comme vous avez pu le remarquer, il manque en effet la classe de document et l'environnement document. Mais ce fichier est destiné à être inclus dans un autre. Voici maintenant le fichier principal :

1 
2 
3 
4 
5 
6 
7 
8 
9 
\documentclass{article}
 
\usepackage[latin1]{inputenc}
 
\begin{document}
    Document principal
 
    \input{fichier1} inclus par \jobname .tex
\end{document}
listing l12.2 Le fichier main.tex

La commande jobname insère le nom du fichier LaTeX en cours de compilation, mais sans l'extension.

Que va-t'il se passe quand on va compiler ce fichier ? LaTeX va voir qu'on a utilisé la commande input, il va donc ouvrir le fichier fichier1.tex et simplement copier-coller le contenu du fichier fichier1.tex à la place de \input{fichier1}.

La première chose à remarquer est que dans l'exemple on n'a pas mis l'extension .tex dans le paramètre de la commande input. Dans ce cas, LaTeX va automatiquement rechercher un fichier avec l'extensions .tex. Si vous voulez inclure un autre fichier, par exemple file.txt, vous devez préciser l'extension.

Il faut aussi insister sur le fait que LaTeX fait un bête copier-coller, et considère le contenu du fichier comme étant du code LaTeX. En fait, c'est comme si on avait écrit le document en un seul fichier, fichier que voici :

1 
2 
3 
4 
5 
6 
7 
8 
9 
\documentclass{article}
 
\usepackage[latin1]{inputenc}
 
\begin{document}
    Document principal
 
    Fichier1 \LaTeX inclus par \jobname .tex
\end{document}
listing l12.3 Le fichier main.tex après que LaTeX aie inclu fichier1.tex

Le grand avantage de séparer un document LaTeX en plusieurs fichiers et lorsque vous devez travailler à plusieurs sur un même document, chaque personne peut ainsi modifier son fichier en parallèle. De plus, lorsque vous désirez par la suite modifier votre document, vous pourrez cibler directement le fichier à modifier et ainsi accélérer la modification.

La commande include

La commande include agit exactement de la même manière que la commande input mais démarre une nouvelle page avant d'inclure le contenu du fichier à inclure et démarre une nouvelle page à la fin du contenu du fichier inclus.

Voici le fichier que LaTeX aurait créé si on avait utilisé la commande include plutôt que input dans le fichier main.tex :

1 
2 
3 
4 
5 
6 
7 
8 
9 
\documentclass{article}
 
\usepackage[latin1]{inputenc}
 
\begin{document}
    Document principal
 
    \newpage Fichier1 \LaTeX \newpage inclus par \jobname .tex
\end{document}
listing l12.4 Le fichier main.tex après que LaTeX aie inclu fichier1.tex (avec include)
  • Espace membre
  • Learning Center
  • Les forums
  • Livre d'or
  • Imprimer
  • Boutique
  • Info
  • Règlement
  • Erreur
  • Newsletter