S’organiser pour écrire un document long
Cette leçon montre comment diviser vos sources LaTeX en fichiers plus petits et plus simples à gérer, et comment cela peut rendre la construction d’un long document plus facile et plus rapide.
Si vous rédigez un long document, vous aurez peut-être envie de diviser le code-source en plusieurs fichiers, plus faciles à gérer. Par exemple, il est très courant d’avoir un fichier principal (ou « racine »), puis un fichier source par chapitre (pour un livre ou une thèse), ou par section significative (pour un long article).
Structurer son code source
LaTeX permet de répartir le contenu d’un document dans plusieurs fichiers comme on le souhaite. Il y a deux commandes importantes ici, \input
et \include
. On peut utiliser \input
pour faire appel à un fichier « comme s’il avait été tapé ici », donc il peut être utilisé pour n’importe quel contenu. La commande \include
, elle, ne fonctionne que pour les chapitres : elle démarre une nouvelle page et fait quelques ajustements internes. Mais elle a un gros avantage : elle permet de sélectionner seulement les chapitres à inclure, de sorte que vous pouvez travailler sur une partie de votre document plutôt que sur l’ensemble.
Un document un peu long pourrait donc ressembler à ceci :
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\title{A Sample Book}
\author{John Doe \and Joe Bloggs}
\IfFileExists{\jobname.run.xml}
{
\includeonly{
front,
% chap1,
chap2,
% append
}
}
{
% Do a full document initially to generate
% all the aux files
}
\begin{document}
\frontmatter
\include{front}
% =========================
\mainmatter
\include{chap1}
\include{chap2}
\appendix
\include{append}
% ========================
\backmatter
\printbibliography
\newpage
\input{backcover}
\end{document}
Voici les différentes caractéristiques de ce fichier (tous les fichiers utilisés se trouvent à la fin de cette page).
Utiliser \input
La commande \input
sert pour les parties d’un long fichier qui ne sont pas des chapitres séparés. Dans l’exemple, nous l’avons utilisée pour séparer les couvertures avant et arrière, ce qui permet de garder le fichier principal court et clair, et permet également ces couvertures soient réutilisées pour un autre document. Nous l’avons également employée pour les sections « hors chapitre » au début de notre livre, comme la préface. Encore une fois, cela nous aide à garder le fichier principal clair et compact.
Utiliser \include
et \includeonly
La commande \include
est faite pour les chapitres, nous l’avons donc utilisée pour chaque chapitre complet ; elle démarre toujours une nouvelle page. Nous avons sélectionné les chapitres qui seront réellement inclus à l’aide de la commande \includeonly
, qui, comme vous pouvez le voir, prend une liste de noms de fichiers séparés par des virgules. Lorsque vous utilisez \includeonly
, vous pouvez réduire le temps nécessaire à la compilation et produire un PDF « sélectif » pour la relecture. De plus, l’avantage principal de \includeonly
est que LaTeX utilisera toutes les informations des références croisées contenues dans les fichiers .aux
des autres fichiers inclus.
Ajouter une table des matières
La commande \tableofcontents
utilise les informations des commandes de sectionnement pour remplir une table des matières. Elle possède son propre fichier auxiliaire, avec l’extension .toc
(table of contents), de sorte que vous devrez sans doute lancer LaTeX deux fois pour avoir une table de matières complète et à jour. La table est générée automatiquement à partir des titres des sections et autres sous-sections. Il existe des commandes similaires pour les \listoffigures
et les \listoftables
, pour la table de figures et celle des tableaux, qui fonctionnent à partir des légendes des l’environnements de flottants, et utilisent des fichiers avec l’extension .lof
et .lot
respectivement.
Ajouter un préface et des annexes
Les commandes \frontmatter
, \mainmatter
, et \backmatter
modifient la mise en page. Par exemple, \frontmatter
change la numérotation des pages en chiffres romains pour la préface et la table des matières. La commande \appendix
change la numérotation en A
, B
, etc., pour les annexes ; donc par exemple dans le premier chapitre après \appendix
, le titre sera Appendix A.
Si vous utilisez \frontmatter
pour la préface, il vous faudra utiliser \mainmatter
pour commencer le corps de votre document à proprement parler.
Travaux pratiques
Modifiez la structure de base du document d’exemple, essayez d’ajouter et de supprimer des entrées pour \includeonly
et regardez quel effet ça produit.
Ajoutez quelques flottants et demandez à LaTeX des listes des figures et des tableaux. Si vous utilisez une instance de LaTeX installée localement, comptez combien d’exécutions de LaTeX sont nécessaires (les systèmes en ligne relancent LaTeX automatiquement, sans forcément le dire, de sorte que les exécutions successives requises ne se voient pas).
front.tex
\input{frontcover}
\maketitle
\input{dedication}
\input{copyright}
\tableofcontents
\input{pref}
pref.tex
\chapter{Preface}
The preface text. See \cite{doody}.
chap1.tex
\chapter{Introduction}
The first chapter text.
chap2.tex
\chapter{Something}
The second chapter text.
append.tex
\chapter*{Appendix}
The first appendix text.
frontcover.tex
\begin{center}
The front cover
\end{center}
dedication.tex
\begin{center}
\large
For \ldots
\end{center}
copyright.tex
\begin{center}
Copyright 2020 learnlatex.
\end{center}
backcover.tex
\begin{center}
The back cover
\end{center}