diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/apprends-latex/Apprends_LaTeX.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/apprends-latex/Apprends_LaTeX.tex | 8209 |
1 files changed, 8209 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/apprends-latex/Apprends_LaTeX.tex b/Master/texmf-dist/doc/latex/apprends-latex/Apprends_LaTeX.tex new file mode 100644 index 00000000000..d0c14649bc2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/apprends-latex/Apprends_LaTeX.tex @@ -0,0 +1,8209 @@ +\documentclass[a4paper,11pt,openbib]{book} + +\usepackage[english,greek,french]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8x]{inputenc} +\usepackage{microtype} + +\usepackage{lmodern} +\usepackage{textcomp} + +\usepackage{array} +\usepackage[annote]{babelbib} +\usepackage{bbm} +\usepackage{bbold} +\usepackage{bibtopic} +\usepackage{booktabs} +\usepackage{caption} +\usepackage{dsfont} +\usepackage{eurosym} +\usepackage{fancyhdr} +\usepackage{fancyvrb} +\usepackage{filecontents} +\usepackage{framed} +\usepackage{graphicx} +\usepackage{latexsym} +\usepackage{longtable} +\usepackage{makeidx} +\usepackage{morefloats} +\usepackage{tabulary} +\usepackage{threeparttable} +\usepackage{tikz} +\usepackage[notbib]{tocbibind} +\usepackage{tocloft} +\usepackage{url} + +\usepackage{hyperref} + +% book + +\setcounter{secnumdepth}{3} +\setcounter{tocdepth}{3} + +% babel + +\newcommand{\anglais}[1]{\textit{\foreignlanguage{english}{#1}}} + +% babelbib + +\bibliographystyle{babplain-fl} +\setbibliographyfont{lastname}{\textsc} +\renewcommand{\btxauthorcolon}{ :} + +% caption + +\captionsetup +{ + justification = centerlast , + textfont = it , + textformat = period , +} + +% fancyhdr + +\setlength{\headheight}{15pt} + +\fancyhead{} +\fancyhead[LE]{\textit{\nouppercase{\leftmark}}} +\fancyhead[RO]{\textit{\nouppercase{\rightmark}}} + +% fancyvrb + +\DefineVerbatimEnvironment{exemple}{Verbatim}{frame=single,samepage=true} + +\newcommand{\exempleresultat}[1] +{\VerbatimInput[frame=single,samepage=true]{#1} +\begin{resultat} +\input{#1} +\end{resultat} +} + +% framed + +\setlength{\FrameSep}{2\fboxsep} + +\newenvironment{resultat} +{\begin{framed} +\setlength{\parindent}{0pt} +\setlength{\belowdisplayskip}{0pt} +\setlength{\abovedisplayskip}{0pt} +} +{\end{framed}} + +\newenvironment{syntaxe} +{\begin{framed} +\setlength{\parindent}{0pt} +} +{\end{framed}} + +\newenvironment{toile} +{% + \def\FrameCommand{\textcolor[gray]{0.7}{\vrule width 3pt}\hspace{0.7em}}% + \MakeFramed{\advance\hsize-\width \FrameRestore}% +}% +{\endMakeFramed} + +% graphicx + +\graphicspath{{exemples/}} + +\newcommand{\beamersimple}[1] +{ + \includegraphics[width=0.9\textwidth]{#1} +} + +\newcommand{\beamerdouble}[2] +{ + \includegraphics[width=0.47\textwidth]{#1} + \quad + \includegraphics[width=0.47\textwidth]{#2} +} + +% hyperref + +\hypersetup +{ + bookmarksnumbered = true , + colorlinks = true , + pdfauthor = {Marc Baudoin} , + pdftitle = {Apprends LaTeX !} , + unicode = true , + urlcolor = blue +} + +% makeidx + +\makeindex + +\newcommand{\terme}[1]{\emph{#1}\index{#1}} +\newcommand{\termeanglais}[2]{\emph{#1}\index{#1} (\anglais{#2}\index{#2@\anglais{#2}|see{#1}} en anglais)} + +\newcommand{\classeindex}[1]{\classe{#1}\index{#1@\classe{#1} (classe)}} +\newcommand{\classeoptionindex}[1]{\classeoption{#1}\index{#1@\classeoption{#1} (option de classe)}} + +\newcommand{\extensionindex}[1]{\extension{#1}\index{#1@\extension{#1} (extension)}} +\newcommand{\extensionoptionindex}[1]{\extensionoption{#1}\index{#1@\extensionoption{#1} (option d'extension)}} + +\newcommand{\commandeindex}[1]{\commande{#1}\index{#1@\commande{#1}}} +\newcommand{\commandeparindex}[2]{\commande{#1}\index{#1@\commande{#1} (#2)}} + +\newcommand{\environnementindex}[1]{\environnement{#1}\index{#1@\environnement{#1} (environnement)}} + +\newcommand{\komavarindex}[1]{\komavar{#1}\index{#1@\komavar{#1} (variable KOMA-Script)}} +\newcommand{\komaoptionindex}[1]{\komaoption{#1}\index{#1@\komaoption{#1} (option KOMA-Script)}} + +\newcommand{\biblioindex}[1]{\code{#1}\index{#1@\code{#1} (bibliographie)}} +\newcommand{\beamerthemeindex}[1]{\index{#1@\theme{#1} (thème \classe{beamer})}} +\newcommand{\moderncvthemeindex}[1]{\theme{#1}\index{#1@\theme{#1} (thème \classe{moderncv})}} +\newcommand{\codeindex}[1]{\code{#1}\index{#1@\code{#1}}} + +\newcommand{\intercomindex}[1]{\intercom{#1}\index{#1@\intercom{#1}}} + +\newcommand{\boiboiindex}{\commande{\textbackslash}\index{\\@\commande{\textbackslash}}} + +% tocloft + +\addtolength{\cftfignumwidth}{1em} % XX.XX +\cftsetpnumwidth{1.8em} + +% url + +\DeclareUrlCommand\courriel{\renewcommand\UrlLeft{<}\renewcommand\UrlRight{>}} +\newcommand{\toileurl}[1]{\noindent\url{#1}\par} + +% xindy + +\newcommand*\lettergroupDefault[1]{\lettergroup{Symboles}} +\newcommand*\lettergroup[1]{\hfill\textbf{\large #1}\hfill\nopagebreak} + +% commandes perso + +\newcommand{\BibTeX}{\textsc{Bib}\TeX} +\newcommand{\MakeIndex}{\textit{MakeIndex}} +\newcommand{\PGF}{\textsc{PGF}} +\newcommand{\PGFPlots}{\textsc{pgfplots}} +\newcommand{\PracTeX}{Prac\kern-0.07em\TeX} +\newcommand{\SliTeX}{\textsc{Sli}\TeX} +\newcommand{\TikZ}{Ti\textit{k}Z} +\newcommand{\xindy}{\textsf{xindy}} + +\newcommand{\classe}[1]{\textsf{#1}} +\newcommand{\classeoption}[1]{\textsf{#1}} +\newcommand{\extension}[1]{\textsf{#1}} +\newcommand{\extensionoption}[1]{\textsf{#1}} + +\newcommand{\commande}[1]{\texttt{\textbackslash #1}} +\newcommand{\environnement}[1]{\texttt{#1}} + +\newcommand{\option}[1]{\texttt{[}\textit{#1}\texttt{]}} +\newcommand{\argument}[1]{\texttt{\{}\textit{#1}\texttt{\}}} + +\newcommand{\code}[1]{\texttt{#1}} +\newcommand{\var}[1]{\textit{#1}} + +\newcommand{\komavar}[1]{\texttt{#1}} +\newcommand{\komaoption}[1]{\texttt{#1}} + +\newcommand{\theme}[1]{\texttt{#1}} + +\newcommand{\intercom}[1]{\texttt{#1}} +\newcommand{\taper}[1]{\texttt{#1}} + +\newcommand{\diff}{\,\mathrm{d}} + +\newenvironment{attention} +{\begin{quotation}\noindent\textbf{ATTENTION} :} +{\end{quotation}} + +% XXX vérifier les ~ et les \- + +{\selectlanguage{french}\hyphenation{ +cal-li-gra-phi-ques +cha-que +dou-ble +en-vi-ron-ne-ment +exem-ple +pren-nent +}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\frontmatter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{titlepage} + +\pdfbookmark[0]{Page de titre}{titre} + +\vspace*{\stretch{2}} + +\begin{center} +\LARGE\sffamily\bfseries Marc Baudoin +\end{center} + +\vspace*{\stretch{2}} + +\noindent\rule{\linewidth}{3pt} + +\begin{center} +\Huge\bfseries\itshape Apprends \LaTeX\ ! +\end{center} + +\noindent\rule{\linewidth}{3pt} + +\vspace*{\stretch{1}} + +\begin{center} +\large\sffamily quatrième édition +\end{center} + +\vspace*{\stretch{4}} + +\clearpage + +\pdfbookmark[0]{Droits d'auteur}{droits} + +\thispagestyle{empty} + +\noindent Copyright © 1994--2010 Marc Baudoin + +\bigskip + +Ce document est mis à disposition selon les termes de la License +publique du projet \LaTeX\ (LPPL) : + +\begin{toile} +\toileurl{http://www.latex-project.org/lppl/} +\end{toile} + +\end{titlepage} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\pagestyle{plain} + +\chapter*{Avant-propos} +\addcontentsline{toc}{chapter}{\protect\numberline{}Avant-propos} + +\section*{Au sujet de ce manuel} + +Ce manuel a été écrit à l'intention des élèves de l'École +nationale supérieure de techniques +avancées\footnote{\url{http://www.ensta.fr/}} (ENSTA ParisTech). +Il est en effet essentiel que de futurs ingénieurs sachent +produire efficacement des documents de qualité. + +Néanmoins, il ne décrit aucune spécificité propre à +l'environnement informatique de l'ENSTA ParisTech et pourra donc +s'avérer utile à toute personne désirant apprendre à utiliser +\LaTeX. + +\section*{Où trouver ce manuel ?} + +La version à jour de ce manuel (au format PDF) est disponible sur +les sites suivants : + +\begin{toile} +\noindent\url{http://www.babafou.eu.org/Apprends_LaTeX/} (site de +référence)\par +\toileurl{http://www.ctan.org/tex-archive/info/apprends-latex/} +\toileurl{http://tex.loria.fr/general.html} +\end{toile} + +\section*{Comment lire ce manuel ?} + +Les chapitres \ref{chapitre:introduction} à +\ref{chapitre:environnements} sont à lire absolument car ils +expliquent les bases indispensables permettant d'utiliser \LaTeX. +La lecture de l'annexe \ref{annexe:typographie} est également +enrichissante pour tous. Ceci ne fait au total qu'une +cinquantaine de pages. Le chapitre \ref{chapitre:mathematique} +n'est à lire que par les personnes ayant à utiliser des +expressions mathématiques. Il en va de même avec le chapitre +\ref{chapitre:bibliographie-index} pour la réalisation d'une +bibliographie ou d'un index. Les chapitres suivants sont à lire +en fonction de ses besoins. Enfin, l'annexe +\ref{chapitre:LaTeX2e} n'est à lire que par les rares personnes +ayant pratiqué la version 2.09 de \LaTeX\ (ou une version +antérieure) et n'ayant jamais encore utilisé \LaTeXe. + +\section*{Pour aller plus loin} + +Ce manuel ne prétend pas être exhaustif. Il décrit les aspects de +\LaTeX\ qui sont généralement les plus utiles et qui vous +permettront de rédiger la plupart de vos documents. Si vous +voulez aller plus avant dans votre connaissance de \LaTeX, il est +conseillé de lire \cite{latex-a-document-preparation-system}. +Celui-ci pourra être complété par \cite{the-latex-companion}, qui +décrit un grand nombre d'extensions de \LaTeX. + +Le site officiel de \LaTeX\ est également une source +d'informations précieuse : + +\begin{toile} +\toileurl{http://www.latex-project.org/} +\end{toile} + +Le site du LORIA\footnote{LORIA : laboratoire lorrain de recherche +en informatique et ses applications.} dédié à \LaTeX\ l'est +aussi : + +\begin{toile} +\toileurl{http://tex.loria.fr/} +\end{toile} + +\section*{Historique} + +La première édition de ce manuel a été écrite au printemps 1994 +et décrivait \LaTeX\ 2.09. + +La deuxième édition a été adaptée en 1996 et 1997 à \LaTeXe\ et +s'est vue rajouter quelques chapitres. De petites retouches ont +été apportées dans les années suivantes, sans changement de fond. + +La troisième édition, en 2009, représente principalement un +travail de clarification de la présentation des exemples (qui +sont désormais encadrés). Une description de la classe +\classe{beamer} a également été ajoutée. Par ailleurs, +l'utilisation de \intercom{pdflatex} et du format PDF ont +remplacé \intercom{latex} et les formats DVI et PostScript, de +même que le codage de caractères UTF-8 a remplacé ISO 8859-1 dans +les exemples. + +La quatrième édition, en 2010, outre une réorganisation de +certains chapitres existants, s'est vue rajouter la description +de \xindy\ et de \intercom{latexmk} dans le chapitre sur la +réalisation d'une bibliographie et d'un index ainsi que la +description de la classe \classe{scrlttr2} dans le chapitre sur +l'écriture d'une lettre. Le chapitre sur la rédaction d'un CV a +été créé. Pour les personnes souhaitant explorer le monde de +\LaTeX, le CTAN et la commande \intercom{texdoc} sont rapidement +mentionnés, de même que l'extension \TikZ\ (d'autant qu'elle +dispose d'une excellente documentation en français) ainsi que +l'ensemble de classes KOMA-Script et la classe \classe{memoir}. +Des descriptions des extensions \extension{geometry} et +\extension{fancyhdr} ainsi que de nombreuses extensions +permettant de changer la police de caractères ont également été +rajoutées. + +\section*{Conventions typographiques} + +Afin de faciliter la lecture de ce document, un certain nombre de +conventions typographiques ont été utilisées : + +\begin{itemize} + +\item le style \texttt{machine à écrire} est utilisé pour les + exemples de code \LaTeX, pour les noms des commandes et des + environnements \LaTeX, pour les noms de fichiers et pour + les commandes UNIX tapées au clavier ; + +\item l'\textit{italique} est utilisé lors de la définition de + nouveaux termes ainsi que pour les exemples d'arguments et + d'options des commandes \LaTeX\ ; + +\item le style \textsf{linéal} est utilisé pour les noms de + classes et leurs options ainsi que pour les noms + d'extensions et leurs options. + +\end{itemize} + +Par ailleurs, les exemples de code \LaTeX\ sont encadrés afin de +pouvoir les identifier plus facilement et beaucoup sont suivis de +leur résultat, lui aussi encadré. + +\section*{Remarques et commentaires} + +J'espère que ce manuel sera utile au plus grand nombre et je vous +invite à me faire part de vos remarques et de vos commentaires le +concernant par courriel à l'adresse +\href{mailto:babafou\%2Blatex@babafou.eu.org}{\courriel{babafou+latex@babafou.eu.org}}. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\mainmatter + +\pagestyle{fancy} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Introduction} +\label{chapitre:introduction} + +Ce manuel est destiné à vous apprendre \LaTeX\footnote{Absolument +rien à voir avec le caoutchouc. La fin de « \LaTeX\ » se prononce +comme dans le mot « varech ».} dans la joie et la bonne humeur. +Après l'avoir lu, vous devriez être en mesure d'utiliser \LaTeX\ +pour réaliser tous vos documents. + +\section{Qu'est-ce que \LaTeX\ ?} +\index{LaTeX@\LaTeX} + +\LaTeX\ est un formateur de texte d'une très grande puissance et +qui produit des documents d'une excellente qualité. Il est +utilisé par beaucoup d'étudiants, de chercheurs et d'éditeurs à +travers le monde. + +Pour vous donner une idée de ce que \LaTeX\ est capable de faire, +vous pouvez feuilleter ce manuel, il a été entièrement réalisé +avec lui. + +\LaTeX\ est une surcouche d'un formateur de texte appelé +\TeX\index{TeX@\TeX} (le nom \TeX\ vient du grec +\textgreek{t'eqnh}, qui veut dire « art » et d'où vient le mot +« technique~»\footnote{Ce qui explique la prononciation de +\LaTeX.}). \TeX\ est extrêmement puissant et dispose d'un langage +permettant de lui ajouter de nouvelles fonctions mais il est d'un +abord assez ardu. \LaTeX, en revanche, est bien plus simple et, +comme il est une surcouche de \TeX, il dispose du même langage, +qui a servi à réaliser de très nombreuses extensions pour \LaTeX. + +Cependant, vous vous demandez certainement quel est l'intérêt de +\LaTeX, qui demande un apprentissage certain, par rapport à des +logiciels de traitement de texte plus traditionnels tels +qu'OpenOffice ou Word, qui s'utilisent paraît-il d'une manière +intuitive et ergonomique. Tout est affaire de philosophie. + +\section{La philosophie de \LaTeX} + +\LaTeX\ n'est pas un traitement de texte à proprement parler, +comme OpenOffice et Word, c'est un \emph{formateur de texte}. Un +document \LaTeX\ est un fichier texte tapé avec n'importe quel +éditeur (Emacs, \intercom{vi}...) et contenant le texte du +document mélangé avec des commandes indiquant sa structure. Ceci +a une conséquence très importante : lors de la frappe, on ne voit +pas le document tel qu'il sera imprimé. On dit que \LaTeX\ n'est +pas \terme{WYSIWYG} (\anglais{what you see is what you get}), +contrairement à OpenOffice et Word. Pour visualiser le document, +il faut le compiler avec \LaTeX, ce qui génère un fichier +PDF\index{PDF} qu'on peut alors visualiser. C'est certainement le +gros inconvénient de \LaTeX\ pour les personnes habituées à voir +le document au fur et à mesure de sa saisie. D'un autre côté, +\LaTeX\ décharge au maximum l'utilisateur des soucis de mise en +page, ce qui lui permet de se concentrer sur la structure et le +contenu de son document. + +De plus, puisque qu'il traite le document globalement (et pas au +fur et à mesure de la frappe), \LaTeX\ peut en avoir une vue +d'ensemble et faire de bons choix de mise en page. + +En résumé, il faut bien comprendre que \LaTeX\ traite le document +tel qu'on le pense alors qu'OpenOffice et Word ne traitent le +document que tel qu'ils le voient. C'est cette intelligence qui +fait tout l'intérêt de \LaTeX. + +\section{\LaTeX\ et la typographie} + +La \terme{typographie} est l'art d'assembler des caractères. +Depuis l'invention de l'imprimerie, se sont développées des +règles et des habitudes afin de rendre la présentation d'un texte +agréable au regard. Malheureusement, rares sont les logiciels +WYSIWYG à les respecter. + +Par exemple, voyez-vous une différence entre les mots +« efficace » et «~ef{}f{}icace » ? Écrivons-les un peu plus gros +pour bien voir ce qui change : + +\begin{framed} +\begin{center} +\Huge +« efficace » et « ef{}f{}icace » +\end{center} +\end{framed} + +Dans le premier cas, les deux f et le i sont en quelque sorte +soudés, la fin de la boucle du premier f allant caresser la +naissance de celle du second, les deux barres des f se retrouvant +dans le prolongement l'une de l'autre et finissant au sommet du +i, dont le point se confond avec la fin de la boucle du second f. +C'est ce qu'on appelle une \terme{ligature}. + +Dans le second cas, les lettres sont tout simplement distinctes, +les unes à côté des autres. + +Les ligatures ont pour objectif de gagner de la place en +réduisant l'espacement entre les lettres mais elles ont également +un intérêt esthétique. \LaTeX, dans la mesure où la police de +caractères utilisée le permet, génère automatiquement les +ligatures adéquates. + +De même, comme indiqué précédemment, puisqu'il traite le document +globalement, \LaTeX\ peut jouer sur l'espacement pour uniformiser +le gris typographique, qui est ce qu'on perçoit d'un texte quand +on la regarde d'assez loin. + +D'autres aspects typographiques ne peuvent être traités de +manière automatique par \LaTeX\ et nécessitent donc d'être pris +en compte par l'auteur du document. Les ouvrages indiqués dans la +bibliographie sont d'une lecture enrichissante pour qui aime le +beau texte. Les règles typographiques les plus importantes sont +indiquées dans l'annexe \ref{annexe:typographie}. Celles +s'appliquant spécifiquement à l'écriture des mathématiques sont +indiquées au paragraphe \ref{section:math-typo}. + +\section{Comment se procurer \LaTeX\ ?} +\label{section:procurer} + +Sur un système UNIX, \LaTeX\ fait souvent partie de +l'installation de base. À défaut, il est toujours possible de +l'installer grâce au système d'ajout de logiciels tiers propre à +l'UNIX utilisé. Il existe également des distributions pour Mac OS +X et Windows. + +Si vous avez à installer \LaTeX, optez sans hésiter pour la +distribution \TeX\ Live\index{TeX Live@\TeX\ +Live}\footnote{\url{http://www.tug.org/texlive/}}, qui fournit un +environnement complet comprenant \LaTeX\ et de nombreuses +extensions, ainsi qu'un système de mise à jour de l'ensemble. Il +s'agit d'un logiciel +libre\footnote{\url{http://fr.wikipedia.org/wiki/Logiciel_libre}} +et téléchargeable gratuitement. Ce manuel a été réalisé avec la +distribution \TeX\ Live. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Votre premier document} + +Vous voilà au pied du mur. Dans ce chapitre, vous allez réaliser +votre premier document avec \LaTeX. Vous allez apprendre : + +\begin{itemize} + + \item à compiler un document ; + + \item à détecter et à corriger les erreurs qu'il peut contenir ; + + \item à le visualiser. + +\end{itemize} + +\section{L'édition} + +Éditez votre document au moyen de votre éditeur favori (Emacs, +\intercom{vi}...) et tapez ceci : + +\begin{exemple} +\documentclass[a4paper,11pt]{article} + +\usepackage[french]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{lmodern} +\usepackage{microtype} + +\usepackage{hyperref} + +\begin{document} + +Voici mon premier document avec \LaTeX. + +\end{document} +\end{exemple} + +Ne vous inquiétez pas si vous ne comprenez rien à cet exemple, il +sera expliqué dans le chapitre suivant. Néanmoins, prenez bien +garde à le recopier sans erreur. + +Enfin, sauvez ce fichier sous le nom \path{premier.tex} (les +documents \LaTeX\ ont, par convention, l'extension +\path{.tex}\index{tex@\path{.tex}}). + +\section{La compilation} + +La \terme{compilation} est la transformation du fichier que vous +venez de taper en un fichier PDF\index{PDF} directement +visualisable. + +Sur un système UNIX\footnote{Si vous utilisez un autre système +d'exploitation, veuillez vous référer à la documentation de votre +distribution \LaTeX\ pour savoir comment générer un fichier +PDF.}, la compilation s'effectue dans un interpréteur de +commandes au moyen de la commande \intercomindex{pdflatex} : + +\begin{exemple} +pdflatex premier.tex +\end{exemple} + +\LaTeX\ affiche ce qu'il fait au fur et à mesure (il est assez +bavard, aussi la partie centrale de son discours a été +volontairement supprimée) : + +\begin{exemple}[fontsize=\footnotesize] +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009 NetBSD/i386) +entering extended mode +(./premier.tex +LaTeX2e <2009/09/24> +[...] +Output written on premier.pdf (1 page, 42535 bytes). +Transcript written on premier.log. +\end{exemple} + +Si la compilation s'est correctement déroulée, les deux dernières +lignes seront, au nombre d'octets près, identiques à ce qui +figure ci-dessus. + +\section{Les fichiers générés} + +Lorsqu'il compile un document, \LaTeX\ génère un certain nombre de +fichiers : + +\begin{itemize} + +\item un fichier \path{.pdf}\index{pdf@\path{.pdf}}, qui est le + résultat de la compilation, c'est ce fichier PDF\index{PDF} + qui est directement visualisable ; + +\item un fichier \path{.aux}\index{aux@\path{.aux}}, contenant + les références croisées\index{références croisées} ; + +\item un fichier \path{.log}\index{log@\path{.log}}, contenant + une trace du processus de la compilation plus détaillée que + ce qui a été affiché à l'écran. + +\end{itemize} + +Ces fichiers ont le même nom de base que celui qui a été compilé. +Dans notre exemple, la compilation du fichier \path{premier.tex} +a donc généré les fichiers \path{premier.pdf}, \path{premier.aux} +et \path{premier.log}. + +L'extension \extensionindex{hyperref} (nous en reparlerons au +chapitre \ref{chapitre:concepts}) génère pour sa part un fichier +\path{.out}\index{out@\path{.out}} qui contient la table des +matières du document PDF (qui est affichée par la plupart des +logiciels de visualisation à gauche du document). + +Suivant la complexité de votre document, \LaTeX\ peut également +créer des fichiers : + +\begin{itemize} + +\item \path{.toc}\index{toc@\path{.toc}}, contenant la table des + matières (\anglais{table of contents}) ; + +\item \path{.lot}\index{lot@\path{.lot}}, contenant la liste des + tableaux (\anglais{list of tables}) ; + +\item \path{.lof}\index{lof@\path{.lof}}, contenant la liste des + figures (\anglais{list of figures}) ; + +\item \path{.idx}\index{idx@\path{.idx}}, contenant l'index non + formaté. + +\end{itemize} + +\section{La détection et la correction des erreurs} + +Si vous vous êtes trompé quelque part, un message de ce genre +s'affiche : + +\begin{exemple} +! Undefined control sequence. +l.10 Voici mon premier document avec \latex + . +? +\end{exemple} + +Lorsqu'il détecte une erreur, \LaTeX\ vous indique : + +\begin{itemize} + +\item la nature de cette erreur (\texttt{Undefined control + sequence}) ; + +\item la ligne où elle se situe (\texttt{l.10}, ligne 10) ; + +\item ainsi que l'endroit précis de cette erreur dans la ligne + (pour vous l'indiquer, \LaTeX\ passe à la ligne) : ici, + la commande inconnue est \commande{latex}. + +\end{itemize} + +Dans ce cas, tapez \taper{x} pour arrêter la compilation, +corrigez l'erreur dans le texte, sauvez-le, puis recompilez. + +\section{La visualisation} + +Sous UNIX, la façon la plus simple de visualiser un document PDF +est d'utiliser le logiciel \intercom{xpdf} mais on peut également +utiliser \intercom{gv} ou Acrobat Reader. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Les concepts de base de \LaTeX} +\label{chapitre:concepts} + +Avant de pouvoir utiliser pleinement \LaTeX\ et de profiter de sa +puissance, il faut comprendre certains concepts. Ce chapitre vous +expliquera l'exemple du chapitre précédent et vous initiera plus +profondément à la philosophie et à l'esprit de \LaTeX. + +\section{Le document \LaTeX} + +Un document \LaTeX\ est un mélange de texte et de commandes. +Reprenons l'exemple précédent : + +\begin{exemple} +\documentclass[a4paper,11pt]{article} + +\usepackage[french]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{lmodern} +\usepackage{microtype} + +\usepackage{hyperref} + +\begin{document} + +Voici mon premier document avec \LaTeX. + +\end{document} +\end{exemple} + +Comme vous l'avez vu auparavant, tout ceci imprime finalement le +texte : « Voici mon premier document avec \LaTeX », c'est-à-dire +une seule ligne sur les quatorze (en comptant les lignes +blanches) que comporte le fichier. Mais attention, le reste n'est +pas inutile, loin de là ! Ce sont les fameuses commandes. +Examinons la première : + +\begin{exemple} +\documentclass[a4paper,11pt]{article} +\end{exemple} + +Cette commande est indispensable et doit figurer en première +ligne de tout document \LaTeX. Elle définit la \emph{classe} du +document (ici \classe{article}) ainsi que les \emph{options} à +lui appliquer (ici \classeoption{a4paper} et +\classeoption{11pt}). + +\subsection{Syntaxe d'une commande \LaTeX} +\index{commande} + +On reconnaît ici la syntaxe générale d'une commande \LaTeX\ : + +\begin{syntaxe} +\commande{commande}\option{option}\argument{argument} +\end{syntaxe} + +\begin{itemize} + +\item une commande commence par une barre oblique inversée + \code{\textbackslash} ; + +\item celle-ci est suivie par le nom de la commande ; + +\item viennent ensuite, s'il y en a, les arguments optionnels, + entre crochets, séparés par des virgules s'il y en a + plusieurs ; + +\item puis les arguments obligatoires, entre accolades, séparés + par des virgules s'il y en a plusieurs. + +\end{itemize} + +Voici quelques exemples de commandes : + +\begin{itemize} + +\item commande sans argument : \\ + \commande{appendix} + +\item commande avec argument : \\ + \commande{chapter\{nom\}} + +\item commande avec argument optionnel : \\ + \commande{item[nom]} + +\item commande avec argument optionnel et argument + obligatoire : \\ + \commande{cite[page 843]\{the-latex-companion\}} + +\end{itemize} + +\subsection{La commande \commande{documentclass}} + +Revenons à la commande \commandeindex{documentclass} et à ses +arguments. + +\subsubsection{La classe d'un document} +\label{section:classe} + +La \terme{classe} est l'argument obligatoire de la commande +\commande{documentclass}. Elle définit le type du document et +influe sur sa mise en page et les commandes qu'il est possible +d'utiliser. Il existe plusieurs classes, les principales classes +standards étant : + +\begin{description} + +\item[\classeindex{article}] qui est utilisée pour les documents + courts (rapports de projet, de TP...) ; + +\item[\classeindex{report}] qui est utilisée pour les documents + plus longs qui doivent être découpés en chapitres (en effet, + la classe \classe{article} ne gère pas les chapitres) ; + +\item[\classeindex{book}] qui est utilisée pour les livres (il y + a peu de différences avec la classe \classe{report}) ; + +\item[\classeindex{letter}] qui permet d'écrire des lettres ; + +\item[\classeindex{slides}] qui permet de faire des transparents. + +\end{description} + +\subsubsection{Les options de classe} +\index{option de classe} + +Les \emph{options de classe}, qui sont les arguments optionnels +de la commande \commande{documentclass}, servent à modifier +globalement la mise en page du document. + +Expliquons quelque peu les options utilisées ici : + +\begin{description} + +\item[\classeoptionindex{a4paper}] permet de régler les + dimensions et les marges du document pour une impression sur + du papier au format A4 (cette option est indispensable, sinon + vous vous retrouverez avec des marges pour papier américain) ; + +\item[\classeoptionindex{11pt}] porte la taille des caractères à + onze points\footnote{Le point est une unité de mesure utilisée + en typographie. Un point vaut environ 1/72\ieme\ de pouce (1 + pouce valant 2,54 cm).} (il existe aussi une option + \classeoptionindex{12pt} ; la taille normale, sans option, est + de dix points ; il existe par cohérence une option + \classeoptionindex{10pt} qui ne fait rien). + +\end{description} + +Il existe d'autres options de classe. Parmi elles, citons : + +\begin{description} + +\item[\classeoptionindex{twocolumn}] qui permet de présenter le + document sur deux colonnes ; + +\item[\classeoptionindex{twoside}] qui permet de régler les + marges du document pour une impression en recto-verso (dans ce + cas, la marge intérieure (vers la reliure) est généralement + plus petite que la marge extérieure). + +\end{description} + +\subsection{Le préambule} + +Le \terme{préambule} est la partie du document comprise entre les +commandes \commande{documentclass} et +\commande{begin\{document\}}. Dans notre exemple, il contient les +commandes de chargement des extensions. + +\subsection{Les extensions} + +Une \termeanglais{extension}{package} sert à modifier la mise en +page ou à définir de nouvelles commandes. Ce sont les extensions +qui permettent d'ajouter de nouvelles fonctions à \LaTeX. Elles +sont chargées grâce à la commande \commandeindex{usepackage}, +utilisée dans le préambule du document. + +Expliquons les extensions utilisées dans l'exemple : + +\begin{description} + +\item[\extensionindex{babel},] utilisée avec l'option + \extensionoptionindex{french}, adapte \LaTeX\ aux conventions + typographiques et aux règles de coupure des mots françaises et + redéfinit quelques noms en bon français, comme par exemple + « Table des matières » ou « Chapitre » au lieu respectivement + de « \anglais{Contents} » et «~\anglais{Chapter} ». + +\item[\extensionindex{fontenc},] utilisée avec l'option + \extensionoptionindex{T1}, demande à \LaTeX\ d'utiliser le + codage de caractères T1 (c'est le nouveau standard \LaTeX\ + pour le codage des caractères mais il n'est pas encore utilisé + par défaut, d'où la nécessité d'utiliser cette extension). + +\item[\extensionindex{inputenc}] indique, grâce à l'option + \extensionoptionindex{utf8}, que le fichier est codé en + UTF-8\index{UTF-8} (il existe également une option + \extensionoptionindex{latin9} pour les fichiers codés en ISO + 8859-15\index{ISO 8859-15} et une option + \extensionoptionindex{latin1} pour les fichiers codés en ISO + 8859-1\index{ISO 8859-1}). Signalons également l'existence + d'une option \extensionoptionindex{utf8x}. Malheureusement non + maintenue depuis plusieurs années, elle peut néanmoins + toujours être + téléchargée\footnote{\url{http://www.unruh.de/DniQ/latex/unicode/}} + et permet d'utiliser un plus grand nombre de caractères UTF-8 + que l'option \extensionoption{utf8}. + +\item[\extensionindex{lmodern}] permet d'utiliser la police de + caractères Latin Modern, mieux adaptée à la génération de + fichiers PDF que la police par défaut (qui a par ailleurs + exactement le même dessin). Cette police de caractères a + vocation à devenir celle utilisée par défaut dans une future + version de \LaTeX. + +\item[\extensionindex{microtype}] apporte des raffinements + typographiques supplémentaires (en particulier l'ajustement de + l'espacement permettant une meilleure coupure des mots). + +\item[\extensionindex{hyperref}] permet de profiter des + possibilités de navigation au sein d'un document PDF sans rien + avoir à faire de spécial. Grâce à elle, les références + croisées, références bibliographiques, notes et URL présentes + dans le document deviendront des hyperliens menant vers + l'élément pointé. Une table des matières navigable + accompagnera également le document. + +\end{description} + +L'utilisation de ces extensions dans tous vos documents est +vivement conseillée. + +Par ailleurs, l'ordre dans lequel les extensions sont chargées +est généralement sans importance. Aussi est-il astucieux de les +charger dans l'ordre alphabétique (ce qui est fait dans l'exemple +de document) afin de pouvoir s'y retrouver rapidement lorsque de +nombreuses extensions sont utilisées. L'exception confirmant la +règle, l'extension \extensionindex{hyperref} doit toujours être +chargée en dernier parce qu'elle redéfinit des commandes +provenant d'autres extensions. C'est pourquoi, dans notre +exemple, elle figure en dernier et séparée des autres extensions +par une ligne blanche, afin de bien souligner son caractère +particulier. + +Il existe beaucoup d'autres extensions. Nous en verrons quelques +unes par la suite. + +\subsection{Le document} +\index{document@\environnement{document} (environnement)} + +Le document à proprement parler est contenu entre +\commande{begin\{document\}} et \commande{end\{document\}}. Tout +texte placé après \commande{end\{document\}} est ignoré. + +On remarque ici une structure très utilisée en \LaTeX\ : la +structure d'\emph{environnement} (voir le chapitre +\ref{chapitre:environnements} pour une description complète des +environnements de \LaTeX). + +\section{Structure du document} + +\subsection{Les paragraphes} +\index{paragraphe} + +Un document \LaTeX\ est composé de \emph{paragraphes} séparés les +uns des autres par une ou plusieurs lignes blanches : + +\begin{exemple} +Voici un paragraphe assez court. + +Ici commence un autre paragraphe. Comme vous le voyez, +les fins de ligne n'ont aucune importance sur le +formatage du paragraphe. Seules les lignes blanches +comptent. + +Enfin, le dernier paragraphe conclut cet exemple. +\end{exemple} + +Ce qui produit le résultat suivant : + +\begin{framed} +Voici un paragraphe assez court. + +Ici commence un autre paragraphe. Comme vous le voyez, +les fins de ligne n'ont aucune importance sur le +formatage du paragraphe. Seules les lignes blanches +comptent. + +Enfin, le dernier paragraphe conclut cet exemple. +\end{framed} + +\subsection{Les mots} +\index{mot} + +Un paragraphe est composé de \emph{mots} séparés par des signes +de ponctuation ou des espaces\index{espace} (un retour à la ligne +est considéré comme une espace). Vous pouvez insérer entre deux +mots autant d'espaces que vous voulez (mais une seule fera +parfaitement l'affaire). Ainsi, les deux textes suivants +produiront le même résultat : + +\begin{exemple} +Voici un exemple de texte, avec des espaces. +\end{exemple} + +\begin{exemple} +Voici un exemple + de texte, avec + des espaces. +\end{exemple} + +Comme un retour à la ligne est équivalent à une espace, +profitez-en pour couper vos paragraphes en fin de ligne. Tout bon +éditeur de texte est capable de faire cela automatiquement ainsi +que de reformater au propre un paragraphe dont les lignes ont des +longueurs disparates. En effet, avec un éditeur de texte, il est +plus facile de se déplacer avec les touches fléchées dans un +paragraphe composé de plusieurs lignes que dans un paragraphe qui +tient en une seule ligne et il est plus agréable de lire un texte +correctement présenté qu'une grande ligne dont certains mots +commencent au bord droit de la fenêtre pour se poursuivre au bord +gauche de la ligne suivante. + +\subsection{L'espace insécable : \code{\textasciitilde}} + +Dans certains cas, il faut empêcher \LaTeX\ de séparer deux mots en fin de +ligne, comme ici : + +\begin{resultat} +Vous souvenez-vous de la série télé dans laquelle le héros +porte le numéro 6 ? +\end{resultat} + +Le « 6 » seul en début de ligne est du plus mauvais effet. + +On aimerait pouvoir coller ce « 6 » au mot qui le précède pour +que \LaTeX\ ne les sépare jamais (c'est beau l'amour !). Ceci est +possible grâce au caractère +\code{\textasciitilde}\index{~@\code{\textasciitilde} (espace insécable)}. +Ce caractère représente une \terme{espace insécable}, qui est +considérée comme une espace (et donc apparaîtra comme tel à +l'impression), mais \LaTeX\ ne séparera jamais en fin de ligne +les deux mots qu'elle lie pour le meilleur et pour le pire : + +\begin{filecontents*}{\jobname.tmp} +Vous souvenez-vous de la série télé dans laquelle le héros +porte le numéro~6 ? +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +N'utilisez pas systématiquement l'espace insécable, cela nuit à +la lisibilité du source. Attendez d'avoir complètement fini la +rédaction de votre document pour y insérer éventuellement des +espaces insécables, au cas par cas. + +\subsection{Les commentaires} + +\LaTeX\ permet d'inclure des +\emph{commentaires}\index{commentaire} dans le texte. Ceux-ci ne +seront pas imprimés. Ils peuvent servir de points de repère à +l'auteur, lui rappeler qu'il n'a pas fini d'écrire un paragraphe, +etc. + +Un commentaire commence par un +\code{\%}\index{%@\code{\%} (commentaire)} et se termine à la fin +de la ligne : + +\begin{exemple} +Ceci est du texte normal. % ceci est un commentaire +Ceci est la suite du texte. +\end{exemple} + +\section{Caractères spéciaux utilisés par \LaTeX} + +Vous avez remarqué que certains caractères ont une signification +spéciale pour \LaTeX. Ainsi, le \code{\textbackslash} indique une +commande, le \code{\textasciitilde} une espace insécable et le +\code{\%} un commentaire. + +Il existe dix caractères réservés : + +\begin{exemple} +$ & % # _ { } ~ ^ \ +\end{exemple} +%stopzone +\index{$@\code{\$} (caractère réservé)} +%stopzone +\index{&@\code{\&} (caractère réservé)} +\index{%@\code{\%} (caractère réservé)} +\index{#@\code{\#} (caractère réservé)} +\index{_@\code{\_} (caractère réservé)} +%\index{{@\code{\{} (caractère réservé)} +%\index{}@\code{\}} (caractère réservé)} +\index{^@\code{\textasciicircum} (caractère réservé)} +\index{~@\code{\textasciitilde} (caractère réservé)} +\index{\@\code{\textbackslash} (caractère réservé)} + +Ceux-ci ne peuvent donc pas être imprimés tels quels. + +Pour les sept premiers, il existe une commande spéciale +consistant en un \code{\textbackslash} (puisque c'est une +commande) suivi du caractère en question : + +\begin{filecontents*}{\jobname.tmp} +\$ \& \% \# \_ \{ \} +\end{filecontents*} +\exempleresultat{\jobname.tmp} +\index{$@\commande{\$} (\$)} +%stopzone +\index{&@\commande{\&} (\&)} +\index{%@\commande{\%} (\%)} +\index{#@\commande{\#} (\#)} +\index{_@\commande{\_} (\_)} +%\index{{@\commande{\{} (\{)} +%\index{}@\commande{\}} (\})} + +Pour les trois autres, on peut utiliser les commandes +\commande{textasciitilde}\index{textasciitilde@\commande{textasciitilde} (\textasciitilde)}, +\commande{textasciicircum}\index{textasciicircum@\commande{textasciicircum} (\textasciicircum)} +et +\commande{textbackslash}\index{textbackslash@\commande{textbackslash} (\textbackslash)} : + +\begin{filecontents*}{\jobname.tmp} +\textasciitilde \textasciicircum \textbackslash +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Les problèmes de coupure des mots : \texttt{Overfull +\textbackslash hbox}} +\index{coupure des mots} +\index{Overfull hbox@\texttt{Overfull \textbackslash hbox}} + +Il arrive parfois que \LaTeX\ ne sache pas à quel endroit couper +un mot en fin de ligne. Et, plutôt que de le couper n'importe où, +il préfère ne rien faire. Dans ce cas, le mot en question dépasse +de la marge droite et \LaTeX\ génère l'avertissement suivant : + +\begin{exemple}[fontsize=\small] +Overfull \hbox (63.46103pt too wide) in paragraph at lines 99--99 +\end{exemple} + +L'avertissement \texttt{Overfull \textbackslash hbox} signifie +que quelque chose dépasse de la marge droite. \LaTeX\ signale de +combien le texte dépasse (\texttt{63.46103pt}, c'est précis) et à +quel endroit du fichier source se situe le problème +(\texttt{lines 99--99}). + +Rassurez-vous, cela n'arrive que très rarement. Dans ce cas, il +est possible de préciser à \LaTeX\ où il doit couper le mot. Pour +cela, repérez l'endroit approprié en visualisant le document PDF +et placez dans le texte la commande +\commande{-}@\index{-@\commande{-} (coupure des mots)} où vous +voulez que \LaTeX\ coupe le mot : + +\begin{exemple} +Je veux cou\-per ici. +\end{exemple} + +La commande \commande{-} agit sur le formatage du reste du +paragraphe, puisqu'une partie du mot va se retrouver sur la ligne +suivante et décaler la suite du texte. Il se peut donc que +d'autres avertissements de coupure des mots apparaissent ou +disparaissent. C'est pourquoi il est préférable de n'effectuer +vos coupures manuelles qu'après avoir terminé la rédaction de +votre document, une par une, en vérifiant à chaque fois le +résultat (on peut le faire visuellement avec le document PDF, +mais il suffit que le message \texttt{Overfull \textbackslash +hbox} ait disparu pour être sûr d'avoir bien effectué la césure). + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Les commandes de \LaTeX} + +Les \emph{commandes}\index{commande} sont fréquemment utilisées +avec \LaTeX. Que ce soit pour structurer le document, pour +produire certains caractères ne figurant pas sur le clavier, etc. + +\section{Syntaxe d'une commande} +\index{commande!syntaxe} + +Voici la syntaxe d'une commande \LaTeX\ : + +\begin{syntaxe} +\commande{commande}\option{option}\argument{argument} +\end{syntaxe} + +\begin{itemize} + +\item une commande commence par une barre oblique inversée + \codeindex{\textbackslash} ; + +\item celle-ci est suivie par le nom de la commande ; + +\item viennent ensuite, s'il y en a, les arguments optionnels, + entre crochets, séparés par des virgules s'il y en a + plusieurs ; + +\item puis les arguments obligatoires, entre accolades, séparés + par des virgules s'il y en a plusieurs. + +\end{itemize} + +Certaines commandes ont une +\emph{forme étoilée}\index{forme étoilée!commande}\index{commande!forme étoilée}, +qui est une variante de la commande. Pour obtenir la forme +étoilée d'une commande, il suffit de rajouter une étoile entre le +nom de la commande et ses arguments : + +\begin{syntaxe} +\commande{commande*}\option{option}\argument{argument} +\end{syntaxe} + +\section{La page de titre} +\index{page de titre} + +\LaTeX\ permet d'imprimer une page de titre en début de document +à partir d'informations contenues dans le préambule : + +\begin{description} + +\item[\commandeindex{title}\argument{titre}] indique le titre du + document. + +\item[\commandeindex{author}\argument{nom}] indique le nom de + l'auteur du document. S'il y a plusieurs auteurs, leurs noms + doivent être séparés par \commandeindex{and}. + +\item[\commandeindex{date}\argument{date}] indique la date du + document. + +\end{description} + +On peut utiliser \boiboiindex\ dans les arguments de ces +commandes pour forcer un passage à la ligne si nécessaire. + +Les commandes \commande{title} et \commande{author} sont +obligatoires. Si la commande \commande{date} n'est pas utilisée, +la date du jour de la compilation est indiquée automatiquement. + +Si l'on ne veut pas de la date, il suffit d'écrire : + +\begin{exemple} +\date{} +\end{exemple} + +Pour imprimer la page de titre, il faut appeler la commande +\commandeindex{maketitle} juste après le +\commande{begin\{document\}}. + +Voici un exemple de document avec une page de titre : + +\begin{exemple} +\documentclass[a4paper,11pt]{report} + +\usepackage[french]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{lmodern} +\usepackage{microtype} + +\usepackage{hyperref} + +\title{Ceci est le titre \\ et la suite} +\author{babafou \and babasse} +\date{26 février 1994} + +\begin{document} + +\maketitle + +[...] +\end{exemple} + +On peut annoter le titre, l'auteur ou la date grâce à la commande +\commandeindex{thanks}, qui insère une note de bas de page : + +\begin{exemple} +\title{Titre avec note\thanks{voici la note}} +\end{exemple} + +Pour les classes \classe{report} et \classe{book}, la page de +titre est imprimée seule au milieu d'une page alors que pour la +classe \classe{article}, elle est imprimée en haut de la première +page. Dans ce cas, pour avoir la page de titre toute seule, il +faut utiliser l'option de classe \classeoptionindex{titlepage}. + +Cette page de titre est, il est vrai, assez sobre. Néanmoins, il +est possible de personnaliser sa mise en page grâce à +l'environnement \environnement{titlepage} (voir le paragraphe +\ref{section:titlepage}). + +\section{Commandes de hiérarchisation du document} + +Hiérarchiser un document (l'organiser en parties, chapitres, +sections, sous-sections...) est l'une des choses les plus faciles +à faire avec \LaTeX. Pour cela, on utilise les commandes du +tableau \ref{tableau:hierarchisation}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{l@{\hspace{10mm}}l} +\toprule +\commandeindex{part}\argument{nom} & \commandeindex{subsection}\argument{nom} \\ +\commandeindex{chapter}\argument{nom} & \commandeindex{subsubsection}\argument{nom} \\ +\commandeindex{section}\argument{nom} & \\ +\bottomrule +\end{tabular} +\caption{Commandes de hiérarchisation} +\label{tableau:hierarchisation} +\end{table} + +La commande \commande{chapter} n'est pas disponible dans la +classe \classe{article}. C'est pourquoi on utilise les classes +\classe{report} ou \classe{book} lorsqu'on a besoin de faire des +chapitres et la classe \classe{article} sinon. + +Les commandes de hiérarchisation affichent un numéro, généré +automatiquement, suivi de leur argument dans un corps plus +important que celui du texte et fonction de leur niveau +hiérarchique (un titre de chapitre sera plus grand qu'un titre de +section). Ainsi, le titre de cette section a été obtenu ainsi : + +\begin{exemple} +\section{Commandes de hiérarchisation du document} +\end{exemple} + +Ce qui est très intéressant, c'est que c'est \LaTeX\ qui gère tout seul la +numérotation. On peut insérer des chapitres, des sections ou modifier leur +ordre sans se soucier du décalage des numéros. + +Avec la même simplicité, la commande +\commandeindex{tableofcontents}\index{table des matières} imprime +la table des matières. Il faut deux compilations successives pour +avoir une table des matières à jour. La première compilation +enregistre la table des matières dans un fichier +\path{.toc}\index{toc@\path{.toc}}\footnote{\path{.toc} pour +\anglais{table of contents}.} et la seconde l'inclut dans le +document. + +Il existe également une commande \commandeindex{listoftables}, +qui imprime la liste des tableaux et une commande +\commandeindex{listoffigures}, qui imprime la liste des figures +(voir le paragraphe \ref{section:table-figure}). Pour que ces +listes soient à jour, il faut aussi deux compilations successives +(mettant en jeu les fichiers +\path{.lot}\index{lot@\path{.lot}}\footnote{\path{.lot} pour +\anglais{list of tables}.} et +\path{.lof}\index{lof@\path{.lof}}\footnote{\path{.lof} pour +\anglais{list of figures}.}). + +\subsection{Forme étoilée} +\index{part*@\commande{part*}} +\index{chapter*@\commande{chapter*}} +\index{section*@\commande{section*}} +\index{subsection*@\commande{subsection*}} +\index{subsubsection*@\commande{subsubsection*}} + +Chaque commande de hiérarchisation a une forme étoilée qui ne +numérote pas son titre, ne modifie pas la numérotation des autres +titres de même niveau et ne produit pas d'entrée dans la table +des matières. Ces formes étoilées sont principalement utilisées à +la place des commandes normales dans les documents très courts et +dans les cas où la numérotation n'est pas nécessaire. + +Par exemple, le titre de l'avant-propos a été obtenu ainsi : + +\begin{exemple} +\chapter*{Avant-propos} +\end{exemple} + +On peut néanmoins faire apparaître le titre dans la table des +matières grâce à la commande : + +\begin{syntaxe} +\commandeindex{addcontentsline}\code{\{toc\}}\argument{niveau}\argument{titre} +\end{syntaxe} + +\noindent qui fera apparaître \var{titre} dans la table des +matières, au niveau \var{niveau} (qui peut être \code{part}, +\code{chapter}, \code{section}, \code{subsection} ou +\code{subsubsection}). Cette commande est à utiliser +immédiatement après la forme étoilée. Par exemple, pour inclure +l'avant-propos dans la table des matières, j'ai utilisé : + +\begin{exemple} +\chapter*{Avant-propos} +\addcontentsline{toc}{chapter}{Avant-propos} +\end{exemple} + +\subsection{Annexes} + +Enfin, la commande \commandeindex{appendix}\index{annexe} permet +de signaler à \LaTeX\ que les chapitres (pour les classes +\classe{report} et \classe{book}) ou les sections (pour la classe +\classe{article}) qui suivront doivent être considérées comme des +annexes. Les annexes sont numérotées A, B, etc. + +\section{Construire un document à partir de plusieurs fichiers} + +Un document volumineux, par exemple un livre comprenant de +nombreux chapitres, peut tout à fait être contenu dans un seul +fichier. Mais on peut également vouloir le construire à partir de +plusieurs fichiers. On peut pour cela utiliser un fichier par +chapitre et un fichier principal contenant la structure du +document ainsi que les commandes permettant d'inclure les +fichiers correspondant aux chapitres. + +La commande \commandeindex{include} permet d'inclure un fichier +dans un document. Son argument est le nom du fichier à inclure, +sans son extension \path{.tex} : + +\begin{syntaxe} +\commandeindex{include}\argument{fichier} +\end{syntaxe} + +Le fichier principal de notre livre peut donc ressembler à : + +\begin{exemple} +\documentclass[a4paper,11pt]{book} + +[...] + +\begin{document} + +\maketitle + +\include{introduction} +\include{these} +\include{antithese} +\include{synthese} +\include{conclusion} + +\end{document} +\end{exemple} + +Chacun des fichiers inclus contient un chapitre donc commence par +la commande \commande{chapter}, suivie du contenu du chapitre. + +La commande \commande{include} a une particularité, elle génère +une nouvelle page avant d'inclure le contenu du fichier et une +nouvelle page après. Ceci ne pose pas de problème si les fichiers +inclus correspondent à des chapitres puisque ceux-ci sont mis en +page de cette façon. En revanche, cela peut être gênant si le +document utilise par exemple la classe \classe{article} et que +les fichiers inclus correspondent à des sections. + +Dans ce cas, on utilise plutôt la commande +\commandeindex{input} : + +\begin{syntaxe} +\commandeindex{input}\argument{fichier} +\end{syntaxe} + +Comme la commande \commande{include}, la commande +\commande{input} permet d'inclure le fichier dont le nom lui est +passé en argument (avec ou sans son extension \path{.tex}) mais +ne génère pas de nouvelle page avant ou après d'inclure le +contenu du fichier. + +\section{Commandes d'annotation du document} + +On peut très facilement annoter un document en utilisant des +notes de bas de page ou des notes dans la marge. + +\subsection{Les notes de bas de page} +\index{note!note de bas de page} + +Une note de bas de page\footnote{Ceci est une note de bas de +page.} s'obtient très facilement grâce à la commande + +\begin{syntaxe} +\commandeindex{footnote}\argument{note} +\end{syntaxe} + +\begin{exemple} +Une note de bas de page\footnote{Ceci est une note de bas de +page.} s'obtient [...] +\end{exemple} + +\LaTeX\ s'occupe automatiquement de la numérotation. + +\subsection{Les notes dans la marge} +\index{note!note dans la marge} + +Une note dans la marge\marginpar{Ceci est une note dans la +marge.} s'obtient aussi facilement grâce à la commande : + +\begin{syntaxe} +\commandeindex{marginpar}\option{texte de gauche}\argument{texte de droite} +\end{syntaxe} + +\begin{exemple} +Une note dans la marge\marginpar{Ceci est une note dans la +marge.} s'obtient [...] +\end{exemple} + +Si la note est située dans la marge gauche et que l'argument +optionnel \var{texte de gauche} est précisé, celui-ci est +utilisé. Dans les autres cas, \var{texte de droite} est utilisé. + +\section{Les références croisées} +\label{section:references} +\index{références croisées} + +Avec \LaTeX, il est très facile de faire référence à un objet du +document (page, chapitre, tableau, équation...). + +La commande \commandeindex{label}\argument{nom} permet de placer +un repère, invisible à l'impression, sur l'objet du document +auquel on veut se référer. + +La commande \commandeindex{ref}\argument{nom} permet de faire +référence au numéro de l'objet repérée par \var{nom}. Bien +entendu, il doit s'agir de quelque chose de numéroté comme un +chapitre, un tableau, une équation... + +La commande \commandeindex{pageref}\argument{nom} permet de faire +référence au numéro de la page où se trouve le repère \var{nom}. + +Ainsi, un repère a été placé sur cette section de la façon +suivante : + +\begin{exemple} +\section{Les références croisées} +\label{section:references} +\end{exemple} + +On peut alors faire référence au numéro de ce paragraphe +(\ref{section:references}, n'est-ce pas ?) par la commande : + +\begin{exemple} +\ref{section:references} +\end{exemple} + +\begin{exemple} +On peut alors faire référence au numéro de ce paragraphe +(\ref{section:references}, n'est-ce pas ?) par la commande : +\end{exemple} + +\noindent et à la page où elle débute +(\pageref{section:references}, on dirait) par : + +\begin{exemple} +\pageref{section:references} +\end{exemple} + +\begin{exemple} +et à la page où elle débute (\pageref{section:references}, +on dirait) par : +\end{exemple} + +La séquence précédente a été réalisée sans trucages ! + +L'argument de la commande \commande{label} est une combinaison de +lettres (en ASCII, sans accents), de chiffres et de signes de +ponctuation. Il est pratique d'utiliser une chaîne de la forme +\Verb[commandchars=\\\{\}]+\var{\textrm{type}}:\var{\textrm{nom}}+ +où \var{type} représente le type de la chose référencée +(\code{chapitre} pour un chapitre, \code{section} pour une +section, \code{tableau} pour un tableau, \code{figure} pour une +figure, \code{equation} pour une équation...) afin de distinguer +tout de suite de quoi on parle et où \var{nom} fait directement +référence à l'objet repéré. Ainsi, le texte avec lequel cette +section est repérée est \verb+section:references+ parce que c'est +une section parlant des références croisées. C'est clair. + +\section{Caractères spéciaux} + +Certains symboles, certains caractères ne figurent pas sur les +claviers. Heureusement, \LaTeX\ met à votre disposition une série +de commandes permettant de les imprimer. + +\subsection{Symboles} + +\LaTeX\ définit des commandes permettant d'imprimer divers +symboles (voir le tableau \ref{tableau:symboles}) ainsi que des +symboles utilisés en français et dans des langues étrangères +(voir le tableau \ref{tableau:langues}). + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll*{2}{@{\hspace{15mm}}ll}} +\toprule +\dag & \commande{dag} +& +\S & \commande{S} +& +\copyright & \commande{copyright} +\\ +\ddag & \commande{ddag} +& +\P & \commande{P} +& +\pounds & \commande{pounds} +\\ +\bottomrule +\end{tabular} +\caption{Symboles divers} +\label{tableau:symboles} +\index{dag@\commande{dag} (\dag)} +\index{ddag@\commande{ddag} (\ddag)} +\index{S@\commande{S} (\S)} +\index{P@\commande{P} (\P)} +\index{copyright@\commande{copyright} (\copyright)} +\index{pounds@\commande{pounds} (\pounds)} +\end{table} + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll*{3}{@{\hspace{15mm}}ll}} +\toprule +\oe & \commande{oe} & \aa & \commande{aa} +& +\l & \commande{l} & ?` & \code{?{}`} +\\ +\OE & \commande{OE} & \AA & \commande{AA} +& +\L & \commande{L} & !` & \code{!{}`} +\\ +\ae & \commande{ae} & \o & \commande{o} +& +\ss & \commande{ss} & & +\\ +\AE & \commande{AE} & \O & \commande{O} +& + & & & +\\ +\bottomrule +\end{tabular} +\caption{Symboles pour le français et les langues étrangères} +\label{tableau:langues} +\index{oe@\commande{oe} (\oe)} +\index{OE@\commande{OE} (\OE)} +\index{ae@\commande{ae} (\ae)} +\index{AE@\commande{AE} (\AE)} +\index{aa@\commande{aa} (\aa)} +\index{AA@\commande{AA} (\AA)} +\index{o@\commande{o} (\o)} +\index{O@\commande{O} (\O)} +\index{l@\commande{l} (\l)} +\index{L@\commande{L} (\L)} +\index{ss@\commande{ss} (\ss)} +\index{?`@\code{?{}`} (?`)} +\index{"!`@\code{"!{}`} ("!`)} +\end{table} + +Pour utiliser les commandes des trois premières colonnes du +tableau \ref{tableau:langues} au sein d'un mot, il est nécessaire de +les entourer d'accolades afin d'éviter toute ambiguïté. En effet, +\code{c\textbackslash oeur} contient-il la commande \commande{oe}, +\commande{oeu} ou \commande{oeur} ? Ainsi, « c{\oe}ur » s'écrit +\code{c\{\textbackslash oe\}ur}. + +Notez que les deux commandes de la dernière colonne du tableau +\ref{tableau:langues} sont assez particulières puisqu'elles ne +commencent pas par un \code{\textbackslash}. + +Signalons aussi l'existence de la commande +\code{-{}-}\index{--@\code{-{}-} (--)} qui imprime un tiret +utilisé pour les intervalles de nombres (comme dans 93--94) et de +la commande \code{-{}-{}-}\index{---@\code{-{}-{}-} (---)} qui +imprime un tiret de ponctuation --- comme celui-ci. + +\LaTeX\ définit également trois commandes permettant d'imprimer +les logos \TeX\ (\commandeparindex{TeX}{\TeX}), \LaTeX\ +(\commandeparindex{LaTeX}{\LaTeX}) et \LaTeXe\ +(\commandeparindex{LaTeXe}{\LaTeXe}). + +Voyons donc ce que donne le texte suivant : + +\begin{filecontents*}{\jobname.tmp} +Essai des commandes \TeX et \LaTeX dans un texte. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Ce n'est pas exactement ce à quoi nous nous attendions, parce que +les mots « et » et « dans » sont collés aux logos qui les +précédent. En effet, \LaTeX\ ignore toute espace (une ou +plusieurs) suivant une commande sans argument (ce qui est le cas +des commandes \commande{TeX}, \commande{LaTeX} et +\commande{LaTeXe}). Il y a trois façons de corriger cela : + +\begin{itemize} + +\item utiliser la commande \verb*+\ +\index{ @\verb*+\ +} (barre + oblique inversée, espace) qui imprime une espace : + +\begin{exemple} +Essai des commandes \TeX\ et \LaTeX\ dans un texte. +\end{exemple} + +\item mettre un argument vide : + +\begin{exemple} +Essai des commandes \TeX{} et \LaTeX{} dans un texte. +\end{exemple} + +\item mettre la commande entre accolades (c'est ce qu'on appelle + des \emph{accolades de groupement}\index{accolades de groupement}) : + +\begin{exemple} +Essai des commandes {\TeX} et {\LaTeX} dans un texte. +\end{exemple} + +\end{itemize} + +Ces méthodes sont équivalentes (elles produisent exactement le +même résultat) mais la première est plus élégante et donne un +texte source plus facile à lire. + +Enfin, l'extension +\extensionindex{eurosym}\footnote{\url{http://www.theiling.de/eurosym.html.en}} +définit la commande \commandeparindex{euro}{\euro} qui affiche le +symbole \euro\ : + +\begin{filecontents*}{\jobname.tmp} +Ce livre vaut 10 \euro\ et celui-ci en vaut 15. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\noindent ainsi que la commande \commandeparindex{EUR}{\euro}, +qui fait suivre son argument d'une espace fine insécable (il est +donc assez pratique d'utiliser cette commande plutôt que de +rajouter des espaces insécables si nécessaire) puis du symbole +\euro\ : + +\begin{filecontents*}{\jobname.tmp} +Ce livre vaut \EUR{10} et celui-ci en vaut 15. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\subsection{Les lettres accentuées} +\index{accents} + +\LaTeX\ définit aussi des commandes permettant d'imprimer toutes +sortes de lettres accentuées (voir le tableau +\ref{tableau:accents}). + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll*{3}{@{\hspace{15mm}}ll}} +\toprule +\`{e} & \commande{`\{e\}} & \~{n} & \commande{\textasciitilde\{n\}} +& +\u{e} & \commande{u\{e\}} & \c{c} & \commande{c\{c\}} +\\ +\'{e} & \commande{'\{e\}} & \={e} & \commande{=\{e\}} +& +\v{e} & \commande{v\{e\}} & \d{e} & \commande{d\{e\}} +\\ +\^{e} & \commande{\textasciicircum\{e\}} & \.{e} & \commande{.\{e\}} +& +\H{e} & \commande{H\{e\}} & \b{e} & \commande{b\{e\}} +\\ +\"{e} & \commande{"\{e\}} & & +& +\t{ee} & \commande{t\{ee\}} & & +\\ +\bottomrule +\end{tabular} +\caption{Commandes d'accentuation} +\label{tableau:accents} +\index{`@\commande{`} (\`{e})} +\index{'@\commande{'} (\'{e})} +\index{^@\commande{\textasciicircum} (\^{e})} +\index{""@\commande{""} (\"{e})} +\index{~@\commande{\textasciitilde} (\~{n})} +\index{=@\commande{=} (\={e})} +\index{.@\commande{.} (\.{e})} +\index{u@\commande{u} (\u{e})} +\index{v@\commande{v} (\v{e})} +\index{H@\commande{H} (\H{e})} +\index{t@\commande{t} (\t{ee})} +\index{c@\commande{c} (\c{c})} +\index{d@\commande{d} (\d{e})} +\index{b@\commande{b} (\b{e})} +\end{table} + +Néanmoins, ces commandes sont d'un usage assez lourd. \LaTeX\ +permet donc d'utiliser, pour certaines d'entre elles, les formes +simplifiées présentées dans le tableau +\ref{tableau:accents-simples}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll@{\hspace{15mm}}ll} +\toprule +\`e & \commande{`e} & \~n & \commande{\textasciitilde n} +\\ +\'e & \commande{'e} & \=e & \commande{=e} +\\ +\^e & \commande{\textasciicircum e} & \.e & \commande{.e} +\\ +\"e & \commande{"e} & & +\\ +\bottomrule +\end{tabular} +\caption{Commandes simplifiées d'accentuation} +\label{tableau:accents-simples} +\index{`@\commande{`} (\`e)} +\index{'@\commande{'} (\'e)} +\index{^@\commande{\textasciicircum} (\^e)} +\index{""@\commande{""} (\"e)} +\index{~@\commande{\textasciitilde} (\~n)} +\index{=@\commande{=} (\=e)} +\index{.@\commande{.} (\.e)} +\end{table} + +Pour placer un accent sur un i ou un j, utilisez les commandes +\commandeparindex{i}{\i} (\i) ou \commandeparindex{j}{\j} (\j), +qui produisent des lettres sans point, en argument des commandes +du tableau \ref{tableau:accents}. + +Voici un exemple de texte en français utilisant des caractères +accentués : + +\begin{exemple} +Les caract\`eres accentu\'es sont tr\`es utilis\'es en +fran\c{c}ais. Il est donc absolument indispensable de +conna\^{\i}tre les commandes d'accentuation. +\end{exemple} + +Bien entendu, une saisie directe des caractères accentués est +amplement préférable, lorsqu'elle est possible : + +\begin{exemple} +Les caractères accentués sont très utilisés en +français. Il est donc absolument indispensable de +connaître les commandes d'accentuation, sauf quand +on peut taper les caractères accentués directement. +\end{exemple} + +\section{Commandes et déclarations de changement de style} +\label{section:style} + +\LaTeX\ permet de changer le style des caractères au moyen des +commandes figurant dans le tableau \ref{tableau:style-commandes}. +Le résultat des commandes de la première colonne est indiqué dans +celle du milieu. Ces commandes prennent leur nom (pour les deux +dernières lettres) de leur signification en anglais comme indiqué +dans la dernière colonne. + +\begin{table}[!htbp] +\centering +\begin{tabular}{lll} +\toprule +\multicolumn{1}{c}{\textbf{Commande}} & +\multicolumn{1}{c}{\textbf{Résultat}} & +\multicolumn{1}{c}{\textbf{Signification}} \\ +\midrule +\commande{textup\{droit\}} & \textup{droit} & \textup{upright} \\ +\commande{textit\{italique\}} & \textit{italique} & \textit{italic} \\ +\commande{textsl\{incliné\}} & \textsl{incliné} & \textsl{slanted} \\ +\commande{textsc\{petites capitales\}} & \textsc{petites capitales} & \textsc{small caps} \\ +\commande{textmd\{maigre\}} & \textmd{maigre} & \textmd{medium} \\ +\commande{textbf\{gras\}} & \textbf{gras} & \textbf{boldface} \\ +\commande{textrm\{romain\}} & \textrm{romain} & \textrm{roman} \\ +\commande{textsf\{linéal\}} & \textsf{linéal} & \textsf{sans serif} \\ +\commande{texttt\{machine à écrire\}} & \texttt{machine à écrire} & \texttt{typewriter} \\ +\bottomrule +\end{tabular} +\caption{Commandes de changement de style} +\label{tableau:style-commandes} +\index{textup@\commande{textup}} +\index{textit@\commande{textit}} +\index{textsl@\commande{textsl}} +\index{textsc@\commande{textsc}} +\index{textmd@\commande{textmd}} +\index{textbf@\commande{textbf}} +\index{textrm@\commande{textrm}} +\index{textsf@\commande{textsf}} +\index{texttt@\commande{texttt}} +\end{table} + +Ces commandes modifient uniquement le style de leur argument, le +texte qui suit n'est pas affecté : + +\begin{filecontents*}{\jobname.tmp} +Je mets le mot suivant en \textit{italique}. +Le reste du texte est normal. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Il est possible d'imbriquer les commandes de changement de style : + +\begin{filecontents*}{\jobname.tmp} +C'est bon le \textit{gloubi-\textbf{boulga}}. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Attention néanmoins à ne abuser des changements de style, qui +peuvent rapidement rendre le texte illisible : + +\begin{resultat} +Une \textsf{telle} \textsc{composition} \texttt{est dite} +\textit{lardée} ou \textbf{\textit{entre}\textsl{lardée}}. +\end{resultat} + +Il existe également des \emph{déclarations}\index{déclaration} +permettant d'effectuer les mêmes changements de style, comme +indiqué dans le tableau \ref{tableau:style-declarations}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll} +\toprule +\commande{textup} & \commande{upshape} \\ +\commande{textit} & \commande{itshape} \\ +\commande{textsl} & \commande{slshape} \\ +\commande{textsc} & \commande{scshape} \\ +\commande{textmd} & \commande{mdseries} \\ +\commande{textbf} & \commande{bfseries} \\ +\commande{textrm} & \commande{rmfamily} \\ +\commande{textsf} & \commande{sffamily} \\ +\commande{texttt} & \commande{ttfamily} \\ +\bottomrule +\end{tabular} +\caption{Correspondance entre commandes et déclarations de +changement de style} +\label{tableau:style-declarations} +\index{textup@\commande{textup}} +\index{textit@\commande{textit}} +\index{textsl@\commande{textsl}} +\index{textsc@\commande{textsc}} +\index{textmd@\commande{textmd}} +\index{textbf@\commande{textbf}} +\index{textrm@\commande{textrm}} +\index{textsf@\commande{textsf}} +\index{texttt@\commande{texttt}} +\index{upshape@\commande{upshape}} +\index{itshape@\commande{itshape}} +\index{slshape@\commande{slshape}} +\index{scshape@\commande{scshape}} +\index{mdseries@\commande{mdseries}} +\index{bfseries@\commande{bfseries}} +\index{rmfamily@\commande{rmfamily}} +\index{sffamily@\commande{sffamily}} +\index{ttfamily@\commande{ttfamily}} +\end{table} + +Une déclaration est une commande ne prenant pas d'argument et +agissent sur le texte qui la suit. + +Afin de limiter la portée d'une déclaration, il faut utiliser des +\emph{accolades de groupement}\index{accolades de groupement} : + +\begin{filecontents*}{\jobname.tmp} +Je mets le mot suivant en {\itshape italique}. +Le reste du texte est normal. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Comme pour les commandes, on peut aussi imbriquer les +déclarations de changement de style : + +\begin{filecontents*}{\jobname.tmp} +C'est bon le {\itshape gloubi-{\bfseries boulga}}. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Remarquez que toute espace suivant une déclaration est ignorée +(comme les espaces suivant les commandes \commande{TeX} et +\commande{LaTeX}). + +Il est recommandé, dans la mesure du possible, d'employer les +commandes de changement de style plutôt que les déclarations +équivalentes. + +Signalons aussi l'existence de la commande \commandeindex{emph}, +qui sert à mettre en valeur son argument : + +\begin{filecontents*}{\jobname.tmp} +Je mets \emph{cette expression} en valeur. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +On aborde ici l'un des aspects fondamentaux de la philosophie de +\LaTeX, la distinction entre la structure du document et son +rendu visuel. Comme vous pouvez le voir, la commande +\commande{emph} met son argument en valeur en l'affichant en +italique. Si ce manuel avait été imprimé sur une imprimante ne +disposant pas du style italique, l'argument de \commande{emph} +aurait été mis en valeur autrement. La commande \commande{emph} +décrit donc non pas la façon dont il faut voir le texte, mais +celle dont il faut le penser. Ce principe est la clé de voûte de +la philosophie de \LaTeX. + +Imaginez que vous ayez à écrire un livre sur la botanique et que, +dans ce livre, vous aimeriez que tous les noms latins des plantes +soient en italique. Rien de plus simple, il suffit de les mettre +en argument de \commande{textit}. Maintenant, alors que votre +livre est terminé, votre éditeur vous demande de mettre les noms +latins en gras plutôt qu'en italique, parce que cela correspond à +sa charte graphique. Il vous faut donc remplacer tous les +\commande{textit} par \commande{textbf} et encore, en faisant +attention, car vous avez très bien pu utiliser l'italique pour +autre chose que les noms latins. Bref, ce n'est pas très +pratique... + +\LaTeX, conformément à sa philosophie, offre une solution +élégante à ce problème. En effet, il est possible de définir ses +propres commandes (pour le détail, reportez-vous au paragraphe +\ref{section:newcommand}). Il vous suffit donc de définir une +commande \commande{latin} qui affichera son argument, en +l'occurence un nom latin, dans le style de votre choix. Si les +noms latins doivent être en gras, il suffit alors de modifier la +définition de la commande \commande{latin}, c'est tout. + +C'est pourquoi on n'utilise quasiment jamais les commandes de +changement de style directement dans un document \LaTeX. On +préfère plutôt définir un ensemble de commandes reflétant la +logique du texte et les utiliser à la place. Ainsi, pour écrire +ce manuel, des commandes spécifiques ont été définies : + +\begin{itemize} + +\item \commande{commande} permet d'écrire les noms de commandes en + style machine à écrire ; + +\item \commande{classe} permet d'écrire les noms de classe en + style linéal ; + +\item et ainsi de suite... + +\end{itemize} + +\section{Déclarations de changement de corps} + +\LaTeX\ dispose de déclarations (donc à utiliser avec des +accolades de groupement) permettant de modifier le +corps\index{corps} des caractères (voir le tableau +\ref{tableau:corps}). + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll@{\hspace{15mm}}ll} +\toprule +\commande{tiny} & \tiny corps +& +\commande{large} & \large corps +\\ +\commande{scriptsize} & \scriptsize corps +& +\commande{Large} & \Large corps +\\ +\commande{footnotesize} & \footnotesize corps +& +\commande{LARGE} & \LARGE corps +\\ +\commande{small} & \small corps +& +\commande{huge} & \huge corps +\\ +\commande{normalsize} & \normalsize corps +& +\commande{Huge} & \Huge corps +\\ +\bottomrule +\end{tabular} +\caption{Déclarations de changement de corps} +\label{tableau:corps} +\index{tiny@\commande{tiny}} +\index{scriptsize@\commande{scriptsize}} +\index{footnotesize@\commande{footnotesize}} +\index{small@\commande{small}} +\index{normalsize@\commande{normalsize}} +\index{large@\commande{large}} +\index{Large@\commande{Large}} +\index{LARGE@\commande{LARGE}} +\index{huge@\commande{huge}} +\index{Huge@\commande{Huge}} +\end{table} + +\begin{filecontents*}{\jobname.tmp} +Je mets les mots suivants {\Large en gros}. La suite +du texte est de taille normale. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Ces déclarations ne sont normalement pas utilisées dans le fil du +texte car le rendu visuel d'un changement de corps dans le texte +est désagréable. On les réserve plutôt à la personnalisation de +la page de titre ou à certains tableaux. + +\section{Commandes de mise en page} + +Quelques commandes plus ou moins utiles permettent de forcer la +main à \LaTeX\ pour la mise en page du document. + +La commande \commandeindex{newline} permet de forcer un saut de +ligne. La commande \boiboiindex\ est une abréviation pour +\commande{newline} que l'on utilise plus souvent\footnote{Nous +l'avons déjà rencontrée dans la section sur la page de titre.}. +N'abusez pas de \commande{\textbackslash}. En particulier, cette +commande ne sert pas à marquer la fin d'un paragraphe, une ligne +blanche suffit. + +La commande \commandeindex{newpage} permet de commencer une +nouvelle page. La commande \commandeindex{clearpage} est +équivalente mais elle force l'impression des tableaux et figures +flottants (voir le paragraphe \ref{section:table-figure}). + +Les commandes \commandeindex{bigskip}, \commandeindex{medskip} et +\commandeindex{smallskip} insèrent un espace vertical plus ou +moins grand. La taille de l'espace qu'elles génèrent est fonction +de la fonte utilisée. + +Les commandes \commandeindex{hspace}\argument{taille} et +\commandeindex{vspace}\argument{taille} insèrent un espace +(horizontal pour \commande{hspace} et vertical pour +\commande{vspace}) de taille \var{taille}. + +L'espace inséré par ces commandes est compressible, c'est-à-dire +que \LaTeX\ pourra insérer moins d'espace que demandé s'il le +juge nécessaire (souvent pour ses propres besoins de mise en +page). Les formes étoilées +\commandeindex{hspace*}\argument{taille} et +\commandeindex{vspace*}\argument{taille} insèrent un espace +incompressible, qui aura toujours la taille désirée. + +Les tailles peuvent être exprimées dans l'une des unités de +mesure indiquées dans le tableau \ref{tableau:unites}. + +\begin{table}[!htbp] +\centering +\begin{tabulary}{\textwidth}{|c|J|} +\hline +\code{mm} & millimètre \\ +\hline +\code{cm} & centimètre \\ +\hline +\code{em} & \code{1em} est égal à la largeur de la lettre « M » + dans la fonte courante \\ +\hline +\code{ex} & \code{1ex} est égal à la hauteur de la lettre « x » + dans la fonte courante \\ +\hline +\code{in} & pouce (\anglais{inch} en anglais), \code{1in} = \code{2.54cm} \\ +\hline +\code{pt} & point pica, \code{1in} = \code{72.27pt} \\ +\hline +\code{pc} & pica, \code{1pc} = \code{12pt} \\ +\hline +\end{tabulary} +\caption{Unités de mesure utilisées par \LaTeX} +\label{tableau:unites} +\index{mm@\code{mm} (unité de mesure)} +\index{cm@\code{cm} (unité de mesure)} +\index{em@\code{em} (unité de mesure)} +\index{ex@\code{ex} (unité de mesure)} +\index{in@\code{in} (unité de mesure)} +\index{pt@\code{pt} (unité de mesure)} +\index{pc@\code{pc} (unité de mesure)} +\end{table} + +La commande \commande{hspace} est rarement utilisée, +contrairement à la commande \commande{vspace} qui sert le plus +souvent à laisser un espace dans un texte ou dans une figure. + +\section{Définir de nouvelles commandes} +\label{section:newcommand} +\index{commande!définir une nouvelle commande} + +Il est possible de définir ses propres commandes grâce à la +commande \commandeindex{newcommand}: + +\begin{syntaxe} +\commande{newcommand}\argument{\textup{\code{\textbackslash}}nom}\option{nombre d'arguments}\argument{définition} +\end{syntaxe} + +Par la suite, toute occurence de \commande{nom} sera remplacée +par \var{définition}, avec substitution des éventuels arguments. + +Les définitions de commandes peuvent se trouver dans le préambule +(c'est là où on les place le plus souvent) ou dans le corps du +document. + +Prenons un exemple simple, sans arguments : + +\begin{exemple} +\newcommand{\ba}{babasse} +\end{exemple} + +\newcommand{\ba}{babasse} + +Il est maintenant possible d'utiliser la commande \commande{ba}, +qui imprimera donc « babasse » : + +\begin{filecontents*}{\jobname.tmp} +C'est chouette la \ba\ ! +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Néanmoins, il est bien plus fréquent de définir des commandes qui +prennent des arguments. Pour cela, on en précise le nombre dans +le paramètre \var{nombre d'arguments} de la commande +\commande{newcommand} et l'on y fait référence dans +\var{définition} en utilisant \code{\#1}\index{#1@\code{\#1}} +pour le premier argument, \code{\#2} pour le deuxième, etc. : + +\begin{exemple} +\newcommand{\latin}[1]{\textit{#1}} +\end{exemple} + +\newcommand{\latin}[1]{\textit{#1}} + +La commande \commande{latin} permet d'imprimer son argument en +italique (comme nous en avons discuté au paragraphe +\ref{section:style}) : + +\begin{filecontents*}{\jobname.tmp} +\latin{carpe diem} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Les environnements de \LaTeX} +\label{chapitre:environnements} + +Comme vu au chapitre précédent, les commandes aggissent +généralement sur des arguments de taille limitée, de quelques +mots à une phrase entière, tout au plus. Lorsqu'il s'agit de +traiter des données plus volumineuses, on utilise des +environnements. + +\section{Syntaxe d'un environnement} +\index{environnement!syntaxe} + +Un \terme{environnement} est une partie du document délimitée par +les commandes : + +\begin{syntaxe} +\commandeindex{begin}\argument{environnement} +\end{syntaxe} + +\noindent et : + +\begin{syntaxe} +\commandeindex{end}\argument{environnement} +\end{syntaxe} + +Tout comme les commandes, les environnements peuvent avoir des +options et des arguments, auquel cas la commande de début +d'environnement a la forme suivante : + +\begin{syntaxe} +\commande{begin}\argument{environnement}\option{option}\argument{argument} +\end{syntaxe} + +Comme les commandes, certains environnements ont une +\emph{forme étoilée}\index{forme étoilée!environnement}\index{environnement!forme étoilée}, +qui est une variante de l'environnement : + +\begin{syntaxe} +\commande{begin}\code{\{}\var{environnement}\code{*\}} +\ldots\ +\commande{end}\code{\{}\var{environnement}\code{*\}} +\end{syntaxe} + +Toute déclaration\index{déclaration} (changement de style ou de +corps) effectuée à l'intérieur d'un environnement ne se propage +pas à l'extérieur de cet environnement. Ainsi : + +\begin{filecontents*}{\jobname.tmp} +\begin{quote} +Je passe la suite du texte en \itshape italique. +Blabla... +\end{quote} + +Mais le texte est normal hors de l'environnement. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Vous utilisez déjà l'environnement \environnement{document}, nous +allons maintenant en découvrir d'autres. + +\section{L'environnement \environnement{em}} + +L'environnement \environnementindex{em} met son contenu dans le +même style que la commande \commande{emph}. Cela permet de mettre +en relief un ou plusieurs paragraphes : + +\begin{filecontents*}{\jobname.tmp} +\begin{em} +Le texte contenu dans cet environnement est mis en relief. +\end{em} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Les environnements \environnement{quote} et + \environnement{quotation}} + +Ces deux environnements ont un comportement voisin. Ils +augmentent tous deux les marges gauche et droite du texte qu'ils +contiennent. Leurs différences se situent au niveau de l'alinéa +et de l'espacement des paragraphes : + +\begin{itemize} + +\item l'environnement \environnementindex{quotation} met un + alinéa en début de paragraphe et espace les paragraphes + normalement ; + +\item l'environnement \environnementindex{quote} ne met pas + d'alinéa en début de paragraphe et espace les paragraphes + davantage. + +\end{itemize} + +Ainsi, + +\begin{exemple} +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. + +\begin{quotation} +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. + +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. +\end{quotation} + +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. +\end{exemple} + +\begin{framed} +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. + +\begin{quotation} +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. + +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. +\end{quotation} + +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. +\end{framed} + +Alors que : + +\begin{exemple} +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. + +\begin{quote} +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. + +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. +\end{quote} + +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. +\end{exemple} + +\begin{framed} +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. + +\begin{quote} +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. + +Voici un exemple de texte sur deux paragraphes, afin de +montrer le comportement des environnements de citation. +\end{quote} + +Ceci est un paragraphe de texte tout ce qu'il y a de plus +normal, en dehors d'un quelconque environnement. +\end{framed} + +\section{L'environnement \environnement{verse}} + +\LaTeX\ met l'environnement \environnementindex{verse} à la +disposition des poètes : + +\begin{itemize} + +\item les marges sont augmentées comme avec l'environnement + \environnement{quote} ; + +\item chaque vers doit être terminé par \boiboiindex\ pour passer + au vers suivant, sauf le dernier de chaque strophe ; + +\item les strophes sont séparées par des lignes blanches. + +\end{itemize} + +Si \LaTeX\ avait existé à l'époque de Baudelaire : + +\begin{filecontents*}{\jobname.tmp} +\begin{verse} +Souvent, pour s'amuser, les hommes d'équipage \\ +Prennent des albatros, vastes oiseaux des mers, \\ +Qui suivent, indolents compagnons de voyage, \\ +Le navire glissant sur les gouffres amers. + +À peine les ont-ils déposés sur les planches, \\ +Que ces rois de l'azur, maladroits et honteux, \\ +Laissent piteusement leurs grandes ailes blanches \\ +Comme des avirons traîner à côté d'eux. + +Ce voyageur ailé, comme il est gauche et veule ! \\ +Lui, naguère si beau, qu'il est comique et laid ! \\ +L'un agace son bec avec un brûle-gueule, \\ +L'autre mime, en boitant, l'infirme qui volait ! + +Le Poète est semblable au prince des nuées \\ +Qui hante la tempête et se rit de l'archer ; \\ +Exilé sur le sol au milieu des huées, \\ +Ses ailes de géant l'empêchent de marcher. +\end{verse} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Les environnements \environnement{center}, + \environnement{flushleft} et \environnement{flushright}} + +Les environnements \environnementindex{center}, +\environnementindex{flushleft} et \environnementindex{flushright} +permettent respectivement de centrer du texte ou de ne l'aligner +que d'un côté (par défaut, le texte est justifié). On peut forcer +un retour à la ligne grâce à la commande \boiboiindex. + +\begin{filecontents*}{\jobname.tmp} +\begin{center} +Voici un paragraphe centré. \LaTeX\ se débrouille tout +seul pour faire la mise en page et couper les lignes +où il faut. + +Voici deux lignes \\ +centrées. +\end{center} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\begin{filecontents*}{\jobname.tmp} +\begin{flushleft} +Voici un paragraphe aligné à gauche. \LaTeX\ se +débrouille tout seul pour faire la mise en page et +couper les lignes où il faut. + +Voici deux lignes \\ +alignées à gauche. +\end{flushleft} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\begin{filecontents*}{\jobname.tmp} +\begin{flushright} +Voici un paragraphe aligné à droite. \LaTeX\ se +débrouille tout seul pour faire la mise en page et +couper les lignes où il faut. + +Voici deux lignes \\ +alignées à droite. +\end{flushright} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{L'environnement \environnement{verbatim}} + +L'environnement \environnementindex{verbatim} est très simple : +il ne fait rien ! Il se contente de mettre son contenu en style +\texttt{machine à écrire}. Aucune interprétation des commandes et +des caractères spéciaux n'est faite à l'intérieur de cet +environnement. + +L'environnement \environnement{verbatim} est principalement +utilisé pour imprimer des programmes ou du code \LaTeX\ tel quel. + +\begin{filecontents*}{\jobname.tmp} +\begin{verbatim} +Il ne se passe rien dans l'environnement verbatim. +Les commandes \LaTeX\ et les caractères spéciaux +($&%#_{}~^\) ne sont pas interprétés. +\end{verbatim} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Les listes : \environnement{itemize}, + \environnement{enumerate} et + \environnement{description}} + +Les listes sont très souvent employés par les utilisateurs de +\LaTeX. Elles permettent : + +\begin{itemize} +\item de structurer ses idées ; +\item d'aérer le texte ; +\item d'améliorer sa lisibilité. +\end{itemize} + +La liste ci-dessus a été obtenue grâce à l'environnement +\environnementindex{itemize} ainsi : + +\begin{exemple} +\begin{itemize} + +\item de structurer ses idées ; + +\item d'aérer le texte ; + +\item d'améliorer sa lisibilité. + +\end{itemize} +\end{exemple} + +Chaque élément de la liste doit commencer par la commande +\commandeindex{item}, qui imprime un tiret. + +Les lignes blanches dans cet exemple (ainsi que dans ceux qui +suivent) ne sont pas obligatoires mais elles rendent le source +plus lisible en permettant de bien différencier les éléments, +surtout lorsqu'ils sont nombreux et longs. On peut également, si +on le souhaite, indenter les éléments pour mieux refléter la +structure de l'environnement. + +L'environnement \environnementindex{enumerate} s'utilise comme +l'environnement \environnement{itemize}, mais il numérote ses +éléments : + +\begin{filecontents*}{\jobname.tmp} +\begin{enumerate} + +\item premier élément ; + +\item deuxième élément ; + +\item troisième élément. + +\end{enumerate} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +L'environnement \environnementindex{description} permet de +choisir soi-même le texte figurant au début de chaque élément de +la liste au moyen de l'argument optionnel de la commande +\commandeindex{item} : + +\begin{filecontents*}{\jobname.tmp} +\begin{description} + +\item[itemize] pour faire des listes simples ; + +\item[enumerate] pour faire des listes numérotées ; + +\item[description] pour faire des listes dont chaque élément + débute par le texte de son choix. + +\end{description} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Remarquez que le texte de l'argument optionnel de \commande{item} +a été automatiquement mis en gras. + +On peut évidemment imbriquer les listes : + +\begin{filecontents*}{\jobname.tmp} +Il faut utiliser le plus possible les environnements +de liste car : + +\begin{enumerate} + +\item ils sont simples à utiliser ; + +\item ils rendent le document plus clair : + + \begin{itemize} + \item en l'aérant, + \item en facilitant sa lecture ; + \end{itemize} + + \item ils structurent les idées. + +\end{enumerate} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Un dernier mot sur les usages français en matière de listes : + +\begin{itemize} + +\item Pour les listes simples (dont les éléments ne comportent + qu'une phrase) chaque élément doit débuter par une + minuscule et se terminer par un point-virgule, sauf le + dernier, qui doit se terminer par un point. S'il y en a, + les éléments des sous-listes doivent se terminer par une + virgule, sauf le dernier qui doit se terminer par un + point-virgule (c'est le cas dans l'exemple précédent). + +\item Pour les listes dont un élément contient au moins deux + phrases, chaque élément doit débuter par une majuscule et + se terminer par un point. + +\end{itemize} + +\section{L'environnement \environnement{tabbing}} + +L'environnement \environnementindex{tabbing} permet d'aligner du +texte selon la position de \emph{tabulations}\index{tabulation} +préalablement positionnées. Son utilisation est assez bizarre et +peu pratique, aussi on lui préfère généralement l'environnement +\environnement{tabular} (voir le paragraphe +\ref{section:tabular}). + +Voici un exemple simple d'utilisation de l'environnement +\environnement{tabbing} : + +\begin{filecontents*}{\jobname.tmp} +\begin{tabbing} +Troisième ligne \= le plus long \= le plus long \kill +Première ligne \> court \> le plus long \\ +Deuxième ligne \> moins court \> court \\ +Troisième ligne \> le plus long \> moins court +\end{tabbing} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Tout ceci n'est pas très clair et mérite donc quelques +explications : + +\begin{itemize} + +\item chaque tabulation est mise en place grâce à la commande + \commande{=}\index{=@\commande{=} (environnement \environnement{tabbing})} ; + +\item on se place sur la prochaine tabulation grâce à la + commande + \commande{>}\index{>@\commande{>} (environnement \environnement{tabbing})} ; + +\item la commande \commandeindex{kill} permet de ne pas imprimer + la ligne sur laquelle elle se trouve ; + +\item chaque ligne (sauf la dernière et celles se terminant + par \commande{kill}) doit se terminer par \boiboiindex. + +\end{itemize} + +Dans notre exemple, on a placé les tabulations par rapport aux +éléments de chaque colonne qui semblent les plus longs (dans la +première ligne qui n'a pas été imprimée à cause de la commande +\commande{kill}). + +L'alignement vertical des commandes \commande{=} et \commande{>} +n'est pas nécessaire mais permet de se rapprocher de ce qui sera +imprimé au final et de mieux appréhender le positionnement des +tabulations. + +Par malchance, le mot « Deuxième », quand il est imprimé, est +légèrement plus long que le mot « Troisième », bien qu'il +comporte moins de lettres. Il en est de même pour « moins court » +et « plus long ». Le placement des tabulations n'est donc pas +aussi simple qu'on pourrait le penser et nécessite une +vérification systématique sur le document final. Il peut aussi +varier en fonction de la fonte utilisée. + +On peut redéfinir la position et le nombre des tabulations au +milieu de l'environnement, si nécessaire : + +\begin{filecontents*}{\jobname.tmp} +\begin{tabbing} +ça c'est long \= ça c'est long \= ça c'est long \\ +court \> court \> court \\ +ça c'est vraiment long \= moins long \\ +tout petit \> court +\end{tabbing} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Il existe d'autres commandes permettant de manipuler les +tabulations, mais qui présentent peu d'intérêt. Pour plus +d'informations sur l'environnement \environnement{tabbing}, +reportez vous à \cite[pages 60--62 et +201--203]{latex-a-document-preparation-system}. + +\section{Les tableaux : l'environnement \environnement{tabular}} +\label{section:tabular} +\index{tableau} + +L'environnement \environnementindex{tabular} est de loin +l'environnement le plus puissant de \LaTeX. Avec lui, il est +possible de réaliser tous les tableaux possibles et imaginables +(ou presque). + +Commençons par un exemple simple : + +\begin{filecontents*}{\jobname.tmp} +\begin{tabular}{lcr} +Sparc & SunOS & 4.1.4 \\ +HP & HP-UX & 10.20 \\ +PC & NetBSD & 1.2.1 +\end{tabular} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +On a donné à l'environnement \environnement{tabular} un argument +contenant trois lettres. Cela signifie que le tableau comporte +trois colonnes. Détaillons cet argument : + +\begin{description} + +\item[\code{l} (\anglais{left})]\index{l@\code{l} (environnement \environnement{tabular})} + indique que la première colonne sera alignée à gauche ; + +\item[\code{c} (\anglais{center})]\index{c@\code{c} (environnement \environnement{tabular})} + indique que la deuxième colonne sera centrée ; + +\item[\code{r} (\anglais{right})]\index{r@\code{r} (environnement \environnement{tabular})} + indique que la troisième colonne sera alignée à droite. + +\end{description} + +À l'intérieur de l'environnement \environnement{tabular}, les +lignes sont terminées par \boiboiindex\ (sauf la dernière) et les +colonnes sont séparées par +\code{\&}\index{&@\code{\&} (environnement \environnement{tabular}}. + +Remarquez que les \code{\&} sont placés les uns en dessous des +autres, pour améliorer la lisibilité du tableau dans le source. +De même les colonnes ont été alignées comme elles doivent être +imprimées. + +Voyons maintenant le même tableau en matérialisant les +séparations entres lignes et colonnes : + +\begin{filecontents*}{\jobname.tmp} +\begin{tabular}{|l|c|r|} +\hline +Sparc & SunOS & 4.1.4 \\ +\hline +HP & HP-UX & 10.20 \\ +\hline +PC & NetBSD & 1.2.1 \\ +\hline +\end{tabular} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\begin{itemize} + +\item les lignes verticales sont obtenues en plaçant des + \code{|}%\index{"|@\code{"|} (environnement \environnement{tabular})} + entre les lettres définissant l'alignement des colonnes + dans l'argument de l'environnement \environnement{tabular} + (ces lignes s'étendent sur toute la hauteur du tableau) ; + +\item les lignes horizontales sont obtenues par la commande + \commandeindex{hline}, placée entre chaque ligne du tableau + (sans \commande{\textbackslash} après). + +\end{itemize} + +Encore un tableau : + +\begin{filecontents*}{\jobname.tmp} +\begin{tabular}{|p{5cm}|*{2}{c|}} +\hline + & Contenance & Quantité \\ +\hline +\bfseries Blanche de Bruges & 33 cl & 10 \\ +\hline +\bfseries Guinness & 1 pint & 5 \\ +\hline +\bfseries Kronenbourg & 33 cl & 0 \\ +\hline +\end{tabular} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +On découvre deux nouveaux arguments de l'environnement +\environnement{tabular} : + +\begin{description} + +\item[\code{p}\argument{taille}]\index{p@\code{p} (environnement \environnement{tabular})} + qui déclare une colonne de taille \var{taille} (le contenu de + la colonne est aligné à gauche) ; + +\item[\code{*}\argument{nombre}\argument{format}]\index{*@\code{*} (environnement \environnement{tabular})} + qui est équivalent à \var{nombre} fois la déclaration + \var{format} (ici, \code{c|c|}), ce qui peut être utile pour + simplifier la définition du format des grands tableaux. + +\end{description} + +Vous remarquerez qu'on peut laisser une case vide et qu'une +déclaration de changement de style (ou de corps) dans une case +n'affecte pas les autres cases. + +Modifions quelque peu le tableau précédent : + +\begin{filecontents*}{\jobname.tmp} +\begin{tabular}{|p{5cm}|*{2}{c|}} +\cline{2-3} +\multicolumn{1}{c|}{} & \multicolumn{2}{c|}{Commande} \\ +\cline{2-3} +\multicolumn{1}{c|}{} & Contenance & Quantité \\ +\hline +\bfseries Blanche de Bruges & 33 cl & 10 \\ +\hline +\bfseries Guinness & 1 pint & 5 \\ +\hline +\bfseries Kronenbourg & 33 cl & 0 \\ +\hline +\end{tabular} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +La commande : + +\begin{syntaxe} +\commandeindex{cline}\code{\{}\var{i}\code{-}\var{j}\code{\}} +\end{syntaxe} + +\noindent trace une ligne horizontale entre les colonnes \var{i} +et \var{j} du tableau. + +Il est possible de modifier localement le format du tableau grâce +à la commande: + +\begin{syntaxe} +\commandeindex{multicolumn}\argument{nombre}\argument{format}\argument{texte} +\end{syntaxe} + +\noindent qui remplace \var{nombre} colonnes du tableau par +\var{texte} conformément à \var{format}. Cette commande est +généralement utilisée pour étendre un élément du tableau sur +plusieurs colonnes (c'est le cas pour la case « Commande »), pour +modifier l'alignement d'une case ou pour supprimer certains +filets verticaux (c'est le cas pour les deux cases vides de +gauche). + +Pour approfondir vos connaissances sur l'environnement +\environnement{tabular}, vous pouvez consulter +\cite[pages 62--63 et 204--207]{latex-a-document-preparation-system} +et \cite[chapitre 5]{the-latex-companion}. + +\section{Les environnements \environnement{table} et + \environnement{figure}} +\label{section:table-figure} +\index{tableau} +\index{figure} + +Les environnements \environnementindex{table} et +\environnementindex{figure} ne sont que des cadres, permettant de +faire \emph{flotter} (c'est-à-dire de déplacer si nécessaire pour +la mise en page) tableaux et figures, de leur donner un titre et +de les numéroter. + +Il est important de pouvoir faire flotter les tableaux et les +figures car \LaTeX\ ne les coupe jamais en bas de page et il est +donc possible que l'un d'eux dépasse de la marge inférieure de la +page où il se trouve, voire de la page elle-même, ce qui n'est +pas du meilleur effet. + +Voici un exemple type d'utilisation de l'environnement +\environnement{table} (l'environnement \environnement{figure} +s'utilise exactement de la même façon) : + +\begin{exemple} +\begin{table}[!htbp] +\centering +\begin{tabular}{|l|l|} +\hline +table & figure \\ +\hline +tableaux & dessins \\ +\hline +\end{tabular} +\caption{Exemple d'environnement \environnement{table}} +\label{tableau:exemple} +\end{table} +\end{exemple} + +\begin{table}[!htbp] +\centering +\begin{tabular}{|l|l|} +\hline +table & figure \\ +\hline +tableaux & dessins \\ +\hline +\end{tabular} +\caption{Exemple d'environnement \environnement{table}} +\label{tableau:exemple} +\end{table} + +Les arguments optionnels de l'environnement \environnement{table} +sont importants et déterminent l'ordre de préférence du placement +du tableau : + +\begin{description} + +\item[\code{!}]\index{"!@\code{"!} (environnements \environnement{table} et \environnement{figure})} + demande à \LaTeX\ de faire tout son possible pour respecter + l'ordre indiqué ensuite ; + +\item[\code{h} (\anglais{here})]\index{h@\code{h} (environnements \environnement{table} et \environnement{figure})} + ici, si possible ; + +\item[\code{t} (\anglais{top})]\index{t@\code{t} (environnements \environnement{table} et \environnement{figure})} + en haut d'une page (celle-ci ou la suivante) ; + +\item[\code{b} (\anglais{bottom})]\index{b@\code{b} (environnements \environnement{table} et \environnement{figure})} + en bas d'une page (celle-ci ou la suivante) ; + +\item[\code{p} (\anglais{page of floats})]\index{p@\code{p} (environnements \environnement{table} et \environnement{figure})} + sur une page spéciale ne contenant pas de texte mais + uniquement des tableaux et des figures. + +\end{description} + +L'ordre de préférence par défaut est \code{[tbp]}, c'est pourquoi +il est préférable de préciser \code{[!htbp]} si l'on veut que le +tableau soit placé, dans la mesure du possible, conformément à sa +position dans le document. + +La commande \commandeindex{centering} a été utilisée pour centrer +le tableau. Elle est préférable à l'environnement +\environnement{center} dans ce cas parce que celui-ci introduit +une marge trop importante entre le tableau et sa légende. + +Par ailleurs : + +\begin{itemize} + +\item la commande \commandeindex{caption} permet de donner une + légende au tableau ou à la figure ; + +\item la commande \commandeindex{label}, qui doit obligatoirement + être placée après la commande \commande{caption}, permet de + lui faire référence grâce aux commandes \commandeindex{ref} + ou \commandeindex{pageref}. + +\end{itemize} + +Enfin, vous pouvez faire figurer dans votre document la liste des +tableaux au moyen de la commande \commandeindex{listoftables} et +la liste des figures au moyen de la commande +\commandeindex{listoffigures}. Pour que ces listes soient à jour, +il faut effectuer deux compilations successives (mettant en jeu +les fichiers +\path{.lot}\index{lot@\path{.lot}}\footnote{\path{.lot} pour +\anglais{list of tables}.} et +\path{.lof}\index{lof@\path{.lof}}\footnote{\path{.lof} pour +\anglais{list of figures}.}). + +\section{Personnaliser la page de titre : l'environnement + \environnementindex{titlepage}} +\label{section:titlepage} +\index{page de titre} + +La commande \commandeindex{maketitle} génère une page de titre +plutôt minimale. Il est regrettable qu'un logiciel de la qualité +de \LaTeX\ doive se contenter de pages de titre aussi sobres. + +Heureusement, il est possible de personnaliser la page de titre +grâce à l'environnement \environnement{titlepage}. À l'intérieur +de cet environnement, vous êtes totalement maître de la mise en +page. Généralement, on y utilise : + +\begin{itemize} + +\item l'environnement \environnement{center}, pour centrer le + texte ; + +\item les commandes de changement de taille + (\commande{large}, etc.), pour obtenir un gros titre ; + +\item les commandes d'espacement \commande{vspace} et + \commande{hspace} pour aérer le texte ; + +\item la commande \commande{includegraphics} (voir le paragraphe + \ref{section:includegraphics}) pour inclure une image. + +\end{itemize} + +Seule contrainte, l'environnement \environnement{titlepage} doit +se trouver juste après la commande \commande{begin\{document\}}. + +De nombreux exemples de pages de titre figurent dans +\cite{some-examples-of-title-pages}. + +\section{Définir de nouveaux environnements} +\index{environnement!définir un nouvel environnement} + +Il est possible de définir ses propres environnements grâce à la +commande \commandeindex{newenvironment} : + +\begin{syntaxe} +\commande{newenvironment}\argument{nom}\option{nombre d'arguments}\argument{définition de début}\argument{définition de fin} +\end{syntaxe} + +Les définitions d'environnements peuvent se trouver dans le +préambule (c'est là où on les place le plus souvent) ou dans le +corps du document. + +Lorsque \LaTeX\ rencontrera \commande{begin\{nom\}}, il le +remplacera par \var{définition de début} et lorsqu'il rencontrera +\commande{end\{nom\}}, il le remplacera par \var{définition de +fin} : + +\begin{exemple} +\newenvironment{italitemize} +{\begin{itemize} \itshape} +{\end{itemize}} +\end{exemple} + +\newenvironment{italitemize} +{\begin{itemize} \itshape} +{\end{itemize}} + +Ici, la définition du nouvel environnement a été répartie sur +trois lignes pour la rendre plus lisible. Il s'utilise ensuite +ainsi : + +\begin{filecontents*}{\jobname.tmp} +\begin{italitemize} + +\item mais oui, + +\item ça marche ! + +\end{italitemize} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Généralement, les nouveaux environnements sont créés à partir +d'environnements existants (c'est le cas ici). + +Il est possible de créer des environnements qui prennent des +arguments. Pour cela, on en précise le nombre dans le paramètre +\var{nombre d'arguments} de la commande +\commande{newenvironnement} et l'on y fait référence dans +\var{définition de début} en utilisant +\code{\#1}\index{#1@\code{\#1}} pour le premier argument, +\code{\#2} pour le deuxième, etc. : + +\begin{filecontents*}{\jobname.tmp} +\newenvironment{tab}[1] +{\begin{tabular}{|#1|}\hline} +{\hline\end{tabular}} + +\begin{tab}{cc} + essai & de \\ +l'environnement & tab \\ +\end{tab} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{\LaTeX\ mathématique} +\label{chapitre:mathematique} + +L'un des atouts de \LaTeX\ est certainement la facilité avec +laquelle il permet de réaliser les textes scientifiques les plus +complexes. Son mode mathématique standard convient à la plupart +des besoins. Pour aller plus loin, il peut s'avérer nécessaire +d'utiliser des extensions spécialisées, en particulier +l'extension \extensionindex{amsmath} (voir +\cite[chapitre 8]{the-latex-companion}). Il existe également de +nombreuses extensions pour représenter des molécules, des +diagrammes utilisés en physique des particules, des circuits +électriques, etc. (voir +\cite[chapitre 8]{the-latex-graphics-companion}). + +Les règles typographiques d'écriture des mathématiques sont, pour +la plupart, respectées automatiquement par \LaTeX. Il n'est +cependant pas inutile de se reporter à +\cite[pages 107 à 116]{lexique-des-regles-typographiques} pour en +prendre connaissance. Les règles qui demandent une attention +particulière seront indiquées au paragraphe +\ref{section:math-typo}. + +\section{Les modes mathématiques} + +\LaTeX\ fournit un très grand nombre de symboles d'opérateurs et +de relations et sait comment les disposer. Mais il faut pouvoir +lui indiquer que l'on va composer une formule mathématique. Pour +cela, \LaTeX\ dispose de deux modes mathématiques : + +\begin{itemize} + +\item l'un est utilisé pour les formules devant apparaître dans + le corps du texte, on y rentre grâce à l'environnement + \environnementindex{math} ; + +\item l'autre est utilisé pour les formules que l'on désire voir + apparaître seules sur une ligne, on y rentre grâce à + l'environnement \environnementindex{displaymath}. + +\end{itemize} + +\subsection{L'environnement \environnement{math}} + +L'environnement \environnementindex{math} permet de composer des +formules mathématiques dans le corps du texte : + +\begin{filecontents*}{\jobname.tmp} +Considérons l'équation \begin{math} x + y + z = n \end{math}. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Si vous faites grand usage de formules mathématiques, la +structure d'environnement s'avère lourde et diminue la lisibilité +du texte source. C'est pourquoi il existe deux formes plus +simples, +\commande{(}\index{(@\commande{(} (environnement \environnement{math})} +\ldots\ +\commande{)}\index{)@\commande{)} (environnement \environnement{math})} +et +\code{\$}\index{$@\code{\$} (environnement \environnement{math})} +\ldots\ +\code{\$}. +L'exemple précédent peut donc s'écrire plus simplement : +%stopzone + +\begin{exemple} +Considérons l'équation \( x + y + z = n \). +\end{exemple} + +\noindent ou : + +\begin{exemple} +Considérons l'équation $ x + y + z = n $. +\end{exemple} + +On utilise généralement la forme \code{\$} \ldots\ \code{\$}, qui +est la plus simple. + +Remarquez que l'espacement n'a aucune importance en mode +mathématique. Ainsi, \code{\$ x + y + z = n \$} produira le même +résultat que \code{\$x+y+z=n\$}. + +\subsection{L'environnement \environnement{displaymath}} + +L'environnement \environnementindex{displaymath} permet de +composer des formules mathématiques seules sur une ligne : + +\begin{filecontents*}{\jobname.tmp} +Ce qui conduit à : + +\begin{displaymath} +x + y + z = n +\end{displaymath} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Comme pour l'environnement \environnement{math}, il existe une +forme plus simple, +\commande{[}\index{[@\commande{[} (environnement \environnement{displaymath})} +\ldots\ +\commande{]}\index{]@\commande{]} (environnement \environnement{displaymath})}. +On aurait donc pu écrire : + +\begin{exemple} +Ce qui conduit à : + +\[ +x + y + z = n +\] +\end{exemple} + +\begin{attention} +ne laissez surtout pas de ligne blanche à l'intérieur de +l'environnement \environnement{displaymath}, cela provoquerait +une erreur. +\end{attention} + +Par défaut, l'environnement \environnement{displaymath} centre +les formules. Si vous préférez qu'elles soient alignées à gauche, +vous pouvez utiliser l'option de classe +\classeoptionindex{fleqn}. + +\section{Structures couramment utilisées en mathématiques} + +\subsection{Indices et exposants} +\index{indice} +\index{exposant} + +En mathématiques, on rencontre les indices et les exposants un +peu partout. + +Un indice s'obtient grâce au caractère +\code{\_}\index{_@\code{\_} (indice)} et un exposant s'obtient +grâce à +\code{\textasciicircum}\index{^@\code{\textasciicircum} (exposant)} : + +\begin{filecontents*}{\jobname.tmp} +$ x^2 + y^2 = 1 $, $ x_1 = x_2 $, $ x_1^2 = x^2_1 $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Si l'indice ou l'exposant contient plus d'un caractère, il faut +utiliser des accolades de +groupement\index{accolades de groupement} : + +\begin{filecontents*}{\jobname.tmp} +$ x^{2y} = z $, $ a_{ij} = 0 $, $ x^{y^z} = a $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +De même, on peut utiliser des accolades pour indiquer ce à quoi +s'applique l'indice ou l'exposant : + +\begin{filecontents*}{\jobname.tmp} +Voyez-vous une différence entre $ (x^2 + y^2)^n $ et +$ {(x^2 + y^2)}^n $ ? +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Dans le premier cas, l'exposant s'applique simplement au +caractère qui le précède (la parenthèse), il est donc à la même +hauteur que les carrés. Mais dans le second cas, à cause des +accolades, l'exposant $n$ s'applique à toute l'expression +$(x^2 + y^2)$ et est donc placé un peu plus haut, puisque cette +expression comporte déjà un niveau d'exposant. Il n'y a pas +vraiment de différence mathématique entre les deux formes mais la +seconde est typographiquement plus précise. + +\subsection{Texte à l'intérieur d'une formule} + +Il peut être utile de mettre quelques mots dans une formule. Mais +pour cela il faut ramener \LaTeX\ du mode mathématique au mode +texte. Ceci est possible grâce à la commande +\commandeindex{mbox} : + +\begin{filecontents*}{\jobname.tmp} +\[ +f(x) > 1 \mbox{ si } x < 3 +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Remarquez les espaces autour du « si » dans la commande +\commande{mbox}. Ils sont nécessaires parce que l'espacement +mathématique de \LaTeX\ n'a rien à voir avec son espacement en +mode texte. Si l'on avait omis ces espaces, le résultat aurait +été le suivant : + +\begin{filecontents*}{\jobname.tmp} +\[ +f(x) > 1 \mbox{si} x < 3 +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Bien entendu, la commande \commande{mbox} est inutile avec +l'environnement \environnement{math} : + +\begin{filecontents*}{\jobname.tmp} +Et donc $ f(x) > 1 $ si $ x < 3 $. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Lettres, symboles et accents} + +Il est souvent fait usage, dans les formules mathématiques, de +lettres grecques, de divers symboles ou d'accents. \LaTeX\ +dispose de nombreuses commandes permettant de les imprimer. + +L'utilisation de certains symboles nécessite le chargement de +l'extension \extensionindex{latexsym}. Il sera indiqué par la +suite où cette extension est nécessaire. + +\subsection{Lettres grecques} +\index{grec} + +Les commandes permettant d'obtenir les lettres grecques sont +présentées dans le tableau \ref{tableau:grec}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{6mm}}>{$}l<{$}l}} +\toprule +\multicolumn{8}{c}{Minuscules} \\ +\midrule +\alpha & \commande{alpha} & \theta & \commande{theta} & \pi & \commande{pi} & \phi & \commande{phi} \\ +\beta & \commande{beta} & \vartheta & \commande{vartheta} & \varpi & \commande{varpi} & \varphi & \commande{varphi} \\ +\gamma & \commande{gamma} & \iota & \commande{iota} & \rho & \commande{rho} & \chi & \commande{chi} \\ +\delta & \commande{delta} & \kappa & \commande{kappa} & \varrho & \commande{varrho} & \psi & \commande{psi} \\ +\epsilon & \commande{epsilon} & \lambda & \commande{lambda} & \sigma & \commande{sigma} & \omega & \commande{omega} \\ +\varepsilon & \commande{varepsilon} & \mu & \commande{mu} & \varsigma & \commande{varsigma} & & \\ +\zeta & \commande{zeta} & \nu & \commande{nu} & \tau & \commande{tau} & & \\ +\eta & \commande{eta} & \xi & \commande{xi} & \upsilon & \commande{upsilon} & & \\ +\bottomrule +\multicolumn{8}{c}{ } \\ +\toprule +\multicolumn{8}{c}{Majuscules} \\ +\midrule +\Gamma & \commande{Gamma} & \Lambda & \commande{Lambda} & \Sigma & \commande{Sigma} & \Psi & \commande{Psi} \\ +\Delta & \commande{Delta} & \Xi & \commande{Xi} & \Upsilon & \commande{Upsilon} & \Omega & \commande{Omega} \\ +\Theta & \commande{Theta} & \Pi & \commande{Pi} & \Phi & \commande{Phi} & & \\ +\bottomrule +\end{tabular} +\caption{Lettres grecques} +\label{tableau:grec} +\index{alpha@\commande{alpha} ($\alpha$)} +\index{beta@\commande{beta} ($\beta$)} +\index{gamma@\commande{gamma} ($\gamma$)} +\index{delta@\commande{delta} ($\delta$)} +\index{epsilon@\commande{epsilon} ($\epsilon$)} +\index{varepsilon@\commande{varepsilon} ($\varepsilon$)} +\index{zeta@\commande{zeta} ($\zeta$)} +\index{eta@\commande{eta} ($\eta$)} +\index{theta@\commande{theta} ($\theta$)} +\index{vartheta@\commande{vartheta} ($\vartheta$)} +\index{iota@\commande{iota} ($\iota$)} +\index{kappa@\commande{kappa} ($\kappa$)} +\index{lamdba@\commande{lambda} ($\lambda$)} +\index{mu@\commande{mu} ($\mu$)} +\index{nu@\commande{nu} ($\nu$)} +\index{xi@\commande{xi} ($\xi$)} +\index{pi@\commande{pi} ($\pi$)} +\index{varpi@\commande{varpi} ($\varpi$)} +\index{rho@\commande{rho} ($\rho$)} +\index{varrho@\commande{varrho} ($\varrho$)} +\index{sigma@\commande{sigma} ($\sigma$)} +\index{varsigma@\commande{varsigma} ($\varsigma$)} +\index{tau@\commande{tau} ($\tau$)} +\index{upsilon@\commande{upsilon} ($\upsilon$)} +\index{phi@\commande{phi} ($\phi$)} +\index{varphi@\commande{varphi} ($\varphi$)} +\index{chi@\commande{chi} ($\chi$)} +\index{psi@\commande{psi} ($\psi$)} +\index{omega@\commande{omega} ($\omega$)} +\index{Gamma@\commande{Gamma} ($\Gamma$)} +\index{Delta@\commande{Delta} ($\Delta$)} +\index{Theta@\commande{Theta} ($\Theta$)} +\index{Lambda@\commande{Lambda} ($\Lambda$)} +\index{Xi@\commande{Xi} ($\Xi$)} +\index{Pi@\commande{Pi} ($\Pi$)} +\index{Sigma@\commande{Sigma} ($\Sigma$)} +\index{Upsilon@\commande{Upsilon} ($\Upsilon$)} +\index{Phi@\commande{Phi} ($\Phi$)} +\index{Psi@\commande{Psi} ($\Psi$)} +\index{Omega@\commande{Omega} ($\Omega$)} +\end{table} + +Les lettres grecques minuscules sont obtenues par un +\code{\textbackslash} suivi du nom de la lettre. Pour les +majuscules, il suffit de mettre la première lettre du nom en +majuscule. + +Il n'existe pas de commandes permettant d'obtenir les lettres +grecques majuscules qui ont une graphie identique dans notre +alphabet. Par exemple, pour obtenir un alpha majuscule, utilisez +simplement \code{\$A\$}. + +Pour la même raison, il n'existe pas de commandes permettant +d'obtenir la lettre omicron\index{omicron@omicron ($o$, $O$)}, il +suffit d'utiliser \code{\$o\$} ou \code{\$O\$}. + +Pour certaines lettres minuscules, il existe une deuxième forme +dont la commande commence par \code{var}. En particulier, +\commande{varepsilon} et \commande{varphi} sont à préférer à +\commande{epsilon} et \commande{phi}. + +Notez que ces commandes (ainsi que toutes celles qui sont +présentées dans ce chapitre) ne sont disponibles qu'en mode +mathématique : + +\begin{filecontents*}{\jobname.tmp} +$\pi$ vaut approximativement 3,1416. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\subsection{Symboles d'opérateurs binaires} +\index{symboles mathématiques!opérateurs binaires} + +Les commandes présentées dans le tableau \ref{tableau:operateurs} +permettent d'obtenir des symboles d'opérateurs binaires. + +\begin{table}[!htbp] +\centering +\begin{threeparttable} +\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{3mm}}>{$}l<{$}l}} +\toprule +\pm & \commande{pm} & \cap & \commande{cap} & \diamond & \commande{diamond} & \oplus & \commande{oplus} \\ +\mp & \commande{mp} & \cup & \commande{cup} & \bigtriangleup & \commande{bigtriangleup} & \ominus & \commande{ominus} \\ +\times & \commande{times} & \uplus & \commande{uplus} & \bigtriangledown & \commande{bigtriangledown} & \otimes & \commande{otimes} \\ +\div & \commande{div} & \sqcap & \commande{sqcap} & \triangleleft & \commande{triangleleft} & \oslash & \commande{oslash} \\ +\ast & \commande{ast} & \sqcup & \commande{sqcup} & \triangleright & \commande{triangleright} & \odot & \commande{odot} \\ +\star & \commande{star} & \vee & \commande{vee} & \lhd & \commande{lhd} \tnote{a} & \bigcirc & \commande{bigcirc} \\ +\circ & \commande{circ} & \wedge & \commande{wedge} & \rhd & \commande{rhd} \tnote{a} & \dagger & \commande{dagger} \\ +\bullet & \commande{bullet} & \setminus & \commande{setminus} & \unlhd & \commande{unlhd} \tnote{a} & \ddagger & \commande{ddagger} \\ +\cdot & \commande{cdot} & \wr & \commande{wr} & \unrhd & \commande{unrhd} \tnote{a} & \amalg & \commande{amalg} \\ +\bottomrule +\end{tabular} +\begin{tablenotes} +\item[a] Requiert l'extension \extensionindex{latexsym}. +\end{tablenotes} +\end{threeparttable} +\caption{Symboles d'opérateurs binaires} +\label{tableau:operateurs} +\index{pm@\commande{pm} ($\pm$)} +\index{mp@\commande{mp} ($\mp$)} +\index{times@\commande{times} ($\times$)} +\index{div@\commande{div} ($\div$)} +\index{ast@\commande{ast} ($\ast$)} +\index{star@\commande{star} ($\star$)} +\index{circ@\commande{circ} ($\circ$)} +\index{bullet@\commande{bullet} ($\bullet$)} +\index{cdot@\commande{cdot} ($\cdot$)} +\index{cap@\commande{cap} ($\cap$)} +\index{cup@\commande{cup} ($\cup$)} +\index{uplus@\commande{uplus} ($\uplus$)} +\index{sqcap@\commande{sqcap} ($\sqcap$)} +\index{sqcup@\commande{sqcup} ($\sqcup$)} +\index{vee@\commande{vee} ($\vee$)} +\index{wedge@\commande{wedge} ($\wedge$)} +\index{setminus@\commande{setminus} ($\setminus$)} +\index{wr@\commande{wr} ($\wr$)} +\index{diamond@\commande{diamond} ($\diamond$)} +\index{bigtriangleup@\commande{bigtriangleup} ($\bigtriangleup$)} +\index{bigtriangledown@\commande{bigtriangledown} ($\bigtriangledown$)} +\index{triangleleft@\commande{triangleleft} ($\triangleleft$)} +\index{triangleright@\commande{triangleright} ($\triangleright$)} +\index{lhd@\commande{lhd} ($\lhd$)} +\index{rhd@\commande{rhd} ($\rhd$)} +\index{unlhd@\commande{unlhd} ($\unlhd$)} +\index{unrhd@\commande{unrhd} ($\unrhd$)} +\index{oplus@\commande{oplus} ($\oplus$)} +\index{ominus@\commande{ominus} ($\ominus$)} +\index{otimes@\commande{otimes} ($\otimes$)} +\index{oslash@\commande{oslash} ($\oslash$)} +\index{odot@\commande{odot} ($\odot$)} +\index{bigcirc@\commande{bigcirc} ($\bigcirc$)} +\index{dagger@\commande{dagger} ($\dagger$)} +\index{ddagger@\commande{ddagger} ($\ddagger$)} +\index{amalg@\commande{amalg} ($\amalg$)} +\end{table} + +\subsection{Symboles de relations binaires} +\index{symboles mathématiques!relations binaires} + +Les commandes présentées dans le tableau \ref{tableau:relations} +permettent d'obtenir des symboles de relations binaires. + +\begin{table}[!htbp] +\centering +\begin{threeparttable} +\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{4mm}}>{$}l<{$}l}} +\toprule +\leq & \commande{leq} & \geq & \commande{geq} & \equiv & \commande{equiv} & \models & \commande{models} \\ +\prec & \commande{prec} & \succ & \commande{succ} & \sim & \commande{sim} & \perp & \commande{perp} \\ +\preceq & \commande{preceq} & \succeq & \commande{succeq} & \simeq & \commande{simeq} & \mid & \commande{mid} \\ +\ll & \commande{ll} & \gg & \commande{gg} & \asymp & \commande{asymp} & \parallel & \commande{parallel} \\ +\subset & \commande{subset} & \supset & \commande{supset} & \approx & \commande{approx} & \bowtie & \commande{bowtie} \\ +\subseteq & \commande{subseteq} & \supseteq & \commande{supseteq} & \cong & \commande{cong} & \Join & \commande{Join} \tnote{a} \\ +\sqsubset & \commande{sqsubset} \tnote{a} & \sqsupset & \commande{sqsupset} \tnote{a} & \neq & \commande{neq} & \smile & \commande{smile} \\ +\sqsubseteq & \commande{sqsubseteq} & \sqsupseteq & \commande{sqsupseteq} & \doteq & \commande{doteq} & \frown & \commande{frown} \\ +\in & \commande{in} & \ni & \commande{ni} & \propto & \commande{propto} & & \\ +\vdash & \commande{vdash} & \dashv & \commande{dashv} & & & & \\ +\bottomrule +\end{tabular} +\begin{tablenotes} +\item[a] Requiert l'extension \extensionindex{latexsym}. +\end{tablenotes} +\end{threeparttable} +\caption{Symboles de relations binaires} +\label{tableau:relations} +\index{leq@\commande{leq} ($\leq$)} +\index{prec@\commande{prec} ($\prec$)} +\index{preceq@\commande{preceq} ($\preceq$)} +\index{ll@\commande{ll} ($\ll$)} +\index{subset@\commande{subset} ($\subset$)} +\index{subseteq@\commande{subseteq} ($\subseteq$)} +\index{sqsubset@\commande{sqsubset} ($\sqsubset$)} +\index{sqsubseteq@\commande{sqsubseteq} ($\sqsubseteq$)} +\index{in@\commande{in} ($\in$)} +\index{vdash@\commande{vdash} ($\vdash$)} +\index{geq@\commande{geq} ($\geq$)} +\index{succ@\commande{succ} ($\succ$)} +\index{succeq@\commande{succeq} ($\succeq$)} +\index{gg@\commande{gg} ($\gg$)} +\index{supset@\commande{supset} ($\supset$)} +\index{supseteq@\commande{supseteq} ($\supseteq$)} +\index{sqsupset@\commande{sqsupset} ($\sqsupset$)} +\index{sqsupseteq@\commande{sqsupseteq} ($\sqsupseteq$)} +\index{ni@\commande{ni} ($\ni$)} +\index{dashv@\commande{dashv} ($\dashv$)} +\index{equiv@\commande{equiv} ($\equiv$)} +\index{sim@\commande{sim} ($\sim$)} +\index{simeq@\commande{simeq} ($\simeq$)} +\index{asymp@\commande{asymp} ($\asymp$)} +\index{approx@\commande{approx} ($\approx$)} +\index{cong@\commande{cong} ($\cong$)} +\index{neq@\commande{neq} ($\neq$)} +\index{doteq@\commande{doteq} ($\doteq$)} +\index{propto@\commande{propto} ($\propto$)} +\index{models@\commande{models} ($\models$)} +\index{perp@\commande{perp} ($\perp$)} +\index{mid@\commande{mid} ($\mid$)} +\index{parallel@\commande{parallel} ($\parallel$)} +\index{bowtie@\commande{bowtie} ($\bowtie$)} +\index{Join@\commande{Join} ($\Join$)} +\index{smile@\commande{smile} ($\smile$)} +\index{frown@\commande{frown} ($\frown$)} +\end{table} + +On peut obtenir la négation de ces symboles grâce à la commande +\commandeindex{not} : + +\begin{filecontents*}{\jobname.tmp} +$ x \not\in F $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\subsection{Flèches} +\index{symboles mathématiques!flèches} + +Les commandes présentées dans le tableau \ref{tableau:fleches} +permettent d'obtenir des flèches. + +\begin{table}[!htbp] +\centering +\begin{threeparttable} +\begin{tabular}{>{$}l<{$}l*{2}{@{\hspace{5mm}}>{$}l<{$}l}} +\toprule +\leftarrow & \commande{leftarrow} & \longleftarrow & \commande{longleftarrow} & \uparrow & \commande{uparrow} \\ +\Leftarrow & \commande{Leftarrow} & \Longleftarrow & \commande{Longleftarrow} & \Uparrow & \commande{Uparrow} \\ +\rightarrow & \commande{rightarrow} & \longrightarrow & \commande{longrightarrow} & \downarrow & \commande{downarrow} \\ +\Rightarrow & \commande{Rightarrow} & \Longrightarrow & \commande{Longrightarrow} & \Downarrow & \commande{Downarrow} \\ +\leftrightarrow & \commande{leftrightarrow} & \longleftrightarrow & \commande{longleftrightarrow} & \updownarrow & \commande{updownarrow} \\ +\Leftrightarrow & \commande{Leftrightarrow} & \Longleftrightarrow & \commande{Longleftrightarrow} & \Updownarrow & \commande{Updownarrow} \\ +\mapsto & \commande{mapsto} & \longmapsto & \commande{longmapsto} & \nearrow & \commande{nearrow} \\ +\hookleftarrow & \commande{hookleftarrow} & \hookrightarrow & \commande{hookrightarrow} & \searrow & \commande{searrow} \\ +\leftharpoonup & \commande{leftharpoonup} & \rightharpoonup & \commande{rightharpoonup} & \swarrow & \commande{swarrow} \\ +\leftharpoondown & \commande{leftharpoondown} & \rightharpoondown & \commande{rightharpoondown} & \nwarrow & \commande{nwarrow} \\ +\rightleftharpoons & \commande{rightleftharpoons} & \leadsto & \commande{leadsto} \tnote{a} & & \\ +\bottomrule +\end{tabular} +\begin{tablenotes} +\item[a] Requiert l'extension \extensionindex{latexsym}. +\end{tablenotes} +\end{threeparttable} +\caption{Flèches} +\label{tableau:fleches} +\index{leftarrow@\commande{leftarrow} ($\leftarrow$)} +\index{Leftarrow@\commande{Leftarrow} ($\Leftarrow$)} +\index{rightarrow@\commande{rightarrow} ($\rightarrow$)} +\index{Rightarrow@\commande{Rightarrow} ($\Rightarrow$)} +\index{leftrightarrow@\commande{leftrightarrow} ($\leftrightarrow$)} +\index{Leftrightarrow@\commande{Leftrightarrow} ($\Leftrightarrow$)} +\index{mapsto@\commande{mapsto} ($\mapsto$)} +\index{hookleftarrow@\commande{hookleftarrow} ($\hookleftarrow$)} +\index{leftharpoonup@\commande{leftharpoonup} ($\leftharpoonup$)} +\index{leftharpoondown@\commande{leftharpoondown} ($\leftharpoondown$)} +\index{rightleftharpoons@\commande{rightleftharpoons} ($\rightleftharpoons$)} +\index{longleftarrow@\commande{longleftarrow} ($\longleftarrow$)} +\index{Longleftarrow@\commande{Longleftarrow} ($\Longleftarrow$)} +\index{longrightarrow@\commande{longrightarrow} ($\longrightarrow$)} +\index{Longrightarrow@\commande{Longrightarrow} ($\Longrightarrow$)} +\index{longleftrightarrow@\commande{longleftrightarrow} ($\longleftrightarrow$)} +\index{Longleftrightarrow@\commande{Longleftrightarrow} ($\Longleftrightarrow$)} +\index{longmapsto@\commande{longmapsto} ($\longmapsto$)} +\index{hookrightarrow@\commande{hookrightarrow} ($\hookrightarrow$)} +\index{rightharpoonup@\commande{rightharpoonup} ($\rightharpoonup$)} +\index{rightharpoondown@\commande{rightharpoondown} ($\rightharpoondown$)} +\index{leadsto@\commande{leadsto} ($\leadsto$)} +\index{uparrow@\commande{uparrow} ($\uparrow$)} +\index{Uparrow@\commande{Uparrow} ($\Uparrow$)} +\index{downarrow@\commande{downarrow} ($\downarrow$)} +\index{Downarrow@\commande{Downarrow} ($\Downarrow$)} +\index{updownarrow@\commande{updownarrow} ($\updownarrow$)} +\index{Updownarrow@\commande{Updownarrow} ($\Updownarrow$)} +\index{nearrow@\commande{nearrow} ($\nearrow$)} +\index{searrow@\commande{searrow} ($\searrow$)} +\index{swarrow@\commande{swarrow} ($\swarrow$)} +\index{nwarrow@\commande{nwarrow} ($\nwarrow$)} +\end{table} + +\subsection{Symboles divers} +\index{symboles mathématiques!symboles divers} + +Les commandes présentées dans le tableau +\ref{tableau:symbolesdivers} permettent d'obtenir des symboles +divers. + +\begin{table}[!htbp] +\centering +\begin{threeparttable} +\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{6mm}}>{$}l<{$}l}} +\toprule +\aleph & \commande{aleph} & \prime & \commande{prime} & \forall & \commande{forall} & \infty & \commande{infty} \\ +\hbar & \commande{hbar} & \emptyset & \commande{emptyset} & \exists & \commande{exists} & \Box & \commande{Box} \tnote{a} \\ +\imath & \commande{imath} & \nabla & \commande{nabla} & \neg & \commande{neg} & \Diamond & \commande{Diamond} \tnote{a} \\ +\jmath & \commande{jmath} & \surd & \commande{surd} & \flat & \commande{flat} & \triangle & \commande{triangle} \\ +\ell & \commande{ell} & \top & \commande{top} & \natural & \commande{natural} & \clubsuit & \commande{clubsuit} \\ +\wp & \commande{wp} & \bot & \commande{bot} & \sharp & \commande{sharp} & \diamondsuit & \commande{diamondsuit} \\ +\Re & \commande{Re} & \| & \commande{|} & \backslash & \commande{backslash} & \heartsuit & \commande{heartsuit} \\ +\Im & \commande{Im} & \angle & \commande{angle} & \partial & \commande{partial} & \spadesuit & \commande{spadesuit} \\ +\mho & \commande{mho} \tnote{a} & & & & & & \\ +\bottomrule +\end{tabular} +\begin{tablenotes} +\item[a] Requiert l'extension \extensionindex{latexsym}. +\end{tablenotes} +\end{threeparttable} +\caption{Symboles divers} +\label{tableau:symbolesdivers} +\index{aleph@\commande{aleph} ($\aleph$)} +\index{hbar@\commande{hbar} ($\hbar$)} +\index{imath@\commande{imath} ($\imath$)} +\index{jmath@\commande{jmath} ($\jmath$)} +\index{ell@\commande{ell} ($\ell$)} +\index{wp@\commande{wp} ($\wp$)} +\index{Re@\commande{Re} ($\Re$)} +\index{Im@\commande{Im} ($\Im$)} +\index{mho@\commande{mho} ($\mho$)} +\index{prime@\commande{prime} ($\prime$)} +\index{emptyset@\commande{emptyset} ($\emptyset$)} +\index{nabla@\commande{nabla} ($\nabla$)} +\index{surd@\commande{surd} ($\surd$)} +\index{top@\commande{top} ($\top$)} +\index{bot@\commande{bot} ($\bot$)} +%\index{"|@\commande{"|} ($\|$)} +\index{angle@\commande{angle} ($\angle$)} +\index{forall@\commande{forall} ($\forall$)} +\index{exists@\commande{exists} ($\exists$)} +\index{neg@\commande{neg} ($\neg$)} +\index{flat@\commande{flat} ($\flat$)} +\index{natural@\commande{natural} ($\natural$)} +\index{sharp@\commande{sharp} ($\sharp$)} +\index{backslash@\commande{backslash} ($\backslash$)} +\index{partial@\commande{partial} ($\partial$)} +\index{infty@\commande{infty} ($\infty$)} +\index{Box@\commande{Box} ($\Box$)} +\index{Diamond@\commande{Diamond} ($\Diamond$)} +\index{triangle@\commande{triangle} ($\triangle$)} +\index{clubsuit@\commande{clubsuit} ($\clubsuit$)} +\index{diamondsuit@\commande{diamondsuit} ($\diamondsuit$)} +\index{heartsuit@\commande{heartsuit} ($\heartsuit$)} +\index{spadesuit@\commande{spadesuit} ($\spadesuit$)} +\end{table} + +De plus, les commandes +\commande{ldots}\index{ldots@\commande{ldots} ($\ldots$)} +($\ldots$) et +\commande{cdots}\index{cdots@\commande{cdots} ($\cdots$)} +($\cdots$) permettent d'obtenir des points de suspension +(respectivement alignés sur la base de la ligne ou centrés +verticalement). + +\subsection{Accents} +\index{symboles mathématiques!accents} + +Le tableau \ref{tableau:mathaccents} présente les accents +disponibles en mode mathématique. + +\begin{table}[!htbp] +\centering +\begin{tabular}{>{$}l<{$}l*{3}{@{\hspace{10mm}}>{$}l<{$}l}} +\toprule +\hat{a} & \commande{hat\{a\}} & \acute{a} & \commande{acute\{a\}} & \bar{a} & \commande{bar\{a\}} & \dot{a} & \commande{dot\{a\}} \\ +\check{a} & \commande{check\{a\}} & \grave{a} & \commande{grave\{a\}} & \vec{a} & \commande{vec\{a\}} & \ddot{a} & \commande{ddot\{a\}} \\ +\breve{a} & \commande{breve\{a\}} & \tilde{a} & \commande{tilde\{a\}} & & & \\ +\bottomrule +\end{tabular} +\caption{Accents} +\label{tableau:mathaccents} +\index{hat@\commande{hat} ($\hat{a}$)} +\index{check@\commande{check} ($\check{a}$)} +\index{breve@\commande{breve} ($\breve{a}$)} +\index{acute@\commande{acute} ($\acute{a}$)} +\index{grave@\commande{grave} ($\grave{a}$)} +\index{tilde@\commande{tilde} ($\tilde{a}$)} +\index{bar@\commande{bar} ($\bar{a}$)} +\index{vec@\commande{vec} ($\vec{a}$)} +\index{dot@\commande{dot} ($\dot{a}$)} +\index{ddot@\commande{ddot} ($\ddot{a}$)} +\end{table} + +Pour placer un accent sur un $i$ ou un $j$, utilisez les +commandes +\commande{imath}\index{imath@\commande{imath} ($\imath$)} et +\commande{jmath}\index{jmath@\commande{jmath} ($\jmath$)}, qui +produisent des lettres sans point (voir le tableau +\ref{tableau:symbolesdivers}). + +Il existe aussi des commandes permettant d'avoir des versions +longues de certains accents : + +\begin{filecontents*}{\jobname.tmp} +$ \widehat{xyz} $, $ \widetilde{abc} $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} +\index{widehat@\commande{widehat} ($\widehat{xyz}$)} +\index{widetilde@\commande{widetilde} ($\widetilde{xyz}$)} + +Les commandes +\commande{overrightarrow}\index{overrightarrow@\commande{overrightarrow} ($\overrightarrow{AB}$)} +et +\commande{overleftarrow}\index{overleftarrow@\commande{overleftarrow} ($\overleftarrow{AB}$)} +permettent de surmonter leur argument d'une grande flèche : + +\begin{filecontents*}{\jobname.tmp} +$ \overrightarrow{AB} $, $ \overleftarrow{AB} $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Les commandes +\commande{overline}\index{overline@\commande{overline} ($\overline{xyz}$)} +et +\commande{underline}\index{underline@\commande{underline} ($\underline{xyz}$)} +permettent de surligner et de souligner : + +\begin{filecontents*}{\jobname.tmp} +$ \overline{z+1} = \bar{z} + 1 $, +$ \underline{\alpha + \beta} $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Enfin, les commandes +\commande{overbrace}\index{overbrace@\commande{overbrace} ($\overbrace{xyz}$)} +et +\commande{underbrace}\index{underbrace@\commande{underbrace} ($\underbrace{xyz}$)} +placent des accolades sur ou sous le texte. On peut ajouter un +commentaire en mettant un exposant après la commande +\commande{overbrace} ou un indice après la commande +\commande{underbrace} : + +\begin{filecontents*}{\jobname.tmp} +\[ +a^n = \overbrace{a \times a \times \cdots +\times a}^{\mbox{$n$ fois}} +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\subsection{Superposer deux symboles} + +Il est possible de superposer deux symboles grâce à la commande : + +\begin{syntaxe} +\commandeindex{stackrel}\argument{dessus}\argument{dessous} +\end{syntaxe} + +\begin{filecontents*}{\jobname.tmp} +$ x \stackrel{f}{\longmapsto} f(x) $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +On peut, par exemple, utiliser la commande \commande{stackrel} +pour obtenir des tenseurs : + +\begin{filecontents*}{\jobname.tmp} +$ \stackrel{\Rightarrow}{\sigma} = + \Lambda ( \stackrel{\Rightarrow}{\varepsilon} ) $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\subsection{Ensembles} +\index{symboles mathématiques!ensembles} + +Les extensions \extensionindex{bbm}, \extensionindex{bbold} et +\extensionindex{dsfont} fournissent des polices de caractères et +les commandes correspondantes permettant de représenter les +symboles des ensembles usuels. + +L'extension \extensionindex{bbm} fournit ainsi les commandes +\commandeindex{mathbbm}, \commandeindex{mathbbmss} et +\commandeindex{mathbbmtt}. L'extension \extensionindex{bbold} +fournit la commande \commandeindex{mathbb}. L'extension +\extensionindex{dsfont} fournit la commande +\commandeindex{mathds}. Ces commandes doivent être utilisées en +mode mathématique. + +L'extension \extensionindex{bbold} fournit également une commande +\commandeindex{textbb} destinée à être utilisée dans du texte +normal. + +Le choix de l'extension et de la commande à utiliser dépend des +préférences de chacun quant à l'aspect des caractères. Le tableau +\ref{tableau:ensembles} présente ce que produit chacune des +commandes pour les ensembles usuels. + +\begin{table}[!htbp] +\centering +\begin{tabular}{ccccc} +\toprule +\multicolumn{3}{c}{\extension{bbm}} & \extension{bbold} & \extension{dsfont} \\ +\cmidrule(r){1-3} \cmidrule(lr){4-4} \cmidrule(l){5-5} +\commande{mathbbm} & \commande{mathbbmss} & \commande{mathbbmtt} & \commande{mathbb} & \commande{mathds} \\ +\midrule +$\mathbbm{N}$ & $\mathbbmss{N}$ & $\mathbbmtt{N}$ & $\mathbb{N}$ & $\mathds{N}$ \\ +$\mathbbm{Z}$ & $\mathbbmss{Z}$ & $\mathbbmtt{Z}$ & $\mathbb{Z}$ & $\mathds{Z}$ \\ +$\mathbbm{D}$ & $\mathbbmss{D}$ & $\mathbbmtt{D}$ & $\mathbb{D}$ & $\mathds{D}$ \\ +$\mathbbm{Q}$ & $\mathbbmss{Q}$ & $\mathbbmtt{Q}$ & $\mathbb{Q}$ & $\mathds{Q}$ \\ +$\mathbbm{R}$ & $\mathbbmss{R}$ & $\mathbbmtt{R}$ & $\mathbb{R}$ & $\mathds{R}$ \\ +$\mathbbm{C}$ & $\mathbbmss{C}$ & $\mathbbmtt{C}$ & $\mathbb{C}$ & $\mathds{C}$ \\ +\bottomrule +\end{tabular} +\caption{Ensembles} +\label{tableau:ensembles} +\index{N@\commande{mathbbm\{N\}} ($\mathbbm{N}$)} +\index{Z@\commande{mathbbm\{Z\}} ($\mathbbm{Z}$)} +\index{D@\commande{mathbbm\{D\}} ($\mathbbm{D}$)} +\index{Q@\commande{mathbbm\{Q\}} ($\mathbbm{Q}$)} +\index{R@\commande{mathbbm\{R\}} ($\mathbbm{R}$)} +\index{C@\commande{mathbbm\{C\}} ($\mathbbm{C}$)} +\index{N@\commande{mathbbmss\{N\}} ($\mathbbmss{N}$)} +\index{Z@\commande{mathbbmss\{Z\}} ($\mathbbmss{Z}$)} +\index{D@\commande{mathbbmss\{D\}} ($\mathbbmss{D}$)} +\index{Q@\commande{mathbbmss\{Q\}} ($\mathbbmss{Q}$)} +\index{R@\commande{mathbbmss\{R\}} ($\mathbbmss{R}$)} +\index{C@\commande{mathbbmss\{C\}} ($\mathbbmss{C}$)} +\index{N@\commande{mathbbmtt\{N\}} ($\mathbbmtt{N}$)} +\index{Z@\commande{mathbbmtt\{Z\}} ($\mathbbmtt{Z}$)} +\index{D@\commande{mathbbmtt\{D\}} ($\mathbbmtt{D}$)} +\index{Q@\commande{mathbbmtt\{Q\}} ($\mathbbmtt{Q}$)} +\index{R@\commande{mathbbmtt\{R\}} ($\mathbbmtt{R}$)} +\index{C@\commande{mathbbmtt\{C\}} ($\mathbbmtt{C}$)} +\index{N@\commande{mathbb\{N\}} ($\mathbb{N}$)} +\index{Z@\commande{mathbb\{Z\}} ($\mathbb{Z}$)} +\index{D@\commande{mathbb\{D\}} ($\mathbb{D}$)} +\index{Q@\commande{mathbb\{Q\}} ($\mathbb{Q}$)} +\index{R@\commande{mathbb\{R\}} ($\mathbb{R}$)} +\index{C@\commande{mathbb\{C\}} ($\mathbb{C}$)} +\index{N@\commande{mathds\{N\}} ($\mathds{N}$)} +\index{Z@\commande{mathds\{Z\}} ($\mathds{Z}$)} +\index{D@\commande{mathds\{D\}} ($\mathds{D}$)} +\index{Q@\commande{mathds\{Q\}} ($\mathds{Q}$)} +\index{R@\commande{mathds\{R\}} ($\mathds{R}$)} +\index{C@\commande{mathds\{C\}} ($\mathds{C}$)} +\end{table} + +\section{Modifier l'espacement} +\label{section:espacement} + +Dans certains cas, il peut être utile de modifier l'espacement, +afin d'éloigner ou de rapprocher certains symboles (voir le +tableau \ref{tableau:espacement}). + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll@{\hspace{10mm}}ll} +\toprule +\commande{,} & petite espace & \verb+\!+ & petite espace négative \\ +\verb+\:+ & moyenne espace & \commande{quad} & petite espace interformules \\ +\verb+\;+ & grande espace & \commande{qquad} & moyenne espace interformules \\ +\bottomrule +\end{tabular} +\caption{Commandes d'espacement} +\label{tableau:espacement} +\index{,@\commande{,} (espacement)} +\index{:@\verb+\:+ (espacement)} +\index{;@\verb+\;+ (espacement)} +\index{"!@\commande{"!} (espacement)} +\index{quad@\commande{quad} (espacement)} +\index{qquad@\commande{qquad} (espacement)} +\end{table} + +Nous verrons, lorsque cela est utile, comment ces commandes +peuvent servir. + +\section{Modifier le style et la taille} +\label{section:styletaille} + +\LaTeX\ permet de modifier le style des caractères en mode +mathématique (voir le tableau \ref{tableau:mathstyle}). + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll} +\toprule +\code{\$ x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta \$} & $ x + y + 2^n\Omega\cos\theta $ \\ +\code{\$ \textbackslash mathit\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathit{x + y + 2^n\Omega\cos\theta}$ \\ +\code{\$ \textbackslash mathrm\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathrm{x + y + 2^n\Omega\cos\theta}$ \\ +\code{\$ \textbackslash mathbf\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathbf{x + y + 2^n\Omega\cos\theta}$ \\ +\code{\$ \textbackslash mathsf\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathsf{x + y + 2^n\Omega\cos\theta}$ \\ +\code{\$ \textbackslash mathtt\{x + y + 2\textasciicircum n\textbackslash Omega\textbackslash cos\textbackslash theta\} \$} & $\mathtt{x + y + 2^n\Omega\cos\theta}$ \\ +\bottomrule +\end{tabular} +\caption{Commandes de changement de style} +\label{tableau:mathstyle} +\index{mathit@\commande{mathit}} +\index{mathrm@\commande{mathrm}} +\index{mathbf@\commande{mathbf}} +\index{mathsf@\commande{mathsf}} +\index{mathtt@\commande{mathtt}} +\end{table} + +Comme vous pouvez le constater, les commandes de changement de +style n'agissent que sur les lettres, les chiffres et les lettres +grecques majuscules. + +La commande \commandeindex{mathcal} permet d'obtenir des +majuscules calligraphiques : + +\begin{filecontents*}{\jobname.tmp} +Soient $\mathcal{C}$ le cercle de centre O et de rayon 1, +$\mathcal{D}_1$ et $\mathcal{D}_2$ deux droites. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Voici ce à quoi ressemblent ces majuscules : + +\[ +\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ} +\] + +Comme nous allons le voir par la suite (en particulier au +paragraphe \ref{section:taillevariable}), certains symboles n'ont +pas la même taille dans l'environnement \environnement{math} et +dans l'environnement \environnement{displaymath}. + +La déclaration \commandeindex{displaystyle} permet, dans un +environnement \environnement{math}, de forcer \LaTeX\ à utiliser +des caractères et des symboles de la même taille qu'en +environnement \environnement{displaymath}. Cette déclaration est +à utiliser avec modération, car son utilisation risque de +modifier l'interligne du paragraphe, pour les formules qui sont +placées dans le texte. + +De même, la déclaration \commandeindex{textstyle} permet de +forcer \LaTeX\ à utiliser, dans un environnement +\environnement{displaymath}, des caractères et des symboles de la +même taille qu'en environnement \environnement{math}. + +Enfin, signalons aussi l'existence des deux déclarations +\commandeindex{scriptstyle} et \commandeindex{scriptscriptstyle} +qui mettent respectivement le texte à la taille d'un exposant et +d'un exposant d'exposant (désolé, il n'y a pas plus petit). + +\section{Fractions} +\index{fraction} + +Les fractions s'obtiennent grâce à la commande : + +\begin{syntaxe} +\commandeindex{frac}\argument{numérateur}\argument{dénominateur} +\end{syntaxe} + +\begin{filecontents*}{\jobname.tmp} +\[ +\frac{x+1}{x+2} +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Racines} +\index{racine} + +Les racines s'obtiennent grâce à la commande : + +\begin{syntaxe} +\commandeindex{sqrt}\option{ordre}\argument{argument} +\end{syntaxe} + +\begin{filecontents*}{\jobname.tmp} +$ \sqrt{x^2+y^2} $, $ \sqrt[n]{\alpha_i} $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Délimiteurs} +\index{symboles mathématiques!délimiteurs} + +Les délimiteurs, présentés dans le tableau +\ref{tableau:delimiteurs}, sont des symboles permettant +d'encadrer des formules. Leur hauteur s'adapte à celle de la +formule. + +\begin{table}[!htbp] +\centering +\begin{tabular}{*{2}{ll@{\hspace{10mm}}}>{$}l<{$}l} +\toprule +$($ & \code{(} & $)$ & \code{)} & \uparrow & \commande{uparrow} \\ +$[$ & \code{[} & $]$ & \code{]} & \downarrow & \commande{downarrow} \\ +$\{$ & \commande{\{} & $\}$ & \commande{\}} & \updownarrow & \commande{updownarrow} \\ +$\lfloor$ & \commande{lfloor} & $\rfloor$ & \commande{rfloor} & \Uparrow & \commande{Uparrow} \\ +$\lceil$ & \commande{lceil} & $\rceil$ & \commande{rceil} & \Downarrow & \commande{Downarrow} \\ +$\langle$ & \commande{langle} & $\rangle$ & \commande{rangle} & \Updownarrow & \commande{Updownarrow} \\ +$/$ & \code{/} & $\backslash$ & \commande{backslash} & & \\ +$|$ & \code{|} & $\|$ & \commande{|} & & \\ +\bottomrule +\end{tabular} +\caption{Délimiteurs} +\label{tableau:delimiteurs} +\index{(@\code{(} (délimiteur)} +\index{[@\code{[} (délimiteur)} +%\index{{@\code{\{} (délimiteur)} +\index{lfloor@\commande{lfloor} ($\lfloor$)} +\index{lceil@\commande{lceil} ($\lceil$)} +\index{langle@\commande{langle} ($\langle$)} +\index{/@\code{/} (délimiteur)} +%\index{"|@\code{"|} (délimiteur)} +\index{)@\code{)} (délimiteur)} +\index{]@\code{]} (délimiteur)} +%\index{}@\code{\}} (délimiteur)} +\index{rfloor@\commande{rfloor} ($\rfloor$)} +\index{rceil@\commande{rceil} ($\rceil$)} +\index{rangle@\commande{rangle} ($\rangle$)} +\index{backslash@\commande{backslash} ($\backslash$)} +%\index{"|@\commande{"|} ($\|$) (délimiteur)} +\index{uparrow@\commande{uparrow} ($\uparrow$)} +\index{downarrow@\commande{downarrow} ($\downarrow$)} +\index{updownarrow@\commande{updownarrow} ($\updownarrow$)} +\index{Uparrow@\commande{Uparrow} ($\Uparrow$)} +\index{Downarrow@\commande{Downarrow} ($\Downarrow$)} +\index{Updownarrow@\commande{Updownarrow} ($\Updownarrow$)} +\end{table} + +Les délimiteurs doivent toujours aller par paire : un délimiteur +ouvrant et un délimiteur fermant. Un délimiteur ouvrant s'obtient +par la commande \commandeindex{left} suivie du délimiteur, et un +délimiteur fermant par la commande \commandeindex{right} suivie +du délimiteur. Bien entendu, on peut imbriquer les paires de +délimiteurs si nécessaire. + +Voici un exemple d'utilisation des délimiteurs (nous aborderons +l'environnement \environnement{array} au paragraphe +\ref{section:array}) : + +\begin{filecontents*}{\jobname.tmp} +\[ +\left[ +\begin{array}{cc} +a_{11} & a_{12} \\ +a_{21} & a_{22} +\end{array} +\right] +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Si l'on ne désire pas voir apparaître de délimiteur fermant, il +faut alors mettre \commandeindex{right.} (\commande{right} suivi +d'un point). En effet, tout \commande{left} doit avoir un +\commande{right} correspondant, le \commande{right.} n'imprime +rien, mais sert à fermer le \commande{left} qui lui correspond. + +Il en va de même si l'on ne souhaite pas de délimiteur ouvrant, +on utilise \commandeindex{left.} (\commande{left} suivi d'un +point). + +\begin{filecontents*}{\jobname.tmp} +\[ +|x| = +\left\{ +\begin{array}{rl} + x & \mbox{si } x \geq 0 \\ +-x & \mbox{si } x < 0 +\end{array} +\right. +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Symboles de taille variable} +\label{section:taillevariable} +\index{symboles mathématiques!symboles de taille variable} +\index{somme} +\index{produit} +\index{intégrale} + +Les symboles présentés dans le tableau +\ref{tableau:taillevariable} sont de \emph{taille variable} : il +n'ont pas la même taille dans l'environnement +\environnement{math} et dans l'environnement +\environnement{displaymath}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{>{$}l<{$}l*{2}{@{\hspace{10mm}}>{$}l<{$}l}} +\toprule +\sum \displaystyle \sum & \commande{sum} & \bigcap \displaystyle \bigcap & \commande{bigcap} & \bigodot \displaystyle \bigodot & \commande{bigodot} \\ +\prod \displaystyle \prod & \commande{prod} & \bigcup \displaystyle \bigcup & \commande{bigcup} & \bigotimes \displaystyle \bigotimes & \commande{bigotimes} \\ +\coprod \displaystyle \coprod & \commande{coprod} & \bigsqcup \displaystyle \bigsqcup & \commande{bigsqcup} & \bigoplus \displaystyle \bigoplus & \commande{bigoplus} \\ +\int \displaystyle \int & \commande{int} & \bigvee \displaystyle \bigvee & \commande{bigvee} & \biguplus \displaystyle \biguplus & \commande{biguplus} \\ +\oint \displaystyle \oint & \commande{oint} & \bigwedge \displaystyle \bigwedge & \commande{bigwedge} & & \\ +\bottomrule +\end{tabular} +\caption{Symboles de taille variable} +\label{tableau:taillevariable} +\index{sum@\commande{sum} ($\sum$)} +\index{prod@\commande{prod} ($\prod$)} +\index{coprod@\commande{coprod} ($\coprod$)} +\index{int@\commande{int} ($\int$)} +\index{oint@\commande{oint} ($\oint$)} +\index{bigcap@\commande{bigcap} ($\bigcap$)} +\index{bigcup@\commande{bigcup} ($\bigcup$)} +\index{bigsqcup@\commande{bigsqcup} ($\bigsqcup$)} +\index{bigvee@\commande{bigvee} ($\bigvee$)} +\index{bigwedge@\commande{bigwedge} ($\bigwedge$)} +\index{bigodot@\commande{bigodot} ($\bigodot$)} +\index{bigotimes@\commande{bigotimes} ($\bigotimes$)} +\index{bigoplus@\commande{bigoplus} ($\bigoplus$)} +\index{biguplus@\commande{biguplus} ($\biguplus$)} +\end{table} + +Ces symboles sont plus petits en environnement +\environnement{math} afin d'être de même taille que le reste du +texte. De plus, leurs indices et exposants (qui représentent +leurs bornes) ne sont pas disposés de la même façon dans les deux +environnements : + +\begin{exemple} +$ \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx $ +\[ \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx \] +\end{exemple} + +\begin{resultat} +\begin{center} +$ \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx $ +\end{center} +\[ \sum_{i=0}^{+\infty} x_i \quad \int_a^b f(x) dx \] +\end{resultat} + +Comme indiqué au paragraphe \ref{section:styletaille}, on peut, +en environnement \environnement{math}, utiliser la déclaration +\commandeindex{displaystyle} qui donne aux symboles de taille +variable la taille qu'ils ont en environnement +\environnement{displaymath} (mais ceci modifie l'interligne du +texte) : + +\begin{filecontents*}{\jobname.tmp} +On en déduit donc +$ \displaystyle \sum_{n=1}^{+\infty} \frac{1}{n^2} = + \frac{\pi^2}{6} $. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Dans les intégrales, on utilise souvent les commandes +d'espacement vues au paragraphe \ref{section:espacement} pour +éloigner le $dx$ ou pour rapprocher les symboles d'intégration +des intégrales multiples : + +\begin{filecontents*}{\jobname.tmp} +\[ +\int_a^b f(x) \, dx \qquad +V = \int \!\!\!\! \int \!\!\!\! \int_{\Omega} d\tau +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +En cas d'usage intensif d'intégrales multiples, il peut être +intéressant d'utiliser l'extension \extensionindex{amsmath} (voir +\cite[chapitre 8]{the-latex-companion}) qui définit des commandes +spécifiques pour la saisie des intégrales multiples (voir +\cite[page 492]{the-latex-companion}). + +\section{Mathématiques et typographie} +\label{section:math-typo} +\index{typographie} + +\LaTeX\ respecte de lui-même une grande partie des règles +typographiques d'écriture des mathématiques. On se reportera à +\cite[pages 107 à 116]{lexique-des-regles-typographiques} pour en +avoir une description complète. Néanmoins, un coup de pouce de la +part de l'utilisateur est parfois nécessaire. + +C'est le cas pour les intégrales, qu'il convient d'écrire comme +indiqué à droite dans l'exemple suivant, c'est-à-dire avec un peu +d'espace entre la fonction et la différentielle, celle-ci étant +composée en romain : + +\begin{filecontents*}{\jobname.tmp} +\[ +\int_a^b f(x) dx \qquad \int_a^b f(x) \, \mathrm{d}x +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Les formules mathématiques contiennent majoritairement des +variables et des fonctions et il est d'usage d'écrire celles-ci +en italique. C'est pour cela que les formules mathématiques sont +composées par \LaTeX\ en italique. + +En revanche, le symbole de différentielle se compose en romain, +d'où l'utilisation de la commande \commande{mathrm} dans +l'exemple précédent. On en profite également pour ajouter un peu +d'espace entre la fonction et la différentielle, ce qui donne un +rendu visuel plus agréable. + +Si le document comporte beaucoup d'intégrales, il peut être utile +de simplifier leur saisie en définissant une nouvelle commande +permettant de représenter la différentielle et son espace : + +\begin{exemple} +\newcommand{\diff}{\,\mathrm{d}} +\end{exemple} + +On peut alors écrire : + +\begin{filecontents*}{\jobname.tmp} +\[ +\int_a^b f(x) \diff x +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +De même, les constantes se composent en romain. C'est en +particulier le cas pour $\mathrm{e}$ et $\mathrm{i}$ : + +\begin{filecontents*}{\jobname.tmp} +\[ +\mathrm{e}^{\mathrm{i}\pi} + 1 = 0 +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Les constantes physiques se composent également en romain : + +\begin{filecontents*}{\jobname.tmp} +\[ +E = m\mathrm{c}^2 +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +En cas d'utilisation intensive de certaines constantes, il peut +être utile de définir des commandes permettant de les +représenter, comme il a été fait pour \commande{diff}. + +\section{Fonctions et opérateurs} +\index{symboles mathématiques!fonctions et opérateurs} + +Il est d'usage d'écrire certains noms de fonctions ou +d'opérateurs en romain : + +\[ +\lim_{x \rightarrow +\infty} \ln x = +\infty +\] + +On pourrait écrire cette égalité ainsi : + +\begin{filecontents*}{\jobname.tmp} +\[ +lim_{x \rightarrow +\infty} ln x = +\infty +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Mais alors l'opérateurs $\lim$ et la fonction $\ln$ ne sont pas +en romain. Essayons donc ainsi : + +\begin{filecontents*}{\jobname.tmp} +\[ +\mbox{lim}_{x \rightarrow +\infty} \mbox{ln} x = +\infty +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +C'est mieux, mais on n'a pas le bon espacement, et $x \rightarrow ++\infty$ n'est pas placé sous le symbole $\lim$ comme il devrait +l'être. + +Pour résoudre ces problèmes, \LaTeX\ fournit les commandes +présentées dans le tableau \ref{tableau:fonctionsoperateurs}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{*{8}{l}} +\toprule +\commande{arccos} & \commande{cos} & \commande{csc} & \commande{exp} & \commande{ker} & \commande{limsup} & \commande{min} & \commande{sinh} \\ +\commande{arcsin} & \commande{cosh} & \commande{deg} & \commande{gcd} & \commande{lg} & \commande{ln} & \commande{Pr} & \commande{sup} \\ +\commande{arctan} & \commande{cot} & \commande{det} & \commande{hom} & \commande{lim} & \commande{log} & \commande{sec} & \commande{tan} \\ +\commande{arg} & \commande{coth} & \commande{dim} & \commande{inf} & \commande{liminf} & \commande{max} & \commande{sin} & \commande{tanh} \\ +\bottomrule +\end{tabular} +\caption{Fonctions et opérateurs} +\label{tableau:fonctionsoperateurs} +\index{arccos@\commande{arccos} ($\arccos$)} +\index{arcsin@\commande{arcsin} ($\arcsin$)} +\index{arctan@\commande{arctan} ($\arctan$)} +\index{arg@\commande{arg} ($\arg$)} +\index{cos@\commande{cos} ($\cos$)} +\index{cosh@\commande{cosh} ($\cosh$)} +\index{cot@\commande{cot} ($\cot$)} +\index{coth@\commande{coth} ($\coth$)} +\index{csc@\commande{csc} ($\csc$)} +\index{deg@\commande{deg} ($\deg$)} +\index{det@\commande{det} ($\det$)} +\index{dim@\commande{dim} ($\dim$)} +\index{exp@\commande{exp} ($\exp$)} +\index{gcd@\commande{gcd} ($\gcd$)} +\index{hom@\commande{hom} ($\hom$)} +\index{inf@\commande{inf} ($\inf$)} +\index{ker@\commande{ker} ($\ker$)} +\index{lg@\commande{lg} ($\lg$)} +\index{lim@\commande{lim} ($\lim$)} +\index{liminf@\commande{liminf} ($\liminf$)} +\index{limsup@\commande{limsup} ($\limsup$)} +\index{ln@\commande{ln} ($\ln$)} +\index{log@\commande{log} ($\log$)} +\index{max@\commande{max} ($\max$)} +\index{min@\commande{min} ($\min$)} +\index{Pr@\commande{Pr} ($\Pr$)} +\index{sec@\commande{sec} ($\sec$)} +\index{sin@\commande{sin} ($\sin$)} +\index{sinh@\commande{sinh} ($\sinh$)} +\index{sup@\commande{sup} ($\sup$)} +\index{tan@\commande{tan} ($\tan$)} +\index{tanh@\commande{tanh} ($\tanh$)} +\end{table} + +La bonne façon d'écrire + +\[ +\lim_{x \rightarrow +\infty} \ln x = +\infty +\] + +est donc : + +\begin{exemple} +\[ +\lim_{x \rightarrow +\infty} \ln x = +\infty +\] +\end{exemple} + +Certaines des commandes du tableau +\ref{tableau:fonctionsoperateurs} se comportent comme des +symboles de taille variable en ce qui concerne le placement de +leurs indices. C'est en particulier le cas des limites : + +\begin{filecontents*}{\jobname.tmp} +$ \lim_{x \rightarrow 0} \ln x = -\infty $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Enfin, les commandes \commande{bmod}\index{bmod@\commande{bmod} +($\bmod$)} et \commandeindex{pmod} permettent d'imprimer les deux +formes de l'opérateur \terme{modulo} : + +\begin{filecontents*}{\jobname.tmp} +$ c = a \bmod b $ \qquad $ a \equiv b \pmod{n} $ +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Les tableaux : l'environnement \environnement{array}} +\label{section:array} +\index{matrice} + +Les tableaux (en particulier les matrices) s'obtiennent grâce à +l'environnement \environnementindex{array}, qui s'utilise +exactement comme l'environnement \environnement{tabular} : + +\begin{filecontents*}{\jobname.tmp} +\[ +{\mathcal A} = \left( +\begin{array}{ccc} +a_{11} & a_{12} & a_{13} \\ +a_{21} & a_{22} & a_{23} \\ +a_{31} & a_{32} & a_{33} +\end{array} +\right) +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +L'argument de l'environnement \environnement{array} indique le +nombre de colonnes du tableau ainsi que leur alignement. Chaque +caractère représente une colonne et peut être : + +\begin{description} + +\item[\code{l} (\anglais{left})]\index{l@\code{l} (environnement \environnement{array})} + la colonne est alignée à gauche ; + +\item[\code{c} (\anglais{center})]\index{c@\code{c} (environnement \environnement{array})} + la colonne est centrée ; + +\item[\code{r} (\anglais{right})]\index{r@\code{r} (environnement \environnement{array})} + la colonne est alignée à droite. + +\end{description} + +Ainsi, la matrice de notre exemple a trois colonnes (\code{ccc}), +chacune d'elle étant centrée. + +À l'intérieur de l'environnement \environnement{array}, les +lignes sont terminées par \boiboiindex\ +(sauf la dernière) et les colonnes sont séparées par +\code{\&}\index{&@\code{\&} (environnement \environnement{array})}. + +Les commandes +\commande{cdots}\index{cdots@\commande{cdots} ($\cdots$)} +($\cdots$), +\commande{vdots}\index{vdots@\commande{vdots} ($\vdots$)} +($\vdots$) et +\commande{ddots}\index{ddots@\commande{ddots} ($\ddots$)} +($\ddots$) sont souvent utilisées dans les matrices : + +\begin{filecontents*}{\jobname.tmp} +\[ +{\mathcal A} = \left( +\begin{array}{cccc} +a_{11} & a_{12} & \cdots & a_{1n} \\ +a_{21} & a_{22} & \cdots & a_{2n} \\ +\vdots & \vdots & \ddots & \vdots \\ +a_{m1} & a_{m2} & \cdots & a_{mn} +\end{array} +\right) +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +L'environnement \environnement{array} permet de faire toutes +sortes de tableaux en mode mathématique, pas seulement des +matrices : + +\begin{filecontents*}{\jobname.tmp} +\[ +\sum_{\begin{array}{c} +\scriptstyle i>0 \\ +\scriptstyle j>0 +\end{array}} a_{ij} = \alpha +\] +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Les équations numérotées : l'environnement + \environnement{equation}} +\index{equation@équation} + +L'environnement \environnementindex{equation} s'utilise de la +même façon que l'environnement \environnement{displaymath} mais +il génère en plus un numéro d'équation : + +\begin{filecontents*}{\jobname.tmp} +\begin{equation} \label{eqn:euler} +\mathrm{e}^{\mathrm{i}\pi} + 1 = 0 +\end{equation} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Comme tout ce qui est numéroté, on peut référencer une équation +par la commande \commandeindex{label}, puis rappeler son numéro +par la commande \commande{ref}. + +Le numéro d'équation apparaît à droite par défaut. On peut le +faire apparaître à gauche en utilisant l'option de classe +\classeoptionindex{leqno}. + +\section[Les équations numérotées et alignées : +l'environnement\texorpdfstring{\newline}{} +\environnement{eqnarray}]{Les équations numérotées et alignées : +l'environnement \environnement{eqnarray}} + +Il peut être nécesssaire de superposer des formules ou de +dérouler un calcul en gardant un symbole aligné (le signe $=$, +par exemple). Pour cela, on utilise l'environnement +\environnementindex{eqnarray} : + +\begin{filecontents*}{\jobname.tmp} +\begin{eqnarray} +\ln xy & = & \ln x + \ln y \\ +\exp(x+y) & = & \exp x \: \exp y +\end{eqnarray} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +L'environnement \environnement{eqnarray} s'utilise comme un +tableau dont le format serait \code{rcl}. + +On peut supprimer la numérotation d'une ligne en mettant la +commande \commandeindex{nonumber} en fin de ligne : + +\begin{filecontents*}{\jobname.tmp} +\begin{eqnarray} +\int_1^2 x^2 \diff x + & = & \left[ \frac{x^3}{3} \right]_1^2 \nonumber \\ + & = & \frac{2^3}{3} - \frac{1^3}{3} \nonumber \\ + & = & \frac{8}{3} - \frac{1}{3} \nonumber \\ + & = & \frac{7}{3} +\end{eqnarray} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Si l'on ne désire aucune numérotation, il vaut mieux utiliser la +forme étoilée de l'environnement \environnement{eqnarray}. +L'environnement \environnementindex{eqnarray*} s'utilise comme +l'environnement \environnement{eqnarray}, mais il ne numérote pas +les équations : + +\begin{filecontents*}{\jobname.tmp} +\begin{eqnarray*} +\int_0^\pi \sin x \diff x + & = & \left[ - \cos x \right]_0^\pi \\ + & = & - \cos \pi + \cos 0 \\ + & = & 1 + 1 \\ + & = & 2 +\end{eqnarray*} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Théorèmes, définitions...} + +\newtheorem{theoreme}{Théorème} + +\begin{theoreme}[babafou] +\LaTeX\ ne se limite pas aux formules et aux signes +bizarres, il permet aussi de composer des théorèmes de +toute beauté (comme celui-ci). +\end{theoreme} + +La commande: + +\begin{syntaxe} +\commandeindex{newtheorem}\argument{nom}\argument{texte} +\end{syntaxe} + +\noindent définit un nouvel environnement qui a pour nom +\var{nom}. + +Par exemple, le théorème de babafou ci-dessus a été réalisé ainsi : + +\begin{exemple} +\newtheorem{theoreme}{Théorème} + +\begin{theoreme}[babafou] +\LaTeX\ ne se limite pas aux formules et aux signes +bizarres, il permet aussi de composer des théorèmes de +toute beauté (comme celui-ci). +\end{theoreme} +\end{exemple} + +L'environnement créé par la commande \commande{newtheorem} +réalise les actions suivantes : + +\begin{enumerate} + +\item il imprime \var{texte} (deuxième argument de la commande + \commande{newtheorem}) ; + +\item puis un numéro (à chaque environnement créé est associé un + compteur dédié qui est incrémenté à chaque utilisation de + l'environnement) ; + +\item puis, éventuellement, son argument optionnel (c'est + généralement l'auteur du théorème) entre parenthèses ; + +\item enfin, il imprime son contenu, préalablement mis en + italique. + +\end{enumerate} + +On peut ainsi créer autant d'environnements que nécessaire, un +pour les théorèmes, un pour les définitions, un pour les lemmes, +un pour les hypothèses, etc., chacun ayant son propre compteur. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Bibliographie et index} +\label{chapitre:bibliographie-index} + +Réaliser une bibliographie ou un index est généralement assez +compliqué. Pour cela, \LaTeX\ s'appuie sur deux autres logiciels, +\BibTeX\ et \MakeIndex, afin de rendre ce travail simple et +efficace. + +\section{Faire une bibliographie} +\index{bibliographie} + +Avec \LaTeX, il y a deux façons de faire une bibliographie : + +\begin{itemize} + + \item en utilisant l'environnement + \environnementindex{thebibliography} ; + + \item en utilisant le logiciel \BibTeX\index{BibTeX@\BibTeX}. + +\end{itemize} + +\subsection{L'environnement \environnement{thebibliography}} + +L'environnement \environnementindex{thebibliography} permet +d'imprimer la liste des références bibliographiques : + +\begin{exemple} +\begin{thebibliography}{2} + +\bibitem{latex-a-document-preparation-system} + Leslie Lamport : + \textit{\LaTeX: a document preparation system}. + Addison-Wesley, second edition, 1994. + +\bibitem{the-latex-companion} + Frank Mittelbach et Michel Goossens : + \textit{The \LaTeX\ Companion}. + Addison-Wesley, second edition, 2004. + +\end{thebibliography} +\end{exemple} + +Ce qui donne : + +\newcommand{\monlabel}[1]{[#1]} +\newenvironment{biblio} +{ + \begin{list}{[0]} + { + \renewcommand{\makelabel}{\monlabel} + \settowidth{\labelwidth}{[0]} + \setlength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \setlength{\itemsep}{0mm} + } +} +{\end{list}} + +\begin{resultat} +\noindent \textbf{\Huge Bibliographie} + +\bigskip + +\begin{biblio} +\item[1] + Leslie Lamport : + \textit{\LaTeX: a document preparation system}. + Addison-Wesley, second edition, 1994. +\item[2] + Frank Mittelbach et Michel Goossens : + \textit{The \LaTeX\ Companion}. + Addison-Wesley, second edition, 2004. +\end{biblio} +\end{resultat} + +L'environnement \environnement{thebibliography} s'utilise à peu +près comme l'environnement \environnement{itemize}. Chaque +élément de la bibliographie commence par la commande +\commandeindex{bibitem}, qui prend en argument une chaîne de +caractères permettant, comme avec \commande{label}, de faire +référence à l'ouvrage. Puis on met à la suite l'auteur ou les +auteurs de l'ouvrage, son titre (en italique, c'est l'usage), son +éditeur, son année de parution et toute information devant +figurer dans la bibliographie. + +Dans la version imprimée, chaque élément de la bibliographie est +repéré par un nombre entre crochets généré automatiquement. Il +est possible d'assigner une étiquette personnalisée grâce à +l'argument optionnel de \commande{bibitem} : + +\begin{exemple} +\bibitem[Lamport 1994]{latex-a-document-preparation-system} + Leslie Lamport : + \textit{\LaTeX: a document preparation system}. + Addison-Wesley, second edition, 1994. +\end{exemple} + +Ce qui donne : + +\begin{resultat} +[Lamport 1994] Leslie Lamport \ldots +\end{resultat} + +L'argument de l'environnement \environnement{thebibliography} +précise la taille maximale de ces étiquettes : + +\begin{itemize} + +\item lorsqu'on ne les personnalise pas, on met généralement le + nombre d'éléments de la bibliographie ; + +\item lorsqu'on les personnalise, on met l'étiquette la plus + longue (qui n'est pas toujours évidente à déterminer comme + nous l'avons vu avec l'environnement + \environnement{tabbing}). + +\end{itemize} + +La commande \commandeindex{cite} permet de faire référence à un +élément de la bibliographie au sein du dpcument. Elle imprime le +numéro ou l'étiquette de l'ouvrage : + +\begin{filecontents*}{\jobname.tmp} +Voir \cite{the-latex-companion} pour plus de précisions. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +On peut indiquer des renseignements supplémentaires (page, +chapitre, etc.) grâce à l'argument optionnel de \commande{cite} : + +\begin{filecontents*}{\jobname.tmp} +Voir \cite[page 691]{the-latex-companion} pour plus de +précisions. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\subsection{\BibTeX} +\index{BibTeX@\BibTeX} + +L'utilisation de l'environnement \environnement{thebibliography} +convient très bien à la réalisation d'une bibliographie, mais +elle a certains inconvénients : + +\begin{itemize} + +\item il est nécessaire de faire une bibliographie complète pour + chaque document, avec les problèmes de redondance que cela + implique si certains ouvrages sont cités dans plusieurs + documents ; + +\item en cas de mise à jour d'un ouvrage (publication d'une + nouvelle édition, par exemple), il faut modifier les + bibliographies de tous les documents où il y est fait + référence. + +\end{itemize} + +D'où l'idée, plutôt que d'avoir une bibliographie indépendante +dans chaque document, de regrouper l'ensemble des données +bibliographiques dans une ou plusieurs bases de données et de +générer automatiquement la bibliographie de chaque document à +partir de ces bases de données, en fonction des ouvrages dont il +est fait référence dans le document. C'est le rôle du logiciel +\BibTeX. + +\subsubsection{La base de données bibliographique} + +Une base de données bibliographique est simplement un fichier +d'extension \path{.bib}\index{bib@\path{.bib}} qui contient un +certain nombre d'entrées comme celle-ci : + +\begin{exemple} +@BOOK +{ + latex-a-document-preparation-system , + AUTHOR = "Leslie Lamport" , + TITLE = "{\LaTeX}: a document preparation system" , + PUBLISHER = "Addison-Wesley" , + EDITION = "Second" , + YEAR = 1994 , +} +\end{exemple} + +Chaque entrée correspond à un ouvrage dont le type est indiqué en premier, +juste après le caractère \code{@}. Il s'agit ici d'un livre, donc de type +\code{BOOK}. + +Les caractéristiques de l'ouvrage sont indiquées à la suite, +entre accolades. + +Il faut tout d'abord spécifier une chaîne de caractères (pouvant +contenir lettres, chiffres et signes de ponctuation), qu'on +appelle \terme{clé} et qui servira à repérer l'ouvrage dans vos +bases de données bibliographiques, en tant qu'argument de la +commande \commandeindex{cite}. Le format de la clé est libre. + +\begin{attention} +les clés doivent être uniques au sein de toutes vos bases de +données bibliographiques. +\end{attention} + +Viennent ensuite un certain nombre de champs qui définissent +l'ouvrage (auteur, titre, etc.). Pour un type d'ouvrage donné, +certains champs doivent obligatoirement être indiqués et d'autres +sont facultatifs. Chaque champ est de la forme : + +\begin{syntaxe} +\code{NOM\_DU\_CHAMP = "}\var{contenu du champ}\code{" ,} +\end{syntaxe} + +Si une commande est utilisée dans un champ, elle doit être +entourée d'accolades : + +\begin{exemple} +TITLE = "{\LaTeX}: a document preparation system" , +\end{exemple} + +Les champs contenant une valeur numérique (\code{YEAR}, par +exemple) peuvent se passer des guillemets : + +\begin{exemple} +YEAR = 1994 , +\end{exemple} + +La clé et les champs sont séparés les uns des autres par des +virgules. La présentation adoptée dans l'exemple précédent est +d'avoir une ligne pour la clé puis une ligne par champ donc +chaque ligne se termine par une virgule. Remarquez que la +dernière ligne avant l'accolade fermante se termine également par +une virgule alors qu'elle n'est pas nécessaire. Néanmoins, dans +la mesure où \BibTeX\ la tolère, ceci permet d'avoir une virgule +à la fin de chaque ligne de l'entrée et donc d'éviter de +l'oublier si jamais on rajoute un champ supplémentaire après +l'actuel dernier. + +\subsubsection{Les différents types d'entrées} + +Le tableau \ref{tableau:bibtex-entrees} contient la liste des +types d'entrées reconnus par \BibTeX. Pour chaque type sont +indiqués sa signification ainsi que les champs obligatoires et +optionnels (les autres, s'il y en a, étant ignorés) dont la +signification sera expliquée dans le tableau +\ref{tableau:bibtex-champs}. + +\begin{longtable}{|c|p{9cm}|} +\hline +\textbf{Entrée} & \textbf{Signification, champs obligatoires et optionnels} \\ +\hline +\endhead +\multicolumn{2}{c}{} \\ +\caption[Types d'entrées reconnus par \BibTeX]{Types d'entrées reconnus par \BibTeX\ (à suivre)} +\endfoot +\multicolumn{2}{c}{} \\ +\caption[]{Types d'entrées reconnus par \BibTeX} +\label{tableau:bibtex-entrees} +\endlastfoot +\biblioindex{ARTICLE} + & Article paru dans un journal ou un magazine \\* + & Champs obligatoires : \code{AUTHOR}, \code{TITLE}, + \code{JOURNAL}, \code{YEAR} \\* + & Champs optionnels : \code{VOLUME}, \code{NUMBER}, + \code{PAGES}, \code{MONTH}, \code{NOTE} \\* +\hline +\biblioindex{BOOK} + & Livre avec un éditeur \\* + & Champs obligatoires : \code{AUTHOR} ou \code{EDITOR}, + \code{TITLE}, \code{PUBLISHER}, \code{YEAR} \\* + & Champs optionnels : \code{VOLUME} ou \code{NUMBER}, + \code{SERIES}, \code{ADDRESS}, \code{EDITION}, \code{MONTH}, + \code{NOTE} \\* +\hline +\biblioindex{BOOKLET} + & Ouvrage qui est imprimé et distribué, mais sans éditeur \\* + & Champ obligatoire : \code{TITLE} \\* + & Champs optionnels : \code{AUTHOR}, \code{HOWPUBLISHED}, + \code{ADDRESS}, \code{MONTH}, \code{YEAR}, \code{NOTE} \\* +\hline +\biblioindex{CONFERENCE} + & Identique à \code{INPROCEEDINGS} \\* +\hline +\biblioindex{INBOOK} + & Partie d'un livre, généralement sans titre, il peut s'agir + d'un chapitre, d'une section ou de quelques pages \\* + & Champs obligatoires : \code{AUTHOR} ou \code{EDITOR}, + \code{TITLE}, \code{CHAPTER} et/ou \code{PAGES}, + \code{PUBLISHER}, \code{YEAR} \\* + & Champs optionnels : \code{VOLUME} ou \code{NUMBER}, + \code{SERIES}, \code{TYPE}, \code{ADDRESS}, \code{EDITION}, + \code{MONTH}, \code{NOTE} \\* +\hline +\biblioindex{INCOLLECTION} + & Partie d'un livre avec son propre titre \\* + & Champs obligatoires : \code{AUTHOR}, \code{TITLE}, + \code{BOOKTITLE}, \code{PUBLISHER}, \code{YEAR} \\* + & Champs optionnels : \code{EDITOR}, \code{VOLUME} ou + \code{NUMBER}, \code{SERIES}, \code{TYPE}, \code{CHAPTER}, + \code{PAGES}, \code{ADDRESS}, \code{EDITION}, \code{MONTH}, + \code{NOTE} \\* +\hline +\biblioindex{INPROCEEDINGS} + & Article d'actes de conférence \\* + & Champs obligatoires : \code{AUTHOR}, \code{TITLE}, + \code{BOOKTITLE}, \code{YEAR} \\* + & Champs optionnels : \code{EDITOR}, \code{VOLUME} ou + \code{NUMBER}, \code{SERIES}, \code{PAGES}, \code{ADDRESS}, + \code{MONTH}, \code{ORGANIZATION}, \code{PUBLISHER}, + \code{NOTE} \\* +\hline +\biblioindex{MANUAL} + & Documentation technique \\* + & Champ obligatoire : \code{TITLE} \\* + & Champs optionnels : \code{AUTHOR}, \code{ORGANIZATION}, + \code{ADDRESS}, \code{EDITION}, \code{MONTH}, \code{YEAR}, + \code{NOTE} \\* +\hline +\biblioindex{MASTERSTHESIS} + & Traité de maîtrise \\* + & Champs obligatoires : \code{AUTHOR}, \code{TITLE}, + \code{SCHOOL}, \code{YEAR} \\* + & Champs optionnels : \code{TYPE}, \code{ADDRESS}, + \code{MONTH}, \code{NOTE} \\* +\hline +\biblioindex{MISC} + & C'est le type à utiliser quand rien d'autre ne convient \\* + & Champs obligatoires : aucun \\* + & Champs optionnels : \code{AUTHOR}, \code{TITLE}, + \code{HOWPUBLISHED}, \code{MONTH}, \code{YEAR}, + \code{NOTE} \\* +\hline +\biblioindex{PHDTHESIS} + & Thèse de doctorat \\* + & Champs obligatoires : \code{AUTHOR}, \code{TITLE}, + \code{SCHOOL}, \code{YEAR} \\* + & Champs optionnels : \code{TYPE}, \code{ADDRESS}, + \code{MONTH}, \code{NOTE} \\* +\hline +\biblioindex{PROCEEDINGS} + & Actes d'une conférence \\* + & Champs obligatoires : \code{TITLE}, \code{YEAR} \\* + & Champs optionnels : \code{EDITOR}, \code{VOLUME} ou + \code{NUMBER}, \code{SERIES}, \code{ADDRESS}, \code{MONTH}, + \code{ORGANIZATION}, \code{PUBLISHER}, \code{NOTE} \\* +\hline +\biblioindex{TECHREPORT} + & Rapport publié par une école ou une autre institution \\* + & Champs obligatoires : \code{AUTHOR}, \code{TITLE}, + \code{INSTITUTION}, \code{YEAR} \\* + & Champs optionnels : \code{TYPE}, \code{NUMBER}, + \code{ADDRESS}, \code{MONTH}, \code{NOTE} \\* +\hline +\biblioindex{UNPUBLISHED} + & Document avec un auteur et un titre, mais qui n'a jamais été + publié \\* + & Champs obligatoires : \code{AUTHOR}, \code{TITLE}, + \code{NOTE} \\* + & Champs optionnels : \code{MONTH}, \code{YEAR} \\* +\hline +\end{longtable} + +\subsubsection{Les différents types de champs} + +Les champs utilisés par \BibTeX, ainsi que leur signification, +sont indiqués dans le tableau \ref{tableau:bibtex-champs}. + +\begin{table}[!htbp] +\centering +\begin{tabulary}{\textwidth}{|l|J|} +\hline +\biblioindex{ADDRESS} + & Adresse de l'éditeur (\code{PUBLISHER}) ou de l'institution + (\code{INSTITUTION}) \\ +\hline +\biblioindex{ANNOTE} + & Annotation \\ +\hline +\biblioindex{AUTHOR} + & Nom de l'auteur (ou noms des auteurs, dans le format décrit + plus loin) \\ +\hline +\biblioindex{BOOKTITLE} + & Titre d'une partie d'un livre ou d'un article dans les actes + d'une conférence \\ +\hline +\biblioindex{CHAPTER} + & Numéro de chapitre (ou d'une quelconque partie) \\ +\hline +\biblioindex{CROSSREF} + & Clé de l'élément vers lequel on veut établir une + référence \\ +\hline +\biblioindex{EDITION} + & Édition d'un livre \\ +\hline +\biblioindex{EDITOR} + & Nom du rédacteur \\ +\hline +\biblioindex{HOWPUBLISHED} + & Façon dont l'ouvrage a été publié \\ +\hline +\biblioindex{INSTITUTION} + & Institution éditrice d'un rapport technique \\ +\hline +\biblioindex{JOURNAL} + & Nom du journal \\ +\hline +\biblioindex{KEY} + & Utilisé pour créer une étiquette s'il n'y a pas d'auteur \\ +\hline +\biblioindex{MONTH} + & Mois durant lequel l'ouvrage a été publié \\ +\hline +\biblioindex{NOTE} + & Informations supplémentaires pouvant aider le lecteur \\ +\hline +\biblioindex{NUMBER} + & Numéro d'un journal, d'un magazine \\ +\hline +\biblioindex{ORGANIZATION} + & Organisation qui patronne une conférence ou publie un + manuel \\ +\hline +\biblioindex{PAGES} + & Un ou plusieurs numéros de page \\ +\hline +\biblioindex{PUBLISHER} + & Nom de l'éditeur \\ +\hline +\biblioindex{SCHOOL} + & Nom de l'école ou de l'université dans laquelle la thèse a + été réalisée \\ +\hline +\biblioindex{SERIES} + & Nom d'un ensemble de livres \\ +\hline +\biblioindex{TITLE} + & Titre de l'ouvrage \\ +\hline +\biblioindex{TYPE} + & Type d'un rapport technique \\ +\hline +\biblioindex{VOLUME} + & Volume d'un journal ou d'un livre \\ +\hline +\biblioindex{YEAR} + & Année de publication \\ +\hline +\end{tabulary} +\caption{Champs utilisés par \BibTeX} +\label{tableau:bibtex-champs} +\end{table} + +\subsubsection{Quelques précisions sur certains champs} + +Lorsqu'un champ \code{AUTHOR} ou \code{EDITOR} contient plusieurs +noms, ils doivent être séparés les uns des autres par le mot +\codeindex{and} : + +\begin{exemple} +AUTHOR = "Frank Mittelbach and Michel Goossens" , +TITLE = "The {\LaTeX} Companion" , +\end{exemple} + +Le champ \code{MONTH} doit contenir l'abréviation sur trois +lettres du mois en anglais (\code{jan}, \code{feb}, \code{mar}, +\code{apr}, \code{may}, \code{jun}, \code{jul}, \code{aug}, +\code{sep}, \code{oct}, \code{nov} ou \code{dec}) sans +guillemets : + +\begin{exemple} +MONTH = apr , +\end{exemple} + +\subsubsection{Générer la bibliographie avec \BibTeX} + +Une fois que vous avez créé vos bases de données +bibliographiques, le plus gros du travail est fait. + +Maintenant, lorsque vous voulez faire référence à un ouvrage, +utilisez la commande \commandeindex{cite} avec pour argument la +clé correspondante : + +\begin{exemple} +Voir \cite{the-latex-companion} pour plus de précisions. +\end{exemple} + +Il faut aussi indiquer à \LaTeX\ où placer la bibliographie +(généralement juste à la fin du document), au moyen de la +commande \commandeindex{bibliography}. Cette command prend en +argument une liste de noms de fichiers de base de données +bibliographique (mais sans leur extension \path{.bib}) : + +\begin{exemple} +\bibliography{fichier1,fichier2,fichier3} +\end{exemple} + +Bien entendu, tous les ouvrages auxquels ils est fait référence +par la commande \commande{cite} doivent se trouver dans ces +fichiers. + +Il faut également indiquer à \BibTeX\ le style à utiliser pour +mettre en page la bibliographie, grâce à la commande +\commandeindex{bibliographystyle}, utilisée dans le préambule du +document. L'argument de cette commande est le nom du style +bibliographique à utiliser. + +Les styles bibliographiques standards de \LaTeX\ sont : + +\begin{description} + +\item[\biblioindex{plain}] \ \\ + Les ouvrages sont triées dans l'ordre alphabétique de leur + auteur (ou premier auteur s'il y en a plusieurs) et sont + étiquetés par des nombres. + +\item[\biblioindex{unsrt}] \ \\ + Identique au style \code{plain}, mais les ouvrages sont triés + dans l'ordre de leur citation. + +\item[\biblioindex{alpha}] \ \\ + Identique au style \code{plain}, mais les ouvrages sont + étiquetés par des chaînes de caractères du style « Lam94 », + formées à partir du nom de l'auteur et de l'année de + publication. + +\item[\biblioindex{abbrv}] \ \\ + Identique au style \code{plain}, mais les prénoms, noms de + mois et de journaux sont abrégés. + +\end{description} + +Selon la façon dont \LaTeX\ est installé sur votre ordinateur, il +est possible que les styles bibliographiques standards ne soient +pas francisés. Ceci est facile à voir au fait que, pour les +ouvrages ayant plusieurs auteurs, le mot clé \code{and} séparant +les noms des auteurs dans la base de données bibliographique se +retrouve sous la forme « and » dans la bibliographie au lieu de +« et ». Dans ce cas, utilisez les styles \biblioindex{plain-fr}, +\biblioindex{unsrt-fr}, \biblioindex{alpha-fr} ou +\biblioindex{abbrv-fr}. S'ils ne sont pas installés, vous pouvez +les télécharger ici : + +\begin{toile} +\toileurl{http://mirror.ctan.org/biblio/bibtex/contrib/bib-fr.zip} +\end{toile} + +Il existe de nombreux autres styles bibliographiques, dont +beaucoup sont indiqués dans +\cite[pages 791--797]{the-latex-companion}. + +En résumé, mis à part les commandes \commande{cite} disséminées +dans le document, l'inclusion de la bibliographie ressemble à +ceci : + +\begin{exemple} +% dans le préambule : +\bibliographystyle{plain} % ou plain-fr ou un autre style + +[...] + +\begin{document} + +[...] + +% à la fin du document : +\bibliography{fichier1,fichier2,fichier3} +\end{exemple} + +Si vous voulez inclure dans la bibliographie des ouvrages +auxquels vous ne faites pas référence dans votre document, +utilisez la commande \commandeindex{nocite} (placée par exemple +juste après la commande \commande{bibliography}), avec en +argument la liste des clés de ces ouvrages, séparées par des +virgules : + +\begin{exemple} +\nocite{guide-to-latex,bibtexing,makeindex} +\end{exemple} + +Il est aussi possible d'inclure dans la bibliographie tous les +ouvrages répertoriés dans les bases de données bibliographiques +en mettant \code{*} comme argument de \commande{nocite} : + +\begin{exemple} +\nocite{*} +\end{exemple} + +Enfin, pour générer la bibliographie et l'inclure dans votre +document, il faut : + +\begin{itemize} + +\item Compiler votre document avec \LaTeX\ : + +\begin{exemple} +pdflatex document.tex +\end{exemple} + +\item Exécuter \BibTeX\ sur votre document : + +\begin{exemple} +bibtex document +\end{exemple} + + (ne mettez pas l'extension \path{.tex}, \BibTeX\ n'aime pas + ça). \BibTeX\ génère alors un fichier + \path{.bbl}\index{bbl@\path{.bbl}}, qui contient la + bibliographie mise en page (pour les curieux, cela est fait + avec l'environnement \environnement{thebibliography}) selon + le style indiqué par la commande + \commande{bibliographystyle}. + +\item Recompiler deux fois votre document avec \LaTeX\ afin d'y + inclure la bibliographie et de mettre toutes les références + à jour. + +\end{itemize} + +Pour plus d'informations au sujet de \BibTeX, vous pouvez +consulter \cite{bibtexing}, +\cite[pages 70, 71 et 155--164]{latex-a-document-preparation-system} +et \cite[chapitre 13]{the-latex-companion}. + +\section{Faire un index} +\index{index} + +La réalisation d'un index est très simple à faire avec \LaTeX. Il +suffit de placer dans le texte des commandes +\commandeindex{index} pour générer les entrées correspondantes +dans l'index. + +Avant cela, il faut modifier un peu votre document : + +\begin{itemize} + +\item chargez l'extension \extensionindex{makeidx} ; + +\item ajoutez la commande \commandeindex{makeindex} dans le + préambule ; + +\item mettez la commande \commandeindex{printindex} à l'endroit + où vous voulez voir apparaître l'index (c'est généralement + à la fin du document, après la bibliographie et avant la + table des matières). + +\end{itemize} + +Le formatage de l'index nécessite l'utilisation d'un logiciel +externe, qui va classer les entrées dans l'ordre alphabétique et +fusionner les entrées identiques. Historiquement, on utilisait +\MakeIndex\ pour cela (voir le paragraphe +\ref{section:makeindex}). Malheureusement, celui-ci est incapable +de traiter correctement les mots contenant des caractères +accentués. Si l'on écrit un document dans une langue en utilisant +(ce qui est notre cas), il est préférable d'utiliser \xindy\ +(voir le paragraphe \ref{section:xindy}). + +\subsection{La commande \commande{index}} + +Pour générer une entrée dans l'index, utilisez la commande +\commandeindex{index} : + +\begin{exemple} +Le mot babasse\index{babasse} est inclus dans l'index. +\end{exemple} + +Ceci imprime : + +\begin{resultat} +Le mot babasse est inclus dans l'index. +\end{resultat} + +\noindent et génère une entrée pour « babasse », c'est-à-dire +l'argument de la commande \commande{index}, dans l'index. + +Il est possible de mettre toute une expression dans l'index : + +\begin{exemple} +Je mets l'expression super top cool\index{super top cool} +dans l'index. +\end{exemple} + +Pour générer des sous-entrées, il faut séparer l'entrée +principale et la sous-entrée avec le caractère +\code{!}\index{"!@\code{"!} (index)} : + +\begin{exemple} +Ceci parle des sous-entrées de +l'index\index{index!sous-entrées} +\end{exemple} + +Enfin, on peut placer du texte à la position alphabétique repérée +par un autre texte avec le caractère +\code{@}\index{"@@\code{"@} (index)} : + +\begin{exemple} +Je place le symbole $\alpha$\index{alpha@$\alpha$} +dans l'index, à la place de « alpha » dans l'ordre +alphabétique. +\end{exemple} + +Si l'on utilise \MakeIndex\ plutôt que \xindy, ceci peut servir à +lui indiquer la position correcte d'un mot contenant des +caractères accentués : + +\begin{exemple} +Un répertoire\index{repertoire@répertoire} permet de +regrouper des fichiers. +\end{exemple} + +En effet, \MakeIndex\ classe les caractères accentués avant tous +les autres. Par exemple, il classe « répertoire » avant « racine +». L'utilisation de \code{@} permet donc de le remettre dans le +droit chemin, si nécessaire. Son utilisation ne doit pas être +systématique, un mot contenant suffisamment de lettres avant son +premier caractère accentué ayant toutes les chances d'être classé +correctement. + +\subsection{Générer l'index} + +Que ce soit en utilisant \MakeIndex\ ou \xindy, la génération de +l'index se fait selon la même méthode. + +\begin{itemize} + +\item Il faut tout d'abord compiler votre document avec \LaTeX\ : + +\begin{exemple} +pdflatex document.tex +\end{exemple} + + Ceci génère un fichier \path{.idx}\index{idx@\path{.idx}}, + qui contient l'ensemble des entrées à faire figurer dans + l'index. + +\item Il faut ensuite exécuter \MakeIndex\ ou \xindy\ sur ce + fichier (la façon exacte de procéder sera abordée + respectivement dans les paragraphes \ref{section:makeindex} + et \ref{section:xindy}). Ceux-ci classent les entrées dans + l'ordre alphabétique et fusionnent les entrées identiques. + L'index ainsi mis au propre est placé dans un fichier + \path{.ind}\index{ind@\path{.ind}}. + +\item Il faut enfin recompiler votre document avec \LaTeX\ afin + d'y inclure l'index (c'est-à-dire le contenu du fichier + \path{.ind}). + +\end{itemize} + +\subsection{Générer l'index avec \MakeIndex} +\label{section:makeindex} +\index{MakeIndex@\MakeIndex} + +Pour générer l'index avec \MakeIndex, on utilise la commande : + +\begin{exemple} +makeindex -c document.idx +\end{exemple} + +L'option \intercom{-c} permet de ne pas tenir comptes des espaces +multiples pouvant figurer dans les entrées. + +Le format par défaut de l'index est assez spartiate. +Heureusement, il est possible d'en modifier la présentation. Pour +cela, on utilise un fichier ayant par convention l'extension +\path{.ist}\index{ist@\path{.ist}}. Vous pouvez essayer celui-ci, +que l'on va appeler \path{index.ist} : + +\begin{exemple} +headings_flag 1 +heading_prefix "\n \\hfill \\textbf{\\large" +heading_suffix "} \\hfill \\nopagebreak\n" +symhead_positive "Symboles" +symhead_negative "symboles" +delim_0 " \\dotfill\\ " +delim_1 " \\dotfill\\ " +delim_2 " \\dotfill\\ " +\end{exemple} + +Pour l'utiliser, il faut exécuter \MakeIndex\ en indiquant le nom +de ce fichier après l'option \intercom{-s} ainsi : + +\begin{exemple} +makeindex -c -s index.ist document.idx +\end{exemple} + +L'index sera alors présenté comme celui de ce manuel. + +Pour plus d'informations au sujet de \MakeIndex, vous pouvez +consulter \cite{makeindex}, \cite[pages +150--154]{latex-a-document-preparation-system} et \cite[§ +11.2]{the-latex-companion}. + +\subsection{Générer l'index avec \xindy} +\label{section:xindy} +\index{xindy@\xindy} + +Pour générer l'index avec \xindy, on utilise la commande : + +\begin{exemple} +texindy -L french -M texindy document.idx +\end{exemple} + +La commande \intercomindex{texindy} permet à \xindy\ de traiter +un index généré par \LaTeX\ (car \xindy\ est un logiciel +générique de traitement d'index, qui peut être utilisé avec +d'autres logiciels que \LaTeX). + +L'option \intercom{-L} permet d'indiquer dans quelle langue est +rédigé l'index. L'ordre de classement des caractères accentués +est en effet différent selon les langues. + +L'option \intercom{-M} permet d'utiliser le module dont le nom +suit. Le module \intercom{texindy} permet de générer un index +adapté à \LaTeX\ et semblable à ce que génère \MakeIndex. + +Il est possible de créer ses propres modules afin de +personnaliser le format de l'index. Pour cela, on utilise un +fichier ayant par convention l'extension +\path{.xdy}\index{xdy@\path{.xdy}} et contenant des commandes en +langage Lisp. + +Par exemple, les termes figurant dans l'index sont par défaut +directement suivis des numéros des pages où ils figurent. Pour +avoir une présentation identique à celle de l'index de ce manuel, +avec les numéros de pages à droite, précédés par des points de +suspension, on peut utiliser le fichier \path{index.xdy} +suivant : + +\begin{exemple} +(markup-locclass-list :open " \dotfill\ " :sep ", ") +\end{exemple} + +Pour l'utiliser, il faut exécuter \intercom{texindy} en indiquant +le nom de ce fichier après une autre option \intercom{-M} : + +\begin{exemple} +texindy -L french -M texindy -M index.xdy document.idx +\end{exemple} + +On peut également personnaliser l'aspect des titres des rubriques +de l'index grâce aux commandes suivantes, placées dans le +préambule du document : + +\begin{exemple}[fontsize=\footnotesize] +\newcommand*\lettergroupDefault[1]{\lettergroup{Symboles}} +\newcommand*\lettergroup[1]{\hfill\textbf{\large #1}\hfill\nopagebreak} +\end{exemple} + +La première commande permet d'afficher « Symboles » avant les +symboles non alphabétiques figurant dans l'index (s'il y en a). +Par défaut, rien n'est affiché. + +La seconde commande permet de centrer et d'afficher en taille +\commande{large} les titres de chaque rubrique (par défaut, ils +sont placés à gauche et sont de taille normale). + +Pour plus d'informations au sujet de \xindy, vous pouvez +consulter \cite[§ 11.3]{the-latex-companion} ainsi que le site : + +\begin{toile} +\toileurl{http://www.xindy.org/} +\end{toile} + +\section{La commande \intercom{latexmk}} + +La réalisation d'un document complexe, contenant une +bibliographie et un index, nécessite donc l'utilisation des +commandes \intercom{pdflatex}, \intercom{bibtex}, +\intercom{makeindex} ou \intercom{texindy} et une nouvelle fois +\intercom{pdflatex} (voire une fois de plus si la bibliographie +ou l'index modifient la pagination). + +Non seulement, ceci est fastidieux mais, dans l'idéal, il ne +faudrait regénérer la bibliographie que lorsqu'elle a changé. De +même pour l'index. Ce qui est encore plus fastidieux... + +Heureusement, la commande \intercomindex{latexmk} permet +d'automatiser l'enchaînement de ces commandes dans l'ordre +adéquat et uniquement lorsque cela est nécessaire. Elle s'utilise +avec l'option \intercom{-pdf} pour générer un fichier PDF : + +\begin{exemple} +latexmk -pdf document.tex +\end{exemple} + +Il est possible de configurer le comportement de +\intercom{latexmk} grâce au fichier +\path{~/.latexmkrc}\index{latexmkrc@\path{~/.latexmkrc}}. Par +exemple, pour permettre la génération de fichiers PDF sans avoir +à utiliser l'option \intercom{-pdf}, il faut indiquer dans le +fichier \path{~/.latexmkrc} : + +\begin{exemple} +$pdf_mode = 1 ; +\end{exemple} +%stopzone + +On peut alors faire simplement : + +\begin{exemple} +latexmk document.tex +\end{exemple} + +Si \MakeIndex\ est utilisé avec des options (par exemple +\intercom{-c} ou \intercom{-s}), il faut l'indiquer dans le +fichier \path{~/.latexmkrc} : + +\begin{exemple} +$makeindex = 'makeindex -c -s index.ist %O -o %D %S' ; +\end{exemple} +%stopzone + +De même, si vous utilisez \xindy\ plutôt que \MakeIndex, il faut +l'indiquer dans le fichier \path{~/.latexmkrc} : + +\begin{exemple}[fontsize=\small] +$makeindex = 'texindy -L french -M texindy -M index.xdy -o %D %S' ; +\end{exemple} +%stopzone + +Afin de stocker les données nécessaires à son fonctionnement, +\intercom{latexmk} utilise un fichier, créé lors de son premier +lancement, ayant le même nom de base que le fichier \LaTeX\ et +l'extension +\path{.fdb_latexmk}\index{fdb_latexmk@\path{.fdb_latexmk}}. Dans +notre exemple, il s'agit donc du fichier +\path{document.fdb_latexmk}. Ce fichier peut être supprimé au +besoin, il sera recréé par \intercom{latexmk} lors de sa +prochaine utilisation. + +L'option \intercom{-c} (\anglais{clean up}) permet d'effacer ce +fichier ainsi que tous les fichiers générés par \LaTeX, à +l'exception du fichier PDF : + +\begin{exemple} +latexmk -c +\end{exemple} + +\section{Bibliographie et index dans la table des matières} + +Par défaut, la bibliographie et l'index ne figurent pas dans la +table des matières générée par la commande +\commandeindex{tableofcontents}. + +Pour les y faire apparaître, on peut utiliser l'extension +\extensionindex{tocbibind}. Elle fera également apparaître la +liste des tableaux, la table des figures, s'ils existent, ainsi +que la table des matières elle-même. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Aller plus loin avec \LaTeX} + +L'un des intérêts de \LaTeX\ est qu'il est extensible. Il existe +des centaines d'extensions et de classes permettant de réaliser +quasiment tous les documents possibles et imaginables. Nous +allons en présenter quelques unes parmi les plus utiles. Beaucoup +d'autres sont documentées dans \cite{the-latex-companion}, dont +la lecture est indispensable si l'on souhaite utiliser \LaTeX\ à +son plein potentiel. + +\section{CTAN : \textit{the Comprehensive \TeX\ Archive Network}} +\index{CTAN} + +\anglais{The Comprehensive \TeX\ Archive Network} (CTAN) est un +réseau d'une centaine de serveurs répliqués permettant +l'hébergement et la mise à disposition de fichiers relatifs à +\TeX\ et \LaTeX. Toutes les extensions, classes et documentations +dont leurs auteurs souhaitent faire profiter la communauté y sont +rassemblées. + +Le site fédérant l'accès à ces serveurs dispose d'un moteur de +recherche : + +\begin{toile} +\toileurl{http://www.ctan.org/} +\end{toile} + +L'ensemble logiciel \TeX\ Live\index{TeX Live@\TeX\ Live} (voir +le paragraphe \ref{section:procurer}) intègre tous les fichiers +disponibles sur le CTAN dont la licence l'autorise. + +\section{La commande \intercom{texdoc}} + +La commande \intercomindex{texdoc} permet d'afficher la +documentation d'une extension ou d'une classe à partir de son +nom. + +Elle s'utilise dans un interpréteur de commandes avec le nom de +l'extension ou de la classe comme argument : + +\begin{exemple} +texdoc babel +\end{exemple} + +Il existe parfois plusieurs documentations. Par défaut, +\intercom{texdoc} affiche la première. Pour pouvoir choisir celle +à afficher parmi la liste des documentations disponibles, on +utilise l'option \intercom{-l} : + +\begin{exemple} +texdoc -l babel +\end{exemple} + +Bien entendu, la documentation de \intercom{texdoc} est également +disponible : + +\begin{exemple} +texdoc texdoc +\end{exemple} + +\section{Modifier les marges ou le format de papier : l'extension +\extension{geometry}} +\label{section:geometry} +\index{marge} + +Les marges par défaut des classes standards (voir le paragraphe +\ref{section:classe}) sont assez généreuses. Celles des classes +KOMA-Script (voir le paragraphe \ref{section:KOMA-Script}) sont +un peu plus réduites. Sans tomber dans l'excès qui consiste à les +diminuer au-delà du raisonnable, il est parfois utile de réduire +les marges d'un document. + +L'extension \extensionindex{geometry} permet de modifier les +marges. Elle se charge dans le préambule du document avec une ou +plusieurs options permettant d'indiquer la taille des marges. + +Utilisée sans option, l'extension \extension{geometry} définit +des marges plus réduites que les marges standards : + +\begin{exemple} +\usepackage{geometry} +\end{exemple} + +L'option \extensionoption{margin} permet de fixer la même taille +aux quatre marges (tête, pied, gauche et droite) du document : + +\begin{exemple} +\usepackage[margin=2cm]{geometry} +\end{exemple} + +Les options \extensionoption{top} et \extensionoption{bottom} +permettent respectivement de fixer la taille des marges de tête +et de pied : + +\begin{exemple} +\usepackage[top=2cm,bottom=2cm]{geometry} +\end{exemple} + +Les options \extensionoption{left} et \extensionoption{right} +permettent respectivement de fixer la taille des marges gauche et +droite : + +\begin{exemple} +\usepackage[left=2cm,right=2cm]{geometry} +\end{exemple} + +Lorsque le document est destiné à être mis en page en recto-verso +(grâce à l'option de classe \classeoptionindex{twoside}), la +marge intérieure (vers la reliure) est généralement plus petite +que la marge extérieure. On utilise dans ce cas les options +\extensionoption{inner} et \extensionoption{outer} : + +\begin{exemple} +\usepackage[inner=2cm,outer=3cm]{geometry} +\end{exemple} + +Il est bien entendu possible de fixer la taille de toutes les +marges : + +\begin{exemple} +\usepackage[top=2cm,bottom=2cm,inner=2cm,outer=3cm]{geometry} +\end{exemple} + +Enfin, l'extension \extension{geometry} permet également de +spécifier le format de papier lorsque celui-ci n'est pas +standard. Dans ce cas, l'option de classe \classeoption{a4paper} +n'est pas utilisée et le format de papier est indiqué grâce aux +options \extensionoption{paperwidth} et +\extensionoption{paperheight} de l'extension +\extension{geometry} : + +\begin{exemple} +\usepackage[paperwidth=17cm,paperheight=24cm]{geometry} +\end{exemple} + +Dans ce cas, les marges utilisées sont celles définies par défaut +par l'extension \extension{geometry}. Il est possible de les +spécifier explicitement en plus des options +\extensionoption{paperwidth} et \extensionoption{paperheight} +comme vu précédemment. + +\section{Définir l'en-tête et le pied de page : l'extension +\extension{fancyhdr}} + +L'extension \extensionindex{fancyhdr} permet très simplement de +définir le contenu de l'en-tête et du pied de page. + +La figure \ref{figure:fancyhdr-structure} montre la structure que +l'extension \extension{fancyhdr} donne à l'en-tête et au pied de +page. + +\begin{figure}[!htbp] +\begin{syntaxe} +en-tête gauche \hfill en-tête central \hfill en-tête droit +\vspace{2pt} +\hrule +\vspace{1cm} +\hfill corps de la page \hfill +\vspace{1cm} +\hrule +\vspace{4pt} +pied de page gauche \hfill pied de page central \hfill pied de page droit +\end{syntaxe} +\caption{Structure de l'en-tête et du pied de page avec +l'extension \extension{fancyhdr}} +\label{figure:fancyhdr-structure} +\end{figure} + +L'en-tête et le pied de page sont constitués chacun d'une partie +gauche, d'une partie centrale et d'une partie droite. Chacune de +ces parties peut être définie indépendamment des autres. +L'en-tête et le pied de page peuvent être séparés du corps du +document par un filet. + +La commande \commandeindex{pagestyle}, utilisée dans le préambule +du document avec l'argument \code{fancy}, permet d'utiliser +l'extension \extension{fancyhdr} pour la mise en page de +l'en-tête et du pied de page : + +\begin{exemple} +\pagestyle{fancy} +\end{exemple} + +Ceci doit être complété, si nécessaire, par la définition de +l'épaisseur des filets (voir le paragraphe +\ref{section:fancyhdr-filets}). En fonction de la façon dont le +document doit être mis en page, on utilisera ensuite les +commandes indiquées dans le paragraphe +\ref{section:fancyhdr-recto} pour un document mis en page en +recto seul ou les commandes indiquées dans le paragraphe +\ref{section:fancyhdr-recto-verso} pour un document mis en page +en recto-verso. + +Toutes les commandes décrites par la suite sont à utiliser dans +le préambule du document. + +\subsection{Les filets} +\label{section:fancyhdr-filets} + +L'épaisseur du filet placé au-dessous de l'en-tête peut être +définie au moyen de la commande : + +\begin{exemple} +\renewcommand{\headrulewidth}{0.4pt} +\end{exemple} + +Fixer l'épaisseur du filet à \code{0pt} le supprime. + +De même, l'épaisseur du filet placé au-dessus du pied de page +peut être définie au moyen de la commande : + +\begin{exemple} +\renewcommand{\footrulewidth}{0.4pt} +\end{exemple} + +Par défaut, le filet de l'en-tête a une épaisseur de \code{0.4pt} +et celui du pied de page a une épaisseur de \code{0pt}. + +\subsection{En-tête et pied de page dans un document mis en page +en recto seul} +\label{section:fancyhdr-recto} + +Les commandes \commandeindex{lhead}, \commandeindex{chead} et +\commandeindex{rhead} permettent respectivement de définir la +partie gauche, la partie centrale et la partie droite de +l'en-tête. + +Les commandes \commandeindex{lfoot}, \commandeindex{cfoot} et +\commandeindex{rfoot} permettent respectivement de définir la +partie gauche, la partie centrale et la partie droite du pied de +page. + +L'extension \extension{fancyhdr} ayant une définition par défaut +de certaines parties, il est préférable de les définir toutes, en +mettant un argument vide à chaque partie qui doit l'être : + +\begin{exemple} +\lhead{} +\chead{} +\rhead{\textsc{Le titre de mon document}} +\lfoot{} +\cfoot{\thepage} +\rfoot{} +\end{exemple} + +La commande \commandeindex{thepage}\index{numero de page@numéro +de page|see{\commande{thepage}}} (qui est gérée automatiquement +par \LaTeX) permet d'afficher le numéro de page. + +\subsection{En-tête et pied de page dans un document mis en page +en recto-verso} +\label{section:fancyhdr-recto-verso} + +Dans un document mis en page en recto-verso (grâce à l'option de +classe \classeoptionindex{twoside}), il est d'usage d'échanger +les parties gauche et droite de l'en-tête et du pied de page +entre les pages paire et impaire se faisant face. + +Pour cela, l'extension \extension{fancyhdr} dispose des commandes +\commandeindex{fancyhead} et \commandeindex{fancyfoot}, qui +permettent de tenir compte de la parité de la page. + +Par exemple, l'en-tête et le pied de page de ce manuel sont +définis ainsi : + +\begin{exemple} +\fancyhead{} +\fancyhead[LE]{\textit{\nouppercase{\leftmark}}} +\fancyhead[RO]{\textit{\nouppercase{\rightmark}}} +\fancyfoot{} +\fancyfoot[C]{\thepage} +\end{exemple} + +Les commandes \commande{fancyhead} et \commande{fancyfoot}, +utilisées avec un argument vide, permettent de remettre à zéro la +définition des différentes parties de l'en-tête et du pied de +page. + +La commande \commandeindex{leftmark} (qui est gérée +automatiquement par \LaTeX) permet d'afficher le numéro du +chapitre courant suivi de son titre. + +La commande \commandeindex{rightmark} (qui est gérée +automatiquement par \LaTeX) permet d'afficher le numéro de la +section dans laquelle on se trouve au bas de la page suivi de son +titre. + +Ces titres sont par défaut affichés après avoir été convertis en +majuscules. La commande \commandeindex{nouppercase}, fournie par +l'extension \extension{fancyhdr}, permet de les afficher tels +qu'ils ont été saisis dans le document. + +L'argument optionnel des commandes \commande{fancyhead} et +\commande{fancyfoot} permet de déterminer dans quelles conditions +doit être imprimé l'argument obligatoire. + +L'argument optionnel des commandes \commande{fancyhead} et +\commande{fancyfoot} est constitué d'une combinaison des lettres +indiquées dans le tableau \ref{tableau:fancyhdr-options} ou d'une +liste de ces combinaisons, chaque élément étant séparé du suivant +par une virgule. + +\begin{table}[!htbp] +\centering +\begin{tabular}{>{\ttfamily}cl} +\toprule +L & partie gauche (\anglais{left}) \\ +C & partie centrale (\anglais{center}) \\ +R & partie droite (\anglais{right}) \\ +\midrule +E & pages paires (\anglais{even}) \\ +O & pages impaires (\anglais{odd}) \\ +\bottomrule +\end{tabular} +\caption{Arguments optionnels utilisables avec les commandes +\commande{fancyhead} et \commande{fancyfoot}} +\label{tableau:fancyhdr-options} +\end{table} + +Ainsi, \code{LE} s'applique à la partie gauche des pages paires, +\code{RO} à la partie droite des pages impaires, \code{LE,RO} à +la partie gauche des pages paires et à la partie droite des pages +impaires et ainsi de suite. + +Lorsque le numéro de page est placé dans l'en-tête, il l'est du +côté extérieur des pages (c'est-à-dire à gauche des pages paires +et à droite des pages impaires). Le titre courant est alors placé +du côté intérieur (c'est-à-dire l'inverse). L'exemple suivant +permet de réaliser cette mise en page : + +\begin{exemple} +\fancyhead{} +\fancyhead[RE]{\textit{\nouppercase{\leftmark}}} +\fancyhead[LO]{\textit{\nouppercase{\rightmark}}} +\fancyhead[LE,RO]{\thepage} +\fancyfoot{} +\end{exemple} + +À noter que les pages d'ouverture des chapitres ne tiennent pas +compte de l'en-tête et du pied de page définis par l'extension +\extension{fancyhdr}. Une page d'ouverture de chapitre n'a pas +d'en-tête et son pied de page ne comporte que le numéro de page +en partie centrale. + +\section{Changer la police de caractères} + +Nous avons utilisé jusqu'ici l'extension \extension{lmodern} afin +de rédiger nos documents avec la police de caractères Latin +Modern. De nombreuses autres polices de caractères sont +utilisables avec \LaTeX. Certaines nécessitent l'utilisation de +commandes un peu compliquées que nous n'aborderons pas mais +d'autres sont utilisables de la même façon que Latin Modern, +c'est-à-dire en chargeant simplement une extension. + +Le tableau \ref{tableau:polices-avec-math} répertorie quelques +extensions permettant de déterminer la police de caractères +utilisée dans le document. + +\input{exemples/polices-avec-math.tex} + +Ces extensions fournissent la police de caractères utilisée pour +le texte mais également une police mathématique assortie. Pour +cela, avec les extensions \extensionindex{anttor}, +\extensionindex{iwona} et \extensionindex{kurier}, il est +nécessaire d'utiliser l'option \extensionoption{math}. +L'extension \extensionindex{mathdesign}, quant à elle, s'utilise +soit avec l'option \extensionoption{charter} pour utiliser la +police Bitstream Charter soit avec l'option +\extensionoption{utopia} pour utiliser la police Adobe Utopia. + +Les extensions \extensionindex{arev}, \extensionindex{cmbright}, +\extensionindex{gfsartemisia}, \extensionindex{kpfonts}, +\extensionindex{lmodern} et \extensionindex{mathdesign} +fournissent un ensemble cohérent de polices de caractères +permettant de couvrir toutes les commandes de changement de style +du tableau \ref{tableau:style-commandes}. + +Les extensions \extensionindex{anttor}, \extensionindex{ccfonts}, +\extensionindex{fourier}, \extensionindex{fouriernc}, +\extensionindex{iwona}, \extensionindex{kurier}, +\extensionindex{mathpazo} et \extensionindex{mathptmx}, en +revanche, ont besoin d'être complétées pour pouvoir utiliser les +commandes \commande{textsf} et \commande{texttt} (ou d'autres +commandes ou environnements les utilisant). Les extensions le +permettant sont indiquées dans le tableau +\ref{tableau:polices-complementaires}. + +\input{exemples/polices-complementaires.tex} + +Ainsi, il convient de choisir une extension correspondant à la +commande \commande{textsf} et une autre correspondant à la +commande \commande{texttt}. Pour compléter l'extension +\extension{fourier}, par exemple, on peut donc utiliser : + +\begin{exemple} +\usepackage{fourier} +\usepackage{helvet} +\usepackage{courier} +\end{exemple} + +Par ailleurs, il est préférable d'utiliser l'extension +\extensionindex{mathpazo} avec l'option \extensionoption{sc} ou +avec l'option \extensionoption{osf}. Ces deux options font +utiliser à l'extension \extension{mathpazo} une police de +meilleure qualité, avec de vraies petites capitales. En outre, +l'option \extensionoption{osf} permet d'utiliser des chiffres +français (\oldstylenums{0123456789}) plutôt que des chiffres +anglais (0123456789). + +Les extensions répertoriées dans le tableau +\ref{tableau:polices-sans-math} permettent d'utiliser des polices +de caractères ne disposant pas d'une police mathématique +assortie. Si nécessaire, l'extension \extensionindex{eulervm} +permet de leur ajouter une police mathématique générique (dont on +peut voir un exemple dans la figure \ref{figure:police-eulervm}). + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics{police-eulervm.pdf}} +% XXX \index{eulervm@\extension{eulervm} (extension)} +\caption{Exemple de document réalisé avec l'extension +\extension{eulervm}} +\label{figure:police-eulervm} +\end{figure} + +\input{exemples/polices-sans-math.tex} + +Les extensions \extensionindex{bera}, \extensionindex{bookman} et +\extensionindex{newcent} fournissent un ensemble cohérent de +polices de caractères permettant de couvrir toutes les commandes +de changement de style du tableau \ref{tableau:style-commandes}. + +Les extensions \extensionindex{chancery}, +\extensionindex{charter}, \extensionindex{cyklop}, +\extensionindex{tgbonum}, \extensionindex{tgchorus}, +\extensionindex{tgpagella}, \extensionindex{tgschola} et +\extensionindex{tgtermes}, en revanche, ont besoin d'être +complétées par des extensions du tableau +\ref{tableau:polices-complementaires}. + +L'extension \extensionindex{libertine}, quant à elle, n'a besoin +d'être complétée que par une extension correspondant à la +commande \commande{texttt}. + +Pour approfondir le sujet, vous pouvez lire \cite[chapitre 7 et § +8.8]{the-latex-companion} et consulter le site suivant, qui +présente de nombreuses polices de caractères utilisables avec +\LaTeX\ : + +\begin{toile} +\toileurl{http://www.tug.dk/FontCatalogue/} +\end{toile} + +\section{Inclure des graphiques} + +L'inclusion d'un graphique dans un document \LaTeX\ peut se faire +de deux façons : + +\begin{itemize} + +\item en faisant appel à une image stockée dans un fichier + extérieur (voir le paragraphe + \ref{section:includegraphics}) ; + +\item en décrivant le graphique au sein-même du document \LaTeX\ + au moyen d'un langage de description adapté (voir le + paragraphe \ref{section:tikz}). + +\end{itemize} + +Cette seconde façon de faire présente l'avantage de pouvoir +utiliser des expressions rédigées avec \LaTeX\ pour le texte +contenu dans le graphique. Ceci permet d'avoir la même police de +caractères dans le graphique que dans le texte du document, ce +qui offre une meilleure cohérence visuelle. Ceci permet également +d'utiliser des expressions mathématiques dans le graphique. Un +exemple de graphique réalisé de cette façon est présenté dans la +figure \ref{figure:tikz}. + +Pour ces raisons, c'est souvent cette approche qui est retenue. +En témoigne le grand nombre d'extensions de \LaTeX\ permettant de +décrire des graphiques au sein-même d'un document et dont les +plus répandues sont présentées dans +\cite{the-latex-graphics-companion}. + +L'un des derniers arrivants dans ce domaine, malheureusement trop +récent pour disposer d'une description dans +\cite{the-latex-graphics-companion} mais néanmoins très +prometteur, s'appelle \TikZ. Nous en discuterons rapidement au +paragraphe \ref{section:tikz} puisqu'il dispose d'une excellente +documentation d'introduction en français à laquelle vous pourrez +vous référer pour en savoir plus. + +\subsection{La commande \commande{includegraphics}} +\label{section:includegraphics} + +Il est possible d'inclure des fichiers aux formats +PDF\index{PDF}, PNG\index{PNG} et JPEG\index{JPEG} dans un +document \LaTeX, grâce à l'extension \extensionindex{graphicx}. + +Pour inclure le fichier, on utilise la commande +\commandeindex{includegraphics} : + +\begin{syntaxe} +\commande{includegraphics}\argument{fichier} +\end{syntaxe} + +Il est préférable de placer cette commande dans une figure, ce +qui permet de donner à l'image une légende et un numéro et +surtout de pouvoir la déplacer si elle risque d'être coupée en +bas de page. + +On peut aussi indiquer la taille que l'on désire donner à +l'image, en largeur : + +\begin{syntaxe} +\commande{includegraphics}\code{[width=}\var{largeur}\code{]}\argument{fichier} +\end{syntaxe} + +\noindent ou en hauteur : + +\begin{syntaxe} +\commande{includegraphics}\code{[height=}\var{hauteur}\code{]}\argument{fichier} +\end{syntaxe} + +Voici donc le code type d'inclusion d'un fichier au format PDF +dans un document \LaTeX\ : + +\begin{exemple} +\documentclass[a4paper,11pt]{article} + +\usepackage[french]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{lmodern} +\usepackage{graphicx} +\usepackage{microtype} + +\usepackage{hyperref} + +\begin{document} + +[...] + +\begin{figure}[!htbp] +\centering +\includegraphics[width=10cm]{fichier.pdf} +\caption{Image} +\label{figure:image} +\end{figure} + +[...] + +\end{document} +\end{exemple} + +\subsection{L'extension \TikZ} +\label{section:tikz} +\index{TikZ@\TikZ} + +L'extention \TikZ\ permet d'inclure des graphiques dans un +document \LaTeX\ au moyen d'un langage de description. Un exemple +de graphique réalisé avec \TikZ\ est présenté dans la figure +\ref{figure:tikz}. + +\begin{figure}[!htbp] +\centering +\input{exemples/tikz.tex} +\caption{Exemple de graphique réalisé avec l'extension \TikZ} +\label{figure:tikz} +\end{figure} + +L'utilisation de \TikZ\ nécessite le chargement de l'extension +\extensionindex{tikz} dans le préambule du document : + +\begin{exemple} +\usepackage{tikz} +\end{exemple} + +L'inclusion d'un graphique se fait ensuite dans le corps du +document au moyen de l'environnement +\environnementindex{tikzpicture}, qu'on place généralement à +l'intérieur d'une figure. + +Pour vous donner une idée de la façon dont on décrit un graphique +avec \TikZ, voici le code source de celui correspondant à la +figure \ref{figure:tikz} : + +\VerbatimInput[fontsize=\small,frame=single,samepage=true]{exemples/tikz.tex} + +Nous n'irons pas plus loin ici car il existe une excellente +documentation d'introduction à \TikZ, en français. Vous pouvez +donc vous référer à \cite{tikz-pour-l-impatient} pour en savoir +plus sur \TikZ. + +Par la suite, la lecture de la documentation officielle de \TikZ\ +\cite{the-tikz-and-pgf-packages} vous permettra de parfaire vos +connaissances. + +Enfin, le site suivant présente de nombreux exemples de +graphiques réalisés avec \TikZ, accompagnés de leur code source, +ce qui vous permettra de vous donner un large aperçu de ce qu'il +est possible de faire avec \TikZ\ : + +\begin{toile} +\toileurl{http://www.texample.net/tikz/} +\end{toile} + +Signalons également l'existence de l'extension \PGFPlots\ +\cite{manual-for-package-pgfplots}, basée sur \TikZ, qui permet +de réaliser très simplement des graphiques à partir des +coordonnées d'un ensemble de points : + +\begin{toile} +\toileurl{http://pgfplots.sourceforge.net/} +\end{toile} + +\section{Utiliser d'autres classes que les classes standards} + +Il existe d'autres classes que les classes standards (qui sont +indiquées au paragraphe \ref{section:classe}). Certaines +permettent de concevoir de nouveaux types de document, comme la +classe \classe{beamer} (voir le paragraphe \ref{section:beamer}) +qui est utilisée pour concevoir des présentations destinées à +être projetées avec un vidéoprojecteur, mais d'autres ont +vocation à remplacer les classes standards. À cet effet, elles +s'utilisent exactement de la même façon mais proposent des +possibilités supplémentaires. + +C'est le cas de l'ensemble KOMA-Script et de la classe +\classe{memoir}. + +\subsection{KOMA-Script} +\label{section:KOMA-Script} + +L'ensemble KOMA-Script\index{KOMA-Script} fournit des classes +\classeindex{scrartcl}, \classeindex{scrreprt} et +\classeindex{scrbook} destinées à remplacer respectivement les +classes standards \classeindex{article}, \classeindex{report} et +\classeindex{book}, comme indiqué dans le tableau +\ref{tableau:KOMA-Script}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{cc} +\toprule +\textbf{Classe standard} & \textbf{Classe KOMA-Script} \\ +\midrule +\classeindex{article} & \classeindex{scrartcl} \\ +\classeindex{report} & \classeindex{scrreprt} \\ +\classeindex{book} & \classeindex{scrbook} \\ +\bottomrule +\end{tabular} +\caption{Correspondance entre classes standards et classes KOMA-Script} +\label{tableau:KOMA-Script} +\end{table} + +Pour utiliser une classe KOMA-Script, il suffit de changer +l'argument de la commande \commande{documentclass} dans un +document existant ou de créer directement un nouveau document +utilisant cette classe. Rien d'autre n'est à changer. + +On peut omettre les options de classe \classeoption{a4paper} et +\classeoption{11pt}, qui sont utilisées par défaut par les +classes KOMA-Script. + +KOMA-Script fournit également la classe \classeindex{scrlttr2}, +qui permet d'écrire des lettres (voir le paragraphe +\ref{section:scrlttr2}). À la différence des classes indiquées +dans le tableau \ref{tableau:KOMA-Script}, la classe +\classe{scrlttr2} ne peut être directement utilisée en +remplacement de la classe standard \classeindex{letter} car elle +utilise une syntaxe différente. + +L'intérêt des classes KOMA-Script est qu'elles offrent des +possibilités absentes des classes standards ou nécessitant +l'utilisation d'extensions. Elles permettent en particulier de +modifier les marges du document, la présentation des titres, des +légendes, de la table des matières et bien d'autres choses. + +La description des possibilités offertes par KOMA-Script dépasse +le cadre de ce manuel. Pour en savoir davantage sur KOMA-Script, +vous pouvez vous référer à sa documentation : + +\begin{toile} +\toileurl{http://mirror.ctan.org/macros/latex/contrib/koma-script/scrguien.pdf} +\end{toile} + +\subsection{La classe \classe{memoir}} + +La classe \classeindex{memoir} est destinée à remplacer les +classes standards \classeindex{book} et \classeindex{report}. +Elle intègre par ailleurs les fonctionnalités d'un grand nombre +d'extensions. + +Pour qui doit rédiger un ouvrage volumineux et complexe, elle est +particulièrement intéressante. + +Là encore, la description des possibilités offertes par la classe +\classe{memoir} dépasse le cadre de ce manuel. Pour en savoir +davantage sur la classe \classe{memoir}, vous pouvez vous référer +à sa documentation : + +\begin{toile} +\toileurl{http://mirror.ctan.org/macros/latex/contrib/memoir/memman.pdf} +\end{toile} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Écrire une lettre : les classes \classe{letter} et +\classe{scrlttr2}} +\index{lettre} + +Les chapitres précédents vous ont montré que \LaTeX\ était +parfaitement adapté à la conception de documents complexes, avec +des tableaux, des formules mathématiques, des graphiques, une +bibliographie, un index et une table des matières, mais il permet +aussi de réaliser des lettres, qui sont généralement des +documents plus simples, au moyen des classes \classe{letter} et +\classe{scrlttr2}. Cette dernière, qui offre plus de possibilités +et respecte mieux les habitudes de présentation françaises, sera +étudiée plus en détail. + +\section{La classe \classe{letter}} + +Un document réalisé avec la classe \classeindex{letter} peut +contenir plusieurs lettres, chacune figurant dans un +environnement \environnementindex{letter}. Celles-ci peuvent +comporter la même adresse d'expéditeur et la même signature si +ces éléments sont indiqués dans le préambule. + +La commande \commandeindex{makelabels}, utilisée dans le +préambule, permet de générer une page spéciale, contenant +uniquement les adresses des destinataires. Si l'on imprime cette +page sur une feuille de papier autocollant, on a ainsi des +étiquettes que l'on peut coller sur les enveloppes. + +La figure \ref{figure:letter-source} montre le code source d'une +lettre réalisée avec la classe \classe{letter}, la figure +\ref{figure:letter-document} montre le document généré. + +\begin{figure}[!htbp] +\VerbatimInput[frame=single]{exemples/letter.tex} +\caption{Exemple de lettre réalisée avec la classe +\classe{letter} (code source)} +\label{figure:letter-source} +\end{figure} + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics[width=0.9\textwidth]{letter.pdf}} +\caption{Exemple de lettre réalisée avec la classe +\classe{letter} (document généré)} +\label{figure:letter-document} +\end{figure} + +Pour plus d'informations sur la classe \classe{letter}, vous +pouvez consulter +\cite[pages 84--86]{latex-a-document-preparation-system}. + +\subsection{Les commandes mutualisables} + +Certaines indications peuvent être globales pour toutes les +lettres d'un même document si les commandes correspondantes sont +utilisées dans le préambule. Il s'agit des commandes +\commandeindex{address} et \commandeindex{signature}. + +\subsubsection{La commande \commande{address}} + +La commande \commandeindex{address} permet de définir le nom et +l'adresse postale de l'expéditeur, qui seront imprimés en haut à +droite de la lettre. Les différentes lignes du nom et de +l'adresse sont séparées par \boiboiindex\ : + +\begin{exemple} +\address{babafou \\ Pays des babasses} +\end{exemple} + +\subsubsection{La commande \commande{signature}} + +La commande \commandeindex{signature} permet de définir la +signature, qui sera imprimée au bas de la lettre. Les différentes +lignes de la signature sont séparées par \boiboiindex\ : + +\begin{exemple} +\signature{Ton petit babafou \\ qui t'aime} +\end{exemple} + +\subsection{L'environnement \environnement{letter}} +\label{section:letter-letter} + +Chaque lettre est contenue dans un environnement +\environnementindex{letter} dont l'argument est l'adresse du +destinataire. Les différentes lignes de l'adresse sont séparées +par \boiboiindex. + +La commande \commandeindex{opening} permet de commencer la lettre +proprement dite en imprimant son argument. La commande +\commandeindex{closing} la termine par une formule de politesse. +Entre ces deux commandes, se situe le texte de la lettre qui peut +contenir n'importe quelle commande \LaTeX\ (à l'exception des +commandes qui n'ont pas de sens dans une lettre, comme +\commande{section}, par exemple). + +Le document peut contenir plusieurs lettres, chacune figurant +dans un environnement \environnement{letter}. Toutes ces lettres +auront la même adresse d'expéditeur et la même signature +(commandes \commande{address} et \commande{signature}) si +celles-ci sont définies dans le préambule. Il est possible de +définir une adresse d'expéditeur et une signature différentes +pour une lettre particulière en utilisant les commandes +\commandeindex{address} et \commandeindex{signature} entre +\commande{begin\{letter\}} et \commande{opening}. + +\section{La classe \classe{scrlttr2}} +\label{section:scrlttr2} + +La classe \classeindex{scrlttr2} fait partie de l'ensemble +KOMA-Script (voir le paragraphe \ref{section:KOMA-Script}). À la +différence des autres classes fournies par cet ensemble, la +classe \classe{scrlttr2} n'est pas un remplaçant direct de la +classe \classe{letter}, c'est-à-dire qu'on ne peut pas prendre +une lettre écrite avec la classe \classe{letter} et simplement +remplacer l'argument de la commande \commande{documentclass} pour +utiliser la classe \classe{scrlttr2}. Les différences sont +néanmoins minimes. + +La classe \classe{scrlttr2} offre plus de possibilités que la +classe \classe{letter} et respecte mieux les habitudes de +présentation françaises. + +La figure \ref{figure:scrlttr2-source} montre le code source +d'une lettre réalisée avec la classe \classe{scrlttr2}, la figure +\ref{figure:scrlttr2-document} montre le document généré. + +\begin{figure}[!htbp] +\VerbatimInput[frame=single]{exemples/scrlttr2.tex} +\caption{Exemple de lettre réalisée avec la classe +\classe{scrlttr2} (code source)} +\label{figure:scrlttr2-source} +\end{figure} + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics[width=0.9\textwidth]{scrlttr2.pdf}} +\caption{Exemple de lettre réalisée avec la classe +\classe{scrlttr2} (document généré)} +\label{figure:scrlttr2-document} +\end{figure} + +\subsection{L'option de classe \classeoption{NF}} + +L'option de classe \classeoptionindex{NF} permet de générer une +lettre respectant la norme française NF Z 11-001 : + +\begin{exemple} +\documentclass[NF]{scrlttr2} +\end{exemple} + +En particulier, ceci positionne l'adresse du destinataire au bon +endroit pour qu'elle apparaisse correctement dans une enveloppe à +fenêtre une fois pliée. + +Rappelons que l'utilisation des options de classe +\classeoption{a4paper} et \classeoption{11pt} n'est pas +nécessaire avec les classes KOMA-Script (voir le paragraphe +\ref{section:KOMA-Script}). + +\subsection{Les variables} + +Le paramétrage de la lettre se fait au moyen de \emph{variables} +qui sont spécifiées grâce à la commande +\commandeindex{setkomavar}, dont le premier argument indique la +variable à renseigner et le second la valeur à lui attribuer : + +\begin{syntaxe} +\commande{setkomavar}\argument{variable}\argument{valeur} +\end{syntaxe} + +La commande \commande{setkomavar} est généralement utilisée dans +le préambule, auquel cas les variables renseignées de cette façon +ont la même valeur pour toutes les lettres du document. Il est +également possible de l'utiliser dans le corps du document, à +l'extérieur des environnements \environnement{letter}, auquel cas +les variables renseignées de cette façon ont la même valeur pour +toutes les lettres qui suivent. + +Si la valeur d'une variable doit être scindée en plusieurs +lignes, celles-ci doivent être séparées par \boiboiindex. + +Le tableau \ref{tableau:scrlttr2-variables} indique les plus +employées des variables utilisables avec la classe +\classe{scrlttr2} (il en existe un peu plus d'une trentaine). + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll} +\toprule +\multicolumn{1}{c}{\textbf{Variable}} & +\multicolumn{1}{c}{\textbf{Signification}} \\ +\midrule +\komavarindex{date} & date \\ +\komavarindex{fromaddress} & adresse de l'expéditeur \\ +\komavarindex{fromname} & nom de l'expéditeur \\ +\komavarindex{myref} & référence de la lettre \\ +\komavarindex{signature} & signature \\ +\komavarindex{subject} & objet de la lettre \\ +\komavarindex{yourref} & référence de la lettre à laquelle on répond \\ +\bottomrule +\end{tabular} +\caption{Variables utilisables avec la classe \classe{scrlttr2}} +\label{tableau:scrlttr2-variables} +\end{table} + +Si la variable \komavar{date} n'est pas renseignée, la date du +jour de la compilation est indiquée automatiquement dans la +lettre. + +Contrairement à la classe \classe{letter}, dans laquelle la +commande \commande{address} sert à définir le nom et l'adresse de +l'expéditeur, la classe \classe{scrlttr2} utilise deux variables +différentes, \komavar{fromname} pour le nom et +\komavar{fromaddress} pour l'adresse. + +Si la variable \komavar{signature} n'est pas renseignée, la +valeur de la variable \komavar{fromname} est utilisée comme +signature. + +\subsection{Les options} +\label{section:scrlttr2-options} + +Certains détails de mise en page peuvent être modifiés grâce à la +commande \commandeindex{KOMAoptions} (qui n'a pas été utilisée +dans l'exemple de la figure \ref{figure:scrlttr2-source}). +Employée dans le préambule du document, celle-ci impacte toutes +les lettres du document. Il est également possible de limiter la +portée de certaines options à une seule lettre (voir le +paragraphe \ref{section:scrlttr2-letter}). + +Il existe de nombreuses options. Nous n'en étudierons que deux. +Vous pouvez vous reporter à la documentation de KOMA-Script pour +avoir une description des autres. + +L'option \komaoptionindex{backaddress} permet de supprimer +l'adresse de retour écrite en petits caractères au-dessus de +l'adresse du destinataire et ayant vocation à être visible dans +la fenêtre de l'enveloppe : + +\begin{exemple} +\KOMAoptions{backaddress=false} +\end{exemple} + +L'option \komaoptionindex{foldmarks} permet de supprimer les +marques facilitant le pliage de la lettre (qui n'ont par exemple +pas de sens lorsque la lettre n'est pas envoyée par courrier +postal mais par courriel sous forme de fichier PDF) : + +\begin{exemple} +\KOMAoptions{foldmarks=hp} +\end{exemple} + +Lorsqu'on utilise plusieurs options, il est possible de les +regrouper dans la même commande \commande{KOMAoptions} en +séparant chaque option de la suivante par une virgule : + +\begin{exemple} +\KOMAoptions{backaddress=false,foldmarks=hp} +\end{exemple} + +\noindent qu'on peut également écrire : + +\begin{exemple} +\KOMAoptions +{ + backaddress = false , + foldmarks = hp +} +\end{exemple} + +\subsection{L'environnement \environnement{letter}} +\label{section:scrlttr2-letter} + +L'environnement \environnementindex{letter} de la classe +\classe{scrlttr2} s'utilise exactement comme celui de la classe +\classe{letter} (voir le paragraphe \ref{section:letter-letter}). + +Pour appliquer certaines options (voir le paragraphe +\ref{section:scrlttr2-options}) à une lettre en particulier, on +utilise l'argument optionnel de l'environnement +\environnement{letter} avec la même syntaxe que la commande +\commande{KOMAoptions} : + +\begin{exemple} +\begin{letter}[foldmarks=hp]{Père Noël \\ Dans les nuages} +\end{exemple} + +\section{Règles typographiques} +\label{section:typographie-adresse-téléphone} +\index{typographie} + +\subsection{Adresse} + +La Poste recommande : + +\begin{itemize} + +\item d'écrire une adresse sur six lignes au maximum ; + +\item de ne jamais mettre de virgule après le numéro de rue ; + +\item d'écrire en majuscules la dernière ligne, sans accents ni + ponctuation (ce qui est contraire à toutes les règles + typographiques mais facilite, paraît-il, la reconnaissance + optique) et si possible l’ensemble de l’adresse. + +\end{itemize} + +Ce qui donne, par exemple : + +\begin{exemple} +Séraphin Lampion +51 rue des Bouffonneries +72530 YVRE L EVEQUE +\end{exemple} + +\begin{toile} +\toileurl{http://www.laposte.fr/Particulier/Envoyez-et-recevez-du-courrier/Les-offres-et-conseils-pas-a-pas/2.-Redaction-des-adresses} +\toileurl{http://www.orthotypographie.fr/volume-I/accolade-allemand.html\#Adresse} +\end{toile} + +\subsection{Numéro de téléphone} + +Un numéro de téléphone (du moins en France) se compose de cinq +groupes de deux chiffres séparés par des espaces (pas de point ni +de tiret) : + +\begin{exemple} +01 23 45 67 89 +\end{exemple} + +Il en est de même pour un numéro de télécopieur. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Rédiger un CV} +\index{CV} + +De nombreux recruteurs exigent sans vergogne une lettre de +motivation et un CV au seul format Word. D'autres, plus ouverts +d'esprit et en phase avec leur époque, acceptent volontiers le +format PDF. C'est l'occasion de rédiger son CV avec \LaTeX. Nous +étudierons d'abord la classe \classe{moderncv}, qui produit +probablement le résultat le plus joli, puis la classe +\classe{curve} et enfin l'extension \classe{currvita}. + +La lecture de l'article +\cite{writing-the-curriculum-vitae-with-latex} complètera ce +chapitre. Il contient quelques indications sur la façon de +rédiger un CV ainsi qu'un tour d'horizon des classes permettant +de rédiger un CV. + +Par ailleurs, les règles typographiques indiquées au paragraphe +\ref{section:typographie-adresse-téléphone} au sujet de l'adresse +et du numéro de téléphone sont également valables dans un CV. + +\section{La classe \classe{moderncv}} + +La classe \classeindex{moderncv} permet très simplement de +rédiger un CV d'aspect sobre et efficace, qu'on peut agrémenter +d'une touche de couleur et d'une photo. + +La figure \ref{figure:moderncv-source} montre le code source d'un +CV réalisé avec la classe \classe{moderncv}, la figure +\ref{figure:moderncv-casual-document} montre le document généré +avec le thème \theme{casual} et la figure +\ref{figure:moderncv-classic-document} montre le document généré +avec le thème \theme{classic}. + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,lastline=33,numbers=left]{exemples/moderncv.tex} +\caption{Exemple de CV réalisé avec la classe \classe{moderncv} +(code source)} +\label{figure:moderncv-source} +\end{figure} + +\begin{figure}[!htbp] +\ContinuedFloat +\VerbatimInput[firstline=34,frame=single,lastline=69,numbers=left]{exemples/moderncv.tex} +\caption[]{Exemple de CV réalisé avec la classe \classe{moderncv} +(code source)} +\end{figure} + +\begin{figure}[!htbp] +\ContinuedFloat +\VerbatimInput[firstline=70,frame=single,numbers=left]{exemples/moderncv.tex} +\caption[]{Exemple de CV réalisé avec la classe \classe{moderncv} +(code source)} +\end{figure} + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics[width=0.9\textwidth]{moderncv-casual.pdf}} +\caption{Exemple de CV réalisé avec la classe \classe{moderncv}, +thème \theme{casual} (document généré)} +\label{figure:moderncv-casual-document} +\end{figure} + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics[width=0.9\textwidth]{moderncv-classic.pdf}} +\caption{Exemple de CV réalisé avec la classe \classe{moderncv}, +thème \theme{classic} (document généré)} +\label{figure:moderncv-classic-document} +\end{figure} + +\subsection{Les thèmes} + +En effet, l'aspect de l'en-tête et du pied de page du CV dépend +du \emph{thème}\index{theme@thème (\classe{moderncv})} utilisé. +La commande \commandeindex{moderncvtheme}, utilisée dans le +préambule du document, permet d'en définir le thème grâce à son +argument, qui peut être soit \moderncvthemeindex{casual} soit +\moderncvthemeindex{classic} : + +\begin{exemple} +\moderncvtheme{classic} +\end{exemple} + +Comme on peut le voir dans la figure +\ref{figure:moderncv-casual-document}, le thème \theme{casual} +place une partie des informations personnelles dans l'en-tête et +le reste dans le pied de page. Le thème \theme{classic}, en +revanche, place toutes les informations personnelles dans +l'en-tête, comme on peut le voir dans la figure +\ref{figure:moderncv-classic-document}. Il est plus utile pour un +recruteur d'avoir toutes les informations personnelles au même +endroit donc il est recommandé d'utiliser plutôt le thème +\theme{classic}. + +L'argument optionnel de la commande \commande{moderncvtheme}, qui +peut valoir \code{blue} (c'est la valeur par défaut), +\code{green}, \code{grey}, \code{orange} ou \code{red}, permet de +choisir la couleur des rubriques : + +\begin{exemple} +\moderncvtheme[green]{classic} +\end{exemple} + +On peut y ajouter l'option \code{roman} pour utiliser dans les +rubriques une police à empattement plutôt que la police sans +empattement utilisée par défaut : + +\begin{exemple} +\moderncvtheme[green,roman]{classic} +\end{exemple} + +\subsection{Les informations personnelles} + +Les informations personnelles sont renseignées dans le préambule. +On peut en voir un exemple dans la figure +\ref{figure:moderncv-source}, de la ligne 16 à la ligne 27. + +La commande \commandeindex{firstname} (obligatoire) permet +d'indiquer le prénom : + +\begin{exemple} +\firstname{Séraphin} +\end{exemple} + +La commande \commandeindex{familyname} (obligatoire) permet +d'indiquer le nom de famille : + +\begin{exemple} +\familyname{Lampion} +\end{exemple} + +La commande \commandeindex{title} (optionnelle) permet d'indiquer +le titre du CV (qui correspond souvent au poste actuel ou au +poste recherché), qui n'est affiché qu'avec le thème +\theme{classic} : + +\begin{exemple} +\title{Représentant en assurances} +\end{exemple} + +La commande \commandeindex{address} (optionnelle) permet +d'indiquer l'adresse postale. Son premier argument contient le +numéro et la rue, qu'on peut scinder en plusieurs lignes avec +\boiboiindex\ si nécessaire. Son second argument contient le code +postal et la ville. + +\begin{exemple} +\address{Place de la mairie}{99999 MOULINSART} +\end{exemple} + +La commande \commandeindex{mobile} (optionnelle) permet +d'indiquer le numéro de téléphone mobile : + +\begin{exemple} +\mobile{06 02 03 04 05} +\end{exemple} + +La commande \commandeindex{phone} (optionnelle) permet d'indiquer +le numéro de téléphone fixe : + +\begin{exemple} +\phone{01 02 03 04 05} +\end{exemple} + +La commande \commandeindex{fax} (optionnelle) permet d'indiquer +le numéro de télécopieur : + +\begin{exemple} +\fax{01 02 03 04 05} +\end{exemple} + +La commande \commandeindex{email} (optionnelle) permet d'indiquer +l'adresse électronique : + +\begin{exemple} +\email{lampion@mondass.fr} +\end{exemple} + +La commande \commandeindex{extrainfo} (optionnelle) permet +d'indiquer des informations supplémentaires, qu'on peut scinder +en plusieurs lignes avec \boiboiindex\ si nécessaire : + +\begin{exemple} +\extrainfo{Marié \\ beaucoup d'enfants} +\end{exemple} + +La commande \commandeindex{photo} (optionnelle) permet d'indiquer +le nom du fichier au format PDF, PNG ou JPEG contenant la photo : + +\begin{exemple} +\photo{seraphin-lampion.jpg} +\end{exemple} + +On peut en fixer la hauteur au moyen de l'argument optionnel de +la commande \commande{photo} : + +\begin{exemple} +\photo[3cm]{seraphin-lampion.jpg} +\end{exemple} + +La commande \commandeindex{quote} (optionnelle) permet d'indiquer +un texte qui sera affiché entre les informations personnelles et +les rubriques du CV : + +\begin{exemple} +\quote{Je vais vous fignoler un amour de petit contrat...} +\end{exemple} + +Enfin, la commande \commandeindex{maketitle}, utilisée au début +du corps du document, permet d'imprimer ces informations, en +fonction du thème choisi. + +\subsection{Les rubriques} + +Les rubriques du CV sont indiquées au moyen des commandes +\commandeindex{section} et \commandeindex{subsection} (les autres +commandes de hiérarchisation n'existent pas dans la classe +\classe{moderncv}). + +Elles sont composées dans la couleur indiquée par l'argument +optionnel de la commande \commande{moderncvtheme} (bleu par +défaut). Les sections sont précédées d'une barre horizontale de +la même couleur. + +\subsection{Le contenu des rubriques} + +Selon sa nature, le contenu des rubriques peut être indiqué à +l'aide d'une des six commandes suivantes. + +Quatre d'entre elles utilisent l'espace situé sous la barre +horizontale des sections, qu'on appellera \emph{partie gauche}. +Toutes utilisent l'espace situé sous le titre des sections, qu'on +appellera \emph{partie droite}. + +\subsubsection{La commande \commande{cventry}} + +La commande \commandeindex{cventry} est généralement utilisée +pour décrire l'expérience professionnelle et la formation : + +\begin{exemple} +\cventry{1955 -- 1958}{Diplôme de représentant} +{École de la vie}{Bruxelles}{option « embobinage »} +{Une formation ambitieuse qui développe l'assurance en soi.} +\end{exemple} + +La commande \commandeindex{cventry} accepte six arguments. +Certains d'entre eux peuvent ne pas être renseignés, auquel cas +il convient de conserver néanmoins les couples d'accolades +correspondants comme on peut le voir dans la figure +\ref{figure:moderncv-source} à la ligne 36. + +Le premier argument est placé dans la partie gauche. Il est +utilisé pour indiquer un intervalle temporel correspondant au +poste ou à la formation. + +Les arguments suivants sont placés dans la partie droite. + +Le deuxième argument est composé en gras, suivi du troisième +argument, composé en italique. L'un d'entre eux est utilisé pour +indiquer le poste occupé ou le diplôme obtenu, l'autre pour +indiquer l'entreprise ou l'organisme de formation. + +Les quatrième et cinquième arguments sont composés à la suite et +sont utilisés pour toute information complémentaire (option +suivie dans le cas de la formation, par exemple). + +Le sixième argument est composé sous la ligne formée par les +précédents et permet de développer le poste occupé ou la +formation suivie. On y utilise généralement l'environnement +\environnement{itemize} comme on peut le voir dans la figure +\ref{figure:moderncv-source}, de la ligne 37 à la ligne 43. + +\subsubsection{La commande \commande{cvcomputer}} + +La commande \commandeindex{cvcomputer} est utilisée pour indiquer +ses compétences en informatique mais on peut l'utiliser pour +indiquer tout autre chose dans un domaine différent : + +\begin{exemple} +\cvcomputer{Humour}{Les histoires de mon oncle Anatole.} + {Enfumage}{Je parle beaucoup...} +\end{exemple} + +La commande \commandeindex{cvcomputer} accepte quatre arguments +qui sont composés sous la forme d'un tableau de quatre colonnes. +La première colonne est placée dans la partie gauche, les +suivantes dans la partie droite. Les deux derniers arguments +peuvent ne pas être renseignés, auquel cas il convient de +conserver néanmoins les couples d'accolades correspondants comme +on peut le voir dans la figure \ref{figure:moderncv-source} à la +ligne 61. + +Les premier et troisième arguments font office de titre ou de +catégorie pour l'argument suivant, les deuxième et quatrième de +description. + +\subsubsection{La commande \commande{cvlanguage}} + +La commande \commandeindex{cvlanguage} permet d'indiquer les +langues étrangères : + +\begin{exemple} +\cvlanguage{Belge}{courant}{langue maternelle} +\cvlanguage{Espagnol}{notions}{} +\end{exemple} + +La commande \commandeindex{cvlanguage} accepte trois arguments. +Le premier argument, placé dans la partie gauche, indique la +langue. Le deuxième argument, composé en gras, indique le niveau. +Le troisième argument permet d'indiquer un commentaire qui est +composé en italique. Ce dernier peut ne pas être renseigné, +auquel cas il convient de conserver néanmoins le couple +d'accolades correspondant comme on peut le voir dans la figure +\ref{figure:moderncv-source} à la ligne 72. + +\subsubsection{La commande \commande{cvline}} + +La commande \commandeindex{cvline} affiche ses deux arguments sur +une ligne, le premier dans la partie gauche et le second dans la +partie droite : + +\begin{exemple} +\cvline{Association}{Président du « Volant Club »} +\end{exemple} + +La commande \commande{cvline} peut par exemple être utilisée pour +indiquer ses activités extra-professionnelles. + +\subsubsection{La commande \commande{cvlistitem}} + +La commande \commandeindex{cvlistitem} affiche son unique +argument précédé d'un gros point dans la partie droite : + +\begin{exemple} +\cvlistitem{Général Alcazar} +\end{exemple} + +\subsubsection{La commande \commande{cvlistdoubleitem}} + +La commande \commandeindex{cvlistdoubleitem} affiche sur la même +ligne ses deux arguments, chacun précédé d'un gros point, dans la +partie droite : + +\begin{exemple} +\cvlistdoubleitem{Château de Moulinsart}{Bianca Castafiore} +\end{exemple} + +\subsection{Modifier la taille de la partie gauche} + +En fonction des informations figurant dans la partie gauche, il +peut être nécessaire d'en augmenter la taille. Au contraire, il +est parfois utile de la réduire. Ceci se fait au moyen des +commandes suivantes, utilisées dans le préambule du document : + +\begin{exemple} +\setlength{\hintscolumnwidth}{45mm} +\AtBeginDocument{\recomputelengths} +\end{exemple} + +La longueur \code{45mm} est à adapter pour obtenir une partie +gauche de la taille voulue. + +\section{La classe \classe{curve}} + +La classe \classeindex{curve} permet de réaliser facilement un CV +d'apparence classique. + +La figure \ref{figure:curve-source} montre le code source d'un CV +réalisé avec la classe \classe{curve}, la figure +\ref{figure:curve-document} montre le document généré. + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,numbers=left]{exemples/curve.tex} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(code source)} +\label{figure:curve-source} +\end{figure} + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics[width=0.9\textwidth]{curve.pdf}} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(document généré)} +\label{figure:curve-document} +\end{figure} + +La classe \classe{curve} s'utilise avec les options de classe +habituelles, auxquelles on ajoute l'option de classe +\classeoption{french}. En effet, lorsqu'une rubrique est +interrompue par une fin de page, le titre de cette rubrique est +repris en haut de la page suivante en lui ajoutant « (suite) ». +Pour que ceci soit affiché dans la bonne langue, il est donc +nécessaire d'indiquer à la classe \classe{curve} dans quelle +langue le CV est rédigé (en plus de l'utilisation de l'extension +\extension{babel}). + +Remarquez que l'extension \extension{geometry} (voir le +paragraphe \ref{section:geometry}) a été utilisée afin de réduire +les marges de tête et de pied du document pour que le CV tienne +sur une seule page. + +\subsection{Les informations personnelles} + +Les informations personnelles sont placées dans l'en-tête et le +titre du CV. + +La commande \commandeindex{leftheader}, utilisée dans le +préambule du document, permet de définir la partie gauche de +l'en-tête du CV. Elle peut contenir plusieurs lignes séparées par +\boiboiindex\ : + +\begin{exemple} +\leftheader{Place de la mairie \\ + 99999 MOULINSART \\ + téléphone : 01 02 03 04 05 \\ + courriel : lampion@mondass.fr} +\end{exemple} + +Sur le même principe, la commande \commandeindex{rightheader}, +utilisée dans le préambule du document, permet de définir la +partie droite de l'en-tête du CV : + +\begin{exemple} +\rightheader{Marié \\ beaucoup d'enfants} +\end{exemple} + +La commande \commandeindex{photo}, utilisée dans le préambule du +document, permet d'indiquer le nom du fichier au format PDF, PNG +ou JPEG contenant la photo : + +\begin{exemple} +\photo{seraphin-lampion.jpg} +\end{exemple} + +La photo est par défaut placée à gauche, entre la marge et +l'en-tête. L'argument optionnel de la commande \commande{photo} +permet de la placer au centre s'il vaut \code{c} ou à droite, +entre l'en-tête et la marge, s'il vaut \code{r} : + +\begin{exemple} +\photo[c]{seraphin-lampion.jpg} +\end{exemple} + +La commande \commandeindex{photoscale}, utilisée dans le +préambule du document, permet d'indiquer la fraction de la +largeur du CV alloué à la photo, entre 0 et 1 (elle est par +défaut de 0,1 soit 10 \%) : + +\begin{exemple} +\photoscale{0.12} +\end{exemple} + +La commande \commandeindex{title}, utilisée dans le préambule du +document, permet d'indiquer le titre du CV (qu'on utilise +généralement pour indiquer le prénom et le nom) : + +\begin{exemple} +\title{Séraphin Lampion} +\end{exemple} + +La commande \commandeindex{subtitle}, utilisée dans le préambule +du document, permet d'indiquer le sous-titre du CV (qu'on utilise +généralement pour indiquer le poste actuel ou le poste +recherché) : + +\begin{exemple} +\subtitle{Représentant en assurances} +\end{exemple} + +La commande \commandeindex{makeheaders}, utilisée dans le corps +du document, permet d'imprimer l'en-tête. Ses deux parties sont +par défaut centrées verticalement. L'argument optionnel de la +commande \commande{makeheaders} permet de aligner en haut s'il +vaut \code{t} et en bas s'il vaut \code{b} : + +\begin{exemple} +\makeheaders[t] +\end{exemple} + +La commande \commandeindex{maketitle}, utilisée dans le corps du +document, permet d'imprimer le titre et le sous-titre : + +\begin{exemple} +\maketitle +\end{exemple} + +\subsection{Les rubriques} + +Les rubriques du CV doivent être contenues chacune dans un +fichier propre et appelées depuis le fichier principal au moyen +de la commande \commandeindex{makerubric}, dont l'argument est le +nom du fichier contenant la rubrique, sans son extension +\path{.tex} : + +\begin{exemple} +\makerubric{curve-experience} +\makerubric{curve-references} +\makerubric{curve-methodologies} +\makerubric{curve-formation} +\makerubric{curve-langues} +\makerubric{curve-extra} +\end{exemple} + +Les figures \ref{figure:curve-experience-source} à +\ref{figure:curve-extra-source} montrent les codes sources des +rubriques. + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,numbers=left]{exemples/curve-experience.tex} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(code source du fichier \protect\path{curve-experience.tex})} +\label{figure:curve-experience-source} +\end{figure} + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,numbers=left]{exemples/curve-references.tex} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(code source du fichier \protect\path{curve-references.tex})} +\label{figure:curve-references-source} +\end{figure} + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,numbers=left]{exemples/curve-methodologies.tex} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(code source du fichier \protect\path{curve-methodologies.tex})} +\label{figure:curve-methodologies-source} +\end{figure} + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,numbers=left]{exemples/curve-formation.tex} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(code source du fichier \protect\path{curve-formation.tex})} +\label{figure:curve-formation-source} +\end{figure} + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,numbers=left]{exemples/curve-langues.tex} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(code source du fichier \protect\path{curve-langues.tex})} +\label{figure:curve-langues-source} +\end{figure} + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,numbers=left]{exemples/curve-extra.tex} +\caption{Exemple de CV réalisé avec la classe \classe{curve} +(code source du fichier \protect\path{curve-extra.tex})} +\label{figure:curve-extra-source} +\end{figure} + +Chaque rubrique est contenue dans un environnement +\environnementindex{rubric}, dont l'argument indique le titre de +la rubrique. + +Les titres des rubriques sont centrés par défaut. Ceci peut être +modifié au moyen de la commande \commandeindex{rubricalignment}, +utilisée dans le préambule, qui permet de les aligner à gauche si +son argument vaut \code{l} ou à droite si son argument vaut +\code{r} : + +\begin{exemple} +\rubricalignment{l} +\end{exemple} + +Le contenu de chaque rubrique est constitué d'une ou plusieurs +commandes \commandeindex{entry*} (avec une étoile). Son argument +optionnel, s'il est présent, est placé sur la gauche. Ce qui suit +la commande \commande{entry*} est placé sur la droite. + +Il est important de ne pas laisser de lignes blanches à +l'intérieur de l'environnement \environnement{rubric}. En effet, +en raison de la façon dont celui-ci est conçu, cela se traduit +par des lignes blanches dans le document généré. + +\section{L'extension \classe{currvita}} + +L'extension \extensionindex{currvita} permet de réaliser +rapidement un CV plutôt dépouillé. + +La figure \ref{figure:currvita-source} montre le code source d'un +CV réalisé avec l'extension \classe{currvita}, la figure +\ref{figure:currvita-document} montre le document généré. + +\begin{figure}[!htbp] +\VerbatimInput[frame=single,lastline=37,numbers=left]{exemples/currvita.tex} +\caption{Exemple de CV réalisé avec l'extension +\extension{currvita} (code source)} +\label{figure:currvita-source} +\end{figure} + +\begin{figure}[!htbp] +\ContinuedFloat +\VerbatimInput[firstline=38,frame=single,lastline=75,numbers=left]{exemples/currvita.tex} +\caption[]{Exemple de CV réalisé avec l'extension +\extension{currvita} (code source)} +\end{figure} + +\begin{figure}[!htbp] +\ContinuedFloat +\VerbatimInput[firstline=76,frame=single,numbers=left]{exemples/currvita.tex} +\caption[]{Exemple de CV réalisé avec l'extension +\extension{currvita} (code source)} +\end{figure} + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics[width=0.9\textwidth]{currvita.pdf}} +\caption{Exemple de CV réalisé avec l'extension +\extension{currvita} (document généré)} +\label{figure:currvita-document} +\end{figure} + +L'extension \extension{currvita} s'utilise en complément d'une +classe non spécialisée dans la rédaction de CV. Celle-ci peut +être \classe{article} ou \classe{scrartcl} pour créer un CV +autonome mais on peut également inclure un CV dans un document +plus volumineux (par exemple un dossier de candidature créé avec +une classe telle que \classe{report} ou \classe{scrreprt}). + +L'extension \extension{currvita} doit donc être chargée dans le +préambule du document. Il est intéressant d'utiliser l'option +\extensionoption{NoDate}, qui évite l'impression de la date de +compilation à la suite du CV : + +\begin{exemple} +\usepackage[NoDate]{currvita} +\end{exemple} + +Dans un CV autonome, il est inutile d'utiliser l'extension +\extension{hyperref} car l'extension \extension{currvita} n'en +tire pas parti. + +L'environnement \environnementindex{cv} délimite le CV. Il +s'utilise avec un argument qui contient le titre à placer en tête +du CV (qu'on peut laisser vide si l'on n'en souhaite pas) : + +\begin{exemple} +\begin{cv}{Séraphin Lampion --- Représentant en assurances} + +[...] + +\end{cv} +\end{exemple} + +À l'intérieur de l'environnement \environnement{cv}, les +rubriques du CV sont réalisées au moyen d'autant d'environnements +\environnementindex{cvlist}, dont l'argument indique le titre de +la rubrique : + +\begin{exemple} +\begin{cvlist}{Expérience professionnelle} + +\item[1958 -- 1983] Représentant, Assurances Mondass, Paris + \begin{itemize} + \item Démarchage à domicile. + \item Recherche d'opportunités. + \item Établissement de contrats. + \end{itemize} + +\end{cvlist} +\end{exemple} + +Le contenu de chaque rubrique est constitué d'une ou plusieurs +commandes \commandeindex{item}. Son argument optionnel, s'il est +présent, est placé sur la gauche. Ce qui suit la commande +\commande{item} est placé sur la droite. + +Enfin, la commande suivante, placée dans le corps du document +(pas dans le préambule) et avant d'utiliser l'environnement +\environnement{cv}, permet de modifier la largeur de la partie +gauche : + +\begin{exemple} +\setlength{\cvlabelwidth}{25mm} +\end{exemple} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Faire une présentation : les classes \classe{slides} +et \classe{beamer}} +\index{présentation} + +En bureautique, beaucoup utilisent deux logiciels différents, un +pour le traitement de texte et un autre pour les présentations. +C'est regrettable parce que cela complique la réalisation +conjointe d'un document écrit et de la présentation associée, +cette dernière devant généralement emprunter certains éléments +figurant dans le premier. + +Avec \LaTeX, le problème ne se pose pas car il permet également +de réaliser des présentations. Pour cela, on peut utiliser : + +\begin{itemize} + +\item la classe \classe{slides}, qui est fournie en standard avec + \LaTeX\ et qui est destinée à réaliser des transparents + qu'on imprime et qu'on projette avec un rétroprojecteur ; + +\item la classe \classe{beamer}, qui n'est pas standard mais qui + figure dans la plupart des installations \LaTeX\ et qui est + destinée à réaliser des présentations au format PDF pouvant + être projetées avec un vidéoprojecteur (grâce à la fonction + d'affichage en plein écran des logiciels de visualisations + de fichiers PDF). + +\end{itemize} + +Signalons également l'existence des classes +\classe{seminar}\footnote{\url{http://www.tug.org/applications/Seminar/}} +et +\classe{prosper}\footnote{\url{http://prosper.sourceforge.net/prosper.html}}, +qui n'ont aujourd'hui d'autre intérêt qu'historique. Sauf si vous +avez besoin de modifier des présentations utilisant l'une de ces +classes, il est préférable d'utiliser \classe{beamer} pour +réaliser de nouvelles présentations. + +\section{La classe \classe{slides}} + +La classe \classeindex{slides} permet de réaliser des +transparents très simples. Le corps du document contient un ou +plusieurs environnements \environnementindex{slide}, dont chacun +contient le texte d'un transparent : + +\VerbatimInput[frame=single,samepage=true]{exemples/slides.tex} + +Ce document produit un unique transparent (puisqu'il n'y a qu'un +seul environnement \environnement{slide}, mais on aurait pu en +mettre plusieurs à la suite). Vous pouvez en voir le résultat +dans la figure \ref{figure:transparent}. + +\begin{figure}[!htbp] +\centering +\setlength{\fboxsep}{1pt} +\fbox{\includegraphics[width=0.9\textwidth]{slides.pdf}} +\caption{Exemple de transparent réalisé avec la classe +\classe{slides}} +\label{figure:transparent} +\end{figure} + +Dans l'environnement \environnement{slide} : + +\begin{itemize} + + \item le texte est écrit en gros caractères ; + + \item il est écrit dans une police linéale ; + + \item il est centré verticalement ; + + \item chaque page est numérotée dans le coin inférieur droit. + +\end{itemize} + +Vous pouvez utiliser avec la classe \classe{slides} la plupart +des commandes et des environnements de \LaTeX\ qui ont un sens +dans un transparent (par exemple, des commandes comme les +commandes de hiérarchisation ne sont pas utiles dans les +transparents et n'existent donc pas dans la classe +\classe{slides}). Il n'existe pas de liste des commandes et +environnements de \LaTeX\ non disponibles dans la classe +\classe{slides} donc, dans le doute, essayez ! + +Pour plus de renseignements sur la classe \classe{slides}, +vous pouvez consulter +\cite[pages 80--84]{latex-a-document-preparation-system}. + +\section{La classe \classe{beamer}} +\label{section:beamer} + +De nos jours le vidéoprojecteur a quasiment partout remplacé le +rétroprojecteur et les ternes transparents d'antan ont laissé la +place à des présentations multicolores. À cet effet, la classe +\classeindex{beamer} permet de réaliser des présentations au +format PDF bénéficiant de la toute la puissance de \LaTeX. + +Utiliser le format PDF pour les présentations offre de nombreux +avantages : + +\begin{itemize} + +\item il s'agit d'un format universel, visualisable aussi bien + sur un ordinateur que sur un téléphone mobile évolué ; + +\item il s'agit d'un format ouvert, qui n'est pas lié à un + logiciel spécifique ; + +\item la possibilité de visualiser les documents PDF directement + dans un butineur facile leur diffusion sur la toile ; + +\item les documents PDF sont généralement de taille raisonnable. + +\end{itemize} + +L'aspect des présentations peut être modifié au moyen de thèmes, +qui seront abordés au paragraphe \ref{section:beamer-themes}. Ces +thèmes peuvent également être personnalisés (modification des +couleurs, ajout d'un logo), comme nous le verrons au paragraphe +\ref{section:beamer-personnalisation}. + +\subsection{Structure d'une présentation} + +La structure d'une présentation réalisée avec la classe +\classe{beamer} est indiquée dans la figure +\ref{figure:beamer-struture}. + +\begin{figure}[!htbp] +\begin{exemple} +\documentclass{beamer} + +\usepackage[french]{babel} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{lmodern} +\usepackage{microtype} + +% reste du préambule + +\begin{document} + +\begin{frame} + +[...] + +\end{frame} + +\begin{frame} + +[...] + +\end{frame} + +[...] + +\end{document} +\end{exemple} +\caption{Structure d'une présentation réalisée avec la classe +\classe{beamer}} +\label{figure:beamer-struture} +\end{figure} + +Il est généralement inutile d'indiquer des options de classe avec +\classe{beamer}. En effet, la taille du papier n'a ici pas de +sens et la fonte par défaut est suffisamment grande pour une +projection sur écran. + +Il est également inutile de charger l'extension +\extension{hyperref} car \classe{beamer} le fait automatiquement. + +Le corps du document contient une suite d'environnements +\environnementindex{frame}, chacun contenant une page de la +présentation. + +\subsection{La page de titre} +\index{page de titre} + +La première page d'une présentation est la page de titre. + +Elle utilise différentes indications figurant dans le préambule : + +\begin{exemple} +\title{Mon oncle Anatole} +\subtitle{Sa vie, son œuvre} +\author{Séraphin Lampion} +\institute{Assurances Mondass} +\date{23 octobre 2009} +\end{exemple} + +\begin{itemize} + +\item la commande \commandeindex{title} indique le titre de la + présentation ; + +\item la commande + \commandeindex{subtitle} indique le sous-titre de la + présentation ; + +\item la commande + \commandeindex{author} indique l'auteur de la + présentation ; + +\item la commande \commandeindex{institute} indique l'employeur + de l'auteur de la présentation ; + +\item la commande \commandeindex{date} indique la date de la + présentation. + +\end{itemize} + +On peut utiliser \boiboiindex\ dans les arguments de ces +commandes pour forcer un passage à la ligne si nécessaire. + +En fonction du thème utilisé, certains de ces éléments peuvent +être repris dans les marges des pages intérieures de la +présentation. S'ils sont trop longs, on peut indiquer une version +courte en option de chacune des commandes. Celle-ci sera utilisée +dans les marges alors que l'argument le sera dans la page de +titre : + +\begin{exemple} +\title[ENSTA ParisTech]{École nationale supérieure +de techniques avancées \\ (ENSTA ParisTech)} +\end{exemple} + +On imprime ensuite la page de titre (dans le premier +environnement \environnementindex{frame} de la présentation) au +moyen de la commande \commandeindex{titlepage} : + +\begin{exemple} +\begin{frame} + +\titlepage + +\end{frame} +\end{exemple} + +Ceci donne au final la page de titre représentée dans la figure +\ref{figure:beamer-titlepage}. + +\begin{figure}[!htbp] +\centering +\beamersimple{beamer-titlepage.pdf} +\caption{Exemple de page de titre réalisée avec la classe \classe{beamer}} +\label{figure:beamer-titlepage} +\end{figure} + +\subsection{Les pages intérieures} + +Les pages suivant la page de titre sont elles-aussi contenues +dans un environnement \environnementindex{frame} : + +\begin{exemple} +\begin{frame} + +\frametitle{Ceci est le titre de la page} + +La suite est le corps de la page. + +\end{frame} +\end{exemple} + +La commande \commandeindex{frametitle} permet d'indiquer le titre +de la page. La suite du contenu de l'environnement +\environnement{frame} correspond au corps de la page et l'on peut +y utiliser quasiment toutes les commandes et environnements vus +dans les chapitres précédents. + +Par ailleurs, \classe{beamer} a étendu la syntaxe de \LaTeX\ pour +permettre d'afficher certains éléments d'une page au fur et à +mesure du discours, comme cela est habituel dans les +présentations. + +En pratique, chaque page (logique) du document est divisée en +plusieurs pages (physiques) dans le document PDF généré en +fonction du nombre d'éléments à faire apparaître. La succession +des pages du document PDF donnera l'illusion de l'apparition des +éléments sur une même page. + +Considérons l'exemple suivant : + +\begin{exemple} +\begin{itemize} + +\item<1-> premier élément + +\item<2-> deuxième élément + +\item<3-> troisième élément + +\end{itemize} +\end{exemple} + +Chaque commande \commande{item} est suivie d'une spécification +entre chevrons. Celle-ci indique sur quelles pages du document +PDF faire figurer l'élément en question. + +On peut indiquer : + +\begin{itemize} + +\item une page précise : \code{<2>} ; + +\item une liste de pages : \code{<2,3,4>} ; + +\item un intervalle de pages : \code{<2-4>}, \code{<-3>} (de la + première page jusqu'à la page 3), \code{<2->} (à partir de + la page 2) ; + +\item et toute combinaison des spécifications précédentes. + +\end{itemize} + +Ainsi, dans notre exemple, le premier élément figurera sur la +première page et les suivantes (la spécification \code{<1->} est +d'ailleurs superflue puisque tout élément sans spécification +figurera sur toutes les pages), le deuxième élément figurera sur +la deuxième page et les suivantes et le troisième élément +figurera sur la troisième page et les suivantes. La page logique +(c'est-à-dire l'environnement \environnement{frame}) contenant la +liste indiquée dans l'exemple générera donc trois pages dans le +document PDF. La spécification \code{<3->} du troisième élément +aurait d'ailleurs pu être simplifiée en \code{<3>} mais indiquer +\code{<3->} est cohérent avec les spécifications des autres +éléments et simplifie l'ajout éventuel d'un quatrième élément +(puisque la spécification du troisième n'aura pas à être +modifiée). + +Le fait d'afficher certains éléments d'une page au fur et à +mesure est surtout utilisé avec des listes, comme c'est le cas +dans l'exemple précédent, mais il est possible de produire le +même effet sur n'importe quel texte au moyen de la commande +\commandeindex{uncover}, qui s'utilise avec le même type de +spécification : + +\begin{exemple} +\uncover<1->{La philanthropie de l'ouvrier charpentier.} + +\uncover<2->{La Chine se dresse devant les Nippons.} + +\uncover<3->{Les matières fiscales le détendent.} +\end{exemple} + +Voire, au sein même d'un paragraphe : + +\begin{exemple} +\uncover<1->{La} \uncover<2->{muse} \uncover<3->{nous} +\uncover<4->{habite.} +\end{exemple} + +Pour des portions de document plus importantes, on peut utiliser +l'environnement \environnementindex{uncoverenv} : + +\begin{exemple} +\begin{uncoverenv}<1-> +Paragraphe d'introduction : + +\begin{itemize} +[...] +\end{itemize} +\end{uncoverenv} + +\begin{uncoverenv}<2-> +Paragraphe d'introduction : + +\begin{itemize} +[...] +\end{itemize} +\end{uncoverenv} +\end{exemple} + +Le texte qui n'est pas affiché dans une page PDF donnée est +normalement invisible. Pour le faire apparaître en filigrane, on +peut utiliser la commande \commandeindex{setbeamercovered} dans +le préambule : + +\begin{exemple} +\setbeamercovered{transparent} +\end{exemple} + +Il peut être nécessaire d'adapter le niveau de transparence entre +0 et 100 (0 signifiant invisible et 100 opaque, le niveau par +défaut est de 15) en fonction du vidéoprojecteur utilisé : + +\begin{exemple} +\setbeamercovered{transparent=20} +\end{exemple} + +\subsection{Modification de l'aspect des présentations : les +thèmes} +\label{section:beamer-themes} +\index{theme@thème (\classe{beamer})} + +L'aspect des présentations peut facilement être modifié au moyen +de \emph{thèmes}. Pour cela, on utilise dans le préambule la +commande \commandeindex{usetheme} en indiquant le nom du thème +souhaité en argument : + +\begin{exemple} +\usetheme{Montpellier} +\end{exemple} + +Les thèmes utilisables sont indiqués dans le tableau +\ref{tableau:beamer-themes}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{*{5}{>{\ttfamily}l}} +\toprule +default & Boadilla & Goettingen & Malmoe & Singapore \\ +AnnArbor & CambridgeUS & Hannover & Marburg & Szeged \\ +Antibes & Copenhagen & Ilmenau & Montpellier & Warsaw \\ +Bergen & Darmstadt & JuanLesPins & PaloAlto & \\ +Berkeley & Dresden & Luebeck & Pittsburgh & \\ +Berlin & Frankfurt & Madrid & Rochester & \\ +\bottomrule +\end{tabular} +\caption{Thèmes utilisables avec \classe{beamer}} +\label{tableau:beamer-themes} +\beamerthemeindex{default} +\beamerthemeindex{Antibes} +\beamerthemeindex{Bergen} +\beamerthemeindex{Berkeley} +\beamerthemeindex{Berlin} +\beamerthemeindex{Boadilla} +\beamerthemeindex{Copenhagen} +\beamerthemeindex{Darmstadt} +\beamerthemeindex{Dresden} +\beamerthemeindex{Frankfurt} +\beamerthemeindex{Goettingen} +\beamerthemeindex{Hannover} +\beamerthemeindex{Ilmenau} +\beamerthemeindex{JuanLesPins} +\beamerthemeindex{Luebeck} +\beamerthemeindex{Madrid} +\beamerthemeindex{Malmoe} +\beamerthemeindex{Marburg} +\beamerthemeindex{Montpellier} +\beamerthemeindex{PaloAlto} +\beamerthemeindex{Pittsburgh} +\beamerthemeindex{Rochester} +\beamerthemeindex{Singapore} +\beamerthemeindex{Szeged} +\beamerthemeindex{Warsaw} +\end{table} + +Le thème \theme{default} est celui qui est utilisé en l'absence +de la commande \commande{usetheme} dans le préambule (mais on +peut aussi le spécifier explicitement si on le souhaite). Les +autres thèmes portent des noms de villes. + +Les figures \ref{figure:beamer-default} à +\ref{figure:beamer-Warsaw} montrent, pour chaque thème, à quoi +ressemblent une page de titre à gauche et une page intérieure à +droite. + +\input{exemples/beamer-themes.tex} + +\subsection{Personnalisation de l'aspect des présentations} +\label{section:beamer-personnalisation} + +Les thèmes offrent une grande diversité de mise en page pour les +présentations. Néanmoins, la dominante bleue de la plupart +d'entre eux peut se révéler gênante. Il est heureusement possible +de modifier les couleurs utilisées par son thème favori. Nous +verrons également comment ajouter un logo. + +\subsubsection{Modification des couleurs} + +La commande \commandeindex{usecolortheme}, utilisée dans le +préambule, permet de modifier la couleur dominante utilisée par +le thème courant : + +\begin{exemple} +\usecolortheme[RGB={64,141,183}]{structure} +\end{exemple} + +Il est possible de spécifier la couleur de plusieurs manières : + +\begin{itemize} + +\item \code{rgb=\{}\var{r}\code{,}\var{g}\code{,}\var{b}\code{\}}\index{rgb@\code{rgb} (couleur)} + qui indique les valeurs de rouge, de vert et de bleu par + des nombres décimaux entre 0 et 1, par exemple + \code{rgb=\{0.3,0.5,0.7\}} ; + +\item \code{RGB=\{}\var{r}\code{,}\var{g}\code{,}\var{b}\code{\}}\index{RGB@\code{RGB} (couleur)} + qui indique les valeurs de rouge, de vert et de bleu par + des nombres entiers entre 0 et 255, par exemple + \code{RGB=\{0,171,199\}} ; + +\item \code{cmyk=\{}\var{c}\code{,}\var{m}\code{,}\var{y}\code{,}\var{k}\code{\}}\index{cmyk@\code{cmyk} (couleur)} + qui indique les valeurs de cyan, de magenta, de jaune et de + noir par des nombres décimaux entre 0 et 1, par exemple + \code{cmyk=\{0.76,0,0.15,0.11\}} ; + +\item \code{cmy=\{}\var{c}\code{,}\var{m}\code{,}\var{y}\code{\}}\index{cmy@\code{cmy} (couleur)} + est identique à \code{cmyk} sauf que la composante noire + n'est pas indiquée ; + +\item \code{hsb=\{}\var{h}\code{,}\var{s}\code{,}\var{b}\code{\}}\index{hsb@\code{hsb} (couleur)} + qui indique la teinte, la saturation et la valeur par des + nombres décimaux entre 0 et 1, par exemple + \code{hsb=\{0.3,0.5,0.7\}} ; + +\item \code{named=}\var{nom}\index{named@\code{named} (couleur)} + qui indique la couleur par son nom. + +\end{itemize} + +Pour \code{named}, il est possible d'utiliser les couleurs +prédéfinies indiquées dans le tableau +\ref{tableau:beamer-couleurs}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{*{5}{>{\ttfamily}l}} +\toprule +black & cyan & green & orange & violet \\ +blue & darkgray & lightgray & purple & white \\ +brown & gray & magenta & red & yellow \\ +\bottomrule +\end{tabular} +\caption{Couleurs prédéfinies utilisables avec \classe{beamer}} +\label{tableau:beamer-couleurs} +\end{table} + +On peut aussi définir ses propres noms de couleurs au moyen de la +commande \commandeindex{definecolor}, utilisée dans le préambule +: + +\begin{syntaxe} +\commande{definecolor}\argument{nom}\argument{type}\argument{valeur} +\end{syntaxe} + +\noindent qui définit une couleur \var{nom} spécifiée par +\var{type} (qui peut être \code{rgb}, \code{RGB}, \code{cmyk}, +\code{cmy} ou \code{hsb}, comme vu précédemment) et par +\var{valeur} (qui doit être compatible avec \var{type}). Par +exemple : + +\begin{exemple} +\definecolor{macouleur}{RGB}{0,171,199} +\usecolortheme[named=macouleur]{structure} +\end{exemple} + +\subsubsection{Ajout d'un logo} + +La commande \commandeindex{logo}, utilisée dans le préambule, +permet d'insérer un logo dans la plupart des thèmes (tous sauf +\theme{Goettingen}, \theme{Hannover} et \theme{Marburg}). On peut +utiliser pour cela la commande \commandeindex{includegraphics} +(voir le paragraphe \ref{section:includegraphics}) : + +\begin{exemple} +\logo{\includegraphics[width=1cm]{logo.pdf}} +\end{exemple} + +Le logo contenu dans le fichier \path{logo.pdf} apparaîtra alors +sur chaque page à l'endroit prévu par le thème. Sa taille (ici +\code{1cm}) est à adapter au besoin. + +Il peut également être nécessaire d'adapter la couleur de fond du +logo pour qu'il s'en détache correctement. Pour cela, on utilise +la commande \commandeindex{setbeamercolor} dans le préambule : + +\begin{exemple} +\setbeamercolor{logo}{bg=white} +\end{exemple} + +\subsection{Pour aller plus loin} + +Nous n'avons couvert que quelques-uns des nombreux aspects de +\classe{beamer}. Pour plus de renseignements à son sujet, vous +pouvez consulter +\cite[pages 752--796]{the-latex-graphics-companion}. + +Les sites suivants sont également intéressants : + +\begin{toile} +\noindent\url{http://latex-beamer.sourceforge.net/} (site officiel)\par +\noindent\url{http://mirror.ctan.org/macros/latex/contrib/beamer/doc/beameruserguide.pdf} (documentation officielle)\par +\toileurl{http://fr.wikipedia.org/wiki/Beamer} +\toileurl{http://mcclinews.free.fr/latex/introbeamer.php} +\toileurl{http://www.math.umbc.edu/~rouben/beamer/} +\end{toile} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\chapter{??? une thèse} +%\index{these@thèse} + +% http://www.tug.org/pracjourn/2008-1/mori/ +% classicthesis +% arsclassica +% hepthesis +% uwthesis + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\appendix + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Quelques règles typographiques françaises et anglaises} +\label{annexe:typographie} +\index{typographie} + +De même que l'écriture d'un texte nécessite le respect de +l'orthographe et de la grammaire, la composition d'un document +nécessite le respect des règles typographiques. Certaines règles +typographiques sont automatiquement respectées par \LaTeX\ mais, +afin de réaliser des documents de bonne qualité, il faut +connaître et respecter soi-même toutes les autres. + +Les règles typographiques sont, pour la plupart, différentes +selon les langues. Ici sont résumées et illustrées quelques +règles élémentaires pour le français et l'anglais. + +En ce qui concerne la typographie française, l'ouvrage de +référence est \cite{lexique-des-regles-typographiques}. La +lecture de \cite{regles-de-l-ecriture-typographique-du-francais} +et de \cite{orthotypographie} est également enrichissante. Pour +la typographie anglaise (américaine, pour être très précis), +l'ouvrage de référence est \cite{the-chicago-manual-of-style}. + +\section{Quelques règles typographiques françaises} + +Contrairement à une croyance répandue, une lettre accentuée +écrite en majuscule doit conserver son accent (ou son tréma ou sa +cédille). À cet effet, si votre éditeur de texte n'en permet pas +la saisie directe, il est toujours possible d'utiliser les +commandes des tableaux \ref{tableau:accents} et +\ref{tableau:accents-simples}. + +La commande \commandeindex{up}, fournie par l'extension +\extensionindex{babel} utilisée avec l'option +\extensionoptionindex{french}, permet de composer son argument en +caractères supérieurs. En typographie, on ne parle ni d'exposant +ni d'indice mais de caractères respectivement \emph{supérieurs} +et \emph{inférieurs}. La commande \commande{up} peut par exemple +être utilisée pour écrires les abréviations indiquées dans le +tableau \ref{tableau:madame-mademoiselle-monsieur}. + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll>{\ttfamily}l} +\toprule +madame & M\up{me} & M\commande{up}\{me\} \\ +mesdames & M\up{mes} & M\commande{up}\{mes\} \\ +mademoiselle & M\up{lle} & M\commande{up}\{lle\} \\ +mesdemoiselles & M\up{lles} & M\commande{up}\{lles\} \\ +monsieur & M. & M. \\ +messieurs & MM. & MM. \\ +\bottomrule +\end{tabular} +\caption{Madame, mademoiselle, monsieur} +\label{tableau:madame-mademoiselle-monsieur} +\end{table} + +\begin{toile} +\toileurl{http://www.orthotypographie.fr/volume-I/echelle-extrait.html\#Exposant} +\toileurl{http://www.orthotypographie.fr/volume-II/madame-mythologie.html\#Madame_mademoiselle_monsieur} +\end{toile} + +Les abréviations indiquées dans le tableau +\ref{tableau:premier-deuxieme}, quant à elles, sont suffisamment +communes pour disposer de commandes propres, également fournies +par l'extension \extensionindex{babel} utilisée avec l'option +\extensionoptionindex{french}. Utiliser ces commandes évite +d'avoir dans ses documents des horreurs comme « 3\up{ème} », +qu'on voit malheureusement bien trop souvent... + +\begin{table}[!htbp] +\centering +\begin{tabular}{ll>{\ttfamily}l} +\toprule +premier & 1\ier & 1\commande{ier} \\ +première & 1\iere & 1\commande{iere} \\ +premiers & 1\iers & 1\commande{iers} \\ +premières & 1\ieres & 1\commande{ieres} \\ +deuxième & 2\ieme & 2\commande{ieme} \\ +deuxièmes & 2\iemes & 2\commande{iemes} \\ +etc. & & \\ +\bottomrule +\end{tabular} +\caption{Premier, deuxième, etc.} +\label{tableau:premier-deuxieme} +\index{ier@\commande{ier} (\ier)} +\index{iere@\commande{iere} (\iere)} +\index{iers@\commande{iers} (\iers)} +\index{ieres@\commande{ieres} (\ieres)} +\index{ieme@\commande{ieme} (\ieme)} +\index{iemes@\commande{iemes} (\iemes)} +\end{table} + +L'extension \extensionindex{textcomp} fournit la commande +\commandeindex{oldstylenums} qui permet d'obtenir les chiffres +français (\oldstylenums{0123456789}) : + +\begin{filecontents*}{\jobname.tmp} +La prise de la Bastille a eu lieu le \oldstylenums{14} +juillet \oldstylenums{1789}. +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +Ceci ne fonctionne que si la police de caractères utilisée +contient les signes nécessaires, ce qui est malheureusement rare. + +\begin{toile} +\toileurl{http://www.orthotypographie.fr/volume-I/cabochon-citation.html\#Chiffres} +\end{toile} + +Concernant la ponctuation : + +\begin{itemize} + +\item la virgule, le point et les points de suspension sont + collés au mot qui les précède et sont suivis par une + espace ; + +\item le point-virgule, les deux points, le point d'exclamation + et le point d'interrogation sont précédés d'une espace + fine (ce que l'extension \extensionindex{babel} utilisée + avec l'option \extensionoptionindex{french} gère + automatiquement) et suivis d'une espace ; + +\item les « guillemets français » ne sont pas présents sur les + claviers, mais ils se saisissent facilement avec Vim en + utilisant \taper{\textasciicircum K <{}<} et + \taper{\textasciicircum K >{}>} et avec Emacs grâce aux + commandes \taper{C-x 8 <} et \taper{C-x 8 >} ; à défaut, + des commandes \commande{og}\index{og@\commande{og} (\og)} + (\og) et \commande{fg}\index{fg@\commande{fg} (\fg)} (\fg) + sont fournies par l'extension \extensionindex{babel} + utilisée avec l'option \extensionoptionindex{french}. + +\end{itemize} + +Voici un petit exemple de poésie téléphonique à la ponctuation +légèrement retouchée pour illustrer ceci : + +\begin{filecontents*}{\jobname.tmp} +J'avais un ami, mais il est parti. Ce sens à ma vie, il +n'est plus en vie... Il m'a tout donné, puis s'est effacé, +sans me déranger ; et je crois j'ai pleuré, j'ai pleuré. +Tout au fond, l'air d'un con : envie de me casser. Voudrais +bien essayer, voudrais bien continuer, continuer ! Un moment, +un instant, j'ai cru oublier. En parlant, en marchant, +à Paris, à minuit, dans ma ville ? +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{Quelques règles typographiques anglaises} + +Concernant la ponctuation : + +\begin{itemize} + +\item la virgule, le point-virgule, les deux points, le point + d'exclamation et le point d'interrogation sont collés au + mot qui les précède et sont suivis par une espace ; + +\item le point est collé au mot qui le précède et suivi de deux + espaces (\LaTeX\ s'en moque, mais c'est l'usage) ; + +\item les points de suspension sont précédés et suivis d'une + espace et sont plus espacés que trois points se suivant, + c'est pourquoi \LaTeX\ dispose de la commande + \commande{ldots}\index{ldots@\commande{ldots} (\ldots)} + pour saisir les points de suspension anglais (n'oubliez pas + la commande \verb*|\ | pour l'espace suivant les points de + suspension) ; + +\item les guillemets se saisissent + \code{`{}`}\index{``@\code{`{}`} (``)} et + \code{'{}'}\index{''@\code{'{}'} ('')} (et pas + \code{"}\index{""@\code{""} ("")}). Ce qui donne ``ceci''. + +\end{itemize} + +Un autre exemple de poésie profondément pourpre (à la ponctuation +modifiée) permet d'illustrer ces règles : + +\begin{otherlanguage}{english} + +\begin{filecontents*}{\jobname.tmp} +We all came out to Montreux, on the Lake Geneva shoreline, +to make records with a mobile: we didn't have much +time. Frank Zappa and the Mothers were at the best place +around; but some stupid with a flare gun burned the place +to the ground \ldots\ Smoke on the water! Fire in the +sky? Smoke on the water! +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\end{otherlanguage} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Différences entre \LaTeX\ 2.09 et \LaTeXe} +\label{chapitre:LaTeX2e} + +Les différences entre \LaTeX\ 2.09 (version maintenant obsolète, +décrite dans la première édition de ce manuel) et \LaTeXe\ +(version actuelle, décrite dans ce manuel, apparue en 1994 mais +n'ayant cessé d'évoluer depuis, en attendant \LaTeX 3) sont +relativement minimes pour l'utilisateur (elles le sont en +revanche beaucoup moins pour les concepteurs d'extensions). Cette +annexe résume les principales différences entre ces deux +versions. + +\section[Les commandes \commande{documentstyle}, +\commande{documentclass} et\texorpdfstring{\newline}{} +\commande{usepackage}]{Les commandes \commande{documentstyle}, +\commande{documentclass} et \commande{usepackage}} + +La commande \commande{documentstyle} de \LaTeX\ 2.09 a été +remplacée dans \LaTeXe\ par \commande{documentclass}. + +Les options de classe (arguments optionnels de +\commande{documentclass}) correspondent aux options de style +(arguments optionnels de \commande{documentstyle}) qui +s'appliquent à la classe du document. + +Les autres options de styles (qu'on appelle désormais extensions) +sont chargées grâce à la commande \commande{usepackage}. + +\section{Déclarations et commandes de changement de style} + +Les déclarations de changement de style \commande{it}, +\commande{sl}, \commande{sc} \commande{bf}, \commande{rm}, +\commande{sf} et \commande{tt} de \LaTeX\ 2.09 ont été remplacées +respectivement dans \LaTeXe\ par les déclarations +\commande{itshape}, \commande{slshape}, \commande{scshape}, +\commande{bfseries}, \commande{rmfamily}, \commande{sffamily} et +\commande{ttfamily}. + +La déclaration \commande{em} de \LaTeX\ 2.09 a été remplacée dans +\LaTeXe\ par la commande \commande{emph}. + +Les commandes de changement de style \commande{textup}, +\commande{textit}, \commande{textsl}, \commande{textsc}, +\commande{textmd}, \commande{textbf}, \commande{textrm}, +\commande{textsf} et \commande{texttt} sont nouvelles dans +\LaTeXe. + +Ces commandes prennent un argument et ne nécessitent donc pas +d'accolades de groupement. De plus, il est possible de mélanger +différents styles : + +\begin{filecontents*}{\jobname.tmp} +\textit{italique \textbf{gras}} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\noindent alors qu'avec \LaTeX\ 2.09, chaque commande annulait +l'effet de la précédente : + +\begin{filecontents*}{\jobname.tmp} +{\it italique \bf gras} +\end{filecontents*} +\exempleresultat{\jobname.tmp} + +\section{\SliTeX\ et la classe \classe{slides}} + +Le logiciel \SliTeX\ n'existe plus, les transparents sont +maintenant directement produits par \LaTeX\ au moyen de la classe +\classe{slides}. + +\section{La commande \commande{LaTeXe}} + +La commande \commande{LaTeXe} permet d'imprimer le logo \LaTeXe\ +(avec le $2_{\textstyle\varepsilon}$). De même que pour la +commande \commande{LaTeX}, il faut la faire suivre de \verb*|\ | +si l'on ne veut pas que le mot suivant lui soit collé. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\backmatter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter*{\bibname} +\addcontentsline{toc}{chapter}{\bibname} + +\begin{btSect}{latex} +\section*{Ouvrages généraux sur \LaTeX} +\btPrintAll +\end{btSect} + +\begin{btSect}{avance} +\section*{Utilisation avancée de \LaTeX} +\btPrintAll +\end{btSect} + +\begin{btSect}{bibliographie-index} +\section*{Bibliographie et index} +\btPrintAll +\end{btSect} + +\begin{btSect}{graphisme} +\section*{Graphisme} +\btPrintAll +\end{btSect} + +\begin{btSect}{typographie} +\section*{Typographie} +\btPrintAll +\end{btSect} + +\begin{btSect}{divers} +\section*{Divers} +\btPrintAll +\end{btSect} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\cleardoublepage +\phantomsection +\printindex + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\cleardoublepage +\listoftables + +\cleardoublepage +\listoffigures + +\cleardoublepage +\tableofcontents + +\end{document} |