aide-mémoire LaTeX Préambule standard \documentclass[a4paper]{article}%␣␣␣␣␣␣autres␣choix␣:␣book,␣report \usepackage[utf8]{inputenc}%␣␣␣␣␣␣␣␣␣␣␣gestion␣des␣accents␣(source) \usepackage[T1]{fontenc}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣gestion␣des␣accents␣(PDF) \usepackage[francais]{babel}%␣␣␣␣␣␣␣␣␣␣gestion␣du␣français \usepackage{textcomp}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣caractères␣additionnels \usepackage{mathtools,amssymb,amsthm}%␣packages␣de␣l'AMS␣+␣mathtools \usepackage{lmodern}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣police␣de␣caractère \usepackage{geometry}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣gestion␣des␣marges \usepackage{graphicx}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣gestion␣des␣images \usepackage{xcolor}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣gestion␣des␣couleurs \usepackage{array}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣gestion␣améliorée␣des␣tableaux \usepackage{calc}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣syntaxe␣naturelle␣pour␣les␣calculs \usepackage{titlesec}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣pour␣les␣sections \usepackage{titletoc}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣pour␣la␣table␣des␣matières \usepackage{fancyhdr}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣pour␣les␣en-têtes \usepackage{titling}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣pour␣le␣titre \usepackage{enumitem}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣pour␣les␣listes␣numérotées \usepackage{hyperref}%␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣gestion␣des␣hyperliens \hypersetup{pdfstartview=XYZ}%␣␣␣␣␣␣␣␣␣zoom␣par␣défaut \begin{document} ... \end{document} Options de classe Voici les options qu’on peut donner à \documentclass. option 10pt 11pt 12pt notitlepage titlepage openany openright description le texte est en 10pt le texte est en 11pt le texte est en 12pt le titre n’est pas sur une page à part page de titre saut de page simple avant les chapitres un chapitre commence toujours sur une page impaire option a4paper onecolumn twocolumn oneside twoside leqno fleqn description taille de la page A4 texte sur une colonne texte sur deux colonnes pour impression en recto uniquement pour impression en recto-verso les numéros d’équation sont à gauche les formules mises en évidences sont alignées à gauche Exemple d’utilisation : \documentclass[twocolumn,titlepage]{article} met le texte sur deux colonnes et le titre sur une page à part. 1 Spécificité du code source Caractères spéciaux \ % # { } début d’une commande commentaire (tout ce qui suit sur la ligne est ignoré) identificateur de numéro d’argument dans une macro délimiteur ouvrant délimiteur fermant $ ˆ _ & ˜ début/fin de mode mathématique exposant (mode mathématique uniquement) indice (mode mathématiques uniquement) changement de colonne dans un tableau espace insécable Comportement des espaces Les espaces sont ignorés en début de ligne ; plusieurs espaces ne comptent que comme un seul ; un saut de ligne est un espace ; les espaces après les commandes-mots sont avalés ; les espaces après les commandes-caractères sont pris en compte. Voici un exemple de ces règles en application (chaque espace est marqué par ). code ␣␣␣␣␣␣␣␣␣La␣livre␣␣␣␣sterling␣a␣perdu 20~\%␣de␣sa␣valeur␣en␣quelques␣␣mois. Aujourd'hui,␣1␣\pounds␣ne␣vaut␣␣plus rien. résultat La livre sterling a perdu 20 % de sa valeur en quelques mois. Aujourd’hui, 1 £ne vaut plus rien. Table des symboles spéciaux – — # { } $ _ & œ æ Œ Æ ß ---\# \{ \} \$ \_ \& \oe \ae \OE \AE \ss tiret demi-cadratin tiret cadratin croisillon accolade ouvrante accolade fermante dollar underscore esperluète diphtongue œ diphtongue æ diphtongue Œ diphtongue Æ eszett « » “ ” 1er 1re 4e 1ers 1res 4es guillemets français ouvrants \fg{} guillemets français fermants `` (accents graves) guillemets anglais ouvrants '' (apostrophes) guillemets anglais fermants 1\ier{} premier 1\iere{} première 4\ieme{} quatrième 1\iers{} premiers 1\ieres{} premières 4\iemes{} quatrièmes \og Mme no nos No Nos ¹ ² ³ © ® ™ % ‰ € ^ ~ M\up{me} \no␣ \nos␣ \No␣ \Nos␣ \textonesuperior \texttwosuperior \textthreesuperior \textcopyright \textregistered \texttrademark \% \textperthousand \texteuro \textasciicircum \textasciitilde Madame numéro numéros Numéro Numéros lettre sup. 1 lettre sup. 2 lettre sup. 3 copyright registred trademark pourcent pourmille euro circonflexe tilde Remarque. — Les caractères suivants peuvent être tapés normalement : §, £, ¤, @, ° (degré). L’accent grave ` s’obtient sur la touche 7 d’un clavier de PC et l’apostrophe ' sur la touche 4. 2 Polices de caractères Style de la police Taille de la police {\tiny...} {\scriptsize...} {\footnotesize...} {\small...} {\normalsize...} {\large...} {\Large...} {\LARGE...} {\huge...} {\Huge...} \textrm{...} \textsf{...} AaBbCcDdEeFfGgHhIiJjK \texttt{...} AaBbCcDdEeFfGgHhIiJ AaBbCcDdEeFfGgHhI \textmd{...} \textbf{...} AaBbCcDdEeFfGgHhIiJjKkLlMm AaBbCcDdEeFfGgHhIiJjKk AaBbCcDdEeFfGg {\rmfamily...} {\sffamily...} {\ttfamily...} romain sans sérif télétype {\mdseries...} {\bfseries...} graisse normale gras {\upshape...} {\itshape...} {\em...} droit italique emphase AaBbCcDdEe \textup{...} \textit{...} \emph{...} AaBbCcD \textsc{...} {\scshape...} \MakeUppercase{...} \MakeLowercase{...} petites capitales CAPITALES minuscules \textnormal{...} annule les changements AaBbCcDdEeFf AaBbCcDd {\fontsize{10pt}{12pt}\selectfont...} texte de 10pt, interligne de 12pt - 10pt = 2pt. {\normalfont...} Polices mathématiques et de texte Voici les packages disponibles (ne pas oublier de charger aussi \usepackage{lmodern}) : \usepackage{lmodern} \usepackage{txfonts} \usepackage{pxfonts} \usepackage[garamond]{mathdesign} \usepackage[charter]{mathdesign} \usepackage[utopia]{mathdesign} \usepackage{fourier} \usepackage{kpfonts} AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz Maths complexes =⇒ éviter txfonts et pxfonts ; pour le texte, fourier = mathdesign/utopia, mais 6= pour les maths. Autres polices pour les titres, sections, codes informatiques, etc. Changer la police courante pour pnc : \fontfamily{pnc}\selectfont. Changer la police sans sérif pour pag : \renewcommand{\sfdefault}{pag}. Changer la police télétype pour fvm : \renewcommand{\ttdefault}{fvm}. Liste des principales polices (voir http://www.tug.dk/FontCatalogue/ pour une liste complète) : nom Antiqua Bera Serif Bookman Century Schoolbook Charter Garamond Palatino Times Utopia code uaq fve pbk pnc bch ugm ppl ptm put nom Arev Avant Garde Bera Sans Grotesq Helvetica LM Sans Optima code fav pag fvs ugq phv lmss uop nom Bera Sans Mono courier CM Teletype Letter Gothic Luximono TX Teletype Inconsolata code fvm pcr cmtt ulg ul9 txtt fi4 Si le document comporte des mathématiques, ne pas faire un changement de police direct, mais utiliser un des packages décrit ci-dessus (fourier, mathdesign, etc.). 3 Macros personnelles Syntaxe de la définition de macros \newcommand{\Z}{\mathbb{Z}} \newcommand{\definir}[1]{\emph{#1}} \newcommand{\nompropre}[2]{#1␣\textsc{#2}} \newcommand{\ZnZ}[1][n]{\Z/#1\Z} \newcommand{\strong}[2][red]{\textcolor{#1}{#2}} macro sans argument macro à un argument macro à deux arguments macro à un argument optionnel macro à un argument obligatoire et un optionnel Si la commande existe déjà, utiliser \renewcommand. Pour définir une commande uniquement si elle n’existe pas déjà, utiliser \providecommand. Pour définir un environnement {questions} basé sur {enumerate}, utiliser \newenvironment{questions}{\begin{enumerate}[label=\alph*.]}{\end{enumerate}} Il y a aussi \renewenvironment pour redéfinir un environnement. Macros avec un @ dans leur nom Les macros contenant un @ dans leur nom sont des macros internes et doivent être entourées de \makeatletter et \makeatother. Voici un exemple (voir page 7) : \makeatletter \titleformat{\paragraph}[runin] ␣␣{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}[\@addpunct{.}] \makeatother Espacement autour des macros et environnements Espacement automatique après une macro avec le package xspace : \newcommand{\ssi}{si␣et␣seulement␣si\xspace} Pas d’espaces parasites autour d’un environnement : \newenvironment{petit}{\small\ignorespaces}{\ignorespacesafterend} Macros qui définissent des macros Utile pour les titres : \newcommand{\theuniversite}{} \newcommand{\universite}[1]{\renewcommand{\theuniversite}{#1}} Package xargs Le package xargs permet de définir des macros à plusieurs paramètres optionnels. Voici un exemple : \newcommandx{\suite}[3][1=n,3=\in\mathbb{N}]{(#2_{#1})_{#1#3}} Résultat : $\suite{u}$ $\suite{u}[\geq␣1]$ (un )n∈N (un )n≥1 $\suite[k]{u}$ $\suite[k]{u}[\geq␣1]$ (uk )k∈N (uk )k≥1 Voir la documentation (en français) pour plus de précisions : http://mirror.ctan.org/macros/latex/contrib/xargs/xargs-fr.pdf 4 Titre du document Titre standard Dans le préambule : \title{Titre␣du␣document} \author{Nom␣du␣premier␣auteur␣\and␣Nom␣du␣second␣auteur} \date{Date␣du␣document}%␣vide␣=␣pas␣de␣date␣;␣absent␣=␣date␣du␣jour puis, après \begin{document}, là où doit apparaître le titre : \maketitle Page de titre personnalisée Remplacer \maketitle par \begin{titlepage} ␣␣\fontfamily{phv}\selectfont ␣␣\vspace*{\stretch{1}} ␣␣\begin{flushright}\LARGE ␣␣␣␣Victor␣Hugo ␣␣\end{flushright} ␣␣\hrule ␣␣\begin{flushleft}\huge\bfseries ␣␣␣␣Les␣misérables ␣␣\end{flushleft} ␣␣\vspace*{\stretch{2}} ␣␣\begin{center} ␣␣␣␣Éditions␣Lavarice Victor Hugo Les misérables ␣␣␣␣2009 ␣␣\end{center} \end{titlepage} Éditions Lavarice 2009 Personnalisation avec le package titling Voici la syntaxe du package titling : \setlength{\droptitle}{-1cm}%␣asjutement␣de␣l'espace␣avant␣le␣titre \renewcommand{\maketitlehooka}{}%␣matériel␣avant␣le␣titre \pretitle{\begin{center}\LARGE} \posttitle{\par\end{center}\vspace{0.5em}} \renewcommand{\maketitlehookb}{}%␣matériel␣entre␣titre␣et␣auteur \preauthor{\begin{center}\large ␣␣␣␣␣␣␣␣␣␣␣\begin{tabular}[t]{c}} \postauthor{\end{tabular}\par\end{center}} \renewcommand{\maketitlehookc}{}%␣matériel␣entre␣auteur␣et␣date \predate{\begin{center}\large} \postdate{\par\end{center}} \renewcommand{\maketitlehookd}{}%␣matériel␣après␣la␣date 5 Résumé du document Syntaxe \begin{abstract} Bla␣bla␣bla␣bla␣bla... \end{abstract} Pour changer le nom du résumé, redéfinir (dans le préambule) \abstractname avec : \addto\captionsfrench{\renewcommand{\abstractname}{Plan}} Résumés en plusieurs langues Après avoir chargé chaque langue avec le package babel (voir page 15), il est possible de faire un résumé par langue avec \selectlanguage{francais}%␣on␣s'assure␣que␣la␣langue␣est␣bien␣le␣français \begin{abstract} Bla␣bla␣bla␣bla␣bla... \end{abstract} \selectlanguage{english}%␣on␣change␣de␣langue␣pour␣le␣résumé␣en␣anglais \begin{abstract} Bla␣bla␣bla␣bla␣bla... \end{abstract} \selectlanguage{francais}%␣on␣revient␣à␣la␣langue␣d'origine Personnalisation avec le package abtract Chargement du package abstract \usepackage{abstract}␣%␣options␣:␣addtotoc,␣runin Voici une liste des éléments personnalisables : \renewcommand{\abstractnamefont}{\normalfont\small\bfseries} \renewcommand{\abstracttextfont}{\normalfont\small} \abslabeldelim{:} \renewcommand{\absnamepos}{center} \setlength{\abstitleskip}{2cm} \setlength{\absleftindent}{0cm} \setlength{\absrightindent}{0cm} Police utilisée par le titre du résumé Police utilisée par le texte du résumé Ponctuation après le titre du résumé (avec runin) Alignement du titre (sans runin) Espace entre le titre et le texte du résumé Marge gauche du résumé Marge droite du résumé Exemples d’utilisations du package abstract \renewcommand{\abstractnamefont}{% ␣␣\normalfont\small\itshape} \setlength{\abstitleskip}{-1em} %... \begin{abstract} Bla␣bla␣bla... \end{abstract} Résumé bla bla bla bla bla \usepackage[runin]{abstract} \abslabeldelim{.~---} \setlength{\abstitleskip}{-\parindent} %... \begin{abstract} Bla␣bla␣bla... \end{abstract} Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. Résumé. — Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. 6 Sections Commandes de sectionnement Syntaxe. Section numérotée : \section[htitre sommaire/en-têtes/signets PDFi]{hTitre normali} Section non numérotée : \section*{hTitrei} Liste des commandes. \part, \chapter (non disponible en classe article), \section, \subsection, \subsubsection, \paragraph, \subparagraph. Numérotation des sections Pour ajuster la profondeur de numérotation des sections, utiliser \setcounter{secnumdepth}{1} (dans le préambule) où la correspondance profondeur/numérotation est donnée par le tableau suivant. niveau nom niveau nom niveau nom niveau nom −1 part 0 chapter 2 subsection 4 paragraph 0 (en classe article) 1 section 3 subsubsection 5 subparagraph Pour changer la façon dont apparaît le numéro d’une section, faire (voir page 20 pour les compteurs) \renewcommand{\thesection}{\arabic{section}} Personnalisation avec le package titlesec Le package titlesec fournit les commandes \titleformat et \titlespacing pour personnaliser les titres de sections. Voici ces commandes pour les principaux niveaux de sectionnement : \titleformat{\chapter}% \titleformat{\section} ␣␣[display]%␣style␣:␣hang,␣display,␣runin,␣leftmargin,␣... ␣␣[hang]%␣style␣:␣hang,␣display,␣runin,␣leftmargin,␣... ␣␣{\bfseries}%␣changement␣de␣fontenuméro␣+␣titre ␣␣{\normalfont\Large\bfseries}%␣fonte␣numéro␣+␣titre ␣␣{\huge\chaptertitlename~\thechapter}%␣numéro ␣␣{\thesection}%␣numéro ␣␣{20pt}%␣espace␣entre␣le␣numéro␣et␣le␣titre ␣␣{1em}%␣espace␣entre␣le␣numéro␣et␣le␣titre ␣␣{\Huge}%␣changement␣de␣fonte␣du␣titre ␣␣{}%␣fonte␣titre \titlespacing*{\chapter}% \titlespacing*{\section} ␣␣{0pt}%␣␣retrait␣à␣gauche ␣␣{0pt}%␣retrait␣à␣gauche ␣␣{50pt}%␣espace␣avant ␣␣{3.5ex␣plus␣1ex␣minus␣.2ex}%␣espace␣avant ␣␣{40pt}%␣espace␣après ␣␣{2.3ex␣plus␣.2ex}%␣espace␣après ␣␣[0pt]%␣␣retrait␣à␣droite ␣␣[0pt]%␣retrait␣à␣droite \titleformat{\subsection} \titleformat{\subsubsection} ␣␣[hang]%␣style␣:␣hang,␣display,␣runin,␣leftmargin,␣... ␣␣[hang]%␣style␣:␣hang,␣display,␣runin,␣leftmargin,␣... ␣␣{\normalfont\large\bfseries}%␣fonte␣numéro␣+␣titre ␣␣{\normalfont\normalsize\bfseries}%␣fonte␣numéro␣+␣titre ␣␣{\thesubsection}%␣numéro ␣␣{\thesubsubsection}%␣numéro ␣␣{1em}%␣espace␣entre␣le␣numéro␣et␣le␣titre ␣␣{1em}%␣espace␣entre␣le␣numéro␣et␣le␣titre ␣␣{}%␣fonte␣titre ␣␣{}%␣fonte␣titre \titlespacing*{\subsection} \titlespacing*{\subsubsection} ␣␣{0pt}%␣retrait␣à␣gauche ␣␣{0pt}%␣retrait␣à␣gauche ␣␣{3.25ex␣plus␣1ex␣minus␣.2ex}%␣espace␣avant ␣␣{3.25ex␣plus␣1ex␣minus␣.2ex}%␣espace␣avant ␣␣{1.5ex␣plus␣.2ex}%␣espace␣après ␣␣{1.5ex␣plus␣.2ex}%␣espace␣après ␣␣[0pt]%␣retrait␣à␣droite ␣␣[0pt]%␣retrait␣à␣droite \titleformat{\paragraph} \titleformat{\subparagraph} ␣␣[runin]%␣style␣:␣hang,␣display,␣runin,␣leftmargin,␣... ␣␣[runin]%␣style␣:␣hang,␣display,␣runin,␣leftmargin,␣... ␣␣{\normalfont\normalsize\bfseries}%␣fonte␣numéro␣+␣titre ␣␣{\normalfont\normalsize\bfseries}%␣fonte␣numéro␣+␣titre ␣␣{\theparagraph}%␣numéro ␣␣{\thesubparagraph}%␣numéro ␣␣{1em}%␣espace␣entre␣le␣numéro␣et␣le␣titre ␣␣{1em}%␣espace␣entre␣le␣numéro␣et␣le␣titre ␣␣{}%␣fonte␣titre ␣␣{}%␣fonte␣titre ␣␣[]%␣après␣le␣titre,␣p.ex.␣"\@addpunct{.}"␣de␣amsmath ␣␣[]%␣après␣le␣titre,␣p.ex.␣"\@addpunct{.}"␣de␣amsmath \titlespacing*{\paragraph} \titlespacing*{\subparagraph} ␣␣{0pt}%␣retrait␣à␣gauche ␣␣{\parindent}%␣retrait␣à␣gauche ␣␣{3.25ex␣plus␣1ex␣minus␣.2ex}%␣espace␣avant ␣␣{3.25ex␣plus␣1ex␣minus␣.2ex}%␣espace␣avant ␣␣{1em}%␣espace␣après ␣␣{1em}%␣espace␣après Pour pouvoir utiliser \@addpunct (qui rajoute la ponctuation au besoin), il faut mettre \titleformat entre \makeatletter et \makeatother, voir page 4. Exemples d’utilisations de titlesec \titleformat{\section}[block] ␣␣{\normalfont\bfseries\filcenter} ␣␣{\fbox{\itshape\thesection}} ␣␣{0.5em}{} \titleformat{\section}[frame] ␣␣{\normalfont} ␣␣{\filright\footnotesize\enspace ␣␣␣SECTION␣\thesection\enspace} ␣␣{8pt} ␣␣{\Large\bfseries\filcenter} 1 Titre long qui va sur plusieurs lignes et qui continue Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla SECTION 1 Titre Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \titleformat{\section}[wrap] ␣␣{\normalfont\bfseries\filright} ␣␣{\thesection.}{.5em}{} \titlespacing{\section}{2.5cm} ␣␣{1em␣plus␣.1em␣minus␣.1em}{1em} \titleformat{\section}[leftmargin] ␣␣{\normalfont\vspace{6pt}% ␣␣\bfseries\filleft} ␣␣{\thesection}{.5em}{} \titlespacing{\section}{2cm} ␣␣{1em␣plus␣.1em␣minus␣.1em}{1em} 7 1. Titre qui est Bla bla bla un peu long bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 1 1 Titre très long Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla Table des matières Insérer une table des matières Création de la table des matières. LaTeX créé automatiquement une table des matières à l’endroit où apparaît \tableofcontents Changer le nom de la table. Redéfinir \contentsname dans le préamble avec \addto\captionsfrench{\renewcommand{\contentsname}{Sommaire}} Ajuster la profondeur. Changer la valeur du compteur tocdepth (voir page 20 pour les compteurs) : \setcounter{tocdepth}{1} Ajouter du matériel à la table des matières \addcontentsline{toc}{section}{Nom␣de␣l'entrée} Package titletoc Voici les définitions pour les classes book et report (pour article, décaler d’un niveau vers le haut les définitions) : \titlecontents{chapter}% ␣␣[1.5em]%␣retrait␣à␣gauche ␣␣{\addvspace{1em␣plus␣0pt}\bfseries}%␣matériel␣avant␣ %commun␣aux␣entrées␣numérotées␣ou␣pas ␣␣{\contentslabel{1.3em}}%␣avant␣lorsqu'il␣y␣a␣un␣numéro ␣␣{\hspace{-1.3em}}%␣avant␣lorsqu'il␣n'y␣a␣pas␣de␣numéro ␣␣{\hfill\contentspage}%␣points␣de␣suspension␣et␣no␣page ␣␣[\addvspace{0pt}]%␣matériel␣après \dottedcontents{section}% ␣␣[3.8em]%␣retrait␣gauche ␣␣{\addvspace{0pt}}%␣matériel␣avant ␣␣{2.3em}%␣espacement␣de␣contentslabel ␣␣{0.75em}%␣espace␣entre␣les␣.␣.␣.␣. ␣␣[\addvspace{0pt}]%␣matériel␣après Nom part chapter section subsection subsubsection paragraph subparagraph Niveau −1/0 0 1 2 3 4 5 1 Titre du chapitre 1.1 Titre de section . . . . . . 1.1.1 Titre de sous-section 1.1.2 Titre de sous-section 1.2 Titre de section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 5 7 \dottedcontents{subsection}% ␣␣[7.0em]%␣retrait␣gauche ␣␣{\addvspace{0pt}}%␣matériel␣avant ␣␣{3.2em}%␣espacement␣de␣contentslabel ␣␣{0.75em}%␣espace␣entre␣les␣.␣.␣.␣. ␣␣[\addvspace{0pt}]%␣matériel␣après book et report retrait contentslabel 0 em – 1.5 em 1.5 em 3.8 em 2.3 em 7.0 em 3.2 em 11.1 em 4.1 em 16.1 em 5.0 em 22.1 em 6.0 em article retrait contentslabel 0 em – – – 1.5 em 1.5 em 3.8 em 2.3 em 7.0 em 3.2 em 11.1 em 4.1 em 16.1 em 5.0 em Il existe une variante étoilée de \titlecontents pour mettre les entrées de la table des matières sur une même ligne. \setcounter{secnumdepth}{1} \titlecontents*{subsection} ␣␣[6em]%␣retrait␣à␣gauche ␣␣{\small}%␣matériel␣avant␣commun␣à␣toutes␣les␣entrées ␣␣{\thecontentslabel.␣}%␣avant␣lorsqu'il␣y␣a␣un␣numéro ␣␣{}%␣avant␣lorsqu'il␣n'y␣a␣pas␣de␣numéro ␣␣{,␣\thecontentspage}%␣affichage␣du␣numéro␣de␣page ␣␣[.␣---␣]%␣ponctuation␣entre␣les␣entrées ␣␣[.]%␣ponctuation␣à␣la␣fin␣des␣entrées 1 Titre du chapitre 1.1 Titre de section . . . . . . . . . . . . . . . . . . . . . 1.1.1. Titre de sous-section, 4. — 1.1.2. Titre de soussection, 5. 1.2 Titre de section . . . . . . . . . . . . . . . . . . . . . Autres packages concernant les tables des matières shorttoc (rajouter un sommaire plus court), minitoc (rajouter des sommaires par chapitre). 8 3 3 7 Théorèmes avec amsthm Syntaxe de base Pour les théorèmes, utiliser le package amsthm (il y a aussi le package ntheorem qui propose plus de fonctionnalités, mais qui a un certain nombre de bugs). Pour définir un théorème appelé « Théorème » correspondant à l’environnement {theoreme}, utiliser \newtheorem{theoreme}{Théorème}. L’environnement {theorem} a un argument optionnel : \begin{theoreme} Bla␣bla␣bla␣bla␣bla. \end{theoreme} Théorème 1. Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. \begin{theoreme}[Fermat] Bla␣bla␣bla␣bla␣bla. \end{theoreme} Théorème 2 (Fermat). Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. Styles de théorèmes. Voici les trois styles de base disponibles : \theoremstyle{plain} \newtheorem{theoreme}{Théorème} Théorème 1. Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. \theoremstyle{definition} \newtheorem{exercice}{Exercice} Exercice 1. Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. \theoremstyle{remark} \newtheorem{corrige}{Corrigé} Corrigé 1. Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. Numérotation des théorèmes. Voici les options de numérotation : \theoremstyle{plain} \newtheorem{theoreme}{Théorème}[section] \newtheorem{corollaire}[theoreme]{ Corollaire} \newtheorem{lemme}[theoreme]{Lemme} \newtheorem*{axiome}{Axiome} Axiome. Bla bla bla bla bla bla bla bla bla. Lemme 1.1. Bla bla bla bla bla bla bla bla bla. Théorème 1.2. Bla bla bla bla bla bla bla bla bla. Corollaire 1.3. Bla bla bla bla bla bla bla bla bla. Démonstrations Pour les démonstrations, utiliser l’environnement {proof}. Si jamais le carré de fin de démonstration est mal placé, utiliser \qedhere pour le mettre au bon endroit. On peut changer le symbole de fin de démonstration avec \renewcommand{\qedsymbol}{C.Q.F.D.}. Personnalisation des théorèmes ␣␣{\bfseries}%␣police␣du␣titre␣du␣théorème ␣␣{.}%␣ponctuation␣après␣le␣théorème ␣␣{␣}%␣après␣le␣titre␣du␣théorème␣(espace␣ou␣\newline) ␣␣{}%␣spécifications␣du␣titre \newtheoremstyle{remark}% ␣␣{\topsep}%␣espace␣avant ␣␣{\topsep}%␣espace␣après ␣␣{\upshape}%␣police␣du␣corps␣du␣théorème ␣␣{}%␣indentation␣(vide␣pour␣rien,␣\parindent) ␣␣{\itshape}%␣police␣du␣titre␣du␣théorème ␣␣{.}%␣ponctuation␣après␣le␣théorème ␣␣{␣}%␣après␣le␣titre␣du␣théorème␣(espace␣ou␣\newline) ␣␣{}%␣spécifications␣du␣titre 1 Il est possible de définir de nouveaux styles ou de redéfinir les styles existants. Voici, à titre d’exemple, la définition des trois styles plain, definition et remark : \newtheoremstyle{plain}% ␣␣{\topsep}%␣espace␣avant ␣␣{\topsep}%␣espace␣après ␣␣{\itshape}%␣police␣du␣corps␣du␣théorème ␣␣{}%␣indentation␣(vide␣pour␣rien,␣\parindent) ␣␣{\bfseries}%␣police␣du␣titre␣du␣théorème ␣␣{.}%␣ponctuation␣après␣le␣théorème ␣␣{␣}%␣après␣le␣titre␣du␣théorème␣(espace␣ou␣\newline) ␣␣{}%␣spécifications␣du␣titre \newtheoremstyle{definition}% ␣␣{\topsep}%␣espace␣avant ␣␣{\topsep}%␣espace␣après ␣␣{\upshape}%␣police␣du␣corps␣du␣théorème ␣␣{}%␣indentation␣(vide␣pour␣rien,␣\parindent) La valeur par défaut du dernier argument est \thmname{#1}\thmnumber{␣\textup {#2}}\thmnote{␣\textnormal{(#3)}} où #1 est le titre, #2 le numéro et #3 l’argument optionnel du théorème. 1. En fait, la définition est légèrement plus compliquée pour prendre en compte le fait que #1 peut être vide. 9 Mathématiques Taper une formule Équation dans le texte $...$ Équation hors-texte \[...\] Équation hors-texte numérotée \begin{equation} \label{eq-nom} ... \end{equation} Référence à une équation Texte dans une équation Spécifier le numéro* Enlever le numéro Encadrer une formule (en mode mathématique) \eqref{eq-nom} \text{...} \tag{$(E)$} \nonumber \boxed{...} * Ne pas utiliser \tag avec {equation}, cela cause des problèmes avec hyperref, mais remplacer {equation} par {gather}. Équations alignées. Pour numéroter chacune des équations, enlever l’étoile. \begin{align*} ...␣&␣=␣...␣\\ ␣␣␣␣&␣=␣... \end{align*} \begin{gather*} ...␣\\ ... \end{gather*} = = \begin{multline*} ...␣\\ ... \end{multline*} code \[\sum_{\substack{d\mid␣n\\ d\neq␣n}}␣a_d\] ad d|n d6=n √ 2 √ 3 2 $\sqrt{2}$ $\sqrt[3]{2}$ code $\frac{a}{b}$ a b a b $\binom{n}{k}$ $\tfrac{a}{b}$ a b a b $\tbinom{n}{k}$ $\dfrac{a}{b}$ a b a b $\dbinom{n}{k}$ n k n Çkå n k Ç å n k n k Ç å n k Forcer le style « hors-texte » : \displaystyle ; forcer le style « dans le texte » : \textstyle. Matrices et distinction de cas \begin{matrix}␣a␣&␣b␣\\ c␣&␣d␣\end{matrix} \begin{vmatrix}␣a␣&␣b␣\\ a b a b c␣&␣d␣\end{vmatrix} c d c d Å ã \begin{pmatrix}␣a␣&␣b␣\\ \begin{Vmatrix}␣a␣&␣b␣\\ a b a b c␣&␣d␣\end{pmatrix} c␣&␣d␣\end{Vmatrix} c d c d ï ò \begin{bmatrix}␣a␣&␣b␣\\ (\begin{smallmatrix}␣a␣&␣b␣\\ a b ( ac db ) c␣&␣d␣\end{bmatrix} c␣&␣d␣\end{smallmatrix}) c d ß ™ Å ã \begin{Bmatrix}␣a␣&␣b␣\\ \begin{pmatrix}␣a␣&␣b␣&␣c␣\\ a b a b c c␣&␣d␣\end{Bmatrix} \hdotsfor{3}␣\end{pmatrix} c d ........ Changer le nombre maximal de colonnes : \setcounter{MaxMatrixCols}{50} (valeur par défaut = 10). ® x si x > 0, \[f(x)␣=␣\begin{cases}␣x␣&␣\text{si␣$x␣>␣0$,}␣\\ f (x) = ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣-x␣&␣\text{sinon}␣\end{cases}\] −x sinon Congruences et modules $a␣\equiv␣b␣\mod␣m$ $a␣\equiv␣b␣\pmod␣m$ $a␣\equiv␣b␣\pod␣m$ $\gcd(n,m\bmod␣n)$ a ≡ b mod m a ≡ b (mod m) a ≡ b (m) gcd(n, m mod n) Placement vertical au dessus ou en-dessous $\underset{x\to␣0}{\sim}$ ∼ x→0 $\overset{\mathrm{def}}{=}$ 10 def = hors-texte x21 V 2F 1 X t dans le texte $x_1^2$ $\prescript{t}{}{V}$ $\prescript{}{2}{F}_1^{}$ dans le texte Syntaxe des mathématiques hors-texte Mettre \allowdisplaybreaks dans le préambule pour permettre les sauts de pages dans les équations. Symboles mathématiques Pour une liste complète, voir http://tug.ctan.org/pkg/comprehensive Alphabets mathématiques commande \mathnormal \mathit \mathbf \boldsymbol \mathsf exemple ABCDEF GH . . . abcdef gh . . . 0123456789 ABCDEFGH . . . abcdefgh . . . 0123456789 ABCDEFGH . . . abcdefgh . . . 0123456789 ABCD . . . abcd . . . 0123 . . . αβγ . . . `∇ . . . ABCDEFGH . . . abcdefgh . . . 0123456789 commande \mathcal \mathscr \mathbb \mathfrak exemple ABCDEF GHIJ KLMN OPQRST U . . . A BC DE F G H I J K L M N OPQ . . . ABCDEFGHIJKLMNOPQRQT . . . k (\Bbbk) ABCDEFGH . . . abcdefgh . . . 0123456789 Alphabet grec α β γ δ ε \alpha \beta \gamma \delta \epsilon \varepsilon ζ η θ ϑ ι κ \zeta \eta \theta \vartheta \iota \kappa κ λ µ ν ξ π \varkappa \lambda \mu \nu \xi \pi $ ρ ρ σ ς τ \varpi \rho \rho \sigma \varsigma \tau υ φ ϕ χ ψ ω \upsilon \phi \varphi \chi \psi \omega \digamma \Gamma \Delta \Theta \Lambda \Xi Π Σ Υ Φ Ψ Ω \Pi \Sigma \Upsilon \Phi \Psi \Omega \exists! \varnothing ¬ ∇ \neg \nabla z Γ ∆ Θ Λ Ξ Symboles alphanumériques \aleph \beth ℵ i \gimel \daleth ג k ` ∞ \ell \infty ∂ ℘ \partial \wp \forall \exists ∀ ∃ ∃! ∅ Lois de composition + − ± ∓ + \pm \mp × · ÷ ∗ \times \cdot \div * ? ◦ ∪ ∩ \star \circ \cup \cap t u q M \sqcup \sqcap \amalg \vartriangle ⊕ ⊗ ∧ ∨ \oplus \otimes \wedge \vee C B o n \lhd \rhd \rtimes \ltimes q o ⊥ > \amalg \wr \bot \top Symboles de relation Égalités. = = 6 = \neq ∝ \propto 6∝ \not\propto ' \simeq 6' \not\simeq u \approxeq 6u \not\approxeq ∼ := \coloneqq :6= \vcentcolon\neq \asymp 6 \not\asymp ≈ \approx 6≈ \not\approx ∼ 6 \not\cong = \cong = ≡ \equiv 6≡ \not\equiv ∼ \sim 6∼ \not\sim Inclusions. ⊂ 6 ⊂ ⊃ 6 ⊃ \subset \not\subset \supset \not\supset Inégalités. < < > > ⊆ * ⊇ + \subseteq ( \subsetneq \nsubseteq ) \supsetneq \supseteq \varsubsetneq \nsupseteq ! \varsupsetneq ≤ \leq ≥ \geq j " k # \subseteqq \nsubseteqq \supseteqq \nsupseteqq 6 \leqslant $ % & ' \subsetneqq \supsetneqq \varsubsetneqq \varsupsetneqq > \geqslant \ll @ 6 @ A 6 A \sqsubset \not\sqsubset \sqsupset \not\sqsupset v 6 v w 6 w \sqsubseteq \not\sqsubseteq \sqsupseteq \not\sqsupseteq \gg Flèches → 7 → ,→ \to \mapsto \hookrightarrow \twoheadrightarrow =⇒ ⇐⇒ =⇒ 6 ⇐⇒ 6 \implies \iff \centernot\implies (pkg centernot) \centernot\iff (pkg centernot) % . ⇒ \nearrow 9 \swarrow 79 \rightleftarrows \rightrightarrows 99K f \nrightarrow \mapstochar\nrightarrow \rightsquigarrow \dashrightarrow dessus Flèches extensibles. \xrightarrow{f} donne − → et \xrightarrow[dessous]{dessus} donne −−−−−→. ←−− −−→ 7−−→ ←→ \xleftarrow \xrightarrow \xmapsto \xleftrightarrow =⇒ \xRightarrow ⇐= \xLeftarrow ⇐ ⇒ \xLeftrightarrow −−+ −−* )−− (−− 11 \xrightharpoondown \xrightharpoonup \xleftharpoondown \xleftharpoonup dessous −− * ) − − \xrightleftharpoons ( − − \xleftrightharpoons − − + ←−- \xhookleftarrow ,−→ \xhookrightarrow Fonctions usuelles \ln \exp \lim \max \sup \min ln exp lim max sup min \cos \sin \tan \cot \arccos \arcsin \arctan \sinh \cosh \tanh \coth \inf cos sin tan cot arccos arcsin \deg \det \dim \ker \arg \gcd arctan sinh cosh tanh coth inf \hom \lg \log \liminf \varliminf \limsup deg det dim ker arg gcd \varlimsup \projlim \varprojlim \injlim \varinjlim hom lg log lim inf lim lim sup lim proj lim lim ←− inj lim lim −→ Pour définir de nouvelles fonctions : \DeclareMathOperator{\Vect}{Vect} Délimiteurs délimiteurs ouvrants et fermants (x) (x) |x| \lvert x\rvert [x] [x] kxk \lVert x\rVert {x} \{x\} bxc \lfloor x\rfloor hxi \langle x\rangle JxK \llbracket x\rrbracket dxe \lceil x\rceil délimiteurs médiants / / | | \ \backslash k \| (stmaryrd) Pour ]−1 ; 1[, utiliser la commande \intervalleoo ci-dessous. Pour changer la taille : \left, \right, \middle, \big, \bigl, \bigm, \bigr (ainsi que Big, bigg et Bigg) p 1/p ïX X ò X X p 1/p \left et \right sont certaines fois trop grands : ai . xi,j ai xi,j contre i j i j Grands opérateurs Z \int R \sum PX QY \prod ZZ \iint RR \coprod ` a S [ \bigcup ZZZ \iiint RRR R \bigcap T \ \bigoplus L \bigsqcup F G \bigotimes N \idotsint ··· R Z Z I \oint H M \bigwedge O \bigvee V^ W_ ··· Utilisation de \limits, \nolimits et \displaystyle ainsi que \sideset n ∗ Y0 k=1 Accents mathématiques ... .... \bar ā \tilde ã \hat â \check ǎ \acute á \grave à \dot ȧ \ddot ä \dddot a \ddddot a \vec ~a \breve ă \mathring å haut z }| { Accents extensibles. $\underbracket{ABC}_{bas}$ donne ABC et $\overbrace{ABC}^{haut}$ donne ABC. bas \overbrace \overline \overrightarrow \overleftarrow \overleftrightarrow z }| { \overbracket ABC . . . ABC . . . ABC . . . −−−−−→ ABC . . . ←−−−−− ABC . . . ←−−−−→ ABC . . . \underbrace \underline \underrightarrow \underleftarrow \underleftrightarrow \underbracket ABC | {z . .}. ABC . . . ABC . . . −−−−−→ ABC . . . ←−−−−− ABC . . . ←−−−−→ ABC . . . \widetilde ‰ ABCDEF G \widehat ⁄ ABCDEF G \wideparen ˛ ABCDEF G ˚ ˛ ABCDEF G Ò \widetriangle ABCDEF G \widering Points de suspension . . . ou · · · (automatique) \dots . . . \ldots · · · \cdots .. . \vdots .. . \ddots .. . \iddots (pkg mathdots) Le package mathdots permet d’avoir des points de suspension corrects en indice ou exposant. Raccourcis utiles pour les maths \newcommand{\diff}{\mathop{}\mathopen{}\mathrm{d}} \newcommand{\intervalle}[4]{\mathopen{#1}#2\mathpunct{};#3\mathclose{#4}} \newcommand{\intervalleff}[2]{\intervalle{[}{#1}{#2}{]}} \newcommand{\intervalleof}[2]{\intervalle{]}{#1}{#2}{]}} \newcommand{\intervallefo}[2]{\intervalle{[}{#1}{#2}{[}} \newcommand{\intervalleoo}[2]{\intervalle{]}{#1}{#2}{[}} 12 Bibliographies avec ou sans BibTeX Bibliographie faite à la main Voir␣\cite{SGA5}␣et␣\cite[p.~167]{Eucl.elts}. \begin{thebibliography}{SGA~5} ␣␣␣␣\bibitem{Eucl.elts}␣\textsc{Euclide},␣\emph{Les␣ Éléments}. ␣␣␣␣\bibitem[SGA~5]{SGA5}␣\textsc{Grothendieck},␣\emph{ SGA5}. \end{thebibliography} Voir [SGA 5] et [1, p. 167]. Bibliographie [1] Euclide, Les Éléments. [SGA 5] Grothendieck, SGA5. L’argument de {thebibliography} est l’étiquette la plus longue (« SGA 5 » dans l’exemple précédent). Bibliographie automatique avec BibTeX \bibliographystyle{smfalpha} \bibliography{biblio} Compilation. Compiler avec latex puis bibtex puis deux fois latex. Fichier bib. Le fichier biblio.bib contient les entrées bibliographiques de la forme suivante. @BOOK{DD.syst, ␣␣␣AUTHOR␣␣␣␣␣␣␣=␣"Durand,␣Anatole␣and␣Dupont,␣Georges", ␣␣␣TITLE␣␣␣␣␣␣␣␣=␣"{Nouveau␣traité␣d'analyse␣des␣données␣ systémiques}", ␣␣␣PUBLISHER␣␣␣␣=␣"Vuibert", ␣␣␣YEAR␣␣␣␣␣␣␣␣␣=␣"2002", ␣␣␣NOTE␣␣␣␣␣␣␣␣␣=␣"" } @ARTICLE{Dup.nouvdem, ␣␣␣AUTHOR␣␣␣␣␣␣␣=␣"Dupont,␣Georges", ␣␣␣TITLE␣␣␣␣␣␣␣␣=␣"{Une␣nouvelle␣démonstration␣du␣théorème␣ fondamental␣des␣analyses␣de␣données␣systémiques}", ␣␣␣JOURNAL␣␣␣␣␣␣=␣"Journal␣of␣Systemic␣Data", ␣␣␣YEAR␣␣␣␣␣␣␣␣␣=␣"1995", ␣␣␣VOLUME␣␣␣␣␣␣␣=␣"4", ␣␣␣PAGES␣␣␣␣␣␣␣␣=␣"456-561", ␣␣␣NOTE␣␣␣␣␣␣␣␣␣=␣"" } Autres types d’entrées : @INPROCEEDINGS, @MISC, @PHDTHESIS. Styles BibTeX Pour un texte en anglais, il y a les styles plain, alpha, etc. Pour un texte en français, utiliser style smfplain style smfalpha [1] A. Durand et G. Dupont – Traité d’analyse des données systémiques, Vuibert, 2002. [DD02] A. Durand et G. Dupont – Traité d’analyse des données systémiques, Vuibert, 2002. [2] G. Dupont – « Sur l’analyse systémique », Journal of Systemic Data 4 (1995), p. 456-561. [Dup95] G. Dupont – « Sur l’analyse systémique », Journal of Systemic Data 4 (1995), p. 456-561. [3] A. Durand – Analyses des données systémiques – Une introduction, Masson, 1987. [Dur87] A. Durand – Analyses des données systémiques – Une introduction, Masson, 1987. Raccourcis dans BibTeX On peut utiliser @STRING pour ne pas répéter du texte ; pour concaténer deux chaînes, utiliser # : @STRING{GDupont="Dupont,␣Georges"} @STRING{ADurand="Durand,␣Anatole"} @BOOK{DD.syst, ␣␣␣AUTHOR␣␣␣␣␣␣␣=␣GDupont␣#␣"␣and␣"␣#␣ADurand, } On peut aussi définir des commandes LaTeX avec @PREAMBLE afin d’être sûr qu’elles soient présentes : @PREAMBLE{"\newcommand{\arxivlink}[1]{\href{http://arxiv.org/abs/#1}{arXiv:#1}}"} @ARTICLE{Perelman.ricci.surgery, ␣␣␣NOTE␣␣␣␣␣␣␣=␣"\arxivlink{math/0303109}" } ce qui mettra « arXiv:math/0303109 » à l’entrée correspondante. 13 Mise en page, en-têtes et pieds de pages Mise en page On peut personnaliser la mise en page en passant les arguments suivants à la commande \geometry. option landscape portrait margin=3cm vmargin=3cm hmargin=3cm description mode paysage (page en largeur) mode portrait toutes les marges à 3cm marges hautes et basses à 3cm marges gauches et droites à 3cm option description top=3cm marge haute à 3cm right=3cm marge droite à 3cm bottom=3cm marge basse à 3cm left=3cm marge gauche à 3cm autres options dans la doc de geometry Exemple d’utilisation : pour obtenir des marges de 2,5 cm à gauche et à droite et 5 cm en haut et en bas, utiliser \geometry{hmargin=2.5cm,vmargin=5cm}. Commandes de style pour les en-têtes et pieds de pages commande \pagestyle \thispagestyle effet style de page du document style de la page courante style empty plain headings description page vide numéro en bas centré style standard Personnaliser les en-têtes et pieds de pages Voici la syntaxe du package fancyhdr. \pagestyle{fancy} \fancyhf{}␣%␣efface␣tout␣ce␣qu'il␣y␣avait␣avant \fancyhead[LO,RE]{\leftmark}␣%␣LO␣=␣gauche/impair␣;␣RE␣=␣droite/pair \fancyhead[RO,LE]{\rightmark}␣%␣RO␣=␣droite/impair␣;␣LE␣=␣gauche/pair \fancyfoot[C]{\thepage}%␣C␣=␣centré \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} La commande \nouppercase permet d’éviter que les en-têtes soient en lettres capitales. Exemple : \fancyhead{\nouppercase\leftmark} La signification de \rightmark et \leftmark dépend de la classe de document : \leftmark book/report chapter article section \rightmark book/report section article subsection Redéfinir les styles existants Voici les définitions en terme de fancyhdr des styles plain et empty : \fancypagestyle{plain}{% ␣␣\fancyhf{}%␣remise␣à␣zéro ␣␣\fancyfoot[C]{\thepage}%␣no␣page␣centré ␣␣\renewcommand{\headrulewidth}{0pt} ␣␣\renewcommand{\footrulewidth}{0pt}} \fancypagestyle{empty}{% ␣␣\fancyhf{}%␣remise␣à␣zéro ␣␣\renewcommand{\headrulewidth}{0pt} ␣␣\renewcommand{\footrulewidth}{0pt}} Marques d’en-têtes Si jamais on veut changer le contenu des en-têtes, on peut utiliser \markboth et \markright pour changer le contenu de \leftmark et \rightmark : \markboth{left}{right} \markright{right} C’est utile pour mettre des en-têtes aux chapitres étoilées, ou effacer les en-têtes de la table des matières. 14 Autres commandes de base Notes de bas de page ...bla\footnote{Bla␣bla␣bla␣bla␣bla.}␣bla␣bla. Bien penser à coller la note au mot qui la précède. Pour changer la numérotation (voir page 20 sur les compteurs) : \renewcommand{\thefootnote}{\fnsymbol{footnote}} Les packages footmisc et l’option francais de babel permettent de personnaliser les \footnote. Références à un élément \label{definition.importante} \ref{definition.importante} \pageref{definition.importante} \eqref{definition.importante} Marque l’élément numéroté qui précède (section, théorème, etc.) Fait référence au numéro de section, théorème, etc. Fait référence au numéro de page de la section, du théorème, etc. Variante de \ref à utiliser pour les équations Insertion de fichiers commande \input{fichier.tex} \include{chapitre1.tex} \inludeonly{chapitre1.tex} effet inclut le fichier fichier.tex saute une page puis inclut le fichier n’inclut que chapitre1.tex parmi les fichiers inclus avec \include (s’utilise uniquement dans le préambule et ne marche pas avec \input) Changer de langue \usepackage[francais,english]{babel} puis \selectlanguage{francais}. langue Allemand Anglais Espagnol option de babel ngerman english spanish langue Français Italien Latin option de babel francais italian latin langue Néerlandais Portugais option de babel dutch portuges Une liste complète des langages est disponible dans la documentation de babel. Paragraphes \setlength{\parindent}{15pt} ajuste la valeur de l’indentation des paragraphes \noindent supprime l’indentation du paragraphe si placé au tout début de celui-ci. À utiliser avec parcimonie. Blocs de texte aucun {center} \centering {flushleft} \raggedright {flushright} \raggedleft 1er juin 1944 : « Bercent mon coeur d’une langueur monotone » 1er juin 1944 : « Bercent mon coeur d’une langueur monotone » 1er juin 1944 : « Bercent mon coeur d’une langueur monotone » 1er juin 1944 : « Bercent mon coeur d’une langueur monotone » {quote} 1er juin 1944 : « Bercent mon coeur d’une langueur monotone » {quotation} 1er juin 1944 : « Bercent mon coeur d’une langueur monotone » {verse} 1er juin 1944 : « Bercent mon coeur d’une langueur monotone » Bien noter que left et right sont inversés entre {flushleft} et \raggedright et {flushright} et \raggedleft. 15 Tableaux Syntaxe des tableaux Packages nécessaires. Toujours utiliser le package array. Syntaxe. Les positions possibles sont c (centré), t (aligné en haut) et b (aligné en bas). \begin{tabular}[hpositioni]{hspécification colonnesi} ... \end{tabular} Spécifications de colonnes. l colonne alignée à gauche @{$\to$} met $\to$ entre les colonnes r colonne alignée à droite !{$\to$} idem, mais garde l’espace entre les colonnes c colonne centrée | trait vertical entre les colonnes p{5cm} colonne formée d’un paragraphe de 5cm >{\bfseries} Met \bfseries au début de la colonne m{5cm} idem, mais centré verticalement <{\texteuro} Met \texteuro à la fin de la colonne b{5cm} idem, mais aligné en bas *{6}{l@{,}r} répétition du motif l@{,}r six fois >{\centering\arraybackslash}p{5cm} colonne p{5cm} avec texte centré horizontalement Commandes. \hline Trait horizontal & Changement de colonne \cline{2-5} Trait horizontal entre les 2e et 5e colonnes \\ Changement de ligne \\[3pt] idem mais rajoute 3pt d’espace vertical à partir de la ligne de base Fusion de cellules. Fusion de colonnes Fusion de lignes Fusion de lignes et de colonnes \multicolumn{3}{c}{Titre} \multirow{3}{*}{Titre} \multicolumn{3}{c}{\multirow{3}{*}{Titre}} Espacement du tableau. \setlength{\tabcolsep}{0.5em} \renewcommand{\arraystretch}{1.25} (package multirow) (package multirow) règle d’espace entre les colonnes multiplie l’espace entre les lignes par 1,25 Couleurs dans les tableaux. Rajouter au package xcolor avec option table : \usepackage[table]{xcolor}. \cellcolor{blue!10} cellule de couleur \rowcolors{2}{white}{blue!10} alterne les deux couleurs spécifiés à partir de la ligne no 1 \rowcolor{blue!10} ligne de couleur \columncolor{green!5} colonne de couleur Exemples de tableaux \begin{center} \rowcolors{2}{white}{blue!10} \begin{tabular}{lll} Titre␣&␣Titre␣&␣Titre␣\\ Texte␣&␣Texte␣&␣Texte␣\\ Texte␣&␣Texte␣&␣Texte␣\\ Texte␣&␣Texte␣&␣Texte␣\\ Texte␣&␣Texte␣&␣Texte␣\\ \end{tabular}\end{center} Titre Texte Texte Texte Texte Titre Texte Texte Texte Texte Titre Texte Texte Texte Texte \begin{center}\begin{tabular}{|l|l|l|} \cline{2-3} \multicolumn{1}{c|}{}␣&␣Titre␣&␣Titre␣\\ \hline Titre␣&␣Texte␣&␣Texte␣\\␣\hline Titre␣&␣\multicolumn{2}{c|}{\multirow{2}{*}{--}}␣ \\ \cline{1-1} Titre␣&␣\multicolumn{2}{c|}{}␣\\\hline \end{tabular}\end{center} \begin{center}\begin{tabular}{|>{\columncolor{gray!20}}l|r@{,}l<{\$}|} \hline \multicolumn{1}{|>{\columncolor{gray!20}}c|}{\bfseries␣Denrée}␣& \multicolumn{2}{c|}{\bfseries␣Prix}␣\\ \hline Lait␣␣␣␣␣␣␣␣␣␣␣␣␣␣&␣␣0&80␣\\ \OE␣uf␣␣␣␣␣␣␣␣␣␣␣␣&␣␣3&75␣\\ Poulet␣␣␣␣␣␣␣␣␣␣␣␣&␣␣8&35␣\\ Lessive␣en␣poudre␣&␣10&02␣\\ \hline \end{tabular}\end{center} Pour des tableaux avec légende, utiliser l’environnement {table} (voir page 17). 16 Titre Titre Titre Titre Texte Denrée Lait Œuf Poulet Lessive en poudre Titre Texte – Prix 0,80$ 3,75$ 8,35$ 10,02$ Images et graphiques Inclusion d’images Pour inclure une image, utiliser le package graphicx. Les formats acceptés lorsqu’on produit directement du PDF sont .jpg, .png, .pdf. Voici la syntaxe pour inclure l’image appelée, disons, tiger.png : \includegraphics{tiger} \includegraphics[scale=0.2]{tiger} \includegraphics[width=1cm]{tiger} \includegraphics[height=0.5cm]{tiger} inclut l’image tiger.png (pas besoin de préciser l’extension) idem, mais à l’échelle 0,2 idem, mais avec une largeur de 1cm idem, mais avec une hauteur de 1cm Inclusion de pages entières d’un PDF Pour inclure des pages entières d’un PDF, utiliser le package pdfpages puis la commande \includepdf \includepdf[pages=-]{document} \includepdf[pages=3-5]{document} inclure toutes les pages du fichier document.pdf inclure les pages 3 à 5 du fichier document.pdf Placement d’images placement manuel \usepackage{caption} %... \begin{center} \includegraphics{tiger} \captionof{figure}{Image␣d'un␣tigre} \label{image-tigre} \end{center} placement automatique \begin{figure}\centering \includegraphics{tiger} \caption{Image␣d'un␣tigre} \label{image-tigre} \end{figure} (Noter que \label est toujours après \caption.) Pour les tableaux (voir page 16), on utilisera {table} au lieu de {figure}. Liste des figures Pour faire une liste des figures, utiliser \listoffigures (pour une liste des tables, c’est \listoftables). Texte autour d’une figure Pour mettre du texte autour d’une figure, utiliser le package wrapfig (il vaut mieux éviter picinpar qui pose un certain nombre de problèmes). Voici la syntaxe : \begin{wrapfigure}{r}{0cm}%␣r␣à␣droite␣et␣l␣pour␣à␣gauche \includegraphics{...} \end{wrapfigure} Ne pas utiliser à l’intérieur d’une liste ou d’un {center}. Le \begin{wrapfigure} se place à la fin de la ligne précédent l’endroit où l’on veut que la figure apparaisse, même si c’est au milieu d’un mot. Le␣tigre␣est␣un␣mammifère␣carnivore␣de␣la␣fa-% \begin{wrapfigure}{r}{0cm} \includegraphics[width=2cm]{tiger-crop} \end{wrapfigure}% mille␣des␣félidés␣du␣genre␣Panthera.␣Aisément␣ reconnaissable␣à␣sa␣fourrure␣rousse␣rayée␣de␣ noir,␣il␣est␣le␣plus␣grand␣félin␣sauvage␣du␣ monde.␣L'espèce␣est␣divisée␣en␣neuf␣sousespèces␣possédant␣des␣différences␣mineures␣en␣ termes␣de␣taille␣ou␣de␣comportement. 17 Le tigre est un mammifère carnivore de la famille des félidés du genre Panthera. Aisément reconnaissable à sa fourrure rousse rayée de noir, il est le plus grand félin sauvage du monde. L’espèce est divisée en neuf sous-espèces possédant des différences mineures en termes de taille ou de comportement. (Texte provenant de l’article « Tigre » sur wikipédia.) Couleurs, espacements, réglures, url, effets spéciaux Couleurs Pour changer la couleur, il y a la commande \textcolor{gray} et la bascule \color{gray} qui mettent toutes les deux le texte dans la couleur gray. Voici une petite liste des couleurs prédéfinies : black red purple darkgray orange pink gray yellow magenta lightgray green cyan white blue brown violet On peut mélanger ses couleurs pour en obtenir d’autres ; par exemple, green!60!black est du vert foncé auquel on peut donner le nom darkgreen en faisant \colorlet{darkgreen}{green!60!black}. On peut aussi faire \definecolor{bordeaux}{rgb}{.5,0,0} pour définir une couleur en RVB (les nombres sont entre 0 et 1). commande {\color{gray}texte} \textcolor{gray}{texte} \normalcolor \pagecolor{blue!5} résultat texte texte couleur normale met le fond de la page commande \fbox{texte} \colorbox{gray!20}{texte} \fcolorbox{black}{gray!20}{texte} et de toutes celles qui suivent en blue!5 résultat texte texte texte Espacements commande \hspace{1cm} \hspace*{1cm} \hspace{\stretch{1}} \hfill ~ \, \quad effet espace horizontal de 1cm idem, mais ne disparaît jamais ressort horizontal de force 1 ressort horizontal (force 1) espace-mot insécable espace fine (insécable) espace cadratin commande \vspace{1cm} \vspace*{1cm} \addvspace{1cm} \vspace{\stretch{1}} \vfill \bigskip \medskip \smallskip effet espacement vertical de 1cm idem, mais ne disparaît jamais rajoute au plus 1cm d’espace ressort vertical de force 1 ressort vertical (force 1) grand espace vertical espace vertical moyen petit espace vertical Pour les différentes unités possibles, voir l’entrée sur les longueurs page 20. Filets et réglures code \hrule \hrulefill \vrule description code filet horizontal (sur toute la longueur) \rule{1cm}{1pt} ressort consistant d’un filet horizontal filet vertical (sur la hauteur disponible) \rule[5pt]{1cm}{1pt} description réglure de 1cm le long et d’une épaisseur de 1pt : idem, mais 5pt plus haut : Effets spéciaux \rotatebox{30}{texte} \rotatebox[origin=c]{180}{texte} \reflectbox{texte} \url{http://www.google.fr} \href{http://www.google.fr}{google} \href{mailto:moi@woo.com}{moi@woo.com} résultat te tex texte commande etxet http://www.google.fr google moi@woo.com commande \verb"\macro" \verb|\symbol{"90}| résultat \macro \symbol{"90} \begin{verbatim} #~$^_}{&\"| \end{verbatim} #~$^_}{&\"| Remarque : les autres possibilités pour origin dans \rotatebox sont l, r, c, t, b et B. Pour présenter du code informatique, voir page 22 18 Listes à puces ou numérotées, descriptions Types de listes \begin{itemize} ␣␣\item␣Un. ␣␣\item␣Deux. ␣␣\item[$\cdot$]␣Trois. \end{itemize} – Un. – Deux. · Trois. \begin{enumerate} ␣␣\item␣Un. ␣␣\item␣Deux. ␣␣\item␣Trois. \end{enumerate} 1. Un. 2. Deux. 3. Trois. \begin{description} ␣␣\item[primo]␣Un. ␣␣\item[secondo]␣Deux. ␣␣\item[tercio]␣Trois. \end{description} primo Un. secondo Deux. tercio Trois. Paramètres du package enumitem Une fois le package enumitem chargé, les listes prennent toutes un argument optionnel permettant de changer leur présentation (pour {itemize}, mettre \frenchbsetup{StandardLists=true} dans le préambule). \begin{enumerate}[label=\bfseries\alph*.,ref=\alph*.,leftmargin=\parindent] numérotera (voir page 20 pour les compteurs) les item « a., b., c., . . . » tandis que l’utilisation de \ref donnera « a., b., c., . . . » et la marge gauche sera égale à la valeur du retrait d’alinéa (\parindent). La police d’une {description} se change via font. Les paramètres de distances possibles sont (\parskip est un paramètre de distance global qui n’est pas spécifique aux listes) Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. partopsep (si ligne blanche avant la liste) itemindent – labelsep topsep+parskip Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. parsep listparindent leftmargin Bla bla bla bla bla bla bla bla bla rightmargin bla bla bla bla bla bla. itemindent – labelsep itemsep+parsep Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. topsep+parskip partopsep (si ligne blanche avant la liste) Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. topsep : espace avant et après partopsep : espace avant si la liste est précédée d’une ligne blanche itemsep : séparation entre les item parsep : séparation entre les paragraphes d’un item leftmargin : marge gauche rightmargin : marge droite labelsep : distance étiquette/texte itemindent : indentation du premier paragraphe d’un item listparindent : indentation des autres paragraphes d’un item Personnalisation globale des listes avec enumitem Listes à puces. Pour changer tous les {itemize}, utiliser \setitemize[1] (où 1 est la profondeur) : \frenchbsetup{StandardLists=true}%␣désactive␣l'action␣de␣babel/francais \setitemize[1]{label=--,partopsep=\parskip,topsep=-\parskip,itemsep=0pt,parsep=0pt} Listes numérotées. Pour changer tous les {enumerate}, utiliser \setitemize[1] (où 1 est la profondeur) : \setenumerate[1]{label=\arabic*.}␣␣␣\setenumerate[2]{label=\alph*.,ref=\theenumi.\alph*} Descriptions. Pour changer toutes les {description}, utiliser \setdescription : \setdescription{font=\bfseries\sffamily} Changer makelabel avec enumitem L’étiquette des listes est imprimée à l’aide d’une commande appelée \makelabel. Celle-ci vaut \hss\llap {#1} pour {itemize} et {enumerate}, ce qui a pour effet de mettre l’étiquette, aussi grande soit-elle, à gauche du texte. Pour {description}, c’est \hspace{\labelsep}\normalfont\bfseries#1. Il est possible de changer \makelabel avec le package enumitem en utilisant la clef before : \newcommand{\nouveaumakelabel}[1]{#1} \begin{enumerate}[before=\renewcommand{\makelabel}{\nouveaumakelabel}] 19 Registres de compteurs et de longueurs Compteurs commande \newcounter{compte} \newcounter{compte}[section] \refstepcounter{compte} \setcounter{compte}{6} \value{compte} \thecompte \setcounter{compte}{\numexpr\value{compte}+10} \renewcommand{\thecompte}{\Roman{compte}} \renewcommand{\thecompte}{\thesection.\arabic{compte}} \numberwithin{equation}{section} \makeatletter \@removefromreset{section}{chapter} \makeatother effet Définit le compteur compte Définit le compteur compte et le réinitialise à chaque changement de section Incrémente le compteur compte Met le compteur compte à 6 Valeur numérique du compteur Affichage du compteur Rajoute 10 à compte Règle l’affichage du compteur en chiffres I, II, III, . . . Rajoute le numéro de section devant celui de compte Rend le compteur d’équation dépendant du compteur de section Rend le compteur section indépendant de chapter (nécessite le package remreset) Formats de compteurs. Voici les affichages disponibles pour les compteurs : \arabic \fnsymbol 1, 2, 3, 4, 5, 6, etc. ∗, †, ‡, §, ¶, k, etc. \Roman \roman I, II, III, IV, V, VI, etc. i, ii, iii, iv, v, vi, etc. \Alph \alph A, B, C, D, E, F, etc. a, b, c, d, e, f, etc. Pour définir d’autres affichages : \makeatletter \newcommand{\astsymbol}[1]{\ensuremath{\ifcase\value{#1}\or{*}\or{*}{*}\or ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣{*}{*}{*}\or{*}{*}{*}\else\@ctrerr\fi}} \makeatother Longueurs \newlength{\longueur} \setlength{\longueur}{3pt} \addtolength{\longueur}{3pt} \settowidth{\longueur}{texte} \settoheight{\longueur}{texte} \settodepth{\longueur}{texte} \setlength{\longueur}{\dimexpr\longueur*12/10} \the\longueur Crée la dimension \longueur Met la dimension \longueur à 3pt Ajoute 3pt à la dimension \longueur Met la dimension \longueur à la largeur de “texte” Met la dimension \longueur à la hauteur de “texte” Met la dimension \longueur à la profondeur de “texte” Multiplie la dimension \longueur par 12/10 Valeur de la longueur (en points) Unités de longueur Unités de base point millimètre hauteur de x cadratin centimètre pt mm ex em cm Autres unités disponibles scaled point sp 0,0000153 pt math unit mu 0,05555 em big point bp 1,00374 pt didot point dd 1,07000 pt pica pc 0,42172 cm cicero cc 0,45125 cm inch in 2,54000 cm 0,35114 mm 2,84526 pt * ≈ 4,2 à 5,5 pt * 10 pt 28,4526 pt * Ces deux unités dépendent de la police courante. Valeurs données pour une police de 10 pt. 20 Index Création de l’index Dans le préambule, rajouter \usepackage{makeidx} \makeindex puis, à l’endroit où l’index doit apparaître (généralement à la fin du document), mettre \printindex Point de vue de la compilation, il faut compiler avec latex puis avec makeindex puis une autre fois avec latex. Sous TeXmaker, cela se fait en appuyant sur F6, F12 puis F6. Commandes d’indexation Lettres accentuées. Mettre \index{etude@étude} pour que le classement soit correct (makeindex prend mal en charge les accents) Formatage d’une entrée. Utiliser \index{Euler,␣Leonhard@\textsc{Euler},␣Leonhard} pour mettre Euler en petites capitales : Euler, Leonhard, 16 Reclassement d’une entrée. Utiliser \index{alpha@$\alpha$} pour mettre α à alpha : alpes, 43 α, 65 alphabet, 78 Sous-entrée. Utiliser \index{hypergéométrique!fonction} et \index{hypergéométrique!équation} (en fait, à cause des accents, il faut mieux écrire \index{hypergeometrique@hypergéométrique!fonction} et \index{hypergeometrique@hypergéométrique!équation}) : hypergéométrique fonction, 10 équation, 12 Référence croisée. Utiliser \index{lemme␣de␣Schur|see{Schur}} lemme de Schur, voir Schur Indexer une plage de pages. Utiliser \index{mot_a_indexer|(} au début et \index{mot_a_indexer|)} à la fin. calcul de ζ(2), 5–14 Formattage spécial du numéro de page. Les commandes \index{constante␣d'Euler|textit} à la page 5, \index{constante␣d'Euler} aux pages 8 et 12 et \index{constante␣d'Euler|textbf} à la page 13 donneront : constante d’Euler, 5, 8, 12, 13 Bien entendu, il vaut mieux définir des commandes personnelles pour toutes ces questions de formattage. Par exemple si 5 désigne un exemple important d’application du théorème et 13 sa démonstration, ce sera plus pertinent de définir deux commandes \newcommand{\indexexempleimportant}[1]{\textit{#1}} \newcommand{\indexdemotheoreme}[1]{\textbf{#1}} En suite, en tapant \index{constante␣d'Euler|indexexempleimportant} à la page 5, \index{constante ␣d'Euler} aux pages 8 et 12 et \index{constante␣d'Euler|indexdemotheoreme} à la page 13, on obtiendra constante d’Euler, 5, 8, 12, 13 Pour préserver les hyperliens dans l’index, il faut légèrement modifier les définitions des commandes précédentes : \newcommand{\indexexempleimportant}[1]{\textit{\hyperpage{#1}}} \newcommand{\indexdemotheoreme}[1]{\textbf{\hyperpage{#1}}} 21 Code informatique avec listings Configuration de base \usepackage{listings}%␣package␣listings␣version␣1.4 options à toujours mettre options de présentation \lstset{upquote=true, ␣␣␣␣␣␣␣␣columns=flexible, ␣␣␣␣␣␣␣␣keepspaces=true, ␣␣␣␣␣␣␣␣breaklines, ␣␣␣␣␣␣␣␣breakindent=0pt} \lstset{basicstyle=\ttfamily, ␣␣␣␣␣␣␣␣commentstyle=\itshape, ␣␣␣␣␣␣␣␣keywordstyle=\bfseries, ␣␣␣␣␣␣␣␣language=[LaTeX]TeX, ␣␣␣␣␣␣␣␣texcsstyle=*\bfseries} Commandes de base Il y a \lstinline"\macro{...}" qui donne \macro{...}. Pour faire plusieurs lignes : \begin{lstlisting}[language={[LaTeX]TeX}] ... \end{lstlisting} Ne jamais écrire “\begin{lstlisting}%”, cela cause des problèmes. Pour définir un environnement de type {lstlisting}, utiliser \lstnewenvironment{pascalcode}[1][] ␣␣{\lstset{language=pascal,numbers=left,numberstyle=\tiny,#1}} ␣␣{} Liste des languages les plus courants [LaTeX]TeX Metapost Postscript PSTricks command.com (Batch) bash HTML XML PHP SQL Python Ruby Perl Lisp VBScript R Scilab MuPad Matlab Mathematica Gnuplot Caml [Objective]Caml Java C C++ Asssembler Basic Cobol Delphi Fortran Pascal Options de présentation Voici quelques options de présentation : \lstset{xleftmargin=2em,xrightmargin=2em,aboveskip=\topsep,belowskip=\topsep, ␣␣␣␣␣␣␣␣frame=single,rulecolor=\color{blue},backgroundcolor=\color{blue!5}} Pour numéroter les lignes, utiliser par exemple \lstset{numbers=left,numberstyle=\tiny,stepnumber=2,numbersep=5pt} Nouveaux languages Voici comment définir un nouveau language pour BibTeX (à mettre dans le préambule) : \lstdefinelanguage{BibTeX} ␣␣{morekeywords={@BOOK,@ARTICLE,@STRING,@PREAMBLE,@BOOKLET,@CONFERENCE, ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣@INBOOK,@INCOLLECTION,@INPROCEEDINGS,@MANUAL,@MASTERSTHESIS, ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣@MISC,@PHDTHESIS,@PROCEEDINGS,@TECHREPORT,@UNPUBLISHED, ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣AUTHOR,TITLE,PUBLISHER,YEAR,NOTE,JOURNAL,VOLUME,PAGES,NUMBER, ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣MONTH,SERIES,EDITION,HOWPUBLISHED,ADDRESS,ORGANIZATION, ␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣␣EDITOR,BOOKTITLE,CHAPTER,INSTITUTION}, ␣␣␣sensitive=false, ␣␣␣morestring=[b]", ␣␣} 22 Rudiments de programmation Tests La commande \ifnum permet de comparer des nombres avec =, < ou >. Voici un exemple : valeur du compteur 1 2 3 4 5 \renewcommand{\thechapter}{% ␣␣\ifnum\value{chapter}=1 ␣␣␣␣premier% ␣␣\else ␣␣␣␣\Roman{chapter}% ␣␣\fi } affichage du compteur premier II III IV V Pour les dimensions, on dispose de \ifdim. Macros étoilées Pour faire des variantes étoilées d’une macro, on utiliser \@ifstar. Par exemple \section pourrait se définir avec \makeatletter \newcommand{\section}{\@ifstar\section@star\section@nostar} \newcommand{\section@star}[1]{...} \newcommand{\section@nostar}[2][]{...} \makeatother Calculs On peut faire des calculs avec \numexpr (sur les nombres) et avec \dimexpr (sur les dimensions). La syntaxe est \number\numexpr...\relax et \the\dimexpr...\relax (\number et \the ne sont pas toujours nécessaires). Voici un exemple qui répète un symbole un certain nombre de fois. Par exemple, \cloner{*}{5} donne *****. \newcommand{\cloner}[2]{% ␣␣\ifnum#2<1 ␣␣␣␣% ␣␣\else ␣␣␣␣#1\cloner{#1}{\number\numexpr#2-1\relax}% ␣␣\fi } Voici maintenant une commande qui imprime « bla bla » un nombre de fois donné en argument optionnel : \newcommand{\blabla}[1][25]{Bla\auxblabla[\numexpr#1-1\relax].} \def\auxblabla[#1]{% ␣␣\ifnum#1<1\else ␣␣␣␣\space␣bla\auxblabla[\numexpr#1-1\relax]% ␣␣\fi } Voici pour finir une commande qui calcule la factorielle d’un nombre : \newcommand{\fact}[1]{% ␣␣\ifnum#1<2 ␣␣␣␣1% ␣␣\else ␣␣␣␣\number\numexpr#1*\fact{\numexpr#1-1\relax}\relax ␣␣\fi } 23 Trouver de l’aide sur LaTeX Recherche sur google sur le message d’erreur, sur le thème, etc. permet souvent d’obtenir de l’information pertinente, mais ce n’est pas toujours la façon la plus efficace de faire. Documents d’apprentissage – – – – Une courte (?) introduction à LaTeX (http://ctan.org/pkg/lshort-french) Framabook LaTeX (http://www.framabook.org/latex.html) Polycopié du module LM204 (2008-2009) (http://www.math.jussieu.fr/~mpg/lm204/) Feuilles de TP du module LM204 (2009-2010) (http://www.math.jussieu.fr/~goutet/latex/) Documents de références – http://mirror.ctan.org/info/latex2e-help-texinfo/latex2e.pdf : liste de la plupart des commandes disponibles sous LaTeX. – http://ctan.org/get/info/symbols/comprehensive/symbols-a4.pdf : liste complète des symboles disponible avec LaTeX. – http://detexify.kirelabs.org/classify.html recherche visuelle des symboles. – http://ctan.org/get/info/math/voss/mathmode/Mathmode.pdf : document qui propose un certain nombre de solutions à des problèmes courants rencontré dans la mise en forme d’équations. Documentations des packages Aller les chercher dans C:\Program␣Files\MiKTeX␣2.9\doc\latex ou, en ligne de commande, utiliser texdoc␣geometry pour obtenir la documentation de geometry ; sinon, rechercher le nom du package sur http://ctan.org/search.html#byName. Forums d’aide – – – – http://forum.mathematex.net/latex-f6/ http://www.les-mathematiques.net/phorum/list.php?10 http://www.developpez.net/forums/f149/autres-langages/autres-langages/latex/ http://tex.stackexchange.com/ (en anglais) Foires aux questions (FAQ) – http://www.grappa.univ-lille3.fr/FAQ-LaTeX/ – http://www.tex.ac.uk/cgi-bin/texfaq2html (en anglais) – http://ctan.org/get/info/visualFAQ/visualFAQ.pdf (version visuelle de la FAQ anglaise) Livres – Bitouzé & Charpentier, LaTeX, Pearson éducation (27 euros). — Un bon livre d’introduction avec exercices corrigés. – LaTeX pour l’impatient, 3e édition, H&K (15 euros). — Un livre concret avec exercices corrigés ; bien faire attention de prendre la 3e édition qui corrige les erreurs des précédentes éditions. – LaTeX Companion, Pearson éducation (55 euros) [existe aussi en anglais]. — L’ouvrage de référence décrivant le fonctionnement de la plupart des packages courants. Usenet C’est un endroit fréquenté par beaucoup de spécialistes ; on peut y accéder par les newsgroups ou par google : – http://groups.google.fr/group/fr.comp.text.tex – http://groups.google.fr/group/comp.text.tex (en anglais) Pour faire une recherche, utiliser http://groups.google.fr/advanced_search? et spécifier le groupe (il arrive que la recherche normale ne donne pas de résultats exploitables). 24