Leçon 13

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}