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

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

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

%paquets linguistiques
\usepackage[frenchb]{babel}

%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
48
49
\usetikzlibrary{trees}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.markings}
Aurelien Pascal's avatar
Aurelien Pascal committed
50

51
52
53
%commentaires
\usepackage{comment}

54
55
%caractères spéciaux et autres joyeusetés
\usepackage[safe]{tipa}
56

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
57
58
59
60
%----------------------------------------------------------------
%-----MACRO INSTRUCTIONS ET COMMANDES----------------------------

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

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

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

Aurelien Pascal's avatar
Aurelien Pascal committed
71
72
%pgf et tikz
\pgfplotsset{compat=newest}
Aurelien Pascal's avatar
Aurelien Pascal committed
73
\tikzexternalize[prefix=tikz/,shell escape=--enable-write18]
Aurelien Pascal's avatar
Aurelien Pascal committed
74

75
%configuration de listings
76
77
78
\lstdefinestyle{myLatexStyle}{
	language=[LaTeX]TeX,
    	basicstyle=\small\ttfamily,
79
    	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
80
    	numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt,
81
82
83
84
85
    	commentstyle=\color{red},
    	showstringspaces=false,
    	keywordstyle=\color{blue}\bfseries,
    	morekeywords={align,begin},
    	pos=l
86
}
87
88
89
90
91
92
93
\lstset{
	inputencoding=utf8/latin1,
	style=mylatexstyle,
	width=0.40\linewidth,
	extendedchars=true,
	literate={é}{{\'e}}1
}
94

95
96
97
98
99
100
101
102
% 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
103
104
105
%ajout des chemins d'input
\makeatletter
\providecommand*{\input@path}{}
106
\def\input@path{{./tikz-src/}}
Aurelien Pascal's avatar
Aurelien Pascal committed
107
108
\makeatother

109
110
111
112
113
114
% 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}
115
\ifenteo\else \let\startenteo\iffalse \let\closeenteo\fi \fi
116

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

124
125
126
127
\newif\iftouille\touilletrue
\def\starttouille{\iftouille\begingroup\color{blue}}
\def\closetouille{ -- Tatouille \endgroup\fi}
\iftouille\else \let\starttouille\iffalse \let\closetouille\fi \fi
128

Alexandre Morlet's avatar
Alexandre Morlet committed
129
130


131
132
133
134
135
136
137
138
139
140
141
142
  %****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
143
144
  %l'option preset est un emsemble de commandes qui ne seront pas affichées dans le rendu,

145
  %L'orthotypograph[LIST] vaincra !
146
  % +1
147
  % +1
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
148
149
150
151
152
153
154
155
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------

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

156
\title{\LaTeX~expliqué à mon petit phytem}
157
158
159
\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
160
161
\date{}

162
163
164
\lhead{ENS Cachan}
\rhead{2016}

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
165
166
167
168
%-----DOCUMENT-----

\begin{document}

169
170
\let\orilabel\label %sauvegarde la commande label dans orilabel pour la restaurer dans showexpl

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
171
\maketitle
Aurelien Pascal's avatar
Aurelien Pascal committed
172

173
174
175
\thispagestyle{fancy}

\begin{abstract}
176
177
178
    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
179
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.
180
181
182
    
    %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'.

183
    % J'ai ouvert le gestionnaire de paquets de MiKTeX : 3023 entrées ^^
184
185
186
187
188
189
190

	%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

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

    % 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 ...
195
196
197
    
    %Et dans tous les cas il n' y a pas d'espace entre paragraphes dans le résumé

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

200
201
    % 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.

202
203
204
205
\end{abstract}

\tableofcontents

Aurelien Pascal's avatar
Aurelien Pascal committed
206
207
\newpage

Aurelien Pascal's avatar
Aurelien Pascal committed
208
\part{Introduction}
209

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

Aurelien Pascal's avatar
Aurelien Pascal committed
212
\section{\LaTeX~?}
213

Aurelien Pascal's avatar
Aurelien Pascal committed
214
215
216
217
218
219
\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
220
221
222
223
224
225
\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
226
\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
227
\starttouille Peut-être aussi expliquer pourquoi ça a été inventé, ou encore pourquoi cela reste plus intéressant que Word/LibreOffice Writer.\closetouille
228

229
230
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=).

231
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=}
232

Aurelien Pascal's avatar
Aurelien Pascal committed
233
\section{La compilation}
234

235
\pagebreak
236

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

Enteocline's avatar
Enteocline committed
239
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=.\\
240
241
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
242
\section{Structure d'un fichier source : les bases}
243

Aurelien Pascal's avatar
Aurelien Pascal committed
244
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' :
245
246

\begin{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
247
\documentclass[11pt,a4paper]{article}
248
249
250
251
252
253
254

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

\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
255
256
257
258
259
260
261
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
262
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
263

264

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

267
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
268

Aurelien Pascal's avatar
Aurelien Pascal committed
269
\subsection{Les caractères réservés}
Aurelien Pascal's avatar
Aurelien Pascal committed
270
271
272
273
274
275
276
277
278
279
280
281
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
282
	\{ ~et~ \} & Délimitent les blocs & \textbackslash\{ ~et~ \textbackslash\} \\
Aurelien Pascal's avatar
Aurelien Pascal committed
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
	\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
302
	%\small
Enteocline's avatar
Enteocline committed
303
\item[a] Aussi parfois appelées \emph{balises} 
Aurelien Pascal's avatar
Aurelien Pascal committed
304
	\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
305
	\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
306
307
308
309
310
311
\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
312
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
313

Aurelien Pascal's avatar
Aurelien Pascal committed
314
315
316
317
318
319
320
321
322
323
324
325
326
327
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
328
\subsection{Les commandes et instructions~\LaTeX~}
Aurelien Pascal's avatar
Aurelien Pascal committed
329

Aurelien Pascal's avatar
Aurelien Pascal committed
330
\subsubsection{Les commandes et leurs options}
331
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 :
332

Enteocline's avatar
Enteocline committed
333
{\centering\verb|\nomdecommande[options]{argument_1}{argument_2}...{argument_n}|\par}
334
335

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
336

Aurelien Pascal's avatar
Aurelien Pascal committed
337
Voici quelques exemples :\\
338
\verb=\LaTeX= est une commande sans options ni argument.\\
339
\verb=\emph{text}= est une commande avec un argument.\\
340
\verb=\DeclareMathOperator{\Tr}{Tr}= est une commande avec deux arguments.\\% (on définit ici une commande pour la trace).\\
341
\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
342

343
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
344
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
345

Aurelien Pascal's avatar
Aurelien Pascal committed
346
\subsubsection{Les notions de groupe et de portée}
Enteocline's avatar
Enteocline committed
347
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.
348

Enteocline's avatar
Enteocline committed
349
\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
350
351

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

Enteocline's avatar
Enteocline committed
354
\textit{et celui-ci est en italique}
Aurelien Pascal's avatar
Aurelien Pascal committed
355
356
\end{LTXexample}

Enteocline's avatar
Enteocline committed
357
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
358
359

\begin{LTXexample}
Enteocline's avatar
Enteocline committed
360
361
362
363
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
364
365
\end{LTXexample}

Enteocline's avatar
Enteocline committed
366
367
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
368
\subsubsection{Les environnements}
Enteocline's avatar
Enteocline committed
369

Enteocline's avatar
Enteocline committed
370
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
371
372
373

\begin{LTXexample}
Texte normal
Enteocline's avatar
Enteocline committed
374
375
376
\begin{itshape}
Texte en italique
\end{itshape}
Aurelien Pascal's avatar
Aurelien Pascal committed
377
378
379
Texte normal
\end{LTXexample}

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

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

Enteocline's avatar
Enteocline committed
384
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.
385

Aurelien Pascal's avatar
Aurelien Pascal committed
386

Aurelien Pascal's avatar
Aurelien Pascal committed
387
388
\section{Construire son préambule}
\label{sec:preambule}
Aurelien Pascal's avatar
Aurelien Pascal committed
389

Aurelien Pascal's avatar
Aurelien Pascal committed
390
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
391

Aurelien Pascal's avatar
Aurelien Pascal committed
392
\subsection{Le documentclass}
Aurelien Pascal's avatar
Aurelien Pascal committed
393

Aurelien Pascal's avatar
Aurelien Pascal committed
394
395
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
396
\subsubsection{Les classes :} Les principales valeurs possibles pour l'argument de \verb=\documentclass= sont :
Aurelien Pascal's avatar
Aurelien Pascal committed
397
\begin{itemize}
Aurelien Pascal's avatar
Aurelien Pascal committed
398
399
400
	\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
401
	\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
402
	\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
403
404
\end{itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
405
\subsubsection{Les options :} Voici enfin les options les plus utiles de la commande avec les valeurs possibles.\\
Aurelien Pascal's avatar
Aurelien Pascal committed
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
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
434
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
435

Aurelien Pascal's avatar
Aurelien Pascal committed
436
\subsection{Le chargement d'extensions}
Aurelien Pascal's avatar
Aurelien Pascal committed
437

Aurelien Pascal's avatar
Aurelien Pascal committed
438
439
440
441

\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
442
\startaurel Oui bon d'accord mea culpa, c'est corrigé !\closeaurel
443
\startenteo\\Si vous parlez des \emph{packages}, la traduction française adéquate est \emph{extension}\closeenteo
444

Aurelien Pascal's avatar
Aurelien Pascal committed
445
446
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
447
448
\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.

449
\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
450

Aurelien Pascal's avatar
Aurelien Pascal committed
451
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
452
453
454
455

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
456
\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
457
458
459
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
460
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
461

Aurelien Pascal's avatar
Aurelien Pascal committed
462
\subsubsection{Encodage de sortie} 
Aurelien Pascal's avatar
Aurelien Pascal committed
463

Aurelien Pascal's avatar
Aurelien Pascal committed
464
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
465

Aurelien Pascal's avatar
Aurelien Pascal committed
466
\subsubsection{La typographie française} 
Aurelien Pascal's avatar
Aurelien Pascal committed
467

Aurelien Pascal's avatar
Aurelien Pascal committed
468
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
469

Aurelien Pascal's avatar
Aurelien Pascal committed
470
\subsection{Les métadonnées}
471

472
473
474
475
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
476
\subsection{Pour résumer : un modèle de préambule pour un article en français}
Alexandre Morlet's avatar
Alexandre Morlet committed
477
\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
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
\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
501

Aurelien Pascal's avatar
Aurelien Pascal committed
502
503
\section{L'environnement document et sa structure}
\label{sec:document}
Aurelien Pascal's avatar
Aurelien Pascal committed
504

505
506
507
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}
508
\label{subsec:niveautitres}
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530

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
531

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

Aurelien Pascal's avatar
Aurelien Pascal committed
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
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
550
\subsection{La numérotation et les compteurs}
Aurelien Pascal's avatar
Aurelien Pascal committed
551

Aurelien Pascal's avatar
Aurelien Pascal committed
552
553
\label{subsec:numcompteur}

554
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}=.
555

Enteocline's avatar
Enteocline committed
556
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
557
\begin{LTXexample}
Enteocline's avatar
Enteocline committed
558
559
\arabic{section}, \Roman{section}, \roman{section},
\Alph{section}, \alph{section}
Aurelien Pascal's avatar
Aurelien Pascal committed
560
\end{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
561

562
563
564
565
566
567
568
569
570
571
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
572
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 !
573
574
575
576
577

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
578
\subsection{Le résumé ou abstract}
579

Aurelien Pascal's avatar
Aurelien Pascal committed
580
581
582
583
584
585
586
587
588
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
589
\subsection{Les annexes}
590

Aurelien Pascal's avatar
Aurelien Pascal committed
591
592
593
594
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
\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}

630
631


Aurelien Pascal's avatar
Aurelien Pascal committed
632
\section{Formater le texte}
633

Aurelien Pascal's avatar
Aurelien Pascal committed
634
635
636
637
638
639
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
640
641
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
642
643
644
645
646
647
648
649
650
\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
651
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
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678

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}
679

Aurelien Pascal's avatar
Aurelien Pascal committed
680
\subsection{Les tailles de polices}
681

Enteocline's avatar
Enteocline committed
682
\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
683
684
685
686
687
688

\begin{center}
\begin{tabular}{|c|c||c|c|}
   \hline
   Commande & Taille associée & Commande & Taille associée \\
   \hline
Enteocline's avatar
Enteocline committed
689
   \hline
Enteocline's avatar
Enteocline committed
690
691
692
693
694
695
696
697
698
699
700
701
702
   \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
703
704
705
706
707
708
709
710
711
712
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
713
\subsection{Les altérations : gras, italique et soulignement}
714
715

\startaurel Petite question : y a-t-il une différence subtile entre \verb=\emph= et \verb=\textit= ? \closeaurel
716
\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
717

Enteocline's avatar
Enteocline committed
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
\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
746
\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
747

Aurelien Pascal's avatar
Aurelien Pascal committed
748
\subsection{L'alignement du texte}
749

Aurelien Pascal's avatar
Aurelien Pascal committed
750
\subsection{Les polices d'écriture}
Aurelien Pascal's avatar
Aurelien Pascal committed
751

Aurelien Pascal's avatar
Aurelien Pascal committed
752
753
\subsection{Des citations avec quote}

Aurelien Pascal's avatar
Aurelien Pascal committed
754
\section{Les listes}
Aurelien Pascal's avatar
Aurelien Pascal committed
755

Aurelien Pascal's avatar
Aurelien Pascal committed
756
\subsection{Les fonctionnalités natives}
Aurelien Pascal's avatar
Aurelien Pascal committed
757

Aurelien Pascal's avatar
Aurelien Pascal committed
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
\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
775
776
777

\subsection{Un peu de personnalisation avec enumitem}

Aurelien Pascal's avatar
Aurelien Pascal committed
778
779
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
780
781
\subsubsection{Changer la puce d'itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
782
783
784
785
786
787
788
789
790
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
791
792
\subsubsection{Changer la numérotation d'énumérate}

Aurelien Pascal's avatar
Aurelien Pascal committed
793
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
794
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
795
796
797
798
799
800
801
802
\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
803

Aurelien Pascal's avatar
Aurelien Pascal committed
804
\subsubsection{Modifier les marges}
Aurelien Pascal's avatar
Aurelien Pascal committed
805

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

Aurelien Pascal's avatar
Aurelien Pascal committed
808
809
810
\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}.
811
812
813
814
815
816
817
818
819
820
821
822
823
824

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
825
826
\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
827
828
829
Voici comment ces commandes viennent d'être utilisées :
\begin{lstlisting}
\subsubsection{Label et Références}
Aurelien Pascal's avatar
Aurelien Pascal committed
830
831
832
\label{subsec:label}
Nous trouvons actuellement dans la sous-sous-section~\ref{subsec:label},
sur la page~\pageref{subsec:label}.
833
834
\end{lstlisting}

Aurelien Pascal's avatar
Aurelien Pascal committed
835
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}).
836
837
838

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
839
\subsection{Des liens internes avec hyperref}
840
841
842

\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
843
\section{Les flottants : images et tableaux}
Aurelien Pascal's avatar
Aurelien Pascal committed
844

Aurelien Pascal's avatar
Aurelien Pascal committed
845
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
846
847
848
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
849
\subsection{Inclure des images}
Aurelien Pascal's avatar
Aurelien Pascal committed
850
851
852
853
854
855
856
857
858
859
860

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
861
\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
862
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...}.
863

Aurelien Pascal's avatar
Aurelien Pascal committed
864
865
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
866
\subsubsection{Les options :} Voici les options les plus utiles de la commande \verb=\includegraphics=
Aurelien Pascal's avatar
Aurelien Pascal committed
867
868
869
\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
870
	\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
871
872
\end{itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
873
\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
874
\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\\
875
\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
876
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
877

Aurelien Pascal's avatar
Aurelien Pascal committed
878
\subsection{Les tableaux}
Aurelien Pascal's avatar
Aurelien Pascal committed
879
\label{subsec:tableaux}
Aurelien Pascal's avatar
Aurelien Pascal committed
880

Aurelien Pascal's avatar
Aurelien Pascal committed
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
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
897
\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
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
\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
913
\subsubsection{Des séparateurs pour les lignes :} Ils sont crées avec l'instruction \verb=\hline= :
Aurelien Pascal's avatar
Aurelien Pascal committed
914
915
916
917
918
919
920
921
922
923
924
925
926
\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
927
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
928

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

Aurelien Pascal's avatar
Titre    
Aurelien Pascal committed
931
932
\label{subsec:flottants}

Aurelien Pascal's avatar
Aurelien Pascal committed
933
934
935
936
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
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
964
\subsection{Des titres avec caption}
Aurelien Pascal's avatar
Aurelien Pascal committed
965

Aurelien Pascal's avatar
Aurelien Pascal committed
966
967
968
969
970
971
972
973
974
975
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
976

Aurelien Pascal's avatar
Aurelien Pascal committed
977
\subsection{Utiliser des labels et lister vos flottants}
978

Aurelien Pascal's avatar
Aurelien Pascal committed
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
\label{subsec:labelfloat}

\subsubsection{Faire référence à vos figure}
Pour savoir comment utiliser \verb=\label{}= et \verb=\ref{}= référez-vous au \ref{subsec:label}.\\
Les références s'utilisent naturellement dans les figures, à la différence près qu'il est impératif de déclarer le \verb=\label= APRÈS le \verb=\caption=. Dans le cas contraire votre figure ne pourra pas être référencée.

\subsubsection{Les listes de flottants}

Deux commandes servent à générer respectivement une \textit{Table des Figures} et une \textit{Liste des tableaux} : \\
\verb=\listoffigures=\\
\verb=\listoftables=.

Il est également possible de personnaliser le nom de ces tables avec les commandes suivantes dans le préambule :\\
\verb=\addto\captionsfrench{\renewcommand{\listfigurename}{Nouveau nom}}=\\
\verb=\addto\captionsfrench{\renewcommand{\listtablename}{Nouveau nom}}=

\subsection{Un petit exemple pour résumer le tout}

\begin{LTXexample}[preset=\let\label\orilabel,width=0.45\textwidth]
\begin{figure}[h!]
\includegraphics[width=5cm]{images/mandelbrot.png}
\caption{L'ensemble de Mandelbrot}
\label{fig:mandelbrot}
\end{figure}

La figure \ref{fig:mandelbrot} presente 
un exemple de fractale.
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
1008
\section{Ecrire des mathématiques}
1009

1010
Si vous ne deviez adopter \LaTeX\ que pour une chose, c'est la clareté avec laquelle il permet d'écrire des mathématiques (ce qui arrive même aux physiciens). Certes, Word et autres comparses possèdent des outils destinés à insérer des formules, mais il peut parfois s'avérer fastidieux d'arriver au résultat désiré. Ici, caractères grecs, fractions à plusieurs étages, sommes et intégrales, flèches et autres caractères ne posent aucun problème.
1011

Aurelien Pascal's avatar
Aurelien Pascal committed
1012
    \subsection{Paquets nécessaires}
1013

Aurelien Pascal's avatar
Aurelien Pascal committed
1014
    \LaTeX\ supporte nativement une grande partie de ce dont on peut avoir besoin pour une utilisation quotidienne. Cependant, vous êtes invité à charger le paquet \texttt{amsmath}, qui ajoute nombre de fonctionnalités basiques et avancées (ces dernières étant traitées dans la partie~\ref{sec:advmath}).
1015

1016

Aurelien Pascal's avatar
Aurelien Pascal committed
1017
    \subsection{Mode mathématiques, environnement equation}
1018
1019
    Vous êtes déjà familier avec la notion d'environnement, et bien il existe également un environnement pour les mathématiques. Plusieurs, à vrai dire.\\
    Le premier permet d'écrire des mathématiques au sein d'une phrase, sans coupure, de la façon suivante :
1020
1021
1022
\begin{LTXexample}
Le discriminant s'écrit $\Delta = b^2 - 4ac$
\end{LTXexample}
1023

Alexandre Morlet's avatar
Alexandre Morlet committed
1024
1025
    On peut encadrer les formules avec une paire de signes dollar (\verb=$=) ou avec \verb=\(= et \verb=\)=, ces deux possibilités étant des alias pour l'environnement \texttt{math}, qu'il serait une perte de temps à déclarer complètement pour des expressions parfois très courtes.

1026
1027
    Le second va insérer un retour à la ligne et centrer le texte :
\begin{LTXexample}
1028
La fonction d'onde étant une amplitude de probabilité,
1029
elle doit respecter la condition :
Alexandre Morlet's avatar
Alexandre Morlet committed
1030
\[ \int |\Psi(\vec{r},t)|^2 d\vec{r} = 1 \]
1031
\end{LTXexample}
Alexandre Morlet's avatar
Alexandre Morlet committed
1032
1033
1034
    Ceci correspond à l'environnement \texttt{displaymath}, que l'on peut également obtenir à l'aide des délimiteurs \verb=\[= et \verb=\]=.\\
    D'autres sources vous auront peut-être invité à utiliser une paire de \verb=$$=. Bien que ceci fonctionne toujours par rétro-compatibilité, son utilisation est à proscrire (mauvaise gestion de l'espacement dans le document, incompatibilité avec les options d'affichages mathématiques définies par les classes).

1035
1036
1037
1038
    Enfin, il est possible d'obtenir des équations numérotées (comme dans des polycopiés de cours ou des articles scientifiques), avec lesquelles l'étiquetage grâce à \verb=\label= est possible, en utilisant l'environnement \texttt{equation}.
\begin{LTXexample}
Dispersion parabolique :
\begin{equation}
1039
    E(\vec{k})=E_0+\frac{\hbar^2 k^2}{2m^*}
1040
1041
1042
\end{equation}
\end{LTXexample}

1043
C'est à vous de choisir l'environnement dont vous avez besoin lorsque vous voulez insérer des mathématiques. Notez bien que les caractères grecs ou encore la mise en exposant\footnote{En mode texte, \verb=\up{exposant}= fonctionne avec l'option \texttt{french}(ou \texttt{frenchb}) du paquet \texttt{babel}.} ne fonctionnent qu'en mode mathématiques.
1044

Aurelien Pascal's avatar
Aurelien Pascal committed
1045
    \subsection{Exposant, indice, fractions, racine}
Alexandre Morlet's avatar
Alexandre Morlet committed
1046
    La mise en exposant donc, tout comme la mise en indice, ne fonctionne qu'en mode mathématique. La première, comme dans certains langages de programmation, s'obtient par l'utilisation de l'accent circonflexe \verb=^{exposant}=, la seconde avec le tiret bas \verb=_{indice}=. Si l'argument n'est composé que d'un seul caractère, on peut omettre les accolades. On peut affecter à la fois un indice et un exposant à un même
1047
    caractère, il suffit de les faire suivre :
1048
    \startenteo{}\\ Pas trouvé. En revanche, l'anglicisme \emph{underscore} peut être remplacé par \og{}tiret bas\fg{}\closeenteo \startaurel Apparement le symbole seul sans être un accent a été inventé par l'ASCII, il n'a aucune autre utilité que de servir de codage informatique et c'est pour ça qu'il a pas de nom. D'ailleurs ça se voit sur le nom pas du tout pénible choisi par latex : "\verb=\textasciicircum="...\closeaurel
1049
\begin{LTXexample}
Alexandre Morlet's avatar
Alexandre Morlet committed
1050
\[ x_0^2 = 10^{-2} \]
1051
\end{LTXexample}
1052

1053
1054
    Pour écrire des fractions, il existe la commande \verb=\frac{numérateur}{dénominateur}=. On peut bien entendu empiler les fractions.
\begin{LTXexample}
Alexandre Morlet's avatar
Alexandre Morlet committed
1055
1056
\[ \frac{ \frac{1}{x} }{ 1 + \frac{1}{x} } =
\frac{1}{1+x} \]
1057
\end{LTXexample}
1058

1059
Enfin, la racine carrée s'écrit \verb=\sqrt{radicande}=, et peut devenir une racine n-ième très simplement, en passant l'ordre en option de la façon suivante : \verb=\sqrt[n]{radicande}=. Le résultat est alors le suivant : $\sqrt[4]{16}=2$.
1060

Aurelien Pascal's avatar
Aurelien Pascal committed
1061
    \subsection{Fonctions de base (cos, sin\ldots), texte, gestion des espaces}
1062
    Si vous avez déjà essayé d'écrire du texte en mode mathématiques, vous avez forcément rencontré les deux problèmes suivants : les caractères sont tous en italiques et les espaces disparaissent. C'est parce que \LaTeX\ considère que vous écrivez des variables.
1063

1064
1065
    Pour les opérateurs de base, il suffit de les faire précéder d'un backslash : $\cos(x)$ est \verb=$\cos(x)$=. Certains se comportent naturellement comme on a l'habitude de les écrire :
\begin{LTXexample}
Alexandre Morlet's avatar
Alexandre Morlet committed
1066
\[ \lim_{k \rightarrow 0} \]
1067
1068
1069
1070
\end{LTXexample}

    Les fonctions prédéfinies sont les suivantes (en ordre alphabétique) : arccos, arcsin, arctan, arg, cos, cosh, cot, coth, scs, deg, det, dim, exp, gcd, hom, inf, ker, lg, lim, liminf, limsup, ln, log, max, min, Pr, sec, sin, sinh, sup, tan, tanh.

Aurelien Pascal's avatar
Aurelien Pascal committed
1071
    Toutes les fonctions usuelles ne sont pas définies, il manque par exemple la trace. Le paquet \texttt{amsmath} permet de corriger facilement ceci : il suffit alors d'utiliser la commande \texttt{DeclareMathOperator} (dans l'en-tête du document). La syntaxe est très simple : \verb=\DeclareMathOperator{\Tr}{Tr}= par exemple. \verb=\Tr= fonctionnera alors comme \verb=\cos= ou \verb=\sin=, affichant `Tr' dans le style attendu\footnote{Pour des déclarations plus poussées, se référer à la section~\ref{sec:macro}.}.
1072

1073
    Et pour insérer du texte ? Le même paquet \texttt{amsmath} apporte \verb=\text{}=, au nom parlant. Il existe nativament \verb=\mbox=, mais \verb=\text= reste la solution la plus simple (il s'occupe notamment d'ajuster tout seul la taille, pratique lorsque le texte est en indice ou en exposant). Puisque \LaTeX\ mange les espaces en mode mathématique, il ne faut pas oublier de les intégrer à l'argument de \texttt{text}.
1074
\begin{LTXexample}
Alexandre Morlet's avatar
Alexandre Morlet committed
1075
\[ a \text{ et } b \]
1076
\end{LTXexample}
1077
Cependant, les espaces peuvent poser problème même lorsque l'on n'utilise pas de texte : c'est par exemple le cas dans l'exemple de la limite utilisé précédemment, où la flèche vient buter contre le zéro. On peut cependant arranger cela. Il existe divers espaces\footnote{Qui fonctionnent aussi en environnement texte, qu'on se le dise.} (et \texttt{amsmath} en rajoute), mais on peut retenir \verb=\ = pour une espace classique, \verb=\,= pour une espace fine et \verb=\!= pour une espace fine négative (qui va donc rapprocher les deux éléments). Dans notre exemple, on peut
1078
1079
ajouter une espace fine ; un cas récurrent est avec les symboles "pour tout" et "il existe".
\begin{LTXexample}
Alexandre Morlet's avatar
Alexandre Morlet committed
1080
1081
1082
\[\lim_{k \rightarrow \, 0}\]
\[\forall x \in S, \exists y\]
\[\forall \, x \in S, \exists \, y\]
1083
1084
\end{LTXexample}

Aurelien Pascal's avatar
Aurelien Pascal committed
1085
    \subsection{Ecrire des sommes, des intégrales, des matrices}
1086
1087
    Tout comme pour \verb=\lim=, les sommes, produits et intégrales utilisent les commandes d'indice et d'exposant pour indiquer les bornes. Ci-dessous se trouve la liste des principaux opérateurs et des exemples : 
\begin{LTXexample}
Alexandre Morlet's avatar
Alexandre Morlet committed
1088
1089
1090
\[\sum, \prod, \int, \oint, \iint, \iiint\]
\[\sum_n \frac{1}{n}, \int_0^{\pi} \sin^3(\theta) d\theta
, \oint_\mathcal{C} dl\]
1091
1092
1093
1094
\end{LTXexample}

On remarquera l'utilisation de \verb=\mathcal{}=, qui permet d'obtenir une écriture différente ($\mathcal{A}, \mathcal{B}, \mathcal{C}$). Le paquet \texttt{amsfonts} apporte lui \verb=\mathbb{}=, avec lequel on peut se permettre d'écrire les ensembles ($\mathbb{R}, \mathbb{Q}$).

1095
    Pour les matrices, il y a deux solutions : les tableaux natifs à \LaTeX\ ou les solutions clés en main de \texttt{amsmath}.\\
1096