Vous êtes sur la page 1sur 11

Tout pour les Maths

toutpourlesmaths.pagesperso-orange.fr /latex_rapport.htm

Dans cette partie nous allons voir comment rédiger un document de type rapport
(compte-rendu de stage, dossier de recherche,...). Pour les colis par défaut à mettre dans
tout document et le réglage des marges, je vous renvoie ici . De plus, je ne feraii pas les
packages pour les mathématiques car nous n'en aurons pas besoin ici. Bien-sûr, vous
pouvez les ajouter si vous le souhaitez, cela ne changera rien à notre travail ici.

Le document final vous semblera sans doute austère. Tout d'abord, rappelez vous que
vous pouvez faire tout ce que vous voulez pour modifier la présentation de base en
prenant le temps d'utiliser soit un des packages présentés sur ce soit un autre package
dont vous avez trouvé la description ailleurs sur internet. Ensuite, vous êtes en train de
rédiger des documents sérieux et pas l'album photo de vos vacances en famille. Donc
une certaine sobriété est attendue dans ce genre de documents. Vous verrez que plus
vous avancez dans vos études et plus la sobriété d'un document laisse penser que son
contenu est de qualité (ce n'est pas pour autant un gage absolu !).

Les parties et sous-parties

Pour commencer, recopiez le code minimal ci-dessous :

\documentclass{report}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{eurosym}
\usepackage[left=2.5cm,right=2.5cm,bottom=2.5cm,top=2.5cm]{geometry}

\begin{document}

Le contenu du rapport.

\end{document}

Et voilà! Vous êtes prêt pour la rédaction de votre premier document de type rapport.
Nous aurons besoin de beaucoup de faux-texte pour remplir rapidement des pages de
contenu. Pour générer du faux-texte, rendez-vous sur le site Lorem Ipsum et faîtes
générer 5 paragraphes de Lorem Ipsum. Cela permet d'avoir des paragraphes qui ne
veulent rien dire mais permettent de ne pas taper des choses à la main quand on
apprend à faire de la mise en forme.
Dans l'environnement document, recopiez le code ci-dessous en insérant du Lorem
Ipsum à chaque fois que je vous l'indique (je ne recopie pas le préambule pour ne pas
surcharger cette page) :

1/11
\begin{document}

\part{Une première partie}

\chapter{chapitre 1 de la première partie}

\section{Première section de la première partie}

Coller un peu de Lorem Ipsum

\section{Une deuxième section}

\subsection{une sous-section de cette section}

Coller un peu de Lorem Ipsum

\subsubsection{Une sous-sous-section}

Coller un peu de Lorem Ipsum

\subsubsection{Une autre sous-sous-section}

\chapter{Un autre chapitre}

Coller un peu de Lorem Ipsum

\part{Une deuxième partie}

\section{Une section mais pas de chapitre}

Coller un peu de Lorem Ipsum

\end{document}

Pour des raisons que j'expliquerai plus tard, faites toujours deux compilations de suites
pour être certain que le document est prêt (même si vous avez l'impression que cela ne
sert à rien).

Vous avez maintenant un joli document avec une belle structure hiérarchique et même,
comble du luxe, une indentation automatique pour les alinéas (si vous écrivez en
Français je vous rappelle qu'un paragraphe commence par un alinéa). On constate
plusieurs choses. La première c'est la numérotation automatique. essayez de modifier
l'odre des titres et parties et vous verrez que tout se renumérote à chaque compilation.
Vous n'avez plus à gérer vous-même la numérotation de votre document. Si en cours de
route vous décidez d'ajouter un chapitre ou une partie ou quoique ce soit, la compilation
mettra à jours toutes les numérotations.

L'idée générale de la numérotation est de reprendre l'ensemble de la numérotation du


document. Par exemple : 1.2.1 signifie que l'on est dans le chapitre 1, section 2, sous-
section 1. Cela peut sembler un peu lourd mais en fait, à l'usage c'est très pratique quand

2/11
on fait des référence à un document. Cela dit, vous voudrez peut-être les modifier pour
afficher des nombres romains pour les parties, des lettres pour les sous-parties, etc...
Nous verrons comment faire juste après.

Ne soyez pas surpris par le fait que les numérotations de chapitres ne se remettent pas à
zéro à chaque partie. Il s'agit d'un standard de présentation que l'on peut modifier. On ne
va pas s'en soucier car le découpage en parties n'est pas vraiment utile pour la majorité
des rapports que vous récupérez.

Par ordre décroissant de structure dans la hiérarchie d'un document, sur un :

1. Les soirées :\part{titre de la partie}


2. Les chapitres :\chapter{titre du chapitre}
3. Les rubriques :\section{titre de la section}
4. Les sous-sections :\subsection{titre de la sous-section}
5. Les sous-sous-sections :\subsubsection{titre de la sous-sous-section}
6. Les paragraphes (rarement utilisés) :\paragraph{titre du paragraphe}
7. Les sous-paragraphes (rarement utilisés) :\subparagraph{titre du paragraphe}

Remarque : si vous écrivez une étoile après un titre de section, sous-section, chapitre...,
cela permet de supprimer la numérotation. essayez par exemple \section*{une
section sans numérotation}dans votre code pour en voir le résultat.

Modificateur système de numérotation des parties, chapitres, sections,...

Dans la majorité des rapports que vous recueillerez, les structures des parties et
chapitres ne vous seront pas réellement utiles. Utiliser \section, \subsectionet
\subsubsectionsera généralement suffisant. Reproduisez le code ci-dessous :

3/11
\begin{document}

\section{une première section}

Coller du Lorem Ipsum

\section{une deuxième section}

\subsection{une sous-section de cette section}

\subsubsection{Une sous-sous-section}

Coller du Lorem Ipsum

\subsubsection{Une autre sous-sous-section}

Coller du Lorem Ipsum

\subsetion{Une autre sous-section}

\end{document}

Analyses du document obtenu . On constate que les sections et sous-section sont


numérotées mais pas les sous-sous-section. Cela est dû au fait que par défaut le rapport
de classe ne numérote plus les titres à partir du niveau sous-sous-section. Pour
augmenter la profondeur de numérotation des titres, il faudra ajouter dans le préambule
l'instruction \setcounter{secnumdepth}{3}pour indiquer que l'on souhaite une
numérotation jusqu'à un niveau trois de profondeur (c'est-à-dire les sous-sous-sections).
Le deuxième constat que l'on peut faire est que les titres numérotés commencent par un
zéro. Cela est dû au fait que par défaut Latex prend en compte les chapitres. Ou ici sur
un écrit aucun titre de chapitre. Donc Latex considère que l'on est dans un chapitre 0. On
va donc devoir redéfinir la numérotation pour supprimer les numéros de chapitres (on use
rarement la numérotation chapitre dans les rapports.)

Complétez votre préambule (la partie avant le \begin{document}) afin qu'il contienne les
lignes ci-dessous puis recompilez le document :

4/11
\documentclass{report}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{eurosym}
\usepackage[left=2.5cm,right=2.5cm,bottom=2.5cm,top=2.5cm]{geometry}

\setcounter{secnumdepth}{3}
\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\Roman{section} - \arabic{subsection}}
\renewcommand{\thesubsubsection}{\Roman{section} - \arabic{subsection})
\alph{subsubsection}}

Comme expliqué ci-dessus, la ligne \setcounter{secnumdepth}{3}permet maintenant


d'avoir la numérotation jusqu'à une profondeur de 3 (ce qui est en principe emplement
suffisant).
Ce qui est réellement intéressant est \renewcommand{commande exsitante}{nouvelle
commande}qui permet de redéfinir une instruction Latex déjà existante. Dans les
premières accolades, on écrit le nom de la commande déjà existant que l'on veut
redéfinir. Dans les deuxièmes accolades, on indique ce que doit maintenant faire cette
commande qui est redéfinie. Ici on redéfinit les commandes \thesection,
\thesubsection, \thesubsubsection. Il s'agit en fait de variables internes qui gèrent la
numérotation des titres et la police que vous n'avez pas à le faire vous même.

La commande \renewcommand{\thesection}{\Roman{section}}veut dire qu'il faut que


la variable \thesectionsoit redéfinie afin d'afficher le numéro de section en grand chiffre
romain, d'où le \Roman{section}dans les deuxièmes accolades. On aurait écrit
\roman{section}la numérotation aurait été en chiffres romains en minuscule.

La commande \renewcommand{\thesubsection}{\Roman{section} -
\arabic{subsection}}fonctionne de la même façon avec la variable \thesubsectionqui
numérote les sous-sections. L'instruction \Roman{section} -
\arabic{subsection}permet de dire que l'on veut voir affiché en premier le numéro de
section en romain puis un espace un tiret et un espace chiffres et enfin le numéro de
sous-section en nombre arabe. Vous pouvez vous amuser à changer la présentation
comme bon vous semble.
Par exemple essayez de faire en sorte que les sous-sections aient une numérotation qui
commence par le numéro de la sous-section en chiffre romain minuscule puis affiche un
point puis affiche un espace et enfin le numéro de la section en nombre arabe (oui en vrai
on ne fait jamais cela parce que cela ne veut rien dire).

La commande \renewcommand{\thesubsubsection}{\Roman{section} -
\arabic{subsection}) \alph{subsubsection}}fonctionne exactement comme les
précédentes avec comme nouveauté que \alphpermet d'afficher la numérotation en
alphabet latin minuscule. On écrirait \Alphpour des lettres majuscules.

5/11
Si vous voyez que la numérotation ne vous parait pas cohérente, cela peut être dû à un
problème de compilation. N'hésitez pas à compiler une deuxième fois pour être sûr que
Latex a bien mis à jour les variables.

La page de garde

Un autre intérêt de la classe report est la génération automatique de page de garde du


document. Pour cela c'est très facile, il suffit d'indiquer dans le préambule quelques
informations sur le document, comme l'auteur, la date,... et ensuite d'écrire
\maketitledans le document. Complétez votre document en cours à l'aide des lignes ci-
dessous et compilez.

\documentclass{report}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{eurosym}
\usepackage[left=2.5cm,right=2.5cm,bottom=2.5cm,top=2.5cm]{geometry}

\setcounter{secnumdepth}{3}
\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\Roman{section} - \arabic{subsection}}
\renewcommand{\thesubsubsection}{\Roman{section} - \arabic{subsection})
\alph{subsubsection}}

\title{La toute puissance des Mathématiques}


\author{Sophie Germain, Leonhard Euler\\et leurs amis les Mathématiciens}
\date{04/02/4242}

\begin{document}

\maketitle

Laisser ici tout ce que vous avez écrit depuis le début de cette page.

\end{document}

Première chose : ok c'est austère (certains diront même : c'est moche). Mais je vous
rappelle deux choses : premièrement vous faîtes des documents sérieux et pas votre
album de photos de familles, deuxièmement vous êtes dans Latex donc vous pouvez
faire ce que vous voulez!! Autrement dit on peut faire de pages de gardes plus
avenantes.
Pour le moment on va se satisfaire de cette page de garde (oui je sais elle est moche).
Faire de belles pages de garde est un peu technique. Je préfère laisser cela en
suspension pour le moment.

Le sommaire

6/11
L'autre grand intérêt de Latex est la génération de sommaires automatiques grâce à la
commande \tableofcontents. Il faut ajouter dans le préambule l'instruction
\setcounter{tocdepth}{3}. Recopiez le code ci-dessous (qui complète le précédent en
fait) et compilez le (il faut compiler deux fois) :

\documentclass{report}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{eurosym}
\usepackage[left=2.5cm,right=2.5cm,bottom=2.5cm,top=2.5cm]{geometry}

\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{profondeur}
\renewcommand{\thesection}{\Roman{section}}
\renewcommand{\thesubsection}{\Roman{section} - \arabic{subsection}}
\renewcommand{\thesubsubsection}{\Roman{section} - \arabic{subsection})
\alph{subsubsection}}

\title{La toute puissance des Mathématiques}


\author{Sophie Germain, Leonhard Euler\\et leurs amis les Mathématiciens}
\date{04/02/4242}

\begin{document}

\maketitle

\tableofcontents

Laissez ici tout ce que vous avez écrit depuis le début de cette page.

\end{document}

Une fois la double compilation réalisez : vous avez une table des matières toute prête qui
correspond à votre dossier. Seul problème, elle n'est pas seule sur sa page. Pour cela,
écrivez la commande \newpagejuste après le \tableofcontents, ce qui permettra de
réaliser un saut de page et de laisser la table des matières seule. L'instruction
\setcounter{tocdepth}{3}permet d'afficher dans la table des matières tous les titres
jusqu'à une profondeur de 3 (c'est-à-dire le niveau sous-sous-section). Sans cette
dernière instruction, Latex est paramétré par défaut pour ne pas aller au-delà de la
profondeur 2 (les sous-sections).

Essayez d'ajouter des sections, sous-section et de modifier des titres, puis de recompiler
(double-compilation). Vous verrez que la table des matières se met à jour toute seule
ainsi que la pagination !

7/11
On parle de table des matières si on la trouve en fin de document (écire alors l'instruction
\tableofcontentsà la toute fin, juste avant le \end{document}), sinon on parle de
sommaire. Sauf que Latex écrit par défaut "Table des matières". Pour changer le nom, il
suffit d'ajouter la commande \renewcommand{\contentsname}{Sommaire}juste avant le
\tableofcontents.

Référence à une partie du document

Une autre a choisi de très pratique dans Latex est de faire des références. Imaginez que
dans votre document vous utiliserez un résultat d'une autre partie. Par exemple, vous
voulez écrire "d'après la conclusion de la partie I.1". Vous pouvez écrire manuellement le
numéro de la section, sous-section etc... Le problème majeur rencontré est que si vous
coordonnez lors de la rédaction de nouvelles parties, sous-parties, etc... il va falloir relire
tout votre document pour mettre à jour ces références. Dans un document de trois pages
c'est faisable, dans un document de 50 pages c'est presque sûr que vous en oublierez.

Pour cela nous allons utiliser un système de références automatiques très simple.
Continuez avec votre document actuel. On va ajouter à l'intérieur les commandes \label,
\refet \pageref(on ne change rien au préambule donc je ne le remet pas). Pour que
vous trouviez plus rapidement ce qu'il faut ajouter j'ai retiré l'indentation dans les lignes
ci-dessous mais dans votre code source Latex pas besoin de le faire. Ne compilez qu'une
seule fois car je veux que vous remarquiez quelque chose !

8/11
\begin{document}

\maketitle

\section{une première section}

\label{referenceUtile}

Coller du Lorem Ipsum

\section{une deuxième section}

\subsection{une sous-section de cette section}

\subsubsection{Une sous-sous-section}

Coller du Lorem Ipsum

\subsubsection{Une autre sous-sous-section}

Coller du Lorem Ipsum

En utilisant le résultat de la section \ref{referenceUtile} donné en page


\pageref{referenceUtile}

\subsetion{Une autre sous-section}

\end{document}

Après avoir avoir compilé une seule fois vous constaté dans votre document deux
choses. La première est que le \label{referenceUtile} n'apparaît pas. C'est normal
car il s'agit d'une instruction qui crée un repère pour Latex mais qui ne doit pas apparaître
dans le document final. La phrase que que vous ait fait ajouter contient deux fois "??"" (et
c'est normal!) à la place des deux instructions.
Maintenant que vous avez vu cela, vous pouvez faire la deuxième compilation. Si vous
avez trop vite fait la double compilation ce n'est pas grave. Allez dans le fichier où se
trouve le document Latex et supprimez tous les documents sauf le document Latex puis
relancez la compilation une seule fois et vous verrez ainsi ce que je viens de décrire ci-
dessus.
Je vais vous expliquer ce qu'il vient de se passer. Lors de la première compilation Latex a
"lu" le document de haut en bas et découvert grâce à l'instruciton \ref{referenceUtile}
que vous vouliez faire un point de repère dans le document. Il a donc créé une variable
referenceUtile en mémoire dans un des documents annexes (les documents que vous
voyez dans votre fichier mais qui ne vous servent à rien). Cette variable va contenir la
numérotation des sections, sous-section,... ainsi que le numéro de page dans laquelle
elle se trouve. Sauf que lors de la première compilation, Latex (à ce moment exact où il
compile) n'est pas capable d'enregistrer cette valeur dans la variable. Ensuite, la

9/11
commande \ref{referenceUtile} va être remplacée par le numéro de section, sous-
section,... contenu dans la variable referenceUtile. Et \pageref{referenceUtile} fait
de même avec le numéro de la page où se trouve la commande \ref{referenceUtile}.
Lors de la première compilation, la variable referenceUtile ne contient rien et c'est pour
cela que s'affichent les "??". Il faut donc compiler une deuxième fois (plus de deux fois
est inutile) pour que Latex mette tout ses fichiers annexes à jours et puisse inscrire dans
la variable referenceUtile les valeurs voulues.

Essayez maintenant d'ajouter une ou deux sections avant la première section.


Recompliez deux fois de suites et vous verrez les références à referenceUtile se
mettre à jour toutes seules.

Vous pouvez faire autant de référence à autant de choses que vous voulez dans un
document. Vous pouvez appeler votre référence comme vous voulez à la place de
referenceUtile. Vous pouvez par exemple appeler la référence toto. Une seule règle
est à respecter pour éviter les bugs de compilations : pas de caractères spéciaux ou
espaces dans les noms que vous donnez aux références.

En Français on parle de références croisées et en anglais le terme est cross-referencing.


C'est important à savoir car si vous faîtes des recherches sur internet sur le sujet,
connaître les bons mot-clefs gagne énormément de temps.

Important

Nous arrivons au bout de ce point de départ pour rédiger un rapport dans le langage
Latex. Il est important de comprendre que je ne vous ai présenté que le point de départ.
Je ne connais pas tout et c'est à vous de vous dire pour la suite : je veux faire ceci ou
cela, donc je cherche sur internet comment faire.

Vous avez aussi remarqué que le préambule est relativement conséquent. En générale,
une fois que vous avez trouvé une présentation qui vous convient pour vos rapports,
vous faîtes à chaque fois un copier-coller du préambule dans les nouveau rapports et ne
modifiez plus qu'à la marge la présentations de ces documents. Je vous montrerai dans
une autre partie comment, avec l'instruction \input on peut écrire toutes ces instructions
dans un autre document pour que cela ne nous casse plus les pieds.

Tout travail donnant lieu à un rapport final contient des sources bibliographiques. Pour
cela on utilise un aspect de Latex qui s'appelle Bibetex et permet de faire des
présentations standardisées et impeccables des sources. Je présenterai aussi cela dans
une autre partie.

Beaucoup de gens trouvent que la classe report est un peu pauvre et moche en terme
de présentation (je peux difficilement dire le contraire...) et ont créé d'autres classes pour
faire de plus jolies choses. L'une des plus courante est la classe memoir. De nombreux
tutoriels existent sur internet et je vous laisse les consulter vous-même. Sachez juste que
ce que j'ai expliqué dans cette page fonctionne de la même façon pour la majorité des
possibilités de documents. Vous avez juste plus de possibilités de présentations avec la

10/11
classe memoir. Si je ne vous ai pas présenté cette classe c'est parce que celle qui est la
plus courante reste la classe report (et c'est donc pour elle que l'on trouve le plus de
documentation).
De nombreux site présentent le rapport de classe. Je vous mets ici les liens vers le
manuel de cette classe. Ok c'est indigeste et en anglais mais là vous avez tout. Pour des
explications plus dilluées, n'hésitez pas à chercher des tutoriels sur internet concernant
cette classe de documents précise.

11/11

Vous aimerez peut-être aussi