TD13 : Rédiger un Rapport en LaTeX
Dans ce TD, nous allons apprendre à utiliser l'environnement LaTeX (qui se prononce latèk) pour la rédaction d'un rapport. LaTeX est particulièrement utilisé dans les domaines techniques et scientifiques pour la production de documents typographiques de haute-qualité.
Pour réaliser ce TP sur une machine Linux (hors CREMI), il vous faudra probablement installer quelques paquets Debian :
sudo apt update
sudo apt install texlive-latex-base texlive-latex-extra texlive-lang-french
sudo apt install texlive-xetex texlive-extra-utils latexmk
Un solution alternative consiste à installer le meta-package texlive-full
qui
regroupe tous les packages LaTeX, mais cette installation est assez lourde !
Préambule
Une document LaTeX se présente sous forme d'un fichier source (fichier texte
d'extension .tex
), qu'il faut programmer en utilisant le langage LaTeX et
compiler pour produire un document imprimable, typiquement au format
PostScript ou PDF.
Voici quelques élements de syntaxe du langage LaTeX :
- Variables et Commandes : Les variables et commandes LaTeX commencent
toujours par le caractère
\
. Il existe de nombreuses variables et commandes prédéfinies. On peut définir (redéfinir) des variables et des commandes. De nombreuses variables définissent les caractéristiques des pages à produire comme\textheight
,\textwidth
,\topmargin
, ... - Commentaires : Tout texte situé à droite du caractère
%
est considéré comme un commentaire. - Echappement : La plupart des caractères accentués et spéciaux peuvent être
utilisés en les précédant du caractère d'échappement
\
, comme par exemple :\%
pour %,\’e
pour é,\‘a
pour à,\^i
pour î,\cc
pour ç, etc. Quelques exceptions néanmoins pour le caractère~
qui est obtenu grâce à\textasciitilde
et le caractère\
obtenu grâce à\textbackslash
.
Un peu de documentation :
- https://en.wikibooks.org/wiki/LaTeX
- https://www.latex-project.org/help/documentation/usrguide.pdf
- https://www.overleaf.com/learn/latex/Learn_LaTeX_in_30_minutes
Utilisation de LaTeX dans VS Code
Prérequis : Installez l'extension LaTeX Workshop dans votre VS Code.
Cette extension vous permettra d'activer la coloration, la complétion ansi que de compiler un fichier LaTeX et d'en visualiser le résultat (un fichier PDF). Son fonctionnement est assez simple, lorsqu'un fichier LaTeX est ouvert, une section TeX est ajoutée sur la barre des outils (barre verticale) de l'éditeur. Lorsque vous cliquerez sur ce nouveau bouton vous pourrez compiler, visualiser et faire plein d'autres actions.
Alternativement, il est possible d'utiliser l'éditeur en ligne overleaf qui est une éditeur LaTeX en ligne, collaboratif en temps réel.
👉 Pour autant, pour la suite du TD, il vous est demandé d'utiliser VS Code.
Un premier exemple
Dans un éditeur de texte, créez le fichier first.tex avec le contenu ci-dessous, et vérifiez qu'il est bien sauvegardé au format UTF-8.
% my first latex document
\documentclass[a4paper]{article}
\begin{document}
...
\end{document}
Nota Bene : Dans VS Code, il est possible de changer l'encodage du fichier texte utilisé via la barre d'état en bas à droite.
👉 Complétez le contenu du fichier first.tex et compilez ce fichier avec la commande :
pdflatex first.tex
Le processus de compilation est assez verbeux, et va produire le fichier first.pdf.
Visualisez le résultat avec un logiciel comme Evince ou Acrobat Reader.
evince first.pdf &
Recommencez de même avec le fichier second.tex, qui est une
version française du premier fichier. La compilation rencontre des erreurs,
tapez Enter
pour continuer. (Il est également possible de taper x
pour
interrompre la compilation.)
Les erreurs de compilation sont liées à l'utilisation des caractères accentués
et des guillemets français (« et »), que LaTeX ne comprend pas nativement ! Pour
pouvoir utiliser directement des caractères Unicode et être dans un
environnement adapté au français (espacement correct, date en français, césure
correcte, ...), il faut utiliser les packages suivants, dans cet ordre.
Décommentez ces lignes dans l'en-tête du fichier second.tex
et recompilez.
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
Quelques précisions. La ligne avec le package inputenc indique que le
fichier en entrée first.tex est encodé en utf8
(ceci est optionnel pour la
plupart des compilateurs). Le package babel précise le langage choisi, qui est
ici le français. La ligne avec le package fontenc permet de préciser que le
fichier produit en sortie sera encodé avec le jeu de caractères PostScript T1
(limité à 256 caractères), qui supporte la plupart des caractères accentués
(mais pas tous les caractères Unicode). Le package lmodern permet de
remplacer la police par défaut (Computer Modern) par la police Latin Modern,
ce qui revient à changer la représentation visuelle des caractères (ou glyphes)
par une police vectorielle plus moderne.
Plus d'info sur les caractères spéciaux : https://en.m.wikibooks.org/wiki/LaTeX/Special_Characters
👉 Rajoutez ces quelques lignes après la ligne \documentclass
et recompilez
avec pdflatex
. Vous pouvez remplacer le package lmodern par times pour
changer la police.
Remarquez qu’il n’y a pas d’espace après la date. Dans le texte source, le
caractère espace qui suit le nom de la commande \today
délimite la fin de la
commande. Remplacez \today
par \today{}
; recompilez et vérifiez le résultat
obtenu.
Astuce : Une solution alternative pour éviter ces difficultés consiste à
compiler le fichier second.tex
(dans sa version initiale) avec des compilateurs
plus modernes comme xelatex
ou lualatex
plutôt que pdflatex
.
Styles
Le style article
correspond à un ensemble de définitions de variables et de
commandes adaptées à la rédaction d’un article. Il existe d’autres styles
prédéfinis comme book
, report
. On peut aussi écrire de nouveaux styles pour
des besoins spécifiques.
Polices de caractères
Par défaut, la taille de la police est de 10 points. Le point est l’unité de base pour l’impression. On peut indiquer une autre taille avec un paramètre optionnel, comme ceci :
\documentclass[a4paper,12pt]{article}
Nota Bene : La classe article ne supporte que les tailles 10, 11 et 12.
On peut localement à l’intérieur d’un document changer la taille de la police au
moyen des commandes \tiny, \scriptsize, \footnotesize, \small, \normalsize,
\large, \Large, \LARGE, \huge, \Huge
. Ces commandes peuvent être appliquée
sur une partie du texte :
{\Large Titre}
ou porter sur la suite du texte. On peut alors revenir à la taille par défaut
avec \normalsize
. Par exemple :
\Large
Un texte en grand.
\normalsize
Un texte normal.
Par défaut, la police de caractères utilisée est roman. Les principales
commandes pour changer de police sont \textrm, \textsf, \texttt, \textmd,
\textbf, \textup, \textit, \textsl, \textsc
et prennent comme unique argument
le texte sur lequel appliquer la police. Par exemple, la commande \textit{Ce
texte est en italique}
va donner : Ce texte est en italique.
La commande \emph
permet de mettre du texte en valeur (i.e. en emphase)
relativement au contexte. Plus précsisément, ce texte sera mis en italique si le
contexte ne l’est pas, et inversement, le texte sera normal si le contexte est
déjà en italique.
En outre, il est possible de combiner certaines de ces commandes. Essayez par
exemple : \textbf{\emph{texte}}, \textsf{\emph{texte}}, \textsf{\textbf{texte}})
.
👉 Expérimentez différentes tailles et polices.
Environnements
Un environnement est une portion de texte positionnée entre deux commandes de la forme :
\begin{env}
...
\end{env}
où env
est le nom de l’environnement. Essayez par exemple l’environnement verbatim
qui
permet taper du texte brut lequel ne sera pas interprété par LaTeX. Il existe de nombreux
environnements pour faire des listes, des tableaux, ...
Exercice : écriture d'un rapport
Récupérer le fichier sample.zip, puis de le décompresser. Ouvrez le fichier sample.tex et compilez-le.
Découpage du texte
Remarquez le découpage du texte en sections, sous-sections, paragraphes et la numérotation automatique. Entraînez-vous en rajoutant des sections de chaque catégorie.
Listes
Remarquez l’environnement itemize
. Testez les environnements similaires
enumerate
, description
. Pour ce dernier chaque item doit commencer par une
description :
\item[description de l’item] texte de l’item
Tableau
👉 A l'aide de l'environnement tabular, ajoutez un petit tableau dans votre document.
Vous pouvez vous inspirer de cet exemple : tableau.tex.
Notez les différents type d'alignement utilisés pour les colonnes de ce tableau
: l
(left), c
(center) et r
(right).
Références croisées
La plupart des entités de votre document (section, figure, page, ...) peuvent
être référencés au moyen de références croisées. Pour pouvoir référencer une
entité il faut lui donner un nom grâce à la commande \label
dont l’argument
correpond au nom qu’on donne à l’entité.
\section{Résultats}
\label{resultats}
On peut alors récupérer le numéro de la section au moyen de \ref{resultats}
comme dans la phrase :
Les résultats sont présentés dans la section~\ref{resultats}.
Le caractère ~
permet d’insérer un petit espace insécable, c'est-à-dire qui
évite que LaTeX ne revienne à la ligne entre le mot « section » et le numéro
de la section.
On peut également utiliser \pageref{resultat}
pour obtenir le numéro de la
page où se trouve la définition de l’étiquette (label
) resultat.
👉 Essayez. Notez que LaTeX doit être exécuté deux fois pour que les références
soient correctes ; la première fois, il sauvegarde les références dans le
fichier sample.aux
, la deuxième il utilise ces informations pour remplacer les
\ref{...}
par la valeur correcte.
Table des matières
Rajoutez dans le fichier sample.tex
la commande \tableofcontents
. Celle-ci
produit automatiquement une table des matières à l’endroit où la commande est
positionnée. Deux passes de LaTeX sont nécessaires pour obtenir une table
correcte. Lors de la première passe LaTeX crée un fichier sample.toc
; lors
de la deuxième passe il utilise les informations contenues dans ce fichier pour
produire la table.
👉 Testez.
Astuce : Vous pouvez utiliser le package hyperref pour permettre de naviguer dans la table des matières avec des hyperliens.
Bibliographie
Afin d'ajouter des références bibliographiques dans son rapport, ainsi qu'une bibliographie à la fin de son rapport, nous allons utiliser le logiciel bibtex.
Ouvrez le fichier biblio.bib
. Inspectez son contenu, qui contient plusieurs
entrées bibliographiques au format bibtex. Rajoutez des références
bibliographiques dans votre fichier sample.tex
à l'aide de la commande
\cite{...}
, comme par exemple \cite{diday-1982}
.
Ajoutez ensuite la bibliographie dans votre document en insérant les lignes
suivantes à la fin (avant le \end{document}
) :
\bibliographystyle{plain}
\bibliography{biblio} % fichier biblio.bib
Afin de compiler proprement un document LaTeX avec des références bibliographiques, il faut enchaîner les commandes suivantes :
$ pdflatex sample # première passe
$ bibtex sample # génération de la bibliographie
$ pdflatex sample # deuxième passe
Lors de la première passe, les citations dans le document sample.pdf
sont
marquées comme manquantes [?]
et la bibliograhie est encore vide. Pour générer
la bibliographie, il faut explicitement appeler la commande bibtex
, qui va
générer le fichier sample.bbl
à partir du fichier biblio.bib
. Examinez le
contenu du fichier sample.bbl
. Lors de la deuxième passe de compilation, la
bibliographie est ajoutée à l'endroit de la commande \bibliography{...}
et les
citations sont maintenant correctement référencées.
Remplacez la ligne \bibliographystyle{plain}
par la ligne
\bibliographystyle{alpha}
pour obtenir un autre style de bibliographie.
Recompilez et regardez le résultat final.
👉 Récupérez de nouvelles entrées bibliographiques au format bibtex en cherchant sur ArXiv ou Google Scolar et utilisez ces références dans votre document. Par exemple, recherchez le bibtex de cet article : Hydroxychloroquine and azithromycin as a treatment of COVID-19: results of an open-label non-randomized clinical trial.
Astuce: La chaîne de compilation de LaTeX en plusieurs passes est
relativement complexe. Pour surmonter ce problème, il est possible d'utiliser un
outil de plus haut-niveau comme latexmk
Par exemple :
$ latexmk -pdf sample # make sample.pdf
$ latexmk -C sample # clean all
Notez que VS Code utilise latexmk
en arrière-plan pour re-compiler
automatiquement votre document à chaque modification.
Inclusion d'images
L’inclusion d’images dans un document LaTeX peut se faire de plusieurs façon.
Dans cette section nous examinerons uniquement l’utilisation du package
graphicx
.
Récupérer la documentation de ce package sur le Comprehensive TEX Archive Network ou CTAN : http://ctan.org/tex-archive/macros/latex/required/graphics.
Dans la liste des packages inclus dans votre document vous rajouterez :
\usepackage{graphicx}
.
👉 Testez l'inclusion de l'image gnu.png dans votre document en ajoutant les instructions suivantes :
\includegraphics[height=1.5cm]{gnu.png}
\scalebox{-1}[1]{\includegraphics[height=1.5cm]{gnu.png}}
En consultant la documentation que vous avez récupérée, testez différentes options d’inclusion d’images (rotation, changement d’échelle entre l’axe des abscisses et des ordonnées, etc.).
Formules mathématiques
LaTeX est particulièrement adapté à la rédaction de textes mathématiques. Une
expression mathématique insérée dans du texte est entourée de $ (ou placée dans
un environnement math
. Par exemple :
L’équation de la droite est $3x - 2y + 4 = 0$.
On obtient les exposants et les indices respectivement par $x^i$
et $x_i$
.
Pour obtenir une formule centrée sur une ligne, on la place entre \[
et \]
.
👉 Au moyen des commandes \sqrt{x}
(racine carrée de x), \frac{a}{b}
(fraction de a sur b), \sum_{a}^{b}
(somme de a à b), \int_{a}^{b}
(intégrale de a à b), \overline{x}
(barre au dessus) et \lambda
(le
caractère grec), écrivez les formules suivantes :
Insertion de code source
👉 Utilisez le package listings pour ajouter un exemple de code source en C ou en Python, en utilisant l'environnement lstlisting, comme par exemple fib.tex.
Plus d'info : https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings
A ce niveau, votre document sample doit compiler et produire un PDF illustrant votre compréhension des différentes possibilités de LaTeX.
Travail Demandé
Reprenez votre fichier sample.tex
et modifiez-le pour écrire un rapport
report.tex
sur le thème de votre choix... Dans ce rapport, il vous est demandé
d'illustrer, point par point, toute votre compréhension technique de l'outil
LaTeX.
Il vous est demandé de rendre ce travail individuel sur Moodle. Plus précisément, il s'agit de rendre :
- le fichier
report.tex
, ainsi que tous les fichiers utiles à sa compilation (images, biblio, etc.), - le fichier
report.pdf
correspondant.