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

% XXX vérifier les ~ et les \-

\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{emptypage}
\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

\frenchbsetup{og=«,fg=»}

\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{>}}
\DeclareUrlCommand{\usenet}{}
\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}}

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

\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.

Il ne prétend pas être exhaustif et 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.

\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}, ainsi
que le chapitre \ref{chapitre:et-maintenant}, 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*{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 pages, 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 pages.

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}

Un document \LaTeX\ est un fichier texte qu'on saisit au moyen de son éditeur de
texte favori (Emacs, \intercom{vi}...). Nous allons commencer avec un premier
document très simple, que vous pouvez copier-coller (ou, au pire, retaper) dans
votre éditeur de texte :

\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{epdfview},
\intercom{evince}, \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 pages 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 pages 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 pages 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 pages 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 pages 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 pages}
\label{section:commandes-de-mise-en-pages}

Quelques commandes plus ou moins utiles permettent de forcer la main à \LaTeX\
pour la mise en pages 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 pages). 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 pages 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 pages 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 pages 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 pages) 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 pages. 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 pages
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 pages (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}}
\label{section:CTAN}
\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 pages 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 pages 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 pages, on utilisera ensuite les
commandes indiquées dans le paragraphe \ref{section:fancyhdr-recto} pour un
document mis en pages en recto seul ou les commandes indiquées dans le
paragraphe \ref{section:fancyhdr-recto-verso} pour un document mis en pages 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 pages 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 pages en
recto-verso}
\label{section:fancyhdr-recto-verso}

Dans un document mis en pages 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 pages :

\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 pages 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}{Ceci est le titre de la page}

La suite est le corps de la page.

\end{frame}
\end{exemple}

L'argument de l'environnement \environnement{frame} indique le titre de la page.
On peut également ne pas lui mettre d'argument et utiliser à la place la
commande \commandeindex{frametitle} :

\begin{exemple}
\begin{frame}

\frametitle{Ceci est le titre de la page}

La suite est le corps de la page.

\end{frame}
\end{exemple}

Le reste 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 pages 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://bitbucket.org/rivanvx/beamer/wiki/Home} (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
% TOPtesi

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

\chapter{Et maintenant ?}
\label{chapitre:et-maintenant}

Si vous lisez ces lignes, c'est que vous avez probablement parcouru, voire lu
attentivement, quelques uns des chapitres précédents. J'espère que, sans être
nécessairement déjà convaincu de l'intérêt d'utiliser \LaTeX, vous avez en tout
cas une bonne vision de ce qu'il permet de faire. Peut-être même l'utilisez-vous
déjà pour réaliser vos documents.

\section{Pour en apprendre davantage}

Les possibilités offertes par \LaTeX\ et ses nombreuses extensions sont variées
et ce manuel n'en décrit que quelques unes. Si vous souhaitez parfaire votre
connaissance de \LaTeX, la lecture des ouvrages
\cite{latex-a-document-preparation-system} et \cite{the-latex-companion} de la
bibliographie est un passage obligé. D'autres peuvent les compléter en fonction
de vos besoins.

Plusieurs sites Web peuvent également se révéler intéressants.

Pour commencer, le site officiel de \LaTeX\ :

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

Le site de l'association GUTenberg (groupe francophone des utilisateurs de
\TeX) :

\begin{toile}
\toileurl{http://www.gutenberg.eu.org/}
\end{toile}

Enfin, le site du LORIA\footnote{LORIA : laboratoire lorrain de recherche en
informatique et ses applications.} dédié à \LaTeX\ qui, même s'il n'est plus
activement entretenu, contient toujours des références intéressantes :

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

\section{Obtenir de l'aide}

Si vous vous posez une question, le premier réflexe est de consulter la foire
aux questions (FAQ) :

\begin{toile}
\toileurl{http://faq.tug.org/}
\end{toile}

Si vous n'y trouvez pas de réponse satisfaisante, vous pouvez poser votre
question dans les groupes de discussion USENET \usenet{fr.comp.text.tex} (en
français) ou \usenet{comp.text.tex} (en anglais).

\section{Conclusion}

En guise de conclusion, il est utile de revenir sur certains points abordés dans
ce manuel et trop souvent maltraités par les débutants en \LaTeX\ (voire,
malheureusement, par des personnes l'utilisant depuis plus longtemps).

\subsection{Il faut construire son document en pensant à sa structure}

C'est la différence fondamentale entre \LaTeX\ et un traitement de texte
WYSIWYG. Avec \LaTeX, on s'attache avant tout à la structure de son document (et
les commandes et environnements disponibles incitent à le faire) alors qu'avec
un traitement de texte WYSIWYG, on a plutôt tendance à se focaliser sur la
présentation du document au détriment de son contenu.

Et, pour raisonner en termes de structure, il est indispensable de définir ses
propres commandes et ses propres environnements.

Je vois régulièrement des documents utilisant directement de nombreuses
commandes telles que celles des tableaux \ref{tableau:style-commandes} et
\ref{tableau:corps}. C'est mal car ces commandes ne décrivent en rien la
structure du document. La bonne façon de faire est, comme indiqué à la fin du
paragraphe \ref{section:style}, de définir dans le préambule ses propres
commandes, en rapport avec la nature de leurs arguments et la structure du
document. Il est généralement difficile de tout prévoir à l'avance aussi ces
commandes doivent-elle être définies au fur et à mesure de la rédaction du
document, lorsqu'on prend conscience de leur nécessité.

L'utilisation dans le document de certaines commandes de mise en pages abordées
au paragraphe \ref{section:commandes-de-mise-en-pages} est également à
proscrire, en particulier les commandes d'espacement vertical, qui sont
fréquemment utilisées par les débutants pour détacher un paragraphe du texte qui
l'entoure. Pour cela, il est préférable de définir un environnement dont la
définition prendra en charge cet espacement.

Toujours au sujet des commandes de mise en pages, il est également fréquent de
voir utiliser \boiboiindex\ ou \commandeindex{newline} soit en fin de
paragraphe, c'est-à-dire avec une ligne blanche à la suite, soit en lieu et
place de cette ligne blanche. Rappelons que ces deux commandes ne doivent être
utilisées que dans des cas précis (comme, par exemple, pour marquer la fin d'un
vers dans l'environnement \environnement{verse} ou d'une ligne dans
l'environnement \environnement{tabular}) et ne doivent en aucun cas être
utilisées pour marquer la fin d'un paragraphe. Pour cela, il faut une ligne
blanche, qui a également l'intérêt d'aérer le fichier source. Les différents
paragraphes, séparés les uns des autres par une ligne blanche, sont donc
immédiatement identifiables dans le fichier source.

\subsection{Il ne faut pas bidouiller}

Il est légitime de vouloir personnaliser la mise en pages de son document. Pour
cela, l'utilisateur débutant est souvent livré à lui-même. Il existe
certainement une extension permettant de faire ce qu'il souhaite mais comment la
trouver ? Elle n'est pas nécessairement répertoriée dans
\cite{the-latex-companion}, le moteur de recherche du CTAN (voir le paragraphe
\ref{section:CTAN}) peut ne pas trouver l'extension désirée (souvent parce que
la recherche n'est pas spécifiée correctement) et la FAQ peut également n'être
d'aucun secours. De nombreux utilisateurs se tournent alors vers leur moteur de
recherche favori qui, avec un peu de chance, leur donnera une réponse correcte
mais risque fort de les orienter, dans la majrorité des cas, vers une page
contenant un bout de code incompréhensible réalisant tout ou partie de la
fonction désirée, que l'utilisateur va bidouiller sans trop comprendre ce qu'il
fait pour obtenir enfin quelque chose correspondant à ses attentes.

Je noircis peut-être le tableau mais ce genre de situation est extrêmement
fréquent. Dans ce cas, si une recherche comme indiqué précédemment ne donne
aucun résultat, il est préférable de demander conseil à des utilisateurs plus
expérimentés, soit dans son entourage soit en utilisant les groupes de
discussion USENET \usenet{fr.comp.text.tex} ou \usenet{comp.text.tex}, plutôt
que de bidouiller quelque chose qui sera probablement bancal.

\subsection{Il faut soigner le fichier source}

Même si le but de \LaTeX\ est de produire des documents mis en pages, on passe
l'essentiel de son temps à travailler sur le fichier source. Il convient donc
d'en soigner la présentation afin qu'il soit facilement lisible (pour soi-même
et, au besoin, pour d'autres) et qu'il reflète la structure du document. Par
exemple, même si le document produit par \LaTeX\ sera identique, mettre une
ligne blanche avant et après chaque commande \commande{section} permet de mieux
les distinguer dans le fichier source.

La lisibilité est une notion assez subjective mais on peut dégager quelques
règles de bon sens :

\begin{itemize}

\item séparer les blocs de texte de natures différentes par des lignes
      blanches ;

\item éviter les paragraphes comprenant uniquement une seule longue ligne, qui
      sont vite illisibles car les mots sont généralement coupés au bord de la
      fenêtre, et leur préférer les paragraphes composés de plusieurs lignes
      (mais sans ligne blanche) d'une longueur inférieure à la largeur de la
      fenêtre de l'éditeur de texte (habituellement, 80 caractères) ;

\item indenter certaines parties du texte pour en refléter la structure (par
      exemple les listes imbriquées) ;

\item aligner verticalement les éléments similaires (par exemple dans des
      tableaux).

\end{itemize}

\section{À vous de jouer !}

Vous avez maintenant toutes les cartes en main pour pouvoir utiliser \LaTeX\ et
découvrir la richesse de son univers. C'est à vous de jouer !

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

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

Outre les ouvrages indiqués dans cette bibliographie, vous pouvez également
consulter les sites suivants :

\begin{toile}
\toileurl{http://www.gutenberg.eu.org/texetlatex/article229.html}
\toileurl{http://www.latex-project.org/guides/books.html}
\end{toile}

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