diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/apprends-latex/Apprends_LaTeX.tex |
Initial commit
Diffstat (limited to 'info/apprends-latex/Apprends_LaTeX.tex')
-rw-r--r-- | info/apprends-latex/Apprends_LaTeX.tex | 7874 |
1 files changed, 7874 insertions, 0 deletions
diff --git a/info/apprends-latex/Apprends_LaTeX.tex b/info/apprends-latex/Apprends_LaTeX.tex new file mode 100644 index 0000000000..fd8105e101 --- /dev/null +++ b/info/apprends-latex/Apprends_LaTeX.tex @@ -0,0 +1,7874 @@ +\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} |