\documentclass[a4paper,11pt,openbib]{book}

\usepackage[english,greek,french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage{microtype}

\usepackage{lmodern}
\usepackage{textcomp}

\usepackage{array}
\usepackage[annote]{babelbib}
\usepackage{bbm}
\usepackage{bbold}
\usepackage{bibtopic}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{dsfont}
\usepackage{eurosym}
\usepackage{fancyhdr}
\usepackage{fancyvrb}
\usepackage{filecontents}
\usepackage{framed}
\usepackage{graphicx}
\usepackage{latexsym}
\usepackage{longtable}
\usepackage{makeidx}
\usepackage{morefloats}
\usepackage{tabulary}
\usepackage{threeparttable}
\usepackage{tikz}
\usepackage[notbib]{tocbibind}
\usepackage{tocloft}
\usepackage{url}

\usepackage{hyperref}

% book

\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{3}

% babel

\newcommand{\anglais}[1]{\textit{\foreignlanguage{english}{#1}}}

% babelbib

\bibliographystyle{babplain-fl}
\setbibliographyfont{lastname}{\textsc}
\renewcommand{\btxauthorcolon}{ :}

% caption

\captionsetup
{
	justification	= centerlast ,
	textfont	= it ,
	textformat	= period ,
}

% fancyhdr

\setlength{\headheight}{15pt}

\fancyhead{}
\fancyhead[LE]{\textit{\nouppercase{\leftmark}}}
\fancyhead[RO]{\textit{\nouppercase{\rightmark}}}

% fancyvrb

\DefineVerbatimEnvironment{exemple}{Verbatim}{frame=single,samepage=true}

\newcommand{\exempleresultat}[1]
{\VerbatimInput[frame=single,samepage=true]{#1}
\begin{resultat}
\input{#1}
\end{resultat}
}

% framed

\setlength{\FrameSep}{2\fboxsep}

\newenvironment{resultat}
{\begin{framed}
\setlength{\parindent}{0pt}
\setlength{\belowdisplayskip}{0pt}
\setlength{\abovedisplayskip}{0pt}
}
{\end{framed}}

\newenvironment{syntaxe}
{\begin{framed}
\setlength{\parindent}{0pt}
}
{\end{framed}}

\newenvironment{toile}
{%
   \def\FrameCommand{\textcolor[gray]{0.7}{\vrule width 3pt}\hspace{0.7em}}%
   \MakeFramed{\advance\hsize-\width \FrameRestore}%
}%
{\endMakeFramed}

% graphicx

\graphicspath{{exemples/}}

\newcommand{\beamersimple}[1]
{
	\includegraphics[width=0.9\textwidth]{#1}
}

\newcommand{\beamerdouble}[2]
{
	\includegraphics[width=0.47\textwidth]{#1}
	\quad
	\includegraphics[width=0.47\textwidth]{#2}
}

% hyperref

\hypersetup
{
	bookmarksnumbered	= true ,
	colorlinks		= true ,
	pdfauthor		= {Marc Baudoin} ,
	pdftitle		= {Apprends LaTeX !} ,
	unicode			= true ,
	urlcolor		= blue
}

% makeidx

\makeindex

\newcommand{\terme}[1]{\emph{#1}\index{#1}}
\newcommand{\termeanglais}[2]{\emph{#1}\index{#1} (\anglais{#2}\index{#2@\anglais{#2}|see{#1}} en anglais)}

\newcommand{\classeindex}[1]{\classe{#1}\index{#1@\classe{#1} (classe)}}
\newcommand{\classeoptionindex}[1]{\classeoption{#1}\index{#1@\classeoption{#1} (option de classe)}}

\newcommand{\extensionindex}[1]{\extension{#1}\index{#1@\extension{#1} (extension)}}
\newcommand{\extensionoptionindex}[1]{\extensionoption{#1}\index{#1@\extensionoption{#1} (option d'extension)}}

\newcommand{\commandeindex}[1]{\commande{#1}\index{#1@\commande{#1}}}
\newcommand{\commandeparindex}[2]{\commande{#1}\index{#1@\commande{#1} (#2)}}

\newcommand{\environnementindex}[1]{\environnement{#1}\index{#1@\environnement{#1} (environnement)}}

\newcommand{\komavarindex}[1]{\komavar{#1}\index{#1@\komavar{#1} (variable KOMA-Script)}}
\newcommand{\komaoptionindex}[1]{\komaoption{#1}\index{#1@\komaoption{#1} (option KOMA-Script)}}

\newcommand{\biblioindex}[1]{\code{#1}\index{#1@\code{#1} (bibliographie)}}
\newcommand{\beamerthemeindex}[1]{\index{#1@\theme{#1} (thème \classe{beamer})}}
\newcommand{\moderncvthemeindex}[1]{\theme{#1}\index{#1@\theme{#1} (thème \classe{moderncv})}}
\newcommand{\codeindex}[1]{\code{#1}\index{#1@\code{#1}}}

\newcommand{\intercomindex}[1]{\intercom{#1}\index{#1@\intercom{#1}}}

\newcommand{\boiboiindex}{\commande{\textbackslash}\index{\\@\commande{\textbackslash}}}

% tocloft

\addtolength{\cftfignumwidth}{1em}	% XX.XX
\cftsetpnumwidth{1.8em}

% url

\DeclareUrlCommand\courriel{\renewcommand\UrlLeft{<}\renewcommand\UrlRight{>}}
\newcommand{\toileurl}[1]{\noindent\url{#1}\par}

% xindy

\newcommand*\lettergroupDefault[1]{\lettergroup{Symboles}}
\newcommand*\lettergroup[1]{\hfill\textbf{\large #1}\hfill\nopagebreak}

% commandes perso

\newcommand{\BibTeX}{\textsc{Bib}\TeX}
\newcommand{\MakeIndex}{\textit{MakeIndex}}
\newcommand{\PGF}{\textsc{PGF}}
\newcommand{\PGFPlots}{\textsc{pgfplots}}
\newcommand{\PracTeX}{Prac\kern-0.07em\TeX}
\newcommand{\SliTeX}{\textsc{Sli}\TeX}
\newcommand{\TikZ}{Ti\textit{k}Z}
\newcommand{\xindy}{\textsf{xindy}}

\newcommand{\classe}[1]{\textsf{#1}}
\newcommand{\classeoption}[1]{\textsf{#1}}
\newcommand{\extension}[1]{\textsf{#1}}
\newcommand{\extensionoption}[1]{\textsf{#1}}

\newcommand{\commande}[1]{\texttt{\textbackslash #1}}
\newcommand{\environnement}[1]{\texttt{#1}}

\newcommand{\option}[1]{\texttt{[}\textit{#1}\texttt{]}}
\newcommand{\argument}[1]{\texttt{\{}\textit{#1}\texttt{\}}}

\newcommand{\code}[1]{\texttt{#1}}
\newcommand{\var}[1]{\textit{#1}}

\newcommand{\komavar}[1]{\texttt{#1}}
\newcommand{\komaoption}[1]{\texttt{#1}}

\newcommand{\theme}[1]{\texttt{#1}}

\newcommand{\intercom}[1]{\texttt{#1}}
\newcommand{\taper}[1]{\texttt{#1}}

\newcommand{\diff}{\,\mathrm{d}}

\newenvironment{attention}
{\begin{quotation}\noindent\textbf{ATTENTION} :}
{\end{quotation}}

% XXX vérifier les ~ et les \-

{\selectlanguage{french}\hyphenation{
cal-li-gra-phi-ques
cha-que
dou-ble
en-vi-ron-ne-ment
exem-ple
pren-nent
}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frontmatter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{titlepage}

\pdfbookmark[0]{Page de titre}{titre}

\vspace*{\stretch{2}}

\begin{center}
\LARGE\sffamily\bfseries Marc Baudoin
\end{center}

\vspace*{\stretch{2}}

\noindent\rule{\linewidth}{3pt}

\begin{center}
\Huge\bfseries\itshape Apprends \LaTeX\ !
\end{center}

\noindent\rule{\linewidth}{3pt}

\vspace*{\stretch{1}}

\begin{center}
\large\sffamily quatrième édition
\end{center}

\vspace*{\stretch{4}}

\clearpage

\pdfbookmark[0]{Droits d'auteur}{droits}

\thispagestyle{empty}

\noindent Copyright © 1994--2010 Marc Baudoin

\bigskip

Ce document est mis à disposition selon les termes de la License
publique du projet \LaTeX\ (LPPL) :

\begin{toile}
\toileurl{http://www.latex-project.org/lppl/}
\end{toile}

\end{titlepage}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pagestyle{plain}

\chapter*{Avant-propos}
\addcontentsline{toc}{chapter}{\protect\numberline{}Avant-propos}

\section*{Au sujet de ce manuel}

Ce manuel a été écrit à l'intention des élèves de l'École
nationale supérieure de techniques
avancées\footnote{\url{http://www.ensta.fr/}} (ENSTA ParisTech).
Il est en effet essentiel que de futurs ingénieurs sachent
produire efficacement des documents de qualité.

Néanmoins, il ne décrit aucune spécificité propre à
l'environnement informatique de l'ENSTA ParisTech et pourra donc
s'avérer utile à toute personne désirant apprendre à utiliser
\LaTeX.

\section*{Où trouver ce manuel ?}

La version à jour de ce manuel (au format PDF) est disponible sur
les sites suivants :

\begin{toile}
\noindent\url{http://www.babafou.eu.org/Apprends_LaTeX/} (site de
référence)\par
\toileurl{http://www.ctan.org/tex-archive/info/apprends-latex/}
\toileurl{http://tex.loria.fr/general.html}
\end{toile}

\section*{Comment lire ce manuel ?}

Les chapitres \ref{chapitre:introduction} à
\ref{chapitre:environnements} sont à lire absolument car ils
expliquent les bases indispensables permettant d'utiliser \LaTeX.
La lecture de l'annexe \ref{annexe:typographie} est également
enrichissante pour tous. Ceci ne fait au total qu'une
cinquantaine de pages. Le chapitre \ref{chapitre:mathematique}
n'est à lire que par les personnes ayant à utiliser des
expressions mathématiques. Il en va de même avec le chapitre
\ref{chapitre:bibliographie-index} pour la réalisation d'une
bibliographie ou d'un index. Les chapitres suivants sont à lire
en fonction de ses besoins. Enfin, l'annexe
\ref{chapitre:LaTeX2e} n'est à lire que par les rares personnes
ayant pratiqué la version 2.09 de \LaTeX\ (ou une version
antérieure) et n'ayant jamais encore utilisé \LaTeXe.

\section*{Pour aller plus loin}

Ce manuel ne prétend pas être exhaustif. Il décrit les aspects de
\LaTeX\ qui sont généralement les plus utiles et qui vous
permettront de rédiger la plupart de vos documents. Si vous
voulez aller plus avant dans votre connaissance de \LaTeX, il est
conseillé de lire \cite{latex-a-document-preparation-system}.
Celui-ci pourra être complété par \cite{the-latex-companion}, qui
décrit un grand nombre d'extensions de \LaTeX.

Le site officiel de \LaTeX\ est également une source
d'informations précieuse :

\begin{toile}
\toileurl{http://www.latex-project.org/}
\end{toile}

Le site du LORIA\footnote{LORIA : laboratoire lorrain de recherche
en informatique et ses applications.} dédié à \LaTeX\ l'est
aussi :

\begin{toile}
\toileurl{http://tex.loria.fr/}
\end{toile}

\section*{Historique}

La première édition de ce manuel a été écrite au printemps 1994
et décrivait \LaTeX\ 2.09.

La deuxième édition a été adaptée en 1996 et 1997 à \LaTeXe\ et
s'est vue rajouter quelques chapitres. De petites retouches ont
été apportées dans les années suivantes, sans changement de fond.

La troisième édition, en 2009, représente principalement un
travail de clarification de la présentation des exemples (qui
sont désormais encadrés). Une description de la classe
\classe{beamer} a également été ajoutée. Par ailleurs,
l'utilisation de \intercom{pdflatex} et du format PDF ont
remplacé \intercom{latex} et les formats DVI et PostScript, de
même que le codage de caractères UTF-8 a remplacé ISO 8859-1 dans
les exemples.

La quatrième édition, en 2010, outre une réorganisation de
certains chapitres existants, s'est vue rajouter la description
de \xindy\ et de \intercom{latexmk} dans le chapitre sur la
réalisation d'une bibliographie et d'un index ainsi que la
description de la classe \classe{scrlttr2} dans le chapitre sur
l'écriture d'une lettre. Le chapitre sur la rédaction d'un CV a
été créé. Pour les personnes souhaitant explorer le monde de
\LaTeX, le CTAN et la commande \intercom{texdoc} sont rapidement
mentionnés, de même que l'extension \TikZ\ (d'autant qu'elle
dispose d'une excellente documentation en français) ainsi que
l'ensemble de classes KOMA-Script et la classe \classe{memoir}.
Des descriptions des extensions \extension{geometry} et
\extension{fancyhdr} ainsi que de nombreuses extensions
permettant de changer la police de caractères ont également été
rajoutées.

\section*{Conventions typographiques}

Afin de faciliter la lecture de ce document, un certain nombre de
conventions typographiques ont été utilisées :

\begin{itemize}

\item le style \texttt{machine à écrire} est utilisé pour les
      exemples de code \LaTeX, pour les noms des commandes et des
      environnements \LaTeX, pour les noms de fichiers et pour
      les commandes UNIX tapées au clavier ;

\item l'\textit{italique} est utilisé lors de la définition de
      nouveaux termes ainsi que pour les exemples d'arguments et
      d'options des commandes \LaTeX\ ;

\item le style \textsf{linéal} est utilisé pour les noms de
      classes et leurs options ainsi que pour les noms
      d'extensions et leurs options.

\end{itemize}

Par ailleurs, les exemples de code \LaTeX\ sont encadrés afin de
pouvoir les identifier plus facilement et beaucoup sont suivis de
leur résultat, lui aussi encadré.

\section*{Remarques et commentaires}

J'espère que ce manuel sera utile au plus grand nombre et je vous
invite à me faire part de vos remarques et de vos commentaires le
concernant par courriel à l'adresse
\href{mailto:babafou\%2Blatex@babafou.eu.org}{\courriel{babafou+latex@babafou.eu.org}}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\mainmatter

\pagestyle{fancy}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Introduction}
\label{chapitre:introduction}

Ce manuel est destiné à vous apprendre \LaTeX\footnote{Absolument
rien à voir avec le caoutchouc. La fin de « \LaTeX\ » se prononce
comme dans le mot « varech ».} dans la joie et la bonne humeur.
Après l'avoir lu, vous devriez être en mesure d'utiliser \LaTeX\
pour réaliser tous vos documents.

\section{Qu'est-ce que \LaTeX\ ?}
\index{LaTeX@\LaTeX}

\LaTeX\ est un formateur de texte d'une très grande puissance et
qui produit des documents d'une excellente qualité. Il est
utilisé par beaucoup d'étudiants, de chercheurs et d'éditeurs à
travers le monde.

Pour vous donner une idée de ce que \LaTeX\ est capable de faire,
vous pouvez feuilleter ce manuel, il a été entièrement réalisé
avec lui.

\LaTeX\ est une surcouche d'un formateur de texte appelé
\TeX\index{TeX@\TeX} (le nom \TeX\ vient du grec
\textgreek{t'eqnh}, qui veut dire « art » et d'où vient le mot
« technique~»\footnote{Ce qui explique la prononciation de
\LaTeX.}). \TeX\ est extrêmement puissant et dispose d'un langage
permettant de lui ajouter de nouvelles fonctions mais il est d'un
abord assez ardu. \LaTeX, en revanche, est bien plus simple et,
comme il est une surcouche de \TeX, il dispose du même langage,
qui a servi à réaliser de très nombreuses extensions pour \LaTeX.

Cependant, vous vous demandez certainement quel est l'intérêt de
\LaTeX, qui demande un apprentissage certain, par rapport à des
logiciels de traitement de texte plus traditionnels tels
qu'OpenOffice ou Word, qui s'utilisent paraît-il d'une manière
intuitive et ergonomique. Tout est affaire de philosophie.

\section{La philosophie de \LaTeX}

\LaTeX\ n'est pas un traitement de texte à proprement parler,
comme OpenOffice et Word, c'est un \emph{formateur de texte}. Un
document \LaTeX\ est un fichier texte tapé avec n'importe quel
éditeur (Emacs, \intercom{vi}...) et contenant le texte du
document mélangé avec des commandes indiquant sa structure. Ceci
a une conséquence très importante : lors de la frappe, on ne voit
pas le document tel qu'il sera imprimé. On dit que \LaTeX\ n'est
pas \terme{WYSIWYG} (\anglais{what you see is what you get}),
contrairement à OpenOffice et Word. Pour visualiser le document,
il faut le compiler avec \LaTeX, ce qui génère un fichier
PDF\index{PDF} qu'on peut alors visualiser. C'est certainement le
gros inconvénient de \LaTeX\ pour les personnes habituées à voir
le document au fur et à mesure de sa saisie. D'un autre côté,
\LaTeX\ décharge au maximum l'utilisateur des soucis de mise en
page, ce qui lui permet de se concentrer sur la structure et le
contenu de son document.

De plus, puisque qu'il traite le document globalement (et pas au
fur et à mesure de la frappe), \LaTeX\ peut en avoir une vue
d'ensemble et faire de bons choix de mise en page.

En résumé, il faut bien comprendre que \LaTeX\ traite le document
tel qu'on le pense alors qu'OpenOffice et Word ne traitent le
document que tel qu'ils le voient. C'est cette intelligence qui
fait tout l'intérêt de \LaTeX.

\section{\LaTeX\ et la typographie}

La \terme{typographie} est l'art d'assembler des caractères.
Depuis l'invention de l'imprimerie, se sont développées des
règles et des habitudes afin de rendre la présentation d'un texte
agréable au regard. Malheureusement, rares sont les logiciels
WYSIWYG à les respecter.

Par exemple, voyez-vous une différence entre les mots
« efficace » et «~ef{}f{}icace » ? Écrivons-les un peu plus gros
pour bien voir ce qui change :

\begin{framed}
\begin{center}
\Huge
« efficace » et « ef{}f{}icace »
\end{center}
\end{framed}

Dans le premier cas, les deux f et le i sont en quelque sorte
soudés, la fin de la boucle du premier f allant caresser la
naissance de celle du second, les deux barres des f se retrouvant
dans le prolongement l'une de l'autre et finissant au sommet du
i, dont le point se confond avec la fin de la boucle du second f.
C'est ce qu'on appelle une \terme{ligature}.

Dans le second cas, les lettres sont tout simplement distinctes,
les unes à côté des autres.

Les ligatures ont pour objectif de gagner de la place en
réduisant l'espacement entre les lettres mais elles ont également
un intérêt esthétique. \LaTeX, dans la mesure où la police de
caractères utilisée le permet, génère automatiquement les
ligatures adéquates.

De même, comme indiqué précédemment, puisqu'il traite le document
globalement, \LaTeX\ peut jouer sur l'espacement pour uniformiser
le gris typographique, qui est ce qu'on perçoit d'un texte quand
on la regarde d'assez loin.

D'autres aspects typographiques ne peuvent être traités de
manière automatique par \LaTeX\ et nécessitent donc d'être pris
en compte par l'auteur du document. Les ouvrages indiqués dans la
bibliographie sont d'une lecture enrichissante pour qui aime le
beau texte. Les règles typographiques les plus importantes sont
indiquées dans l'annexe \ref{annexe:typographie}. Celles
s'appliquant spécifiquement à l'écriture des mathématiques sont
indiquées au paragraphe \ref{section:math-typo}.

\section{Comment se procurer \LaTeX\ ?}
\label{section:procurer}

Sur un système UNIX, \LaTeX\ fait souvent partie de
l'installation de base. À défaut, il est toujours possible de
l'installer grâce au système d'ajout de logiciels tiers propre à
l'UNIX utilisé. Il existe également des distributions pour Mac OS
X et Windows.

Si vous avez à installer \LaTeX, optez sans hésiter pour la
distribution \TeX\ Live\index{TeX Live@\TeX\
Live}\footnote{\url{http://www.tug.org/texlive/}}, qui fournit un
environnement complet comprenant \LaTeX\ et de nombreuses
extensions, ainsi qu'un système de mise à jour de l'ensemble. Il
s'agit d'un logiciel
libre\footnote{\url{http://fr.wikipedia.org/wiki/Logiciel_libre}}
et téléchargeable gratuitement. Ce manuel a été réalisé avec la
distribution \TeX\ Live.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Votre premier document}

Vous voilà au pied du mur. Dans ce chapitre, vous allez réaliser
votre premier document avec \LaTeX. Vous allez apprendre :

\begin{itemize}

   \item à compiler un document ;

   \item à détecter et à corriger les erreurs qu'il peut contenir ;

   \item à le visualiser.

\end{itemize}

\section{L'édition}

Éditez votre document au moyen de votre éditeur favori (Emacs,
\intercom{vi}...) et tapez ceci :

\begin{exemple}
\documentclass[a4paper,11pt]{article}

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{microtype}

\usepackage{hyperref}

\begin{document}

Voici mon premier document avec \LaTeX.

\end{document}
\end{exemple}

Ne vous inquiétez pas si vous ne comprenez rien à cet exemple, il
sera expliqué dans le chapitre suivant. Néanmoins, prenez bien
garde à le recopier sans erreur.

Enfin, sauvez ce fichier sous le nom \path{premier.tex} (les
documents \LaTeX\ ont, par convention, l'extension
\path{.tex}\index{tex@\path{.tex}}).

\section{La compilation}

La \terme{compilation} est la transformation du fichier que vous
venez de taper en un fichier PDF\index{PDF} directement
visualisable.

Sur un système UNIX\footnote{Si vous utilisez un autre système
d'exploitation, veuillez vous référer à la documentation de votre
distribution \LaTeX\ pour savoir comment générer un fichier
PDF.}, la compilation s'effectue dans un interpréteur de
commandes au moyen de la commande \intercomindex{pdflatex} :

\begin{exemple}
pdflatex premier.tex
\end{exemple}

\LaTeX\ affiche ce qu'il fait au fur et à mesure (il est assez
bavard, aussi la partie centrale de son discours a été
volontairement supprimée) :

\begin{exemple}[fontsize=\footnotesize]
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009 NetBSD/i386)
entering extended mode
(./premier.tex
LaTeX2e <2009/09/24>
[...]
Output written on premier.pdf (1 page, 42535 bytes).
Transcript written on premier.log.
\end{exemple}

Si la compilation s'est correctement déroulée, les deux dernières
lignes seront, au nombre d'octets près, identiques à ce qui
figure ci-dessus.

\section{Les fichiers générés}

Lorsqu'il compile un document, \LaTeX\ génère un certain nombre de
fichiers :

\begin{itemize}

\item un fichier \path{.pdf}\index{pdf@\path{.pdf}}, qui est le
      résultat de la compilation, c'est ce fichier PDF\index{PDF}
      qui est directement visualisable ;

\item un fichier \path{.aux}\index{aux@\path{.aux}}, contenant
      les références croisées\index{références croisées} ;

\item un fichier \path{.log}\index{log@\path{.log}}, contenant
      une trace du processus de la compilation plus détaillée que
      ce qui a été affiché à l'écran.

\end{itemize}

Ces fichiers ont le même nom de base que celui qui a été compilé.
Dans notre exemple, la compilation du fichier \path{premier.tex}
a donc généré les fichiers \path{premier.pdf}, \path{premier.aux}
et \path{premier.log}.

L'extension \extensionindex{hyperref} (nous en reparlerons au
chapitre \ref{chapitre:concepts}) génère pour sa part un fichier
\path{.out}\index{out@\path{.out}} qui contient la table des
matières du document PDF (qui est affichée par la plupart des
logiciels de visualisation à gauche du document).

Suivant la complexité de votre document, \LaTeX\ peut également
créer des fichiers :

\begin{itemize}

\item \path{.toc}\index{toc@\path{.toc}}, contenant la table des
      matières (\anglais{table of contents}) ;

\item \path{.lot}\index{lot@\path{.lot}}, contenant la liste des
      tableaux (\anglais{list of tables}) ;

\item \path{.lof}\index{lof@\path{.lof}}, contenant la liste des
      figures (\anglais{list of figures}) ;

\item \path{.idx}\index{idx@\path{.idx}}, contenant l'index non
      formaté.

\end{itemize}

\section{La détection et la correction des erreurs}

Si vous vous êtes trompé quelque part, un message de ce genre
s'affiche :

\begin{exemple}
! Undefined control sequence.
l.10 Voici mon premier document avec \latex
                                           .
?
\end{exemple}

Lorsqu'il détecte une erreur, \LaTeX\ vous indique :

\begin{itemize}

\item la nature de cette erreur (\texttt{Undefined control
      sequence}) ;

\item la ligne où elle se situe (\texttt{l.10}, ligne 10) ;

\item ainsi que l'endroit précis de cette erreur dans la ligne
      (pour vous l'indiquer, \LaTeX\ passe à la ligne) : ici,
      la commande inconnue est \commande{latex}.

\end{itemize}

Dans ce cas, tapez \taper{x} pour arrêter la compilation,
corrigez l'erreur dans le texte, sauvez-le, puis recompilez.

\section{La visualisation}

Sous UNIX, la façon la plus simple de visualiser un document PDF
est d'utiliser le logiciel \intercom{xpdf} mais on peut également
utiliser \intercom{gv} ou Acrobat Reader.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Les concepts de base de \LaTeX}
\label{chapitre:concepts}

Avant de pouvoir utiliser pleinement \LaTeX\ et de profiter de sa
puissance, il faut comprendre certains concepts. Ce chapitre vous
expliquera l'exemple du chapitre précédent et vous initiera plus
profondément à la philosophie et à l'esprit de \LaTeX.

\section{Le document \LaTeX}

Un document \LaTeX\ est un mélange de texte et de commandes.
Reprenons l'exemple précédent :

\begin{exemple}
\documentclass[a4paper,11pt]{article}

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{microtype}

\usepackage{hyperref}

\begin{document}

Voici mon premier document avec \LaTeX.

\end{document}
\end{exemple}

Comme vous l'avez vu auparavant, tout ceci imprime finalement le
texte : « Voici mon premier document avec \LaTeX », c'est-à-dire
une seule ligne sur les quatorze (en comptant les lignes
blanches) que comporte le fichier. Mais attention, le reste n'est
pas inutile, loin de là ! Ce sont les fameuses commandes.
Examinons la première :

\begin{exemple}
\documentclass[a4paper,11pt]{article}
\end{exemple}

Cette commande est indispensable et doit figurer en première
ligne de tout document \LaTeX. Elle définit la \emph{classe} du
document (ici \classe{article}) ainsi que les \emph{options} à
lui appliquer (ici \classeoption{a4paper} et
\classeoption{11pt}).

\subsection{Syntaxe d'une commande \LaTeX}
\index{commande}

On reconnaît ici la syntaxe générale d'une commande \LaTeX\ :

\begin{syntaxe}
\commande{commande}\option{option}\argument{argument}
\end{syntaxe}

\begin{itemize}

\item une commande commence par une barre oblique inversée
      \code{\textbackslash} ;

\item celle-ci est suivie par le nom de la commande ;

\item viennent ensuite, s'il y en a, les arguments optionnels,
      entre crochets, séparés par des virgules s'il y en a
      plusieurs ;

\item puis les arguments obligatoires, entre accolades, séparés
      par des virgules s'il y en a plusieurs.

\end{itemize}

Voici quelques exemples de commandes :

\begin{itemize}

\item commande sans argument : \\
      \commande{appendix}

\item commande avec argument : \\
      \commande{chapter\{nom\}}

\item commande avec argument optionnel : \\
      \commande{item[nom]}

\item commande avec argument optionnel et argument
      obligatoire : \\
      \commande{cite[page 843]\{the-latex-companion\}}

\end{itemize}

\subsection{La commande \commande{documentclass}}

Revenons à la commande \commandeindex{documentclass} et à ses
arguments.

\subsubsection{La classe d'un document}
\label{section:classe}

La \terme{classe} est l'argument obligatoire de la commande
\commande{documentclass}. Elle définit le type du document et
influe sur sa mise en page et les commandes qu'il est possible
d'utiliser. Il existe plusieurs classes, les principales classes
standards étant :

\begin{description}

\item[\classeindex{article}] qui est utilisée pour les documents
   courts (rapports de projet, de TP...) ;

\item[\classeindex{report}] qui est utilisée pour les documents
   plus longs qui doivent être découpés en chapitres (en effet,
   la classe \classe{article} ne gère pas les chapitres) ;

\item[\classeindex{book}] qui est utilisée pour les livres (il y
   a peu de différences avec la classe \classe{report}) ;

\item[\classeindex{letter}] qui permet d'écrire des lettres ;

\item[\classeindex{slides}] qui permet de faire des transparents.

\end{description}

\subsubsection{Les options de classe}
\index{option de classe}

Les \emph{options de classe}, qui sont les arguments optionnels
de la commande \commande{documentclass}, servent à modifier
globalement la mise en page du document.

Expliquons quelque peu les options utilisées ici :

\begin{description}

\item[\classeoptionindex{a4paper}] permet de régler les
   dimensions et les marges du document pour une impression sur
   du papier au format A4 (cette option est indispensable, sinon
   vous vous retrouverez avec des marges pour papier américain) ;

\item[\classeoptionindex{11pt}] porte la taille des caractères à
   onze points\footnote{Le point est une unité de mesure utilisée
   en typographie. Un point vaut environ 1/72\ieme\ de pouce (1
   pouce valant 2,54 cm).} (il existe aussi une option
   \classeoptionindex{12pt} ; la taille normale, sans option, est
   de dix points ; il existe par cohérence une option
   \classeoptionindex{10pt} qui ne fait rien).

\end{description}

Il existe d'autres options de classe. Parmi elles, citons :

\begin{description}

\item[\classeoptionindex{twocolumn}] qui permet de présenter le
   document sur deux colonnes ;

\item[\classeoptionindex{twoside}] qui permet de régler les
   marges du document pour une impression en recto-verso (dans ce
   cas, la marge intérieure (vers la reliure) est généralement
   plus petite que la marge extérieure).

\end{description}

\subsection{Le préambule}

Le \terme{préambule} est la partie du document comprise entre les
commandes \commande{documentclass} et
\commande{begin\{document\}}. Dans notre exemple, il contient les
commandes de chargement des extensions.

\subsection{Les extensions}

Une \termeanglais{extension}{package} sert à modifier la mise en
page ou à définir de nouvelles commandes. Ce sont les extensions
qui permettent d'ajouter de nouvelles fonctions à \LaTeX. Elles
sont chargées grâce à la commande \commandeindex{usepackage},
utilisée dans le préambule du document.

Expliquons les extensions utilisées dans l'exemple :

\begin{description}

\item[\extensionindex{babel},] utilisée avec l'option
   \extensionoptionindex{french}, adapte \LaTeX\ aux conventions
   typographiques et aux règles de coupure des mots françaises et
   redéfinit quelques noms en bon français, comme par exemple
   « Table des matières » ou « Chapitre » au lieu respectivement
   de « \anglais{Contents} » et «~\anglais{Chapter} ».

\item[\extensionindex{fontenc},] utilisée avec l'option
   \extensionoptionindex{T1}, demande à \LaTeX\ d'utiliser le
   codage de caractères T1 (c'est le nouveau standard \LaTeX\
   pour le codage des caractères mais il n'est pas encore utilisé
   par défaut, d'où la nécessité d'utiliser cette extension).

\item[\extensionindex{inputenc}] indique, grâce à l'option
   \extensionoptionindex{utf8}, que le fichier est codé en
   UTF-8\index{UTF-8} (il existe également une option
   \extensionoptionindex{latin9} pour les fichiers codés en ISO
   8859-15\index{ISO 8859-15} et une option
   \extensionoptionindex{latin1} pour les fichiers codés en ISO
   8859-1\index{ISO 8859-1}). Signalons également l'existence
   d'une option \extensionoptionindex{utf8x}. Malheureusement non
   maintenue depuis plusieurs années, elle peut néanmoins
   toujours être
   téléchargée\footnote{\url{http://www.unruh.de/DniQ/latex/unicode/}}
   et permet d'utiliser un plus grand nombre de caractères UTF-8
   que l'option \extensionoption{utf8}.

\item[\extensionindex{lmodern}] permet d'utiliser la police de
   caractères Latin Modern, mieux adaptée à la génération de
   fichiers PDF que la police par défaut (qui a par ailleurs
   exactement le même dessin). Cette police de caractères a
   vocation à devenir celle utilisée par défaut dans une future
   version de \LaTeX.

\item[\extensionindex{microtype}] apporte des raffinements
   typographiques supplémentaires (en particulier l'ajustement de
   l'espacement permettant une meilleure coupure des mots).

\item[\extensionindex{hyperref}] permet de profiter des
   possibilités de navigation au sein d'un document PDF sans rien
   avoir à faire de spécial. Grâce à elle, les références
   croisées, références bibliographiques, notes et URL présentes
   dans le document deviendront des hyperliens menant vers
   l'élément pointé. Une table des matières navigable
   accompagnera également le document.

\end{description}

L'utilisation de ces extensions dans tous vos documents est
vivement conseillée.

Par ailleurs, l'ordre dans lequel les extensions sont chargées
est généralement sans importance. Aussi est-il astucieux de les
charger dans l'ordre alphabétique (ce qui est fait dans l'exemple
de document) afin de pouvoir s'y retrouver rapidement lorsque de
nombreuses extensions sont utilisées. L'exception confirmant la
règle, l'extension \extensionindex{hyperref} doit toujours être
chargée en dernier parce qu'elle redéfinit des commandes
provenant d'autres extensions. C'est pourquoi, dans notre
exemple, elle figure en dernier et séparée des autres extensions
par une ligne blanche, afin de bien souligner son caractère
particulier.

Il existe beaucoup d'autres extensions. Nous en verrons quelques
unes par la suite.

\subsection{Le document}
\index{document@\environnement{document} (environnement)}

Le document à proprement parler est contenu entre
\commande{begin\{document\}} et \commande{end\{document\}}. Tout
texte placé après \commande{end\{document\}} est ignoré.

On remarque ici une structure très utilisée en \LaTeX\ : la
structure d'\emph{environnement} (voir le chapitre
\ref{chapitre:environnements} pour une description complète des
environnements de \LaTeX).

\section{Structure du document}

\subsection{Les paragraphes}
\index{paragraphe}

Un document \LaTeX\ est composé de \emph{paragraphes} séparés les
uns des autres par une ou plusieurs lignes blanches :

\begin{exemple}
Voici un paragraphe assez court.

Ici commence un autre paragraphe. Comme vous le voyez,
les fins de ligne n'ont aucune importance sur le
formatage du paragraphe. Seules les lignes blanches
comptent.

Enfin, le dernier paragraphe conclut cet exemple.
\end{exemple}

Ce qui produit le résultat suivant :

\begin{framed}
Voici un paragraphe assez court.

Ici commence un autre paragraphe. Comme vous le voyez,
les fins de ligne n'ont aucune importance sur le
formatage du paragraphe. Seules les lignes blanches
comptent.

Enfin, le dernier paragraphe conclut cet exemple.
\end{framed}

\subsection{Les mots}
\index{mot}

Un paragraphe est composé de \emph{mots} séparés par des signes
de ponctuation ou des espaces\index{espace} (un retour à la ligne
est considéré comme une espace). Vous pouvez insérer entre deux
mots autant d'espaces que vous voulez (mais une seule fera
parfaitement l'affaire). Ainsi, les deux textes suivants
produiront le même résultat :

\begin{exemple}
Voici un exemple de texte, avec des espaces.
\end{exemple}

\begin{exemple}
Voici       un           exemple
   de     texte,          avec
        des   espaces.
\end{exemple}

Comme un retour à la ligne est équivalent à une espace,
profitez-en pour couper vos paragraphes en fin de ligne. Tout bon
éditeur de texte est capable de faire cela automatiquement ainsi
que de reformater au propre un paragraphe dont les lignes ont des
longueurs disparates. En effet, avec un éditeur de texte, il est
plus facile de se déplacer avec les touches fléchées dans un
paragraphe composé de plusieurs lignes que dans un paragraphe qui
tient en une seule ligne et il est plus agréable de lire un texte
correctement présenté qu'une grande ligne dont certains mots
commencent au bord droit de la fenêtre pour se poursuivre au bord
gauche de la ligne suivante.

\subsection{L'espace insécable : \code{\textasciitilde}}

Dans certains cas, il faut empêcher \LaTeX\ de séparer deux mots en fin de
ligne, comme ici :

\begin{resultat}
Vous souvenez-vous de la série télé dans laquelle le héros
porte le numéro 6 ?
\end{resultat}

Le « 6 » seul en début de ligne est du plus mauvais effet.

On aimerait pouvoir coller ce « 6 » au mot qui le précède pour
que \LaTeX\ ne les sépare jamais (c'est beau l'amour !). Ceci est
possible grâce au caractère
\code{\textasciitilde}\index{~@\code{\textasciitilde} (espace insécable)}.
Ce caractère représente une \terme{espace insécable}, qui est
considérée comme une espace (et donc apparaîtra comme tel à
l'impression), mais \LaTeX\ ne séparera jamais en fin de ligne
les deux mots qu'elle lie pour le meilleur et pour le pire :

\begin{filecontents*}{\jobname.tmp}
Vous souvenez-vous de la série télé dans laquelle le héros
porte le numéro~6 ?
\end{filecontents*}
\exempleresultat{\jobname.tmp}

N'utilisez pas systématiquement l'espace insécable, cela nuit à
la lisibilité du source. Attendez d'avoir complètement fini la
rédaction de votre document pour y insérer éventuellement des
espaces insécables, au cas par cas.

\subsection{Les commentaires}

\LaTeX\ permet d'inclure des
\emph{commentaires}\index{commentaire} dans le texte. Ceux-ci ne
seront pas imprimés. Ils peuvent servir de points de repère à
l'auteur, lui rappeler qu'il n'a pas fini d'écrire un paragraphe,
etc.

Un commentaire commence par un
\code{\%}\index{%@\code{\%} (commentaire)} et se termine à la fin
de la ligne :

\begin{exemple}
Ceci est du texte normal.   % ceci est un commentaire
Ceci est la suite du texte.
\end{exemple}

\section{Caractères spéciaux utilisés par \LaTeX}

Vous avez remarqué que certains caractères ont une signification
spéciale pour \LaTeX. Ainsi, le \code{\textbackslash} indique une
commande, le \code{\textasciitilde} une espace insécable et le
\code{\%} un commentaire.

Il existe dix caractères réservés :

\begin{exemple}
$ & % # _ { } ~ ^ \
\end{exemple}
%stopzone
\index{$@\code{\$} (caractère réservé)}
%stopzone
\index{&@\code{\&} (caractère réservé)}
\index{%@\code{\%} (caractère réservé)}
\index{#@\code{\#} (caractère réservé)}
\index{_@\code{\_} (caractère réservé)}
%\index{{@\code{\{} (caractère réservé)}
%\index{}@\code{\}} (caractère réservé)}
\index{^@\code{\textasciicircum} (caractère réservé)}
\index{~@\code{\textasciitilde} (caractère réservé)}
\index{\@\code{\textbackslash} (caractère réservé)}

Ceux-ci ne peuvent donc pas être imprimés tels quels.

Pour les sept premiers, il existe une commande spéciale
consistant en un \code{\textbackslash} (puisque c'est une
commande) suivi du caractère en question :

\begin{filecontents*}{\jobname.tmp}
\$ \& \% \# \_ \{ \}
\end{filecontents*}
\exempleresultat{\jobname.tmp}
\index{$@\commande{\$} (\$)}
%stopzone
\index{&@\commande{\&} (\&)}
\index{%@\commande{\%} (\%)}
\index{#@\commande{\#} (\#)}
\index{_@\commande{\_} (\_)}
%\index{{@\commande{\{} (\{)}
%\index{}@\commande{\}} (\})}

Pour les trois autres, on peut utiliser les commandes
\commande{textasciitilde}\index{textasciitilde@\commande{textasciitilde} (\textasciitilde)},
\commande{textasciicircum}\index{textasciicircum@\commande{textasciicircum} (\textasciicircum)}
et
\commande{textbackslash}\index{textbackslash@\commande{textbackslash} (\textbackslash)} :

\begin{filecontents*}{\jobname.tmp}
\textasciitilde \textasciicircum \textbackslash
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Les problèmes de coupure des mots : \texttt{Overfull
\textbackslash hbox}}
\index{coupure des mots}
\index{Overfull hbox@\texttt{Overfull \textbackslash hbox}}

Il arrive parfois que \LaTeX\ ne sache pas à quel endroit couper
un mot en fin de ligne. Et, plutôt que de le couper n'importe où,
il préfère ne rien faire. Dans ce cas, le mot en question dépasse
de la marge droite et \LaTeX\ génère l'avertissement suivant :

\begin{exemple}[fontsize=\small]
Overfull \hbox (63.46103pt too wide) in paragraph at lines 99--99
\end{exemple}

L'avertissement \texttt{Overfull \textbackslash hbox} signifie
que quelque chose dépasse de la marge droite. \LaTeX\ signale de
combien le texte dépasse (\texttt{63.46103pt}, c'est précis) et à
quel endroit du fichier source se situe le problème
(\texttt{lines 99--99}).

Rassurez-vous, cela n'arrive que très rarement. Dans ce cas, il
est possible de préciser à \LaTeX\ où il doit couper le mot. Pour
cela, repérez l'endroit approprié en visualisant le document PDF
et placez dans le texte la commande
\commande{-}@\index{-@\commande{-} (coupure des mots)} où vous
voulez que \LaTeX\ coupe le mot :

\begin{exemple}
Je veux cou\-per ici.
\end{exemple}

La commande \commande{-} agit sur le formatage du reste du
paragraphe, puisqu'une partie du mot va se retrouver sur la ligne
suivante et décaler la suite du texte. Il se peut donc que
d'autres avertissements de coupure des mots apparaissent ou
disparaissent. C'est pourquoi il est préférable de n'effectuer
vos coupures manuelles qu'après avoir terminé la rédaction de
votre document, une par une, en vérifiant à chaque fois le
résultat (on peut le faire visuellement avec le document PDF,
mais il suffit que le message \texttt{Overfull \textbackslash
hbox} ait disparu pour être sûr d'avoir bien effectué la césure).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Les commandes de \LaTeX}

Les \emph{commandes}\index{commande} sont fréquemment utilisées
avec \LaTeX. Que ce soit pour structurer le document, pour
produire certains caractères ne figurant pas sur le clavier, etc.

\section{Syntaxe d'une commande}
\index{commande!syntaxe}

Voici la syntaxe d'une commande \LaTeX\ :

\begin{syntaxe}
\commande{commande}\option{option}\argument{argument}
\end{syntaxe}

\begin{itemize}

\item une commande commence par une barre oblique inversée
      \codeindex{\textbackslash} ;

\item celle-ci est suivie par le nom de la commande ;

\item viennent ensuite, s'il y en a, les arguments optionnels,
      entre crochets, séparés par des virgules s'il y en a
      plusieurs ;

\item puis les arguments obligatoires, entre accolades, séparés
      par des virgules s'il y en a plusieurs.

\end{itemize}

Certaines commandes ont une
\emph{forme étoilée}\index{forme étoilée!commande}\index{commande!forme étoilée},
qui est une variante de la commande. Pour obtenir la forme
étoilée d'une commande, il suffit de rajouter une étoile entre le
nom de la commande et ses arguments :

\begin{syntaxe}
\commande{commande*}\option{option}\argument{argument}
\end{syntaxe}

\section{La page de titre}
\index{page de titre}

\LaTeX\ permet d'imprimer une page de titre en début de document
à partir d'informations contenues dans le préambule :

\begin{description}

\item[\commandeindex{title}\argument{titre}] indique le titre du
   document.

\item[\commandeindex{author}\argument{nom}] indique le nom de
   l'auteur du document. S'il y a plusieurs auteurs, leurs noms
   doivent être séparés par \commandeindex{and}.

\item[\commandeindex{date}\argument{date}] indique la date du
   document.

\end{description}

On peut utiliser \boiboiindex\ dans les arguments de ces
commandes pour forcer un passage à la ligne si nécessaire.

Les commandes \commande{title} et \commande{author} sont
obligatoires. Si la commande \commande{date} n'est pas utilisée,
la date du jour de la compilation est indiquée automatiquement.

Si l'on ne veut pas de la date, il suffit d'écrire :

\begin{exemple}
\date{}
\end{exemple}

Pour imprimer la page de titre, il faut appeler la commande
\commandeindex{maketitle} juste après le
\commande{begin\{document\}}.

Voici un exemple de document avec une page de titre :

\begin{exemple}
\documentclass[a4paper,11pt]{report}

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{microtype}

\usepackage{hyperref}

\title{Ceci est le titre \\ et la suite}
\author{babafou \and babasse}
\date{26 février 1994}

\begin{document}

\maketitle

[...]
\end{exemple}

On peut annoter le titre, l'auteur ou la date grâce à la commande
\commandeindex{thanks}, qui insère une note de bas de page :

\begin{exemple}
\title{Titre avec note\thanks{voici la note}}
\end{exemple}

Pour les classes \classe{report} et \classe{book}, la page de
titre est imprimée seule au milieu d'une page alors que pour la
classe \classe{article}, elle est imprimée en haut de la première
page. Dans ce cas, pour avoir la page de titre toute seule, il
faut utiliser l'option de classe \classeoptionindex{titlepage}.

Cette page de titre est, il est vrai, assez sobre. Néanmoins, il
est possible de personnaliser sa mise en page grâce à
l'environnement \environnement{titlepage} (voir le paragraphe
\ref{section:titlepage}).

\section{Commandes de hiérarchisation du document}

Hiérarchiser un document (l'organiser en parties, chapitres,
sections, sous-sections...) est l'une des choses les plus faciles
à faire avec \LaTeX. Pour cela, on utilise les commandes du
tableau \ref{tableau:hierarchisation}.

\begin{table}[!htbp]
\centering
\begin{tabular}{l@{\hspace{10mm}}l}
\toprule
\commandeindex{part}\argument{nom}    & \commandeindex{subsection}\argument{nom}    \\
\commandeindex{chapter}\argument{nom} & \commandeindex{subsubsection}\argument{nom} \\
\commandeindex{section}\argument{nom} &                                        \\
\bottomrule
\end{tabular}
\caption{Commandes de hiérarchisation}
\label{tableau:hierarchisation}
\end{table}

La commande \commande{chapter} n'est pas disponible dans la
classe \classe{article}. C'est pourquoi on utilise les classes
\classe{report} ou \classe{book} lorsqu'on a besoin de faire des
chapitres et la classe \classe{article} sinon.

Les commandes de hiérarchisation affichent un numéro, généré
automatiquement, suivi de leur argument dans un corps plus
important que celui du texte et fonction de leur niveau
hiérarchique (un titre de chapitre sera plus grand qu'un titre de
section). Ainsi, le titre de cette section a été obtenu ainsi :

\begin{exemple}
\section{Commandes de hiérarchisation du document}
\end{exemple}

Ce qui est très intéressant, c'est que c'est \LaTeX\ qui gère tout seul la
numérotation. On peut insérer des chapitres, des sections ou modifier leur
ordre sans se soucier du décalage des numéros.

Avec la même simplicité, la commande
\commandeindex{tableofcontents}\index{table des matières} imprime
la table des matières. Il faut deux compilations successives pour
avoir une table des matières à jour. La première compilation
enregistre la table des matières dans un fichier
\path{.toc}\index{toc@\path{.toc}}\footnote{\path{.toc} pour
\anglais{table of contents}.} et la seconde l'inclut dans le
document.

Il existe également une commande \commandeindex{listoftables},
qui imprime la liste des tableaux et une commande
\commandeindex{listoffigures}, qui imprime la liste des figures
(voir le paragraphe \ref{section:table-figure}). Pour que ces
listes soient à jour, il faut aussi deux compilations successives
(mettant en jeu les fichiers
\path{.lot}\index{lot@\path{.lot}}\footnote{\path{.lot} pour
\anglais{list of tables}.} et
\path{.lof}\index{lof@\path{.lof}}\footnote{\path{.lof} pour
\anglais{list of figures}.}).

\subsection{Forme étoilée}
\index{part*@\commande{part*}}
\index{chapter*@\commande{chapter*}}
\index{section*@\commande{section*}}
\index{subsection*@\commande{subsection*}}
\index{subsubsection*@\commande{subsubsection*}}

Chaque commande de hiérarchisation a une forme étoilée qui ne
numérote pas son titre, ne modifie pas la numérotation des autres
titres de même niveau et ne produit pas d'entrée dans la table
des matières. Ces formes étoilées sont principalement utilisées à
la place des commandes normales dans les documents très courts et
dans les cas où la numérotation n'est pas nécessaire.

Par exemple, le titre de l'avant-propos a été obtenu ainsi :

\begin{exemple}
\chapter*{Avant-propos}
\end{exemple}

On peut néanmoins faire apparaître le titre dans la table des
matières grâce à la commande :

\begin{syntaxe}
\commandeindex{addcontentsline}\code{\{toc\}}\argument{niveau}\argument{titre}
\end{syntaxe}

\noindent qui fera apparaître \var{titre} dans la table des
matières, au niveau \var{niveau} (qui peut être \code{part},
\code{chapter}, \code{section}, \code{subsection} ou
\code{subsubsection}). Cette commande est à utiliser
immédiatement après la forme étoilée. Par exemple, pour inclure
l'avant-propos dans la table des matières, j'ai utilisé :

\begin{exemple}
\chapter*{Avant-propos}
\addcontentsline{toc}{chapter}{Avant-propos}
\end{exemple}

\subsection{Annexes}

Enfin, la commande \commandeindex{appendix}\index{annexe} permet
de signaler à \LaTeX\ que les chapitres (pour les classes
\classe{report} et \classe{book}) ou les sections (pour la classe
\classe{article}) qui suivront doivent être considérées comme des
annexes. Les annexes sont numérotées A, B, etc.

\section{Construire un document à partir de plusieurs fichiers}

Un document volumineux, par exemple un livre comprenant de
nombreux chapitres, peut tout à fait être contenu dans un seul
fichier. Mais on peut également vouloir le construire à partir de
plusieurs fichiers. On peut pour cela utiliser un fichier par
chapitre et un fichier principal contenant la structure du
document ainsi que les commandes permettant d'inclure les
fichiers correspondant aux chapitres.

La commande \commandeindex{include} permet d'inclure un fichier
dans un document. Son argument est le nom du fichier à inclure,
sans son extension \path{.tex} :

\begin{syntaxe}
\commandeindex{include}\argument{fichier}
\end{syntaxe}

Le fichier principal de notre livre peut donc ressembler à :

\begin{exemple}
\documentclass[a4paper,11pt]{book}

[...]

\begin{document}

\maketitle

\include{introduction}
\include{these}
\include{antithese}
\include{synthese}
\include{conclusion}

\end{document}
\end{exemple}

Chacun des fichiers inclus contient un chapitre donc commence par
la commande \commande{chapter}, suivie du contenu du chapitre.

La commande \commande{include} a une particularité, elle génère
une nouvelle page avant d'inclure le contenu du fichier et une
nouvelle page après. Ceci ne pose pas de problème si les fichiers
inclus correspondent à des chapitres puisque ceux-ci sont mis en
page de cette façon. En revanche, cela peut être gênant si le
document utilise par exemple la classe \classe{article} et que
les fichiers inclus correspondent à des sections.

Dans ce cas, on utilise plutôt la commande
\commandeindex{input} :

\begin{syntaxe}
\commandeindex{input}\argument{fichier}
\end{syntaxe}

Comme la commande \commande{include}, la commande
\commande{input} permet d'inclure le fichier dont le nom lui est
passé en argument (avec ou sans son extension \path{.tex}) mais
ne génère pas de nouvelle page avant ou après d'inclure le
contenu du fichier.

\section{Commandes d'annotation du document}

On peut très facilement annoter un document en utilisant des
notes de bas de page ou des notes dans la marge.

\subsection{Les notes de bas de page}
\index{note!note de bas de page}

Une note de bas de page\footnote{Ceci est une note de bas de
page.} s'obtient très facilement grâce à la commande

\begin{syntaxe}
\commandeindex{footnote}\argument{note}
\end{syntaxe}

\begin{exemple}
Une note de bas de page\footnote{Ceci est une note de bas de
page.} s'obtient [...]
\end{exemple}

\LaTeX\ s'occupe automatiquement de la numérotation.

\subsection{Les notes dans la marge}
\index{note!note dans la marge}

Une note dans la marge\marginpar{Ceci est une note dans la
marge.} s'obtient aussi facilement grâce à la commande :

\begin{syntaxe}
\commandeindex{marginpar}\option{texte de gauche}\argument{texte de droite}
\end{syntaxe}

\begin{exemple}
Une note dans la marge\marginpar{Ceci est une note dans la
marge.} s'obtient [...]
\end{exemple}

Si la note est située dans la marge gauche et que l'argument
optionnel \var{texte de gauche} est précisé, celui-ci est
utilisé. Dans les autres cas, \var{texte de droite} est utilisé.

\section{Les références croisées}
\label{section:references}
\index{références croisées}

Avec \LaTeX, il est très facile de faire référence à un objet du
document (page, chapitre, tableau, équation...).

La commande \commandeindex{label}\argument{nom} permet de placer
un repère, invisible à l'impression, sur l'objet du document
auquel on veut se référer.

La commande \commandeindex{ref}\argument{nom} permet de faire
référence au numéro de l'objet repérée par \var{nom}. Bien
entendu, il doit s'agir de quelque chose de numéroté comme un
chapitre, un tableau, une équation...

La commande \commandeindex{pageref}\argument{nom} permet de faire
référence au numéro de la page où se trouve le repère \var{nom}.

Ainsi, un repère a été placé sur cette section de la façon
suivante :

\begin{exemple}
\section{Les références croisées}
\label{section:references}
\end{exemple}

On peut alors faire référence au numéro de ce paragraphe
(\ref{section:references}, n'est-ce pas ?) par la commande :

\begin{exemple}
\ref{section:references}
\end{exemple}

\begin{exemple}
On peut alors faire référence au numéro de ce paragraphe
(\ref{section:references}, n'est-ce pas ?) par la commande :
\end{exemple}

\noindent et à la page où elle débute
(\pageref{section:references}, on dirait) par :

\begin{exemple}
\pageref{section:references}
\end{exemple}

\begin{exemple}
et à la page où elle débute (\pageref{section:references},
on dirait) par :
\end{exemple}

La séquence précédente a été réalisée sans trucages !

L'argument de la commande \commande{label} est une combinaison de
lettres (en ASCII, sans accents), de chiffres et de signes de
ponctuation. Il est pratique d'utiliser une chaîne de la forme
\Verb[commandchars=\\\{\}]+\var{\textrm{type}}:\var{\textrm{nom}}+
où \var{type} représente le type de la chose référencée
(\code{chapitre} pour un chapitre, \code{section} pour une
section, \code{tableau} pour un tableau, \code{figure} pour une
figure, \code{equation} pour une équation...) afin de distinguer
tout de suite de quoi on parle et où \var{nom} fait directement
référence à l'objet repéré. Ainsi, le texte avec lequel cette
section est repérée est \verb+section:references+ parce que c'est
une section parlant des références croisées. C'est clair.

\section{Caractères spéciaux}

Certains symboles, certains caractères ne figurent pas sur les
claviers. Heureusement, \LaTeX\ met à votre disposition une série
de commandes permettant de les imprimer.

\subsection{Symboles}

\LaTeX\ définit des commandes permettant d'imprimer divers
symboles (voir le tableau \ref{tableau:symboles}) ainsi que des
symboles utilisés en français et dans des langues étrangères
(voir le tableau \ref{tableau:langues}).

\begin{table}[!htbp]
\centering
\begin{tabular}{ll*{2}{@{\hspace{15mm}}ll}}
\toprule
\dag       & \commande{dag}
&
\S         & \commande{S}
&
\copyright & \commande{copyright}
\\
\ddag      & \commande{ddag}
&
\P         & \commande{P}
&
\pounds    & \commande{pounds}
\\
\bottomrule
\end{tabular}
\caption{Symboles divers}
\label{tableau:symboles}
\index{dag@\commande{dag} (\dag)}
\index{ddag@\commande{ddag} (\ddag)}
\index{S@\commande{S} (\S)}
\index{P@\commande{P} (\P)}
\index{copyright@\commande{copyright} (\copyright)}
\index{pounds@\commande{pounds} (\pounds)}
\end{table}

\begin{table}[!htbp]
\centering
\begin{tabular}{ll*{3}{@{\hspace{15mm}}ll}}
\toprule
\oe & \commande{oe} & \aa & \commande{aa}
&
\l  & \commande{l}  & ?`  & \code{?{}`}
\\
\OE & \commande{OE} & \AA & \commande{AA}
&
\L  & \commande{L}  & !`  & \code{!{}`}
\\
\ae & \commande{ae} & \o  & \commande{o}
&
\ss & \commande{ss} &     &
\\
\AE & \commande{AE} & \O  & \commande{O}
&
    &               &     &
\\
\bottomrule
\end{tabular}
\caption{Symboles pour le français et les langues étrangères}
\label{tableau:langues}
\index{oe@\commande{oe} (\oe)}
\index{OE@\commande{OE} (\OE)}
\index{ae@\commande{ae} (\ae)}
\index{AE@\commande{AE} (\AE)}
\index{aa@\commande{aa} (\aa)}
\index{AA@\commande{AA} (\AA)}
\index{o@\commande{o} (\o)}
\index{O@\commande{O} (\O)}
\index{l@\commande{l} (\l)}
\index{L@\commande{L} (\L)}
\index{ss@\commande{ss} (\ss)}
\index{?`@\code{?{}`} (?`)}
\index{"!`@\code{"!{}`} ("!`)}
\end{table}

Pour utiliser les commandes des trois premières colonnes du
tableau \ref{tableau:langues} au sein d'un mot, il est nécessaire de
les entourer d'accolades afin d'éviter toute ambiguïté. En effet,
\code{c\textbackslash oeur} contient-il la commande \commande{oe},
\commande{oeu} ou \commande{oeur} ? Ainsi, « c{\oe}ur » s'écrit
\code{c\{\textbackslash oe\}ur}.

Notez que les deux commandes de la dernière colonne du tableau
\ref{tableau:langues} sont assez particulières puisqu'elles ne
commencent pas par un \code{\textbackslash}.

Signalons aussi l'existence de la commande
\code{-{}-}\index{--@\code{-{}-} (--)} qui imprime un tiret
utilisé pour les intervalles de nombres (comme dans 93--94) et de
la commande \code{-{}-{}-}\index{---@\code{-{}-{}-} (---)} qui
imprime un tiret de ponctuation --- comme celui-ci.

\LaTeX\ définit également trois commandes permettant d'imprimer
les logos \TeX\ (\commandeparindex{TeX}{\TeX}), \LaTeX\
(\commandeparindex{LaTeX}{\LaTeX}) et \LaTeXe\
(\commandeparindex{LaTeXe}{\LaTeXe}).

Voyons donc ce que donne le texte suivant :

\begin{filecontents*}{\jobname.tmp}
Essai des commandes \TeX et \LaTeX dans un texte.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Ce n'est pas exactement ce à quoi nous nous attendions, parce que
les mots « et » et « dans » sont collés aux logos qui les
précédent. En effet, \LaTeX\ ignore toute espace (une ou
plusieurs) suivant une commande sans argument (ce qui est le cas
des commandes \commande{TeX}, \commande{LaTeX} et
\commande{LaTeXe}). Il y a trois façons de corriger cela :

\begin{itemize}

\item utiliser la commande \verb*+\ +\index{ @\verb*+\ +} (barre
      oblique inversée, espace) qui imprime une espace :

\begin{exemple}
Essai des commandes \TeX\ et \LaTeX\ dans un texte.
\end{exemple}

\item mettre un argument vide :

\begin{exemple}
Essai des commandes \TeX{} et \LaTeX{} dans un texte.
\end{exemple}

\item mettre la commande entre accolades (c'est ce qu'on appelle
      des \emph{accolades de groupement}\index{accolades de groupement}) :

\begin{exemple}
Essai des commandes {\TeX} et {\LaTeX} dans un texte.
\end{exemple}

\end{itemize}

Ces méthodes sont équivalentes (elles produisent exactement le
même résultat) mais la première est plus élégante et donne un
texte source plus facile à lire.

Enfin, l'extension
\extensionindex{eurosym}\footnote{\url{http://www.theiling.de/eurosym.html.en}}
définit la commande \commandeparindex{euro}{\euro} qui affiche le
symbole \euro\ :

\begin{filecontents*}{\jobname.tmp}
Ce livre vaut 10 \euro\ et celui-ci en vaut 15.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\noindent ainsi que la commande \commandeparindex{EUR}{\euro},
qui fait suivre son argument d'une espace fine insécable (il est
donc assez pratique d'utiliser cette commande plutôt que de
rajouter des espaces insécables si nécessaire) puis du symbole
\euro\ :

\begin{filecontents*}{\jobname.tmp}
Ce livre vaut \EUR{10} et celui-ci en vaut 15.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\subsection{Les lettres accentuées}
\index{accents}

\LaTeX\ définit aussi des commandes permettant d'imprimer toutes
sortes de lettres accentuées (voir le tableau
\ref{tableau:accents}).

\begin{table}[!htbp]
\centering
\begin{tabular}{ll*{3}{@{\hspace{15mm}}ll}}
\toprule
\`{e}  & \commande{`\{e\}}                & \~{n} & \commande{\textasciitilde\{n\}}
&
\u{e}  & \commande{u\{e\}}                & \c{c} & \commande{c\{c\}}
\\
\'{e}  & \commande{'\{e\}}                & \={e} & \commande{=\{e\}}
&
\v{e}  & \commande{v\{e\}}                & \d{e} & \commande{d\{e\}}
\\
\^{e}  & \commande{\textasciicircum\{e\}} & \.{e} & \commande{.\{e\}}
&
\H{e}  & \commande{H\{e\}}                & \b{e} & \commande{b\{e\}}
\\
\"{e}  & \commande{"\{e\}}                &       &
&
\t{ee} & \commande{t\{ee\}}               &       &
\\
\bottomrule
\end{tabular}
\caption{Commandes d'accentuation}
\label{tableau:accents}
\index{`@\commande{`} (\`{e})}
\index{'@\commande{'} (\'{e})}
\index{^@\commande{\textasciicircum} (\^{e})}
\index{""@\commande{""} (\"{e})}
\index{~@\commande{\textasciitilde} (\~{n})}
\index{=@\commande{=} (\={e})}
\index{.@\commande{.} (\.{e})}
\index{u@\commande{u} (\u{e})}
\index{v@\commande{v} (\v{e})}
\index{H@\commande{H} (\H{e})}
\index{t@\commande{t} (\t{ee})}
\index{c@\commande{c} (\c{c})}
\index{d@\commande{d} (\d{e})}
\index{b@\commande{b} (\b{e})}
\end{table}

Néanmoins, ces commandes sont d'un usage assez lourd. \LaTeX\
permet donc d'utiliser, pour certaines d'entre elles, les formes
simplifiées présentées dans le tableau
\ref{tableau:accents-simples}.

\begin{table}[!htbp]
\centering
\begin{tabular}{ll@{\hspace{15mm}}ll}
\toprule
\`e & \commande{`e}                 & \~n & \commande{\textasciitilde n}
\\
\'e & \commande{'e}                 & \=e & \commande{=e}
\\
\^e & \commande{\textasciicircum e} & \.e & \commande{.e}
\\
\"e & \commande{"e}                 &     &
\\
\bottomrule
\end{tabular}
\caption{Commandes simplifiées d'accentuation}
\label{tableau:accents-simples}
\index{`@\commande{`} (\`e)}
\index{'@\commande{'} (\'e)}
\index{^@\commande{\textasciicircum} (\^e)}
\index{""@\commande{""} (\"e)}
\index{~@\commande{\textasciitilde} (\~n)}
\index{=@\commande{=} (\=e)}
\index{.@\commande{.} (\.e)}
\end{table}

Pour placer un accent sur un i ou un j, utilisez les commandes
\commandeparindex{i}{\i} (\i) ou \commandeparindex{j}{\j} (\j),
qui produisent des lettres sans point, en argument des commandes
du tableau \ref{tableau:accents}.

Voici un exemple de texte en français utilisant des caractères
accentués :

\begin{exemple}
Les caract\`eres accentu\'es sont tr\`es utilis\'es en
fran\c{c}ais. Il est donc absolument indispensable de
conna\^{\i}tre les commandes d'accentuation.
\end{exemple}

Bien entendu, une saisie directe des caractères accentués est
amplement préférable, lorsqu'elle est possible :

\begin{exemple}
Les caractères accentués sont très utilisés en
français. Il est donc absolument indispensable de
connaître les commandes d'accentuation, sauf quand
on peut taper les caractères accentués directement.
\end{exemple}

\section{Commandes et déclarations de changement de style}
\label{section:style}

\LaTeX\ permet de changer le style des caractères au moyen des
commandes figurant dans le tableau \ref{tableau:style-commandes}.
Le résultat des commandes de la première colonne est indiqué dans
celle du milieu. Ces commandes prennent leur nom (pour les deux
dernières lettres) de leur signification en anglais comme indiqué
dans la dernière colonne.

\begin{table}[!htbp]
\centering
\begin{tabular}{lll}
\toprule
\multicolumn{1}{c}{\textbf{Commande}}	&
\multicolumn{1}{c}{\textbf{Résultat}}	&
\multicolumn{1}{c}{\textbf{Signification}}	\\
\midrule
\commande{textup\{droit\}}		& \textup{droit}		& \textup{upright}	\\	
\commande{textit\{italique\}}		& \textit{italique}		& \textit{italic}	\\
\commande{textsl\{incliné\}}		& \textsl{incliné}		& \textsl{slanted}	\\
\commande{textsc\{petites capitales\}}	& \textsc{petites capitales}	& \textsc{small caps}	\\
\commande{textmd\{maigre\}}		& \textmd{maigre}		& \textmd{medium}	\\
\commande{textbf\{gras\}}		& \textbf{gras}			& \textbf{boldface}	\\
\commande{textrm\{romain\}}		& \textrm{romain}		& \textrm{roman}	\\
\commande{textsf\{linéal\}}		& \textsf{linéal}		& \textsf{sans serif}	\\
\commande{texttt\{machine à écrire\}}	& \texttt{machine à écrire}	& \texttt{typewriter} \\
\bottomrule
\end{tabular}
\caption{Commandes de changement de style}
\label{tableau:style-commandes}
\index{textup@\commande{textup}}
\index{textit@\commande{textit}}
\index{textsl@\commande{textsl}}
\index{textsc@\commande{textsc}}
\index{textmd@\commande{textmd}}
\index{textbf@\commande{textbf}}
\index{textrm@\commande{textrm}}
\index{textsf@\commande{textsf}}
\index{texttt@\commande{texttt}}
\end{table}

Ces commandes modifient uniquement le style de leur argument, le
texte qui suit n'est pas affecté :

\begin{filecontents*}{\jobname.tmp}
Je mets le mot suivant en \textit{italique}.
Le reste du texte est normal.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Il est possible d'imbriquer les commandes de changement de style :

\begin{filecontents*}{\jobname.tmp}
C'est bon le \textit{gloubi-\textbf{boulga}}.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Attention néanmoins à ne abuser des changements de style, qui
peuvent rapidement rendre le texte illisible :

\begin{resultat}
Une \textsf{telle} \textsc{composition} \texttt{est dite}
\textit{lardée} ou \textbf{\textit{entre}\textsl{lardée}}.
\end{resultat}

Il existe également des \emph{déclarations}\index{déclaration}
permettant d'effectuer les mêmes changements de style, comme
indiqué dans le tableau \ref{tableau:style-declarations}.

\begin{table}[!htbp]
\centering
\begin{tabular}{ll}
\toprule
\commande{textup} & \commande{upshape}	\\
\commande{textit} & \commande{itshape}	\\
\commande{textsl} & \commande{slshape}	\\
\commande{textsc} & \commande{scshape}	\\
\commande{textmd} & \commande{mdseries}	\\
\commande{textbf} & \commande{bfseries}	\\
\commande{textrm} & \commande{rmfamily}	\\
\commande{textsf} & \commande{sffamily}	\\
\commande{texttt} & \commande{ttfamily} \\
\bottomrule
\end{tabular}
\caption{Correspondance entre commandes et déclarations de
changement de style}
\label{tableau:style-declarations}
\index{textup@\commande{textup}}
\index{textit@\commande{textit}}
\index{textsl@\commande{textsl}}
\index{textsc@\commande{textsc}}
\index{textmd@\commande{textmd}}
\index{textbf@\commande{textbf}}
\index{textrm@\commande{textrm}}
\index{textsf@\commande{textsf}}
\index{texttt@\commande{texttt}}
\index{upshape@\commande{upshape}}
\index{itshape@\commande{itshape}}
\index{slshape@\commande{slshape}}
\index{scshape@\commande{scshape}}
\index{mdseries@\commande{mdseries}}
\index{bfseries@\commande{bfseries}}
\index{rmfamily@\commande{rmfamily}}
\index{sffamily@\commande{sffamily}}
\index{ttfamily@\commande{ttfamily}}
\end{table}

Une déclaration est une commande ne prenant pas d'argument et
agissent sur le texte qui la suit.

Afin de limiter la portée d'une déclaration, il faut utiliser des
\emph{accolades de groupement}\index{accolades de groupement} :

\begin{filecontents*}{\jobname.tmp}
Je mets le mot suivant en {\itshape italique}.
Le reste du texte est normal.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Comme pour les commandes, on peut aussi imbriquer les
déclarations de changement de style :

\begin{filecontents*}{\jobname.tmp}
C'est bon le {\itshape gloubi-{\bfseries boulga}}.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Remarquez que toute espace suivant une déclaration est ignorée
(comme les espaces suivant les commandes \commande{TeX} et
\commande{LaTeX}).

Il est recommandé, dans la mesure du possible, d'employer les
commandes de changement de style plutôt que les déclarations
équivalentes.

Signalons aussi l'existence de la commande \commandeindex{emph},
qui sert à mettre en valeur son argument :

\begin{filecontents*}{\jobname.tmp}
Je mets \emph{cette expression} en valeur.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

On aborde ici l'un des aspects fondamentaux de la philosophie de
\LaTeX, la distinction entre la structure du document et son
rendu visuel. Comme vous pouvez le voir, la commande
\commande{emph} met son argument en valeur en l'affichant en
italique. Si ce manuel avait été imprimé sur une imprimante ne
disposant pas du style italique, l'argument de \commande{emph}
aurait été mis en valeur autrement. La commande \commande{emph}
décrit donc non pas la façon dont il faut voir le texte, mais
celle dont il faut le penser. Ce principe est la clé de voûte de
la philosophie de \LaTeX.

Imaginez que vous ayez à écrire un livre sur la botanique et que,
dans ce livre, vous aimeriez que tous les noms latins des plantes
soient en italique. Rien de plus simple, il suffit de les mettre
en argument de \commande{textit}. Maintenant, alors que votre
livre est terminé, votre éditeur vous demande de mettre les noms
latins en gras plutôt qu'en italique, parce que cela correspond à
sa charte graphique. Il vous faut donc remplacer tous les
\commande{textit} par \commande{textbf} et encore, en faisant
attention, car vous avez très bien pu utiliser l'italique pour
autre chose que les noms latins. Bref, ce n'est pas très
pratique...

\LaTeX, conformément à sa philosophie, offre une solution
élégante à ce problème. En effet, il est possible de définir ses
propres commandes (pour le détail, reportez-vous au paragraphe
\ref{section:newcommand}). Il vous suffit donc de définir une
commande \commande{latin} qui affichera son argument, en
l'occurence un nom latin, dans le style de votre choix. Si les
noms latins doivent être en gras, il suffit alors de modifier la
définition de la commande \commande{latin}, c'est tout.

C'est pourquoi on n'utilise quasiment jamais les commandes de
changement de style directement dans un document \LaTeX. On
préfère plutôt définir un ensemble de commandes reflétant la
logique du texte et les utiliser à la place. Ainsi, pour écrire
ce manuel, des commandes spécifiques ont été définies :

\begin{itemize}

\item \commande{commande} permet d'écrire les noms de commandes en
      style machine à écrire ;

\item \commande{classe} permet d'écrire les noms de classe en
      style linéal ;

\item et ainsi de suite...

\end{itemize}

\section{Déclarations de changement de corps}

\LaTeX\ dispose de déclarations (donc à utiliser avec des
accolades de groupement) permettant de modifier le
corps\index{corps} des caractères (voir le tableau
\ref{tableau:corps}).

\begin{table}[!htbp]
\centering
\begin{tabular}{ll@{\hspace{15mm}}ll}
\toprule
\commande{tiny}		& \tiny		corps
&
\commande{large}		& \large	corps
\\
\commande{scriptsize}	& \scriptsize	corps
&
\commande{Large}		& \Large	corps
\\
\commande{footnotesize}	& \footnotesize	corps
&
\commande{LARGE}		& \LARGE	corps
\\
\commande{small}		& \small	corps
&
\commande{huge}		& \huge		corps
\\
\commande{normalsize}	& \normalsize	corps
&
\commande{Huge}		& \Huge		corps
\\
\bottomrule
\end{tabular}
\caption{Déclarations de changement de corps}
\label{tableau:corps}
\index{tiny@\commande{tiny}}
\index{scriptsize@\commande{scriptsize}}
\index{footnotesize@\commande{footnotesize}}
\index{small@\commande{small}}
\index{normalsize@\commande{normalsize}}
\index{large@\commande{large}}
\index{Large@\commande{Large}}
\index{LARGE@\commande{LARGE}}
\index{huge@\commande{huge}}
\index{Huge@\commande{Huge}}
\end{table}

\begin{filecontents*}{\jobname.tmp}
Je mets les mots suivants {\Large en gros}. La suite
du texte est de taille normale.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Ces déclarations ne sont normalement pas utilisées dans le fil du
texte car le rendu visuel d'un changement de corps dans le texte
est désagréable. On les réserve plutôt à la personnalisation de
la page de titre ou à certains tableaux.

\section{Commandes de mise en page}

Quelques commandes plus ou moins utiles permettent de forcer la
main à \LaTeX\ pour la mise en page du document.

La commande \commandeindex{newline} permet de forcer un saut de
ligne. La commande \boiboiindex\ est une abréviation pour
\commande{newline} que l'on utilise plus souvent\footnote{Nous
l'avons déjà rencontrée dans la section sur la page de titre.}.
N'abusez pas de \commande{\textbackslash}. En particulier, cette
commande ne sert pas à marquer la fin d'un paragraphe, une ligne
blanche suffit.

La commande \commandeindex{newpage} permet de commencer une
nouvelle page. La commande \commandeindex{clearpage} est
équivalente mais elle force l'impression des tableaux et figures
flottants (voir le paragraphe \ref{section:table-figure}).

Les commandes \commandeindex{bigskip}, \commandeindex{medskip} et
\commandeindex{smallskip} insèrent un espace vertical plus ou
moins grand. La taille de l'espace qu'elles génèrent est fonction
de la fonte utilisée.

Les commandes \commandeindex{hspace}\argument{taille} et
\commandeindex{vspace}\argument{taille} insèrent un espace
(horizontal pour \commande{hspace} et vertical pour
\commande{vspace}) de taille \var{taille}.

L'espace inséré par ces commandes est compressible, c'est-à-dire
que \LaTeX\ pourra insérer moins d'espace que demandé s'il le
juge nécessaire (souvent pour ses propres besoins de mise en
page). Les formes étoilées
\commandeindex{hspace*}\argument{taille} et
\commandeindex{vspace*}\argument{taille} insèrent un espace
incompressible, qui aura toujours la taille désirée.

Les tailles peuvent être exprimées dans l'une des unités de
mesure indiquées dans le tableau \ref{tableau:unites}.

\begin{table}[!htbp]
\centering
\begin{tabulary}{\textwidth}{|c|J|}
\hline
\code{mm} & millimètre \\
\hline
\code{cm} & centimètre \\
\hline
\code{em} & \code{1em} est égal à la largeur de la lettre « M »
            dans la fonte courante \\
\hline
\code{ex} & \code{1ex} est égal à la hauteur de la lettre « x »
            dans la fonte courante \\
\hline
\code{in} & pouce (\anglais{inch} en anglais), \code{1in} = \code{2.54cm} \\
\hline
\code{pt} & point pica, \code{1in} = \code{72.27pt} \\
\hline
\code{pc} & pica, \code{1pc} = \code{12pt} \\
\hline
\end{tabulary}
\caption{Unités de mesure utilisées par \LaTeX}
\label{tableau:unites}
\index{mm@\code{mm} (unité de mesure)}
\index{cm@\code{cm} (unité de mesure)}
\index{em@\code{em} (unité de mesure)}
\index{ex@\code{ex} (unité de mesure)}
\index{in@\code{in} (unité de mesure)}
\index{pt@\code{pt} (unité de mesure)}
\index{pc@\code{pc} (unité de mesure)}
\end{table}

La commande \commande{hspace} est rarement utilisée,
contrairement à la commande \commande{vspace} qui sert le plus
souvent à laisser un espace dans un texte ou dans une figure.

\section{Définir de nouvelles commandes}
\label{section:newcommand}
\index{commande!définir une nouvelle commande}

Il est possible de définir ses propres commandes grâce à la
commande \commandeindex{newcommand}:

\begin{syntaxe}
\commande{newcommand}\argument{\textup{\code{\textbackslash}}nom}\option{nombre d'arguments}\argument{définition}
\end{syntaxe}

Par la suite, toute occurence de \commande{nom} sera remplacée
par \var{définition}, avec substitution des éventuels arguments.

Les définitions de commandes peuvent se trouver dans le préambule
(c'est là où on les place le plus souvent) ou dans le corps du
document.

Prenons un exemple simple, sans arguments :

\begin{exemple}
\newcommand{\ba}{babasse}
\end{exemple}

\newcommand{\ba}{babasse}

Il est maintenant possible d'utiliser la commande \commande{ba},
qui imprimera donc « babasse » :

\begin{filecontents*}{\jobname.tmp}
C'est chouette la \ba\ !
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Néanmoins, il est bien plus fréquent de définir des commandes qui
prennent des arguments. Pour cela, on en précise le nombre dans
le paramètre \var{nombre d'arguments} de la commande
\commande{newcommand} et l'on y fait référence dans
\var{définition} en utilisant \code{\#1}\index{#1@\code{\#1}}
pour le premier argument, \code{\#2} pour le deuxième, etc. :

\begin{exemple}
\newcommand{\latin}[1]{\textit{#1}}
\end{exemple}

\newcommand{\latin}[1]{\textit{#1}}

La commande \commande{latin} permet d'imprimer son argument en
italique (comme nous en avons discuté au paragraphe
\ref{section:style}) :

\begin{filecontents*}{\jobname.tmp}
\latin{carpe diem}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Les environnements de \LaTeX}
\label{chapitre:environnements}

Comme vu au chapitre précédent, les commandes aggissent
généralement sur des arguments de taille limitée, de quelques
mots à une phrase entière, tout au plus. Lorsqu'il s'agit de
traiter des données plus volumineuses, on utilise des
environnements.

\section{Syntaxe d'un environnement}
\index{environnement!syntaxe}

Un \terme{environnement} est une partie du document délimitée par
les commandes :

\begin{syntaxe}
\commandeindex{begin}\argument{environnement}
\end{syntaxe}

\noindent et :

\begin{syntaxe}
\commandeindex{end}\argument{environnement}
\end{syntaxe}

Tout comme les commandes, les environnements peuvent avoir des
options et des arguments, auquel cas la commande de début
d'environnement a la forme suivante :

\begin{syntaxe}
\commande{begin}\argument{environnement}\option{option}\argument{argument}
\end{syntaxe}

Comme les commandes, certains environnements ont une
\emph{forme étoilée}\index{forme étoilée!environnement}\index{environnement!forme étoilée},
qui est une variante de l'environnement :

\begin{syntaxe}
\commande{begin}\code{\{}\var{environnement}\code{*\}}
\ldots\
\commande{end}\code{\{}\var{environnement}\code{*\}}
\end{syntaxe}

Toute déclaration\index{déclaration} (changement de style ou de
corps) effectuée à l'intérieur d'un environnement ne se propage
pas à l'extérieur de cet environnement. Ainsi :

\begin{filecontents*}{\jobname.tmp}
\begin{quote}
Je passe la suite du texte en \itshape italique.
Blabla...
\end{quote}

Mais le texte est normal hors de l'environnement.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Vous utilisez déjà l'environnement \environnement{document}, nous
allons maintenant en découvrir d'autres.

\section{L'environnement \environnement{em}}

L'environnement \environnementindex{em} met son contenu dans le
même style que la commande \commande{emph}. Cela permet de mettre
en relief un ou plusieurs paragraphes :

\begin{filecontents*}{\jobname.tmp}
\begin{em}
Le texte contenu dans cet environnement est mis en relief.
\end{em}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Les environnements \environnement{quote} et
         \environnement{quotation}}

Ces deux environnements ont un comportement voisin. Ils
augmentent tous deux les marges gauche et droite du texte qu'ils
contiennent. Leurs différences se situent au niveau de l'alinéa
et de l'espacement des paragraphes :

\begin{itemize}

\item l'environnement \environnementindex{quotation} met un
      alinéa en début de paragraphe et espace les paragraphes
      normalement ;

\item l'environnement \environnementindex{quote} ne met pas
      d'alinéa en début de paragraphe et espace les paragraphes
      davantage.

\end{itemize}

Ainsi,

\begin{exemple}
Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.

\begin{quotation}
Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.

Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.
\end{quotation}

Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.
\end{exemple}

\begin{framed}
Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.

\begin{quotation}
Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.

Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.
\end{quotation}

Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.
\end{framed}

Alors que :

\begin{exemple}
Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.

\begin{quote}
Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.

Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.
\end{quote}

Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.
\end{exemple}

\begin{framed}
Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.

\begin{quote}
Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.

Voici un exemple de texte sur deux paragraphes, afin de
montrer le comportement des environnements de citation.
\end{quote}

Ceci est un paragraphe de texte tout ce qu'il y a de plus
normal, en dehors d'un quelconque environnement.
\end{framed}

\section{L'environnement \environnement{verse}}

\LaTeX\ met l'environnement \environnementindex{verse} à la
disposition des poètes :

\begin{itemize}

\item les marges sont augmentées comme avec l'environnement
      \environnement{quote} ;

\item chaque vers doit être terminé par \boiboiindex\ pour passer
      au vers suivant, sauf le dernier de chaque strophe ;

\item les strophes sont séparées par des lignes blanches.

\end{itemize}

Si \LaTeX\ avait existé à l'époque de Baudelaire :

\begin{filecontents*}{\jobname.tmp}
\begin{verse}
Souvent, pour s'amuser, les hommes d'équipage \\
Prennent des albatros, vastes oiseaux des mers, \\
Qui suivent, indolents compagnons de voyage, \\
Le navire glissant sur les gouffres amers.

À peine les ont-ils déposés sur les planches, \\
Que ces rois de l'azur, maladroits et honteux, \\
Laissent piteusement leurs grandes ailes blanches \\
Comme des avirons traîner à côté d'eux.

Ce voyageur ailé, comme il est gauche et veule ! \\
Lui, naguère si beau, qu'il est comique et laid ! \\
L'un agace son bec avec un brûle-gueule, \\
L'autre mime, en boitant, l'infirme qui volait !

Le Poète est semblable au prince des nuées \\
Qui hante la tempête et se rit de l'archer ; \\
Exilé sur le sol au milieu des huées, \\
Ses ailes de géant l'empêchent de marcher.
\end{verse}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Les environnements \environnement{center},
         \environnement{flushleft} et \environnement{flushright}}

Les environnements \environnementindex{center},
\environnementindex{flushleft} et \environnementindex{flushright}
permettent respectivement de centrer du texte ou de ne l'aligner
que d'un côté (par défaut, le texte est justifié). On peut forcer
un retour à la ligne grâce à la commande \boiboiindex.

\begin{filecontents*}{\jobname.tmp}
\begin{center}
Voici un paragraphe centré. \LaTeX\ se débrouille tout
seul pour faire la mise en page et couper les lignes
où il faut.

Voici deux lignes \\
centrées.
\end{center}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\begin{filecontents*}{\jobname.tmp}
\begin{flushleft}
Voici un paragraphe aligné à gauche. \LaTeX\ se
débrouille tout seul pour faire la mise en page et
couper les lignes où il faut.

Voici deux lignes \\
alignées à gauche.
\end{flushleft}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\begin{filecontents*}{\jobname.tmp}
\begin{flushright}
Voici un paragraphe aligné à droite. \LaTeX\ se
débrouille tout seul pour faire la mise en page et
couper les lignes où il faut.

Voici deux lignes \\
alignées à droite.
\end{flushright}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{L'environnement \environnement{verbatim}}

L'environnement \environnementindex{verbatim} est très simple :
il ne fait rien ! Il se contente de mettre son contenu en style
\texttt{machine à écrire}. Aucune interprétation des commandes et
des caractères spéciaux n'est faite à l'intérieur de cet
environnement.

L'environnement \environnement{verbatim} est principalement
utilisé pour imprimer des programmes ou du code \LaTeX\ tel quel.

\begin{filecontents*}{\jobname.tmp}
\begin{verbatim}
Il ne se passe rien dans l'environnement verbatim.
Les commandes \LaTeX\ et les caractères spéciaux
($&%#_{}~^\) ne sont pas interprétés.
\end{verbatim}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Les listes : \environnement{itemize},
         \environnement{enumerate} et
         \environnement{description}}

Les listes sont très souvent employés par les utilisateurs de
\LaTeX. Elles permettent :

\begin{itemize}
\item de structurer ses idées ;
\item d'aérer le texte ;
\item d'améliorer sa lisibilité.
\end{itemize}

La liste ci-dessus a été obtenue grâce à l'environnement
\environnementindex{itemize} ainsi :

\begin{exemple}
\begin{itemize}

\item de structurer ses idées ;

\item d'aérer le texte ;

\item d'améliorer sa lisibilité.

\end{itemize}
\end{exemple}

Chaque élément de la liste doit commencer par la commande
\commandeindex{item}, qui imprime un tiret.

Les lignes blanches dans cet exemple (ainsi que dans ceux qui
suivent) ne sont pas obligatoires mais elles rendent le source
plus lisible en permettant de bien différencier les éléments,
surtout lorsqu'ils sont nombreux et longs. On peut également, si
on le souhaite, indenter les éléments pour mieux refléter la
structure de l'environnement.

L'environnement \environnementindex{enumerate} s'utilise comme
l'environnement \environnement{itemize}, mais il numérote ses
éléments :

\begin{filecontents*}{\jobname.tmp}
\begin{enumerate}

\item premier élément ;

\item deuxième élément ;

\item troisième élément.

\end{enumerate}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

L'environnement \environnementindex{description} permet de
choisir soi-même le texte figurant au début de chaque élément de
la liste au moyen de l'argument optionnel de la commande
\commandeindex{item} :

\begin{filecontents*}{\jobname.tmp}
\begin{description}

\item[itemize] pour faire des listes simples ;

\item[enumerate] pour faire des listes numérotées ;

\item[description] pour faire des listes dont chaque élément
   débute par le texte de son choix.

\end{description}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Remarquez que le texte de l'argument optionnel de \commande{item}
a été automatiquement mis en gras.

On peut évidemment imbriquer les listes :

\begin{filecontents*}{\jobname.tmp}
Il faut utiliser le plus possible les environnements
de liste car :

\begin{enumerate}

\item ils sont simples à utiliser ;

\item ils rendent le document plus clair :

      \begin{itemize}
      \item en l'aérant,
      \item en facilitant sa lecture ;
      \end{itemize}

   \item ils structurent les idées.

\end{enumerate}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Un dernier mot sur les usages français en matière de listes :

\begin{itemize}

\item Pour les listes simples (dont les éléments ne comportent
      qu'une phrase) chaque élément doit débuter par une
      minuscule et se terminer par un point-virgule, sauf le
      dernier, qui doit se terminer par un point. S'il y en a,
      les éléments des sous-listes doivent se terminer par une
      virgule, sauf le dernier qui doit se terminer par un
      point-virgule (c'est le cas dans l'exemple précédent).

\item Pour les listes dont un élément contient au moins deux
      phrases, chaque élément doit débuter par une majuscule et
      se terminer par un point.

\end{itemize}

\section{L'environnement \environnement{tabbing}}

L'environnement \environnementindex{tabbing} permet d'aligner du
texte selon la position de \emph{tabulations}\index{tabulation}
préalablement positionnées. Son utilisation est assez bizarre et
peu pratique, aussi on lui préfère généralement l'environnement
\environnement{tabular} (voir le paragraphe
\ref{section:tabular}).

Voici un exemple simple d'utilisation de l'environnement
\environnement{tabbing} :

\begin{filecontents*}{\jobname.tmp}
\begin{tabbing}
Troisième ligne \= le plus long \= le plus long \kill
Première ligne  \> court        \> le plus long \\
Deuxième ligne  \> moins court  \> court        \\
Troisième ligne \> le plus long \> moins court
\end{tabbing}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Tout ceci n'est pas très clair et mérite donc quelques
explications :

\begin{itemize}

\item chaque tabulation est mise en place grâce à la commande
      \commande{=}\index{=@\commande{=} (environnement \environnement{tabbing})} ;

\item on se place sur la prochaine tabulation grâce à la
      commande
      \commande{>}\index{>@\commande{>} (environnement \environnement{tabbing})} ;

\item la commande \commandeindex{kill} permet de ne pas imprimer
      la ligne sur laquelle elle se trouve ;

\item chaque ligne (sauf la dernière et celles se terminant
      par \commande{kill}) doit se terminer par \boiboiindex.

\end{itemize}

Dans notre exemple, on a placé les tabulations par rapport aux
éléments de chaque colonne qui semblent les plus longs (dans la
première ligne qui n'a pas été imprimée à cause de la commande
\commande{kill}).

L'alignement vertical des commandes \commande{=} et \commande{>}
n'est pas nécessaire mais permet de se rapprocher de ce qui sera
imprimé au final et de mieux appréhender le positionnement des
tabulations.

Par malchance, le mot « Deuxième », quand il est imprimé, est
légèrement plus long que le mot « Troisième », bien qu'il
comporte moins de lettres. Il en est de même pour « moins court »
et « plus long ». Le placement des tabulations n'est donc pas
aussi simple qu'on pourrait le penser et nécessite une
vérification systématique sur le document final. Il peut aussi
varier en fonction de la fonte utilisée.

On peut redéfinir la position et le nombre des tabulations au
milieu de l'environnement, si nécessaire :

\begin{filecontents*}{\jobname.tmp}
\begin{tabbing}
ça c'est long \= ça c'est long \= ça c'est long \\
court         \> court         \> court         \\
ça c'est vraiment long \= moins long \\
tout petit             \> court
\end{tabbing}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Il existe d'autres commandes permettant de manipuler les
tabulations, mais qui présentent peu d'intérêt. Pour plus
d'informations sur l'environnement \environnement{tabbing},
reportez vous à \cite[pages 60--62 et
201--203]{latex-a-document-preparation-system}.

\section{Les tableaux : l'environnement \environnement{tabular}}
\label{section:tabular}
\index{tableau}

L'environnement \environnementindex{tabular} est de loin
l'environnement le plus puissant de \LaTeX. Avec lui, il est
possible de réaliser tous les tableaux possibles et imaginables
(ou presque).

Commençons par un exemple simple :

\begin{filecontents*}{\jobname.tmp}
\begin{tabular}{lcr}
Sparc & SunOS  & 4.1.4 \\
HP    & HP-UX  & 10.20 \\
PC    & NetBSD & 1.2.1
\end{tabular}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

On a donné à l'environnement \environnement{tabular} un argument
contenant trois lettres. Cela signifie que le tableau comporte
trois colonnes. Détaillons cet argument :

\begin{description}

\item[\code{l} (\anglais{left})]\index{l@\code{l} (environnement \environnement{tabular})}
   indique que la première colonne sera alignée à gauche ;

\item[\code{c} (\anglais{center})]\index{c@\code{c} (environnement \environnement{tabular})}
   indique que la deuxième colonne sera centrée ;

\item[\code{r} (\anglais{right})]\index{r@\code{r} (environnement \environnement{tabular})}
   indique que la troisième colonne sera alignée à droite.

\end{description}

À l'intérieur de l'environnement \environnement{tabular}, les
lignes sont terminées par \boiboiindex\ (sauf la dernière) et les
colonnes sont séparées par
\code{\&}\index{&@\code{\&} (environnement \environnement{tabular}}.

Remarquez que les \code{\&} sont placés les uns en dessous des
autres, pour améliorer la lisibilité du tableau dans le source.
De même les colonnes ont été alignées comme elles doivent être
imprimées.

Voyons maintenant le même tableau en matérialisant les
séparations entres lignes et colonnes :

\begin{filecontents*}{\jobname.tmp}
\begin{tabular}{|l|c|r|}
\hline
Sparc & SunOS  & 4.1.4 \\
\hline
HP    & HP-UX  & 10.20 \\
\hline
PC    & NetBSD & 1.2.1 \\
\hline
\end{tabular}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\begin{itemize}

\item les lignes verticales sont obtenues en plaçant des
      \code{|}%\index{"|@\code{"|} (environnement \environnement{tabular})}
      entre les lettres définissant l'alignement des colonnes
      dans l'argument de l'environnement \environnement{tabular}
      (ces lignes s'étendent sur toute la hauteur du tableau) ;

\item les lignes horizontales sont obtenues par la commande
      \commandeindex{hline}, placée entre chaque ligne du tableau
      (sans \commande{\textbackslash} après).

\end{itemize}

Encore un tableau :

\begin{filecontents*}{\jobname.tmp}
\begin{tabular}{|p{5cm}|*{2}{c|}}
\hline
                            & Contenance & Quantité \\
\hline
\bfseries Blanche de Bruges &    33 cl   &    10    \\
\hline
\bfseries Guinness          &   1 pint   &     5    \\
\hline
\bfseries Kronenbourg       &    33 cl   &     0    \\
\hline
\end{tabular}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

On découvre deux nouveaux arguments de l'environnement
\environnement{tabular} :

\begin{description}

\item[\code{p}\argument{taille}]\index{p@\code{p} (environnement \environnement{tabular})}
   qui déclare une colonne de taille \var{taille} (le contenu de
   la colonne est aligné à gauche) ;

\item[\code{*}\argument{nombre}\argument{format}]\index{*@\code{*} (environnement \environnement{tabular})}
   qui est équivalent à \var{nombre} fois la déclaration
   \var{format} (ici, \code{c|c|}), ce qui peut être utile pour
   simplifier la définition du format des grands tableaux.

\end{description}

Vous remarquerez qu'on peut laisser une case vide et qu'une
déclaration de changement de style (ou de corps) dans une case
n'affecte pas les autres cases.

Modifions quelque peu le tableau précédent :

\begin{filecontents*}{\jobname.tmp}
\begin{tabular}{|p{5cm}|*{2}{c|}}
\cline{2-3}
\multicolumn{1}{c|}{}       & \multicolumn{2}{c|}{Commande} \\
\cline{2-3}
\multicolumn{1}{c|}{}       & Contenance & Quantité \\
\hline
\bfseries Blanche de Bruges &    33 cl   &    10    \\
\hline
\bfseries Guinness          &   1 pint   &     5    \\
\hline
\bfseries Kronenbourg       &    33 cl   &     0    \\
\hline
\end{tabular}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

La commande :

\begin{syntaxe}
\commandeindex{cline}\code{\{}\var{i}\code{-}\var{j}\code{\}}
\end{syntaxe}

\noindent trace une ligne horizontale entre les colonnes \var{i}
et \var{j} du tableau.

Il est possible de modifier localement le format du tableau grâce
à la commande:

\begin{syntaxe}
\commandeindex{multicolumn}\argument{nombre}\argument{format}\argument{texte}
\end{syntaxe}

\noindent qui remplace \var{nombre} colonnes du tableau par
\var{texte} conformément à \var{format}. Cette commande est
généralement utilisée pour étendre un élément du tableau sur
plusieurs colonnes (c'est le cas pour la case « Commande »), pour
modifier l'alignement d'une case ou pour supprimer certains
filets verticaux (c'est le cas pour les deux cases vides de
gauche).

Pour approfondir vos connaissances sur l'environnement
\environnement{tabular}, vous pouvez consulter
\cite[pages 62--63 et 204--207]{latex-a-document-preparation-system}
et \cite[chapitre 5]{the-latex-companion}.

\section{Les environnements \environnement{table} et
         \environnement{figure}}
\label{section:table-figure}
\index{tableau}
\index{figure}

Les environnements \environnementindex{table} et
\environnementindex{figure} ne sont que des cadres, permettant de
faire \emph{flotter} (c'est-à-dire de déplacer si nécessaire pour
la mise en page) tableaux et figures, de leur donner un titre et
de les numéroter.

Il est important de pouvoir faire flotter les tableaux et les
figures car \LaTeX\ ne les coupe jamais en bas de page et il est
donc possible que l'un d'eux dépasse de la marge inférieure de la
page où il se trouve, voire de la page elle-même, ce qui n'est
pas du meilleur effet.

Voici un exemple type d'utilisation de l'environnement
\environnement{table} (l'environnement \environnement{figure}
s'utilise exactement de la même façon) :

\begin{exemple}
\begin{table}[!htbp]
\centering
\begin{tabular}{|l|l|}
\hline
table    & figure \\
\hline
tableaux & dessins \\
\hline
\end{tabular}
\caption{Exemple d'environnement \environnement{table}}
\label{tableau:exemple}
\end{table}
\end{exemple}

\begin{table}[!htbp]
\centering
\begin{tabular}{|l|l|}
\hline
table    & figure \\
\hline
tableaux & dessins \\
\hline
\end{tabular}
\caption{Exemple d'environnement \environnement{table}}
\label{tableau:exemple}
\end{table}

Les arguments optionnels de l'environnement \environnement{table}
sont importants et déterminent l'ordre de préférence du placement
du tableau :

\begin{description}

\item[\code{!}]\index{"!@\code{"!} (environnements \environnement{table} et \environnement{figure})}
   demande à \LaTeX\ de faire tout son possible pour respecter
   l'ordre indiqué ensuite ;

\item[\code{h} (\anglais{here})]\index{h@\code{h} (environnements \environnement{table} et \environnement{figure})}
   ici, si possible ;

\item[\code{t} (\anglais{top})]\index{t@\code{t} (environnements \environnement{table} et \environnement{figure})}
   en haut d'une page (celle-ci ou la suivante) ;

\item[\code{b} (\anglais{bottom})]\index{b@\code{b} (environnements \environnement{table} et \environnement{figure})}
   en bas d'une page (celle-ci ou la suivante) ;

\item[\code{p} (\anglais{page of floats})]\index{p@\code{p} (environnements \environnement{table} et \environnement{figure})}
   sur une page spéciale ne contenant pas de texte mais
   uniquement des tableaux et des figures.

\end{description}

L'ordre de préférence par défaut est \code{[tbp]}, c'est pourquoi
il est préférable de préciser \code{[!htbp]} si l'on veut que le
tableau soit placé, dans la mesure du possible, conformément à sa
position dans le document.

La commande \commandeindex{centering} a été utilisée pour centrer
le tableau. Elle est préférable à l'environnement
\environnement{center} dans ce cas parce que celui-ci introduit
une marge trop importante entre le tableau et sa légende.

Par ailleurs :

\begin{itemize}

\item la commande \commandeindex{caption} permet de donner une
      légende au tableau ou à la figure ;

\item la commande \commandeindex{label}, qui doit obligatoirement
      être placée après la commande \commande{caption}, permet de
      lui faire référence grâce aux commandes \commandeindex{ref}
      ou \commandeindex{pageref}.

\end{itemize}

Enfin, vous pouvez faire figurer dans votre document la liste des
tableaux au moyen de la commande \commandeindex{listoftables} et
la liste des figures au moyen de la commande
\commandeindex{listoffigures}. Pour que ces listes soient à jour,
il faut effectuer deux compilations successives (mettant en jeu
les fichiers
\path{.lot}\index{lot@\path{.lot}}\footnote{\path{.lot} pour
\anglais{list of tables}.} et
\path{.lof}\index{lof@\path{.lof}}\footnote{\path{.lof} pour
\anglais{list of figures}.}).

\section{Personnaliser la page de titre : l'environnement
         \environnementindex{titlepage}}
\label{section:titlepage}
\index{page de titre}

La commande \commandeindex{maketitle} génère une page de titre
plutôt minimale. Il est regrettable qu'un logiciel de la qualité
de \LaTeX\ doive se contenter de pages de titre aussi sobres.

Heureusement, il est possible de personnaliser la page de titre
grâce à l'environnement \environnement{titlepage}. À l'intérieur
de cet environnement, vous êtes totalement maître de la mise en
page. Généralement, on y utilise :

\begin{itemize}

\item l'environnement \environnement{center}, pour centrer le
      texte ;

\item les commandes de changement de taille
      (\commande{large}, etc.), pour obtenir un gros titre ;

\item les commandes d'espacement \commande{vspace} et
      \commande{hspace} pour aérer le texte ;

\item la commande \commande{includegraphics} (voir le paragraphe
      \ref{section:includegraphics}) pour inclure une image.

\end{itemize}

Seule contrainte, l'environnement \environnement{titlepage} doit
se trouver juste après la commande \commande{begin\{document\}}.

De nombreux exemples de pages de titre figurent dans
\cite{some-examples-of-title-pages}.

\section{Définir de nouveaux environnements}
\index{environnement!définir un nouvel environnement}

Il est possible de définir ses propres environnements grâce à la
commande \commandeindex{newenvironment} :

\begin{syntaxe}
\commande{newenvironment}\argument{nom}\option{nombre d'arguments}\argument{définition de début}\argument{définition de fin}
\end{syntaxe}

Les définitions d'environnements peuvent se trouver dans le
préambule (c'est là où on les place le plus souvent) ou dans le
corps du document.

Lorsque \LaTeX\ rencontrera \commande{begin\{nom\}}, il le
remplacera par \var{définition de début} et lorsqu'il rencontrera
\commande{end\{nom\}}, il le remplacera par \var{définition de
fin} :

\begin{exemple}
\newenvironment{italitemize}
{\begin{itemize} \itshape}
{\end{itemize}}
\end{exemple}

\newenvironment{italitemize}
{\begin{itemize} \itshape}
{\end{itemize}}

Ici, la définition du nouvel environnement a été répartie sur
trois lignes pour la rendre plus lisible. Il s'utilise ensuite
ainsi :

\begin{filecontents*}{\jobname.tmp}
\begin{italitemize}

\item mais oui,

\item ça marche !

\end{italitemize}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Généralement, les nouveaux environnements sont créés à partir
d'environnements existants (c'est le cas ici).

Il est possible de créer des environnements qui prennent des
arguments. Pour cela, on en précise le nombre dans le paramètre
\var{nombre d'arguments} de la commande
\commande{newenvironnement} et l'on y fait référence dans
\var{définition de début} en utilisant
\code{\#1}\index{#1@\code{\#1}} pour le premier argument,
\code{\#2} pour le deuxième, etc. :

\begin{filecontents*}{\jobname.tmp}
\newenvironment{tab}[1]
{\begin{tabular}{|#1|}\hline}
{\hline\end{tabular}}

\begin{tab}{cc}
     essai      & de  \\
l'environnement & tab \\
\end{tab}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{\LaTeX\ mathématique}
\label{chapitre:mathematique}

L'un des atouts de \LaTeX\ est certainement la facilité avec
laquelle il permet de réaliser les textes scientifiques les plus
complexes. Son mode mathématique standard convient à la plupart
des besoins. Pour aller plus loin, il peut s'avérer nécessaire
d'utiliser des extensions spécialisées, en particulier
l'extension \extensionindex{amsmath} (voir
\cite[chapitre 8]{the-latex-companion}). Il existe également de
nombreuses extensions pour représenter des molécules, des
diagrammes utilisés en physique des particules, des circuits
électriques, etc. (voir
\cite[chapitre 8]{the-latex-graphics-companion}).

Les règles typographiques d'écriture des mathématiques sont, pour
la plupart, respectées automatiquement par \LaTeX. Il n'est
cependant pas inutile de se reporter à
\cite[pages 107 à 116]{lexique-des-regles-typographiques} pour en
prendre connaissance. Les règles qui demandent une attention
particulière seront indiquées au paragraphe
\ref{section:math-typo}.

\section{Les modes mathématiques}

\LaTeX\ fournit un très grand nombre de symboles d'opérateurs et
de relations et sait comment les disposer. Mais il faut pouvoir
lui indiquer que l'on va composer une formule mathématique. Pour
cela, \LaTeX\ dispose de deux modes mathématiques :

\begin{itemize}

\item l'un est utilisé pour les formules devant apparaître dans
      le corps du texte, on y rentre grâce à l'environnement
      \environnementindex{math} ;

\item l'autre est utilisé pour les formules que l'on désire voir
      apparaître seules sur une ligne, on y rentre grâce à
      l'environnement \environnementindex{displaymath}.

\end{itemize}

\subsection{L'environnement \environnement{math}}

L'environnement \environnementindex{math} permet de composer des
formules mathématiques dans le corps du texte :

\begin{filecontents*}{\jobname.tmp}
Considérons l'équation \begin{math} x + y + z = n \end{math}.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Si vous faites grand usage de formules mathématiques, la
structure d'environnement s'avère lourde et diminue la lisibilité
du texte source. C'est pourquoi il existe deux formes plus
simples,
\commande{(}\index{(@\commande{(} (environnement \environnement{math})}
\ldots\
\commande{)}\index{)@\commande{)} (environnement \environnement{math})}
et
\code{\$}\index{$@\code{\$} (environnement \environnement{math})}
\ldots\
\code{\$}.
L'exemple précédent peut donc s'écrire plus simplement :
%stopzone

\begin{exemple}
Considérons l'équation \( x + y + z = n \).
\end{exemple}

\noindent ou :

\begin{exemple}
Considérons l'équation $ x + y + z = n $.
\end{exemple}

On utilise généralement la forme \code{\$} \ldots\ \code{\$}, qui
est la plus simple.

Remarquez que l'espacement n'a aucune importance en mode
mathématique. Ainsi, \code{\$ x + y + z = n \$} produira le même
résultat que \code{\$x+y+z=n\$}.

\subsection{L'environnement \environnement{displaymath}}

L'environnement \environnementindex{displaymath} permet de
composer des formules mathématiques seules sur une ligne :

\begin{filecontents*}{\jobname.tmp}
Ce qui conduit à :

\begin{displaymath}
x + y + z = n
\end{displaymath}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Comme pour l'environnement \environnement{math}, il existe une
forme plus simple,
\commande{[}\index{[@\commande{[} (environnement \environnement{displaymath})}
\ldots\
\commande{]}\index{]@\commande{]} (environnement \environnement{displaymath})}.
On aurait donc pu écrire :

\begin{exemple}
Ce qui conduit à :

\[
x + y + z = n
\]
\end{exemple}

\begin{attention}
ne laissez surtout pas de ligne blanche à l'intérieur de
l'environnement \environnement{displaymath}, cela provoquerait
une erreur.
\end{attention}

Par défaut, l'environnement \environnement{displaymath} centre
les formules. Si vous préférez qu'elles soient alignées à gauche,
vous pouvez utiliser l'option de classe
\classeoptionindex{fleqn}.

\section{Structures couramment utilisées en mathématiques}

\subsection{Indices et exposants}
\index{indice}
\index{exposant}

En mathématiques, on rencontre les indices et les exposants un
peu partout.

Un indice s'obtient grâce au caractère
\code{\_}\index{_@\code{\_} (indice)} et un exposant s'obtient
grâce à
\code{\textasciicircum}\index{^@\code{\textasciicircum} (exposant)} :

\begin{filecontents*}{\jobname.tmp}
$ x^2 + y^2 = 1 $, $ x_1 = x_2 $, $ x_1^2 = x^2_1 $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Si l'indice ou l'exposant contient plus d'un caractère, il faut
utiliser des accolades de
groupement\index{accolades de groupement} :

\begin{filecontents*}{\jobname.tmp}
$ x^{2y} = z $, $ a_{ij} = 0 $, $ x^{y^z} = a $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

De même, on peut utiliser des accolades pour indiquer ce à quoi
s'applique l'indice ou l'exposant :

\begin{filecontents*}{\jobname.tmp}
Voyez-vous une différence entre $ (x^2 + y^2)^n $ et
$ {(x^2 + y^2)}^n $ ?
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Dans le premier cas, l'exposant s'applique simplement au
caractère qui le précède (la parenthèse), il est donc à la même
hauteur que les carrés. Mais dans le second cas, à cause des
accolades, l'exposant $n$ s'applique à toute l'expression
$(x^2 + y^2)$ et est donc placé un peu plus haut, puisque cette
expression comporte déjà un niveau d'exposant. Il n'y a pas
vraiment de différence mathématique entre les deux formes mais la
seconde est typographiquement plus précise.

\subsection{Texte à l'intérieur d'une formule}

Il peut être utile de mettre quelques mots dans une formule. Mais
pour cela il faut ramener \LaTeX\ du mode mathématique au mode
texte. Ceci est possible grâce à la commande
\commandeindex{mbox} :

\begin{filecontents*}{\jobname.tmp}
\[
f(x) > 1 \mbox{ si } x < 3
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Remarquez les espaces autour du « si » dans la commande
\commande{mbox}. Ils sont nécessaires parce que l'espacement
mathématique de \LaTeX\ n'a rien à voir avec son espacement en
mode texte. Si l'on avait omis ces espaces, le résultat aurait
été le suivant :

\begin{filecontents*}{\jobname.tmp}
\[
f(x) > 1 \mbox{si} x < 3
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Bien entendu, la commande \commande{mbox} est inutile avec
l'environnement \environnement{math} :

\begin{filecontents*}{\jobname.tmp}
Et donc $ f(x) > 1 $ si $ x < 3 $.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Lettres, symboles et accents}

Il est souvent fait usage, dans les formules mathématiques, de
lettres grecques, de divers symboles ou d'accents. \LaTeX\
dispose de nombreuses commandes permettant de les imprimer.

L'utilisation de certains symboles nécessite le chargement de
l'extension \extensionindex{latexsym}. Il sera indiqué par la
suite où cette extension est nécessaire.

\subsection{Lettres grecques}
\index{grec}

Les commandes permettant d'obtenir les lettres grecques sont
présentées dans le tableau \ref{tableau:grec}.

\begin{table}[!htbp]
\centering
\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{6mm}}>{$}l<{$}l}}
\toprule
\multicolumn{8}{c}{Minuscules} \\
\midrule
\alpha      & \commande{alpha}      & \theta    & \commande{theta}    & \pi       & \commande{pi}       & \phi    & \commande{phi}    \\
\beta       & \commande{beta}       & \vartheta & \commande{vartheta} & \varpi    & \commande{varpi}    & \varphi & \commande{varphi} \\
\gamma      & \commande{gamma}      & \iota     & \commande{iota}     & \rho      & \commande{rho}      & \chi    & \commande{chi}    \\
\delta      & \commande{delta}      & \kappa    & \commande{kappa}    & \varrho   & \commande{varrho}   & \psi    & \commande{psi}    \\
\epsilon    & \commande{epsilon}    & \lambda   & \commande{lambda}   & \sigma    & \commande{sigma}    & \omega  & \commande{omega}  \\
\varepsilon & \commande{varepsilon} & \mu       & \commande{mu}       & \varsigma & \commande{varsigma} &         &                   \\
\zeta       & \commande{zeta}       & \nu       & \commande{nu}       & \tau      & \commande{tau}      &         &                   \\
\eta        & \commande{eta}        & \xi       & \commande{xi}       & \upsilon  & \commande{upsilon}  &         &                   \\
\bottomrule
\multicolumn{8}{c}{ } \\
\toprule
\multicolumn{8}{c}{Majuscules} \\
\midrule
\Gamma      & \commande{Gamma}      & \Lambda   & \commande{Lambda}   & \Sigma    & \commande{Sigma}    & \Psi    & \commande{Psi}    \\
\Delta      & \commande{Delta}      & \Xi       & \commande{Xi}       & \Upsilon  & \commande{Upsilon}  & \Omega  & \commande{Omega}  \\
\Theta      & \commande{Theta}      & \Pi       & \commande{Pi}       & \Phi      & \commande{Phi}      &         &                   \\
\bottomrule
\end{tabular}
\caption{Lettres grecques}
\label{tableau:grec}
\index{alpha@\commande{alpha} ($\alpha$)}
\index{beta@\commande{beta} ($\beta$)}
\index{gamma@\commande{gamma} ($\gamma$)}
\index{delta@\commande{delta} ($\delta$)}
\index{epsilon@\commande{epsilon} ($\epsilon$)}
\index{varepsilon@\commande{varepsilon} ($\varepsilon$)}
\index{zeta@\commande{zeta} ($\zeta$)}
\index{eta@\commande{eta} ($\eta$)}
\index{theta@\commande{theta} ($\theta$)}
\index{vartheta@\commande{vartheta} ($\vartheta$)}
\index{iota@\commande{iota} ($\iota$)}
\index{kappa@\commande{kappa} ($\kappa$)}
\index{lamdba@\commande{lambda} ($\lambda$)}
\index{mu@\commande{mu} ($\mu$)}
\index{nu@\commande{nu} ($\nu$)}
\index{xi@\commande{xi} ($\xi$)}
\index{pi@\commande{pi} ($\pi$)}
\index{varpi@\commande{varpi} ($\varpi$)}
\index{rho@\commande{rho} ($\rho$)}
\index{varrho@\commande{varrho} ($\varrho$)}
\index{sigma@\commande{sigma} ($\sigma$)}
\index{varsigma@\commande{varsigma} ($\varsigma$)}
\index{tau@\commande{tau} ($\tau$)}
\index{upsilon@\commande{upsilon} ($\upsilon$)}
\index{phi@\commande{phi} ($\phi$)}
\index{varphi@\commande{varphi} ($\varphi$)}
\index{chi@\commande{chi} ($\chi$)}
\index{psi@\commande{psi} ($\psi$)}
\index{omega@\commande{omega} ($\omega$)}
\index{Gamma@\commande{Gamma} ($\Gamma$)}
\index{Delta@\commande{Delta} ($\Delta$)}
\index{Theta@\commande{Theta} ($\Theta$)}
\index{Lambda@\commande{Lambda} ($\Lambda$)}
\index{Xi@\commande{Xi} ($\Xi$)}
\index{Pi@\commande{Pi} ($\Pi$)}
\index{Sigma@\commande{Sigma} ($\Sigma$)}
\index{Upsilon@\commande{Upsilon} ($\Upsilon$)}
\index{Phi@\commande{Phi} ($\Phi$)}
\index{Psi@\commande{Psi} ($\Psi$)}
\index{Omega@\commande{Omega} ($\Omega$)}
\end{table}

Les lettres grecques minuscules sont obtenues par un
\code{\textbackslash} suivi du nom de la lettre. Pour les
majuscules, il suffit de mettre la première lettre du nom en
majuscule.

Il n'existe pas de commandes permettant d'obtenir les lettres
grecques majuscules qui ont une graphie identique dans notre
alphabet. Par exemple, pour obtenir un alpha majuscule, utilisez
simplement \code{\$A\$}.

Pour la même raison, il n'existe pas de commandes permettant
d'obtenir la lettre omicron\index{omicron@omicron ($o$, $O$)}, il
suffit d'utiliser \code{\$o\$} ou \code{\$O\$}.

Pour certaines lettres minuscules, il existe une deuxième forme
dont la commande commence par \code{var}. En particulier,
\commande{varepsilon} et \commande{varphi} sont à préférer à
\commande{epsilon} et \commande{phi}.

Notez que ces commandes (ainsi que toutes celles qui sont
présentées dans ce chapitre) ne sont disponibles qu'en mode
mathématique :

\begin{filecontents*}{\jobname.tmp}
$\pi$ vaut approximativement 3,1416.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\subsection{Symboles d'opérateurs binaires}
\index{symboles mathématiques!opérateurs binaires}

Les commandes présentées dans le tableau \ref{tableau:operateurs}
permettent d'obtenir des symboles d'opérateurs binaires.

\begin{table}[!htbp]
\centering
\begin{threeparttable}
\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{3mm}}>{$}l<{$}l}}
\toprule
\pm     & \commande{pm}     & \cap      & \commande{cap}      & \diamond         & \commande{diamond}         & \oplus   & \commande{oplus}   \\
\mp     & \commande{mp}     & \cup      & \commande{cup}      & \bigtriangleup   & \commande{bigtriangleup}   & \ominus  & \commande{ominus}  \\
\times  & \commande{times}  & \uplus    & \commande{uplus}    & \bigtriangledown & \commande{bigtriangledown} & \otimes  & \commande{otimes}  \\
\div    & \commande{div}    & \sqcap    & \commande{sqcap}    & \triangleleft    & \commande{triangleleft}    & \oslash  & \commande{oslash}  \\
\ast    & \commande{ast}    & \sqcup    & \commande{sqcup}    & \triangleright   & \commande{triangleright}   & \odot    & \commande{odot}    \\
\star   & \commande{star}   & \vee      & \commande{vee}      & \lhd             & \commande{lhd} \tnote{a}   & \bigcirc & \commande{bigcirc} \\
\circ   & \commande{circ}   & \wedge    & \commande{wedge}    & \rhd             & \commande{rhd} \tnote{a}   & \dagger  & \commande{dagger}  \\
\bullet & \commande{bullet} & \setminus & \commande{setminus} & \unlhd           & \commande{unlhd} \tnote{a} & \ddagger & \commande{ddagger} \\
\cdot   & \commande{cdot}   & \wr       & \commande{wr}       & \unrhd           & \commande{unrhd} \tnote{a} & \amalg   & \commande{amalg}   \\
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[a] Requiert l'extension \extensionindex{latexsym}.
\end{tablenotes}
\end{threeparttable}
\caption{Symboles d'opérateurs binaires}
\label{tableau:operateurs}
\index{pm@\commande{pm} ($\pm$)}
\index{mp@\commande{mp} ($\mp$)}
\index{times@\commande{times} ($\times$)}
\index{div@\commande{div} ($\div$)}
\index{ast@\commande{ast} ($\ast$)}
\index{star@\commande{star} ($\star$)}
\index{circ@\commande{circ} ($\circ$)}
\index{bullet@\commande{bullet} ($\bullet$)}
\index{cdot@\commande{cdot} ($\cdot$)}
\index{cap@\commande{cap} ($\cap$)}
\index{cup@\commande{cup} ($\cup$)}
\index{uplus@\commande{uplus} ($\uplus$)}
\index{sqcap@\commande{sqcap} ($\sqcap$)}
\index{sqcup@\commande{sqcup} ($\sqcup$)}
\index{vee@\commande{vee} ($\vee$)}
\index{wedge@\commande{wedge} ($\wedge$)}
\index{setminus@\commande{setminus} ($\setminus$)}
\index{wr@\commande{wr} ($\wr$)}
\index{diamond@\commande{diamond} ($\diamond$)}
\index{bigtriangleup@\commande{bigtriangleup} ($\bigtriangleup$)}
\index{bigtriangledown@\commande{bigtriangledown} ($\bigtriangledown$)}
\index{triangleleft@\commande{triangleleft} ($\triangleleft$)}
\index{triangleright@\commande{triangleright} ($\triangleright$)}
\index{lhd@\commande{lhd} ($\lhd$)}
\index{rhd@\commande{rhd} ($\rhd$)}
\index{unlhd@\commande{unlhd} ($\unlhd$)}
\index{unrhd@\commande{unrhd} ($\unrhd$)}
\index{oplus@\commande{oplus} ($\oplus$)}
\index{ominus@\commande{ominus} ($\ominus$)}
\index{otimes@\commande{otimes} ($\otimes$)}
\index{oslash@\commande{oslash} ($\oslash$)}
\index{odot@\commande{odot} ($\odot$)}
\index{bigcirc@\commande{bigcirc} ($\bigcirc$)}
\index{dagger@\commande{dagger} ($\dagger$)}
\index{ddagger@\commande{ddagger} ($\ddagger$)}
\index{amalg@\commande{amalg} ($\amalg$)}
\end{table}

\subsection{Symboles de relations binaires}
\index{symboles mathématiques!relations binaires}

Les commandes présentées dans le tableau \ref{tableau:relations}
permettent d'obtenir des symboles de relations binaires.

\begin{table}[!htbp]
\centering
\begin{threeparttable}
\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{4mm}}>{$}l<{$}l}}
\toprule
\leq        & \commande{leq}                & \geq        & \commande{geq}                & \equiv  & \commande{equiv}  & \models   & \commande{models}         \\
\prec       & \commande{prec}               & \succ       & \commande{succ}               & \sim    & \commande{sim}    & \perp     & \commande{perp}           \\
\preceq     & \commande{preceq}             & \succeq     & \commande{succeq}             & \simeq  & \commande{simeq}  & \mid      & \commande{mid}            \\
\ll         & \commande{ll}                 & \gg         & \commande{gg}                 & \asymp  & \commande{asymp}  & \parallel & \commande{parallel}       \\
\subset     & \commande{subset}             & \supset     & \commande{supset}             & \approx & \commande{approx} & \bowtie   & \commande{bowtie}         \\
\subseteq   & \commande{subseteq}           & \supseteq   & \commande{supseteq}           & \cong   & \commande{cong}   & \Join     & \commande{Join} \tnote{a} \\
\sqsubset   & \commande{sqsubset} \tnote{a} & \sqsupset   & \commande{sqsupset} \tnote{a} & \neq    & \commande{neq}    & \smile    & \commande{smile}          \\
\sqsubseteq & \commande{sqsubseteq}         & \sqsupseteq & \commande{sqsupseteq}         & \doteq  & \commande{doteq}  & \frown    & \commande{frown}          \\
\in         & \commande{in}                 & \ni         & \commande{ni}                 & \propto & \commande{propto} &           &                           \\
\vdash      & \commande{vdash}              & \dashv      & \commande{dashv}              &         &                   &           &                           \\
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[a] Requiert l'extension \extensionindex{latexsym}.
\end{tablenotes}
\end{threeparttable}
\caption{Symboles de relations binaires}
\label{tableau:relations}
\index{leq@\commande{leq} ($\leq$)}
\index{prec@\commande{prec} ($\prec$)}
\index{preceq@\commande{preceq} ($\preceq$)}
\index{ll@\commande{ll} ($\ll$)}
\index{subset@\commande{subset} ($\subset$)}
\index{subseteq@\commande{subseteq} ($\subseteq$)}
\index{sqsubset@\commande{sqsubset} ($\sqsubset$)}
\index{sqsubseteq@\commande{sqsubseteq} ($\sqsubseteq$)}
\index{in@\commande{in} ($\in$)}
\index{vdash@\commande{vdash} ($\vdash$)}
\index{geq@\commande{geq} ($\geq$)}
\index{succ@\commande{succ} ($\succ$)}
\index{succeq@\commande{succeq} ($\succeq$)}
\index{gg@\commande{gg} ($\gg$)}
\index{supset@\commande{supset} ($\supset$)}
\index{supseteq@\commande{supseteq} ($\supseteq$)}
\index{sqsupset@\commande{sqsupset} ($\sqsupset$)}
\index{sqsupseteq@\commande{sqsupseteq} ($\sqsupseteq$)}
\index{ni@\commande{ni} ($\ni$)}
\index{dashv@\commande{dashv} ($\dashv$)}
\index{equiv@\commande{equiv} ($\equiv$)}
\index{sim@\commande{sim} ($\sim$)}
\index{simeq@\commande{simeq} ($\simeq$)}
\index{asymp@\commande{asymp} ($\asymp$)}
\index{approx@\commande{approx} ($\approx$)}
\index{cong@\commande{cong} ($\cong$)}
\index{neq@\commande{neq} ($\neq$)}
\index{doteq@\commande{doteq} ($\doteq$)}
\index{propto@\commande{propto} ($\propto$)}
\index{models@\commande{models} ($\models$)}
\index{perp@\commande{perp} ($\perp$)}
\index{mid@\commande{mid} ($\mid$)}
\index{parallel@\commande{parallel} ($\parallel$)}
\index{bowtie@\commande{bowtie} ($\bowtie$)}
\index{Join@\commande{Join} ($\Join$)}
\index{smile@\commande{smile} ($\smile$)}
\index{frown@\commande{frown} ($\frown$)}
\end{table}

On peut obtenir la négation de ces symboles grâce à la commande
\commandeindex{not} :

\begin{filecontents*}{\jobname.tmp}
$ x \not\in F $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\subsection{Flèches}
\index{symboles mathématiques!flèches}

Les commandes présentées dans le tableau \ref{tableau:fleches}
permettent d'obtenir des flèches.

\begin{table}[!htbp]
\centering
\begin{threeparttable}
\begin{tabular}{>{$}l<{$}l*{2}{@{\hspace{5mm}}>{$}l<{$}l}}
\toprule
\leftarrow         & \commande{leftarrow}         & \longleftarrow      & \commande{longleftarrow}      & \uparrow     & \commande{uparrow}     \\
\Leftarrow         & \commande{Leftarrow}         & \Longleftarrow      & \commande{Longleftarrow}      & \Uparrow     & \commande{Uparrow}     \\
\rightarrow        & \commande{rightarrow}        & \longrightarrow     & \commande{longrightarrow}     & \downarrow   & \commande{downarrow}   \\
\Rightarrow        & \commande{Rightarrow}        & \Longrightarrow     & \commande{Longrightarrow}     & \Downarrow   & \commande{Downarrow}   \\
\leftrightarrow    & \commande{leftrightarrow}    & \longleftrightarrow & \commande{longleftrightarrow} & \updownarrow & \commande{updownarrow} \\
\Leftrightarrow    & \commande{Leftrightarrow}    & \Longleftrightarrow & \commande{Longleftrightarrow} & \Updownarrow & \commande{Updownarrow} \\
\mapsto            & \commande{mapsto}            & \longmapsto         & \commande{longmapsto}         & \nearrow     & \commande{nearrow}     \\
\hookleftarrow     & \commande{hookleftarrow}     & \hookrightarrow     & \commande{hookrightarrow}     & \searrow     & \commande{searrow}     \\
\leftharpoonup     & \commande{leftharpoonup}     & \rightharpoonup     & \commande{rightharpoonup}     & \swarrow     & \commande{swarrow}     \\
\leftharpoondown   & \commande{leftharpoondown}   & \rightharpoondown   & \commande{rightharpoondown}   & \nwarrow     & \commande{nwarrow}     \\
\rightleftharpoons & \commande{rightleftharpoons} & \leadsto            & \commande{leadsto} \tnote{a}  &              &                        \\
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[a] Requiert l'extension \extensionindex{latexsym}.
\end{tablenotes}
\end{threeparttable}
\caption{Flèches}
\label{tableau:fleches}
\index{leftarrow@\commande{leftarrow} ($\leftarrow$)}
\index{Leftarrow@\commande{Leftarrow} ($\Leftarrow$)}
\index{rightarrow@\commande{rightarrow} ($\rightarrow$)}
\index{Rightarrow@\commande{Rightarrow} ($\Rightarrow$)}
\index{leftrightarrow@\commande{leftrightarrow} ($\leftrightarrow$)}
\index{Leftrightarrow@\commande{Leftrightarrow} ($\Leftrightarrow$)}
\index{mapsto@\commande{mapsto} ($\mapsto$)}
\index{hookleftarrow@\commande{hookleftarrow} ($\hookleftarrow$)}
\index{leftharpoonup@\commande{leftharpoonup} ($\leftharpoonup$)}
\index{leftharpoondown@\commande{leftharpoondown} ($\leftharpoondown$)}
\index{rightleftharpoons@\commande{rightleftharpoons} ($\rightleftharpoons$)}
\index{longleftarrow@\commande{longleftarrow} ($\longleftarrow$)}
\index{Longleftarrow@\commande{Longleftarrow} ($\Longleftarrow$)}
\index{longrightarrow@\commande{longrightarrow} ($\longrightarrow$)}
\index{Longrightarrow@\commande{Longrightarrow} ($\Longrightarrow$)}
\index{longleftrightarrow@\commande{longleftrightarrow} ($\longleftrightarrow$)}
\index{Longleftrightarrow@\commande{Longleftrightarrow} ($\Longleftrightarrow$)}
\index{longmapsto@\commande{longmapsto} ($\longmapsto$)}
\index{hookrightarrow@\commande{hookrightarrow} ($\hookrightarrow$)}
\index{rightharpoonup@\commande{rightharpoonup} ($\rightharpoonup$)}
\index{rightharpoondown@\commande{rightharpoondown} ($\rightharpoondown$)}
\index{leadsto@\commande{leadsto} ($\leadsto$)}
\index{uparrow@\commande{uparrow} ($\uparrow$)}
\index{Uparrow@\commande{Uparrow} ($\Uparrow$)}
\index{downarrow@\commande{downarrow} ($\downarrow$)}
\index{Downarrow@\commande{Downarrow} ($\Downarrow$)}
\index{updownarrow@\commande{updownarrow} ($\updownarrow$)}
\index{Updownarrow@\commande{Updownarrow} ($\Updownarrow$)}
\index{nearrow@\commande{nearrow} ($\nearrow$)}
\index{searrow@\commande{searrow} ($\searrow$)}
\index{swarrow@\commande{swarrow} ($\swarrow$)}
\index{nwarrow@\commande{nwarrow} ($\nwarrow$)}
\end{table}

\subsection{Symboles divers}
\index{symboles mathématiques!symboles divers}

Les commandes présentées dans le tableau
\ref{tableau:symbolesdivers} permettent d'obtenir des symboles
divers.

\begin{table}[!htbp]
\centering
\begin{threeparttable}
\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{6mm}}>{$}l<{$}l}}
\toprule
\aleph & \commande{aleph}         & \prime    & \commande{prime}    & \forall    & \commande{forall}    & \infty       & \commande{infty}             \\
\hbar  & \commande{hbar}          & \emptyset & \commande{emptyset} & \exists    & \commande{exists}    & \Box         & \commande{Box} \tnote{a}     \\
\imath & \commande{imath}         & \nabla    & \commande{nabla}    & \neg       & \commande{neg}       & \Diamond     & \commande{Diamond} \tnote{a} \\
\jmath & \commande{jmath}         & \surd     & \commande{surd}     & \flat      & \commande{flat}      & \triangle    & \commande{triangle}          \\
\ell   & \commande{ell}           & \top      & \commande{top}      & \natural   & \commande{natural}   & \clubsuit    & \commande{clubsuit}          \\
\wp    & \commande{wp}            & \bot      & \commande{bot}      & \sharp     & \commande{sharp}     & \diamondsuit & \commande{diamondsuit}       \\
\Re    & \commande{Re}            & \|        & \commande{|}        & \backslash & \commande{backslash} & \heartsuit   & \commande{heartsuit}         \\
\Im    & \commande{Im}            & \angle    & \commande{angle}    & \partial   & \commande{partial}   & \spadesuit   & \commande{spadesuit}         \\
\mho   & \commande{mho} \tnote{a} &           &                     &            &                      &              &                              \\
\bottomrule
\end{tabular}
\begin{tablenotes}
\item[a] Requiert l'extension \extensionindex{latexsym}.
\end{tablenotes}
\end{threeparttable}
\caption{Symboles divers}
\label{tableau:symbolesdivers}
\index{aleph@\commande{aleph} ($\aleph$)}
\index{hbar@\commande{hbar} ($\hbar$)}
\index{imath@\commande{imath} ($\imath$)}
\index{jmath@\commande{jmath} ($\jmath$)}
\index{ell@\commande{ell} ($\ell$)}
\index{wp@\commande{wp} ($\wp$)}
\index{Re@\commande{Re} ($\Re$)}
\index{Im@\commande{Im} ($\Im$)}
\index{mho@\commande{mho} ($\mho$)}
\index{prime@\commande{prime} ($\prime$)}
\index{emptyset@\commande{emptyset} ($\emptyset$)}
\index{nabla@\commande{nabla} ($\nabla$)}
\index{surd@\commande{surd} ($\surd$)}
\index{top@\commande{top} ($\top$)}
\index{bot@\commande{bot} ($\bot$)}
%\index{"|@\commande{"|} ($\|$)}
\index{angle@\commande{angle} ($\angle$)}
\index{forall@\commande{forall} ($\forall$)}
\index{exists@\commande{exists} ($\exists$)}
\index{neg@\commande{neg} ($\neg$)}
\index{flat@\commande{flat} ($\flat$)}
\index{natural@\commande{natural} ($\natural$)}
\index{sharp@\commande{sharp} ($\sharp$)}
\index{backslash@\commande{backslash} ($\backslash$)}
\index{partial@\commande{partial} ($\partial$)}
\index{infty@\commande{infty} ($\infty$)}
\index{Box@\commande{Box} ($\Box$)}
\index{Diamond@\commande{Diamond} ($\Diamond$)}
\index{triangle@\commande{triangle} ($\triangle$)}
\index{clubsuit@\commande{clubsuit} ($\clubsuit$)}
\index{diamondsuit@\commande{diamondsuit} ($\diamondsuit$)}
\index{heartsuit@\commande{heartsuit} ($\heartsuit$)}
\index{spadesuit@\commande{spadesuit} ($\spadesuit$)}
\end{table}

De plus, les commandes
\commande{ldots}\index{ldots@\commande{ldots} ($\ldots$)}
($\ldots$) et
\commande{cdots}\index{cdots@\commande{cdots} ($\cdots$)}
($\cdots$) permettent d'obtenir des points de suspension
(respectivement alignés sur la base de la ligne ou centrés
verticalement).

\subsection{Accents}
\index{symboles mathématiques!accents}

Le tableau \ref{tableau:mathaccents} présente les accents
disponibles en mode mathématique.

\begin{table}[!htbp]
\centering
\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{10mm}}>{$}l<{$}l}}
\toprule
\hat{a}   & \commande{hat\{a\}}   & \acute{a} & \commande{acute\{a\}} & \bar{a} & \commande{bar\{a\}} & \dot{a}  & \commande{dot\{a\}}  \\
\check{a} & \commande{check\{a\}} & \grave{a} & \commande{grave\{a\}} & \vec{a} & \commande{vec\{a\}} & \ddot{a} & \commande{ddot\{a\}} \\
\breve{a} & \commande{breve\{a\}} & \tilde{a} & \commande{tilde\{a\}} &         &                     &                                 \\
\bottomrule
\end{tabular}
\caption{Accents}
\label{tableau:mathaccents}
\index{hat@\commande{hat} ($\hat{a}$)}
\index{check@\commande{check} ($\check{a}$)}
\index{breve@\commande{breve} ($\breve{a}$)}
\index{acute@\commande{acute} ($\acute{a}$)}
\index{grave@\commande{grave} ($\grave{a}$)}
\index{tilde@\commande{tilde} ($\tilde{a}$)}
\index{bar@\commande{bar} ($\bar{a}$)}
\index{vec@\commande{vec} ($\vec{a}$)}
\index{dot@\commande{dot} ($\dot{a}$)}
\index{ddot@\commande{ddot} ($\ddot{a}$)}
\end{table}

Pour placer un accent sur un $i$ ou un $j$, utilisez les
commandes
\commande{imath}\index{imath@\commande{imath} ($\imath$)} et
\commande{jmath}\index{jmath@\commande{jmath} ($\jmath$)}, qui
produisent des lettres sans point (voir le tableau
\ref{tableau:symbolesdivers}).

Il existe aussi des commandes permettant d'avoir des versions
longues de certains accents :

\begin{filecontents*}{\jobname.tmp}
$ \widehat{xyz} $, $ \widetilde{abc} $
\end{filecontents*}
\exempleresultat{\jobname.tmp}
\index{widehat@\commande{widehat} ($\widehat{xyz}$)}
\index{widetilde@\commande{widetilde} ($\widetilde{xyz}$)}

Les commandes
\commande{overrightarrow}\index{overrightarrow@\commande{overrightarrow} ($\overrightarrow{AB}$)}
et
\commande{overleftarrow}\index{overleftarrow@\commande{overleftarrow} ($\overleftarrow{AB}$)}
permettent de surmonter leur argument d'une grande flèche :

\begin{filecontents*}{\jobname.tmp}
$ \overrightarrow{AB} $, $ \overleftarrow{AB} $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Les commandes
\commande{overline}\index{overline@\commande{overline} ($\overline{xyz}$)}
et
\commande{underline}\index{underline@\commande{underline} ($\underline{xyz}$)}
permettent de surligner et de souligner :

\begin{filecontents*}{\jobname.tmp}
$ \overline{z+1} = \bar{z} + 1 $,
$ \underline{\alpha + \beta} $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Enfin, les commandes
\commande{overbrace}\index{overbrace@\commande{overbrace} ($\overbrace{xyz}$)}
et
\commande{underbrace}\index{underbrace@\commande{underbrace} ($\underbrace{xyz}$)}
placent des accolades sur ou sous le texte. On peut ajouter un
commentaire en mettant un exposant après la commande
\commande{overbrace} ou un indice après la commande
\commande{underbrace} :

\begin{filecontents*}{\jobname.tmp}
\[
a^n = \overbrace{a \times a \times \cdots
\times a}^{\mbox{$n$ fois}}
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\subsection{Superposer deux symboles}

Il est possible de superposer deux symboles grâce à la commande :

\begin{syntaxe}
\commandeindex{stackrel}\argument{dessus}\argument{dessous}
\end{syntaxe}

\begin{filecontents*}{\jobname.tmp}
$ x \stackrel{f}{\longmapsto} f(x) $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

On peut, par exemple, utiliser la commande \commande{stackrel}
pour obtenir des tenseurs :

\begin{filecontents*}{\jobname.tmp}
$ \stackrel{\Rightarrow}{\sigma} =
  \Lambda ( \stackrel{\Rightarrow}{\varepsilon} ) $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\subsection{Ensembles}
\index{symboles mathématiques!ensembles}

Les extensions \extensionindex{bbm}, \extensionindex{bbold} et
\extensionindex{dsfont} fournissent des polices de caractères et
les commandes correspondantes permettant de représenter les
symboles des ensembles usuels.

L'extension \extensionindex{bbm} fournit ainsi les commandes
\commandeindex{mathbbm}, \commandeindex{mathbbmss} et
\commandeindex{mathbbmtt}. L'extension \extensionindex{bbold}
fournit la commande \commandeindex{mathbb}. L'extension
\extensionindex{dsfont} fournit la commande
\commandeindex{mathds}. Ces commandes doivent être utilisées en
mode mathématique.

L'extension \extensionindex{bbold} fournit également une commande
\commandeindex{textbb} destinée à être utilisée dans du texte
normal.

Le choix de l'extension et de la commande à utiliser dépend des
préférences de chacun quant à l'aspect des caractères. Le tableau
\ref{tableau:ensembles} présente ce que produit chacune des
commandes pour les ensembles usuels.

\begin{table}[!htbp]
\centering
\begin{tabular}{ccccc}
\toprule
\multicolumn{3}{c}{\extension{bbm}} & \extension{bbold} & \extension{dsfont} \\
\cmidrule(r){1-3}	\cmidrule(lr){4-4}	\cmidrule(l){5-5}
\commande{mathbbm} & \commande{mathbbmss} & \commande{mathbbmtt} & \commande{mathbb} & \commande{mathds} \\
\midrule
$\mathbbm{N}$ & $\mathbbmss{N}$ & $\mathbbmtt{N}$ & $\mathbb{N}$ & $\mathds{N}$ \\
$\mathbbm{Z}$ & $\mathbbmss{Z}$ & $\mathbbmtt{Z}$ & $\mathbb{Z}$ & $\mathds{Z}$ \\
$\mathbbm{D}$ & $\mathbbmss{D}$ & $\mathbbmtt{D}$ & $\mathbb{D}$ & $\mathds{D}$ \\
$\mathbbm{Q}$ & $\mathbbmss{Q}$ & $\mathbbmtt{Q}$ & $\mathbb{Q}$ & $\mathds{Q}$ \\
$\mathbbm{R}$ & $\mathbbmss{R}$ & $\mathbbmtt{R}$ & $\mathbb{R}$ & $\mathds{R}$ \\
$\mathbbm{C}$ & $\mathbbmss{C}$ & $\mathbbmtt{C}$ & $\mathbb{C}$ & $\mathds{C}$ \\
\bottomrule
\end{tabular}
\caption{Ensembles}
\label{tableau:ensembles}
\index{N@\commande{mathbbm\{N\}} ($\mathbbm{N}$)}
\index{Z@\commande{mathbbm\{Z\}} ($\mathbbm{Z}$)}
\index{D@\commande{mathbbm\{D\}} ($\mathbbm{D}$)}
\index{Q@\commande{mathbbm\{Q\}} ($\mathbbm{Q}$)}
\index{R@\commande{mathbbm\{R\}} ($\mathbbm{R}$)}
\index{C@\commande{mathbbm\{C\}} ($\mathbbm{C}$)}
\index{N@\commande{mathbbmss\{N\}} ($\mathbbmss{N}$)}
\index{Z@\commande{mathbbmss\{Z\}} ($\mathbbmss{Z}$)}
\index{D@\commande{mathbbmss\{D\}} ($\mathbbmss{D}$)}
\index{Q@\commande{mathbbmss\{Q\}} ($\mathbbmss{Q}$)}
\index{R@\commande{mathbbmss\{R\}} ($\mathbbmss{R}$)}
\index{C@\commande{mathbbmss\{C\}} ($\mathbbmss{C}$)}
\index{N@\commande{mathbbmtt\{N\}} ($\mathbbmtt{N}$)}
\index{Z@\commande{mathbbmtt\{Z\}} ($\mathbbmtt{Z}$)}
\index{D@\commande{mathbbmtt\{D\}} ($\mathbbmtt{D}$)}
\index{Q@\commande{mathbbmtt\{Q\}} ($\mathbbmtt{Q}$)}
\index{R@\commande{mathbbmtt\{R\}} ($\mathbbmtt{R}$)}
\index{C@\commande{mathbbmtt\{C\}} ($\mathbbmtt{C}$)}
\index{N@\commande{mathbb\{N\}} ($\mathbb{N}$)}
\index{Z@\commande{mathbb\{Z\}} ($\mathbb{Z}$)}
\index{D@\commande{mathbb\{D\}} ($\mathbb{D}$)}
\index{Q@\commande{mathbb\{Q\}} ($\mathbb{Q}$)}
\index{R@\commande{mathbb\{R\}} ($\mathbb{R}$)}
\index{C@\commande{mathbb\{C\}} ($\mathbb{C}$)}
\index{N@\commande{mathds\{N\}} ($\mathds{N}$)}
\index{Z@\commande{mathds\{Z\}} ($\mathds{Z}$)}
\index{D@\commande{mathds\{D\}} ($\mathds{D}$)}
\index{Q@\commande{mathds\{Q\}} ($\mathds{Q}$)}
\index{R@\commande{mathds\{R\}} ($\mathds{R}$)}
\index{C@\commande{mathds\{C\}} ($\mathds{C}$)}
\end{table}

\section{Modifier l'espacement}
\label{section:espacement}

Dans certains cas, il peut être utile de modifier l'espacement,
afin d'éloigner ou de rapprocher certains symboles (voir le
tableau \ref{tableau:espacement}).

\begin{table}[!htbp]
\centering
\begin{tabular}{ll@{\hspace{10mm}}ll}
\toprule
\commande{,} & petite  espace & \verb+\!+        & petite  espace négative      \\
\verb+\:+    & moyenne espace & \commande{quad}  & petite  espace interformules \\
\verb+\;+    & grande  espace & \commande{qquad} & moyenne espace interformules \\
\bottomrule
\end{tabular}
\caption{Commandes d'espacement}
\label{tableau:espacement}
\index{,@\commande{,} (espacement)}
\index{:@\verb+\:+ (espacement)}
\index{;@\verb+\;+ (espacement)}
\index{"!@\commande{"!} (espacement)}
\index{quad@\commande{quad} (espacement)}
\index{qquad@\commande{qquad} (espacement)}
\end{table}

Nous verrons, lorsque cela est utile, comment ces commandes
peuvent servir.

\section{Modifier le style et la taille}
\label{section:styletaille}

\LaTeX\ permet de modifier le style des caractères en mode
mathématique (voir le tableau \ref{tableau:mathstyle}).

\begin{table}[!htbp]
\centering
\begin{tabular}{ll}
\toprule
\code{\$                        x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta   \$} & $        x + y + 2^n\Omega\cos\theta $        \\
\code{\$ \textbackslash mathit\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathit{x + y + 2^n\Omega\cos\theta}$ \\
\code{\$ \textbackslash mathrm\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathrm{x + y + 2^n\Omega\cos\theta}$ \\
\code{\$ \textbackslash mathbf\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathbf{x + y + 2^n\Omega\cos\theta}$ \\
\code{\$ \textbackslash mathsf\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathsf{x + y + 2^n\Omega\cos\theta}$ \\
\code{\$ \textbackslash mathtt\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathtt{x + y + 2^n\Omega\cos\theta}$ \\
\bottomrule
\end{tabular}
\caption{Commandes de changement de style}
\label{tableau:mathstyle}
\index{mathit@\commande{mathit}}
\index{mathrm@\commande{mathrm}}
\index{mathbf@\commande{mathbf}}
\index{mathsf@\commande{mathsf}}
\index{mathtt@\commande{mathtt}}
\end{table}

Comme vous pouvez le constater, les commandes de changement de
style n'agissent que sur les lettres, les chiffres et les lettres
grecques majuscules.

La commande \commandeindex{mathcal} permet d'obtenir des
majuscules calligraphiques :

\begin{filecontents*}{\jobname.tmp}
Soient $\mathcal{C}$ le cercle de centre O et de rayon 1,
$\mathcal{D}_1$ et $\mathcal{D}_2$ deux droites.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Voici ce à quoi ressemblent ces majuscules :

\[
\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\]

Comme nous allons le voir par la suite (en particulier au
paragraphe \ref{section:taillevariable}), certains symboles n'ont
pas la même taille dans l'environnement \environnement{math} et
dans l'environnement \environnement{displaymath}.

La déclaration \commandeindex{displaystyle} permet, dans un
environnement \environnement{math}, de forcer \LaTeX\ à utiliser
des caractères et des symboles de la même taille qu'en
environnement \environnement{displaymath}. Cette déclaration est
à utiliser avec modération, car son utilisation risque de
modifier l'interligne du paragraphe, pour les formules qui sont
placées dans le texte.

De même, la déclaration \commandeindex{textstyle} permet de
forcer \LaTeX\ à utiliser, dans un environnement
\environnement{displaymath}, des caractères et des symboles de la
même taille qu'en environnement \environnement{math}.

Enfin, signalons aussi l'existence des deux déclarations
\commandeindex{scriptstyle} et \commandeindex{scriptscriptstyle}
qui mettent respectivement le texte à la taille d'un exposant et
d'un exposant d'exposant (désolé, il n'y a pas plus petit).

\section{Fractions}
\index{fraction}

Les fractions s'obtiennent grâce à la commande :

\begin{syntaxe}
\commandeindex{frac}\argument{numérateur}\argument{dénominateur}
\end{syntaxe}

\begin{filecontents*}{\jobname.tmp}
\[
\frac{x+1}{x+2}
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Racines}
\index{racine}

Les racines s'obtiennent grâce à la commande :

\begin{syntaxe}
\commandeindex{sqrt}\option{ordre}\argument{argument}
\end{syntaxe}

\begin{filecontents*}{\jobname.tmp}
$ \sqrt{x^2+y^2} $, $ \sqrt[n]{\alpha_i} $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Délimiteurs}
\index{symboles mathématiques!délimiteurs}

Les délimiteurs, présentés dans le tableau
\ref{tableau:delimiteurs}, sont des symboles permettant
d'encadrer des formules. Leur hauteur s'adapte à celle de la
formule.

\begin{table}[!htbp]
\centering
\begin{tabular}{*{2}{ll@{\hspace{10mm}}}>{$}l<{$}l}
\toprule
$($       & \code{(}          & $)$          & \code{)}             & \uparrow     & \commande{uparrow}     \\
$[$       & \code{[}          & $]$          & \code{]}             & \downarrow   & \commande{downarrow}   \\
$\{$      & \commande{\{}     & $\}$         & \commande{\}}        & \updownarrow & \commande{updownarrow} \\
$\lfloor$ & \commande{lfloor} & $\rfloor$    & \commande{rfloor}    & \Uparrow     & \commande{Uparrow}     \\
$\lceil$  & \commande{lceil}  & $\rceil$     & \commande{rceil}     & \Downarrow   & \commande{Downarrow}   \\
$\langle$ & \commande{langle} & $\rangle$    & \commande{rangle}    & \Updownarrow & \commande{Updownarrow} \\
$/$       & \code{/}          & $\backslash$ & \commande{backslash} &              &                        \\
$|$       & \code{|}          & $\|$         & \commande{|}         &              &                        \\
\bottomrule
\end{tabular}
\caption{Délimiteurs}
\label{tableau:delimiteurs}
\index{(@\code{(} (délimiteur)}
\index{[@\code{[} (délimiteur)}
%\index{{@\code{\{} (délimiteur)}
\index{lfloor@\commande{lfloor} ($\lfloor$)}
\index{lceil@\commande{lceil} ($\lceil$)}
\index{langle@\commande{langle} ($\langle$)}
\index{/@\code{/} (délimiteur)}
%\index{"|@\code{"|} (délimiteur)}
\index{)@\code{)} (délimiteur)}
\index{]@\code{]} (délimiteur)}
%\index{}@\code{\}} (délimiteur)}
\index{rfloor@\commande{rfloor} ($\rfloor$)}
\index{rceil@\commande{rceil} ($\rceil$)}
\index{rangle@\commande{rangle} ($\rangle$)}
\index{backslash@\commande{backslash} ($\backslash$)}
%\index{"|@\commande{"|} ($\|$) (délimiteur)}
\index{uparrow@\commande{uparrow} ($\uparrow$)}
\index{downarrow@\commande{downarrow} ($\downarrow$)}
\index{updownarrow@\commande{updownarrow} ($\updownarrow$)}
\index{Uparrow@\commande{Uparrow} ($\Uparrow$)}
\index{Downarrow@\commande{Downarrow} ($\Downarrow$)}
\index{Updownarrow@\commande{Updownarrow} ($\Updownarrow$)}
\end{table}

Les délimiteurs doivent toujours aller par paire : un délimiteur
ouvrant et un délimiteur fermant. Un délimiteur ouvrant s'obtient
par la commande \commandeindex{left} suivie du délimiteur, et un
délimiteur fermant par la commande \commandeindex{right} suivie
du délimiteur. Bien entendu, on peut imbriquer les paires de
délimiteurs si nécessaire.

Voici un exemple d'utilisation des délimiteurs (nous aborderons
l'environnement \environnement{array} au paragraphe
\ref{section:array}) :

\begin{filecontents*}{\jobname.tmp}
\[
\left[
\begin{array}{cc}
a_{11} & a_{12} \\
a_{21} & a_{22}
\end{array}
\right]
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Si l'on ne désire pas voir apparaître de délimiteur fermant, il
faut alors mettre \commandeindex{right.} (\commande{right} suivi
d'un point). En effet, tout \commande{left} doit avoir un
\commande{right} correspondant, le \commande{right.} n'imprime
rien, mais sert à fermer le \commande{left} qui lui correspond.

Il en va de même si l'on ne souhaite pas de délimiteur ouvrant,
on utilise \commandeindex{left.} (\commande{left} suivi d'un
point).

\begin{filecontents*}{\jobname.tmp}
\[
|x| =
\left\{
\begin{array}{rl}
 x & \mbox{si } x \geq 0 \\
-x & \mbox{si } x < 0
\end{array}
\right.
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Symboles de taille variable}
\label{section:taillevariable}
\index{symboles mathématiques!symboles de taille variable}
\index{somme}
\index{produit}
\index{intégrale}

Les symboles présentés dans le tableau
\ref{tableau:taillevariable} sont de \emph{taille variable} : il
n'ont pas la même taille dans l'environnement
\environnement{math} et dans l'environnement
\environnement{displaymath}.

\begin{table}[!htbp]
\centering
\begin{tabular}{>{$}l<{$}l*{2}{@{\hspace{10mm}}>{$}l<{$}l}}
\toprule
\sum    \displaystyle \sum    & \commande{sum}    & \bigcap   \displaystyle \bigcap   & \commande{bigcap}   & \bigodot   \displaystyle \bigodot   & \commande{bigodot}   \\
\prod   \displaystyle \prod   & \commande{prod}   & \bigcup   \displaystyle \bigcup   & \commande{bigcup}   & \bigotimes \displaystyle \bigotimes & \commande{bigotimes} \\
\coprod \displaystyle \coprod & \commande{coprod} & \bigsqcup \displaystyle \bigsqcup & \commande{bigsqcup} & \bigoplus  \displaystyle \bigoplus  & \commande{bigoplus}  \\
\int    \displaystyle \int    & \commande{int}    & \bigvee   \displaystyle \bigvee   & \commande{bigvee}   & \biguplus  \displaystyle \biguplus  & \commande{biguplus}  \\
\oint   \displaystyle \oint   & \commande{oint}   & \bigwedge \displaystyle \bigwedge & \commande{bigwedge} &                                     &                      \\
\bottomrule
\end{tabular}
\caption{Symboles de taille variable}
\label{tableau:taillevariable}
\index{sum@\commande{sum} ($\sum$)}
\index{prod@\commande{prod} ($\prod$)}
\index{coprod@\commande{coprod} ($\coprod$)}
\index{int@\commande{int} ($\int$)}
\index{oint@\commande{oint} ($\oint$)}
\index{bigcap@\commande{bigcap} ($\bigcap$)}
\index{bigcup@\commande{bigcup} ($\bigcup$)}
\index{bigsqcup@\commande{bigsqcup} ($\bigsqcup$)}
\index{bigvee@\commande{bigvee} ($\bigvee$)}
\index{bigwedge@\commande{bigwedge} ($\bigwedge$)}
\index{bigodot@\commande{bigodot} ($\bigodot$)}
\index{bigotimes@\commande{bigotimes} ($\bigotimes$)}
\index{bigoplus@\commande{bigoplus} ($\bigoplus$)}
\index{biguplus@\commande{biguplus} ($\biguplus$)}
\end{table}

Ces symboles sont plus petits en environnement
\environnement{math} afin d'être de même taille que le reste du
texte. De plus, leurs indices et exposants (qui représentent
leurs bornes) ne sont pas disposés de la même façon dans les deux
environnements :

\begin{exemple}
$  \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx  $
\[ \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx \]
\end{exemple}

\begin{resultat}
\begin{center}
$  \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx  $
\end{center}
\[ \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx \]
\end{resultat}

Comme indiqué au paragraphe \ref{section:styletaille}, on peut,
en environnement \environnement{math}, utiliser la déclaration
\commandeindex{displaystyle} qui donne aux symboles de taille
variable la taille qu'ils ont en environnement
\environnement{displaymath} (mais ceci modifie l'interligne du
texte) :

\begin{filecontents*}{\jobname.tmp}
On en déduit donc
$ \displaystyle \sum_{n=1}^{+\infty} \frac{1}{n^2} =
  \frac{\pi^2}{6} $.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Dans les intégrales, on utilise souvent les commandes
d'espacement vues au paragraphe \ref{section:espacement} pour
éloigner le $dx$ ou pour rapprocher les symboles d'intégration
des intégrales multiples :

\begin{filecontents*}{\jobname.tmp}
\[
\int_a^b f(x) \, dx \qquad
V = \int \!\!\!\! \int \!\!\!\! \int_{\Omega} d\tau
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

En cas d'usage intensif d'intégrales multiples, il peut être
intéressant d'utiliser l'extension \extensionindex{amsmath} (voir
\cite[chapitre 8]{the-latex-companion}) qui définit des commandes
spécifiques pour la saisie des intégrales multiples (voir
\cite[page 492]{the-latex-companion}).

\section{Mathématiques et typographie}
\label{section:math-typo}
\index{typographie}

\LaTeX\ respecte de lui-même une grande partie des règles
typographiques d'écriture des mathématiques. On se reportera à
\cite[pages 107 à 116]{lexique-des-regles-typographiques} pour en
avoir une description complète. Néanmoins, un coup de pouce de la
part de l'utilisateur est parfois nécessaire.

C'est le cas pour les intégrales, qu'il convient d'écrire comme
indiqué à droite dans l'exemple suivant, c'est-à-dire avec un peu
d'espace entre la fonction et la différentielle, celle-ci étant
composée en romain :

\begin{filecontents*}{\jobname.tmp}
\[
\int_a^b f(x) dx \qquad \int_a^b f(x) \, \mathrm{d}x
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Les formules mathématiques contiennent majoritairement des
variables et des fonctions et il est d'usage d'écrire celles-ci
en italique. C'est pour cela que les formules mathématiques sont
composées par \LaTeX\ en italique.

En revanche, le symbole de différentielle se compose en romain,
d'où l'utilisation de la commande \commande{mathrm} dans
l'exemple précédent. On en profite également pour ajouter un peu
d'espace entre la fonction et la différentielle, ce qui donne un
rendu visuel plus agréable.

Si le document comporte beaucoup d'intégrales, il peut être utile
de simplifier leur saisie en définissant une nouvelle commande
permettant de représenter la différentielle et son espace :

\begin{exemple}
\newcommand{\diff}{\,\mathrm{d}}
\end{exemple}

On peut alors écrire :

\begin{filecontents*}{\jobname.tmp}
\[
\int_a^b f(x) \diff x
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

De même, les constantes se composent en romain. C'est en
particulier le cas pour $\mathrm{e}$ et $\mathrm{i}$ :

\begin{filecontents*}{\jobname.tmp}
\[
\mathrm{e}^{\mathrm{i}\pi} + 1 = 0
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Les constantes physiques se composent également en romain :

\begin{filecontents*}{\jobname.tmp}
\[
E = m\mathrm{c}^2
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

En cas d'utilisation intensive de certaines constantes, il peut
être utile de définir des commandes permettant de les
représenter, comme il a été fait pour \commande{diff}.

\section{Fonctions et opérateurs}
\index{symboles mathématiques!fonctions et opérateurs}

Il est d'usage d'écrire certains noms de fonctions ou
d'opérateurs en romain :

\[
\lim_{x \rightarrow +\infty} \ln x = +\infty
\]

On pourrait écrire cette égalité ainsi :

\begin{filecontents*}{\jobname.tmp}
\[
lim_{x \rightarrow +\infty} ln x = +\infty
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Mais alors l'opérateurs $\lim$ et la fonction $\ln$ ne sont pas
en romain. Essayons donc ainsi :

\begin{filecontents*}{\jobname.tmp}
\[
\mbox{lim}_{x \rightarrow +\infty} \mbox{ln} x = +\infty
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

C'est mieux, mais on n'a pas le bon espacement, et $x \rightarrow
+\infty$ n'est pas placé sous le symbole $\lim$ comme il devrait
l'être.

Pour résoudre ces problèmes, \LaTeX\ fournit les commandes
présentées dans le tableau \ref{tableau:fonctionsoperateurs}.

\begin{table}[!htbp]
\centering
\begin{tabular}{*{8}{l}}
\toprule
\commande{arccos} & \commande{cos}  & \commande{csc} & \commande{exp} & \commande{ker}    & \commande{limsup} & \commande{min} & \commande{sinh} \\
\commande{arcsin} & \commande{cosh} & \commande{deg} & \commande{gcd} & \commande{lg}     & \commande{ln}     & \commande{Pr}  & \commande{sup}  \\
\commande{arctan} & \commande{cot}  & \commande{det} & \commande{hom} & \commande{lim}    & \commande{log}    & \commande{sec} & \commande{tan}  \\
\commande{arg}    & \commande{coth} & \commande{dim} & \commande{inf} & \commande{liminf} & \commande{max}    & \commande{sin} & \commande{tanh} \\
\bottomrule
\end{tabular}
\caption{Fonctions et opérateurs}
\label{tableau:fonctionsoperateurs}
\index{arccos@\commande{arccos} ($\arccos$)}
\index{arcsin@\commande{arcsin} ($\arcsin$)}
\index{arctan@\commande{arctan} ($\arctan$)}
\index{arg@\commande{arg} ($\arg$)}
\index{cos@\commande{cos} ($\cos$)}
\index{cosh@\commande{cosh} ($\cosh$)}
\index{cot@\commande{cot} ($\cot$)}
\index{coth@\commande{coth} ($\coth$)}
\index{csc@\commande{csc} ($\csc$)}
\index{deg@\commande{deg} ($\deg$)}
\index{det@\commande{det} ($\det$)}
\index{dim@\commande{dim} ($\dim$)}
\index{exp@\commande{exp} ($\exp$)}
\index{gcd@\commande{gcd} ($\gcd$)}
\index{hom@\commande{hom} ($\hom$)}
\index{inf@\commande{inf} ($\inf$)}
\index{ker@\commande{ker} ($\ker$)}
\index{lg@\commande{lg} ($\lg$)}
\index{lim@\commande{lim} ($\lim$)}
\index{liminf@\commande{liminf} ($\liminf$)}
\index{limsup@\commande{limsup} ($\limsup$)}
\index{ln@\commande{ln} ($\ln$)}
\index{log@\commande{log} ($\log$)}
\index{max@\commande{max} ($\max$)}
\index{min@\commande{min} ($\min$)}
\index{Pr@\commande{Pr} ($\Pr$)}
\index{sec@\commande{sec} ($\sec$)}
\index{sin@\commande{sin} ($\sin$)}
\index{sinh@\commande{sinh} ($\sinh$)}
\index{sup@\commande{sup} ($\sup$)}
\index{tan@\commande{tan} ($\tan$)}
\index{tanh@\commande{tanh} ($\tanh$)}
\end{table}

La bonne façon d'écrire

\[
\lim_{x \rightarrow +\infty} \ln x = +\infty
\]

est donc :

\begin{exemple}
\[
\lim_{x \rightarrow +\infty} \ln x = +\infty
\]
\end{exemple}

Certaines des commandes du tableau
\ref{tableau:fonctionsoperateurs} se comportent comme des
symboles de taille variable en ce qui concerne le placement de
leurs indices. C'est en particulier le cas des limites :

\begin{filecontents*}{\jobname.tmp}
$ \lim_{x \rightarrow 0} \ln x = -\infty $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Enfin, les commandes \commande{bmod}\index{bmod@\commande{bmod}
($\bmod$)} et \commandeindex{pmod} permettent d'imprimer les deux
formes de l'opérateur \terme{modulo} :

\begin{filecontents*}{\jobname.tmp}
$ c = a \bmod b $ \qquad $ a \equiv b \pmod{n} $
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Les tableaux : l'environnement \environnement{array}}
\label{section:array}
\index{matrice}

Les tableaux (en particulier les matrices) s'obtiennent grâce à
l'environnement \environnementindex{array}, qui s'utilise
exactement comme l'environnement \environnement{tabular} :

\begin{filecontents*}{\jobname.tmp}
\[
{\mathcal A} = \left(
\begin{array}{ccc}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{array}
\right)
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

L'argument de l'environnement \environnement{array} indique le
nombre de colonnes du tableau ainsi que leur alignement. Chaque
caractère représente une colonne et peut être :

\begin{description}

\item[\code{l} (\anglais{left})]\index{l@\code{l} (environnement \environnement{array})}
   la colonne est alignée à gauche ;

\item[\code{c} (\anglais{center})]\index{c@\code{c} (environnement \environnement{array})}
   la colonne est centrée ;

\item[\code{r} (\anglais{right})]\index{r@\code{r} (environnement \environnement{array})}
   la colonne est alignée à droite.

\end{description}

Ainsi, la matrice de notre exemple a trois colonnes (\code{ccc}),
chacune d'elle étant centrée.

À l'intérieur de l'environnement \environnement{array}, les
lignes sont terminées par \boiboiindex\
(sauf la dernière) et les colonnes sont séparées par
\code{\&}\index{&@\code{\&} (environnement \environnement{array})}.

Les commandes
\commande{cdots}\index{cdots@\commande{cdots} ($\cdots$)}
($\cdots$),
\commande{vdots}\index{vdots@\commande{vdots} ($\vdots$)}
($\vdots$) et
\commande{ddots}\index{ddots@\commande{ddots} ($\ddots$)}
($\ddots$) sont souvent utilisées dans les matrices :

\begin{filecontents*}{\jobname.tmp}
\[
{\mathcal A} = \left(
\begin{array}{cccc}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{array}
\right)
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

L'environnement \environnement{array} permet de faire toutes
sortes de tableaux en mode mathématique, pas seulement des
matrices :

\begin{filecontents*}{\jobname.tmp}
\[
\sum_{\begin{array}{c}
\scriptstyle i>0 \\
\scriptstyle j>0
\end{array}} a_{ij} = \alpha
\]
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Les équations numérotées : l'environnement
         \environnement{equation}}
\index{equation@équation}

L'environnement \environnementindex{equation} s'utilise de la
même façon que l'environnement \environnement{displaymath} mais
il génère en plus un numéro d'équation :

\begin{filecontents*}{\jobname.tmp}
\begin{equation} \label{eqn:euler}
\mathrm{e}^{\mathrm{i}\pi} + 1 = 0
\end{equation}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Comme tout ce qui est numéroté, on peut référencer une équation
par la commande \commandeindex{label}, puis rappeler son numéro
par la commande \commande{ref}.

Le numéro d'équation apparaît à droite par défaut. On peut le
faire apparaître à gauche en utilisant l'option de classe
\classeoptionindex{leqno}.

\section[Les équations numérotées et alignées :
l'environnement\texorpdfstring{\newline}{}
\environnement{eqnarray}]{Les équations numérotées et alignées :
l'environnement \environnement{eqnarray}}

Il peut être nécesssaire de superposer des formules ou de
dérouler un calcul en gardant un symbole aligné (le signe $=$,
par exemple). Pour cela, on utilise l'environnement
\environnementindex{eqnarray} :

\begin{filecontents*}{\jobname.tmp}
\begin{eqnarray}
\ln xy    & = & \ln x + \ln y \\
\exp(x+y) & = & \exp x \: \exp y
\end{eqnarray}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

L'environnement \environnement{eqnarray} s'utilise comme un
tableau dont le format serait \code{rcl}.

On peut supprimer la numérotation d'une ligne en mettant la
commande \commandeindex{nonumber} en fin de ligne :

\begin{filecontents*}{\jobname.tmp}
\begin{eqnarray}
\int_1^2 x^2 \diff x
   & = & \left[ \frac{x^3}{3} \right]_1^2 \nonumber \\
   & = & \frac{2^3}{3} - \frac{1^3}{3}    \nonumber \\
   & = & \frac{8}{3} - \frac{1}{3}        \nonumber \\
   & = & \frac{7}{3}
\end{eqnarray}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Si l'on ne désire aucune numérotation, il vaut mieux utiliser la
forme étoilée de l'environnement \environnement{eqnarray}.
L'environnement \environnementindex{eqnarray*} s'utilise comme
l'environnement \environnement{eqnarray}, mais il ne numérote pas
les équations :

\begin{filecontents*}{\jobname.tmp}
\begin{eqnarray*}
\int_0^\pi \sin x \diff x
   & = & \left[ - \cos x \right]_0^\pi \\
   & = & - \cos \pi + \cos 0           \\
   & = & 1 + 1                         \\
   & = & 2
\end{eqnarray*}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Théorèmes, définitions...}

\newtheorem{theoreme}{Théorème}

\begin{theoreme}[babafou]
\LaTeX\ ne se limite pas aux formules et aux signes
bizarres, il permet aussi de composer des théorèmes de
toute beauté (comme celui-ci).
\end{theoreme}

La commande:

\begin{syntaxe}
\commandeindex{newtheorem}\argument{nom}\argument{texte}
\end{syntaxe}

\noindent définit un nouvel environnement qui a pour nom
\var{nom}.

Par exemple, le théorème de babafou ci-dessus a été réalisé ainsi :

\begin{exemple}
\newtheorem{theoreme}{Théorème}

\begin{theoreme}[babafou]
\LaTeX\ ne se limite pas aux formules et aux signes
bizarres, il permet aussi de composer des théorèmes de
toute beauté (comme celui-ci).
\end{theoreme}
\end{exemple}

L'environnement créé par la commande \commande{newtheorem}
réalise les actions suivantes :

\begin{enumerate}

\item il imprime \var{texte} (deuxième argument de la commande
      \commande{newtheorem}) ;

\item puis un numéro (à chaque environnement créé est associé un
      compteur dédié qui est incrémenté à chaque utilisation de
      l'environnement) ;

\item puis, éventuellement, son argument optionnel (c'est
      généralement l'auteur du théorème) entre parenthèses ;

\item enfin, il imprime son contenu, préalablement mis en
      italique.

\end{enumerate}

On peut ainsi créer autant d'environnements que nécessaire, un
pour les théorèmes, un pour les définitions, un pour les lemmes,
un pour les hypothèses, etc., chacun ayant son propre compteur.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Bibliographie et index}
\label{chapitre:bibliographie-index}

Réaliser une bibliographie ou un index est généralement assez
compliqué. Pour cela, \LaTeX\ s'appuie sur deux autres logiciels,
\BibTeX\ et \MakeIndex, afin de rendre ce travail simple et
efficace.

\section{Faire une bibliographie}
\index{bibliographie}

Avec \LaTeX, il y a deux façons de faire une bibliographie :

\begin{itemize}

   \item en utilisant l'environnement
   \environnementindex{thebibliography} ;

   \item en utilisant le logiciel \BibTeX\index{BibTeX@\BibTeX}.

\end{itemize}

\subsection{L'environnement \environnement{thebibliography}}

L'environnement \environnementindex{thebibliography} permet
d'imprimer la liste des références bibliographiques :

\begin{exemple}
\begin{thebibliography}{2}

\bibitem{latex-a-document-preparation-system}
   Leslie Lamport :
   \textit{\LaTeX: a document preparation system}.
   Addison-Wesley, second edition, 1994.

\bibitem{the-latex-companion}
   Frank Mittelbach et Michel Goossens :
   \textit{The \LaTeX\ Companion}.
   Addison-Wesley, second edition, 2004.

\end{thebibliography}
\end{exemple}

Ce qui donne :

\newcommand{\monlabel}[1]{[#1]}
\newenvironment{biblio}
{
   \begin{list}{[0]}
   {
      \renewcommand{\makelabel}{\monlabel}
      \settowidth{\labelwidth}{[0]}
      \setlength{\leftmargin}{\labelwidth}
      \addtolength{\leftmargin}{\labelsep}
      \setlength{\itemsep}{0mm}
   }
}
{\end{list}}

\begin{resultat}
\noindent \textbf{\Huge Bibliographie}

\bigskip

\begin{biblio}
\item[1]
   Leslie Lamport :
   \textit{\LaTeX: a document preparation system}.
   Addison-Wesley, second edition, 1994.
\item[2]
   Frank Mittelbach et Michel Goossens :
   \textit{The \LaTeX\ Companion}.
   Addison-Wesley, second edition, 2004.
\end{biblio}
\end{resultat}

L'environnement \environnement{thebibliography} s'utilise à peu
près comme l'environnement \environnement{itemize}. Chaque
élément de la bibliographie commence par la commande
\commandeindex{bibitem}, qui prend en argument une chaîne de
caractères permettant, comme avec \commande{label}, de faire
référence à l'ouvrage. Puis on met à la suite l'auteur ou les
auteurs de l'ouvrage, son titre (en italique, c'est l'usage), son
éditeur, son année de parution et toute information devant
figurer dans la bibliographie.

Dans la version imprimée, chaque élément de la bibliographie est
repéré par un nombre entre crochets généré automatiquement. Il
est possible d'assigner une étiquette personnalisée grâce à
l'argument optionnel de \commande{bibitem} :

\begin{exemple}
\bibitem[Lamport 1994]{latex-a-document-preparation-system}
   Leslie Lamport :
   \textit{\LaTeX: a document preparation system}.
   Addison-Wesley, second edition, 1994.
\end{exemple}

Ce qui donne :

\begin{resultat}
[Lamport 1994] Leslie Lamport \ldots
\end{resultat}

L'argument de l'environnement \environnement{thebibliography}
précise la taille maximale de ces étiquettes :

\begin{itemize}

\item lorsqu'on ne les personnalise pas, on met généralement le
      nombre d'éléments de la bibliographie ;

\item lorsqu'on les personnalise, on met l'étiquette la plus
      longue (qui n'est pas toujours évidente à déterminer comme
      nous l'avons vu avec l'environnement
      \environnement{tabbing}).

\end{itemize}

La commande \commandeindex{cite} permet de faire référence à un
élément de la bibliographie au sein du dpcument. Elle imprime le
numéro ou l'étiquette de l'ouvrage :

\begin{filecontents*}{\jobname.tmp}
Voir \cite{the-latex-companion} pour plus de précisions.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

On peut indiquer des renseignements supplémentaires (page,
chapitre, etc.) grâce à l'argument optionnel de \commande{cite} :

\begin{filecontents*}{\jobname.tmp}
Voir \cite[page 691]{the-latex-companion} pour plus de
précisions.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\subsection{\BibTeX}
\index{BibTeX@\BibTeX}

L'utilisation de l'environnement \environnement{thebibliography}
convient très bien à la réalisation d'une bibliographie, mais
elle a certains inconvénients :

\begin{itemize}

\item il est nécessaire de faire une bibliographie complète pour
      chaque document, avec les problèmes de redondance que cela
      implique si certains ouvrages sont cités dans plusieurs
      documents ;

\item en cas de mise à jour d'un ouvrage (publication d'une
      nouvelle édition, par exemple), il faut modifier les
      bibliographies de tous les documents où il y est fait
      référence.

\end{itemize}

D'où l'idée, plutôt que d'avoir une bibliographie indépendante
dans chaque document, de regrouper l'ensemble des données
bibliographiques dans une ou plusieurs bases de données et de
générer automatiquement la bibliographie de chaque document à
partir de ces bases de données, en fonction des ouvrages dont il
est fait référence dans le document. C'est le rôle du logiciel
\BibTeX.

\subsubsection{La base de données bibliographique}

Une base de données bibliographique est simplement un fichier
d'extension \path{.bib}\index{bib@\path{.bib}} qui contient un
certain nombre d'entrées comme celle-ci :

\begin{exemple}
@BOOK
{
   latex-a-document-preparation-system ,
   AUTHOR    = "Leslie Lamport" ,
   TITLE     = "{\LaTeX}: a document preparation system" ,
   PUBLISHER = "Addison-Wesley" ,
   EDITION   = "Second" ,
   YEAR      = 1994 ,
}
\end{exemple}

Chaque entrée correspond à un ouvrage dont le type est indiqué en premier,
juste après le caractère \code{@}. Il s'agit ici d'un livre, donc de type
\code{BOOK}.

Les caractéristiques de l'ouvrage sont indiquées à la suite,
entre accolades.

Il faut tout d'abord spécifier une chaîne de caractères (pouvant
contenir lettres, chiffres et signes de ponctuation), qu'on
appelle \terme{clé} et qui servira à repérer l'ouvrage dans vos
bases de données bibliographiques, en tant qu'argument de la
commande \commandeindex{cite}. Le format de la clé est libre.

\begin{attention}
les clés doivent être uniques au sein de toutes vos bases de
données bibliographiques.
\end{attention}

Viennent ensuite un certain nombre de champs qui définissent
l'ouvrage (auteur, titre, etc.). Pour un type d'ouvrage donné,
certains champs doivent obligatoirement être indiqués et d'autres
sont facultatifs. Chaque champ est de la forme :

\begin{syntaxe}
\code{NOM\_DU\_CHAMP = "}\var{contenu du champ}\code{" ,}
\end{syntaxe}

Si une commande est utilisée dans un champ, elle doit être
entourée d'accolades :

\begin{exemple}
TITLE = "{\LaTeX}: a document preparation system" ,
\end{exemple}

Les champs contenant une valeur numérique (\code{YEAR}, par
exemple) peuvent se passer des guillemets :

\begin{exemple}
YEAR = 1994 ,
\end{exemple}

La clé et les champs sont séparés les uns des autres par des
virgules. La présentation adoptée dans l'exemple précédent est
d'avoir une ligne pour la clé puis une ligne par champ donc
chaque ligne se termine par une virgule. Remarquez que la
dernière ligne avant l'accolade fermante se termine également par
une virgule alors qu'elle n'est pas nécessaire. Néanmoins, dans
la mesure où \BibTeX\ la tolère, ceci permet d'avoir une virgule
à la fin de chaque ligne de l'entrée et donc d'éviter de
l'oublier si jamais on rajoute un champ supplémentaire après
l'actuel dernier.

\subsubsection{Les différents types d'entrées}

Le tableau \ref{tableau:bibtex-entrees} contient la liste des
types d'entrées reconnus par \BibTeX. Pour chaque type sont
indiqués sa signification ainsi que les champs obligatoires et
optionnels (les autres, s'il y en a, étant ignorés) dont la
signification sera expliquée dans le tableau
\ref{tableau:bibtex-champs}.

\begin{longtable}{|c|p{9cm}|}
\hline
\textbf{Entrée} & \textbf{Signification, champs obligatoires et optionnels} \\
\hline
\endhead
\multicolumn{2}{c}{} \\
\caption[Types d'entrées reconnus par \BibTeX]{Types d'entrées reconnus par \BibTeX\ (à suivre)}
\endfoot
\multicolumn{2}{c}{} \\
\caption[]{Types d'entrées reconnus par \BibTeX}
\label{tableau:bibtex-entrees}
\endlastfoot
\biblioindex{ARTICLE}
   & Article paru dans un journal ou un magazine \\*
   & Champs obligatoires : \code{AUTHOR}, \code{TITLE},
     \code{JOURNAL}, \code{YEAR} \\*
   & Champs optionnels : \code{VOLUME}, \code{NUMBER},
     \code{PAGES}, \code{MONTH}, \code{NOTE} \\*
\hline
\biblioindex{BOOK}
   & Livre avec un éditeur \\*
   & Champs obligatoires : \code{AUTHOR} ou \code{EDITOR},
     \code{TITLE}, \code{PUBLISHER}, \code{YEAR} \\*
   & Champs optionnels : \code{VOLUME} ou \code{NUMBER},
     \code{SERIES}, \code{ADDRESS}, \code{EDITION}, \code{MONTH},
     \code{NOTE} \\*
\hline
\biblioindex{BOOKLET}
   & Ouvrage qui est imprimé et distribué, mais sans éditeur \\*
   & Champ obligatoire : \code{TITLE} \\*
   & Champs optionnels : \code{AUTHOR}, \code{HOWPUBLISHED},
     \code{ADDRESS}, \code{MONTH}, \code{YEAR}, \code{NOTE} \\*
\hline
\biblioindex{CONFERENCE}
   & Identique à \code{INPROCEEDINGS} \\*
\hline
\biblioindex{INBOOK}
   & Partie d'un livre, généralement sans titre, il peut s'agir
     d'un chapitre, d'une section ou de quelques pages \\*
   & Champs obligatoires : \code{AUTHOR} ou \code{EDITOR},
     \code{TITLE}, \code{CHAPTER} et/ou \code{PAGES},
     \code{PUBLISHER}, \code{YEAR} \\*
   & Champs optionnels : \code{VOLUME} ou \code{NUMBER},
     \code{SERIES}, \code{TYPE}, \code{ADDRESS}, \code{EDITION},
     \code{MONTH}, \code{NOTE} \\*
\hline
\biblioindex{INCOLLECTION}
   & Partie d'un livre avec son propre titre \\*
   & Champs obligatoires : \code{AUTHOR}, \code{TITLE},
     \code{BOOKTITLE}, \code{PUBLISHER}, \code{YEAR} \\*
   & Champs optionnels : \code{EDITOR}, \code{VOLUME} ou
     \code{NUMBER}, \code{SERIES}, \code{TYPE}, \code{CHAPTER},
     \code{PAGES}, \code{ADDRESS}, \code{EDITION}, \code{MONTH},
     \code{NOTE} \\*
\hline
\biblioindex{INPROCEEDINGS}
   & Article d'actes de conférence \\*
   & Champs obligatoires : \code{AUTHOR}, \code{TITLE},
     \code{BOOKTITLE}, \code{YEAR} \\*
   & Champs optionnels : \code{EDITOR}, \code{VOLUME} ou
     \code{NUMBER}, \code{SERIES}, \code{PAGES}, \code{ADDRESS},
     \code{MONTH}, \code{ORGANIZATION}, \code{PUBLISHER},
     \code{NOTE} \\*
\hline
\biblioindex{MANUAL}
   & Documentation technique \\*
   & Champ obligatoire : \code{TITLE} \\*
   & Champs optionnels : \code{AUTHOR}, \code{ORGANIZATION},
     \code{ADDRESS}, \code{EDITION}, \code{MONTH}, \code{YEAR},
     \code{NOTE} \\*
\hline
\biblioindex{MASTERSTHESIS}
   & Traité de maîtrise \\*
   & Champs obligatoires : \code{AUTHOR}, \code{TITLE},
     \code{SCHOOL}, \code{YEAR} \\*
   & Champs optionnels : \code{TYPE}, \code{ADDRESS},
     \code{MONTH}, \code{NOTE} \\*
\hline
\biblioindex{MISC}
   & C'est le type à utiliser quand rien d'autre ne convient \\*
   & Champs obligatoires : aucun \\*
   & Champs optionnels : \code{AUTHOR}, \code{TITLE},
     \code{HOWPUBLISHED}, \code{MONTH}, \code{YEAR},
     \code{NOTE} \\*
\hline
\biblioindex{PHDTHESIS}
   & Thèse de doctorat \\*
   & Champs obligatoires : \code{AUTHOR}, \code{TITLE},
     \code{SCHOOL}, \code{YEAR} \\*
   & Champs optionnels : \code{TYPE}, \code{ADDRESS},
     \code{MONTH}, \code{NOTE} \\*
\hline
\biblioindex{PROCEEDINGS}
   & Actes d'une conférence \\*
   & Champs obligatoires : \code{TITLE}, \code{YEAR} \\*
   & Champs optionnels : \code{EDITOR}, \code{VOLUME} ou
     \code{NUMBER}, \code{SERIES}, \code{ADDRESS}, \code{MONTH},
     \code{ORGANIZATION}, \code{PUBLISHER}, \code{NOTE} \\*
\hline
\biblioindex{TECHREPORT}
   & Rapport publié par une école ou une autre institution \\*
   & Champs obligatoires : \code{AUTHOR}, \code{TITLE},
     \code{INSTITUTION}, \code{YEAR} \\*
   & Champs optionnels : \code{TYPE}, \code{NUMBER},
     \code{ADDRESS}, \code{MONTH}, \code{NOTE} \\*
\hline
\biblioindex{UNPUBLISHED}
   & Document avec un auteur et un titre, mais qui n'a jamais été
     publié \\*
   & Champs obligatoires : \code{AUTHOR}, \code{TITLE},
     \code{NOTE} \\*
   & Champs optionnels : \code{MONTH}, \code{YEAR} \\*
\hline
\end{longtable}

\subsubsection{Les différents types de champs}

Les champs utilisés par \BibTeX, ainsi que leur signification,
sont indiqués dans le tableau \ref{tableau:bibtex-champs}.

\begin{table}[!htbp]
\centering
\begin{tabulary}{\textwidth}{|l|J|}
\hline
\biblioindex{ADDRESS}
   & Adresse de l'éditeur (\code{PUBLISHER}) ou de l'institution
     (\code{INSTITUTION}) \\
\hline
\biblioindex{ANNOTE}
   & Annotation \\
\hline
\biblioindex{AUTHOR}
   & Nom de l'auteur (ou noms des auteurs, dans le format décrit
     plus loin) \\
\hline
\biblioindex{BOOKTITLE}
   & Titre d'une partie d'un livre ou d'un article dans les actes
     d'une conférence \\
\hline
\biblioindex{CHAPTER}
   & Numéro de chapitre (ou d'une quelconque partie) \\
\hline
\biblioindex{CROSSREF}
   & Clé de l'élément vers lequel on veut établir une
     référence \\
\hline
\biblioindex{EDITION}
   & Édition d'un livre \\
\hline
\biblioindex{EDITOR}
   & Nom du rédacteur \\
\hline
\biblioindex{HOWPUBLISHED}
   & Façon dont l'ouvrage a été publié \\
\hline
\biblioindex{INSTITUTION}
   & Institution éditrice d'un rapport technique \\
\hline
\biblioindex{JOURNAL}
   & Nom du journal \\
\hline
\biblioindex{KEY}
   & Utilisé pour créer une étiquette s'il n'y a pas d'auteur \\
\hline
\biblioindex{MONTH}
   & Mois durant lequel l'ouvrage a été publié \\
\hline
\biblioindex{NOTE}
   & Informations supplémentaires pouvant aider le lecteur \\
\hline
\biblioindex{NUMBER}
   & Numéro d'un journal, d'un magazine \\
\hline
\biblioindex{ORGANIZATION}
   & Organisation qui patronne une conférence ou publie un
     manuel \\
\hline
\biblioindex{PAGES}
   & Un ou plusieurs numéros de page \\
\hline
\biblioindex{PUBLISHER}
   & Nom de l'éditeur \\
\hline
\biblioindex{SCHOOL}
   & Nom de l'école ou de l'université dans laquelle la thèse a
     été réalisée \\
\hline
\biblioindex{SERIES}
   & Nom d'un ensemble de livres \\
\hline
\biblioindex{TITLE}
   & Titre de l'ouvrage \\
\hline
\biblioindex{TYPE}
   & Type d'un rapport technique \\
\hline
\biblioindex{VOLUME}
   & Volume d'un journal ou d'un livre \\
\hline
\biblioindex{YEAR}
   & Année de publication \\
\hline
\end{tabulary}
\caption{Champs utilisés par \BibTeX}
\label{tableau:bibtex-champs}
\end{table}

\subsubsection{Quelques précisions sur certains champs}

Lorsqu'un champ \code{AUTHOR} ou \code{EDITOR} contient plusieurs
noms, ils doivent être séparés les uns des autres par le mot
\codeindex{and} :

\begin{exemple}
AUTHOR = "Frank Mittelbach and Michel Goossens" ,
TITLE  = "The {\LaTeX} Companion" ,
\end{exemple}

Le champ \code{MONTH} doit contenir l'abréviation sur trois
lettres du mois en anglais (\code{jan}, \code{feb}, \code{mar},
\code{apr}, \code{may}, \code{jun}, \code{jul}, \code{aug},
\code{sep}, \code{oct}, \code{nov} ou \code{dec}) sans
guillemets :

\begin{exemple}
MONTH = apr ,
\end{exemple}

\subsubsection{Générer la bibliographie avec \BibTeX}

Une fois que vous avez créé vos bases de données
bibliographiques, le plus gros du travail est fait.

Maintenant, lorsque vous voulez faire référence à un ouvrage,
utilisez la commande \commandeindex{cite} avec pour argument la
clé correspondante :

\begin{exemple}
Voir \cite{the-latex-companion} pour plus de précisions.
\end{exemple}

Il faut aussi indiquer à \LaTeX\ où placer la bibliographie
(généralement juste à la fin du document), au moyen de la
commande \commandeindex{bibliography}. Cette command prend en
argument une liste de noms de fichiers de base de données
bibliographique (mais sans leur extension \path{.bib}) :

\begin{exemple}
\bibliography{fichier1,fichier2,fichier3}
\end{exemple}

Bien entendu, tous les ouvrages auxquels ils est fait référence
par la commande \commande{cite} doivent se trouver dans ces
fichiers.

Il faut également indiquer à \BibTeX\ le style à utiliser pour
mettre en page la bibliographie, grâce à la commande
\commandeindex{bibliographystyle}, utilisée dans le préambule du
document. L'argument de cette commande est le nom du style
bibliographique à utiliser.

Les styles bibliographiques standards de \LaTeX\ sont :

\begin{description}

\item[\biblioindex{plain}] \ \\
   Les ouvrages sont triées dans l'ordre alphabétique de leur
   auteur (ou premier auteur s'il y en a plusieurs) et sont
   étiquetés par des nombres.

\item[\biblioindex{unsrt}] \ \\
   Identique au style \code{plain}, mais les ouvrages sont triés
   dans l'ordre de leur citation.

\item[\biblioindex{alpha}] \ \\
   Identique au style \code{plain}, mais les ouvrages sont
   étiquetés par des chaînes de caractères du style « Lam94 »,
   formées à partir du nom de l'auteur et de l'année de
   publication.

\item[\biblioindex{abbrv}] \ \\
   Identique au style \code{plain}, mais les prénoms, noms de
   mois et de journaux sont abrégés.

\end{description}

Selon la façon dont \LaTeX\ est installé sur votre ordinateur, il
est possible que les styles bibliographiques standards ne soient
pas francisés. Ceci est facile à voir au fait que, pour les
ouvrages ayant plusieurs auteurs, le mot clé \code{and} séparant
les noms des auteurs dans la base de données bibliographique se
retrouve sous la forme « and » dans la bibliographie au lieu de
« et ». Dans ce cas, utilisez les styles \biblioindex{plain-fr},
\biblioindex{unsrt-fr}, \biblioindex{alpha-fr} ou
\biblioindex{abbrv-fr}. S'ils ne sont pas installés, vous pouvez
les télécharger ici :

\begin{toile}
\toileurl{http://mirror.ctan.org/biblio/bibtex/contrib/bib-fr.zip}
\end{toile}

Il existe de nombreux autres styles bibliographiques, dont
beaucoup sont indiqués dans
\cite[pages 791--797]{the-latex-companion}.

En résumé, mis à part les commandes \commande{cite} disséminées
dans le document, l'inclusion de la bibliographie ressemble à
ceci :

\begin{exemple}
% dans le préambule :
\bibliographystyle{plain}   % ou plain-fr ou un autre style

[...]

\begin{document}

[...]

% à la fin du document :
\bibliography{fichier1,fichier2,fichier3}
\end{exemple}

Si vous voulez inclure dans la bibliographie des ouvrages
auxquels vous ne faites pas référence dans votre document,
utilisez la commande \commandeindex{nocite} (placée par exemple
juste après la commande \commande{bibliography}), avec en
argument la liste des clés de ces ouvrages, séparées par des
virgules :

\begin{exemple}
\nocite{guide-to-latex,bibtexing,makeindex}
\end{exemple}

Il est aussi possible d'inclure dans la bibliographie tous les
ouvrages répertoriés dans les bases de données bibliographiques
en mettant \code{*} comme argument de \commande{nocite} :

\begin{exemple}
\nocite{*}
\end{exemple}

Enfin, pour générer la bibliographie et l'inclure dans votre
document, il faut :

\begin{itemize}

\item Compiler votre document avec \LaTeX\ :

\begin{exemple}
pdflatex document.tex
\end{exemple}

\item Exécuter \BibTeX\ sur votre document :

\begin{exemple}
bibtex document
\end{exemple}

      (ne mettez pas l'extension \path{.tex}, \BibTeX\ n'aime pas
      ça). \BibTeX\ génère alors un fichier
      \path{.bbl}\index{bbl@\path{.bbl}}, qui contient la
      bibliographie mise en page (pour les curieux, cela est fait
      avec l'environnement \environnement{thebibliography}) selon
      le style indiqué par la commande
      \commande{bibliographystyle}.

\item Recompiler deux fois votre document avec \LaTeX\ afin d'y
      inclure la bibliographie et de mettre toutes les références
      à jour.

\end{itemize}

Pour plus d'informations au sujet de \BibTeX, vous pouvez
consulter \cite{bibtexing},
\cite[pages 70, 71 et 155--164]{latex-a-document-preparation-system}
et \cite[chapitre 13]{the-latex-companion}.

\section{Faire un index}
\index{index}

La réalisation d'un index est très simple à faire avec \LaTeX. Il
suffit de placer dans le texte des commandes
\commandeindex{index} pour générer les entrées correspondantes
dans l'index.

Avant cela, il faut modifier un peu votre document :

\begin{itemize}

\item chargez l'extension \extensionindex{makeidx} ;

\item ajoutez la commande \commandeindex{makeindex} dans le
      préambule ;

\item mettez la commande \commandeindex{printindex} à l'endroit
      où vous voulez voir apparaître l'index (c'est généralement
      à la fin du document, après la bibliographie et avant la
      table des matières).

\end{itemize}

Le formatage de l'index nécessite l'utilisation d'un logiciel
externe, qui va classer les entrées dans l'ordre alphabétique et
fusionner les entrées identiques. Historiquement, on utilisait
\MakeIndex\ pour cela (voir le paragraphe
\ref{section:makeindex}). Malheureusement, celui-ci est incapable
de traiter correctement les mots contenant des caractères
accentués. Si l'on écrit un document dans une langue en utilisant
(ce qui est notre cas), il est préférable d'utiliser \xindy\
(voir le paragraphe \ref{section:xindy}).

\subsection{La commande \commande{index}}

Pour générer une entrée dans l'index, utilisez la commande
\commandeindex{index} :

\begin{exemple}
Le mot babasse\index{babasse} est inclus dans l'index.
\end{exemple}

Ceci imprime :

\begin{resultat}
Le mot babasse est inclus dans l'index.
\end{resultat}

\noindent et génère une entrée pour « babasse », c'est-à-dire
l'argument de la commande \commande{index}, dans l'index.

Il est possible de mettre toute une expression dans l'index :

\begin{exemple}
Je mets l'expression super top cool\index{super top cool}
dans l'index.
\end{exemple}

Pour générer des sous-entrées, il faut séparer l'entrée
principale et la sous-entrée avec le caractère
\code{!}\index{"!@\code{"!} (index)} :

\begin{exemple}
Ceci parle des sous-entrées de
l'index\index{index!sous-entrées}
\end{exemple}

Enfin, on peut placer du texte à la position alphabétique repérée
par un autre texte avec le caractère
\code{@}\index{"@@\code{"@} (index)} :

\begin{exemple}
Je place le symbole $\alpha$\index{alpha@$\alpha$}
dans l'index, à la place de « alpha » dans l'ordre
alphabétique.
\end{exemple}

Si l'on utilise \MakeIndex\ plutôt que \xindy, ceci peut servir à
lui indiquer la position correcte d'un mot contenant des
caractères accentués :

\begin{exemple}
Un répertoire\index{repertoire@répertoire} permet de
regrouper des fichiers.
\end{exemple}

En effet, \MakeIndex\ classe les caractères accentués avant tous
les autres. Par exemple, il classe « répertoire » avant « racine
». L'utilisation de \code{@} permet donc de le remettre dans le
droit chemin, si nécessaire. Son utilisation ne doit pas être
systématique, un mot contenant suffisamment de lettres avant son
premier caractère accentué ayant toutes les chances d'être classé
correctement.

\subsection{Générer l'index}

Que ce soit en utilisant \MakeIndex\ ou \xindy, la génération de
l'index se fait selon la même méthode.

\begin{itemize}

\item Il faut tout d'abord compiler votre document avec \LaTeX\ :

\begin{exemple}
pdflatex document.tex
\end{exemple}

      Ceci génère un fichier \path{.idx}\index{idx@\path{.idx}},
      qui contient l'ensemble des entrées à faire figurer dans
      l'index.

\item Il faut ensuite exécuter \MakeIndex\ ou \xindy\ sur ce
      fichier (la façon exacte de procéder sera abordée
      respectivement dans les paragraphes \ref{section:makeindex}
      et \ref{section:xindy}). Ceux-ci classent les entrées dans
      l'ordre alphabétique et fusionnent les entrées identiques.
      L'index ainsi mis au propre est placé dans un fichier
      \path{.ind}\index{ind@\path{.ind}}.

\item Il faut enfin recompiler votre document avec \LaTeX\ afin
      d'y inclure l'index (c'est-à-dire le contenu du fichier
      \path{.ind}).

\end{itemize}

\subsection{Générer l'index avec \MakeIndex}
\label{section:makeindex}
\index{MakeIndex@\MakeIndex}

Pour générer l'index avec \MakeIndex, on utilise la commande :

\begin{exemple}
makeindex -c document.idx
\end{exemple}

L'option \intercom{-c} permet de ne pas tenir comptes des espaces
multiples pouvant figurer dans les entrées.

Le format par défaut de l'index est assez spartiate.
Heureusement, il est possible d'en modifier la présentation. Pour
cela, on utilise un fichier ayant par convention l'extension
\path{.ist}\index{ist@\path{.ist}}. Vous pouvez essayer celui-ci,
que l'on va appeler \path{index.ist} :

\begin{exemple}
headings_flag           1
heading_prefix          "\n  \\hfill \\textbf{\\large"
heading_suffix          "} \\hfill \\nopagebreak\n"
symhead_positive        "Symboles"
symhead_negative        "symboles"
delim_0                 " \\dotfill\\ "
delim_1                 " \\dotfill\\ "
delim_2                 " \\dotfill\\ "
\end{exemple}

Pour l'utiliser, il faut exécuter \MakeIndex\ en indiquant le nom
de ce fichier après l'option \intercom{-s} ainsi :

\begin{exemple}
makeindex -c -s index.ist document.idx
\end{exemple}

L'index sera alors présenté comme celui de ce manuel.

Pour plus d'informations au sujet de \MakeIndex, vous pouvez
consulter \cite{makeindex}, \cite[pages
150--154]{latex-a-document-preparation-system} et \cite[§
11.2]{the-latex-companion}.

\subsection{Générer l'index avec \xindy}
\label{section:xindy}
\index{xindy@\xindy}

Pour générer l'index avec \xindy, on utilise la commande :

\begin{exemple}
texindy -L french -M texindy document.idx
\end{exemple}

La commande \intercomindex{texindy} permet à \xindy\ de traiter
un index généré par \LaTeX\ (car \xindy\ est un logiciel
générique de traitement d'index, qui peut être utilisé avec
d'autres logiciels que \LaTeX).

L'option \intercom{-L} permet d'indiquer dans quelle langue est
rédigé l'index. L'ordre de classement des caractères accentués
est en effet différent selon les langues.

L'option \intercom{-M} permet d'utiliser le module dont le nom
suit. Le module \intercom{texindy} permet de générer un index
adapté à \LaTeX\ et semblable à ce que génère \MakeIndex.

Il est possible de créer ses propres modules afin de
personnaliser le format de l'index. Pour cela, on utilise un
fichier ayant par convention l'extension
\path{.xdy}\index{xdy@\path{.xdy}} et contenant des commandes en
langage Lisp.

Par exemple, les termes figurant dans l'index sont par défaut
directement suivis des numéros des pages où ils figurent. Pour
avoir une présentation identique à celle de l'index de ce manuel,
avec les numéros de pages à droite, précédés par des points de
suspension, on peut utiliser le fichier \path{index.xdy}
suivant :

\begin{exemple}
(markup-locclass-list :open " \dotfill\ " :sep ", ")
\end{exemple}

Pour l'utiliser, il faut exécuter \intercom{texindy} en indiquant
le nom de ce fichier après une autre option \intercom{-M} :

\begin{exemple}
texindy -L french -M texindy -M index.xdy document.idx
\end{exemple}

On peut également personnaliser l'aspect des titres des rubriques
de l'index grâce aux commandes suivantes, placées dans le
préambule du document :

\begin{exemple}[fontsize=\footnotesize]
\newcommand*\lettergroupDefault[1]{\lettergroup{Symboles}}
\newcommand*\lettergroup[1]{\hfill\textbf{\large #1}\hfill\nopagebreak}
\end{exemple}

La première commande permet d'afficher « Symboles » avant les
symboles non alphabétiques figurant dans l'index (s'il y en a).
Par défaut, rien n'est affiché.

La seconde commande permet de centrer et d'afficher en taille
\commande{large} les titres de chaque rubrique (par défaut, ils
sont placés à gauche et sont de taille normale).

Pour plus d'informations au sujet de \xindy, vous pouvez
consulter \cite[§ 11.3]{the-latex-companion} ainsi que le site :

\begin{toile}
\toileurl{http://www.xindy.org/}
\end{toile}

\section{La commande \intercom{latexmk}}

La réalisation d'un document complexe, contenant une
bibliographie et un index, nécessite donc l'utilisation des
commandes \intercom{pdflatex}, \intercom{bibtex},
\intercom{makeindex} ou \intercom{texindy} et une nouvelle fois
\intercom{pdflatex} (voire une fois de plus si la bibliographie
ou l'index modifient la pagination).

Non seulement, ceci est fastidieux mais, dans l'idéal, il ne
faudrait regénérer la bibliographie que lorsqu'elle a changé. De
même pour l'index. Ce qui est encore plus fastidieux...

Heureusement, la commande \intercomindex{latexmk} permet
d'automatiser l'enchaînement de ces commandes dans l'ordre
adéquat et uniquement lorsque cela est nécessaire. Elle s'utilise
avec l'option \intercom{-pdf} pour générer un fichier PDF :

\begin{exemple}
latexmk -pdf document.tex
\end{exemple}

Il est possible de configurer le comportement de
\intercom{latexmk} grâce au fichier
\path{~/.latexmkrc}\index{latexmkrc@\path{~/.latexmkrc}}. Par
exemple, pour permettre la génération de fichiers PDF sans avoir
à utiliser l'option \intercom{-pdf}, il faut indiquer dans le
fichier \path{~/.latexmkrc} :

\begin{exemple}
$pdf_mode = 1 ;
\end{exemple}
%stopzone

On peut alors faire simplement :

\begin{exemple}
latexmk document.tex
\end{exemple}

Si \MakeIndex\ est utilisé avec des options (par exemple
\intercom{-c} ou \intercom{-s}), il faut l'indiquer dans le
fichier \path{~/.latexmkrc} :

\begin{exemple}
$makeindex = 'makeindex -c -s index.ist %O -o %D %S' ;
\end{exemple}
%stopzone

De même, si vous utilisez \xindy\ plutôt que \MakeIndex, il faut
l'indiquer dans le fichier \path{~/.latexmkrc} :

\begin{exemple}[fontsize=\small]
$makeindex = 'texindy -L french -M texindy -M index.xdy -o %D %S' ;
\end{exemple}
%stopzone

Afin de stocker les données nécessaires à son fonctionnement,
\intercom{latexmk} utilise un fichier, créé lors de son premier
lancement, ayant le même nom de base que le fichier \LaTeX\ et
l'extension
\path{.fdb_latexmk}\index{fdb_latexmk@\path{.fdb_latexmk}}. Dans
notre exemple, il s'agit donc du fichier
\path{document.fdb_latexmk}. Ce fichier peut être supprimé au
besoin, il sera recréé par \intercom{latexmk} lors de sa
prochaine utilisation.

L'option \intercom{-c} (\anglais{clean up}) permet d'effacer ce
fichier ainsi que tous les fichiers générés par \LaTeX, à
l'exception du fichier PDF :

\begin{exemple}
latexmk -c
\end{exemple}

\section{Bibliographie et index dans la table des matières}

Par défaut, la bibliographie et l'index ne figurent pas dans la
table des matières générée par la commande
\commandeindex{tableofcontents}.

Pour les y faire apparaître, on peut utiliser l'extension
\extensionindex{tocbibind}. Elle fera également apparaître la
liste des tableaux, la table des figures, s'ils existent, ainsi
que la table des matières elle-même.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Aller plus loin avec \LaTeX}

L'un des intérêts de \LaTeX\ est qu'il est extensible. Il existe
des centaines d'extensions et de classes permettant de réaliser
quasiment tous les documents possibles et imaginables. Nous
allons en présenter quelques unes parmi les plus utiles. Beaucoup
d'autres sont documentées dans \cite{the-latex-companion}, dont
la lecture est indispensable si l'on souhaite utiliser \LaTeX\ à
son plein potentiel.

\section{CTAN : \textit{the Comprehensive \TeX\ Archive Network}}
\index{CTAN}

\anglais{The Comprehensive \TeX\ Archive Network} (CTAN) est un
réseau d'une centaine de serveurs répliqués permettant
l'hébergement et la mise à disposition de fichiers relatifs à
\TeX\ et \LaTeX. Toutes les extensions, classes et documentations
dont leurs auteurs souhaitent faire profiter la communauté y sont
rassemblées.

Le site fédérant l'accès à ces serveurs dispose d'un moteur de
recherche :

\begin{toile}
\toileurl{http://www.ctan.org/}
\end{toile}

L'ensemble logiciel \TeX\ Live\index{TeX Live@\TeX\ Live} (voir
le paragraphe \ref{section:procurer}) intègre tous les fichiers
disponibles sur le CTAN dont la licence l'autorise.

\section{La commande \intercom{texdoc}}

La commande \intercomindex{texdoc} permet d'afficher la
documentation d'une extension ou d'une classe à partir de son
nom.

Elle s'utilise dans un interpréteur de commandes avec le nom de
l'extension ou de la classe comme argument :

\begin{exemple}
texdoc babel
\end{exemple}

Il existe parfois plusieurs documentations. Par défaut,
\intercom{texdoc} affiche la première. Pour pouvoir choisir celle
à afficher parmi la liste des documentations disponibles, on
utilise l'option \intercom{-l} :

\begin{exemple}
texdoc -l babel
\end{exemple}

Bien entendu, la documentation de \intercom{texdoc} est également
disponible :

\begin{exemple}
texdoc texdoc
\end{exemple}

\section{Modifier les marges ou le format de papier : l'extension
\extension{geometry}}
\label{section:geometry}
\index{marge}

Les marges par défaut des classes standards (voir le paragraphe
\ref{section:classe}) sont assez généreuses. Celles des classes
KOMA-Script (voir le paragraphe \ref{section:KOMA-Script}) sont
un peu plus réduites. Sans tomber dans l'excès qui consiste à les
diminuer au-delà du raisonnable, il est parfois utile de réduire
les marges d'un document.

L'extension \extensionindex{geometry} permet de modifier les
marges. Elle se charge dans le préambule du document avec une ou
plusieurs options permettant d'indiquer la taille des marges.

Utilisée sans option, l'extension \extension{geometry} définit
des marges plus réduites que les marges standards :

\begin{exemple}
\usepackage{geometry}
\end{exemple}

L'option \extensionoption{margin} permet de fixer la même taille
aux quatre marges (tête, pied, gauche et droite) du document :

\begin{exemple}
\usepackage[margin=2cm]{geometry}
\end{exemple}

Les options \extensionoption{top} et \extensionoption{bottom}
permettent respectivement de fixer la taille des marges de tête
et de pied :

\begin{exemple}
\usepackage[top=2cm,bottom=2cm]{geometry}
\end{exemple}

Les options \extensionoption{left} et \extensionoption{right}
permettent respectivement de fixer la taille des marges gauche et
droite :

\begin{exemple}
\usepackage[left=2cm,right=2cm]{geometry}
\end{exemple}

Lorsque le document est destiné à être mis en page en recto-verso
(grâce à l'option de classe \classeoptionindex{twoside}), la
marge intérieure (vers la reliure) est généralement plus petite
que la marge extérieure. On utilise dans ce cas les options
\extensionoption{inner} et \extensionoption{outer} :

\begin{exemple}
\usepackage[inner=2cm,outer=3cm]{geometry}
\end{exemple}

Il est bien entendu possible de fixer la taille de toutes les
marges :

\begin{exemple}
\usepackage[top=2cm,bottom=2cm,inner=2cm,outer=3cm]{geometry}
\end{exemple}

Enfin, l'extension \extension{geometry} permet également de
spécifier le format de papier lorsque celui-ci n'est pas
standard. Dans ce cas, l'option de classe \classeoption{a4paper}
n'est pas utilisée et le format de papier est indiqué grâce aux
options \extensionoption{paperwidth} et
\extensionoption{paperheight} de l'extension
\extension{geometry} :

\begin{exemple}
\usepackage[paperwidth=17cm,paperheight=24cm]{geometry}
\end{exemple}

Dans ce cas, les marges utilisées sont celles définies par défaut
par l'extension \extension{geometry}. Il est possible de les
spécifier explicitement en plus des options
\extensionoption{paperwidth} et \extensionoption{paperheight}
comme vu précédemment.

\section{Définir l'en-tête et le pied de page : l'extension
\extension{fancyhdr}}

L'extension \extensionindex{fancyhdr} permet très simplement de
définir le contenu de l'en-tête et du pied de page.

La figure \ref{figure:fancyhdr-structure} montre la structure que
l'extension \extension{fancyhdr} donne à l'en-tête et au pied de
page.

\begin{figure}[!htbp]
\begin{syntaxe}
en-tête gauche \hfill en-tête central \hfill en-tête droit
\vspace{2pt}
\hrule
\vspace{1cm}
\hfill corps de la page \hfill
\vspace{1cm}
\hrule
\vspace{4pt}
pied de page gauche \hfill pied de page central \hfill pied de page droit
\end{syntaxe}
\caption{Structure de l'en-tête et du pied de page avec
l'extension \extension{fancyhdr}}
\label{figure:fancyhdr-structure}
\end{figure}

L'en-tête et le pied de page sont constitués chacun d'une partie
gauche, d'une partie centrale et d'une partie droite. Chacune de
ces parties peut être définie indépendamment des autres.
L'en-tête et le pied de page peuvent être séparés du corps du
document par un filet.

La commande \commandeindex{pagestyle}, utilisée dans le préambule
du document avec l'argument \code{fancy}, permet d'utiliser
l'extension \extension{fancyhdr} pour la mise en page de
l'en-tête et du pied de page :

\begin{exemple}
\pagestyle{fancy}
\end{exemple}

Ceci doit être complété, si nécessaire, par la définition de
l'épaisseur des filets (voir le paragraphe
\ref{section:fancyhdr-filets}). En fonction de la façon dont le
document doit être mis en page, on utilisera ensuite les
commandes indiquées dans le paragraphe
\ref{section:fancyhdr-recto} pour un document mis en page en
recto seul ou les commandes indiquées dans le paragraphe
\ref{section:fancyhdr-recto-verso} pour un document mis en page
en recto-verso.

Toutes les commandes décrites par la suite sont à utiliser dans
le préambule du document.

\subsection{Les filets}
\label{section:fancyhdr-filets}

L'épaisseur du filet placé au-dessous de l'en-tête peut être
définie au moyen de la commande :

\begin{exemple}
\renewcommand{\headrulewidth}{0.4pt}
\end{exemple}

Fixer l'épaisseur du filet à \code{0pt} le supprime.

De même, l'épaisseur du filet placé au-dessus du pied de page
peut être définie au moyen de la commande :

\begin{exemple}
\renewcommand{\footrulewidth}{0.4pt}
\end{exemple}

Par défaut, le filet de l'en-tête a une épaisseur de \code{0.4pt}
et celui du pied de page a une épaisseur de \code{0pt}.

\subsection{En-tête et pied de page dans un document mis en page
en recto seul}
\label{section:fancyhdr-recto}

Les commandes \commandeindex{lhead}, \commandeindex{chead} et
\commandeindex{rhead} permettent respectivement de définir la
partie gauche, la partie centrale et la partie droite de
l'en-tête.

Les commandes \commandeindex{lfoot}, \commandeindex{cfoot} et
\commandeindex{rfoot} permettent respectivement de définir la
partie gauche, la partie centrale et la partie droite du pied de
page.

L'extension \extension{fancyhdr} ayant une définition par défaut
de certaines parties, il est préférable de les définir toutes, en
mettant un argument vide à chaque partie qui doit l'être :

\begin{exemple}
\lhead{}
\chead{}
\rhead{\textsc{Le titre de mon document}}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\end{exemple}

La commande \commandeindex{thepage}\index{numero de page@numéro
de page|see{\commande{thepage}}} (qui est gérée automatiquement
par \LaTeX) permet d'afficher le numéro de page.

\subsection{En-tête et pied de page dans un document mis en page
en recto-verso}
\label{section:fancyhdr-recto-verso}

Dans un document mis en page en recto-verso (grâce à l'option de
classe \classeoptionindex{twoside}), il est d'usage d'échanger
les parties gauche et droite de l'en-tête et du pied de page
entre les pages paire et impaire se faisant face.

Pour cela, l'extension \extension{fancyhdr} dispose des commandes
\commandeindex{fancyhead} et \commandeindex{fancyfoot}, qui
permettent de tenir compte de la parité de la page.

Par exemple, l'en-tête et le pied de page de ce manuel sont
définis ainsi :

\begin{exemple}
\fancyhead{}
\fancyhead[LE]{\textit{\nouppercase{\leftmark}}}
\fancyhead[RO]{\textit{\nouppercase{\rightmark}}}
\fancyfoot{}
\fancyfoot[C]{\thepage}
\end{exemple}

Les commandes \commande{fancyhead} et \commande{fancyfoot},
utilisées avec un argument vide, permettent de remettre à zéro la
définition des différentes parties de l'en-tête et du pied de
page.

La commande \commandeindex{leftmark} (qui est gérée
automatiquement par \LaTeX) permet d'afficher le numéro du
chapitre courant suivi de son titre.

La commande \commandeindex{rightmark} (qui est gérée
automatiquement par \LaTeX) permet d'afficher le numéro de la
section dans laquelle on se trouve au bas de la page suivi de son
titre.

Ces titres sont par défaut affichés après avoir été convertis en
majuscules. La commande \commandeindex{nouppercase}, fournie par
l'extension \extension{fancyhdr}, permet de les afficher tels
qu'ils ont été saisis dans le document.

L'argument optionnel des commandes \commande{fancyhead} et
\commande{fancyfoot} permet de déterminer dans quelles conditions
doit être imprimé l'argument obligatoire.

L'argument optionnel des commandes \commande{fancyhead} et
\commande{fancyfoot} est constitué d'une combinaison des lettres
indiquées dans le tableau \ref{tableau:fancyhdr-options} ou d'une
liste de ces combinaisons, chaque élément étant séparé du suivant
par une virgule.

\begin{table}[!htbp]
\centering
\begin{tabular}{>{\ttfamily}cl}
\toprule
L & partie gauche (\anglais{left})	\\
C & partie centrale (\anglais{center})	\\
R & partie droite (\anglais{right})	\\
\midrule
E & pages paires (\anglais{even})	\\
O & pages impaires (\anglais{odd})	\\
\bottomrule
\end{tabular}
\caption{Arguments optionnels utilisables avec les commandes
\commande{fancyhead} et \commande{fancyfoot}}
\label{tableau:fancyhdr-options}
\end{table}

Ainsi, \code{LE} s'applique à la partie gauche des pages paires,
\code{RO} à la partie droite des pages impaires, \code{LE,RO} à
la partie gauche des pages paires et à la partie droite des pages
impaires et ainsi de suite.

Lorsque le numéro de page est placé dans l'en-tête, il l'est du
côté extérieur des pages (c'est-à-dire à gauche des pages paires
et à droite des pages impaires). Le titre courant est alors placé
du côté intérieur (c'est-à-dire l'inverse). L'exemple suivant
permet de réaliser cette mise en page :

\begin{exemple}
\fancyhead{}
\fancyhead[RE]{\textit{\nouppercase{\leftmark}}}
\fancyhead[LO]{\textit{\nouppercase{\rightmark}}}
\fancyhead[LE,RO]{\thepage}
\fancyfoot{}
\end{exemple}

À noter que les pages d'ouverture des chapitres ne tiennent pas
compte de l'en-tête et du pied de page définis par l'extension
\extension{fancyhdr}. Une page d'ouverture de chapitre n'a pas
d'en-tête et son pied de page ne comporte que le numéro de page
en partie centrale.

\section{Changer la police de caractères}

Nous avons utilisé jusqu'ici l'extension \extension{lmodern} afin
de rédiger nos documents avec la police de caractères Latin
Modern. De nombreuses autres polices de caractères sont
utilisables avec \LaTeX. Certaines nécessitent l'utilisation de
commandes un peu compliquées que nous n'aborderons pas mais
d'autres sont utilisables de la même façon que Latin Modern,
c'est-à-dire en chargeant simplement une extension.

Le tableau \ref{tableau:polices-avec-math} répertorie quelques
extensions permettant de déterminer la police de caractères
utilisée dans le document.

\input{exemples/polices-avec-math.tex}

Ces extensions fournissent la police de caractères utilisée pour
le texte mais également une police mathématique assortie. Pour
cela, avec les extensions \extensionindex{anttor},
\extensionindex{iwona} et \extensionindex{kurier}, il est
nécessaire d'utiliser l'option \extensionoption{math}.
L'extension \extensionindex{mathdesign}, quant à elle, s'utilise
soit avec l'option \extensionoption{charter} pour utiliser la
police Bitstream Charter soit avec l'option
\extensionoption{utopia} pour utiliser la police Adobe Utopia.

Les extensions \extensionindex{arev}, \extensionindex{cmbright},
\extensionindex{gfsartemisia}, \extensionindex{kpfonts},
\extensionindex{lmodern} et \extensionindex{mathdesign}
fournissent un ensemble cohérent de polices de caractères
permettant de couvrir toutes les commandes de changement de style
du tableau \ref{tableau:style-commandes}.

Les extensions \extensionindex{anttor}, \extensionindex{ccfonts},
\extensionindex{fourier}, \extensionindex{fouriernc},
\extensionindex{iwona}, \extensionindex{kurier},
\extensionindex{mathpazo} et \extensionindex{mathptmx}, en
revanche, ont besoin d'être complétées pour pouvoir utiliser les
commandes \commande{textsf} et \commande{texttt} (ou d'autres
commandes ou environnements les utilisant). Les extensions le
permettant sont indiquées dans le tableau
\ref{tableau:polices-complementaires}.

\input{exemples/polices-complementaires.tex}

Ainsi, il convient de choisir une extension correspondant à la
commande \commande{textsf} et une autre correspondant à la
commande \commande{texttt}. Pour compléter l'extension
\extension{fourier}, par exemple, on peut donc utiliser :

\begin{exemple}
\usepackage{fourier}
\usepackage{helvet}
\usepackage{courier}
\end{exemple}

Par ailleurs, il est préférable d'utiliser l'extension
\extensionindex{mathpazo} avec l'option \extensionoption{sc} ou
avec l'option \extensionoption{osf}. Ces deux options font
utiliser à l'extension \extension{mathpazo} une police de
meilleure qualité, avec de vraies petites capitales. En outre,
l'option \extensionoption{osf} permet d'utiliser des chiffres
français (\oldstylenums{0123456789}) plutôt que des chiffres
anglais (0123456789).

Les extensions répertoriées dans le tableau
\ref{tableau:polices-sans-math} permettent d'utiliser des polices
de caractères ne disposant pas d'une police mathématique
assortie. Si nécessaire, l'extension \extensionindex{eulervm}
permet de leur ajouter une police mathématique générique (dont on
peut voir un exemple dans la figure \ref{figure:police-eulervm}).

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics{police-eulervm.pdf}}
% XXX \index{eulervm@\extension{eulervm} (extension)}
\caption{Exemple de document réalisé avec l'extension
\extension{eulervm}}
\label{figure:police-eulervm}
\end{figure}

\input{exemples/polices-sans-math.tex}

Les extensions \extensionindex{bera}, \extensionindex{bookman} et
\extensionindex{newcent} fournissent un ensemble cohérent de
polices de caractères permettant de couvrir toutes les commandes
de changement de style du tableau \ref{tableau:style-commandes}.

Les extensions \extensionindex{chancery},
\extensionindex{charter}, \extensionindex{cyklop},
\extensionindex{tgbonum}, \extensionindex{tgchorus},
\extensionindex{tgpagella}, \extensionindex{tgschola} et
\extensionindex{tgtermes}, en revanche, ont besoin d'être
complétées par des extensions du tableau
\ref{tableau:polices-complementaires}.

L'extension \extensionindex{libertine}, quant à elle, n'a besoin
d'être complétée que par une extension correspondant à la
commande \commande{texttt}.

Pour approfondir le sujet, vous pouvez lire \cite[chapitre 7 et §
8.8]{the-latex-companion} et consulter le site suivant, qui
présente de nombreuses polices de caractères utilisables avec
\LaTeX\ :

\begin{toile}
\toileurl{http://www.tug.dk/FontCatalogue/}
\end{toile}

\section{Inclure des graphiques}

L'inclusion d'un graphique dans un document \LaTeX\ peut se faire
de deux façons :

\begin{itemize}

\item en faisant appel à une image stockée dans un fichier
      extérieur (voir le paragraphe
      \ref{section:includegraphics}) ;

\item en décrivant le graphique au sein-même du document \LaTeX\
      au moyen d'un langage de description adapté (voir le
      paragraphe \ref{section:tikz}).

\end{itemize}

Cette seconde façon de faire présente l'avantage de pouvoir
utiliser des expressions rédigées avec \LaTeX\ pour le texte
contenu dans le graphique. Ceci permet d'avoir la même police de
caractères dans le graphique que dans le texte du document, ce
qui offre une meilleure cohérence visuelle. Ceci permet également
d'utiliser des expressions mathématiques dans le graphique. Un
exemple de graphique réalisé de cette façon est présenté dans la
figure \ref{figure:tikz}.

Pour ces raisons, c'est souvent cette approche qui est retenue.
En témoigne le grand nombre d'extensions de \LaTeX\ permettant de
décrire des graphiques au sein-même d'un document et dont les
plus répandues sont présentées dans
\cite{the-latex-graphics-companion}.

L'un des derniers arrivants dans ce domaine, malheureusement trop
récent pour disposer d'une description dans
\cite{the-latex-graphics-companion} mais néanmoins très
prometteur, s'appelle \TikZ. Nous en discuterons rapidement au
paragraphe \ref{section:tikz} puisqu'il dispose d'une excellente
documentation d'introduction en français à laquelle vous pourrez
vous référer pour en savoir plus.

\subsection{La commande \commande{includegraphics}}
\label{section:includegraphics}

Il est possible d'inclure des fichiers aux formats
PDF\index{PDF}, PNG\index{PNG} et JPEG\index{JPEG} dans un
document \LaTeX, grâce à l'extension \extensionindex{graphicx}.

Pour inclure le fichier, on utilise la commande
\commandeindex{includegraphics} :

\begin{syntaxe}
\commande{includegraphics}\argument{fichier}
\end{syntaxe}

Il est préférable de placer cette commande dans une figure, ce
qui permet de donner à l'image une légende et un numéro et
surtout de pouvoir la déplacer si elle risque d'être coupée en
bas de page.

On peut aussi indiquer la taille que l'on désire donner à
l'image, en largeur :

\begin{syntaxe}
\commande{includegraphics}\code{[width=}\var{largeur}\code{]}\argument{fichier}
\end{syntaxe}

\noindent ou en hauteur :

\begin{syntaxe}
\commande{includegraphics}\code{[height=}\var{hauteur}\code{]}\argument{fichier}
\end{syntaxe}

Voici donc le code type d'inclusion d'un fichier au format PDF
dans un document \LaTeX\ :

\begin{exemple}
\documentclass[a4paper,11pt]{article}

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{microtype}

\usepackage{hyperref}

\begin{document}

[...]

\begin{figure}[!htbp]
\centering
\includegraphics[width=10cm]{fichier.pdf}
\caption{Image}
\label{figure:image}
\end{figure}

[...]

\end{document}
\end{exemple}

\subsection{L'extension \TikZ}
\label{section:tikz}
\index{TikZ@\TikZ}

L'extention \TikZ\ permet d'inclure des graphiques dans un
document \LaTeX\ au moyen d'un langage de description. Un exemple
de graphique réalisé avec \TikZ\ est présenté dans la figure
\ref{figure:tikz}.

\begin{figure}[!htbp]
\centering
\input{exemples/tikz.tex}
\caption{Exemple de graphique réalisé avec l'extension \TikZ}
\label{figure:tikz}
\end{figure}

L'utilisation de \TikZ\ nécessite le chargement de l'extension
\extensionindex{tikz} dans le préambule du document :

\begin{exemple}
\usepackage{tikz}
\end{exemple}

L'inclusion d'un graphique se fait ensuite dans le corps du
document au moyen de l'environnement
\environnementindex{tikzpicture}, qu'on place généralement à
l'intérieur d'une figure.

Pour vous donner une idée de la façon dont on décrit un graphique
avec \TikZ, voici le code source de celui correspondant à la
figure \ref{figure:tikz} :

\VerbatimInput[fontsize=\small,frame=single,samepage=true]{exemples/tikz.tex}

Nous n'irons pas plus loin ici car il existe une excellente
documentation d'introduction à \TikZ, en français. Vous pouvez
donc vous référer à \cite{tikz-pour-l-impatient} pour en savoir
plus sur \TikZ.

Par la suite, la lecture de la documentation officielle de \TikZ\
\cite{the-tikz-and-pgf-packages} vous permettra de parfaire vos
connaissances.

Enfin, le site suivant présente de nombreux exemples de
graphiques réalisés avec \TikZ, accompagnés de leur code source,
ce qui vous permettra de vous donner un large aperçu de ce qu'il
est possible de faire avec \TikZ\ :

\begin{toile}
\toileurl{http://www.texample.net/tikz/}
\end{toile}

Signalons également l'existence de l'extension \PGFPlots\
\cite{manual-for-package-pgfplots}, basée sur \TikZ, qui permet
de réaliser très simplement des graphiques à partir des
coordonnées d'un ensemble de points :

\begin{toile}
\toileurl{http://pgfplots.sourceforge.net/}
\end{toile}

\section{Utiliser d'autres classes que les classes standards}

Il existe d'autres classes que les classes standards (qui sont
indiquées au paragraphe \ref{section:classe}). Certaines
permettent de concevoir de nouveaux types de document, comme la
classe \classe{beamer} (voir le paragraphe \ref{section:beamer})
qui est utilisée pour concevoir des présentations destinées à
être projetées avec un vidéoprojecteur, mais d'autres ont
vocation à remplacer les classes standards. À cet effet, elles
s'utilisent exactement de la même façon mais proposent des
possibilités supplémentaires.

C'est le cas de l'ensemble KOMA-Script et de la classe
\classe{memoir}.

\subsection{KOMA-Script}
\label{section:KOMA-Script}

L'ensemble KOMA-Script\index{KOMA-Script} fournit des classes
\classeindex{scrartcl}, \classeindex{scrreprt} et
\classeindex{scrbook} destinées à remplacer respectivement les
classes standards \classeindex{article}, \classeindex{report} et
\classeindex{book}, comme indiqué dans le tableau
\ref{tableau:KOMA-Script}.

\begin{table}[!htbp]
\centering
\begin{tabular}{cc}
\toprule
\textbf{Classe standard}	& \textbf{Classe KOMA-Script}	\\
\midrule
\classeindex{article}	& \classeindex{scrartcl}	\\
\classeindex{report}	& \classeindex{scrreprt}	\\
\classeindex{book}	& \classeindex{scrbook}		\\
\bottomrule
\end{tabular}
\caption{Correspondance entre classes standards et classes KOMA-Script}
\label{tableau:KOMA-Script}
\end{table}

Pour utiliser une classe KOMA-Script, il suffit de changer
l'argument de la commande \commande{documentclass} dans un
document existant ou de créer directement un nouveau document
utilisant cette classe. Rien d'autre n'est à changer.

On peut omettre les options de classe \classeoption{a4paper} et
\classeoption{11pt}, qui sont utilisées par défaut par les
classes KOMA-Script.

KOMA-Script fournit également la classe \classeindex{scrlttr2},
qui permet d'écrire des lettres (voir le paragraphe
\ref{section:scrlttr2}). À la différence des classes indiquées
dans le tableau \ref{tableau:KOMA-Script}, la classe
\classe{scrlttr2} ne peut être directement utilisée en
remplacement de la classe standard \classeindex{letter} car elle
utilise une syntaxe différente.

L'intérêt des classes KOMA-Script est qu'elles offrent des
possibilités absentes des classes standards ou nécessitant
l'utilisation d'extensions. Elles permettent en particulier de
modifier les marges du document, la présentation des titres, des
légendes, de la table des matières et bien d'autres choses.

La description des possibilités offertes par KOMA-Script dépasse
le cadre de ce manuel. Pour en savoir davantage sur KOMA-Script,
vous pouvez vous référer à sa documentation :

\begin{toile}
\toileurl{http://mirror.ctan.org/macros/latex/contrib/koma-script/scrguien.pdf}
\end{toile}

\subsection{La classe \classe{memoir}}

La classe \classeindex{memoir} est destinée à remplacer les
classes standards \classeindex{book} et \classeindex{report}.
Elle intègre par ailleurs les fonctionnalités d'un grand nombre
d'extensions.

Pour qui doit rédiger un ouvrage volumineux et complexe, elle est
particulièrement intéressante.

Là encore, la description des possibilités offertes par la classe
\classe{memoir} dépasse le cadre de ce manuel. Pour en savoir
davantage sur la classe \classe{memoir}, vous pouvez vous référer
à sa documentation :

\begin{toile}
\toileurl{http://mirror.ctan.org/macros/latex/contrib/memoir/memman.pdf}
\end{toile}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Écrire une lettre : les classes \classe{letter} et
\classe{scrlttr2}}
\index{lettre}

Les chapitres précédents vous ont montré que \LaTeX\ était
parfaitement adapté à la conception de documents complexes, avec
des tableaux, des formules mathématiques, des graphiques, une
bibliographie, un index et une table des matières, mais il permet
aussi de réaliser des lettres, qui sont généralement des
documents plus simples, au moyen des classes \classe{letter} et
\classe{scrlttr2}. Cette dernière, qui offre plus de possibilités
et respecte mieux les habitudes de présentation françaises, sera
étudiée plus en détail.

\section{La classe \classe{letter}}

Un document réalisé avec la classe \classeindex{letter} peut
contenir plusieurs lettres, chacune figurant dans un
environnement \environnementindex{letter}. Celles-ci peuvent
comporter la même adresse d'expéditeur et la même signature si
ces éléments sont indiqués dans le préambule.

La commande \commandeindex{makelabels}, utilisée dans le
préambule, permet de générer une page spéciale, contenant
uniquement les adresses des destinataires. Si l'on imprime cette
page sur une feuille de papier autocollant, on a ainsi des
étiquettes que l'on peut coller sur les enveloppes.

La figure \ref{figure:letter-source} montre le code source d'une
lettre réalisée avec la classe \classe{letter}, la figure
\ref{figure:letter-document} montre le document généré.

\begin{figure}[!htbp]
\VerbatimInput[frame=single]{exemples/letter.tex}
\caption{Exemple de lettre réalisée avec la classe
\classe{letter} (code source)}
\label{figure:letter-source}
\end{figure}

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics[width=0.9\textwidth]{letter.pdf}}
\caption{Exemple de lettre réalisée avec la classe
\classe{letter} (document généré)}
\label{figure:letter-document}
\end{figure}

Pour plus d'informations sur la classe \classe{letter}, vous
pouvez consulter
\cite[pages 84--86]{latex-a-document-preparation-system}.

\subsection{Les commandes mutualisables}

Certaines indications peuvent être globales pour toutes les
lettres d'un même document si les commandes correspondantes sont
utilisées dans le préambule. Il s'agit des commandes
\commandeindex{address} et \commandeindex{signature}.

\subsubsection{La commande \commande{address}}

La commande \commandeindex{address} permet de définir le nom et
l'adresse postale de l'expéditeur, qui seront imprimés en haut à
droite de la lettre. Les différentes lignes du nom et de
l'adresse sont séparées par \boiboiindex\ :

\begin{exemple}
\address{babafou \\ Pays des babasses}
\end{exemple}

\subsubsection{La commande \commande{signature}}

La commande \commandeindex{signature} permet de définir la
signature, qui sera imprimée au bas de la lettre. Les différentes
lignes de la signature sont séparées par \boiboiindex\ :

\begin{exemple}
\signature{Ton petit babafou \\ qui t'aime}
\end{exemple}

\subsection{L'environnement \environnement{letter}}
\label{section:letter-letter}

Chaque lettre est contenue dans un environnement
\environnementindex{letter} dont l'argument est l'adresse du
destinataire. Les différentes lignes de l'adresse sont séparées
par \boiboiindex.

La commande \commandeindex{opening} permet de commencer la lettre
proprement dite en imprimant son argument. La commande
\commandeindex{closing} la termine par une formule de politesse.
Entre ces deux commandes, se situe le texte de la lettre qui peut
contenir n'importe quelle commande \LaTeX\ (à l'exception des
commandes qui n'ont pas de sens dans une lettre, comme
\commande{section}, par exemple).

Le document peut contenir plusieurs lettres, chacune figurant
dans un environnement \environnement{letter}. Toutes ces lettres
auront la même adresse d'expéditeur et la même signature
(commandes \commande{address} et \commande{signature}) si
celles-ci sont définies dans le préambule. Il est possible de
définir une adresse d'expéditeur et une signature différentes
pour une lettre particulière en utilisant les commandes
\commandeindex{address} et \commandeindex{signature} entre
\commande{begin\{letter\}} et \commande{opening}.

\section{La classe \classe{scrlttr2}}
\label{section:scrlttr2}

La classe \classeindex{scrlttr2} fait partie de l'ensemble
KOMA-Script (voir le paragraphe \ref{section:KOMA-Script}). À la
différence des autres classes fournies par cet ensemble, la
classe \classe{scrlttr2} n'est pas un remplaçant direct de la
classe \classe{letter}, c'est-à-dire qu'on ne peut pas prendre
une lettre écrite avec la classe \classe{letter} et simplement
remplacer l'argument de la commande \commande{documentclass} pour
utiliser la classe \classe{scrlttr2}. Les différences sont
néanmoins minimes.

La classe \classe{scrlttr2} offre plus de possibilités que la
classe \classe{letter} et respecte mieux les habitudes de
présentation françaises.

La figure \ref{figure:scrlttr2-source} montre le code source
d'une lettre réalisée avec la classe \classe{scrlttr2}, la figure
\ref{figure:scrlttr2-document} montre le document généré.

\begin{figure}[!htbp]
\VerbatimInput[frame=single]{exemples/scrlttr2.tex}
\caption{Exemple de lettre réalisée avec la classe
\classe{scrlttr2} (code source)}
\label{figure:scrlttr2-source}
\end{figure}

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics[width=0.9\textwidth]{scrlttr2.pdf}}
\caption{Exemple de lettre réalisée avec la classe
\classe{scrlttr2} (document généré)}
\label{figure:scrlttr2-document}
\end{figure}

\subsection{L'option de classe \classeoption{NF}}

L'option de classe \classeoptionindex{NF} permet de générer une
lettre respectant la norme française NF Z 11-001 :

\begin{exemple}
\documentclass[NF]{scrlttr2}
\end{exemple}

En particulier, ceci positionne l'adresse du destinataire au bon
endroit pour qu'elle apparaisse correctement dans une enveloppe à
fenêtre une fois pliée.

Rappelons que l'utilisation des options de classe
\classeoption{a4paper} et \classeoption{11pt} n'est pas
nécessaire avec les classes KOMA-Script (voir le paragraphe
\ref{section:KOMA-Script}).

\subsection{Les variables}

Le paramétrage de la lettre se fait au moyen de \emph{variables}
qui sont spécifiées grâce à la commande
\commandeindex{setkomavar}, dont le premier argument indique la
variable à renseigner et le second la valeur à lui attribuer :

\begin{syntaxe}
\commande{setkomavar}\argument{variable}\argument{valeur}
\end{syntaxe}

La commande \commande{setkomavar} est généralement utilisée dans
le préambule, auquel cas les variables renseignées de cette façon
ont la même valeur pour toutes les lettres du document. Il est
également possible de l'utiliser dans le corps du document, à
l'extérieur des environnements \environnement{letter}, auquel cas
les variables renseignées de cette façon ont la même valeur pour
toutes les lettres qui suivent.

Si la valeur d'une variable doit être scindée en plusieurs
lignes, celles-ci doivent être séparées par \boiboiindex.

Le tableau \ref{tableau:scrlttr2-variables} indique les plus
employées des variables utilisables avec la classe
\classe{scrlttr2} (il en existe un peu plus d'une trentaine).

\begin{table}[!htbp]
\centering
\begin{tabular}{ll}
\toprule
\multicolumn{1}{c}{\textbf{Variable}}		&
\multicolumn{1}{c}{\textbf{Signification}}	\\
\midrule
\komavarindex{date}		& date				\\
\komavarindex{fromaddress}	& adresse de l'expéditeur	\\
\komavarindex{fromname}		& nom de l'expéditeur		\\
\komavarindex{myref}		& référence de la lettre	\\
\komavarindex{signature}	& signature			\\
\komavarindex{subject}		& objet de la lettre		\\
\komavarindex{yourref}		& référence de la lettre à laquelle on répond	\\
\bottomrule
\end{tabular}
\caption{Variables utilisables avec la classe \classe{scrlttr2}}
\label{tableau:scrlttr2-variables}
\end{table}

Si la variable \komavar{date} n'est pas renseignée, la date du
jour de la compilation est indiquée automatiquement dans la
lettre.

Contrairement à la classe \classe{letter}, dans laquelle la
commande \commande{address} sert à définir le nom et l'adresse de
l'expéditeur, la classe \classe{scrlttr2} utilise deux variables
différentes, \komavar{fromname} pour le nom et
\komavar{fromaddress} pour l'adresse.

Si la variable \komavar{signature} n'est pas renseignée, la
valeur de la variable \komavar{fromname} est utilisée comme
signature.

\subsection{Les options}
\label{section:scrlttr2-options}

Certains détails de mise en page peuvent être modifiés grâce à la
commande \commandeindex{KOMAoptions} (qui n'a pas été utilisée
dans l'exemple de la figure \ref{figure:scrlttr2-source}).
Employée dans le préambule du document, celle-ci impacte toutes
les lettres du document. Il est également possible de limiter la
portée de certaines options à une seule lettre (voir le
paragraphe \ref{section:scrlttr2-letter}).

Il existe de nombreuses options. Nous n'en étudierons que deux.
Vous pouvez vous reporter à la documentation de KOMA-Script pour
avoir une description des autres.

L'option \komaoptionindex{backaddress} permet de supprimer
l'adresse de retour écrite en petits caractères au-dessus de
l'adresse du destinataire et ayant vocation à être visible dans
la fenêtre de l'enveloppe :

\begin{exemple}
\KOMAoptions{backaddress=false}
\end{exemple}

L'option \komaoptionindex{foldmarks} permet de supprimer les
marques facilitant le pliage de la lettre (qui n'ont par exemple
pas de sens lorsque la lettre n'est pas envoyée par courrier
postal mais par courriel sous forme de fichier PDF) :

\begin{exemple}
\KOMAoptions{foldmarks=hp}
\end{exemple}

Lorsqu'on utilise plusieurs options, il est possible de les
regrouper dans la même commande \commande{KOMAoptions} en
séparant chaque option de la suivante par une virgule :

\begin{exemple}
\KOMAoptions{backaddress=false,foldmarks=hp}
\end{exemple}

\noindent qu'on peut également écrire :

\begin{exemple}
\KOMAoptions
{
        backaddress     = false ,
        foldmarks       = hp
}
\end{exemple}

\subsection{L'environnement \environnement{letter}}
\label{section:scrlttr2-letter}

L'environnement \environnementindex{letter} de la classe
\classe{scrlttr2} s'utilise exactement comme celui de la classe
\classe{letter} (voir le paragraphe \ref{section:letter-letter}).

Pour appliquer certaines options (voir le paragraphe
\ref{section:scrlttr2-options}) à une lettre en particulier, on
utilise l'argument optionnel de l'environnement
\environnement{letter} avec la même syntaxe que la commande
\commande{KOMAoptions} :

\begin{exemple}
\begin{letter}[foldmarks=hp]{Père Noël \\ Dans les nuages}
\end{exemple}

\section{Règles typographiques}
\label{section:typographie-adresse-téléphone}
\index{typographie}

\subsection{Adresse}

La Poste recommande :

\begin{itemize}

\item d'écrire une adresse sur six lignes au maximum ;

\item de ne jamais mettre de virgule après le numéro de rue ;

\item d'écrire en majuscules la dernière ligne, sans accents ni
      ponctuation (ce qui est contraire à toutes les règles
      typographiques mais facilite, paraît-il, la reconnaissance
      optique) et si possible l’ensemble de l’adresse.

\end{itemize}

Ce qui donne, par exemple :

\begin{exemple}
Séraphin Lampion
51 rue des Bouffonneries
72530 YVRE L EVEQUE
\end{exemple}

\begin{toile}
\toileurl{http://www.laposte.fr/Particulier/Envoyez-et-recevez-du-courrier/Les-offres-et-conseils-pas-a-pas/2.-Redaction-des-adresses}
\toileurl{http://www.orthotypographie.fr/volume-I/accolade-allemand.html\#Adresse}
\end{toile}

\subsection{Numéro de téléphone}

Un numéro de téléphone (du moins en France) se compose de cinq
groupes de deux chiffres séparés par des espaces (pas de point ni
de tiret) :

\begin{exemple}
01 23 45 67 89
\end{exemple}

Il en est de même pour un numéro de télécopieur.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Rédiger un CV}
\index{CV}

De nombreux recruteurs exigent sans vergogne une lettre de
motivation et un CV au seul format Word. D'autres, plus ouverts
d'esprit et en phase avec leur époque, acceptent volontiers le
format PDF. C'est l'occasion de rédiger son CV avec \LaTeX. Nous
étudierons d'abord la classe \classe{moderncv}, qui produit
probablement le résultat le plus joli, puis la classe
\classe{curve} et enfin l'extension \classe{currvita}.

La lecture de l'article
\cite{writing-the-curriculum-vitae-with-latex} complètera ce
chapitre. Il contient quelques indications sur la façon de
rédiger un CV ainsi qu'un tour d'horizon des classes permettant
de rédiger un CV.

Par ailleurs, les règles typographiques indiquées au paragraphe
\ref{section:typographie-adresse-téléphone} au sujet de l'adresse
et du numéro de téléphone sont également valables dans un CV.

\section{La classe \classe{moderncv}}

La classe \classeindex{moderncv} permet très simplement de
rédiger un CV d'aspect sobre et efficace, qu'on peut agrémenter
d'une touche de couleur et d'une photo.

La figure \ref{figure:moderncv-source} montre le code source d'un
CV réalisé avec la classe \classe{moderncv}, la figure
\ref{figure:moderncv-casual-document} montre le document généré
avec le thème \theme{casual} et la figure
\ref{figure:moderncv-classic-document} montre le document généré
avec le thème \theme{classic}.

\begin{figure}[!htbp]
\VerbatimInput[frame=single,lastline=33,numbers=left]{exemples/moderncv.tex}
\caption{Exemple de CV réalisé avec la classe \classe{moderncv}
(code source)}
\label{figure:moderncv-source}
\end{figure}

\begin{figure}[!htbp]
\ContinuedFloat
\VerbatimInput[firstline=34,frame=single,lastline=69,numbers=left]{exemples/moderncv.tex}
\caption[]{Exemple de CV réalisé avec la classe \classe{moderncv}
(code source)}
\end{figure}

\begin{figure}[!htbp]
\ContinuedFloat
\VerbatimInput[firstline=70,frame=single,numbers=left]{exemples/moderncv.tex}
\caption[]{Exemple de CV réalisé avec la classe \classe{moderncv}
(code source)}
\end{figure}

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics[width=0.9\textwidth]{moderncv-casual.pdf}}
\caption{Exemple de CV réalisé avec la classe \classe{moderncv},
thème \theme{casual} (document généré)}
\label{figure:moderncv-casual-document}
\end{figure}

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics[width=0.9\textwidth]{moderncv-classic.pdf}}
\caption{Exemple de CV réalisé avec la classe \classe{moderncv},
thème \theme{classic} (document généré)}
\label{figure:moderncv-classic-document}
\end{figure}

\subsection{Les thèmes}

En effet, l'aspect de l'en-tête et du pied de page du CV dépend
du \emph{thème}\index{theme@thème (\classe{moderncv})} utilisé.
La commande \commandeindex{moderncvtheme}, utilisée dans le
préambule du document, permet d'en définir le thème grâce à son
argument, qui peut être soit \moderncvthemeindex{casual} soit
\moderncvthemeindex{classic} :

\begin{exemple}
\moderncvtheme{classic}
\end{exemple}

Comme on peut le voir dans la figure
\ref{figure:moderncv-casual-document}, le thème \theme{casual}
place une partie des informations personnelles dans l'en-tête et
le reste dans le pied de page. Le thème \theme{classic}, en
revanche, place toutes les informations personnelles dans
l'en-tête, comme on peut le voir dans la figure
\ref{figure:moderncv-classic-document}. Il est plus utile pour un
recruteur d'avoir toutes les informations personnelles au même
endroit donc il est recommandé d'utiliser plutôt le thème
\theme{classic}.

L'argument optionnel de la commande \commande{moderncvtheme}, qui
peut valoir \code{blue} (c'est la valeur par défaut),
\code{green}, \code{grey}, \code{orange} ou \code{red}, permet de
choisir la couleur des rubriques :

\begin{exemple}
\moderncvtheme[green]{classic}
\end{exemple}

On peut y ajouter l'option \code{roman} pour utiliser dans les
rubriques une police à empattement plutôt que la police sans
empattement utilisée par défaut :

\begin{exemple}
\moderncvtheme[green,roman]{classic}
\end{exemple}

\subsection{Les informations personnelles}

Les informations personnelles sont renseignées dans le préambule.
On peut en voir un exemple dans la figure
\ref{figure:moderncv-source}, de la ligne 16 à la ligne 27.

La commande \commandeindex{firstname} (obligatoire) permet
d'indiquer le prénom :

\begin{exemple}
\firstname{Séraphin}
\end{exemple}

La commande \commandeindex{familyname} (obligatoire) permet
d'indiquer le nom de famille :

\begin{exemple}
\familyname{Lampion}
\end{exemple}

La commande \commandeindex{title} (optionnelle) permet d'indiquer
le titre du CV (qui correspond souvent au poste actuel ou au
poste recherché), qui n'est affiché qu'avec le thème
\theme{classic} :

\begin{exemple}
\title{Représentant en assurances}
\end{exemple}

La commande \commandeindex{address} (optionnelle) permet
d'indiquer l'adresse postale. Son premier argument contient le
numéro et la rue, qu'on peut scinder en plusieurs lignes avec
\boiboiindex\ si nécessaire. Son second argument contient le code
postal et la ville.

\begin{exemple}
\address{Place de la mairie}{99999 MOULINSART}
\end{exemple}

La commande \commandeindex{mobile} (optionnelle) permet
d'indiquer le numéro de téléphone mobile :

\begin{exemple}
\mobile{06 02 03 04 05}
\end{exemple}

La commande \commandeindex{phone} (optionnelle) permet d'indiquer
le numéro de téléphone fixe :

\begin{exemple}
\phone{01 02 03 04 05}
\end{exemple}

La commande \commandeindex{fax} (optionnelle) permet d'indiquer
le numéro de télécopieur :

\begin{exemple}
\fax{01 02 03 04 05}
\end{exemple}

La commande \commandeindex{email} (optionnelle) permet d'indiquer
l'adresse électronique :

\begin{exemple}
\email{lampion@mondass.fr}
\end{exemple}

La commande \commandeindex{extrainfo} (optionnelle) permet
d'indiquer des informations supplémentaires, qu'on peut scinder
en plusieurs lignes avec \boiboiindex\ si nécessaire :

\begin{exemple}
\extrainfo{Marié \\ beaucoup d'enfants}
\end{exemple}

La commande \commandeindex{photo} (optionnelle) permet d'indiquer
le nom du fichier au format PDF, PNG ou JPEG contenant la photo :

\begin{exemple}
\photo{seraphin-lampion.jpg}
\end{exemple}

On peut en fixer la hauteur au moyen de l'argument optionnel de
la commande \commande{photo} :

\begin{exemple}
\photo[3cm]{seraphin-lampion.jpg}
\end{exemple}

La commande \commandeindex{quote} (optionnelle) permet d'indiquer
un texte qui sera affiché entre les informations personnelles et
les rubriques du CV :

\begin{exemple}
\quote{Je vais vous fignoler un amour de petit contrat...}
\end{exemple}

Enfin, la commande \commandeindex{maketitle}, utilisée au début
du corps du document, permet d'imprimer ces informations, en
fonction du thème choisi.

\subsection{Les rubriques}

Les rubriques du CV sont indiquées au moyen des commandes
\commandeindex{section} et \commandeindex{subsection} (les autres
commandes de hiérarchisation n'existent pas dans la classe
\classe{moderncv}).

Elles sont composées dans la couleur indiquée par l'argument
optionnel de la commande \commande{moderncvtheme} (bleu par
défaut). Les sections sont précédées d'une barre horizontale de
la même couleur.

\subsection{Le contenu des rubriques}

Selon sa nature, le contenu des rubriques peut être indiqué à
l'aide d'une des six commandes suivantes.

Quatre d'entre elles utilisent l'espace situé sous la barre
horizontale des sections, qu'on appellera \emph{partie gauche}.
Toutes utilisent l'espace situé sous le titre des sections, qu'on
appellera \emph{partie droite}.

\subsubsection{La commande \commande{cventry}}

La commande \commandeindex{cventry} est généralement utilisée
pour décrire l'expérience professionnelle et la formation :

\begin{exemple}
\cventry{1955 -- 1958}{Diplôme de représentant}
{École de la vie}{Bruxelles}{option « embobinage »}
{Une formation ambitieuse qui développe l'assurance en soi.}
\end{exemple}

La commande \commandeindex{cventry} accepte six arguments.
Certains d'entre eux peuvent ne pas être renseignés, auquel cas
il convient de conserver néanmoins les couples d'accolades
correspondants comme on peut le voir dans la figure
\ref{figure:moderncv-source} à la ligne 36.

Le premier argument est placé dans la partie gauche. Il est
utilisé pour indiquer un intervalle temporel correspondant au
poste ou à la formation.

Les arguments suivants sont placés dans la partie droite.

Le deuxième argument est composé en gras, suivi du troisième
argument, composé en italique. L'un d'entre eux est utilisé pour
indiquer le poste occupé ou le diplôme obtenu, l'autre pour
indiquer l'entreprise ou l'organisme de formation.

Les quatrième et cinquième arguments sont composés à la suite et
sont utilisés pour toute information complémentaire (option
suivie dans le cas de la formation, par exemple).

Le sixième argument est composé sous la ligne formée par les
précédents et permet de développer le poste occupé ou la
formation suivie. On y utilise généralement l'environnement
\environnement{itemize} comme on peut le voir dans la figure
\ref{figure:moderncv-source}, de la ligne 37 à la ligne 43.

\subsubsection{La commande \commande{cvcomputer}}

La commande \commandeindex{cvcomputer} est utilisée pour indiquer
ses compétences en informatique mais on peut l'utiliser pour
indiquer tout autre chose dans un domaine différent :

\begin{exemple}
\cvcomputer{Humour}{Les histoires de mon oncle Anatole.}
           {Enfumage}{Je parle beaucoup...}
\end{exemple}

La commande \commandeindex{cvcomputer} accepte quatre arguments
qui sont composés sous la forme d'un tableau de quatre colonnes.
La première colonne est placée dans la partie gauche, les
suivantes dans la partie droite. Les deux derniers arguments
peuvent ne pas être renseignés, auquel cas il convient de
conserver néanmoins les couples d'accolades correspondants comme
on peut le voir dans la figure \ref{figure:moderncv-source} à la
ligne 61.

Les premier et troisième arguments font office de titre ou de
catégorie pour l'argument suivant, les deuxième et quatrième de
description.

\subsubsection{La commande \commande{cvlanguage}}

La commande \commandeindex{cvlanguage} permet d'indiquer les
langues étrangères :

\begin{exemple}
\cvlanguage{Belge}{courant}{langue maternelle}
\cvlanguage{Espagnol}{notions}{}
\end{exemple}

La commande \commandeindex{cvlanguage} accepte trois arguments.
Le premier argument, placé dans la partie gauche, indique la
langue. Le deuxième argument, composé en gras, indique le niveau.
Le troisième argument permet d'indiquer un commentaire qui est
composé en italique. Ce dernier peut ne pas être renseigné,
auquel cas il convient de conserver néanmoins le couple
d'accolades correspondant comme on peut le voir dans la figure
\ref{figure:moderncv-source} à la ligne 72.

\subsubsection{La commande \commande{cvline}}

La commande \commandeindex{cvline} affiche ses deux arguments sur
une ligne, le premier dans la partie gauche et le second dans la
partie droite :

\begin{exemple}
\cvline{Association}{Président du « Volant Club »}
\end{exemple}

La commande \commande{cvline} peut par exemple être utilisée pour
indiquer ses activités extra-professionnelles.

\subsubsection{La commande \commande{cvlistitem}}

La commande \commandeindex{cvlistitem} affiche son unique
argument précédé d'un gros point dans la partie droite :

\begin{exemple}
\cvlistitem{Général Alcazar}
\end{exemple}

\subsubsection{La commande \commande{cvlistdoubleitem}}

La commande \commandeindex{cvlistdoubleitem} affiche sur la même
ligne ses deux arguments, chacun précédé d'un gros point, dans la
partie droite :

\begin{exemple}
\cvlistdoubleitem{Château de Moulinsart}{Bianca Castafiore}
\end{exemple}

\subsection{Modifier la taille de la partie gauche}

En fonction des informations figurant dans la partie gauche, il
peut être nécessaire d'en augmenter la taille. Au contraire, il
est parfois utile de la réduire. Ceci se fait au moyen des
commandes suivantes, utilisées dans le préambule du document :

\begin{exemple}
\setlength{\hintscolumnwidth}{45mm}
\AtBeginDocument{\recomputelengths}
\end{exemple}

La longueur \code{45mm} est à adapter pour obtenir une partie
gauche de la taille voulue.

\section{La classe \classe{curve}}

La classe \classeindex{curve} permet de réaliser facilement un CV
d'apparence classique.

La figure \ref{figure:curve-source} montre le code source d'un CV
réalisé avec la classe \classe{curve}, la figure
\ref{figure:curve-document} montre le document généré.

\begin{figure}[!htbp]
\VerbatimInput[frame=single,numbers=left]{exemples/curve.tex}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(code source)}
\label{figure:curve-source}
\end{figure}

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics[width=0.9\textwidth]{curve.pdf}}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(document généré)}
\label{figure:curve-document}
\end{figure}

La classe \classe{curve} s'utilise avec les options de classe
habituelles, auxquelles on ajoute l'option de classe
\classeoption{french}. En effet, lorsqu'une rubrique est
interrompue par une fin de page, le titre de cette rubrique est
repris en haut de la page suivante en lui ajoutant « (suite) ».
Pour que ceci soit affiché dans la bonne langue, il est donc
nécessaire d'indiquer à la classe \classe{curve} dans quelle
langue le CV est rédigé (en plus de l'utilisation de l'extension
\extension{babel}).

Remarquez que l'extension \extension{geometry} (voir le
paragraphe \ref{section:geometry}) a été utilisée afin de réduire
les marges de tête et de pied du document pour que le CV tienne
sur une seule page.

\subsection{Les informations personnelles}

Les informations personnelles sont placées dans l'en-tête et le
titre du CV.

La commande \commandeindex{leftheader}, utilisée dans le
préambule du document, permet de définir la partie gauche de
l'en-tête du CV. Elle peut contenir plusieurs lignes séparées par
\boiboiindex\ :

\begin{exemple}
\leftheader{Place de la mairie \\
            99999 MOULINSART \\
            téléphone : 01 02 03 04 05 \\
            courriel : lampion@mondass.fr}
\end{exemple}

Sur le même principe, la commande \commandeindex{rightheader},
utilisée dans le préambule du document, permet de définir la
partie droite de l'en-tête du CV :

\begin{exemple}
\rightheader{Marié \\ beaucoup d'enfants}
\end{exemple}

La commande \commandeindex{photo}, utilisée dans le préambule du
document, permet d'indiquer le nom du fichier au format PDF, PNG
ou JPEG contenant la photo :

\begin{exemple}
\photo{seraphin-lampion.jpg}
\end{exemple}

La photo est par défaut placée à gauche, entre la marge et
l'en-tête. L'argument optionnel de la commande \commande{photo}
permet de la placer au centre s'il vaut \code{c} ou à droite,
entre l'en-tête et la marge, s'il vaut \code{r} :

\begin{exemple}
\photo[c]{seraphin-lampion.jpg}
\end{exemple}

La commande \commandeindex{photoscale}, utilisée dans le
préambule du document, permet d'indiquer la fraction de la
largeur du CV alloué à la photo, entre 0 et 1 (elle est par
défaut de 0,1 soit 10 \%) :

\begin{exemple}
\photoscale{0.12}
\end{exemple}

La commande \commandeindex{title}, utilisée dans le préambule du
document, permet d'indiquer le titre du CV (qu'on utilise
généralement pour indiquer le prénom et le nom) :

\begin{exemple}
\title{Séraphin Lampion}
\end{exemple}

La commande \commandeindex{subtitle}, utilisée dans le préambule
du document, permet d'indiquer le sous-titre du CV (qu'on utilise
généralement pour indiquer le poste actuel ou le poste
recherché) :

\begin{exemple}
\subtitle{Représentant en assurances}
\end{exemple}

La commande \commandeindex{makeheaders}, utilisée dans le corps
du document, permet d'imprimer l'en-tête. Ses deux parties sont
par défaut centrées verticalement. L'argument optionnel de la
commande \commande{makeheaders} permet de aligner en haut s'il
vaut \code{t} et en bas s'il vaut \code{b} :

\begin{exemple}
\makeheaders[t]
\end{exemple}

La commande \commandeindex{maketitle}, utilisée dans le corps du
document, permet d'imprimer le titre et le sous-titre :

\begin{exemple}
\maketitle
\end{exemple}

\subsection{Les rubriques}

Les rubriques du CV doivent être contenues chacune dans un
fichier propre et appelées depuis le fichier principal au moyen
de la commande \commandeindex{makerubric}, dont l'argument est le
nom du fichier contenant la rubrique, sans son extension
\path{.tex} :

\begin{exemple}
\makerubric{curve-experience}
\makerubric{curve-references}
\makerubric{curve-methodologies}
\makerubric{curve-formation}
\makerubric{curve-langues}
\makerubric{curve-extra}
\end{exemple}

Les figures \ref{figure:curve-experience-source} à
\ref{figure:curve-extra-source} montrent les codes sources des
rubriques.

\begin{figure}[!htbp]
\VerbatimInput[frame=single,numbers=left]{exemples/curve-experience.tex}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(code source du fichier \protect\path{curve-experience.tex})}
\label{figure:curve-experience-source}
\end{figure}

\begin{figure}[!htbp]
\VerbatimInput[frame=single,numbers=left]{exemples/curve-references.tex}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(code source du fichier \protect\path{curve-references.tex})}
\label{figure:curve-references-source}
\end{figure}

\begin{figure}[!htbp]
\VerbatimInput[frame=single,numbers=left]{exemples/curve-methodologies.tex}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(code source du fichier \protect\path{curve-methodologies.tex})}
\label{figure:curve-methodologies-source}
\end{figure}

\begin{figure}[!htbp]
\VerbatimInput[frame=single,numbers=left]{exemples/curve-formation.tex}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(code source du fichier \protect\path{curve-formation.tex})}
\label{figure:curve-formation-source}
\end{figure}

\begin{figure}[!htbp]
\VerbatimInput[frame=single,numbers=left]{exemples/curve-langues.tex}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(code source du fichier \protect\path{curve-langues.tex})}
\label{figure:curve-langues-source}
\end{figure}

\begin{figure}[!htbp]
\VerbatimInput[frame=single,numbers=left]{exemples/curve-extra.tex}
\caption{Exemple de CV réalisé avec la classe \classe{curve}
(code source du fichier \protect\path{curve-extra.tex})}
\label{figure:curve-extra-source}
\end{figure}

Chaque rubrique est contenue dans un environnement
\environnementindex{rubric}, dont l'argument indique le titre de
la rubrique.

Les titres des rubriques sont centrés par défaut. Ceci peut être
modifié au moyen de la commande \commandeindex{rubricalignment},
utilisée dans le préambule, qui permet de les aligner à gauche si
son argument vaut \code{l} ou à droite si son argument vaut
\code{r} :

\begin{exemple}
\rubricalignment{l}
\end{exemple}

Le contenu de chaque rubrique est constitué d'une ou plusieurs
commandes \commandeindex{entry*} (avec une étoile). Son argument
optionnel, s'il est présent, est placé sur la gauche. Ce qui suit
la commande \commande{entry*} est placé sur la droite.

Il est important de ne pas laisser de lignes blanches à
l'intérieur de l'environnement \environnement{rubric}. En effet,
en raison de la façon dont celui-ci est conçu, cela se traduit
par des lignes blanches dans le document généré.

\section{L'extension \classe{currvita}}

L'extension \extensionindex{currvita} permet de réaliser
rapidement un CV plutôt dépouillé.

La figure \ref{figure:currvita-source} montre le code source d'un
CV réalisé avec l'extension \classe{currvita}, la figure
\ref{figure:currvita-document} montre le document généré.

\begin{figure}[!htbp]
\VerbatimInput[frame=single,lastline=37,numbers=left]{exemples/currvita.tex}
\caption{Exemple de CV réalisé avec l'extension
\extension{currvita} (code source)}
\label{figure:currvita-source}
\end{figure}

\begin{figure}[!htbp]
\ContinuedFloat
\VerbatimInput[firstline=38,frame=single,lastline=75,numbers=left]{exemples/currvita.tex}
\caption[]{Exemple de CV réalisé avec l'extension
\extension{currvita} (code source)}
\end{figure}

\begin{figure}[!htbp]
\ContinuedFloat
\VerbatimInput[firstline=76,frame=single,numbers=left]{exemples/currvita.tex}
\caption[]{Exemple de CV réalisé avec l'extension
\extension{currvita} (code source)}
\end{figure}

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics[width=0.9\textwidth]{currvita.pdf}}
\caption{Exemple de CV réalisé avec l'extension
\extension{currvita} (document généré)}
\label{figure:currvita-document}
\end{figure}

L'extension \extension{currvita} s'utilise en complément d'une
classe non spécialisée dans la rédaction de CV. Celle-ci peut
être \classe{article} ou \classe{scrartcl} pour créer un CV
autonome mais on peut également inclure un CV dans un document
plus volumineux (par exemple un dossier de candidature créé avec
une classe telle que \classe{report} ou \classe{scrreprt}).

L'extension \extension{currvita} doit donc être chargée dans le
préambule du document. Il est intéressant d'utiliser l'option
\extensionoption{NoDate}, qui évite l'impression de la date de
compilation à la suite du CV :

\begin{exemple}
\usepackage[NoDate]{currvita}
\end{exemple}

Dans un CV autonome, il est inutile d'utiliser l'extension
\extension{hyperref} car l'extension \extension{currvita} n'en
tire pas parti.

L'environnement \environnementindex{cv} délimite le CV. Il
s'utilise avec un argument qui contient le titre à placer en tête
du CV (qu'on peut laisser vide si l'on n'en souhaite pas) :

\begin{exemple}
\begin{cv}{Séraphin Lampion --- Représentant en assurances}

[...]

\end{cv}
\end{exemple}

À l'intérieur de l'environnement \environnement{cv}, les
rubriques du CV sont réalisées au moyen d'autant d'environnements
\environnementindex{cvlist}, dont l'argument indique le titre de
la rubrique :

\begin{exemple}
\begin{cvlist}{Expérience professionnelle}

\item[1958 -- 1983] Représentant, Assurances Mondass, Paris
                    \begin{itemize}
                    \item Démarchage à domicile.
                    \item Recherche d'opportunités.
                    \item Établissement de contrats.
                    \end{itemize}

\end{cvlist}
\end{exemple}

Le contenu de chaque rubrique est constitué d'une ou plusieurs
commandes \commandeindex{item}. Son argument optionnel, s'il est
présent, est placé sur la gauche. Ce qui suit la commande
\commande{item} est placé sur la droite.

Enfin, la commande suivante, placée dans le corps du document
(pas dans le préambule) et avant d'utiliser l'environnement
\environnement{cv}, permet de modifier la largeur de la partie
gauche :

\begin{exemple}
\setlength{\cvlabelwidth}{25mm}
\end{exemple}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Faire une présentation : les classes \classe{slides}
et \classe{beamer}}
\index{présentation}

En bureautique, beaucoup utilisent deux logiciels différents, un
pour le traitement de texte et un autre pour les présentations.
C'est regrettable parce que cela complique la réalisation
conjointe d'un document écrit et de la présentation associée,
cette dernière devant généralement emprunter certains éléments
figurant dans le premier.

Avec \LaTeX, le problème ne se pose pas car il permet également
de réaliser des présentations. Pour cela, on peut utiliser :

\begin{itemize}

\item la classe \classe{slides}, qui est fournie en standard avec
      \LaTeX\ et qui est destinée à réaliser des transparents
      qu'on imprime et qu'on projette avec un rétroprojecteur ;

\item la classe \classe{beamer}, qui n'est pas standard mais qui
      figure dans la plupart des installations \LaTeX\ et qui est
      destinée à réaliser des présentations au format PDF pouvant
      être projetées avec un vidéoprojecteur (grâce à la fonction
      d'affichage en plein écran des logiciels de visualisations
      de fichiers PDF).

\end{itemize}

Signalons également l'existence des classes
\classe{seminar}\footnote{\url{http://www.tug.org/applications/Seminar/}}
et
\classe{prosper}\footnote{\url{http://prosper.sourceforge.net/prosper.html}},
qui n'ont aujourd'hui d'autre intérêt qu'historique. Sauf si vous
avez besoin de modifier des présentations utilisant l'une de ces
classes, il est préférable d'utiliser \classe{beamer} pour
réaliser de nouvelles présentations.

\section{La classe \classe{slides}}

La classe \classeindex{slides} permet de réaliser des
transparents très simples. Le corps du document contient un ou
plusieurs environnements \environnementindex{slide}, dont chacun
contient le texte d'un transparent :

\VerbatimInput[frame=single,samepage=true]{exemples/slides.tex}

Ce document produit un unique transparent (puisqu'il n'y a qu'un
seul environnement \environnement{slide}, mais on aurait pu en
mettre plusieurs à la suite). Vous pouvez en voir le résultat
dans la figure \ref{figure:transparent}.

\begin{figure}[!htbp]
\centering
\setlength{\fboxsep}{1pt}
\fbox{\includegraphics[width=0.9\textwidth]{slides.pdf}}
\caption{Exemple de transparent réalisé avec la classe
\classe{slides}}
\label{figure:transparent}
\end{figure}

Dans l'environnement \environnement{slide} :

\begin{itemize}

   \item le texte est écrit en gros caractères ;

   \item il est écrit dans une police linéale ;

   \item il est centré verticalement ;

   \item chaque page est numérotée dans le coin inférieur droit.

\end{itemize}

Vous pouvez utiliser avec la classe \classe{slides} la plupart
des commandes et des environnements de \LaTeX\ qui ont un sens
dans un transparent (par exemple, des commandes comme les
commandes de hiérarchisation ne sont pas utiles dans les
transparents et n'existent donc pas dans la classe
\classe{slides}). Il n'existe pas de liste des commandes et
environnements de \LaTeX\ non disponibles dans la classe
\classe{slides} donc, dans le doute, essayez !

Pour plus de renseignements sur la classe \classe{slides},
vous pouvez consulter
\cite[pages 80--84]{latex-a-document-preparation-system}.

\section{La classe \classe{beamer}}
\label{section:beamer}

De nos jours le vidéoprojecteur a quasiment partout remplacé le
rétroprojecteur et les ternes transparents d'antan ont laissé la
place à des présentations multicolores. À cet effet, la classe
\classeindex{beamer} permet de réaliser des présentations au
format PDF bénéficiant de la toute la puissance de \LaTeX.

Utiliser le format PDF pour les présentations offre de nombreux
avantages :

\begin{itemize}

\item il s'agit d'un format universel, visualisable aussi bien
      sur un ordinateur que sur un téléphone mobile évolué ;

\item il s'agit d'un format ouvert, qui n'est pas lié à un
      logiciel spécifique ;

\item la possibilité de visualiser les documents PDF directement
      dans un butineur facile leur diffusion sur la toile ;

\item les documents PDF sont généralement de taille raisonnable.

\end{itemize}

L'aspect des présentations peut être modifié au moyen de thèmes,
qui seront abordés au paragraphe \ref{section:beamer-themes}. Ces
thèmes peuvent également être personnalisés (modification des
couleurs, ajout d'un logo), comme nous le verrons au paragraphe
\ref{section:beamer-personnalisation}.

\subsection{Structure d'une présentation}

La structure d'une présentation réalisée avec la classe
\classe{beamer} est indiquée dans la figure
\ref{figure:beamer-struture}.

\begin{figure}[!htbp]
\begin{exemple}
\documentclass{beamer}

\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{microtype}

% reste du préambule

\begin{document}

\begin{frame}

[...]

\end{frame}

\begin{frame}

[...]

\end{frame}

[...]

\end{document}
\end{exemple}
\caption{Structure d'une présentation réalisée avec la classe
\classe{beamer}}
\label{figure:beamer-struture}
\end{figure}

Il est généralement inutile d'indiquer des options de classe avec
\classe{beamer}. En effet, la taille du papier n'a ici pas de
sens et la fonte par défaut est suffisamment grande pour une
projection sur écran.

Il est également inutile de charger l'extension
\extension{hyperref} car \classe{beamer} le fait automatiquement.

Le corps du document contient une suite d'environnements
\environnementindex{frame}, chacun contenant une page de la
présentation.

\subsection{La page de titre}
\index{page de titre}

La première page d'une présentation est la page de titre.

Elle utilise différentes indications figurant dans le préambule :

\begin{exemple}
\title{Mon oncle Anatole}
\subtitle{Sa vie, son œuvre}
\author{Séraphin Lampion}
\institute{Assurances Mondass}
\date{23 octobre 2009}
\end{exemple}

\begin{itemize}

\item la commande \commandeindex{title} indique le titre de la
      présentation ;

\item la commande
      \commandeindex{subtitle} indique le sous-titre de la
      présentation ;

\item la commande
      \commandeindex{author} indique l'auteur de la
      présentation ;

\item la commande \commandeindex{institute} indique l'employeur
      de l'auteur de la présentation ;

\item la commande \commandeindex{date} indique la date de la
      présentation.

\end{itemize}

On peut utiliser \boiboiindex\ dans les arguments de ces
commandes pour forcer un passage à la ligne si nécessaire.

En fonction du thème utilisé, certains de ces éléments peuvent
être repris dans les marges des pages intérieures de la
présentation. S'ils sont trop longs, on peut indiquer une version
courte en option de chacune des commandes. Celle-ci sera utilisée
dans les marges alors que l'argument le sera dans la page de
titre :

\begin{exemple}
\title[ENSTA ParisTech]{École nationale supérieure
de techniques avancées \\ (ENSTA ParisTech)}
\end{exemple}

On imprime ensuite la page de titre (dans le premier
environnement \environnementindex{frame} de la présentation) au
moyen de la commande \commandeindex{titlepage} :

\begin{exemple}
\begin{frame}

\titlepage

\end{frame}
\end{exemple}

Ceci donne au final la page de titre représentée dans la figure
\ref{figure:beamer-titlepage}.

\begin{figure}[!htbp]
\centering
\beamersimple{beamer-titlepage.pdf}
\caption{Exemple de page de titre réalisée avec la classe \classe{beamer}}
\label{figure:beamer-titlepage}
\end{figure}

\subsection{Les pages intérieures}

Les pages suivant la page de titre sont elles-aussi contenues
dans un environnement \environnementindex{frame} :

\begin{exemple}
\begin{frame}

\frametitle{Ceci est le titre de la page}

La suite est le corps de la page.

\end{frame}
\end{exemple}

La commande \commandeindex{frametitle} permet d'indiquer le titre
de la page. La suite du contenu de l'environnement
\environnement{frame} correspond au corps de la page et l'on peut
y utiliser quasiment toutes les commandes et environnements vus
dans les chapitres précédents.

Par ailleurs, \classe{beamer} a étendu la syntaxe de \LaTeX\ pour
permettre d'afficher certains éléments d'une page au fur et à
mesure du discours, comme cela est habituel dans les
présentations.

En pratique, chaque page (logique) du document est divisée en
plusieurs pages (physiques) dans le document PDF généré en
fonction du nombre d'éléments à faire apparaître. La succession
des pages du document PDF donnera l'illusion de l'apparition des
éléments sur une même page.

Considérons l'exemple suivant :

\begin{exemple}
\begin{itemize}

\item<1-> premier élément

\item<2-> deuxième élément

\item<3-> troisième élément

\end{itemize}
\end{exemple}

Chaque commande \commande{item} est suivie d'une spécification
entre chevrons. Celle-ci indique sur quelles pages du document
PDF faire figurer l'élément en question.

On peut indiquer :

\begin{itemize}

\item une page précise : \code{<2>} ;

\item une liste de pages : \code{<2,3,4>} ;

\item un intervalle de pages : \code{<2-4>}, \code{<-3>} (de la
      première page jusqu'à la page 3), \code{<2->} (à partir de
      la page 2) ;

\item et toute combinaison des spécifications précédentes.

\end{itemize}

Ainsi, dans notre exemple, le premier élément figurera sur la
première page et les suivantes (la spécification \code{<1->} est
d'ailleurs superflue puisque tout élément sans spécification
figurera sur toutes les pages), le deuxième élément figurera sur
la deuxième page et les suivantes et le troisième élément
figurera sur la troisième page et les suivantes. La page logique
(c'est-à-dire l'environnement \environnement{frame}) contenant la
liste indiquée dans l'exemple générera donc trois pages dans le
document PDF. La spécification \code{<3->} du troisième élément
aurait d'ailleurs pu être simplifiée en \code{<3>} mais indiquer
\code{<3->} est cohérent avec les spécifications des autres
éléments et simplifie l'ajout éventuel d'un quatrième élément
(puisque la spécification du troisième n'aura pas à être
modifiée).

Le fait d'afficher certains éléments d'une page au fur et à
mesure est surtout utilisé avec des listes, comme c'est le cas
dans l'exemple précédent, mais il est possible de produire le
même effet sur n'importe quel texte au moyen de la commande
\commandeindex{uncover}, qui s'utilise avec le même type de
spécification :

\begin{exemple}
\uncover<1->{La philanthropie de l'ouvrier charpentier.}

\uncover<2->{La Chine se dresse devant les Nippons.}

\uncover<3->{Les matières fiscales le détendent.}
\end{exemple}

Voire, au sein même d'un paragraphe :

\begin{exemple}
\uncover<1->{La} \uncover<2->{muse} \uncover<3->{nous}
\uncover<4->{habite.}
\end{exemple}

Pour des portions de document plus importantes, on peut utiliser
l'environnement \environnementindex{uncoverenv} :

\begin{exemple}
\begin{uncoverenv}<1->
Paragraphe d'introduction :

\begin{itemize}
[...]
\end{itemize}
\end{uncoverenv}

\begin{uncoverenv}<2->
Paragraphe d'introduction :

\begin{itemize}
[...]
\end{itemize}
\end{uncoverenv}
\end{exemple}

Le texte qui n'est pas affiché dans une page PDF donnée est
normalement invisible. Pour le faire apparaître en filigrane,  on
peut utiliser la commande \commandeindex{setbeamercovered} dans
le préambule :

\begin{exemple}
\setbeamercovered{transparent}
\end{exemple}

Il peut être nécessaire d'adapter le niveau de transparence entre
0 et 100 (0 signifiant invisible et 100 opaque, le niveau par
défaut est de 15) en fonction du vidéoprojecteur utilisé :

\begin{exemple}
\setbeamercovered{transparent=20}
\end{exemple}

\subsection{Modification de l'aspect des présentations : les
thèmes}
\label{section:beamer-themes}
\index{theme@thème (\classe{beamer})}

L'aspect des présentations peut facilement être modifié au moyen
de \emph{thèmes}. Pour cela, on utilise dans le préambule la
commande \commandeindex{usetheme} en indiquant le nom du thème
souhaité en argument :

\begin{exemple}
\usetheme{Montpellier}
\end{exemple}

Les thèmes utilisables sont indiqués dans le tableau
\ref{tableau:beamer-themes}.

\begin{table}[!htbp]
\centering
\begin{tabular}{*{5}{>{\ttfamily}l}}
\toprule
default  & Boadilla    & Goettingen  & Malmoe      & Singapore	\\
AnnArbor & CambridgeUS & Hannover    & Marburg     & Szeged	\\
Antibes  & Copenhagen  & Ilmenau     & Montpellier & Warsaw	\\
Bergen   & Darmstadt   & JuanLesPins & PaloAlto    &		\\
Berkeley & Dresden     & Luebeck     & Pittsburgh  &		\\
Berlin   & Frankfurt   & Madrid      & Rochester   &		\\
\bottomrule
\end{tabular}
\caption{Thèmes utilisables avec \classe{beamer}}
\label{tableau:beamer-themes}
\beamerthemeindex{default}
\beamerthemeindex{Antibes}
\beamerthemeindex{Bergen}
\beamerthemeindex{Berkeley}
\beamerthemeindex{Berlin}
\beamerthemeindex{Boadilla}
\beamerthemeindex{Copenhagen}
\beamerthemeindex{Darmstadt}
\beamerthemeindex{Dresden}
\beamerthemeindex{Frankfurt}
\beamerthemeindex{Goettingen}
\beamerthemeindex{Hannover}
\beamerthemeindex{Ilmenau}
\beamerthemeindex{JuanLesPins}
\beamerthemeindex{Luebeck}
\beamerthemeindex{Madrid}
\beamerthemeindex{Malmoe}
\beamerthemeindex{Marburg}
\beamerthemeindex{Montpellier}
\beamerthemeindex{PaloAlto}
\beamerthemeindex{Pittsburgh}
\beamerthemeindex{Rochester}
\beamerthemeindex{Singapore}
\beamerthemeindex{Szeged}
\beamerthemeindex{Warsaw}
\end{table}

Le thème \theme{default} est celui qui est utilisé en l'absence
de la commande \commande{usetheme} dans le préambule (mais on
peut aussi le spécifier explicitement si on le souhaite). Les
autres thèmes portent des noms de villes.

Les figures \ref{figure:beamer-default} à
\ref{figure:beamer-Warsaw} montrent, pour chaque thème, à quoi
ressemblent une page de titre à gauche et une page intérieure à
droite.

\input{exemples/beamer-themes.tex}

\subsection{Personnalisation de l'aspect des présentations}
\label{section:beamer-personnalisation}

Les thèmes offrent une grande diversité de mise en page pour les
présentations. Néanmoins, la dominante bleue de la plupart
d'entre eux peut se révéler gênante. Il est heureusement possible
de modifier les couleurs utilisées par son thème favori. Nous
verrons également comment ajouter un logo.

\subsubsection{Modification des couleurs}

La commande \commandeindex{usecolortheme}, utilisée dans le
préambule, permet de modifier la couleur dominante utilisée par
le thème courant :

\begin{exemple}
\usecolortheme[RGB={64,141,183}]{structure}
\end{exemple}

Il est possible de spécifier la couleur de plusieurs manières :

\begin{itemize}

\item \code{rgb=\{}\var{r}\code{,}\var{g}\code{,}\var{b}\code{\}}\index{rgb@\code{rgb} (couleur)}
      qui indique les valeurs de rouge, de vert et de bleu par
      des nombres décimaux entre 0 et 1, par exemple
      \code{rgb=\{0.3,0.5,0.7\}} ;

\item \code{RGB=\{}\var{r}\code{,}\var{g}\code{,}\var{b}\code{\}}\index{RGB@\code{RGB} (couleur)}
      qui indique les valeurs de rouge, de vert et de bleu par
      des nombres entiers entre 0 et 255, par exemple
      \code{RGB=\{0,171,199\}} ;

\item \code{cmyk=\{}\var{c}\code{,}\var{m}\code{,}\var{y}\code{,}\var{k}\code{\}}\index{cmyk@\code{cmyk} (couleur)}
      qui indique les valeurs de cyan, de magenta, de jaune et de
      noir par des nombres décimaux entre 0 et 1, par exemple
      \code{cmyk=\{0.76,0,0.15,0.11\}} ;

\item \code{cmy=\{}\var{c}\code{,}\var{m}\code{,}\var{y}\code{\}}\index{cmy@\code{cmy} (couleur)}
      est identique à \code{cmyk} sauf que la composante noire
      n'est pas indiquée ;

\item \code{hsb=\{}\var{h}\code{,}\var{s}\code{,}\var{b}\code{\}}\index{hsb@\code{hsb} (couleur)}
      qui indique la teinte, la saturation et la valeur par des
      nombres décimaux entre 0 et 1, par exemple
      \code{hsb=\{0.3,0.5,0.7\}} ;

\item \code{named=}\var{nom}\index{named@\code{named} (couleur)}
      qui indique la couleur par son nom.

\end{itemize}

Pour \code{named}, il est possible d'utiliser les couleurs
prédéfinies indiquées dans le tableau
\ref{tableau:beamer-couleurs}.

\begin{table}[!htbp]
\centering
\begin{tabular}{*{5}{>{\ttfamily}l}}
\toprule
black & cyan     & green     & orange & violet	\\
blue  & darkgray & lightgray & purple & white	\\
brown & gray     & magenta   & red    & yellow	\\
\bottomrule
\end{tabular}
\caption{Couleurs prédéfinies utilisables avec \classe{beamer}}
\label{tableau:beamer-couleurs}
\end{table}

On peut aussi définir ses propres noms de couleurs au moyen de la
commande \commandeindex{definecolor}, utilisée dans le préambule
:

\begin{syntaxe}
\commande{definecolor}\argument{nom}\argument{type}\argument{valeur}
\end{syntaxe}

\noindent qui définit une couleur \var{nom} spécifiée par
\var{type} (qui peut être \code{rgb}, \code{RGB}, \code{cmyk},
\code{cmy} ou \code{hsb}, comme vu précédemment) et par
\var{valeur} (qui doit être compatible avec \var{type}). Par
exemple :

\begin{exemple}
\definecolor{macouleur}{RGB}{0,171,199}
\usecolortheme[named=macouleur]{structure}
\end{exemple}

\subsubsection{Ajout d'un logo}

La commande \commandeindex{logo}, utilisée dans le préambule,
permet d'insérer un logo dans la plupart des thèmes (tous sauf
\theme{Goettingen}, \theme{Hannover} et \theme{Marburg}). On peut
utiliser pour cela la commande \commandeindex{includegraphics}
(voir le paragraphe \ref{section:includegraphics}) :

\begin{exemple}
\logo{\includegraphics[width=1cm]{logo.pdf}}
\end{exemple}

Le logo contenu dans le fichier \path{logo.pdf} apparaîtra alors
sur chaque page à l'endroit prévu par le thème. Sa taille (ici
\code{1cm}) est à adapter au besoin.

Il peut également être nécessaire d'adapter la couleur de fond du
logo pour qu'il s'en détache correctement. Pour cela, on utilise
la commande \commandeindex{setbeamercolor} dans le préambule :

\begin{exemple}
\setbeamercolor{logo}{bg=white}
\end{exemple}

\subsection{Pour aller plus loin}

Nous n'avons couvert que quelques-uns des nombreux aspects de
\classe{beamer}. Pour plus de renseignements à son sujet, vous
pouvez consulter
\cite[pages 752--796]{the-latex-graphics-companion}.

Les sites suivants sont également intéressants :

\begin{toile}
\noindent\url{http://latex-beamer.sourceforge.net/} (site officiel)\par
\noindent\url{http://mirror.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf} (documentation officielle)\par
\toileurl{http://fr.wikipedia.org/wiki/Beamer}
\toileurl{http://mcclinews.free.fr/latex/introbeamer.php}
\toileurl{http://www.math.umbc.edu/~rouben/beamer/}
\end{toile}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\chapter{??? une thèse}
%\index{these@thèse}

% http://www.tug.org/pracjourn/2008-1/mori/
% classicthesis
% arsclassica
% hepthesis
% uwthesis

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\appendix

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Quelques règles typographiques françaises et anglaises}
\label{annexe:typographie}
\index{typographie}

De même que l'écriture d'un texte nécessite le respect de
l'orthographe et de la grammaire, la composition d'un document
nécessite le respect des règles typographiques. Certaines règles
typographiques sont automatiquement respectées par \LaTeX\ mais,
afin de réaliser des documents de bonne qualité, il faut
connaître et respecter soi-même toutes les autres.

Les règles typographiques sont, pour la plupart, différentes
selon les langues. Ici sont résumées et illustrées quelques
règles élémentaires pour le français et l'anglais.

En ce qui concerne la typographie française, l'ouvrage de
référence est \cite{lexique-des-regles-typographiques}. La
lecture de \cite{regles-de-l-ecriture-typographique-du-francais}
et de \cite{orthotypographie} est également enrichissante. Pour
la typographie anglaise (américaine, pour être très précis),
l'ouvrage de référence est \cite{the-chicago-manual-of-style}.

\section{Quelques règles typographiques françaises}

Contrairement à une croyance répandue, une lettre accentuée
écrite en majuscule doit conserver son accent (ou son tréma ou sa
cédille). À cet effet, si votre éditeur de texte n'en permet pas
la saisie directe, il est toujours possible d'utiliser les
commandes des tableaux \ref{tableau:accents} et
\ref{tableau:accents-simples}.

La commande \commandeindex{up}, fournie par l'extension
\extensionindex{babel} utilisée avec l'option
\extensionoptionindex{french}, permet de composer son argument en
caractères supérieurs. En typographie, on ne parle ni d'exposant
ni d'indice mais de caractères respectivement \emph{supérieurs}
et \emph{inférieurs}. La commande \commande{up} peut par exemple
être utilisée pour écrires les abréviations indiquées dans le
tableau \ref{tableau:madame-mademoiselle-monsieur}.

\begin{table}[!htbp]
\centering
\begin{tabular}{ll>{\ttfamily}l}
\toprule
madame		& M\up{me}	& M\commande{up}\{me\}		\\
mesdames	& M\up{mes}	& M\commande{up}\{mes\}		\\
mademoiselle	& M\up{lle}	& M\commande{up}\{lle\}		\\
mesdemoiselles	& M\up{lles}	& M\commande{up}\{lles\}	\\
monsieur	& M.		& M.				\\
messieurs	& MM.		& MM.				\\
\bottomrule
\end{tabular}
\caption{Madame, mademoiselle, monsieur}
\label{tableau:madame-mademoiselle-monsieur}
\end{table}

\begin{toile}
\toileurl{http://www.orthotypographie.fr/volume-I/echelle-extrait.html\#Exposant}
\toileurl{http://www.orthotypographie.fr/volume-II/madame-mythologie.html\#Madame_mademoiselle_monsieur}
\end{toile}

Les abréviations indiquées dans le tableau
\ref{tableau:premier-deuxieme}, quant à elles, sont suffisamment
communes pour disposer de commandes propres, également fournies
par l'extension \extensionindex{babel} utilisée avec l'option
\extensionoptionindex{french}. Utiliser ces commandes évite
d'avoir dans ses documents des horreurs comme « 3\up{ème} »,
qu'on voit malheureusement bien trop souvent...

\begin{table}[!htbp]
\centering
\begin{tabular}{ll>{\ttfamily}l}
\toprule
premier		& 1\ier		& 1\commande{ier}	\\
première	& 1\iere	& 1\commande{iere}	\\
premiers	& 1\iers	& 1\commande{iers}	\\
premières	& 1\ieres	& 1\commande{ieres}	\\
deuxième	& 2\ieme	& 2\commande{ieme}	\\
deuxièmes	& 2\iemes	& 2\commande{iemes}	\\
etc.		&		&			\\
\bottomrule
\end{tabular}
\caption{Premier, deuxième, etc.}
\label{tableau:premier-deuxieme}
\index{ier@\commande{ier} (\ier)}
\index{iere@\commande{iere} (\iere)}
\index{iers@\commande{iers} (\iers)}
\index{ieres@\commande{ieres} (\ieres)}
\index{ieme@\commande{ieme} (\ieme)}
\index{iemes@\commande{iemes} (\iemes)}
\end{table}

L'extension \extensionindex{textcomp} fournit la commande
\commandeindex{oldstylenums} qui permet d'obtenir les chiffres
français (\oldstylenums{0123456789}) :

\begin{filecontents*}{\jobname.tmp}
La prise de la Bastille a eu lieu le \oldstylenums{14}
juillet \oldstylenums{1789}.
\end{filecontents*}
\exempleresultat{\jobname.tmp}

Ceci ne fonctionne que si la police de caractères utilisée
contient les signes nécessaires, ce qui est malheureusement rare.

\begin{toile}
\toileurl{http://www.orthotypographie.fr/volume-I/cabochon-citation.html\#Chiffres}
\end{toile}

Concernant la ponctuation :

\begin{itemize}

\item la virgule, le point et les points de suspension sont
      collés au mot qui les précède et sont suivis par une
      espace ;

\item le point-virgule, les deux points, le point d'exclamation
      et le point d'interrogation sont précédés d'une espace
      fine (ce que l'extension \extensionindex{babel} utilisée
      avec l'option \extensionoptionindex{french} gère
      automatiquement) et suivis d'une espace ;

\item les « guillemets français » ne sont pas présents sur les
      claviers, mais ils se saisissent facilement avec Vim en
      utilisant \taper{\textasciicircum K <{}<} et
      \taper{\textasciicircum K >{}>} et avec Emacs grâce aux
      commandes \taper{C-x 8 <} et \taper{C-x 8 >} ; à défaut,
      des commandes \commande{og}\index{og@\commande{og} (\og)}
      (\og) et \commande{fg}\index{fg@\commande{fg} (\fg)} (\fg)
      sont fournies par l'extension \extensionindex{babel}
      utilisée avec l'option \extensionoptionindex{french}.

\end{itemize}

Voici un petit exemple de poésie téléphonique à la ponctuation
légèrement retouchée pour illustrer ceci :

\begin{filecontents*}{\jobname.tmp}
J'avais un ami, mais il est parti. Ce sens à ma vie, il
n'est plus en vie... Il m'a tout donné, puis s'est effacé,
sans me déranger ; et je crois j'ai pleuré, j'ai pleuré.
Tout au fond, l'air d'un con : envie de me casser. Voudrais
bien essayer, voudrais bien continuer, continuer ! Un moment,
un instant, j'ai cru oublier. En parlant, en marchant,
à Paris, à minuit, dans ma ville ?
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{Quelques règles typographiques anglaises}

Concernant la ponctuation :

\begin{itemize}

\item la virgule, le point-virgule, les deux points, le point
      d'exclamation et le point d'interrogation sont collés au
      mot qui les précède et sont suivis par une espace ;

\item le point est collé au mot qui le précède et suivi de deux
      espaces (\LaTeX\ s'en moque, mais c'est l'usage) ;

\item les points de suspension sont précédés et suivis d'une
      espace et sont plus espacés que trois points se suivant,
      c'est pourquoi \LaTeX\ dispose de la commande
      \commande{ldots}\index{ldots@\commande{ldots} (\ldots)}
      pour saisir les points de suspension anglais (n'oubliez pas
      la commande \verb*|\ | pour l'espace suivant les points de
      suspension) ;

\item les guillemets se saisissent
      \code{`{}`}\index{``@\code{`{}`} (``)} et
      \code{'{}'}\index{''@\code{'{}'} ('')} (et pas
      \code{"}\index{""@\code{""} ("")}). Ce qui donne ``ceci''.

\end{itemize}

Un autre exemple de poésie profondément pourpre (à la ponctuation
modifiée) permet d'illustrer ces règles :

\begin{otherlanguage}{english}

\begin{filecontents*}{\jobname.tmp}
We all came out to Montreux, on the Lake Geneva shoreline,
to make records with a mobile: we didn't have much
time.  Frank Zappa and the Mothers were at the best place
around; but some stupid with a flare gun burned the place
to the ground \ldots\ Smoke on the water! Fire in the
sky? Smoke on the water!
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\end{otherlanguage}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{Différences entre \LaTeX\ 2.09 et \LaTeXe}
\label{chapitre:LaTeX2e}

Les différences entre \LaTeX\ 2.09 (version maintenant obsolète,
décrite dans la première édition de ce manuel) et \LaTeXe\
(version actuelle, décrite dans ce manuel, apparue en 1994 mais
n'ayant cessé d'évoluer depuis, en attendant \LaTeX 3) sont
relativement minimes pour l'utilisateur (elles le sont en
revanche beaucoup moins pour les concepteurs d'extensions). Cette
annexe résume les principales différences entre ces deux
versions.

\section[Les commandes \commande{documentstyle},
\commande{documentclass} et\texorpdfstring{\newline}{}
\commande{usepackage}]{Les commandes \commande{documentstyle},
\commande{documentclass} et \commande{usepackage}}

La commande \commande{documentstyle} de \LaTeX\ 2.09 a été
remplacée dans \LaTeXe\ par \commande{documentclass}.

Les options de classe (arguments optionnels de
\commande{documentclass}) correspondent aux options de style
(arguments optionnels de \commande{documentstyle}) qui
s'appliquent à la classe du document.

Les autres options de styles (qu'on appelle désormais extensions)
sont chargées grâce à la commande \commande{usepackage}.

\section{Déclarations et commandes de changement de style}

Les déclarations de changement de style \commande{it},
\commande{sl}, \commande{sc} \commande{bf}, \commande{rm},
\commande{sf} et \commande{tt} de \LaTeX\ 2.09 ont été remplacées
respectivement dans \LaTeXe\ par les déclarations
\commande{itshape}, \commande{slshape}, \commande{scshape},
\commande{bfseries}, \commande{rmfamily}, \commande{sffamily} et
\commande{ttfamily}.

La déclaration \commande{em} de \LaTeX\ 2.09 a été remplacée dans
\LaTeXe\ par la commande \commande{emph}.

Les commandes de changement de style \commande{textup},
\commande{textit}, \commande{textsl}, \commande{textsc},
\commande{textmd}, \commande{textbf}, \commande{textrm},
\commande{textsf} et \commande{texttt} sont nouvelles dans
\LaTeXe.

Ces commandes prennent un argument et ne nécessitent donc pas
d'accolades de groupement. De plus, il est possible de mélanger
différents styles :

\begin{filecontents*}{\jobname.tmp}
\textit{italique \textbf{gras}}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\noindent alors qu'avec \LaTeX\ 2.09, chaque commande annulait
l'effet de la précédente :

\begin{filecontents*}{\jobname.tmp}
{\it italique \bf gras}
\end{filecontents*}
\exempleresultat{\jobname.tmp}

\section{\SliTeX\ et la classe \classe{slides}}

Le logiciel \SliTeX\ n'existe plus, les transparents sont
maintenant directement produits par \LaTeX\ au moyen de la classe
\classe{slides}.

\section{La commande \commande{LaTeXe}}

La commande \commande{LaTeXe} permet d'imprimer le logo \LaTeXe\
(avec le $2_{\textstyle\varepsilon}$). De même que pour la
commande \commande{LaTeX}, il faut la faire suivre de \verb*|\ |
si l'on ne veut pas que le mot suivant lui soit collé.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\backmatter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter*{\bibname}
\addcontentsline{toc}{chapter}{\bibname}

\begin{btSect}{latex}
\section*{Ouvrages généraux sur \LaTeX}
\btPrintAll
\end{btSect}

\begin{btSect}{avance}
\section*{Utilisation avancée de \LaTeX}
\btPrintAll
\end{btSect}

\begin{btSect}{bibliographie-index}
\section*{Bibliographie et index}
\btPrintAll
\end{btSect}

\begin{btSect}{graphisme}
\section*{Graphisme}
\btPrintAll
\end{btSect}

\begin{btSect}{typographie}
\section*{Typographie}
\btPrintAll
\end{btSect}

\begin{btSect}{divers}
\section*{Divers}
\btPrintAll
\end{btSect}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\cleardoublepage
\phantomsection
\printindex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\cleardoublepage
\listoftables

\cleardoublepage
\listoffigures

\cleardoublepage
\tableofcontents

\end{document}
