Créer des documents multifichiers
Concevoir un document avec plusieurs fichiers
Lorsque vous avez un document assez court, avec quelques chapitres, des sections et une cinquantaine de pages, vous pouvez parfaitement le concevoir en un seul fichier. C’est plus simple à gérer.
Mais dès lors que votre document est très long, comme une thèse ou un manuel utilisateur, avec de nombreuses parties incluant un grand nombre de chapitres, vous pouvez vite arriver à plusieurs centaines de pages. Dans ce cas la meilleure solution est de concevoir un document en plusieurs fichiers.
Vous pourrez ainsi avoir un fichier principal pour lier tous les autres fichiers. Ce premier fichier est le fichier « maître » du livre. Ensuite, selon le découpage le plus approprié pour votre projet, vous pourrez avoir un fichier par partie par exemple. Et dans chaque partie vous aurez les chapitres constitutifs.
Ce découpage logique vous permet de gérer chaque partie indépendamment des autres et de vous concentrer sur le contenu rédactionnel des chapitres de chaque partie. De plus la compilation sera plus rapide pour chaque fichier, contrairement à la compilation d’un unique et très gros fichier. C’est vraiment une méthodologie très largement adoptée.
Connaître la structure des fichiers
Dans cet exemple, quatre fichiers sont à inclure dans un fichier maître.
-
Le fichier maître est nommé maitre.tex.
-
Le fichier du préambule est nommé preambule.tex.
-
Les fichiers des contenus sont nommés partie01.tex, partie02.tex et partie03.tex.
Voici la structure du projet mis en place :
![images/C16-001.png images/C16-001.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C16-001.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Exploiter le fichier maître et le préambule
Le fichier maître, maitre.tex, comporte une structure très classique, avec la déclaration de la classe de document commune à tous les fichiers inclus. Dans cet exemple, nous utilisons un livre, book, bien adapté à notre projet.
Pour décomposer au mieux notre projet, nous créons un fichier spécifique pour le préambule, nommé preambule.tex. Ce fichier contient tous les packages communs à tous les fichiers du projet.
Voici son contenu :
% Les packages communs
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
Dans le fichier maître, pour inclure le fichier du préambule, utilisez la commande \input{Nom du fichier}. Cela permet d’inclure des petits fichiers, comme ce préambule ou des fichiers de commandes LaTeX personnalisées.
Dans le fichier maître, nous avons, en début de fichier :
\documentclass[11pt,a4paper]{book}
\input{preambule}
Vous remarquerez qu’il n’est pas nécessaire d’indiquer l’extension des fichiers inclus, .tex, qui est l’extension implicite.
Toujours dans le fichier maître, vous pouvez ajouter les commandes pour avoir une page de garde avec l’auteur (\author), le titre...
Connaître la structure des fichiers inclus
Les trois fichiers inclus, partie01.tex, partie02.tex et partie03.tex, possèdent une structure particulière. En effet, ils n’ont pas de préambule, puisque celui-ci est dans le fichier maître et il est ainsi automatiquement utilisé par les fichiers inclus. De plus, les fichiers inclus ne possèdent pas de corps de document non plus (\begin{document} et \end{document}). C’est tout à fait logique puisqu’il n’y a qu’un seul corps dans un document et que celui-ci est indiqué dans le document maître. Donc dans les fichiers inclus, il n’y a que du contenu rédactionnel.
Voici l’exemple du fichier partie01.tex :
\chapter{Janvier}
\section{Lundi de janvier}
Fusce dapibus, tellus ac cursus commodo...
\section{Mardi de janvier}
Fusce dapibus, tellus ac cursus commodo...
\chapter{Février}
\section{Mercredi de février}
Fusce dapibus, tellus ac cursus commodo...
\chapter{Mars}
\section{Jeudi de mars}
Fusce dapibus, tellus ac cursus commodo...
Notez un point technique très important, les fichiers inclus ne peuvent pas contenir d’autres fichiers inclus. En d’autres termes, dans un fichier inclus vous ne pouvez pas utiliser les commandes...
Afficher le rendu du document maître
Voici le rendu obtenu pour cet exemple.
Voici la page de garde :
![images/C16-002.png images/C16-002.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C16-002.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
La page de la table des matières :
![images/C16-003.png images/C16-003.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C16-003.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Voici le début du document, avec la première partie et le début du chapitre 1 :
![images/C16-004.png images/C16-004.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C16-004.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Utiliser une variante de structure
Voici une variante pour inclure des fichiers dans un document maître. Dans l’exemple précédent, le fichier maître contient les commandes de niveau hiérarchique des parties : \part{Introduction}, \part{Résultats} et \part{conclusion}.
Mais vous pouvez parfaitement placer ces commandes dans chaque fichier inclus.
Le fichier partie01.tex :
\part{Introduction}
\chapter{Janvier}
\section{Lundi de janvier}
Fusce dapibus, tellus ac cursus commodo...
...
Le fichier partie02.tex :
\part{Résultats}
\chapter{Avril}
\section{Lundi d'avril}
Fusce dapibus, tellus ac cursus commodo...
...
Le fichier partie03.tex :
\part{Conclusion}
\chapter{Juillet}
\section{Lundi de juillet}
Fusce dapibus, tellus ac cursus commodo...
...
Dans le fichier maître, nous avons alors :
\documentclass[11pt,a4paper]{book}
\input{preambule}
\author{Christophe AUBRY}
\title{Rapport annuel d'activité}
\date{25 octobre 2020}
\begin{document}
\maketitle
% Table des matières
\tableofcontents
% Inclure la partie 1
\include{partie01}
...
Exploiter l’inclusion conditionnelle
Une autre solution existe pour créer des documents multifichiers. Avec l’exemple précédent, nous avons explicitement inclus les fichiers désirés dans le corps du document maître. Mais il se peut que, pour une raison bien précise, un fichier ne doive pas être inclus dans le fichier maître.
Dans le corps du fichier maître, utilisez la commande include{Nom du fichier} pour inclure tous les documents qui doivent être « normalement » inclus.
Toujours dans le préambule du fichier maître, avec la commande \includeonly{fichier1, fichier2,...}, vous indiquez uniquement les fichiers qui doivent être inclus à l’instant T de votre travail.
Voici le code du fichier maître :
\documentclass[11pt,a4paper]{book}
\input{preambule}
\author{Christophe AUBRY}
\title{Rapport annuel d'activité}
\date{25 octobre 2020}
% Fichiers à inclure
\includeonly{partie01,partie03}
\begin{document}
\maketitle
% Table des matières
\tableofcontents
% Inclure la partie 1
\include{partie01}
% Inclure la partie 2
\include{partie02}
% Inclure la partie 3
\include{partie03} ...
Inclure un index multiple
Dans les documents multifichiers, il est courant d’avoir des entrées d’index dans les documents constitutifs. Il est donc nécessaire de pouvoir afficher l’index dans le fichier maître. Pour cet exemple, nous allons repartir de la structure précédente, non conditionnelle.
1. L’ajout du package makeidx
Comme vous l’avez vu précédemment dans le chapitre consacré aux index, il faut ajouter le package makeidx dans le préambule commun. Vous devez aussi ajouter la commande \makeindex.
Voici le contenu du préambule commun du fichier preambule.tex :
% Les packages communs
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% Ajouter le package makeidx
\usepackage{makeidx}
%Création de l'index
\makeindex
Dans le document maître (maitre.tex), à la fin du document par exemple, ajoutez la commande d’affichage de l’index :
% Afficher l'index
\printindex
\end{document}
2. Les entrées dans les fichiers
Dans chaque fichier constitutif (partie01.tex, partie02.tex et partie03.tex), vous devez insérer des entrées d’index en suivant la méthode expliquée dans le chapitre dédié vu précédemment....
Afficher un glossaire multiple
Comme pour les index, nous pouvons insérer des entrées de glossaire dans les fichiers constitutifs et afficher le glossaire dans le document maître.
1. Le package glossaries
Comme précédemment vu dans le chapitre consacré aux glossaires, il faut ajouter le package et la commande de création, dans le préambule commun, dans le fichier preambule.tex :
% Les packages communs
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% Ajouter le package makeidx
\usepackage{makeidx}
%Création de l'index
\makeindex
% Ajout du package glossaries
\usepackage{glossaries}
% Création du glossaire
\makeglossaries
L’affichage se faisant dans le fichier maître, maitre.tex, vous pouvez insérer la commande \printglossaries à la fin du document, après l’index par exemple :
% Afficher l'index
\printindex
% Afficher le glossaire
\printglossaries
\end{document}
2. Les entrées du glossaire
Dans chaque fichier constitutif, vous devez ajouter des entrées pour le glossaire. Reportez-vous au chapitre consacré aux glossaires pour revoir la syntaxe.
Voici quelques exemples de définitions d’entrées de glossaire...
Lister les figures par leur légende
Dans pratiquement tous les documents structurés, thèses, mémoires et rapports, il y a des figures, des illustrations. Nous avons vu précédemment, dans le chapitre dédié à l’insertion des figures, l’utilisation du package graphicx pour insérer des figures flottantes, afin de leur adjoindre des légendes.
Nous devons donc ajouter le package graphicx dans le préambule commun, dans le fichier preambule.tex :
% Ajout du package graphicx pour les illustrations flottantes
\usepackage{graphicx}
Dans chaque fichier constitutif, ajoutez des figures et les légendes voulues, avec cette syntaxe :
\begin{figure}[h]
\centering
\includegraphics{illustrations/burano.jpg}
\caption{Les maisons colorées de Burano}
\end{figure}
Enfin, pour afficher la liste des figures, dans le fichier maître, maitre.tex, ajoutez cette commande là où vous le souhaitez :
% Afficher la liste des illustrations
\listoffigures
Affichez le rendu. Voici l’affichage obtenu :
![images/C16-008.png images/C16-008.png](https://www.eni-training.com/download/6500aa0d-aa07-4312-8be6-0872c5c833c0/images/C16-008.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Lister les tableaux par leur légende
Sur exactement le même principe, vous pouvez afficher la liste des tableaux flottants en utilisant leur légende. Reportez-vous au chapitre dédié aux tableaux pour insérer des tableaux et des légendes dans les fichiers constitutifs de votre document multifichiers.
Voici un exemple d’un tableau :
\begin{table}[h]
\centering
\begin{tabular}{| l | l | l |}
\hline
Lundi & Mardi & Mercredi \\
\hline
10 & 12 & 25 \\
123 & 147 & 159 \\
1478 & 1631 & 1863 \\
\hline
\end{tabular}
\caption{Donec id elit non mi porta}
\label{legTab:Donec}
\end{table}
Toujours dans le fichier maître, maitre.tex, insérez la commande \listoftables là où vous souhaitez afficher la liste des tableaux :
% Afficher la liste des tableaux
\listoftables
Effectuez...
Insérer une bibliographie
Dans une thèse ou un mémoire structuré en plusieurs parties avec plusieurs fichiers constitutifs, vous devez pouvoir gérer une bibliographie. Nous allons procéder de manière similaire par rapport à ce que nous avons vu dans le chapitre précédent dédié à la gestion des bibliographies.
Dans le dossier de votre projet, vous devez créer un fichier .bib contenant votre bibliographie. Pour cet exemple, vous pouvez reprendre le fichier mabiblio.bib créé précédemment.
Dans le fichier du préambule commun, preambule.tex, ajoutez le package cite :
% Ajout du package cite pour les citations bibliographiques
\usepackage{cite}
Dans chaque fichier constitutif (partie01.tex, partie02.tex et partie03.tex), insérez les citations vers les références bibliographiques :
...
Voir le livre de François MOCQ et Sarah LACAZE \cite{MOLASRP}...
...
Reportez-vous au livre de Damien BRUYNDONCKX \cite{BRUDCAM}...
...
Dans le fichier maître, maitre.tex, ajoutez les commandes pour styler la bibliographie et pour l’insérer :
% Utiliser et afficher la bibliographie
\bibliographystyle{plain}
\bibliography{mabiblio}
Enfin, effectuez les compilations nécessaires comme nous l’avons vu précédemment....
Appréhender la syntaxe de l’exemple
1. Les fichiers de l’exemple
L’exemple du document multifichiers précédent présente une architecture avec plusieurs fichiers. Voici le rôle de chaque fichier.
-
preambule.tex est le fichier qui contient les déclarations du préambule commun à tous les fichiers.
-
maitre.tex est le fichier maître. C’est lui qui définit toute la structure des fichiers composant le document final.
-
partie01.tex, partie02.tex et partie03.tex sont les fichiers constitutifs du document multifichiers.
-
illustrations est le dossier qui contient les fichiers des illustrations.
-
mabiblio.bib contient toutes les références bibliographiques.
-
plain.bst est le fichier de traduction française pour parfaire l’affichage de la bibliographie.
2. Le préambule
Voici la syntaxe complète du préambule :
% Les packages communs
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
% Ajouter le package makeidx
\usepackage{makeidx}
% Création de l'index
\makeindex
% Ajout du package glossaries
\usepackage{glossaries}
% Création du glossaire
\makeglossaries
% Définition des entrées du glossaire
\newglossaryentry{loip}{
name={Lorem Ipsum},
description={Ceci est la définition de lorem ipsum. Cras
mattis consectetur purus sit amet fermentum. Donec sed odio
dui. Curabitur blandit tempus porttitor.}
}
\newglossaryentry{doul}{
name={Donec ullamcorper},
description={Ceci est la définition de Donec ullamcorper.
Donec ullamcorper nulla non metus auctor fringilla. Lorem
ipsum dolor sit amet, consectetur adipiscing elit.}
}
\newglossaryentry{etpo}{
name={Etiam porta},
description={Ceci est la définition de Etiam porta. Cum
sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Donec sed odio dui.}
}
% Ajout du package graphicx pour les illustrations flottantes ...