latex-phytem.tex 167 KB
Newer Older
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
1 2 3 4 5 6 7 8 9 10
\documentclass[a4paper]{article}

%-----PACKAGES---------------------------

%encodages d'entrée et sortie, police vectorielle
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

%paquets linguistiques
11
\usepackage[english,frenchb]{babel}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
12 13 14 15

%aspect général des pages
\usepackage{geometry}
\usepackage{fancyhdr}
16
\usepackage{fancyvrb} % pour \verb dans les \footnote
17
\usepackage{parskip} % permet les espaces entre paragraphes sans vskip (peut se personaliser)
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
18

19
% Maths
20
\usepackage{amsmath}
21
\usepackage{amssymb}
22
%\usepackage{amsfonts} %amsfonts est chargé par amssymb
Aurelien Pascal's avatar
Aurelien Pascal committed
23
\usepackage{braket}
Alexandre Morlet's avatar
Alexandre Morlet committed
24
\usepackage{siunitx}
25

26 27
%inclure du code source
\usepackage{listings}
28
\usepackage{listingsutf8}
29 30
\usepackage{showexpl}
\usepackage[dvipsnames]{xcolor}
31

Aurelien Pascal's avatar
Aurelien Pascal committed
32
%figures, titres et autres environnements spéciaux
Aurelien Pascal's avatar
Aurelien Pascal committed
33
\usepackage{graphicx}
Aurelien Pascal's avatar
Aurelien Pascal committed
34
%\usepackage{caption} %n'a pas l'air utile finalement
Aurelien Pascal's avatar
Aurelien Pascal committed
35
\usepackage{threeparttable}
36
\usepackage{multirow}
Aurelien Pascal's avatar
Aurelien Pascal committed
37
\usepackage{enumitem}
Aurelien Pascal's avatar
Aurelien Pascal committed
38

39
%liens internes et externes, annexes
40
\usepackage[colorlinks=true,linkcolor=black,urlcolor=cyan]{hyperref}
Aurelien Pascal's avatar
Aurelien Pascal committed
41
\usepackage[titletoc,title,toc,page]{appendix} %personnalise les titres des annexes
42

Aurelien Pascal's avatar
Aurelien Pascal committed
43 44 45 46
%pgf et tikz
\usepackage{pgfplots}
\usepackage{tikz}
\usetikzlibrary{external}
47
\usetikzlibrary{trees}
Aurelien Pascal's avatar
Aurelien Pascal committed
48
\usetikzlibrary{shapes}
49 50
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
Aurelien Pascal's avatar
polaire  
Aurelien Pascal committed
51
\usepgfplotslibrary{polar}
Aurelien Pascal's avatar
Aurelien Pascal committed
52

53 54 55
%commentaires
\usepackage{comment}

56 57
%caractères spéciaux et autres joyeusetés
\usepackage[safe]{tipa}
Enteocline's avatar
Enteocline committed
58
\usepackage{textcomp}
59

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
60 61 62 63
%----------------------------------------------------------------
%-----MACRO INSTRUCTIONS ET COMMANDES----------------------------

%geometrie des pages
Aurelien Pascal's avatar
Aurelien Pascal committed
64
\geometry{hmargin=2cm,vmargin=1.5cm}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
65

66
%options pour la table de matières
Aurelien Pascal's avatar
Aurelien Pascal committed
67
\setcounter{tocdepth}{2}
68
\renewcommand{\appendixtocname}{Annexes}
69
\renewcommand{\appendixpagename}{\centering Annexes}
Aurelien Pascal's avatar
Aurelien Pascal committed
70

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
71 72 73
%mathématiques
\everymath{\displaystyle} %conserve une taille normale même inclus dans du texte

Aurelien Pascal's avatar
Aurelien Pascal committed
74 75
%pgf et tikz
\pgfplotsset{compat=newest}
Enteocline's avatar
Enteocline committed
76 77
%\tikzexternalize[prefix=tikz/,shell escape=--enable-write18]
\tikzexternalize[prefix=tikz/,shell escape=-shell-escape]
Aurelien Pascal's avatar
Aurelien Pascal committed
78

79
%configuration de listings
80 81 82
\lstdefinestyle{myLatexStyle}{
	language=[LaTeX]TeX,
    	basicstyle=\small\ttfamily,
83
    	backgroundcolor=\color{lightgray}, % J'ai changé, GreenYellow c'est pas très joli. J'aimerais un bleu-gris léger mais LightBlue ou LightSlateBlue fonctionnent pas, alors que GreenYellow ouais. C'est peut-être parce que j'essaie sous Windows.
Aurelien Pascal's avatar
Aurelien Pascal committed
84
    	numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
85 86 87 88 89
    	commentstyle=\color{red},
    	showstringspaces=false,
    	keywordstyle=\color{blue}\bfseries,
    	morekeywords={align,begin},
    	pos=l
90
}
91 92 93 94 95 96 97
\lstset{
	inputencoding=utf8/latin1,
	style=mylatexstyle,
	width=0.40\linewidth,
	extendedchars=true,
	literate={é}{{\'e}}1
}
98

99 100 101 102 103 104 105 106
% autorise l'utilisation de \verb dans \footnote
\AtBeginDocument{\VerbatimFootnotes}

% showexpl pollue inutilement le log je trouve, ça m'agace... -- Entéocline
\makeatletter
\renewcommand\SX@Info{}
\makeatother

Aurelien Pascal's avatar
Aurelien Pascal committed
107 108 109
%ajout des chemins d'input
\makeatletter
\providecommand*{\input@path}{}
110
\def\input@path{{./tikz-src/}}
Aurelien Pascal's avatar
Aurelien Pascal committed
111 112
\makeatother

113 114 115 116 117 118
% Je suis tellement mégalo que je me crée une commande perso pour mes commentaires ! L'avantage
% que mes commentaires peuvent être désactivés en remplaçant \enteotrue par \enteofalse. Je peux
% créer des commandes pour vous aussi si vous voulez !
\newif\ifenteo\enteotrue
\def\startenteo{\ifenteo\begingroup\color{red}}
\def\closeenteo{ -- Entéocline \endgroup\fi}
119
\ifenteo\else \let\startenteo\iffalse \let\closeenteo\fi \fi
120

Aurelien Pascal's avatar
Aurelien Pascal committed
121
% ahah je connaissais pas ça, du coup je suis jaloux je m'en crée une aussi :)
122
   % En vrai j'ai inventé ça sur le tas ! ;) -- Ent.
Aurelien Pascal's avatar
Aurelien Pascal committed
123 124
\newif\ifaurel\aureltrue
\def\startaurel{\ifaurel\begingroup\color{Mulberry}}
125 126 127
\def\closeaurel{ -- Aurelien \endgroup\fi \iffalse \fi}
\ifaurel\else \let\startaurel\iffalse \let\closeaurel\fi \fi

128 129 130 131
\newif\iftouille\touilletrue
\def\starttouille{\iftouille\begingroup\color{blue}}
\def\closetouille{ -- Tatouille \endgroup\fi}
\iftouille\else \let\starttouille\iffalse \let\closetouille\fi \fi
132

Alexandre Morlet's avatar
Alexandre Morlet committed
133 134


135 136 137 138 139 140 141 142 143 144 145 146
  %****INSTRUCTIONS POUR SHOWEXPL*********

  %Ce paquet permet l'intégration d'exemple de code latex avec exemple a coté
  %Pour l'utiliser au choix :
  %l'environnement \begin{LTXexample} \end{LTXexample}
  %l'intégration dans un fichier à part : \LTXinputExample{monbeaufichier.tex}

  %l'option [width=0.5\linewidth] fournie lors de ces appels coorespond à la largeur du rendu. 
  %Jouez avec cette option pour obtenir le meilleur compromis
  %(il est plus intuitif de l'exprimer en pourcentage de la largeur totale comme ci-dessus)
  %La valeur par défault est fixée dans le lstset

Aurelien Pascal's avatar
Aurelien Pascal committed
147 148
  %l'option preset est un emsemble de commandes qui ne seront pas affichées dans le rendu,

149
  %L'orthotypograph[LIST] vaincra !
150
  % +1
151
  % +1
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
152 153 154 155 156 157 158 159
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------

%-----METADATA-----

160
\title{\LaTeX~expliqué à mon petit phytem}
161 162 163
\author{Alexandre Morlet\footnote{\href{mailto:Alexandre Morlet <alexandre.morlet@ens-cachan.fr>}{\ttfamily alexandre.morlet@ens-cachan.fr}},
        Aurélien Pascal\footnote{\href{mailto:Aurélien Pascal <aurelien.pascal@ens-cachan.fr>}{\ttfamily aurelien.pascal@ens-cachan.fr}}
	\ \& William Babonnaud\footnote{\href{mailto:William Babonnaud <william.babonnaud@crans.org>}{\ttfamily william.babonnaud@crans.org}}}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
164 165
\date{}

166 167 168
\lhead{ENS Cachan}
\rhead{2016}

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
169 170 171 172
%-----DOCUMENT-----

\begin{document}

173 174
\let\orilabel\label %sauvegarde la commande label dans orilabel pour la restaurer dans showexpl

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
175
\maketitle
Aurelien Pascal's avatar
Aurelien Pascal committed
176

177 178 179
\thispagestyle{fancy}

\begin{abstract}
180 181 182
    Souvent présenté comme incontournable pour rédiger rapports et articles,~\LaTeX~n'est cependant pas enseigné comme peut l'être la programmation.\\
    Bien qu'il existe certaines ressources en ligne, aucune d'elles n'a donné le sentiment d'être à la fois pratique et complète~:~souvent, une fois les bases posées, le lecteur est laissé à lui-même. 

Enteocline's avatar
Enteocline committed
183
Ce document a pour but de présenter de façon assez complète les bases du langage de mise en forme de texte formaté~\LaTeX, ainsi que certaines de ses fonctionnalités plus avancées qui pourront vous servir dans votre vie de scientifique.
184 185 186
    
    %Mais ça fait un peu de répétition. En gros, dire `on va mettre les bases, puis faire de la mise en page, puis utiliser des paquets `compliqués'.

187
    % J'ai ouvert le gestionnaire de paquets de MiKTeX : 3023 entrées ^^
188 189 190 191 192 193 194

	%Petits truc que je n'ai compris que récemment :

    %Il y a deux solutions pour un retour à la ligne propre :
    % \\ sans ligne blanche après ça revient simplement au début de la ligne
    % une ligne blanche sans \\ avant ça te met un alinéa a ta prochaine ligne

195
    %Toute autre solution (\\ suivi d'une ligne blanche par exemple) produit une "underfull \hbox error"
196
    %Si tu veux un espace entre paragraphes il faut un \vspace ou mieux le paquet parskip
197 198

    % Autre solution que je viens de lire : \vspace{baselineskip} fait une ligne vide. Mais ça m'ennuie dans tous les cas : au collège on m'a appris à aérer mes textes et mettre des alinéas, donc si je fais \\ je veux juste un retour à la ligne, et sinon je veux un saut de ligne + un alinéa, mais ça doit pas être syntaxiquement correct si LaTeX le fait pas ...
199 200 201
    
    %Et dans tous les cas il n' y a pas d'espace entre paragraphes dans le résumé

202 203
    % Est-ce que toutes ces remarques syntaxiques ne devraient pas être mentionnées quelque part ? Dans "Formater le texte" par exmple.

204 205
    % Plutôt que d'utiliser \\, il est préférable de laisser une ligne vide et de commencer le paragraphe suivant par \noindent si on ne veut pas d'alinéa -- Ent.

206 207 208 209
\end{abstract}

\tableofcontents

Aurelien Pascal's avatar
Aurelien Pascal committed
210 211
\newpage

Aurelien Pascal's avatar
Aurelien Pascal committed
212
\part{Introduction}
213

Aurelien Pascal's avatar
Aurelien Pascal committed
214 215
Une petite introduction à ce qu'est~\LaTeX~et à comment il s'utilise.

Aurelien Pascal's avatar
Aurelien Pascal committed
216
\section{\LaTeX~?}
217

Aurelien Pascal's avatar
Aurelien Pascal committed
218 219 220 221 222 223
\LaTeX~(prononcer latèk)~\startenteo{}Les histoires de prononciations sont plus compliquées que ça, on prononce [lat\textipa{E}k] mais les allemands, par exemple, prononcent [lat\textipa{E}x]. Je ferai un petit point (ou une note de bas de page) dessus\closeenteo{}est un langage open source de composition de document conçu par Leslie Lamport pour utiliser plus facilement le processeur de texte~\TeX~(son nom vient de Lamport~\TeX).

\startaurel de mon côté cette ligne provoque encore un font warning dans le log : \begin{lstlisting}
LaTeX Font Warning: Font shape `T3/lmr/m/n' undefined
(Font)              using `T3/cmr/m/n' instead on input line 208.\end{lstlisting} Une idée ? \closeaurel

Enteocline's avatar
Enteocline committed
224 225 226 227 228 229
\startenteo C'est le cas chez moi aussi. Après recherches, il se trouve que la police Latin Modern n'a pas de
support pour l'encodage \texttt{T3}, \LaTeX{} est donc obligé de substituer la police par défaut. À part
redefinir la commande \verb|\textipa| pour lui faire charger automatiquement la police par défaut et ainsi faire
disparaître l'avertissement, on ne peut rien faire... Mais cet avertissement peut apparemment être ignoré
en toute sécurité !\closeenteo

Enteocline's avatar
Enteocline committed
230
\TeX~est quand à lui le logiciel de mise en forme du texte qui va traiter les commandes. Son nom vient du grec <$\tau\epsilon\chi$> qui signifie art/science. Certaines personnes programment encore directement en~\TeX, mais la majorité préfère~\LaTeX, plus \emph{user-friendly}.
Aurelien Pascal's avatar
Aurelien Pascal committed
231
\starttouille Peut-être aussi expliquer pourquoi ça a été inventé, ou encore pourquoi cela reste plus intéressant que Word/LibreOffice Writer.\closetouille
232

233 234
Pour utiliser~\LaTeX, il faut la même chose que pour tout langage compilé : un compilateur capable d'interpréter le code pour produire le document et un éditeur de texte qui permettra de créer le fichier source du projet (le \verb=.tex=).

235
Deux possibilités se présentent alors à vous : utiliser un \emph{IDE} tel que \verb=TeXmaker= ou \verb=TeXilla=, qui combine éditeur de texte et interface de compilation, ou travailler de façon plus artisanale (avec le combo \verb=Vim=-\verb=latexmk= par exemple).\footnote{Peu importe la solution, il faut télécharger séparement le compileur. \verb=TeXmaker= sous Windows propose \verb=MikTex= lors de son installation ; et pour compiler en ligne de commande sous Linux il faut télécharger les paquets \verb=TeXlive=}
236

Aurelien Pascal's avatar
Aurelien Pascal committed
237
\section{La compilation}
238

239
\pagebreak
240

Aurelien Pascal's avatar
Aurelien Pascal committed
241
\part{\LaTeX~:~Guide de survie}
242

Enteocline's avatar
Enteocline committed
243
La principale difficulté de~\LaTeX{} c'est qu'un certain temps d'apprentissage est nécessaire pour obtenir des résultats qui sont obtenus très rapidement et avec moins d'efforts avec les logiciels de traitement de texte usuels. Mais ne découragez pas car une fois cette première phase passée vous vous sentirez bien plus libre que sous \verb=Word= ou \verb=LibreOffice=.\\
244 245
L'objectif de cette première partie est de vous guider dans cette première phase d'apprentissage, après celle-ci vous pourrez réaliser n'importe quel document texte basique sans problème.\footnote{Enfin quand je dis basique, cela inclus quand même la gestion des images, des références, et des expressions mathématiques, qui sont mieux gérés que sur un traitement de texte}

Aurelien Pascal's avatar
Aurelien Pascal committed
246
\section{Structure d'un fichier source : les bases}
247

Aurelien Pascal's avatar
Aurelien Pascal committed
248
Avant toute chose commençons par cette bonne vieille tradition qui se veut de présenter un langage de programmation par un exemple de 'Hello World' :
249 250

\begin{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
251
\documentclass[11pt,a4paper]{article}
252 253 254 255 256 257 258

\begin{document}
	Hello World !
\end{document}

\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
259 260 261 262 263 264 265
L'intérêt d'un tel exemple c'est qu'il permet de comprendre quel est le \textbf{minimum légal} de code afin que votre document puisse compiler.\\
Ainsi il y a deux éléments indispensables à un document~\LaTeX~: 
\begin{itemize}
	\item le premier est le \textbf{documentclass}, qui indique à votre compilateur sur quel type de document (article, livre, journal, présentation) vous êtes en train de travailler
	\item le second est \textbf{l'environnement document}, qui constitue le corps du document et contient tout ce qui sera écrit dans le document final.\footnote{A l'exception de quelques métadonnées comme l'auteur et le titre qui seront contenues dans le header, mais nous y reviendrons} 
\end{itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
266
L'autre chose que l'on observe sur cet exemple est la structure globale d'un document~\LaTeX, avant l'environnement document vous avez une partie non affichée (\emph{le préambule}) dans laquelle vous allez placer les informations générales sur le document, les configurations, les chargements de bibliothèques et les macrocommandes (cf sec. \ref{sec:preambule}). Et le corps du document est quand à lui entièrement contenu dans l'environnement document (cf sec. \ref{sec:document}).
Aurelien Pascal's avatar
Aurelien Pascal committed
267

268

Aurelien Pascal's avatar
Aurelien Pascal committed
269
\section{Quelques notions sur la syntaxe~\LaTeX}
270

271
La première chose à voir avant de poursuivre est d'apprendre à reconnaître les éléments de syntaxe~\LaTeX, en effet comme les langages de programmation~\LaTeX~possède des caractères et instructions réservées, et une façon particulière d'utiliser des fonctions et autres instructions.
Aurelien Pascal's avatar
Aurelien Pascal committed
272

Aurelien Pascal's avatar
Aurelien Pascal committed
273
\subsection{Les caractères réservés}
Aurelien Pascal's avatar
Aurelien Pascal committed
274 275 276 277 278 279 280 281 282 283 284 285
Le tableau \ref{tab:caracres} présente les caractères réservés\footnote{C'est à dire qu'ils sont interprétés par le compilateur et sont donc inutilisables tels quels dans du texte} en~\LaTeX~ainsi que la façon dont il faudra les écrire si vous voulez tout de même les utiliser dans du texte

\medbreak
\begin{center}
	\renewcommand{\arraystretch}{1.20}
\begin{threeparttable}
\begin{tabular}{|c|c|c|}
	\hline
	Caractère réservé & Utilité en~\LaTeX~ & Comment l'utiliser dans du texte\\
	\hline
	\textbackslash & Introduit toutes les commandes\tnote{a}~~\LaTeX~ & \textbackslash textbackslash \\
	\hline
286
	\{ ~et~ \} & Délimitent les blocs & \textbackslash\{ ~et~ \textbackslash\} \\
Aurelien Pascal's avatar
Aurelien Pascal committed
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305
	\hline
	\% & Permet de commenter une ligne\tnote{b} & \textbackslash\% \\
	\hline
	\# & Fait appel aux paramètres dans les macros\tnote{c} & \textbackslash\# \\
	\hline
	\$ & Ouvre et ferme le mode mathématiques & \textbackslash\$ \\
	\hline
	\textasciicircum & Introduit un exposant en mode mathématique & \textbackslash textasciicircum \\
	\hline
	\_ & Introduit un indice en mode mathématique & \textbackslash\_ \\
	\hline
	\textasciitilde & Espace fine insécable & \textbackslash textasciitilde \\
	\hline
	\& & Délimite les colonnes dans un tableau & \textbackslash\& \\
	\hline
\end{tabular}
\caption{Caractères réservés}
\label{tab:caracres}
\begin{tablenotes}
Aurelien Pascal's avatar
Aurelien Pascal committed
306
	%\small
Enteocline's avatar
Enteocline committed
307
\item[a] Aussi parfois appelées \emph{balises} 
Aurelien Pascal's avatar
Aurelien Pascal committed
308
	\item[b] Dans un langage de programmation un commentaire n'est pas lue par le compilateur et ne sert donc qu'au comfort du programmeur, afin de mieux organiser son document
Aurelien Pascal's avatar
Aurelien Pascal committed
309
	\item[c] Une macro-commande est une fonction~\LaTeX~écrite par l'utilisateur afin de simplifier une tache répétée de nombreuses fois (cf sec. \ref{sec:macro})
Aurelien Pascal's avatar
Aurelien Pascal committed
310 311 312 313 314 315
\end{tablenotes}
\end{threeparttable}
\end{center}
\medbreak

Nous reviendrons à l'utilité de tous ces caractères, pour l'instant il est juste nécessaire de retenir qu'ils ont une signification particulière pour le compilateur et qu'on ne peut donc pas les utiliser dans du texte.\\
Aurelien Pascal's avatar
Aurelien Pascal committed
316
Tous les autres caractères des langues occidentales s'utilisent sans problème particuliers\footnote{Enfin sous condition d'avoir bien configuré l'encodage (cf sec. \ref{sec:preambule})}.
Aurelien Pascal's avatar
Aurelien Pascal committed
317

Aurelien Pascal's avatar
Aurelien Pascal committed
318 319 320 321 322 323 324 325 326 327 328 329 330 331
Voici enfin un petit exemple qui résume l'utilisation des caractères réservés :

\lstset{commentstyle=\color{black}}
\begin{LTXexample}
\begin{document}
	\textbackslash \{ \} 

	\% \# \$ \textasciicircum 

	\_ \textasciitilde \&
\end{document}
\end{LTXexample}
\lstset{commentstyle=\color{red}}

Aurelien Pascal's avatar
Aurelien Pascal committed
332
\subsection{Les commandes et instructions~\LaTeX~}
Aurelien Pascal's avatar
Aurelien Pascal committed
333

Aurelien Pascal's avatar
Aurelien Pascal committed
334
\subsubsection{Les commandes et leurs options}
335
Les commandes \LaTeX{} sont des petites fonctions qui sont interprétées par le compilateur et ont des effets divers. Elles sont une composante indispensble de \LaTeX{} dans la mesure où toute la mise en forme du texte passe par elles. Comme précisé précédemment, les commandes sont toujours introduites par une barre oblique inverse \verb|\|. Leur forme générale est la suivante :
336

Enteocline's avatar
Enteocline committed
337
{\centering\verb|\nomdecommande[options]{argument_1}{argument_2}...{argument_n}|\par}
338 339

Le nombre d'arguments et la présence d'options ou non dépend de la commande. Notons par ailleurs qu'il existe des commandes spéciales qui ne respectent pas ce schéma. Quoi qu'il en soit, les arguments doivent toujours être placés entre accolades \texttt{\{~\}} et les options entre crochets \texttt{[ ]}. Lorsque l'on veut passer plusieurs options à une commande, on utilise une seule paire de crochets dans laquelle les différentes options sont séparées par des virgules.
Aurelien Pascal's avatar
Aurelien Pascal committed
340

Aurelien Pascal's avatar
Aurelien Pascal committed
341
Voici quelques exemples :\\
342
\verb=\LaTeX= est une commande sans options ni argument.\\
343
\verb=\emph{text}= est une commande avec un argument.\\
344
\verb=\DeclareMathOperator{\Tr}{Tr}= est une commande avec deux arguments.\\% (on définit ici une commande pour la trace).\\
345
\verb+\usepackage[colorlinks=true,linkcolor=black,urlcolor=cyan]{hyperref}+ est une commande avec un argument et trois options.
Aurelien Pascal's avatar
Aurelien Pascal committed
346

347
Ces exemples ne sont pas exhaustifs, mais couvrent la majorité des cas que vous pourriez rencontrer. En cas de doute, se référer au manuel idoine.\\
Aurelien Pascal's avatar
Aurelien Pascal committed
348
Les commandes sont beaucoup trop variées pour pouvoir êtres listées ici, elles peuvent s'appliquer sur tout le texte ou juste à leurs arguments, avoir un effet localisé ou modifier l'intégralité du document, travailler seule ou servir à d'autres commandes, ce que nous allons voir maintenant...
Aurelien Pascal's avatar
Aurelien Pascal committed
349

Aurelien Pascal's avatar
Aurelien Pascal committed
350
\subsubsection{Les notions de groupe et de portée}
Enteocline's avatar
Enteocline committed
351
Comme précisé dans le tableau \ref{tab:caracres}, les accolades sont pour \LaTeX{} des caractères spéciaux. On les utilise en fait pour former des \emph{groupes} (aussi appelés \emph{blocs}, il est probable que les deux terminologies seront utilisées dans ce document), qui consistent tout simplement en des blocs de texte. L'intérêt majeur de ces groupes est qu'ils offrent des bornes pour l'application des commandes. En particulier, le fait que les arguments d'une commande doivent être encadrés par des accolades n'est pas dû au hasard : c'est une syntaxe nécessaire pour expliciter à quel bloc de texte la commande doit s'appliquer.
352

Enteocline's avatar
Enteocline committed
353
\LaTeX{} possède deux principaux styles d'application pour les commandes. La plus courante, comme suggéré ci-dessus, consiste à passer la cible de la commande comme un argument de cette dernière. De la sorte, la \emph{portée} d'une telle commande est l'argument qu'on lui donne, le texte autour n'est pas affecté. L'exemple ci-dessous l'illustre avec la commande \verb|\textit| :
Aurelien Pascal's avatar
Aurelien Pascal committed
354 355

\begin{LTXexample}
Enteocline's avatar
Enteocline committed
356
Ce texte est en police normale
357

Enteocline's avatar
Enteocline committed
358
\textit{et celui-ci est en italique}
Aurelien Pascal's avatar
Aurelien Pascal committed
359 360
\end{LTXexample}

Enteocline's avatar
Enteocline committed
361
Mais il existe aussi des commandes qui sont dites à \emph{portée infinie} : elles s'appliquent à tout le texte qui les suit, jusqu'à la fin du groupe. Et si elles sont appelées en-dehors d'un groupe, elles s'appliqueront à tout le texte jusqu'à la fin du document. Par exemple :
Aurelien Pascal's avatar
Aurelien Pascal committed
362 363

\begin{LTXexample}
Enteocline's avatar
Enteocline committed
364 365 366 367
On commence un bloc {\itshape et le
texte est en italique} puis il
redevient normal et devient \bfseries
gras jusqu'à la fin du document
Aurelien Pascal's avatar
Aurelien Pascal committed
368 369
\end{LTXexample}

Enteocline's avatar
Enteocline committed
370 371
Notons qu'une commande peut prendre un paramètre en argument et être ensuite à portée infinie ; c'est le cas par exemple de \verb|\color| qui prend une couleur en argument et colorie le texte qui suit de cette couleur.

Enteocline's avatar
Enteocline committed
372
\subsubsection{Les environnements}
Enteocline's avatar
Enteocline committed
373

Enteocline's avatar
Enteocline committed
374
En plus des commandes usuelles, il existe des commandes un peu particulières dont le champ d'application est parfaitement borné : les \emph{environnements}. Ceux-ci sont délimités par les commandes \verb|\begin{nom_env}| et \verb|\end{nom_env}|, et affectent tout le texte compris entre ces deux commandes. Les environnements sont variés, et ont pour principal intérêt de permettre la mise en page automatique d'élements complexes comme les tableaux, les listes, etc., en définissant parfois ses propres règles\footnote{Rappelons aussi que le corps d'un document \LaTeX{} est un environnement particulier nommé \texttt{document}.}. Ces environnements spéciaux seront traités dans des chapitres ultérieurs. Voici un exemple simple d'utilisation d'un environnement :
Aurelien Pascal's avatar
Aurelien Pascal committed
375 376 377

\begin{LTXexample}
Texte normal
Enteocline's avatar
Enteocline committed
378 379 380
\begin{itshape}
Texte en italique
\end{itshape}
Aurelien Pascal's avatar
Aurelien Pascal committed
381 382 383
Texte normal
\end{LTXexample}

Enteocline's avatar
Enteocline committed
384
Certains environnements peuvent requérir des arguments et des options. Dans un tel cas, la syntaxe est la suivante :
Enteocline's avatar
Enteocline committed
385

Enteocline's avatar
Enteocline committed
386
{\centering\verb|\begin{nom_env}[options]{arg_1}...{arg_n} ... \end{nom_env}|\par}
387

Enteocline's avatar
Enteocline committed
388
Notons enfin qu'en règle générale, les limites d'un environnement définissent également un groupe ; on peut donc utiliser des commandes à portée infinie au sein d'un environnement sans que tout le document en soit affecté. Par ailleurs, certaines commandes peuvent se présenter sous différentes formes parmi les trois précédemment évoquées. Le choix de la méthode à utiliser est généralement laissé à la discrétion de l'auteur, mais retenons néanmoins qu'il est plus propre de recourir à une commande à argument ou à une commande à portée infinie au sein d'un groupe pour modifier de petites portions de texte, et de préférer les environnements pour modifier des paragraphes entiers. Des précisions à ce sujet seront aussi apportées plus loin.
389

Aurelien Pascal's avatar
Aurelien Pascal committed
390

Aurelien Pascal's avatar
Aurelien Pascal committed
391 392
\section{Construire son préambule}
\label{sec:preambule}
Aurelien Pascal's avatar
Aurelien Pascal committed
393

Aurelien Pascal's avatar
Aurelien Pascal committed
394
Le préambule d'un document~\LaTeX~est l'ensemble des instructions situées avant le \textbackslash begin\{document\}. Cela comprend le \emph{documentclass}, les chargement de bibliothèques, les configurations globales et les métadonnées. La construction du préambule est donc une étape cruciale dans l'écriture d'un document~\LaTeX. Cette section vise a vous donner suffisement d'éléments pour comprendre leur construction et vous présentera un préambule d'exemple que vous pourrez utiliser comme base dans vos documents.
Aurelien Pascal's avatar
Aurelien Pascal committed
395

Aurelien Pascal's avatar
Aurelien Pascal committed
396
\subsection{Le documentclass}
Aurelien Pascal's avatar
Aurelien Pascal committed
397

Aurelien Pascal's avatar
Aurelien Pascal committed
398 399
L'instruction \verb=\documentclass[options]{classe}= doit toujours être la première ligne de votre document~\LaTeX, elle précise au compilateur quel type de document vous rédigez.

Aurelien Pascal's avatar
Aurelien Pascal committed
400
\subsubsection{Les classes :} Les principales valeurs possibles pour l'argument de \verb=\documentclass= sont :
Aurelien Pascal's avatar
Aurelien Pascal committed
401
\begin{itemize}
Aurelien Pascal's avatar
Aurelien Pascal committed
402 403 404
	\item \textit{article}, la classe la plus utile pour un document simple (c'est celle utilisée pour celui que vous êtes en train de lire). Abstract disponible.
	\item \textit{book}, en plus d'\textit{article}, utilise une page séparée pour le titre, des marges moins étroites et inclus l'utilisation de chapitres. En revanche il n'inclut pas l'environnement asbtract.
	\item \textit{report}, comme \textit{book} mais le chapitres ne commencent pas en belle page et certaines commandes de \textit{book} ne sont pas disponibles. Abstract disponible.
Aurelien Pascal's avatar
Aurelien Pascal committed
405
	\item \textit{lettre}, permet d'écrire un courier au format français dans les règles de l'art
Aurelien Pascal's avatar
Aurelien Pascal committed
406
	\item \textit{beamer}, utilisée pour faire des présentation de diapositives. Elle sera présentée en partie \ref{sec:beamer}
Aurelien Pascal's avatar
Aurelien Pascal committed
407 408
\end{itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
409
\subsubsection{Les options :} Voici enfin les options les plus utiles de la commande avec les valeurs possibles.\\
Aurelien Pascal's avatar
Aurelien Pascal committed
410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437
Remarquez qu'ici vous n'avez pas à écrire $[option=valeur]$ mais que la valeur seule suffit.
\begin{center}
\renewcommand{\arraystretch}{1.15}
\begin{tabular}{|c|c|}
	\hline
	Option & Valeurs possibles \\
	\hline
	Taille de police par défaut & \textbf{10pt} (defaut), \textbf{11pt} ou \textbf{12pt} \\
	\hline
	Format de papier & \textbf{a4paper} (defaut), \textbf{letterpaper} (defaut pour la classe \textit{lettre}), \\
 & \textbf{a5paper}, \textbf{b5paper}, \textbf{executivepaper}, \textbf{legalpaper}\\
	\hline
	Mode brouillon (ne charge pas & \textbf{draft} (si aucune option n'est précisé le mode brouillon est inactif) \\
	les images et autres inclusions) & \\
	\hline
	Colonnes multiples & \textbf{onecolumn} (defaut) et \textbf{twocolumn} \\
	& (le format classique d'un article scientifique) \\
	\hline
	Différence (ou pas) entre les marges & \textbf{oneside} (defaut pour \textit{article}) \\
	intérieures et extérieures& et \textbf{twoside} (defaut pour \textit{book} et \textit{report})\\
	\hline
	Page réservée pour le titre & \textbf{notitlepage} (defaut pour \textit{article}) \\
	& et \textbf{titlepage} (defaut pour \textit{book} et \textit{report})\\
	\hline
\end{tabular}
\renewcommand{\arraystretch}{1.0}
\end{center}

Aurelien Pascal's avatar
Aurelien Pascal committed
438
Ces valeurs sont les seules supportées nativement par~\LaTeX, si vous voulez une personnalisation plus importante (une autre taille de police par exemple) cela se fera par l'utilisation d'une bibliothèque.
Aurelien Pascal's avatar
Aurelien Pascal committed
439

Aurelien Pascal's avatar
Aurelien Pascal committed
440
\subsection{Le chargement d'extensions}
Aurelien Pascal's avatar
Aurelien Pascal committed
441

Aurelien Pascal's avatar
Aurelien Pascal committed
442 443 444 445

\starttouille
Il faut charger \verb=href= en dernier, il redéfinit pas mal de commandes et peut entrer en conflit facilement avec d'autres paquets.\\ 
BTW, ils disent librairies en français ? (library = bibliothèque)\closetouille\\
Aurelien Pascal's avatar
Aurelien Pascal committed
446
\startaurel Oui bon d'accord mea culpa, c'est corrigé !\closeaurel
447
\startenteo\\Si vous parlez des \emph{packages}, la traduction française adéquate est \emph{extension}\closeenteo
448

Aurelien Pascal's avatar
Aurelien Pascal committed
449 450
En~\LaTeX~les mots \textit{bibliothèques}, \textit{extensions}, \textit{paquets} et \textit{librairies} désignent tous la même chose : un ajout de fonctionnalités non disponibles nativement.\\
En effet selon leur affinité plus ou moins grande avec la langue de Shakespeare les gens utilisent un mot ou un autre. Donc même si la traduction française de \textit{package} est bien \textit{extension} ne soyez pas surpris de rencontrer tous ces mots, y compris dans ce document (qui a été rédigé par plusieurs personnes). \startaurel Ca devrait contenter tout le monde :) \closeaurel
Alexandre Morlet's avatar
Alexandre Morlet committed
451 452
\starttouille \\ Je suis contre encourager l'utilisation du mot "librairie" qui est un faux-ami contre lequel se battent des générations de profs d'anglais ! En vrai, si on veut que ce document soit béton, il faudrait se limiter à la traduction correcte qui est donc \textit{extension} d'après William, même si j'avoue que j'aimerais conserver \textit{paquet} ; après, en y réfléchissant deux secondes, ce sont bien des extensions au programme original que l'on charge.

453
\noindent Par contre, je continuerai d'utiliser l'anglicisme \textit{backslash}, mais je suis ouvert à être convaincu du contraire. Enfin, peut-être.\closetouille
Aurelien Pascal's avatar
Aurelien Pascal committed
454

Aurelien Pascal's avatar
Aurelien Pascal committed
455
La parenthèse étant fermée, passons au concret. Toute la force de~\LaTeX~réside dans sa communauté très active et les innombrables extensions qui en découlent. De nombreuses commandes que nous présentons dans ce document ne sont pas disponibles nativement et requièrent le chargement de l'extension appropriée, soyez donc attentifs aux extensions requises.
Aurelien Pascal's avatar
Aurelien Pascal committed
456 457 458 459

Une extension se charge avec la commande \verb=\usepackage[options]{extension}=. Et pour éviter tout problème de commande non définie l'idéal est de placer tous les chargements d'extensions juste après le \verb=\documentclass=\footnote{Il est nécessaire de charger l'extension \verb=href= en dernière, pour éviter certains conflits}.\\
Je vais maintenant vous présenter les quelques extensions indispensables à la rédaction de tout document en français.

Aurelien Pascal's avatar
Aurelien Pascal committed
460
\subsubsection{L'encodage d'entrée} Pour saisir la notion d'encodage d'entrée il faut bien comprendre une chose : peu importe que vous utilisiez l'éditeur de texte non formaté et le compilateur séparéments ou que vous utilisiez un \emph{IDE}, le fichier source \texttt{.tex} est d'abord sauvegardé et encodé sur votre disque dur avant d'être envoyé au compilateur.\\
Aurelien Pascal's avatar
Aurelien Pascal committed
461 462 463
L'encodage réel du \texttt{.tex}, c'est la façon dont les caractères employés dans votre fichier source seront écrits sous forme d'octet sur votre disque dur, c'est donc une caractéristique de votre éditeur de texte ! Vous devriez pouvoir le sélectionner dans les options.\\
L'encodage d'entrée du compilateur, c'est la façon dont celui-ci va lire les octets présents dans votre fichier source pour les interpréter sous forme de commandes. Vous aurez donc deviné : il faut que cet encodage d'entrée corresponde à l'encodage réel du fichier.\\
Pour charger un encodage d'entrée il faut utiliser la commande \verb=\usepackage[encodage]{inputenc}=\\
Aurelien Pascal's avatar
Aurelien Pascal committed
464
La langue française avec ses fameux accents peut être encodée facilement en \texttt{latin1} et en \texttt{utf8}. Ce dernier est néanmoins à préférer, car si le \texttt{latin1} est un bon encodage pour les langues occidentales, l'\texttt{utf8} a une portée internationale\footnote{C'est l'encodage le plus utilisé sur le web}.
Aurelien Pascal's avatar
Aurelien Pascal committed
465

Aurelien Pascal's avatar
Aurelien Pascal committed
466
\subsubsection{Encodage de sortie} 
Aurelien Pascal's avatar
Aurelien Pascal committed
467

Aurelien Pascal's avatar
Aurelien Pascal committed
468
Cet encodage correspond à celui qui va être utilisé pour écrire le document compilé (un \texttt{.pdf} le plus souvent). Pour écrire en langue française(toujours cette histoire d'accents) il est nécessaire de charger l'encodage \texttt{T1} avec \verb=\usepackage[T1]{fontenc}=.
Aurelien Pascal's avatar
Aurelien Pascal committed
469

Aurelien Pascal's avatar
Aurelien Pascal committed
470
\subsubsection{La typographie française} 
Aurelien Pascal's avatar
Aurelien Pascal committed
471

Aurelien Pascal's avatar
Aurelien Pascal committed
472
Il existe un paquet linguistique appelé \texttt{babel} qui formate le texte de sorte à respecter les règles typographiques de la langue dans laquelle vous écrivez (par exemple en français les fameux "espaces fines insécables" avant et après les ponctuations). Pour l'utiliser il faut charger le paquet avec l'option \texttt{frenchb} : \\\verb=\usepackage[frenchb]{babel}=\footnote{L'option \texttt{francais} est obsolète depuis la version 3.6 de babel}.
Aurelien Pascal's avatar
Aurelien Pascal committed
473

Aurelien Pascal's avatar
Aurelien Pascal committed
474
\subsection{Les métadonnées}
475

476 477 478 479
Le mot \textit{métadonnées} désigne "les données concernant les données", concernant un article ou un livre il s'agit donc de son titre, son auteur et sa date de création.\\
Dans un document~\LaTeX, ces données doivent être précisées dans le préambule à l'aide des commandes \verb=title{}=, \verb=author{}= et \verb=\date{}=\footnote{A savoir que si vous n'utilisez pas \verb=\date= le compilateur prendra par défaut la date de la compilation. Si vous ne souhaitez pas préciser la date sur le document final il faut appeler la commande \verb=\date{}= sans option}.\\
Pour écrire titre auteur et date dans le corps du document, il suffit alors d'utiliser la commande \verb=\maketitle=

Aurelien Pascal's avatar
Aurelien Pascal committed
480
\subsection{Pour résumer : un modèle de préambule pour un article en français}
Alexandre Morlet's avatar
Alexandre Morlet committed
481
\starttouille J'approuve grandement ce genre de résumé avec des solutions clé en main pour ceux qui auraient du mal à se plonger dedans ! \closetouille
482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504
\begin{lstlisting}
%premiere chose a faire : definir le type de document !
\documentclass[a4paper]{article}

%ensuite on charge les extensions pour la langue francaise
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}

%puis on définit les metadonnées
\title{Mon premier document}
\author{Un débutant en~\LaTeX}
\date{}

%et on arrive enfin au corps du document
\begin{document}

\maketitle

Hello world !

\end{document}
\end{lstlisting}
Aurelien Pascal's avatar
Aurelien Pascal committed
505

Aurelien Pascal's avatar
Aurelien Pascal committed
506 507
\section{L'environnement document et sa structure}
\label{sec:document}
Aurelien Pascal's avatar
Aurelien Pascal committed
508

509 510 511
Comme \LaTeX{} réalise la mise en page de vos documents en vous permettant de vous concentrer sur leur contenu, il est nécéssaire de structurer votre texte en le découpant en plusieurs parties. 

\subsection{Les niveaux de titres}
512
\label{subsec:niveautitres}
513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534

Il y a 7 niveaux de titres utilisables pour structurer votre document. Le tableau suivant résume leur utilité et la commande associée.

\begin{tabular}{|c|c|c|c|}
	\hline
	Niveau & Nom & Commande \\
	\hline
	-1 & Partie & \verb=\part{titre de la partie}= \\
	\hline
	0 & Chapitre (uniquement pour \textit{book} et \textit{report}) & \verb=\chapter{titre du chapitre}= \\
	\hline
	1 & Section & \verb=\section{nom de la section}=  \\
	\hline
	2 & Sous-section & \verb=\subsection{nom de la sous-section}= \\
	\hline
	3 & Sous-sous-section & \verb=\subsubsection{nom de la sous-sous-section}= \\
	\hline
	4 & Paragraphe & \verb=\paragraph{Titre du paragraphe}= \\
	\hline
	5 & Sous-paragraphe & \verb=\paragraph{Titre du sous-paragraphe}= \\
	\hline
\end{tabular}
Aurelien Pascal's avatar
Aurelien Pascal committed
535

536
Regardez la table des matières de ce document avec ce tableau sous les yeux, vous devriez facilement comprendre le découpage du document.
537

Aurelien Pascal's avatar
Aurelien Pascal committed
538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553
Voici un exemple simple :
\begin{lstlisting}
\begin{document}
\part{Ma premiere partie}
	\section{Ma premiere section}
		\subsection{Une sous-section}
		...
		\subsection{Une autre}
		...
	\section{Et on change de section}
	...
\part{Ma seconde partie}
...
\end{document}
\end{lstlisting}

Aurelien Pascal's avatar
Aurelien Pascal committed
554
\subsection{La numérotation et les compteurs}
Aurelien Pascal's avatar
Aurelien Pascal committed
555

Aurelien Pascal's avatar
Aurelien Pascal committed
556 557
\label{subsec:numcompteur}

558
Tous ces éléments sauf les paragraphes sont numérotés, pour ne pas numéroter votre découpage il suffit d'utiliser les commandes précédentes avec une \verb=*= : comme par exemple \verb=\section*{nom de la section}=.
559

Enteocline's avatar
Enteocline committed
560
En réalité~\LaTeX{} possède des compteurs internes qui pointent sur certaines structures (sections, environnements,...) et s'incrémentent à chaque nouvel élément de ce type. Ils portent en général le nom de ce sur quoi ils portent et on peut accéder à leur valeur avec par exemple \verb=\arabic= si on veut leur valeur en chiffre arabe, \verb=\Roman= (resp. \verb|\roman|) si on la veut en chiffres romains (resp. chiffres romains en minuscules) et \verb=\Alph= (resp. \verb|\alph|) si on la veut en lettres (resp. en lettres minuscules). Par exemple :
Aurelien Pascal's avatar
Aurelien Pascal committed
561
\begin{LTXexample}
Enteocline's avatar
Enteocline committed
562 563
\arabic{section}, \Roman{section}, \roman{section},
\Alph{section}, \alph{section}
Aurelien Pascal's avatar
Aurelien Pascal committed
564
\end{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
565

566 567 568 569 570 571 572 573 574 575
Ces compteurs sont surtout utilisés pour générer des titres, nous y reviendrons plus tard (voir section \ref{subsec:titresections}), pour l'instant retenez juste qu'ils existent et travaillent en arrière plan.

La convention veut que les environnements et commandes appellées avec une \verb=*= n'incrémentent pas le compteur associé et n'affichent pas de numéro.\\ Mais ce n'est pas une règle générale et certains environnements comme les figures nécéssitent une extension pour avoir accès à cette fonctionnalité.

\subsection{La table des matières}

Une fois votre document structuré,~\LaTeX{} est capable de générer automatiquement une table des matières, il suffit pour cela d'appeller la commande \verb=\tableofcontents=.

Il est possible de modifier le nom de la table des matières en utilisant la commande\\
\verb=\renewcommand{\contentsname}{Mon nouveau titre}=\\
Alexandre Morlet's avatar
Alexandre Morlet committed
576
Mais attention selon les extensions que vous utilisez il faudra placer cette commande dans le préambule ou juste après le \verb=\begin{document}=, essayez les deux solutions une des deux fonctionnera !
577 578 579 580 581

Vous pouvez également modifier la profondeur de la table des matières (ie le niveau maximum des titres indiqués, référez vous pour ceci au \ref{subsec:niveautitres}). Il suffit de placer la commande suivante dans le préambule :\\
\verb=\setcounter{tocdepth}{nouvelle profondeur}=\footnote{Les commandes modifiant la table des matières utilisent souvent l'acronyme \texttt{toc} de \textit{Table Of Content}}\footnote{Vous aurez surement deviné : \texttt{tocdepth} est un compteur, mais celui-ci ne s'incrémente pas en général}\\
Où "nouvelle profondeur" est un entier entre 0 et 5. Dans ce document nous avons utilisé une profondeur de \arabic{tocdepth}.

Aurelien Pascal's avatar
Aurelien Pascal committed
582
\subsection{Le résumé ou abstract}
583

Aurelien Pascal's avatar
Aurelien Pascal committed
584 585 586 587 588 589 590 591 592
Les articles scientifiques commencent en général par un résumé ou \textit{abstract}. On peut réaliser un rendu similaire à l'aide de l'environnement \texttt{abstract} disponible dans les classes \textit{article} et \textit{report} :
\begin{LTXexample}
	\begin{abstract}
	Votre resume...

	...
	\end{abstract}
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
593
\subsection{Les annexes}
594

Aurelien Pascal's avatar
Aurelien Pascal committed
595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633
\LaTeX{} possède nativement des fonctions pour gérer les annexes : il suffit d'utiliser la commande \verb=\appendix= et alors toutes les \verb=\section{}= qui suivront seront considérées comme des annexes (voir exemple ci-dessous).
\begin{lstlisting}
...
\section{Ma derniere section}
...

\appendix
\section{Ma premiere annexe}
...
\section{Ma seconde annexe}
...
\end{lstlisting}


Cette façon de faire est très simple mais offre peu de possibilités de personnalisation\footnote{Ce n'est pas tout à fait vrai, avec~\LaTeX{} vous pouvez presque toujours vous en sortir en manipulant les paramètres des macros internes. Mais il est souvent bien plus facile (et moins risqué) d'utiliser une extension, elles ont étés écrites pour ça}. Je vais donc vous présenter ici quelques fonctionnalités de l'extension \verb=appendix=.

En chargeant l'extension il faut préciser les fonctionnalités désirées en option, les possibilités utiles\footnote{C'est totalement subjectif, l'extension a bien d'autres options qui peuvent peut-être vous intéresser, référez-vous à sa documentation si vous voulez en savoir plus} sont :
\begin{itemize}
	\item \texttt{title} : remplace "A Mon titre d'annexe" par "Appendix A Mon titre d'annexe" dans le texte
	\item \texttt{titletoc} : idem que \texttt{title}, mais dans la table des matières
	\item \texttt{page} : ajoute le titre "Appendices" au début des annexes, dans le document
	\item \texttt{toc} : ajoute le titre "Appendices" au début des annexes dans la table des matières
\end{itemize}
\medbreak
Voici donc la commande a écrire pour charger toutes ces fonctionnalités : \\\verb=\usepackage[title,titletoc,page,toc]{appendix}=\\
On peut ensuite changer le mot "appendix" en "annexes" si on écrit un document en français :\\
\verb=\renewcommand{\appendixtocname}{Annexes}=\\
\verb=\renewcommand{\appendixpagename}{Annexes}=

Et les annexes devront être comprises dans l'environnement \verb=appendices= :
\begin{lstlisting}
\begin{appendices}
	\section{Ma premiere annexe}
	...
	\section{Ma seconde annexe}
	...
\end{appendices}
\end{lstlisting}

634 635


Aurelien Pascal's avatar
Aurelien Pascal committed
636
\section{Formater le texte}
637

Aurelien Pascal's avatar
Aurelien Pascal committed
638 639 640 641 642 643
Maintenant que vous savez écrire un préambule et structurer un document, il est temps de passer à un peu de pratique ! Dans cette section nous verrons comment écrire et formatter un texte.

\subsection{L'art de sauter des lignes ou comment~\LaTeX{} parse votre texte}

Certains ont déjà dû remarquer (que ce soit dans nos exemples ou avec leurs propres essais) quelque chose de très particulier dans la façon dont~\LaTeX{} gère les sauts de ligne. \\En réalité dans les sections précédentes nous avons un peu triché et passé ce phénomène sous silence dans nos exemples, afin d'éviter d'avoir à aborder le sujet trop tôt. \\Mais il est grand temps de vous dévoiler la vérité !

Enteocline's avatar
Enteocline committed
644 645
Lorsque~\LaTeX{} parse\footnote{De l'anglais parse = analyser. Ce mot est souvent utilisé pour décrire l'action d'un programme qui lit un texte pour en interpréter \startaurel (ou interprèter ? là je suis en plein conflit interne, on écrit bien interprète ?) \closeaurel\startenteo{} \og{}interpréter\fg{} est correct !\closeenteo{} des données et des commandes} un texte, il ne considère pas les retours à la ligne que vous pouvez avoir placés ici et là. Ils n'ont tout simplement aucune signification pour lui.\\
\startenteo Ce n'est pas tout à fait vrai : on remarquera que \LaTeX{} place une espace aux emplacements des retours à la ligne, et que cette espace disparaît si la ligne est terminée par un \verb|%|.\closeenteo\\
Aurelien Pascal's avatar
Aurelien Pascal committed
646 647 648 649 650 651 652 653 654
\LaTeX{} lit donc ce qui semble être un paragraphe comme un seule grande ligne.\\
Donc \textit{qu'est ce que~\LaTeX{} interprète comme un retour à la ligne ?}

Eh bien il y a deux situations que~\LaTeX{} comprend comme étant un retour à la ligne :
\begin{itemize}
	\item Une instruction \textit{line break}, parmi au choix \verb=\newline= ou \verb=\\= 
	\item Une ou plusieurs ligne(s) vide(s) (peu importe leur nombre, ce ne sera qu'un seul retour à la ligne)
\end{itemize}
\medbreak
Enteocline's avatar
Enteocline committed
655
Mais \textbf{attention} ! Évitez d'utiliser deux de ces méthodes à la suite, ceci déclenchera un \textit{underfull hbox warning} dans la compilation. Pour augmenter l'espace entre les paragraphes référez vous plutôt au \ref{subsec:espace}. Évitez également de placer un \verb|\newline| ou un \verb|\\| isolé sur une ligne : ceci déclenchera une erreur \textit{there's no line here to end}.
Aurelien Pascal's avatar
Aurelien Pascal committed
656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682

L'exemple suivant résume ces méthodes :

\parskip=0pt
\begin{LTXexample}
Voici un premier texte
sans retour a la ligne
\vskip0.3cm
Voici un texte\\ qui contient un \textit{line break}
\vskip0.3cm
Voici un texte avec

une ligne vide
\end{LTXexample}
\parskip=6pt

Notez bien qu'il n'y a alors aucun espace entre les lignes. Ici nous avons introduit un espace entre les différents exemples avec \verb=\vskip=.


\subsection{Gestion de l'espace}
\label{subsec:espace}

\subsubsection{Gérer l'espace entre les paragraphes manuellement ...}

\subsubsection{... ou automatiser le processus avec parskip}

\subsubsection{Passer à la page suivante}
683

Aurelien Pascal's avatar
Aurelien Pascal committed
684
\subsection{Les tailles de polices}
685

Enteocline's avatar
Enteocline committed
686
\LaTeX{} prévoit une série de dix commandes pour modifier la taille du texte. Ces commandes sont à portée infinie, mais il est alternativement possible de les utiliser comme des environnements. Par exemple, pour avoir un texte en petit, on pourra écrire \verb|\small| au sein d'un groupe ou \verb|\begin{small} ... \end{small}|. Le tableau ci-dessous résume les commandes disponibles.
Enteocline's avatar
Enteocline committed
687 688 689 690 691 692

\begin{center}
\begin{tabular}{|c|c||c|c|}
   \hline
   Commande & Taille associée & Commande & Taille associée \\
   \hline
Enteocline's avatar
Enteocline committed
693
   \hline
Enteocline's avatar
Enteocline committed
694 695 696 697 698 699 700 701 702 703 704 705 706
   \verb|\tiny| & Minuscule & \verb|\large| & Grand \\
   \hline
   \verb|\scriptsize| & Très petit & \verb|\Large| & Plus grand \\
   \hline
   \verb|\footnotesize| & Assez petit & \verb|\LARGE| & Très grand \\
   \hline
   \verb|\small| & Petit & \verb|\huge| & Énorme \\
   \hline
   \verb|\normalsize| & Normal & \verb|\Huge| & Gigantesque \\
   \hline
\end{tabular}
\end{center}

Enteocline's avatar
Enteocline committed
707 708 709 710 711 712 713 714 715 716
L'exemple suivant illustre l'application de ces différentes tailles de police.

\begin{LTXexample}
{\tiny minuscule} {\scriptsize très petit}
{\footnotesize assez petit} {\small petit}
{\normalsize normal}\\ {\large grand}
{\Large plus grand} {\LARGE très grand}\\
{\huge \'enorme} {\Huge gigantesque}
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
717
\subsection{Les altérations : gras, italique et soulignement}
718 719

\startaurel Petite question : y a-t-il une différence subtile entre \verb=\emph= et \verb=\textit= ? \closeaurel
720
\startenteo\\Yep. \verb|\textit| est une commande graphique qui invoque l'italique quoi qu'il arrive, tandis que \verb|\emph| est une fonction d'emphase : elle est prévue pour adapter son comportement selon la situation, un mot en emphase dans un texte romain sera italique et un mot en emphase dans un texte italique sera en romain. De plus, il est possible de redéfinir le comportement de \verb|\emph|, ce que fait par exemple le package \texttt{ulem} par défaut.\closeenteo
721

Enteocline's avatar
Enteocline committed
722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749
\begin{center}
\begin{tabular}{|c|c|c|c|}
   \hline
   Commande & Commande équivalente & Effet & Exemple \\
   \hline 
   \hline
   \verb|\textnormal{...}| & \verb|{\normalfont ...}| & Police par défaut & \textnormal{Exemple} \\
   \hline
   \verb|\emph{...}| & \verb|{\em ...}| & Emphase & \emph{Exemple} \\
   \hline
   \hline
   \verb|\textrm{...}| & \verb|{\rmfamily ...}| & Romain & \textrm{Exemple} \\
   \hline
   \verb|\textsf{...}| & \verb|{\sffamily ...}| & Sans empattement & \textsf{Exemple} \\
   \hline
   \verb|\texttt{...}| & \verb|{\ttfamily ...}| & Chasse fixe & \texttt{Exemple} \\
   \hline
   \verb|\textup{...}| & \verb|{\upshape ...}| & Forme droite & \textup{Exemple} \\
   \hline
   \verb|\textit{...}| & \verb|{\itshape ...}| & Italique & \textit{Exemple} \\
   \hline
   \verb|\textsc{...}| & \verb|{\scshape ...}| & Petites capitales & \textsc{Exemple} \\
   \hline
   \verb|\textbf{...}| & \verb|{\bfseries ...}| & Gras & \textbf{Exemple} \\
   \hline
\end{tabular}
\end{center}

Alexandre Morlet's avatar
Alexandre Morlet committed
750
\starttouille Est-ce qu'on précise l'origine des noms de ces commandes ? (bf=boldface, it=italique,\ldots) ce sont les mêmes commandes pour les maths, avec juste s/text/math, du coup ça serait bien de montrer la logique derrière non ? \closetouille
751

Aurelien Pascal's avatar
Aurelien Pascal committed
752
\subsection{L'alignement du texte}
753

Aurelien Pascal's avatar
Aurelien Pascal committed
754
\subsection{Les polices d'écriture}
Aurelien Pascal's avatar
Aurelien Pascal committed
755

Aurelien Pascal's avatar
Aurelien Pascal committed
756 757
\subsection{Des citations avec quote}

Aurelien Pascal's avatar
Aurelien Pascal committed
758
\section{Les listes}
Aurelien Pascal's avatar
Aurelien Pascal committed
759

Aurelien Pascal's avatar
Aurelien Pascal committed
760
\subsection{Les fonctionnalités natives}
Aurelien Pascal's avatar
Aurelien Pascal committed
761

Aurelien Pascal's avatar
Aurelien Pascal committed
762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778
\LaTeX{} est capable de générer des listes basiques sans extensions, leur syntaxe est très simple : on se place dans l'environnement associé au type de liste (numéroté ou non) que l'on veut et on place la commande \verb=\item= avant chaque objet.\\
Voici un exemple de liste non numérotée, elle se génère avec l'environnement \verb=itemize= :
\begin{LTXexample}
\begin{itemize}
	\item Mon premier truc
	\item Mon second truc
	\item Mon troisième truc
\end{itemize}
\end{LTXexample}
Et voici le même exemple avec une liste numérotée, elles sont gérées par l'environnement \verb=enumerate= :
\begin{LTXexample}
\begin{enumerate}
	\item Mon premier truc
	\item Mon second truc
	\item Mon troisième truc
\end{enumerate}
\end{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
779 780 781

\subsection{Un peu de personnalisation avec enumitem}

Aurelien Pascal's avatar
Aurelien Pascal committed
782 783
Nous allons maintenant voir comment personnaliser un peu nos listes, vos aurez besoin pour celà de charger l'extension \verb=enumitem=.

Aurelien Pascal's avatar
Aurelien Pascal committed
784 785
\subsubsection{Changer la puce d'itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
786 787 788 789 790 791 792 793 794
Il suffit d'utiliser l'option \textit{label} et de lui donner la valeur que vous voulez pour la puce. Tous les caractères usuels sont autorisés (y compris les symboles mathématiques, à condition de les entourer de \$), voici un exemple :
\begin{LTXexample}
\begin{itemize}[label=$\Box$]
	\item Mon premier truc
	\item Mon second truc
	\item Mon troisième truc
\end{itemize}
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
795 796
\subsubsection{Changer la numérotation d'énumérate}

Aurelien Pascal's avatar
Aurelien Pascal committed
797
On peut sur le même principe utiliser l'option \textit{label} pour changer la numérotation, mais il va falloir se servir d'un compteur (si avez oublié ce qu'est un compteur allez vous rafraichir la mémoire à la section \ref{subsec:numcompteur}).\\
Aurelien Pascal's avatar
Oups  
Aurelien Pascal committed
798
L'environnement \verb=enumerate= utilise un compteur appellé \verb=*= dont la valeur s'incrémente à chaque appel de \verb=\item= et dont vous pouvez tout simplement afficher la valeur dans le \textit{label}, voici un exemple :
Aurelien Pascal's avatar
Aurelien Pascal committed
799 800 801 802 803 804 805 806
\begin{LTXexample}
\begin{enumerate}[label=\Roman{*})]
	\item Mon premier truc
	\item Mon second truc
	\item Mon troisième truc
\end{enumerate}
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
807

Aurelien Pascal's avatar
Aurelien Pascal committed
808
\subsubsection{Modifier les marges}
Aurelien Pascal's avatar
Aurelien Pascal committed
809

Aurelien Pascal's avatar
Aurelien Pascal committed
810
\section{Labels et Références}
811

Aurelien Pascal's avatar
Aurelien Pascal committed
812 813 814
\subsection{Les références croisées}
\label{subsec:label}
L'une des puissances de \LaTeX\ est de permettre d'appeler automatiquement des numéros de sections, de figures\ldots\ Ainsi, nous nous trouvons actuellement dans la sous-sous-section~\ref{subsec:label}, sur la page~\pageref{subsec:label}, et les caractères spéciaux sont présentés dans le tableau~\ref{tab:caracres} à la page~\pageref{tab:caracres}.
815 816 817 818 819 820 821 822 823 824 825 826 827 828

Les commandes \verb=\label=, \verb=\ref= et \verb=\pageref= sont très simples à utiliser. L'avantage est que si vous changez la disposition de votre document (insertion d'une nouvelle partie, ajout de sauts de pages, etc.), il vous suffit de compiler à nouveau pour que les références prennent les bonnes valeurs.\\
NB : \emph{Comme souvent, il est nécessaire de compiler deux fois pour que les références s'affichent correctement. Une seule compilation mène à l'affichage de deux points d'interrogation en lieu de la bonne valeur.}

%Voici donc un petit exemple :
% Marche pas, sans doute parce que le mec a désactivé la numérotation pour pas apparaître en tant que listing.

%Bon c'était vicieux, c'est un bug de showexpl qui mange la commande \label, du coup il faut la sauvegarder juste à sa création juste après le begin document et la restaurer dans les LTXexample. Fait comme ci-dessous (preset c'est un ensemble de commandes non affichées par showexpl)

\begin{LTXexample}[preset=\let\label\orilabel] 
\label{ex:label}
Ceci est l'exemple~\ref{ex:label},
page~\pageref{ex:label}.
\end{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
829 830
\starttouille Du coup je sais pas, vu que ça affiche pas "exemple n" en dessous ça casse un peu le truc non ? Je vous laisser choisir ce qui convient le mieux entre dessus et dessous \closetouille\\
\startaurel J'ai essayé de magouiller avec des compteurs mais rien à faire LTXexample a des règles bien à lui... Du coup le second exemple me paraît mieux \closeaurel
831 832 833
Voici comment ces commandes viennent d'être utilisées :
\begin{lstlisting}
\subsubsection{Label et Références}
Aurelien Pascal's avatar
Aurelien Pascal committed
834 835 836
\label{subsec:label}
Nous trouvons actuellement dans la sous-sous-section~\ref{subsec:label},
sur la page~\pageref{subsec:label}.
837 838
\end{lstlisting}

Aurelien Pascal's avatar
Aurelien Pascal committed
839
L'argument de \verb=\label= est le nom de l'étiquette : il peut être n'importe quelle combinaison de chiffres, de lettres et de signes de ponctuation (avec sensibilité à la casse). Pour mieux s'y repérer, il est d'usage de nommer l'étiquette sous la forme \texttt{nature:nom}. Ainsi, on utilisera les préfixes \texttt{sec}, \texttt{fig} ou \texttt{tab} pour différencier une section, une figure ou un tableau. C'est ce même argument qu'on utilise pour \verb=\ref= et \verb=\pageref=. Une remarque importante concernant l'utilisation de \verb=\label= au sein d'une figure : celle-ci se fait après l'utilisation de \verb=\caption= car c'est cette dernière commande qui attribue son numéro à la figure (voir au \ref{subsec:labelfloat}).
840 841 842

Enfin, pour éviter que le numéro de la référence et le texte le précédant ne soient séparés, il ne faut pas oublier d'insérer une espace insécable à l'aide d'une tilde (\textasciitilde).

Aurelien Pascal's avatar
Aurelien Pascal committed
843
\subsection{Des liens internes avec hyperref}
844 845 846

\starttouille Pour aller plus loin : paquets \verb=hyperref= (transformer les références en lien internes), \verb=xr= (références inter-documents), \verb=cleveref= et \verb=varioref=. \closetouille

Aurelien Pascal's avatar
Aurelien Pascal committed
847
\section{Les flottants : images et tableaux}
Aurelien Pascal's avatar
Aurelien Pascal committed
848

Aurelien Pascal's avatar
Aurelien Pascal committed
849
Il y a deux façons d'insérer des images et tableaux dans un document : soit on les place directement sur le document et c'est à l'auteur de gérer le placement et la dimension, soit on les encapsule dans un environnement flottant et \LaTeX{} se chargera de placer votre figure.\\
Aurelien Pascal's avatar
Aurelien Pascal committed
850 851 852
La seconde solution est à préférer d'une manière générale, car elle permet une inclusion plus "naturelle" dans le document et l'ajout de titres et de références.\\
Nous allons néanmoins commencer par la première méthode (plus simple) afin d'introduire les notions de tableau et d'inclusion d'image, puis nous passerons aux environnements flottants.

Aurelien Pascal's avatar
Aurelien Pascal committed
853
\subsection{Inclure des images}
Aurelien Pascal's avatar
Aurelien Pascal committed
854 855 856 857 858 859 860 861 862 863 864

L'inclusion d'images est gérée par le paquet \texttt{graphicx}, qui contient la commande \verb=\includegraphics=.\\
Elle s'utilise de la façon suivante :
\begin{LTXexample}
Voici l'ensemble de Mandelbrot :

\includegraphics[width=5cm]{images/mandelbrot.png}

C'est un bel exemple de fractale !
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
865
\subsubsection{Indiquer l'emplacement de l'image :} L'argument de cette commande est le chemin vers l'image à partir du dossier où le compilateur a été lancé. On voit ici que j'ai chargé l'image \textit{mandelbrot.png} située dans le dossier \textit{images}.\\
Aurelien Pascal's avatar
Aurelien Pascal committed
866
Une remarque importante est que les chemins sont nommés avec la convention UNIX\footnote{C'est à dire avec des slash "/" et non comme sur Windows avec des antislash "\textbackslash". L'explorateur Windows est d'ailleurs bien le seul système qui utilise la convention antislash...}.
867

Aurelien Pascal's avatar
Aurelien Pascal committed
868 869
Si toutes vos images son rangées dans la même dossier, il est possible d'utiliser \verb=\graphicspath{}= afin de racourcir les appels, on peut alors obtenir le résultat précédent en plaçant \verb=\graphicspath{images}= au début du document, et réaliser l'inclusion avec \verb+\includegraphics[width=5cm]{mandelbrot.png}+.

Aurelien Pascal's avatar
Aurelien Pascal committed
870
\subsubsection{Les options :} Voici les options les plus utiles de la commande \verb=\includegraphics=
Aurelien Pascal's avatar
Aurelien Pascal committed
871 872 873
\begin{itemize}
	\item \textit{height} et \textit{width} : hauteur et largeur de l'image. Si une seule de ces dimensions est précisée, le ratio largeur/hauteur est conservé
	\item \textit{angle} : angle de rotation (en degrés et dans le sens trigonométrique) de l'image
Aurelien Pascal's avatar
Aurelien Pascal committed
874
	\item \textit{draft} : (booléen de valeur true/false), empêche l'importation de l'image mais réserve la place nécessaire sur le rendu. Utilisée pour augmenter la vitesse de compilation d'un document de taille importante qui comporte beaucoup d'images.\footnote{Pas très pratique pour désactiver les images au cas par cas, elle peut se révéler utile si vous avez précisé l'option \textit{draft} dans le \verb=\documentclass=}
Aurelien Pascal's avatar
Aurelien Pascal committed
875 876
\end{itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
877
\subsubsection{Les formats d'images pris en compte :} \verb=\includegraphics= permet de charger des images au format PNG ou JPEG\footnote{Concernant ces deux formats, JPEG est en général à privilégier pour une photographie (meilleure compression), tandis que PNG convient mieux à tout le reste}, ou bien encore des fichiers PDF\footnote{Ça c'est si vous voulez charger une image vectorielle. Oui parce que \verb=\includegraphics= pour du texte c'est un peu triste}. \\
Enteocline's avatar
Enteocline committed
878
\startenteo Il pourrait être pertinent alors de parler un peu de l'extension \verb|pdfpages| pour insérer des pages entières d'un autre fichier PDF.\closeenteo\\
879
\startaurel Oui pourquoi pas. Perso je connais pas ce paquet donc si tu te sens d'en parler fonce :) \closeaurel\\
Enteocline's avatar
Enteocline committed
880
Notez qu'il est également possible de charger des images au format BMP, mais à la condition non négociable\footnote{Difficile en effet de négocier avec votre compilateur} de préciser leur largeur ET leur hauteur.
Aurelien Pascal's avatar
Aurelien Pascal committed
881

Aurelien Pascal's avatar
Aurelien Pascal committed
882
\subsection{Les tableaux}
Aurelien Pascal's avatar
Aurelien Pascal committed
883
\label{subsec:tableaux}
Aurelien Pascal's avatar
Aurelien Pascal committed
884

Aurelien Pascal's avatar
Aurelien Pascal committed
885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900
Les fonctionnalités de base des tableaux sont gérées nativement (ie sans extension) par l'environnement \texttt{tabular}.

Considérons un premier exemple :
\begin{LTXexample}
\begin{tabular}{ccc}
a & b & c \\
d & e & f \\
\end{tabular}
\end{LTXexample}
On voit ici que les lignes et les colonnes sont traitées d'une manière très différente :
\begin{itemize}
	\item Les lignes sont écrites en plein texte d'une façon intuitive et sont séparées par des retours à la ligne "\verb=\\=".
	\item Les colonnes sont prédéfinies par l'argument passé à l'environnement \texttt{tabular} (ici "\texttt{ccc}")\\ et sont séparées au sein d'une ligne par le caractère réservé "\verb=&="
\end{itemize}
On constate de plus que par défaut un tableau ne contient aucun séparateur de cases visible.

Aurelien Pascal's avatar
Aurelien Pascal committed
901
\subsubsection{Définir les colonnes :} L'argument de \texttt{tabular} prend un caractère parmi au choix \texttt{l,r,c} ou \texttt{p\{largeur\}} pour chaque colonne, ainsi que des tubes "\texttt{|}" pour indiquer un séparateur entre deux colonnes. \\Le nombre de caractères définit donc le nombre de colonnes tandis que le choix du caractère définit l'alignement du texte dans la colonne :
Aurelien Pascal's avatar
Aurelien Pascal committed
902 903 904 905 906 907 908 909 910 911 912 913 914 915 916
\begin{itemize}
	\item \texttt{l} génère une colonne avec du texte aligné à gauche
	\item \texttt{r} génère une colonne avec du texte aligné à droite
	\item \texttt{c} génère une colonne avec du texte centré
	\item \texttt{p\{largeur\}} génère une colonne de la largeur indiquée avec du texte justifié\footnote{Un texte justifié cherche a remplir au maximum les espaces vides par un positionnement intelligent tout en restant lisible. Il est très utilisé dans les journaux par exemple.} 
\end{itemize}
\medbreak
Voici un exemple d'application :
\begin{LTXexample}[width=0.54\textwidth]
\begin{tabular}{|r||c|p{2.1cm}|l}
bonjour & ceci & est un & tableau  \\
il & sera un exemple & pour & vous\\
\end{tabular}
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
917
\subsubsection{Des séparateurs pour les lignes :} Ils sont crées avec l'instruction \verb=\hline= :
Aurelien Pascal's avatar
Aurelien Pascal committed
918 919 920 921 922 923 924 925 926 927 928 929 930
\begin{LTXexample}
\begin{tabular}{|c|c|cc|}
\hline
1 & 2 & 3 & 4 \\
a & b & c & d \\
\hline
g & h & i & j \\
\hline
\hline
k & l & m & n \\
\end{tabular}
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
931
Vous savez maintenant comment créer un tableau simple, sans fusion de cases. Pour des fonctionnalités plus avancées référez-vous à la section \ref{sec:supertab}.
Aurelien Pascal's avatar
Aurelien Pascal committed
932

Aurelien Pascal's avatar
Aurelien Pascal committed
933
\subsection{Les environnements flottants : figure et table}
Aurelien Pascal's avatar
Aurelien Pascal committed
934

Aurelien Pascal's avatar
Titre  
Aurelien Pascal committed
935 936
\label{subsec:flottants}

Aurelien Pascal's avatar
Aurelien Pascal committed
937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967
Nous allons maintenant voir comment encapsuler les images et les tableaux dans des environnements flottants.

\subsubsection{Mettre en place les environnements}
Pour les images ceci se fait avec l'environnement figure :
\begin{lstlisting}
\begin{figure}[parametre de placement]
	\includegraphics[options]{image}
\end{figure}
\end{lstlisting}
Et pour les tableaux avec l'environnement table :
\begin{lstlisting}
\begin{table}[parametre de placement]
	\begin{tabular}{colonnes}
		données du tableau ...
	\end{tabular}
\end{table}
\end{lstlisting}
Il peut paraître étrange d'avoir deux environnements qui font sensiblement la même chose, mais comme nous le verrons un peu plus loin ceci permet d'avoir une gestion des titres, des compteurs et des listes séparés.

\subsubsection{Les paramètres de placement}
L'option "paramètre de placement" citée précédement peut prendre les valeurs suivantes :
\begin{itemize}
	\item \texttt{h} placer le flottant \textit{ici} (\texttt{h} = \textit{here})
	\item \texttt{t} placer le flottant en \textit{haut} (\texttt{t} = \textit{top}) de la page
	\item \texttt{b} placer le flottant en \textit{bas} (\texttt{b} = \textit{bottom}) de la page
	\item \texttt{p} placer le flottant sur une page isolée qui ne contiendra que des flottants
	\item \texttt{!} le placement que vous sélectionnez sera prioritaire sur le choix d'optimisation du compilateur~\LaTeX{}\footnote{Si~\LaTeX{} refuse de placer votre figure où vous voulez, essayez ça}
\end{itemize}
\medbreak
Vous pouvez combiner ces options comme par exemple \verb=[ht!]=.

Aurelien Pascal's avatar
Aurelien Pascal committed
968
\subsection{Des titres avec caption}
Aurelien Pascal's avatar
Aurelien Pascal committed
969

Aurelien Pascal's avatar
Aurelien Pascal committed
970 971 972 973 974 975 976 977 978 979
Pour donner un titre à un élément flottant il suffit d'utiliser \verb=\caption{mon titre}=.\\
Si cette commande est placée après le contenu du flottant (\verb=includegraphics= ou \verb=tabular=) alors le titre sera sous l'image/tableau, tandis que si elle est placée avant le titre sera au dessus.

Le titre sera alors affiché sous le format : \underline{\textbf{Figure (ou Table) "numéro" : Mon titre}}

Vous pouvez personnaliser l'écriture du préfixe "figure" ou "table" en utilisant les commandes suivantes dans le préambule : \\
\verb=\addto\captionsfrench{\def\figurename{Graphique}}=\\ 
\verb=\addto\captionsfrench{\def\tablename{Tableau}}=

Si jamais vous ne souhaitez pas numéroter une figure, il sera nécessaire d'utiliser la commande \verb=\caption*{}= de l'extension \texttt{caption},~\LaTeX{} n'ayant pas de fonctionnalité native permettant d'enlever cette numérotation\footnote{Enfin pas exactement on peut quand même y arriver, mais il faut être très motivé car cela nécessite d'aller manipuler les paramètres des compteurs}.
Aurelien Pascal's avatar
Aurelien Pascal committed