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

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

%encodages d'entrée et sortie, police vectorielle
\usepackage[utf8]{inputenc}
Enteocline's avatar
Enteocline committed
7
\usepackage[LGR,T1]{fontenc}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
8
\usepackage{lmodern}
9
\usepackage{microtype}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
10
11

%paquets linguistiques
Alexandre Morlet's avatar
Alexandre Morlet committed
12
\usepackage[frenchb]{babel}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
13
14
15
16

%aspect général des pages
\usepackage{geometry}
\usepackage{fancyhdr}
17
\usepackage{fancyvrb} % pour \verb dans les \footnote
18
\usepackage[bottom]{footmisc} % notes toujours en bas de la page 
19
\usepackage{parskip} % permet les espaces entre paragraphes sans vskip (peut se personaliser)
Aurelien Pascal's avatar
Aurelien Pascal committed
20
\usepackage{pdflscape} %orientation paysage
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
21

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

29
30
%inclure du code source
\usepackage{listings}
31
\usepackage{listingsutf8}
32
33
\usepackage{showexpl}
\usepackage[dvipsnames]{xcolor}
34

Aurelien Pascal's avatar
Aurelien Pascal committed
35
%figures, titres et autres environnements spéciaux
Aurelien Pascal's avatar
Aurelien Pascal committed
36
\usepackage{graphicx}
Aurelien Pascal's avatar
Aurelien Pascal committed
37
%\usepackage{caption} %n'a pas l'air utile finalement
Aurelien Pascal's avatar
Aurelien Pascal committed
38
\usepackage{threeparttable}
39
\usepackage{multirow}
Aurelien Pascal's avatar
Aurelien Pascal committed
40
\usepackage{enumitem}
Aurelien Pascal's avatar
subfig    
Aurelien Pascal committed
41
\usepackage[lofdepth,lotdepth]{subfig}
Aurelien Pascal's avatar
wrapfig    
Aurelien Pascal committed
42
\usepackage{wrapfig}
Aurelien Pascal's avatar
Aurelien Pascal committed
43

44
%liens internes et externes, annexes
45
\usepackage[colorlinks=true,linkcolor=black,urlcolor=cyan,citecolor=blue]{hyperref}
Aurelien Pascal's avatar
Aurelien Pascal committed
46
\usepackage[titletoc,title,toc,page]{appendix} %personnalise les titres des annexes
47

48
49
50
%commentaires
\usepackage{comment}

51
52
%caractères spéciaux et autres joyeusetés
\usepackage[safe]{tipa}
Aurelien Pascal's avatar
wrapfig    
Aurelien Pascal committed
53
\usepackage{lipsum}
Aurelien Pascal's avatar
Aurelien Pascal committed
54
\usepackage{coffee2}
Alexandre Morlet's avatar
Alexandre Morlet committed
55
56
\usepackage{epigraph} % épigraphes
\usepackage{csquotes} % citations
Aurelien Pascal's avatar
Aurelien Pascal committed
57

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

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

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

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

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

92
93
94
% autorise l'utilisation de \verb dans \footnote
\AtBeginDocument{\VerbatimFootnotes}

Enteocline's avatar
Enteocline committed
95
96
97
% Du grec !
\newcommand\textgreek[1]{\begingroup\fontencoding{LGR}\selectfont#1\endgroup}

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

103
104
105
106
107
108
% 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}
109
\ifenteo\else \let\startenteo\iffalse \let\closeenteo\fi \fi
110

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

118
119
120
121
\newif\iftouille\touilletrue
\def\starttouille{\iftouille\begingroup\color{blue}}
\def\closetouille{ -- Tatouille \endgroup\fi}
\iftouille\else \let\starttouille\iffalse \let\closetouille\fi \fi
122

Alexandre Morlet's avatar
Alexandre Morlet committed
123
124


125
126
127
128
129
130
131
132
133
134
135
136
  %****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
137
138
  %l'option preset est un emsemble de commandes qui ne seront pas affichées dans le rendu,

139
  %L'orthotypograph[LIST] vaincra !
140
  % +1
141
  % +1
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
142
143
144
145
146
147
148
149
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------
%-----------------------------------------------------------------

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

150
151
\title{\LaTeX{} : Le guide du scientifique débutant}
\author{William Babonnaud\footnote{\href{mailto:William Babonnaud <william.babonnaud@crans.org>}{\ttfamily william.babonnaud@crans.org}},
Alexandre Morlet's avatar
Alexandre Morlet committed
152
        Alexandre Morlet\footnote{\href{mailto:Alexandre Morlet <alexandre.morlet@crans.org>}{\ttfamily alexandre.morlet@crans.org}}\ \ \& 
153
        Aurélien Pascal\footnote{\href{mailto:Aurélien Pascal <aurelien.pascal@crans.org>}{\ttfamily aurelien.pascal@crans.org}}}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
154
155
\date{}

156
157
\lhead{ENS Cachan}
\rhead{2016}
Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
158
159
160
%-----DOCUMENT-----

\begin{document}
161
\pagenumbering{gobble}
162
163
\let\orilabel\label %sauvegarde la commande label dans orilabel pour la restaurer dans showexpl

Aurelien Pascal's avatar
Init  
Aurelien Pascal committed
164
\maketitle
Aurelien Pascal's avatar
Aurelien Pascal committed
165

Aurelien Pascal's avatar
Aurelien Pascal committed
166
167
\coffee{1}

168
169
\thispagestyle{fancy}

170

171
    % J'ai ouvert le gestionnaire de paquets de MiKTeX : 3023 entrées ^^
172
173
174
175
176
177
178

	%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

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

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

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

188
189
    % 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.

190
191
192
193
194
\newpage
% Pour rendre plus agréable la présentation à l'impression, il faudrait en fait faire deux newpage ici. Faisons ça.
\null\newpage

\pagenumbering{Roman}
195
196
197
198

\hrulefill
\medskip
\begin{abstract}
199
    Souvent présenté comme incontournable pour rédiger rapports et articles, \LaTeX{} n'est cependant pas enseigné comme peut l'être la programmation.\\
200
201
    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. 

202
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.
203
204
205
206
207
208
209
    
    %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'.
\end{abstract}
\hrulefill
\vspace{\fill} % Cette commande est magique

\section*{Version}
210
La dernière version de ce document ainsi que ses fichiers sources sont disponibles sur le Gitlab du projet, à l'adresse \url{adresse.adresse}. Les (sous-) sections actuellement vides sont en cours de rédaction.
211
212
213
214
215
216
217
218

Cette plateforme vous permet également de suggérer des modifications et corrections.

\section*{Licence}
\includegraphics[scale=0.3]{images/by-nc-sa} % On remarquera que je fais ce que j'ai dit qu'il fallait pas faire dans la partie includegraphics :-) Quoique l'image de base fait 12ko, pas 12Mo.

Ce document est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.\\
\url{http://creativecommons.org/licenses/by-nc-sa/4.0/}
219

Aurelien Pascal's avatar
Aurelien Pascal committed
220
221
\newpage

222
223
224
225
\tableofcontents

\newpage
\pagenumbering{arabic}
Aurelien Pascal's avatar
Aurelien Pascal committed
226
\part{Introduction}
227

228
Une petite introduction à ce qu'est \LaTeX{} et à comment il s'utilise.
Aurelien Pascal's avatar
Aurelien Pascal committed
229

Alexandre Morlet's avatar
Alexandre Morlet committed
230
\section{\LaTeX{} ?}
231

Alexandre Morlet's avatar
Alexandre Morlet committed
232
L'histoire commence aux alentours de 1977 auprès d'un certain Donald Ervin Knuth, professeur de mathématiques et d'informatique à l'université de Stanford. Dix ans auparavant, Knuth avait commencé la rédaction d'un ouvrage de référence pour la programmation intitulé \emph{The Art of Computer Programming}, et la première édition de son ouvrage avait été imprimée \og{}à l'ancienne\fg{}, avec une presse et des lettres de plomb ; le rendu avait alors beaucoup plus à son auteur. Cependant, les techniques d'impression étaient en pleine évolution et à l'époque qui nous intéresse, cette méthode d'impression n'était plus disponible pour la seconde édition du livre de Knuth. Elle avait été remplacée par la méthode de photocomposition, dont les résultats, surtout pour les formules mathématiques, irritèrent fortement l'auteur lorsqu'il reçut les premières épreuves de cette réédition.
Aurelien Pascal's avatar
Aurelien Pascal committed
233

Enteocline's avatar
Enteocline committed
234
Knuth s'intéressa alors de plus près à la typographie numérique, et décida de concevoir un programme capable de générer des mises en page propres et agréables, en particulier pour les formules mathématiques, et permettant d'obtenir le même rendu quel que soit l'ordinateur sur lequel on travaillait. Ainsi naquit le système de composition \TeX, dont le nom est issu de la première syllabe du mot grec \textgreek{t'eqnh} qui signifie art et science. Notez d'ailleurs que la prononciation de ce nom est précisément définie : dans son livre \emph{The \TeX book}, Knuth explique que l'on doit prononcer le `X' de \TeX{} comme un \textgreek{q} en grec, lequel se prononce [x] (comme le `j' en espagnol ou le `ch' en écossais (\textit{loch}) ou en allemand (\textit{ach})). Cependant, dans tous ses mots d'origine grecque le français a changé la prononciation originelle du \textgreek{q} en [k], aussi la bonne manière de prononcer le nom de ce système en français est [t\textipa{E}k]\footnote{Évitez donc en particulier l'horrible [t\textipa{E}ks] (comme dans \textit{texan}), qui ne vous attirera que railleries !}.
Enteocline's avatar
Enteocline committed
235

Enteocline's avatar
Enteocline committed
236
Dans sa forme pure, \TeX{} est un système d'utilisation difficile, extrêmement bas niveau et donc ésotérique pour le profane. Afin de faciliter son utilisation, un autre chercheur du nom de Leslie Lamport écrivit en 1983 une collection de macro-commandes autour de \TeX{} destinée à le rendre plus simple ; ce qui donna naissance à un système nommé \LaTeX{}\footnote{Abréviation de \textit{La}mport \textit{\TeX}, et qui se prononce donc [lat\textipa{E}k] en France et [lat\textipa{E}x] ailleurs ; mais surtout pas [lat\textipa{E}ks] !...}. Contrairement à des logiciels dits \og{}WYSIWYG\footnote{\emph{What You See Is What You Get}.}\fg{}, tels que \texttt{Word} ou \texttt{LibreOffice}, \TeX{} et \LaTeX{} séparent le contenu et le rendu, reposant sur des commandes (ou \emph{macros}) et nécessitant une étape de compilation. L'avantage apporté par cette approche par rapport aux autres est qu'elle permet à l'utilisateur de se concentrer sur le contenu de son document, les soucis de mise en page étant largement gérés par le système lui-même, tout en lui laissant suffisament de flexibilité pour pouvoir obtenir exactement ce qu'il veut.
Enteocline's avatar
Enteocline committed
237

Enteocline's avatar
Enteocline committed
238
Même s'il paraît \emph{a priori} plus compliqué à utiliser que les logiciels classiques, \LaTeX{} est très robuste : le rendu (via le format PDF) sera toujours le même (entre systèmes et entre générations), le compilateur est un logiciel libre et multi-plateforme, et un simple éditeur de texte suffit pour modifier la source d'un document (un fichier \verb|.tex|). À travers les commandes intégrées ou l'utilisation d'extensions, il est possible de produire tout type de document (article, mémoire, lettre) -- celui que vous avez devant les yeux compris\footnote{Il est même possible de faire un journal en \LaTeX{}, la preuve avec \emph{La Sauce}, le journal du campus de l'ENS Cachan.}. Par ailleurs, \LaTeX{} s'est peu à peu imposé comme un système incontournable dans le monde de la recherche scientifique, et la maîtrise de ce programme est une compétence très appréciée dans de nombreux domaines.
Enteocline's avatar
Enteocline committed
239

Aurelien Pascal's avatar
subfig    
Aurelien Pascal committed
240
\startenteo Ai-je l'autorisation de remanier toute l'introduction pour introduire les idées dans le bon ordre ? \startaurel oui bien sur ! \closeaurel Dans le chapitre~1 du \emph{\TeX book}, Knuth explique d'où vient le nom de son logiciel et comment le prononcer. Comme le 'x' de \TeX{} est censé être un chi grec, il faut le prononcer comme tel, et il écrit :
Enteocline's avatar
Enteocline committed
241
242
243
\begin{quote}
It’s the ‘ch’ sound in Scottish words like \emph{loch} or German words like \emph{ach}; it’s a Spanish ‘j’ and a Russian ‘kh’.
\end{quote}
Aurelien Pascal's avatar
subfig    
Aurelien Pascal committed
244
\startaurel du coup en français le son le plus proche ce serait "laterre" ? très bizarre en effet, sur ce coup agissons en chauvins et gardons latek \verb|^^| \closeaurel
Enteocline's avatar
Enteocline committed
245
La subtilité est que les spécialistes s'accordent à dire que la lettre \textgreek{q} en grec ancien se prononcerait [x], comme en grec moderne. Cependant, le français a assimilé cette lettre au son [k], qu'on retrouve dans tous les mots de cette origine, il est donc naturel que la prononciation de \TeX{} pour nous utilise ce son [k] plutôt que [x]. Mais de ce fait, nous sommes plus éloignés de la prononciation correcte selon Knuth que nos amis allemands. (Enfin bon, l'essentiel, c'est que personne ne prononce [ks], c'est ce qu'il faut éviter.)\closeenteo
246

Alexandre Morlet's avatar
Alexandre Morlet committed
247
\starttouille Il s'avère qu'on a le livre de Lamport au labo, et lui parle de `teck', car il dit que l'usage prend le pas sur ce qu'on voudrait, et il dit que du coup on pourrait dire "lah-teck" ou "lay-teck". J'essaierai de trouver le temps de citer le passage complet \closetouille
Enteocline's avatar
Enteocline committed
248

249
250
\startenteo Note que je défends la prononciation qu'on utilise usuellement en français, je ne suis pas à ce point extrémiste !\verb|^^| J'ai lu en effet que Lamport ne prenait pas trop parti à ce sujet ; cependant, au vu de l'usage dans certains pays, il est bon de savoir que les deux usages existent. Ma nouvelle version de l'introduction devrait remettre de l'ordre dans tout ceci, donnez-moi vos avis !\closeenteo

Alexandre Morlet's avatar
Alexandre Morlet committed
251
252
253
254
255
256
\starttouille Certes, et non rien à dire :-) Sinon, le lien suivant a la citation de Lamport (aussi ci-dessous) et une vidéo d'une conférence où Knuth parle de la prononciation de \TeX{} à un moment (vers 15:30 dans la vidéo, il dit dans le cadre d'une nouvelle version "blague" de \TeX{} "je suis le mouvement, personne à part les Grecs ne prononçaient correctement le nom de toute façon")\\
\url{http://tex.stackexchange.com/questions/17502/what-is-the-correct-pronunciation-of-tex-and-latex}
\begin{quote}One of the hardest things about LaTeX is deciding how to pronounce it.This is also one of the few things I'm not going to tell you about LaTeX, since pronunciation is best determined by usage, not fiat. TeX is usually pronounced teck, making lah-teck, and lay-teck the logical choices; but language is not always logical, so lay-tecks is also possible.
\end{quote}
\closetouille

Enteocline's avatar
Enteocline committed
257
\vspace{\baselineskip}
Aurelien Pascal's avatar
Aurelien Pascal committed
258

Enteocline's avatar
Enteocline committed
259
\emph{Terminons cette introduction en signalant une dernière particularité à connaître quant aux noms} \TeX{} \emph{et} \LaTeX{} \emph{: lorsque l'on ne dispose pas des commandes} \verb|\TeX| \emph{et} \verb|\LaTeX| \emph{pour taper automatiquement les noms de ces systèmes, on écrit} \texttt{TeX} \emph{et} \texttt{LaTeX}\emph{, en prenant bien soin de mettre les lettres `a' et `e' en minuscule et le reste en majuscule. Ce petit détail typographique permet de distinguer ces systèmes d'autres logiciels avec des noms similaires, et aussi d'éviter de confondre ces noms avec le pseudonyme d'un humoriste, une matière séveuse naturelle ou un polymère servant à la fabrication de pneus et de combinaisons moulantes.}
Enteocline's avatar
Enteocline committed
260

Enteocline's avatar
Enteocline committed
261
\startenteo Je mettrais bien le paragraphe qui suit dans la section compilation.\closeenteo
262

263
264
265
266
267
268
269
\startaurel J'ai un peu remanié tout ça, je me suis dit qu'une section spécifique à l'installation de la bête serait pas mal \closeaurel


\section{Installer ce qu'il faut}

Parce que \LaTeX{} fait appel à des commandes, il faut compiler le fichier source pour obtenir le fichier de sortie. Deux possibilités se présentent alors à vous : 
\begin{itemize}
Alexandre Morlet's avatar
Alexandre Morlet committed
270
271
	\item utiliser un \emph{IDE}\footnote{Pour \textit{Integrated Development Environment}, ce qui en français donne \og environnement de développement intégré \fg{}.} tel que \verb=TeXmaker= ou \verb=TeXworks=, qui combine éditeur de texte et interface de compilation. Ils ont l'avantage d'automatiser la compilation, en gérant à votre place les appels au compilateur	;
	\item travailler de façon plus artisanale en utilisant votre éditeur de texte favori et en donnant les instructions de compilation dans un terminal (directement ou en utilisant l'outil \verb|latexmk|, voir au \ref{subsec:latexmk}).
272
273
274
275
\end{itemize}

Si vous n'êtes pas familier avec les environnements UNIX et/ou que les aspects techniques ne vous intéressent pas, nous vous conseillons d'utiliser un \emph{IDE}.

Aurelien Pascal's avatar
Aurelien Pascal committed
276
Il existe également des interfaces en ligne, qui compilent automatiquement : \texttt{Overleaf} et \texttt{ShareLaTeX}. Bien qu'elles permettent de collaborer rapidement en ligne et sans installation, elles montrent rapidement leurs limites. Utiliser \texttt{Git} (logiciel de versionnement \starttouille néologisme ? \closetouille \startaurel je pense que le terme correct est \textit{logiciel de gestion de versions} \closeaurel), en parallèle de son installation locale, résout ce problème.
277

278
279
Peu importe la solution que vous choisissez, il faut installer séparément le compilateur. \verb|TeXlive| est la distribution la plus répandue, disponible pour tous les systèmes d'exploitation ; sous Windows, il existe également \verb=MikTex=.

Alexandre Morlet's avatar
Alexandre Morlet committed
280
Installer la totalité de la distribution est assez coûteux en mémoire (supérieur à 1Go), mais c'est le meilleur moyen d'être sur de ne manquer de rien. Vous pouvez aussi télécharger juste la distribution de base et ajouter les extensions au fur et à mesure de vos besoins.  \verb|MikTeX| propose également un système d'installation des extensions à la volée\footnote{C'est-à-dire au moment de la compilation, si vous en avez besoin.}, mais ce système nécessite une connexion internet.
281

Aurelien Pascal's avatar
Aurelien Pascal committed
282
\section{La compilation}
283

284
Si vous utilisez un \textit{IDE} et que le côté technique ne vous intéresse pas vous pouvez vous passer de lire cette section.
Aurelien Pascal's avatar
Aurelien Pascal committed
285
286
287

Mais si vous désirez compiler votre document à la main (sans \textit{IDE}), comprendre comment utiliser des options de compilation et des fichiers externes (\texttt{.bib} par exemple), ou que vous êtes tout simplement curieux de voir comment se déroule la compilation, alors vous êtes au bon endroit ! 

288
289
290
291
292
Il y a deux moyens de compiler un document \LaTeX{}, avec chacun leur compilateur associé :
\begin{itemize}
	\item la méthode \og historique \fg{} qui utilise le compilateur \verb|latex| pour créer un document \texttt{.dvi}, que l'on peut ensuite convertir en \texttt{.pdf}
	\item la compilation directe en \texttt{.pdf}, qui utilise le compilateur \verb|pdflatex|
\end{itemize}
Aurelien Pascal's avatar
Aurelien Pascal committed
293

294
295
\startaurel En cherchant les différence entre les deux voies de compilation je suis tombé sur une extension qui ne fonctionne qu'avec pdflatex : \verb|microtype|, qui fait de la microtypographie, elle adapte le texte pour éviter quasiment toutes les césures de fin de ligne et fait de la micro-gestion des ponctuations, histoire de pousser l'OTL à l'extrême \verb|^^| On devrait carrément faire une section OTL en fait ;) \closeaurel

Alexandre Morlet's avatar
Alexandre Morlet committed
296
La méthode historique semble néanmoins tomber peu à peu en désuétude, elle était très utilisée dans les débuts du langage mais maintenant \verb|pdflatex| est beaucoup plus performant et produit des documents de meilleure qualité. La seule raison pour laquelle vous pouvez donc être amené à utiliser la compilation en \texttt{.dvi} est si vous êtes un adepte de l'extension \verb|pstricks|\footnote{Qui permet de faire du dessin vectoriel, comme Ti$k$Z.}.
297
298
299

Pour ces raisons nous ne parlerons dans ce document que de \verb|pdflatex|, et c'est désormais ce compilateur qui sera sous-entendu à chaque fois que sera mentionné l'opération de compilation.\\
Si vous utilisez un \textit{IDE} assurez-vous donc que c'est bien \verb|pdflatex| qui est utilisé (mais c'est normalement le cas par défaut si vous créez un \texttt{.pdf})
300

Aurelien Pascal's avatar
Aurelien Pascal committed
301
302


303
304
\subsection{Le compilateur et ses options}

Aurelien Pascal's avatar
Aurelien Pascal committed
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
L'appel au compilateur se fait en terminal UNIX (ou en ligne de commande Windows), avec la syntaxe habituelle \verb|pdflatex -option1 -option2 monfichier.tex|

Les options les plus utiles sont résumées dans le tableau suivant. Et pour plus de détails comme toujours lisez le manuel.

\begin{tabular}{|c|c|c|}
	\hline
	Option & Utilité & Commentaire\\
	\hline
	\hline
	\verb|-interaction=nonstopmode| & compile d'une traite sans & les \textit{IDE} utilisent cette \\
	& demander l'avis utilisateur & option par défaut \\
	\hline
	 & crée un fichier de synchronisation & il faut que votre éditeur  \\
	\verb|-synctex=1|& source-sortie, afin de relier ce & supporte cet effet, les \textit{IDE}\\
	& qui est vu dans l'éditeur &  le font sans problème, les éditeurs\\
	& au document \texttt{.pdf} & comme \textit{vim} ont besoin d'un \textit{plugin} \\
	\hline
322
	\verb|-verbose| & pour plus de détails dans la sortie & $\emptyset$ \\
Aurelien Pascal's avatar
Aurelien Pascal committed
323
324
325
326
327
328
329
330
	\hline
	\verb|-output-directory=dossier| & place le résultat de la & pour plus de propreté\\
	& compilation dans ce dossier & dans vos dossiers\\
	\hline
	 & autorise \verb=pdflatex= a envoyer & utile pour l'externalisation \\
	\verb|-shell-escape|& des commandes au terminal & des graphes Ti$k$Z \\
	& (écriture sur la sortie $18$) & \\
	\hline
331
332
333
	\verb|-draftmode| & compile sans inclure les images & accélère la compilation \\
	& et sans créer de \texttt{.pdf} &  \\
	\hline
Aurelien Pascal's avatar
Aurelien Pascal committed
334
\end{tabular}
335

336
337
338
339
340
341
342
343
344
345
346
347
348
349
\subsection{Le déroulement de la compilation : incidents et fichiers auxiliaires}

\label{subsec:erreurs}

Lors de la compilation, des erreurs peuvent survenir si vous avez fait une erreur (syntaxique ou logique)\footnote{une bonne syntaxe \LaTeX{} est assez exigeante, ne vous étonnez pas si vous avez beaucoup d'erreurs, une grande partie d'entre elles sont surement innofensives}. 

Si vous n'êtes pas en \verb|nonstopmode| la compilation se mettre en pause et on vous proposera de résoudre cette erreur avant de continuer.\\
Si vous êtes en \verb|nonstopmode|, regardez attentivement votre document de sortie car une erreur a pu avoir lieu sans que vous ne l'ayez vue.

Les erreurs se classent en deux catégories : 
\begin{itemize}
	\item les \textit{avertissements} sont pour la plupart innofensifs, et vous pouvez les ignorer dans un premier temps et y revenir s'ils vous posent problème
	\item les \textit{erreurs fatales} vont causer un arrêt soudain de la compilation et ne pas produire de document
\end{itemize}
350

351
352
353
354
355
356
357
358
359
360
361
362
Dans tous les cas les erreurs sont écrites dans un fichier texte portant l'extension \texttt{.log}, que vous pouvez consulter en cas de problème. Un \textit{IDE} est en général capable de lire automatiquement les \texttt{.log} et de vous signaler un problème.

L'annexe \ref{app:errors} présente des erreurs courantes et la façon d'y remédier, n'hésitez pas à la consulter en cas de problèmes.

Un avertissement mérite néanmoins d'être présenté dans cette section : \\\og \texttt{LaTeX Warning: There were undefined references} \fg{}\\
Cet avertissement apparaît si vous avez utilisé un \verb|\ref{}| auquel ne correspond aucune étiquette (voir au \ref{subsec:label}), mais la petite subtilité est qu'il apparaîtra également si c'est la première fois que vous compilez depuis que vous avez créé l'étiquette...

En effet le compilateur lit le fichier source linéairement et est donc parfaitement incapable de gérer des références croisées ! Pour contourner ce problème il écrit les étiquette dans un fichier texte portent l'extension \texttt{.aux} (pour auxiliaire), et lorsqu'il rencontre une référence il cherche si une étiquette correspondante existe dans le \texttt{.aux}.

Pour cette raison une référence croisée n'apparaît jamais lors de sa première compilation, et deux compilations sont donc nécéssaires ! 

Pour finir, notez que le compilateur va créer des fichiers secondaires (le \texttt{.log}, le \texttt{.aux}, et d'autres) lors de la compilation. Vous les trouverez peut-être inutiles et aurez envie de vous en débarasser, mais ils ont de l'importance pour \verb|pdflatex| et les supprimer revient à tout devoir recompiler.
Aurelien Pascal's avatar
Aurelien Pascal committed
363
364
365

\subsection{Compiler la bibliographie}

Aurelien Pascal's avatar
latexmk    
Aurelien Pascal committed
366
367
368
\startaurel Je suis tiraillé : c'est mieux de faire une section sur la compilation de bibliographie ici et y faire référence dans la partie bibtex ou exmpliquer le truc dans la partie bibtex et mettre une référence à cette section pour en savoir plus sur la compilatation en général ?\\
D'ailleurs autre chose : vu que j'ai toujours compilé bibtex soit à la main soit via latexmk je sais pas du tout comment c'est géré par texmaker \& cie ? Il le font tout seul où il faut les prendre par la main ? \closeaurel

Aurelien Pascal's avatar
Aurelien Pascal committed
369
370
\subsection{L'outil latexmk}

371
372
\label{subsec:latexmk}

Aurelien Pascal's avatar
latexmk    
Aurelien Pascal committed
373
374
375
376
377
378
379
380
Si vous n'utilisez pas d'\textit{IDE} mais que vous ne voulez pas tout compiler à la main à chaque fois, \verb|latexmk| est une excellente solution pour vous !

En effet il s'agit d'un programme agissant à la manière d'un \verb|makefile|\footnote{pour ceux qui ne connaissent pas, c'est une sorte de \og recette de cuisine \fg{} pour compiler un programme, ils sont très utiles aux programmeurs pour s'assurer que tout le monde compile de la même façon} (d'où son nom), qui automatise la compilation en appelant \verb|pdflatex| et \verb|bibtex| exactement le bon nombre de fois\footnote{contrairement à certains programmes qui se contentent de compiler deux fois car \og dans le doute ça marchera \fg{}} afin d'obtenir le résultat désiré.

Pour l'utiliser en terminal il faut taper \\\verb|latexmk -pdf (--autres-options-pour-pdflatex) monfichier.tex|

Il est également utilisé comme base par d'autres programmes comme le \textit{plugin} \verb|vimtex| de \verb|vim| (voir \url{https://github.com/lervag/vimtex}).

Aurelien Pascal's avatar
Aurelien Pascal committed
381
382


383
384
\pagebreak

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

387
388
389
La principale difficulté de \LaTeX{} 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 en utilisant les logiciels de traitement de texte usuels. Mais ne vous 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=.\\
L'objectif de cette première partie est de vous guider dans cette phase d'apprentissage, vous rendant capable de réaliser n'importe quel document texte basique sans problème\footnote{Ici, \emph{basique} inclus entre autres la gestion des images et des tableaux, les références croisées, les expressions mathématiques\ldots qui sont mieux gérées que sur d'autres traitements de texte.}.
\starttouille J'ai légèrement changé le ton de la note, passant du coup à de l'humour absurde, mais je sais pas si ça se voit. Dans le doute, vous pouvez revenir en arrière. Sinon, c'est quoi la bonne pratique pour une footnote en fin de phrase ? Comme ça c'est pas très joli, mais la mettre après le point non plus et ça fait trop "détaché". \closetouille
390

Enteocline's avatar
Enteocline committed
391
392
\startenteo La typographie française est formelle : l'appel de note se place avant tout signe de ponctuation (au contraire de l'anglais, d'ailleurs). Donc tel que tu l'as placée, même si ce n'est pas le plus joli, c'est correct.\closeenteo

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

395
Avant toute chose, commençons par cette bonne vieille tradition qu'est présenter un langage de programmation par un exemple de `Hello World' :
396
397

\begin{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
398
\documentclass[11pt,a4paper]{article}
399
400
401
402
403
404
405

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

\end{LTXexample}

406
407
L'intérêt d'un tel exemple est qu'il permet de comprendre quel est le \emph{minimum légal} de code afin que votre document puisse compiler.\\
Ainsi, il y a deux éléments indispensables à un document \LaTeX{} : 
Aurelien Pascal's avatar
Aurelien Pascal committed
408
\begin{itemize}
409
410
	\item le premier est le \texttt{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 l'environnement \texttt{document}, qui constitue le corps du document et contient tout ce qui sera écrit dans le document final\footnote{À l'exception de quelques métadonnées, comme l'auteur et le titre, qui seront contenues dans le préambule, mais nous y reviendrons.}.
Aurelien Pascal's avatar
Aurelien Pascal committed
411
\end{itemize}
412
\starttouille NB : j'ai retenu \emph{préambule} (déjà utilisé ailleurs par Aurélien) pour \emph{header} \closetouille \\
413
L'autre chose que l'on observe sur cet exemple est la structure globale d'un document \LaTeX{} : avant l'environnement \texttt{document}, vous avez une partie non affichée (le préambule) dans laquelle vous allez placer les informations générales sur le document, telles que les extensions utilisées, les configurations ou les métadonnées (cf. section~\ref{sec:preambule}). Le corps du document est, quand à lui, entièrement contenu dans l'environnement \texttt{document} (cf section~\ref{sec:document}).
414
\\ \starttouille macrocommandes = macros/commandes ou commandes à l'échelle du document ? (dans le second cas, je coinche, y en n'a pas que là) \closetouille
Aurelien Pascal's avatar
Aurelien Pascal committed
415

416
\startaurel Si j'ai bien compris la logique du langage, en \LaTeX{} tout est macro, donc la distinction n'a pas lieu d'être. Du coup ta coinche est légitime, il faudrait reformuler :) Et en réalité les commandes qui sont vraiment à mettre dans le préambule sont assez rares (il y a juste les chargements d'extensions et celles qui modifient vraiment l'environnement document), il y en plein qu'on met là juste par soucis de clarté et d'organisation. Dans l'absolu on pourrait définir chaque commande juste avant sa première occurence dans le document \closeaurel
417
\\ \starttouille Du coup j'ai mis le problème sous le tapis \closetouille
418

Alexandre Morlet's avatar
Alexandre Morlet committed
419
\section{Quelques notions sur la syntaxe \LaTeX{}}
420

Alexandre Morlet's avatar
Alexandre Morlet committed
421
La première chose à voir avant de poursuivre est d'apprendre à reconnaître les éléments de syntaxe \LaTeX{}. En effet, tout comme les langages de programmation usuels, \LaTeX{} possède des caractères et instructions réservés, et une façon particulière d'utiliser ces éléments.
Aurelien Pascal's avatar
Aurelien Pascal committed
422

Aurelien Pascal's avatar
Aurelien Pascal committed
423
\subsection{Les caractères réservés}
Alexandre Morlet's avatar
Alexandre Morlet committed
424
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 faut les écrire pour les afficher dans du texte.
Aurelien Pascal's avatar
Aurelien Pascal committed
425
426
427
428
429
430
431

\medbreak
\begin{center}
	\renewcommand{\arraystretch}{1.20}
\begin{threeparttable}
\begin{tabular}{|c|c|c|}
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
432
	Caractère réservé & Utilité en \LaTeX{} & Comment l'utiliser dans du texte\\
Aurelien Pascal's avatar
Aurelien Pascal committed
433
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
434
	\textbackslash & Introduit toutes les commandes\tnote{a}~~\LaTeX{} & \verb|\textbackslash| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
435
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
436
	\{ et \} & Délimitent les blocs & \verb|\{| et \verb|\}| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
437
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
438
	\% & Permet de commenter une ligne\tnote{b} & \verb|\%| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
439
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
440
	\# & Fait appel aux paramètres dans les macros\tnote{c} & \verb|\#| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
441
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
442
	\$ & Ouvre et ferme le mode mathématiques & \verb|\$| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
443
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
444
	\textasciicircum & Introduit un exposant en mode mathématique & \verb|\textasciicircum| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
445
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
446
	\_ & Introduit un indice en mode mathématique & \verb|\_| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
447
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
448
	\textasciitilde & Espace fine insécable & \verb|\textasciitilde| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
449
	\hline
Alexandre Morlet's avatar
Alexandre Morlet committed
450
	\& & Délimite les colonnes dans un tableau & \verb|\&| \\
Aurelien Pascal's avatar
Aurelien Pascal committed
451
452
453
454
455
	\hline
\end{tabular}
\caption{Caractères réservés}
\label{tab:caracres}
\begin{tablenotes}
Alexandre Morlet's avatar
Alexandre Morlet committed
456
457
458
\item[a] Aussi parfois appelées \emph{balises}. \starttouille Et macros ? Tout ça n'est pas équivalent ?\closetouille
	\item[b] Dans un langage de programmation, un commentaire n'est pas lu par le compilateur et ne sert donc qu'au confort du programmeur, afin de mieux organiser son document.
	\item[c] Une macro-commande est une fonction \LaTeX{} écrite par l'utilisateur afin de simplifier une tâche répétée de nombreuses fois (cf sec. \ref{sec:macro}).
Aurelien Pascal's avatar
Aurelien Pascal committed
459
460
461
462
463
\end{tablenotes}
\end{threeparttable}
\end{center}
\medbreak

Alexandre Morlet's avatar
Alexandre Morlet committed
464
465
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.\\
Tous les autres caractères des langues occidentales s'utilisent sans problème particulier\footnote{Enfin sous condition d'avoir bien configuré l'encodage (cf. section~\ref{sec:preambule}).}.
Aurelien Pascal's avatar
Aurelien Pascal committed
466

Aurelien Pascal's avatar
Aurelien Pascal committed
467
468
469
470
471
472
473
474
475
476
477
478
479
480
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
481
\subsection{Les commandes et instructions~\LaTeX~}
Aurelien Pascal's avatar
Aurelien Pascal committed
482

Aurelien Pascal's avatar
Aurelien Pascal committed
483
\subsubsection{Les commandes et leurs options}
Alexandre Morlet's avatar
Alexandre Morlet committed
484
Les commandes \LaTeX{} sont des petites fonctions qui sont interprétées par le compilateur et ont des effets divers. Elles sont une composante indispensable 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 contre-oblique \verb|\|. Leur forme générale est la suivante :
485

Enteocline's avatar
Enteocline committed
486
{\centering\verb|\<nomdecommande>[<options>]{<argument_1>}{<argument_2>}...{<argument_n>}|\par}
487

Alexandre Morlet's avatar
Alexandre Morlet committed
488
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 \verb|{ }| et les options entre crochets \verb|[ ]|. 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
489

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

Alexandre Morlet's avatar
Alexandre Morlet committed
496
497
Ces exemples ne sont pas exhaustifs, mais couvrent la majorité des cas que vous pourriez rencontrer. En cas de doute pour une commande, de la documentation (telle que <cite \href{doc non-officielle}{http://ftp.acc.umu.se/mirror/CTAN/info/latex2e-help-texinfo/latex2e.pdf}> ou de l'extension concernée) et des forums d'aides (<cite \href{tex.stackexchange.org}{http://tex.stackexchange.com/}>) existent.\\
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 seules ou servir à d'autres commandes, ce que nous allons voir maintenant.
Aurelien Pascal's avatar
Aurelien Pascal committed
498

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

Enteocline's avatar
Enteocline committed
502
\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
503
504

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

Enteocline's avatar
Enteocline committed
507
\textit{et celui-ci est en italique}
Aurelien Pascal's avatar
Aurelien Pascal committed
508
509
\end{LTXexample}

Enteocline's avatar
Enteocline committed
510
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
511
512

\begin{LTXexample}
Enteocline's avatar
Enteocline committed
513
514
515
516
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
517
518
\end{LTXexample}

Enteocline's avatar
Enteocline committed
519
520
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
521
\subsubsection{Les environnements}
Enteocline's avatar
Enteocline committed
522

Alexandre Morlet's avatar
Alexandre Morlet committed
523
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'éléments complexes comme les tableaux, les listes, etc., en définissant parfois leurs 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
524
525
526

\begin{LTXexample}
Texte normal
Enteocline's avatar
Enteocline committed
527
528
529
\begin{itshape}
Texte en italique
\end{itshape}
Aurelien Pascal's avatar
Aurelien Pascal committed
530
531
532
Texte normal
\end{LTXexample}

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

Alexandre Morlet's avatar
Alexandre Morlet committed
535
{\centering\verb|\begin{<nom_env>}[<options>]{<arg_1>}...{<arg_n>}|\\ \ldots \\ \verb|\end{<nom_env>}|\par}
Enteocline's avatar
Enteocline committed
536

Enteocline's avatar
Enteocline committed
537
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.
Aurelien Pascal's avatar
Aurelien Pascal committed
538
539


Enteocline's avatar
Enteocline committed
540
541
\subsubsection{Le groupe vide}

Aurelien Pascal's avatar
Aurelien Pascal committed
542
543
\label{subsubsec:groupevide}

Enteocline's avatar
Enteocline committed
544
545
Lorsque l'on tape une commande \LaTeX, le compilateur a des moyens prédéfinis de déterminer où se termine la commande. Dans le cas d'une commande à arguments,
il compte le nombre de groupes successifs rencontrés jusqu'à en avoir autant que le nombre d'argument attendus, et tout ce qui suit est traité en-dehors comme il
Enteocline's avatar
Enteocline committed
546
devrait l'être. Lorsqu'on utilise une commande sans argument, qu'elle soit définie comme telle sans influence sur le texte alentour, à l'instar de \verb|\LaTeX|,
Enteocline's avatar
Enteocline committed
547
ou qu'il s'agisse d'une commande à portée infinie comme \verb|\itshape|, le compilateur cherche un caractère qui marque la fin du nom de la commande et le début de la suite
Enteocline's avatar
Enteocline committed
548
549
du texte. Ce caractère peut être n'importe quoi sauf une lettre, puisqu'on utilise les lettres dans les noms des commandes. En particulier, les signes de ponctuation ou
les espaces peuvent marquer la fin d'une telle commande.
Enteocline's avatar
Enteocline committed
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566

Cependant, on pourra remarquer pour les commandes sans argument qui insèrent du texte un effet un peu déconcertant : si elles sont suivies d'une ou plusieurs espaces,
ces dernières sont \og{}mangées\fg{} par la commande, et le texte qui suit se retrouve collé à celui qui vient d'être inséré. Une solution simple à connaître pour se
débarrasser de cet effet indésirable consiste à utiliser un groupe vide, c'est-à-dire une paire d'accolades \verb|{}| sans rien entre elles. Le groupe vide n'a absolument
aucun effet sur le document : on peut en insérer partout dans le texte --- mais notons, bien entendu, qu'en placer entre les arguments d'une commande risque de provoquer
des choses inattendues, puisqu'un groupe vide est compté comme un groupe, donc comme un argument. En insérant un groupe vide entre la fin de la commande incriminée et
l'espace qui suit, on retrouve le comportement désiré : le groupe vide marque la fin de la commande et l'espace redevient un séparateur de mots.

L'utilisation de ce groupe vide est illustrée ci-dessous. Dans le premier cas, il manque une espace, qui apparaît de nouveau dans le second.

\begin{LTXexample}
\LaTeX c'est trop bien !

\LaTeX{} c'est trop bien !
\end{LTXexample}


Aurelien Pascal's avatar
Aurelien Pascal committed
567
568
\section{Construire son préambule}
\label{sec:preambule}
Aurelien Pascal's avatar
Aurelien Pascal committed
569

570
Le préambule d'un document \LaTeX{} est l'ensemble des instructions situées avant le \verb|\begin{document}|. Cela comprend le \texttt{documentclass}, les chargement d'extensions, 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 à vous donner suffisamment 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
571

572
\subsection{Le \texttt{documentclass}}
Aurelien Pascal's avatar
Aurelien Pascal committed
573

Aurelien Pascal's avatar
wrapfig    
Aurelien Pascal committed
574
575
\label{subsec:documentclass}

576
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
577

578
579
\subsubsection{Les classes} 
Les principales valeurs possibles pour l'argument de \verb=\documentclass= sont :
Aurelien Pascal's avatar
Aurelien Pascal committed
580
\begin{itemize}
581
582
	\item \texttt{article}, la classe la plus utile pour un document simple (c'est celle utilisée pour celui que vous êtes en train de lire).
	\item \texttt{book}, qui, en plus d'\texttt{article}, utilise une page séparée pour le titre, des marges moins étroites et inclus l'utilisation de chapitres.
Aurelien Pascal's avatar
Aurelien Pascal committed
583
	\item \texttt{report}, qui est semblable à \texttt{book}, mais les chapitres ne commencent pas en belle page et certaines commandes de \texttt{book} ne sont pas disponibles. \starttouille Aurélien, tu peux reformuler stp ? \verb|^^| \closetouille \startaurel Heu... jocker ! En fait j'en sais rien je suis a peu près sur d'avoir copié-collé ce truc. Je vais regarder si je trouve une vraie explication sur la différence book-report :) \closeaurel
584
585
	\item \texttt{lettre}, permettant d'écrire un courrier au format français dans les règles de l'art.
	\item \texttt{beamer}, utilisée pour faire des présentation (à l'aide de diapositives plutôt que de pages). Elle sera présentée en partie \ref{sec:beamer}
Aurelien Pascal's avatar
Aurelien Pascal committed
586
587
\end{itemize}

588
589
590
591
592
593
L'environnement \texttt{abstract} est disponible dans les classes \texttt{article} et \texttt{report}.

\subsubsection{Les options} 

Voici les options les plus utiles de la commande \verb|\documentclass| avec les valeurs possibles.\\
Remarquez qu'ici vous n'avez pas à écrire \verb|[option=valeur]| mais que la valeur seule suffit.
Aurelien Pascal's avatar
Aurelien Pascal committed
594
595
596
597
598
599
\begin{center}
\renewcommand{\arraystretch}{1.15}
\begin{tabular}{|c|c|}
	\hline
	Option & Valeurs possibles \\
	\hline
600
	Taille de police par défaut & \textbf{10pt} (défaut), \textbf{11pt} ou \textbf{12pt} \\
Aurelien Pascal's avatar
Aurelien Pascal committed
601
	\hline
602
	Format de papier & \textbf{a4paper} (défaut), \textbf{letterpaper} (défaut pour la classe \texttt{lettre}), \\
Aurelien Pascal's avatar
Aurelien Pascal committed
603
604
 & \textbf{a5paper}, \textbf{b5paper}, \textbf{executivepaper}, \textbf{legalpaper}\\
	\hline
Aurelien Pascal's avatar
Aurelien Pascal committed
605
606
	Mode brouillon (ne charge pas & \textbf{draft}  \\
	les images et autres inclusions) & (si aucune option n'est précisé le mode brouillon est inactif)\\
Aurelien Pascal's avatar
Aurelien Pascal committed
607
	\hline
608
	Colonnes multiples & \textbf{onecolumn} (défaut) et \textbf{twocolumn} \\
Aurelien Pascal's avatar
Aurelien Pascal committed
609
610
	& (le format classique d'un article scientifique) \\
	\hline
611
612
	Différence (ou pas) entre les marges & \textbf{oneside} (défaut pour \texttt{article}) \\
	intérieures et extérieures& et \textbf{twoside} (défaut pour \texttt{book} et \texttt{report})\\
Aurelien Pascal's avatar
Aurelien Pascal committed
613
	\hline
614
615
	Page réservée pour le titre & \textbf{notitlepage} (défaut pour \texttt{article}) \\
	& et \textbf{titlepage} (défaut pour \texttt{book} et \texttt{report})\\
Aurelien Pascal's avatar
Aurelien Pascal committed
616
617
618
619
	\hline
\end{tabular}
\renewcommand{\arraystretch}{1.0}
\end{center}
Aurelien Pascal's avatar
Aurelien Pascal committed
620
\starttouille Ce sera magnifique si la parenthèse après `draft' pouvait être sur la ligne en dessous, des idées ?\closetouille \startaurel Etant donné que c'est un simple tableau rempli salement et pas un truc avec des cases fusionnées c'était assez facile \verb|^^| \closeaurel\\
Alexandre Morlet's avatar
Alexandre Morlet committed
621
\starttouille En effet, j'avais pas fait gaffe, merci :P \closetouille \\
622
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 extension.
Aurelien Pascal's avatar
Aurelien Pascal committed
623

Aurelien Pascal's avatar
Aurelien Pascal committed
624
\subsection{Le chargement d'extensions}
Aurelien Pascal's avatar
Aurelien Pascal committed
625

626
627
En \LaTeX{}, on désigne par \og extension \fg{} (de l'anglais \emph{package}) les fichiers qui ajoutent des fonctionnalités non disponibles nativement.\\
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, signalée à chaque fois que nécessaire.
Aurelien Pascal's avatar
Aurelien Pascal committed
628

629
Une extension se charge avec la commande \verb=\usepackage[<options>]{<extension>}=. Il faut les charger dans le préambule -- il est d'usage de le faire juste après le \verb|\documentclass|, pour rédiger le reste du préambule avec la bonne version des différentes commandes. Là où certaines extensions créent de nouvelles commandes, d'autres en redéfinissent des existantes, ce qui peut mener à des conflits ; ainsi, l'ordre d'appel est important (le compilateur va vous demander de charger \texttt{natbib} avant \texttt{babel} par exemple, ou on chargera \texttt{href} en dernier car il impacte beaucoup de commandes déjà existantes).
Aurelien Pascal's avatar
Aurelien Pascal committed
630

631
Dans la suite, nous allons voir quelques extensions indispensables à la rédaction de tout document en français.
Aurelien Pascal's avatar
Aurelien Pascal committed
632

633
634
635
636
637
638
\subsubsection{L'encodage d'entrée} 
Pour saisir la notion d'encodage d'entrée, il est important de comprendre que le fichier source (le fichier \texttt{.tex}) est d'abord sauvegardé et encodé sur votre disque dur avant d'être envoyé au compilateur\footnote{Et ce peu importe que vous utilisiez un éditeur de texte non formaté et le compilateur séparément ou que vous utilisiez un \emph{IDE}.}.\\
L'encodage réel du fichier \texttt{.tex}, c'est la façon dont les caractères employés dans votre fichier source seront écrits sous forme d'octets sur votre disque dur ; c'est donc une caractéristique de votre éditeur de texte ! Vous devriez pouvoir le sélectionner dans ses options.\\
L'encodage d'entrée du compilateur, c'est la façon dont ce dernier va lire les octets présents dans votre fichier source pour les interpréter sous forme de commandes. Vous l'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}=.\\
La langue française, avec ses accents, peut être encodée facilement en \texttt{latin1} ou 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
639

Alexandre Morlet's avatar
Alexandre Morlet committed
640
\starttouille Et comment on fait un å en \LaTeX{} chef ? \closetouille
Enteocline's avatar
Enteocline committed
641
642
643
644

\startenteo Eh bien en \texttt{utf8} on peut simplement faire \texttt{COMPOSE,O,A}, on encore insérer le point de code \texttt{U+005E},
on alors utiliser la commande \verb|\aa| !\closeenteo

Aurelien Pascal's avatar
Aurelien Pascal committed
645
646
\subsubsection{Encodage de sortie} 

647
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
648
649

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

651
Il existe une extension linguistique appelée \texttt{babel} qui formate le texte de sorte à respecter les règles typographiques de la langue dans laquelle vous écrivez (par exemple, l'ajout d'espaces fines insécables avant certains éléments de ponctuation en français). Pour l'utiliser, il faut charger la charger avec l'option \texttt{frenchb} : \\\verb=\usepackage[frenchb]{babel}=\footnote{L'option \texttt{francais} est obsolète depuis la version 3.6 de \texttt{babel}.}.
Aurelien Pascal's avatar
Aurelien Pascal committed
652

Aurelien Pascal's avatar
Aurelien Pascal committed
653
\subsection{Les métadonnées}
654

655
656
657
Le mot \textit{métadonnées} désigne \og les données concernant les données \fg{}. À propos d'un article ou un livre, il s'agit donc de son titre, son auteur et sa date de publication.\\
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{À 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=
658

Aurelien Pascal's avatar
Aurelien Pascal committed
659
\subsection{Pour résumer : un modèle de préambule pour un article en français}
660
\begin{lstlisting}
661
% Première chose à faire : définir le type de document !
662
663
\documentclass[a4paper]{article}

664
% On charge ensuite les extensions pour la langue française
665
666
667
668
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}

669
% Puis on définit les metadonnées
670
\title{Mon premier document}
671
\author{Un débutant en \LaTeX{}}
672
673
\date{}

674
% Et on arrive enfin au corps du document
675
676
677
678
679
680
681
682
\begin{document}

\maketitle

Hello world !

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

Aurelien Pascal's avatar
Aurelien Pascal committed
684
685
\section{L'environnement document et sa structure}
\label{sec:document}
Aurelien Pascal's avatar
Aurelien Pascal committed
686

687
688
689
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}
690
\label{subsec:niveautitres}
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714

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}

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

Aurelien Pascal's avatar
Aurelien Pascal committed
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
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
732
\subsection{La numérotation et les compteurs}
Aurelien Pascal's avatar
Aurelien Pascal committed
733

Aurelien Pascal's avatar
Aurelien Pascal committed
734
735
\label{subsec:numcompteur}

Aurelien Pascal's avatar
Aurelien Pascal committed
736
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}=.
737

Enteocline's avatar
Enteocline committed
738
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
739
\begin{LTXexample}
Enteocline's avatar
Enteocline committed
740
741
\arabic{section}, \Roman{section}, \roman{section},
\Alph{section}, \alph{section}
Aurelien Pascal's avatar
Aurelien Pascal committed
742
\end{LTXexample}
Aurelien Pascal's avatar
Aurelien Pascal committed
743

744
745
746
747
748
749
750
751
752
753
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
754
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 !
755
756
757
758
759

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

Aurelien Pascal's avatar
Aurelien Pascal committed
762
763
764
765
766
767
768
769
770
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
771
\subsection{Les annexes}
772

Aurelien Pascal's avatar
Aurelien Pascal committed
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
\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}


813

Aurelien Pascal's avatar
Aurelien Pascal committed
814
\section{Formater le texte}
815

Aurelien Pascal's avatar
Aurelien Pascal committed
816
817
818
819
820
821
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é !

Aurelien Pascal's avatar
Aurelien Pascal committed
822
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 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.\\
Enteocline's avatar
Enteocline committed
823
\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
824
825
826
827
828
829
830
831
832
\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
833
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
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855

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}

Aurelien Pascal's avatar
Aurelien Pascal committed
856
\subsubsection{Gérer l'espace entre les paragraphes}
Aurelien Pascal's avatar
Aurelien Pascal committed
857

Aurelien Pascal's avatar
Aurelien Pascal committed
858
859
860
861
862
863
864
865
866
Pour introduire un espace entre les paragrapges on peut utiliser \verb=\vskip=, comme dans l'exemple précédent, ou bien \verb=\vspace{<longueur>}=. Ceux deux commandes font quasiment la même chose, la seule différence est que \verb=\vspace= insère l'espace après la ligne courante tandis que \verb=\vskip= l'insère immédiatement.

Il peut néanmoins être très lourd d'insérer des \verb=\vskip= après chaque paragraphe, ainsi l'extension \verb=parskip= vous permet d'automatiser le processus : lorsque vous chargez cette extension avec \verb=\usepackage{parskip}=, le comportement des retours à la ligne (voir partie précédente) est changé :
\begin{itemize}
	\item les intructions \textit{line break} comme \verb=\\= provoquent un simple retour à la ligne
	\item les lignes vides provoquent un changement de paragraphe, avec un espace entre les deux paragraphes personnalisable en changeant la valeur \verb%\parskip=<longueur>%
\end{itemize}

Attention \verb=\parskip= n'est pas une commande à arguments comme on a pu en voir jusqu'à présent mais se comporte bien comme une \textit{variable}, dont la valeur peut être changée par une instruction du type \verb%\parskip=1.5cm%
Aurelien Pascal's avatar
Aurelien Pascal committed
867
868

\subsubsection{Passer à la page suivante}
869

Aurelien Pascal's avatar
Aurelien Pascal committed
870
871
872
873
874
875
876
Les sauts de page sont normalement gérés automatiquement par \LaTeX{}, mais vous pouvez avoir envie d'introduire arbitrairement un saut de page, pour ce faire il y a trois solutions :
\begin{itemize}
	\item \verb=\newpage= commence une nouvelle page en complétant la page actuelle avec du blanc
	\item \verb=\clearpage= fait la même chose que \verb=\newpage= mais en profite pour placer tous les flottants (voir section \ref{sec:float}) qui ne seraient pas encore apparus
	\item \verb=\pagebreak= commence une nouvelle page en jouant sur les paramètres de placement et espacement des paragraphes de la page actuelle afin de remplir l'espace vide
\end{itemize}

Aurelien Pascal's avatar
Aurelien Pascal committed
877
\subsection{Les tailles de polices}
878

Enteocline's avatar
Enteocline committed
879
\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
880
881
882
883
884
885

\begin{center}
\begin{tabular}{|c|c||c|c|}
   \hline
   Commande & Taille associée & Commande & Taille associée \\
   \hline
Enteocline's avatar
Enteocline committed
886
   \hline
Enteocline's avatar
Enteocline committed
887
888
889
890
891
892
893
894
895
896
897
898
899
   \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
900
901
902
903
904
905
906
907
908
909
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}

910
\subsection{Le changements de polices : fontes, formes et graisses}
911
\label{subsec:fontes}
912
\subsubsection{Les packs de police}
Aurelien Pascal's avatar
Aurelien Pascal committed
913
914
915

Rappelons l'idée qui est la base de l'invention de \LaTeX{} : permettre une mise en page cohérente et rigoureuse des publications scientifiques, en permettant aux chercheurs de se concentrer sur le contenu et de laisser le compilateur se charger de la mise en page.

916
Pour permettre de conserver la \textit{cohérence} de la typographie, l'idée a été d'utiliser non pas des polices indépendantes mais des \og packs de police \fg{} \startaurel oui je sais encore un anglicisme, mais je vois pas trop par quoi le remplacer ici, ensembles de polices peut être, mais c'est pas top, des idées ? \closeaurel, qui sont composées d'un ensemble de trois \textit{familles ou fontes} avec chacune différentes \textit{formes} et \textit{graisses}\footnote{l'ensemble fonte-taille-forme-graisse est une police d'écriture}.
917
\\ \starttouille Lot, assortiment, contingent ? Sinon \og ensemble \fg{} ça suffit je trouve \closetouille
918
919
920
921
922
923
924

Pour changer de pack de police il est nécessaire d'en charger un nouveau avec \\\verb=\usepackage{<mon nouveau pack>}=.\\ Le pack utilisé par défaut dans \LaTeX{} est le pack Computer Modern, et ce document utilise le pack Latin Modern\footnote{ce pack se veut être une \og amélioration typographique \fg{} de Computer Modern, et il est probable qu'il devienne le nouveau pack par défaut dans un futur proche. Il est conseillé si vous compilez un document PDF}, qui se charge avec \verb%\usepackage{lmodern}%.\\
Si vous désirez installer d'autres polices vous pouvez vous intéresser à \verb=Metafont=, qui est un langage de description des polices créé pour \TeX{} par Knuth.

\subsubsection{Les fontes}

Dans chaque pack de police il y a trois fontes\footnote{en réalité plus de trois car il y a les fontes spécifiques à l'environnement mathématique}, qui sont sont toujours classées selon ces trois familles :
Aurelien Pascal's avatar
Aurelien Pascal committed
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
\begin{itemize}
	\item le texte avec empattements ou \og romain \fg{} (la police par défaut)
	\item \textsf{le texte sans empattements ou \og sans sérif \fg{}}
	\item \texttt{le texte type machine à écrire ou \og à chasse fixe \fg{}}
\end{itemize}

Pour passer d'une famille à une autre on peut utiliser les commandes suivantes : 
\begin{center}
\begin{tabular}{|c|c|c|}
   \hline
   Commande & Commande équivalente & Effet \\
   \hline 
   \verb|\textnormal{...}| & \verb|{\normalfont ...}| & Police par défaut \\
   \hline
   \verb|\textrm{...}| & \verb|{\rmfamily ...}| & \textrm{Romain}  \\
   \hline
   \verb|\textsf{...}| & \verb|{\sffamily ...}| & \textsf{Sans sérif}\\
   \hline
   \verb|\texttt{...}| & \verb|{\ttfamily ...}| & \texttt{Chasse fixe} \\
   \hline
\end{tabular}
\end{center}

948
La police par défaut est la police romaine, mais on peut la changer avec \\
Aurelien Pascal's avatar
Aurelien Pascal committed
949
950
\verb%\renewcommand{\familydefault}{\sfdefault}% ou \verb%\renewcommand{\familydefault}{\ttdefault}%

951
\subsubsection{Les formes et graisses : gras, italique et autres joyeusetés}
Aurelien Pascal's avatar
Aurelien Pascal committed
952

953
Le tableau suivant résume les commandes permettant les changements de formes et graisses :
954
955


Enteocline's avatar
Enteocline committed
956
957
958
959
960
961
962
963
964
965
966
\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
967
   \verb|\textup{...}| & \verb|{\upshape ...}| & Forme droite (par défaut) & \textup{Exemple} \\
Enteocline's avatar
Enteocline committed
968
969
970
971
972
   \hline
   \verb|\textit{...}| & \verb|{\itshape ...}| & Italique & \textit{Exemple} \\
   \hline
   \verb|\textsc{...}| & \verb|{\scshape ...}| & Petites capitales & \textsc{Exemple} \\
   \hline
973
974
975
   \hline
   \verb|\textmd{...}| & \verb|{\mdseries...}| & Graisse moyenne (par défaut) & \textmd{Exemple} \\
   \hline
Enteocline's avatar
Enteocline committed
976
977
978
979
   \verb|\textbf{...}| & \verb|{\bfseries ...}| & Gras & \textbf{Exemple} \\
   \hline
\end{tabular}
\end{center}
980
\medbreak
981
\starttouille Il y a aussi textsl (slshape), pour incliné, le contraire de textup : coucou \textsl{coucou} \textit{coucou}. Je sais pas si vous voulez l'inclure. \closetouille
982

Enteocline's avatar
Enteocline committed
983
984
\startenteo Étant donné que son usage est déconseillé en typographie classique, mieux vaut le laisser de côté (tout comme le soulignement d'ailleurs) pour l'instant. On peut l'évoquer dans les parties plus avancées, à mon avis. \closeenteo

985
La police par défaut est en réalité une combinaison de \verb|rmfamily|, \verb|upshape| et \verb|mdseries|.
986
987

La commande d'emphase a un comportement qui dépend de la police d'écriture au moment de son appel : avec la police par défaut elle se comporte comme \verb|itshape| mais dans un texte en italique elle se comporte comme \verb|upshape|.
Enteocline's avatar
Enteocline committed
988

Alexandre Morlet's avatar
Alexandre Morlet committed
989
990
\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

991
992
993
994
\subsubsection{Quelques règles de typographies}

\startaurel @Entéocline : vérifie que je dis pas de conneries \verb|^^|, je fais que recopier wikibooks. Et n'hésite pas à compléter :) \closeaurel

Enteocline's avatar
Enteocline committed
995
996
\startenteo Je note ceci comme TODO \closeenteo

997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
Parce que l'objectif principal de \LaTeX{} est de permettre une bonne typographie, il paraît approprié de présenter ici quand utiliser telle ou telle police.


L'italique doit être utilisé pour
\begin{itemize}
	\item indiquer un mot étranger, une locution latine
	\item indiquer une citation au sein d'un texte
	\item différencier une partie d'un ouvrage non écrite par l'auteur (préface par exemple)
	\item les titres d'oeuvres, le nom des navires, les programmes industriels et les créations commerciales, en bref les noms propres qui ne sont pas des personnes
\end{itemize}
Pour attirer l'attention sur certains mots, on préférera l'utilisation des guillemets français à l'italique :\\ \verb|\og| texte entre guillemets \verb|\fg{}|, comme ceci : \og je suis important ! \fg{}

Le gras doit être utilisé très rarement, pour des mots sur lesquels il faut attirer l'attention au sein de la page.\\
On peut également l'utiliser en mathématiques pour les vecteurs par exemples.

Enfin le soulignement \verb|\underline{}| n'a pas d'utilisation en typographie classique.

Aurelien Pascal's avatar
Aurelien Pascal committed
1014
\subsection{L'alignement du texte}
1015

1016
\subsection{Les notes de pied de page}
Aurelien Pascal's avatar
Aurelien Pascal committed
1017

Aurelien Pascal's avatar
Aurelien Pascal committed
1018
\subsection{Citations et épigraphes}
Aurelien Pascal's avatar
Aurelien Pascal committed
1019

Alexandre Morlet's avatar
Alexandre Morlet committed
1020
\subsubsection{\texttt{quotation} et \texttt{quote}}
Aurelien Pascal's avatar
Aurelien Pascal committed