<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%%% Copyright (C) 2015-2024 Vincent Goulet
%%%
%%% Ce fichier fait partie du projet
%%% Â«RÃ©daction avec LaTeXÂ»
%%% https://gitlab.com/vigou3/formation-latex-ul
%%%
%%% Cette crÃ©ation est mise Ã&nbsp; disposition sous licence
%%% Attribution-Partage dans les mÃªmes conditions 4.0
%%% International de Creative Commons.
%%% https://creativecommons.org/licenses/by-sa/4.0/

\chapter{Organisation d'un document}
\label{chap:organisation}

La maitrise des notions du chapitre prÃ©cÃ©dent permet dÃ©jÃ&nbsp; de composer
un document simple avec {\LaTeX}. Toutefois, la puissance du systÃ¨me
de mise en page se manifeste vraiment lors de la prÃ©paration de
documents Ã©laborÃ©s comportant plusieurs divisions internes, une table
des matiÃ¨res, des renvois, etc. Le prÃ©sent chapitre aborde ces aspects
d'organisation d'un document.

\section{Choix d'une classe}
\label{sec:organisation:classe}

La premiÃ¨re chose Ã&nbsp; faire au moment de se lancer dans la rÃ©daction
d'un document avec {\LaTeX} consiste normalement Ã&nbsp; choisir une classe.
Vous avez dÃ©jÃ&nbsp; appris Ã&nbsp; la \autoref{sec:bases:classes} comment spÃ©cifier
la classe Ã&nbsp; utiliser. Cette section prÃ©sente les diffÃ©rences entre les
classes ainsi que les principales options disponibles.

Les classes standards sont \class{article}, \class{report},
\class{book}, \class{letter} et \class{slides}.

\begin{description}
\item[\normalfont\class{article}] Articles scientifiques et autres
  documents de longueur modÃ©rÃ©e ne nÃ©cessitant pas une mise en page
  Ã©laborÃ©e. Le folio (numÃ©ro de page) est placÃ© au centre du pied de
  page. Le titre apparait dans le haut de la premiÃ¨re page,
  immÃ©diatement suivi du texte.
\item[\normalfont\class{report}] Rapports et autres documents plus
  longs pouvant Ãªtre divisÃ©s en chapitres. Le titre apparait sur une
  page de titre. La mise en page est autrement identique Ã&nbsp; celle de la
  classe \class{article}.
\item[\normalfont\class{book}] Longs documents divisÃ©s en chapitres.
  La mise en page est conÃ§ue pour une impression recto verso. L'entÃªte
  de la page (autre que la premiÃ¨re du chapitre) contient le folio sur
  le bord extÃ©rieur et le titre de chapitre (page paire) ou le titre
  de section (page impaire). Le titre apparait sur une page de titre.
\item[\normalfont\class{letter}] Lettres et correspondance. Bien que
  puissante, cette classe est plus rarement utilisÃ©e. Je n'en traite
  pas davantage dans ce document.
\item[\normalfont\class{slides}] Diapositives simples pour des
  prÃ©sentations. La \autoref{sec:trucs:diapositives} traite plus en
  dÃ©tail de la production de diapositives.
\end{description}

Le \autoref{tab:organisation:classes} fournit un sommaire des
principales caractÃ©ristiques des classes \class{article},
\class{report} et \class{book}. De plus, les figures
\ref{fig:organisation:classes:article}--\ref{fig:organisation:classes:book}
fournissent des exemples de mise en page pour ces trois classes.

\begin{table}
  \caption{CaractÃ©ristiques des principales classes standards}
  \label{tab:organisation:classes}
  \begin{tabularx}{1.0\linewidth}{XXXXX}
    \toprule
    Classe &amp; Divisions &amp; Disposition &amp; EntÃªte &amp; Pied de page \\
    \midrule
    \class{article} &amp; parties,\newline sections, \dots
                       &amp; recto &amp; vide &amp; folio centrÃ© \\
    \addlinespace[6pt]
    \class{report} &amp; parties,\newline chapitres,\newline sections, \dots
                       &amp; recto &amp; vide &amp; folio centrÃ© \\
    \addlinespace[6pt]
    \class{book} &amp; parties,\newline chapitres,\newline sections, \dots
                       &amp; recto verso &amp; folio, titres &amp; vide \\
    \bottomrule
  \end{tabularx}
\end{table}

\begin{figure}
  \begin{minipage}{0.49\linewidth}
    \fbox{\includegraphics[page=1,width=0.95\linewidth]{auxdoc/exemple-classe-article}}
  \end{minipage}
  \hfill
  \begin{minipage}{0.49\linewidth}
    \fbox{\includegraphics[page=2,width=0.95\linewidth]{auxdoc/exemple-classe-article}}
  \end{minipage}
  \caption{Exemple de mise en page avec la classe \class{article}}
  \label{fig:organisation:classes:article}
\end{figure}

\begin{figure}
  \begin{minipage}{0.49\linewidth}
    \fbox{\includegraphics[page=1,width=0.95\linewidth]{auxdoc/exemple-classe-report}}
  \end{minipage}
  \hfill
  \begin{minipage}{0.49\linewidth}
    \fbox{\includegraphics[page=2,width=0.95\linewidth]{auxdoc/exemple-classe-report}}
  \end{minipage}
  \caption{Exemple de mise en page avec la classe \class{report}}
  \label{fig:organisation:classes:report}
\end{figure}

\begin{figure}
  \begin{minipage}{0.49\linewidth}
    \fbox{\includegraphics[page=1,width=0.95\linewidth]{auxdoc/exemple-classe-book}}
  \end{minipage}
  \hfill
  \begin{minipage}{0.49\linewidth}
    \fbox{\includegraphics[page=2,width=0.95\linewidth]{auxdoc/exemple-classe-book}}
  \end{minipage}
  \caption{Exemple de mise en page avec la classe \class{book}}
  \label{fig:organisation:classes:book}
\end{figure}

Cet ouvrage fait une large place Ã&nbsp; la classe qui est utilisÃ©e pour le
composer: la classe \class{memoir} \citep{memoir}. Il s'agit d'une
extension de la classe standard \class{book} qui facilite Ã&nbsp; plusieurs
Ã©gards la prÃ©paration de documents d'allure professionnelle dans
{\LaTeX}. Je recommande d'utiliser cette classe en lieu et place de la
classe \class{book}, ou mÃªme de la classe \class{article} (voir
ci-dessous).

La classe \class{memoir} incorpore d'office plus de 30 des paquetages
les plus populaires\footnote{%
  Consultez la section~18.24 de la documentation de \class{memoir}
  pour la liste ou encore le journal de la compilation (\emph{log})
  d'un document utilisant la classe.}. %
La classe fait partie des distributions {\LaTeX} modernes; elle
devrait Ãªtre installÃ©e et disponible sur tout systÃ¨me. Elle est livrÃ©e
avec une %
\doc{memoir}{https://texdoc.net/pkg/memoir} %
exhaustive: le manuel d'instructions fait prÃ¨s de 600~pages! Il peut
Ãªtre utile de s'y rÃ©fÃ©rer de temps Ã&nbsp; autre pour rÃ©aliser une mise en
page particuliÃ¨re.

Rappellons que l'on charge une classe de document au dÃ©but du
prÃ©ambule avec la commande
\begin{lstlisting}
\documentclass`\oarg{options}\marg{classe}'
\end{lstlisting}
Les \meta{options} disponibles varient d'une classe Ã&nbsp; l'autre. Les
plus courantes sont les suivantes.
\begin{description}
\item[\mdseries \code{10pt}, \code{11pt}, \code{12pt}] Taille de la
  police du document en points. La valeur par dÃ©faut est \code{10pt}.
  Je recommande d'utiliser plutÃ´t \code{11pt}.
\item[\mdseries \code{oneside}, \code{twoside}] Disposition du
  document en recto seulement ou en recto verso. Ces options ne sont
  utiles que pour modifier la disposition par dÃ©faut de la classe.
\item[\mdseries \code{openright}, \code{openany}] Position de la
  premiÃ¨re page des chapitres toujours Ã&nbsp; droite (page impaire) ou
  immÃ©diatement aprÃ¨s la derniÃ¨re page du chapitre prÃ©cÃ©dent. Avec la
  valeur par dÃ©faut, \code{openany}, {\LaTeX} insÃ©rera une page
  blanche dans le document si un chapitre se termine sur une page
  impaire.
\item[\mdseries \code{article} (classe \class{memoir} seulement)] Mise
  en page comme celle d'un article. Avec cette option, \class{memoir}
  peut remplacer la classe \class{article}, ce qui permet d'utiliser
  une seule et mÃªme classe pour les deux principaux types de document
  (article et livre).
\end{description}

D'autres options permettent de contrÃ´ler la position du titre, la
disposition en une ou deux colonnes, ou encore la position des
Ã©quations hors paragraphe. \citet{Thurnherr:class-options} offre une
prÃ©sentation succincte des options standards. Le chapitre~1 de la
documentation de \class{memoir} traite en plus des ajouts propres Ã&nbsp;
cette classe.



\section{Parties d'un document}

Tout document de plus de quelques pages est normalement divisÃ© en
chapitres, sections, sous-sections, etc. Il peut comporter une ou
plusieurs annexes et dÃ©buter par un rÃ©sumÃ©, notamment s'il s'agit d'un
article scientifique. Le document est habituellement coiffÃ© d'un
titre, mais celui-ci est parfois affichÃ© sur une page de titre
sÃ©parÃ©e.

Toutes ces considÃ©rations relevant essentiellement de la mise en page,
{\LaTeX} s'en charge pour vous. Vous n'avez qu'Ã&nbsp; spÃ©cifier la strucure
logique du document Ã&nbsp; l'aide des commandes de la prÃ©sente section.

\subsection{Titre et page de titre}
\label{sec:organisation:parties:titre}

{\LaTeX} rend trÃ¨s simple la composition du titre d'un article
scientifique ou d'une page de titre simple (classes \class{report},
\class{book}, \class{memoir}).

En premier lieu, vous devez spÃ©cifier, habituellement dans le
prÃ©ambule, le titre du document, le nom du ou des auteurs et la date
de publication avec les commandes suivantes:
\begin{lstlisting}
\title`\marg{Titre du document}'
\author`\marg{PrÃ©nom Nom {\pixbsbs} Affiliation {\pixbsbs} Adresse}'
\date`\marg{Date ou autre texte}'
\end{lstlisting}
Un long titre sera scindÃ© automatiquement. Vous pouvez aussi scinder
le titre manuellement en insÃ©rant la commande Â«\pixbsbsÂ» aux points de
coupure. %
Si l'ouvrage comporte deux auteurs ou plus, insÃ©rez les informations
dans la commande \cmd{\author} les unes aprÃ¨s les autres en sÃ©parant
chaque entrÃ©e par la commande \cmdprint{\and}. %
La commande \cmd{\date} insÃ¨re le texte donnÃ© en argument (qu'il
s'agisse d'une date ou non) Ã&nbsp; l'endroit prÃ©vu Ã&nbsp; cet effet par
{\LaTeX}. Si l'on omet la commande, {\LaTeX} insÃ¨re la date du jour au
moment de la compilation. Pour ne pas afficher la date, laissez
simplement l'argument vide:
\begin{lstlisting}
\date{}
\end{lstlisting}

Dans les articles scientifiques, le nom d'un auteur est frÃ©quemment
suivi d'un appel de note renvoyant Ã&nbsp; des remerciements Ã&nbsp; un organisme
subventionnaire ou Ã&nbsp; quelque autre information sur l'auteur. On insÃ¨re
une telle note et son appel Ã&nbsp; l'endroit appropriÃ© dans les commandes
\cmd{\title} ou \cmd{\author} avec la commande \cmd{\thanks}:
\begin{lstlisting}
\thanks`\marg{Texte}'
\end{lstlisting}

Les commandes ci-dessus ne permettent que de saisir les informations
relatives au titre. Pour produire le titre il faut, en second lieu,
insÃ©rÃ©r dans le corps du document la commande \cmd{\maketitle}. La
commande insÃ¨re le titre Ã&nbsp; l'endroit oÃ¹ elle apparait dans le code
source.

\begin{exemple}
  \label{ex:organisation:titre}
  Le code ci-dessous permet de crÃ©er un titre d'article standard. La
  page composÃ©e avec {\XeLaTeX} (puisque nous utilisons le paquetage
  \pkg{fontspec}) se trouve Ã&nbsp; la \autoref{fig:organisation:titre}.
  \begin{demo}
    \lstinputlisting[lastline=19]{auxdoc/exemple-titre.tex}
  \end{demo}

  La date de publication qui apparait dans la page composÃ©e est celle
  de la compilation puisque la commande \cmdprint{\date} n'apparait
  pas dans le code source.

  Remarquez Ã©galement que j'ai placÃ© un symbole de commentaire Â«\%Â»
  immÃ©diatement aprÃ¨s le nom de l'auteur dans le code source. Tel
  qu'expliquÃ© Ã&nbsp; la \autoref{sec:bases:caracteres:espaces}, c'est pour
  Ã©viter que {\LaTeX} ne transforme le retour Ã&nbsp; la ligne avant la
  commande \cmd{\thanks} en une espace entre le nom et l'appel de
  note.

  (Le paquetage \pkg{lorem} utilisÃ© dans cet exemple permet
  d'insÃ©rer du faux texte \link{https://fr.lipsum.com}{Lorem Ipsum}
  dans un document \LaTeX.)
  \begin{figure}
    \centering
    \fbox{\includegraphics[width=0.7\linewidth]{auxdoc/exemple-titre}}
    \caption{Illustration d'un titre d'article standard.}
    \label{fig:organisation:titre}
  \end{figure}
  \qed
\end{exemple}

J'ai mentionnÃ© plus haut que {\LaTeX} peut aussi produire
automatiquement la page de titre d'un rapport ou d'un livre. Il est
toutefois peu probable qu'elle convienne, surtout dans le cas d'un
livre. Des options plus flexibles existent: les environnements
\Ie{titlepage} (classes standards) et \Ie{titlingpage} (classe
\class{memoir}). Ces environnements permettent de dÃ©finir librement
une page de titre:
\begin{demo}
  \begin{minipage}{0.48\linewidth}
\begin{lstlisting}
\begin{titlepage}
  `\meta{Texte de la page de titre}'
\end{titlepage}
\end{lstlisting}
  \end{minipage}
  \hfill
  \begin{minipage}{0.48\linewidth}
\begin{lstlisting}
\begin{titlingpage}
  `\meta{Texte de la page de titre}'
\end{titlingpage}
\end{lstlisting}
  \end{minipage}
\end{demo}
Vous contrÃ´lez alors entiÃ¨rement la disposition et la composition des
Ã©lÃ©ments de la page de titre. Consultez le chapitre~4 de la %
\doc{memoir}{https://texdoc.net/pkg/memoir} %
de \class{memoir} pour une liste de bonnes pratiques en matiÃ¨re de
composition de page de titre et pour des exemples dÃ©taillÃ©s.

\subsection{RÃ©sumÃ©}
\label{sec:organisation:parties:resume}

Les articles scientifiques et les rapports comportent souvent un
rÃ©sumÃ©, habituellement composÃ© en retrait des marges gauche et droite
et dans une police plus petite. Le rÃ©sumÃ© est produit avec
l'environnement \Ie{abstract} des classes \class{article},
\class{report} ou \class{memoir}:
\begin{lstlisting}
\begin{abstract}
  `\meta{Texte du rÃ©sumÃ©}'
\end{abstract}
\end{lstlisting}

\subsection{Sections}
\label{sec:organisation:parties:sections}

Vous pouvez diviser un document en sections
qui seront automatiquement numÃ©rotÃ©es par {\LaTeX} de maniÃ¨re
sÃ©quentielle avec les commandes suivantes:
\begin{lstlisting}
\part`\oarg{titre court}\marg{titre}'
\chapter`\oarg{titre court}\marg{titre}'
\section`\oarg{titre court}\marg{titre}'
\subsection`\oarg{titre court}\marg{titre}'
\subsubsection`\oarg{titre court}\marg{titre}'
\paragraph`\oarg{titre court}\marg{titre}'
\subparagraph`\oarg{titre court}\marg{titre}'
\end{lstlisting}
Les commandes forment, dans l'ordre ci-dessus, une hiÃ©rarchie des
titres d'un document\footnote{%
  Je n'ai jamais utilisÃ© les niveaux de division \cmdprint{\paragraph}
  et \cmdprint{\subparagraph}.}. %
Tel que mentionnÃ© prÃ©cÃ©demment, la commande \cmd{\chapter} n'est pas
disponible avec la classe \class{article}.

Chaque commande prend en argument obligatoire le \meta{titre} de la
section. Si celui-ci est trÃ¨s long, il peut Ãªtre utile de fournir en
argument optionnel un \meta{titre court}; c'est ce dernier qui
apparaitra dans la table des matiÃ¨res et dans les entÃªtes de page, le cas
Ã©chÃ©ant.

Toutes les commandes existent en version Ã©toilÃ©e (nom suivi de
Â«\verb=*=Â») qui supprime la numÃ©rotation ainsi que l'insertion
Ã©ventuelle dans la table des matiÃ¨res (plus de dÃ©tails Ã&nbsp; la
\autoref{sec:organisation:tdm}).

\tipbox{Ã‰vitez d'utiliser des sous-sous-sections numÃ©rotÃ©es (commande
  \cmdprint{\subsubsection}) dans un livre. Cela rÃ©sulte en une
  numÃ©rotation Ã&nbsp; quatre niveaux qui s'avÃ¨re difficile Ã&nbsp; suivre pour le
  lecteur.}

\subsection{Annexes}
\label{sec:organisation:parties:annexes}

Les annexes sont des sections ou des chapitres avec une numÃ©rotation
alphanumÃ©rique (A, A.1, ...) plutÃ´t qu'entiÃ¨rement numÃ©rique. On
informe {\LaTeX} que les sections suivantes doivent Ãªtre traitÃ©es
comme des annexes en insÃ©rant dans le document la commande
%% [hack ci-dessous pour cacher la commande \appendix Ã&nbsp; reftex]
\begin{lstlisting}
`\verb=\appendix='
\end{lstlisting}
En plus de modifier le style de numÃ©rotation, la commande a pour effet
de changer le mot clÃ© Â«ChapitreÂ» pour Â«AnnexeÂ» dans les titres de
chapitre.

\subsection{Structure logique d'un livre}
\label{sec:oganisation:parties:livre}

Un livre se compose normalement de trois grandes parties logiques: les
pages liminaires (avant-propos, table des matiÃ¨res, tout ce qui
prÃ©cÃ¨de le chapitre premier); le corps du livre (chapitres et
annexes); les parties en fin d'ouvrage (bibliographie, index). Les
commandes
\begin{lstlisting}
\frontmatter
\mainmatter
\backmatter
\end{lstlisting}
qui sont disponibles avec les classes \class{book} et \class{memoir},
permettent d'identifier ces trois parties. Le
\autoref{tab:organisation:livre} rÃ©sume l'effet de chaque commande.

\begin{table}
  \centering
  \caption{Commandes d'identification de la structure logique d'un
    livre et leurs effets}
  \label{tab:organisation:livre}
  \begin{tabular}{ll}
    \toprule
    Commande &amp; Effets \\
    \midrule
    \cmd{\frontmatter} &amp; numÃ©rotation des
                              pages en chiffres romains (i, ii, ...) \\
             &amp; chapitres non numÃ©rotÃ©s \\
    \addlinespace[0.5\normalbaselineskip]
    \cmd{\mainmatter} &amp; numÃ©rotation des pages
                             Ã&nbsp; partir de 1 en chiffres arabes \\
             &amp; chapitres numÃ©rotÃ©s \\
    \addlinespace[0.5\normalbaselineskip]
    \cmd{\backmatter} &amp; numÃ©rotation des pages
                             se poursuit \\
             &amp; chapitres non numÃ©rotÃ©s \\
    \bottomrule
  \end{tabular}
\end{table}


\section{Table des matiÃ¨res}
\label{sec:organisation:tdm}

Dans la mesure oÃ¹ vous avez bien identifiÃ© les diffÃ©rentes divisions
d'un ouvrage avec les commandes mentionnÃ©es Ã&nbsp; la section prÃ©cÃ©dente,
la production de la table des matiÃ¨res est on ne peut plus simple avec
{\LaTeX}: il suffit d'insÃ©rer la commande
\begin{lstlisting}
\tableofcontents
\end{lstlisting}
dans le corps du document Ã&nbsp; l'endroit oÃ¹ la table des matiÃ¨res doit
apparaitre. C'est tout!

Lorsque le paquetage \pkg{hyperref} \citep{hyperref} est chargÃ©, la
commande \cmdprint{\tableofcontents} produit Ã©galement la table des
matiÃ¨res du fichier PDF. Cela permet de naviguer dans le document
directement depuis la visionneuse PDF. La
\autoref{fig:organisation:tdm-dans-pdf} illustre cette fonctionnalitÃ©
avec la visionneuse AperÃ§u de macOS.

\begin{figure}
  \resizebox{\textwidth}{!}{\includegraphics{images/tdm-dans-pdf}}
  \caption[Consultation d'un document PDF avec la visionneuse AperÃ§u
  de macOS]{%
    Consultation d'un document PDF avec la visionneuse AperÃ§u
    de macOS. La barre latÃ©rale de gauche affiche la table des
    matiÃ¨res du fichier PDF, ce qui permet de naviguer dans le
    document sans devoir revenir Ã&nbsp; celle du document.}
  \label{fig:organisation:tdm-dans-pdf}
\end{figure}

\importantbox{La production initiale de la table des matiÃ¨res et la
  prise en compte de toute modification requiert jusqu'Ã&nbsp; trois
  compilations consÃ©cutives du document.}

Par dÃ©faut, une section non numÃ©rotÃ©e ne figure pas dans la table des
matiÃ¨res. Si l'y insÃ©rer nÃ©anmoins, vous devez utiliser la commande
suivante:
\begin{lstlisting}
\addtocontentsline{toc}`\marg{niveau}\marg{titre}'
\end{lstlisting}
oÃ¹ \meta{niveau} est le nom de la commande de division sans le
caractÃ¨re {\bs} (\code{chapter}, \code{section}, etc.) et \meta{titre}
est le texte qui doit figurer dans la table des matiÃ¨res.

Outre une table des matiÃ¨res, les ouvrages scientifiques comportent
parfois une liste des figures et une liste des tableaux. {\LaTeX} les
produit automatiquement avec les commandes
\begin{lstlisting}
\listoffigures
\listoftables
\end{lstlisting}

Dans la classe \class{memoir}, les commandes ci-dessus insÃ¨rent leur
propre titre de section dans la table des matiÃ¨re (autrement dit, la
table des matiÃ¨res apparait dans la table des matiÃ¨res). Les versions
\begin{lstlisting}
\tableofcontents*
\listoffigures*
\listoftables*
\end{lstlisting}
adoptent le comportement des classes standards, soit d'omettre ces
parties dans la table des matiÃ¨res.


\section{Renvois automatiques}
\label{sec:organisation:renvois}

Un document d'une certaine ampleur contiendra souvent des renvois Ã&nbsp;
une section, un tableau, une Ã©quation, voire une page spÃ©cifique.
Ã‰videmment, le numÃ©ro de la section, du tableau, de l'Ã©quation ou de
la page est susceptible de changer au fil de la rÃ©daction du document.
C'est pourquoi vous ne devriez \emph{jamais} insÃ©rer les revois
manuellement dans le texte. C'est une tÃ¢che qu'il vaut mieux confier Ã&nbsp;
l'ordinateur.

\subsection{Ã‰tiquettes et renvois}
\label{sec:organisation:renvois:etiquettes}

Les renvois automatiques dans {\LaTeX} reposent sur un systÃ¨me
d'Ã©tiquettes attribuÃ©es Ã&nbsp; des Ã©lÃ©ments de contenu et de rÃ©fÃ©rencement
par ces Ã©tiquettes. Ainsi, pour effectuer un renvoi vers un Ã©lÃ©ment de
contenu, il faut d'abord nommer celui-ci en insÃ©rant la commande
\begin{lstlisting}
\label`\marg{nom}'
\end{lstlisting}
Ã&nbsp; proximitÃ© de l'Ã©lÃ©ment. Le choix du \meta{nom} est tout Ã&nbsp; fait libre. Il
peut Ãªtre constituÃ© de toute combinaison de lettres, de chiffres et de
symboles autres que les symboles rÃ©servÃ©s mentionnÃ©s Ã&nbsp; la
\autoref{sec:bases:caracteres:reserves}.

Ensuite, il devient possible d'insÃ©rer un renvoi Ã&nbsp; cet Ã©lÃ©ment de contenu
n'importe oÃ¹ dans le document avec la commande
\begin{lstlisting}
\ref`\marg{nom}'
\end{lstlisting}
Pour renvoyer Ã&nbsp; la page oÃ¹ se trouve l'Ã©lÃ©ment, utilisez la commande
\begin{lstlisting}
\pageref`\marg{nom}'
\end{lstlisting}

\begin{exemple}
  \label{ex:organisation:renvoi}
  Le code ci-dessous permet d'insÃ©rer un renvoi automatique Ã&nbsp; un
  numÃ©ro de section dans un document. Le rÃ©sultat se trouve Ã&nbsp; la
  \autoref{fig:organisation:renvoi}.
\begin{lstlisting}[emph={\label,\ref}]
\section{DÃ©finitions}
\label{sec:definitions}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis in auctor dui. Vestibulum ut, placerat ac, adipiscing
vitae, felis.

\section{Historique}

Tel que vu Ã&nbsp; la section \ref{sec:definitions}, on a...
\end{lstlisting}

  \begin{figure}
    \fbox{\includegraphics[viewport=124 550 484 664,clip=true,width=0.98\linewidth]{auxdoc/exemple-renvoi}}
    \caption{Texte produit par le code de
      l'\autoref{ex:organisation:renvoi} illustrant un renvoi
      automatique standard}
    \label{fig:organisation:renvoi}
  \end{figure}
  \qed
\end{exemple}

Un long document contiendra vraisemblablement un grand nombre
d'Ã©tiquettes et de renvois. Afin de vous y retrouver et pour rÃ©duire
les risques de doublons, adoptez une maniÃ¨re systÃ©matique et
mnÃ©motechnique de nommer les Ã©lÃ©ments. Par exemple, pour le prÃ©sent
document, j'ai utilisÃ© un systÃ¨me d'Ã©tiquettes de la forme
suivante:
\begin{itemize}
\item \cmdprint{chap:\meta{chapitre}} pour les chapitres;
\item \cmdprint{sec:\meta{chapitre}:\meta{section}} pour les sections;
\item \cmdprint{tab:\meta{chapitre}:\meta{tableau}} pour les tableaux;
\item \cmdprint{eq:\meta{chapitre}:\meta{equation}} pour les
  Ã©quations.
\end{itemize}

\subsection{Production des renvois}
\label{sec:organisation:renvois:production}

La production des renvois requiert deux Ã&nbsp; trois compilations.
Tant que {\LaTeX} n'a pas complÃ©tÃ© les renvois, le journal de
compilation contient, vers la toute fin, le message
\begin{verbatim}
LaTeX Warning: Label(s) may have changed. Rerun to get
cross-references right.
\end{verbatim}

Prenez Ã©galement garde aux alertes suivantes dans le journal de
compilation. Elles identifient des correctifs Ã&nbsp; apporter dans le
systÃ¨me d'Ã©tiquettes et de renvois. D'abord, le message
\begin{verbatim}
LaTeX Warning: There were undefined references.
\end{verbatim}
indique qu'une ou plusieurs commandes \cmd{\ref} renvoient Ã&nbsp; un
\meta{nom} qui n'est pas dÃ©fini avec \cmd{\label}. Le document
contiendra alors le caractÃ¨re \textbf{?} en lieu et place du renvoi. Ã€
l'inverse, le message
\begin{verbatim}
LaTeX Warning: There were multiply-defined labels.
\end{verbatim}
indique que plusieurs commandes \cmdprint{\label} utilisent le mÃªme
\meta{nom}. Cela est susceptible de causer des renvois vers le mauvais
Ã©lÃ©ment de contenu.

\subsection{Renvois avec hyperliens}
\label{sec:organisation:renvois:hyperliens}

Lorsque chargÃ© dans le document, le paquetage \pkg{hyperref} insÃ¨re
des hyperliens vers les renvois dans les fichiers PDF. C'est trÃ¨s
pratique en consultation Ã©lectronique d'un document.

\begin{exemple}
  \label{ex:organisation:renvoi-hyperref}
  Avec l'ajout de
\begin{lstlisting}
\usepackage{hyperref}
\end{lstlisting}
  dans le prÃ©ambule, le code de l'\autoref{ex:organisation:renvoi}
  produit maintenant le type de renvoi illustrÃ© Ã&nbsp; la
  \autoref{fig:organisation:renvoi-hyperref}. Le texte en couleur
  contrastante est un hyperlien vers le titre de la section.
  \begin{figure}
    \centering
    \fbox{\includegraphics[viewport=124 550 484 664,clip=true,width=0.98\linewidth]{auxdoc/exemple-renvoi-hyperref}}
    \caption{Texte produit par le code de
      l'\autoref{ex:organisation:renvoi} aprÃ¨s l'ajout du paquetage
      \pkg{hyperref}}
    \label{fig:organisation:renvoi-hyperref}
  \end{figure}
  \qed
\end{exemple}

L'inconvÃ©nient avec la procÃ©dure illustrÃ©e dans l'exemple prÃ©cÃ©dent,
c'est que seul le numÃ©ro de la rÃ©fÃ©rence est transformÃ© en hyperlien.
La zone disponible pour cliquer s'en trouve plutÃ´t restreinte. Une
fonctionnalitÃ© du paquetage \pkg{hyperref} --- Ã&nbsp; laquelle j'ai eu
recours dans le prÃ©sent document --- permet d'agrandir cette zone. La
commande
\begin{lstlisting}
\autoref`\marg{nom}'
\end{lstlisting}
permet de nommer automatiquement le type de renvoi (section, Ã©quation,
tableau, etc.) et de transformer en hyperlien Ã&nbsp; la fois ce texte et le
numÃ©ro du renvoi.

\begin{exemple}
  \label{ex:organisation:renvoi-autoref}
  Reprenons le texte de l'\autoref{ex:organisation:renvoi}, mais en
  utilisant cette fois la commande \cmd{\autoref} pour insÃ©rer un
  renvoi dans le texte. Remarquez que le mot Â«sectionÂ» a Ã©tÃ© supprimÃ©
  du code source pour laisser Ã&nbsp; la commande le soin d'insÃ©rer
  l'Ã©tiquette appropriÃ©e dans le document.
\begin{lstlisting}[emph={\label,\autoref}]
\section{DÃ©finitions}
\label{sec:definitions}

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis in auctor dui. Vestibulum ut, placerat ac, adipiscing
vitae, felis.

\section{Historique}

Tel que vu Ã&nbsp; la \autoref{sec:definitions}, on a...
\end{lstlisting}
  \begin{figure}
    \centering
    \fbox{\includegraphics[viewport=124 550 484 664,clip=true,width=0.98\linewidth]{auxdoc/exemple-renvoi-autoref}}
    \caption{Texte produit par le code de
      l'\autoref{ex:organisation:renvoi-autoref}}
    \label{fig:organisation:renvoi-autoref}
  \end{figure}
  La \autoref{fig:organisation:renvoi-autoref} montre que le mot
  Â«sectionÂ» ainsi que son numÃ©ro forment maintenant l'hyperlien.
  \qed
\end{exemple}

La \autoref{sec:trucs:hyperliens} fournit des dÃ©tails
additionnels sur la gestion des hyperliens dans un document PDF.


\section{Document contenu dans plusieurs fichiers}
\label{sec:organisation:include}

Lorsque le prÃ©ambule et le corps du texte demeurent relativement
courts (peu de commandes spÃ©ciales et moins d'une vingtaine de pages
de texte), il demeure assez simple et convivial d'en faire l'Ã©dition
dans un seul fichier Ã&nbsp; l'aide de votre Ã©diteur de texte favori.

Cependant, si le prÃ©ambule devient long et complexe ou, surtout,
lorsque l'ampleur du document augmente jusqu'Ã&nbsp; compter un grand nombre
de pages sur plusieurs chapitres, il convient de rÃ©partir les diverses
parties du document dans des fichiers sÃ©parÃ©s.

La segmentation en plusieurs fichiers rend l'Ã©dition du texte plus
simple et plus efficace. De plus, durant la phase de rÃ©daction, elle
peut significativement accÃ©lÃ©rer la compilation des documents trÃ¨s
longs ou comptant plusieurs images.

\subsection{Insertion du contenu d'un autre fichier}
\label{sec:organisation:include:input}

La commande \cmd{\input} permet d'insÃ©rer le contenu d'un autre
fichier dans un document {\LaTeX}. La syntaxe de la commande est
\begin{lstlisting}
\input`\marg{fichier}'
\end{lstlisting}
oÃ¹ le nom du fichier Ã&nbsp; insÃ©rer est \meta{fichier}\code{.tex}.
L'extension \code{.tex} est donc implicite. Le contenu du fichier est
insÃ©rÃ© tel quel dans le document, comme s'il avait Ã©tÃ© saisi dans le
fichier qui contient l'appel Ã&nbsp; \cmd{\input}.

Le procÃ©dÃ© est surtout utile pour sauvegarder sÃ©parÃ©ment des bouts de
code qui gÃªnent l'Ã©dition du texte (figures, longs tableaux) ou qui
sont communs entre plusieurs documents (licence d'utilisation, auteurs
et affiliations).

La commande peut aussi Ãªtre utilisÃ©e dans le prÃ©ambule pour charger
une partie ou l'ensemble de celui-ci. Cela permet de composer un mÃªme
prÃ©ambule pour plusieurs documents. Il suffit alors de faire
d'Ã©ventuelles modifications Ã&nbsp; un seul endroit pour les voir prendre
effet dans tous les documents.

\subsection{Insertion de parties d'un document}
\label{sec:organisation:include:include}

Je vous recommande de segmenter tout document d'une certaine ampleur
dans des fichiers \verb=.tex= distincts pour chaque partie ---
habituellement un fichier par chapitre. Vous composerez ensuite le
document complet Ã&nbsp; l'aide d'un fichier maitre qui contient le
prÃ©ambule {\LaTeX} et un ensemble d'appels Ã&nbsp; la commande
\cmdprint{\include} pour rÃ©unir les parties dans un tout.

La syntaxe de \cmd{\include} est
\begin{lstlisting}
\include`\marg{fichier}'
\end{lstlisting}
oÃ¹ le nom du fichier Ã&nbsp; insÃ©rer est \meta{fichier}\code{.tex}. Ici
aussi l'extension \code{.tex} est implicite.

Comme \cmd{\input}, la commande \cmd{\include} insÃ¨re le contenu d'un
autre fichier dans un document. Toutefois, l'insertion d'un fichier
avec \cmd{\include} dÃ©bute toujours une nouvelle page. Cette commande
sert donc principalement pour insÃ©rer des chapitres entiers plutÃ´t que
seulement des portions de texte. De plus, un fichier insÃ©rÃ© avec
\cmd{\include} peut contenir des appels Ã&nbsp; \cmd{\input}, mais pas Ã&nbsp;
\cmd{\include}.

\begin{exemple}
  La \autoref{fig:organisation:maitre} prÃ©sente un exemple type de
  fichier maitre qui fait appel Ã&nbsp; la commande \cmd{\include} pour
  composer un document chapitre par chapitre. %
  \qed

  \begin{figure}
    \centering
    \begin{minipage}{0.75\linewidth}
\begin{lstlisting}[numbers=left, numberstyle=\tiny]
\documentclass{memoir}
  [...]

\begin{document}

\frontmatter

\include{introduction}
\tableofcontents*

\mainmatter
\include{historique}
\include{rappels}
\include{modele}
[...]

\end{document}
\end{lstlisting}
    \end{minipage}
    \caption[Structure type d'un fichier maitre]{%
      Structure type d'un fichier maitre. Les fichiers
      \code{historique.tex}, \code{rappels.tex} et \code{modele.tex}
      contiennent le texte des trois premiers chapitres.}
    \label{fig:organisation:maitre}
  \end{figure}
\end{exemple}

\subsection{Compilation partielle}
\label{sec:organisation:include:compilation}

Le principal avantage de \cmd{\include} par rapport Ã&nbsp; \cmd{\input}
rÃ©side dans le fait que {\LaTeX} peut prÃ©server entre les compilations
les informations telles que les numÃ©ros de pages, de sections ou
d'Ã©quations, ainsi que les renvois et les rÃ©fÃ©rences bibliographiques.
Cela permet, par exemple, de compiler le texte d'un seul chapitre ---
plutÃ´t que le document entier --- et de nÃ©anmoins obtenir une image
reprÃ©sentative du chapitre. ProcÃ©der ainsi accÃ©lÃ¨re significativement
la compilation des documents longs ou complexes.

La commande \cmd{\includeonly}, qui est employÃ©e exclusivement dans le
prÃ©ambule, sert Ã&nbsp; spÃ©cifier le ou les fichiers Ã&nbsp; compiler tout en
prÃ©servant la numÃ©rotation et les rÃ©fÃ©rences. Sa syntaxe est
\begin{lstlisting}
\includeonly`\marg{liste\_fichiers}'
\end{lstlisting}
oÃ¹ \meta{liste\_fichiers} contient les noms des fichiers Ã&nbsp;
inclure dans la compilation, sÃ©parÃ©s par des virgules et sans
l'extension \code{.tex}.

Lors de l'utilisation de la commande \cmd{\includeonly}, toute la
numÃ©rotation dans les fichiers \meta{liste\_fichiers} suivra celle
Ã©tablie lors de la compilation prÃ©cÃ©dente. Si l'Ã©dition des fichiers
de \meta{liste\_fichiers} cause des changements dans la numÃ©rotation
et les rÃ©fÃ©rences dans les autres parties du document, une nouvelle
compilation de l'ensemble ou d'une partie de celui-ci s'avÃ©rera
nÃ©cessaire.

\begin{exemple}
  Un document est composÃ© en plusieurs parties avec les commandes
  suivantes:
\begin{lstlisting}
\include{historique}            % chapitre 1
\include{rappels}               % chapitre 2
\include{modele}                % chapitre 3
\end{lstlisting}
  Les chapitres dÃ©butent respectivement aux pages~1, 23 et 41.
  \begin{itemize}
  \item Si l'on ajoute au prÃ©ambule du document la commande
\begin{lstlisting}
\includeonly{rappels}
\end{lstlisting}
    le numÃ©ro du chapitre sera toujours 2 et le folio de
    la premiÃ¨re page sera toujours 23, mÃªme si les 22 pages
    prÃ©cÃ©dentes ne se trouvent pas dans le document.
  \item Si l'on modifie le fichier \fichier{rappels.tex} de telle
    sorte que le chapitre se termine maintenant Ã&nbsp; la page 46, il
    faudra recompiler le document avec au moins les fichiers
    \fichier{rappels.tex} et \code{modele.tex} pour que les pages du
    chapitre~3 soient numÃ©rotÃ©es Ã&nbsp; partir de 47.
  \end{itemize}
  \qed
\end{exemple}

L'\autoref{ex:include} illustre mieux le cycle typique
d'utilisation des commandes \cmd{\include} et \cmd{\includeonly}.

\tipbox{Utilisez des noms de fichiers qui permettent de facilement
  identifier leur contenu. Par exemple, un nom comme
  \fichier{rappels.tex} identifie clairement le contenu du fichier et
  il rÃ©siste mieux aux changements Ã&nbsp; l'ordre des chapitres que
  \fichier{chapitre1.tex}.}

%%%
%%% Exercices
%%%

\section{Exercices}
\label{sec:organisation:exercices}

\Opensolutionfile{solutions}[solutions-organisation]

\begin{Filesave}{solutions}
\section*{Chapitre \ref*{chap:organisation}}
\addcontentsline{toc}{section}{Chapitre \protect\ref*{chap:organisation}}

\end{Filesave}

\begin{exercice}[nosol]
  Utiliser le fichier \fichier{exercice-parties.tex}.
  \begin{enumerate}
  \item Ã‰tudier la structure du document dans le code source.
  \item Ajouter un titre et un auteur au document Ã&nbsp; l'aide des
    commandes \cmdprint{\title} et \cmdprint{\author} se trouvant dÃ©jÃ&nbsp;
    dans le prÃ©ambule.
  \item CrÃ©er la table des matiÃ¨res du document en le compilant deux Ã&nbsp;
    trois fois.
  \item InsÃ©rer deux ou trois titres de sections de diffÃ©rents niveaux
    dans le document et recompiler.
  \item La numÃ©rotation cesse Ã&nbsp; partir des sous-sections. C'est une
    particularitÃ© de la classe \class{memoir}. Recompiler le document
    aprÃ¨s avoir ajoutÃ© au prÃ©ambule la commande
\begin{lstlisting}
\maxsecnumdepth{subsection}
\end{lstlisting}
  \item Ajouter une annexe au document.
  \end{enumerate}
\end{exercice}

\begin{exercice}[nosol]
  Utiliser le fichier \fichier{exercice-renvois.tex}.
  \begin{enumerate}
  \item InsÃ©rer dans le texte un renvoi au numÃ©ro d'une section.
  \item Activer le paquetage \pkg{hyperref} avec l'option
    \code{colorlinks} et comparer l'effet d'utiliser \cmd{\ref} ou
    \cmd{\autoref} pour le renvoi.
  \end{enumerate}
\end{exercice}

\begin{exercice}[nosol]
  \label{ex:include}
  Cet exercice fait appel au fichier maitre
  \fichier{exercice-include.tex} et Ã&nbsp; plusieurs fichiers auxiliaires.
  SchÃ©matiquement, le document est composÃ© ainsi:

  \medskip
  \begin{minipage}{\linewidth}
    \dirtree{%
      .1 exercice-include.tex.
      .2 {\textbackslash}input pagetitre.tex.
      .2 {\textbackslash}include rpresentation.tex.
      .3 {\textbackslash}includegraphics console-screenshot.pdf.
      .2 {\textbackslash}include emacs.tex.
    }
  \end{minipage}
  \medskip

  La commande \cmd{\includegraphics} permet d'insÃ©rer une image dans
  un document {\LaTeX}. Elle provient du paquetage \pkg{graphicx}.

  \begin{enumerate}
  \item Ã‰tudier le code source du fichier maitre, puis le compiler
    deux Ã&nbsp; trois fois jusqu'Ã&nbsp; ce que tous les renvois soient Ã&nbsp; jour.
    Il est normal Ã&nbsp; ce stade que la figure~1 du document soit vide.
  \item Ajouter dans le prÃ©ambule du fichier maitre la commande
\begin{lstlisting}
\includeonly{emacs}
\end{lstlisting}
    puis compiler le document.

    Observer que, malgrÃ© l'absence du chapitre~1, la numÃ©rotation et
    les rÃ©fÃ©rences demeurent Ã&nbsp; jour, notamment la table des matiÃ¨res.
  \item Remplacer la commande ajoutÃ©e en b) dans le prÃ©ambule du
    fichier maitre par la commande
\begin{lstlisting}
\includeonly{rpresentation}
\end{lstlisting}
    Vers la fin du fichier \fichier{rpresentation.tex}, activer la
    commande
\begin{lstlisting}
\includegraphics[width=\textwidth]{console-screenshot}
\end{lstlisting}
    en supprimant le symbole Â«\%Â» au dÃ©but de la ligne. Compiler de
    nouveau le document deux fois.

    Les modifications ont eu pour effet d'ajouter une page au
    chapitre~1. Observer que, selon la table des matiÃ¨res, le
    chapitre~2 dÃ©bute toujours Ã&nbsp; la page~3 alors que celle-ci est
    maintenant occupÃ©e par la figure~1.
  \item Afin de corriger la table des matiÃ¨res, dÃ©sactiver dans le
    prÃ©ambule du fichier maitre la commande \cmd{\includeonly}, puis
    compiler de nouveau le document quelques fois.
  \end{enumerate}
\end{exercice}

\begin{exercice}[nosol]
  DÃ©placer dans un fichier \fichier{preambule.tex} toutes les lignes
  du prÃ©ambule du fichier \fichier{exercice-include.tex} utilisÃ© Ã&nbsp;
  l'exercice prÃ©cÃ©dent, Ã&nbsp; l'exception de celles relatives Ã&nbsp; la page
  titre (titre, auteur, date). InsÃ©rer le prÃ©ambule dans
  \fichier{exercice-include.tex} avec la commande \cmd{\input}.
\end{exercice}

\Closesolutionfile{solutions}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: "formation-latex-ul"
%%% TeX-engine: xetex
%%% coding: utf-8
%%% End:
</pre></body></html>