LaTeX/Vadémécum

(Redirigé depuis LaTeX/Vade mecum)

Comme précisé en introduction, vous n'avez besoin la plupart du temps de ne connaître que peu d'instructions. Si l'on reprend la loi de Pareto, parmi toutes les commandes que vous utiliserez, 80 % de vos documents n'utiliseront que 20 % de ces commandes.

Par exemple, si l'on se contente de faire uniquement du texte, soit 80 % des besoins en général (si l'on excepte les ouvrages contenant beaucoup de mathématiques), on a besoin de connaître au plus une dizaine d'instructions (\chapter, \section, \subsection, \emph, \footnote, \label, \ref, \pageref) et d'environnements (itemize, enumerate, quote, quotation) — les commandes de début et de fin de document étant dans des modèles. Si l'on veut aller un peu plus loin, une vingtaine de commandes et environnements suffisent (tableaux, images). Ce sont ces 20 % de commandes.

Ce document présente également les commandes supplémentaires les plus courantes, en espérant couvrir 96 % de vos besoins… C'est donc une sorte de vade-mecum, un document à garder sur vous (ou sur votre disque dur) comme pense-bête.

Ce sont les commandes que nous avons vues précédemment, mais présentées succinctement, afin d'être utilisé comme aide-mémoire.

 Pensez à indiquer vos modifications dans la section « À faire » de la page de commons.

Syntaxe de base

modifier

Les commandes, ou instructions, commencent par une contre-oblique \.

Certaines commandes s'utilisent sans paramètre. Si ces commandes sont formées de lettres, l'espace qui les suit est ignoré : il indique que c'est la fin de la commande, mais ne provoque pas d'espacement. En cas de problème, on peut ajouter un bloc vide, par exemple \^\i{}, \fg{}, \copyright{}, …

Certaines commandes admettent un ou plusieurs paramètres. Les paramètres optionnels sont entre crochets […], on peut mettre plusieurs paramètres séparés par une virgule. Les paramètres obligatoires sont entre accolades {…}, et on ne met qu'un paramètre par accolade.

Un environnement commence par \begin{nom_env} et se termine par \end{nom_env}.

Les dimensions (longueurs, largeurs) sont indiquées sous la forme d'un nombre et d'une unité accolée. Par exemple, 3cm désigne trois centimètres, 1em désigne un cadratin. Les unités sont : mm (millimètre), cm (centimètre), pt (point anglo-saxon), dd (point Didot), ex (hauteur d'x) et em (cadratin).

On peut également utiliser des longueurs prédéfinies : \linewidth (largeur du texte, justification), \baselineskip (distance entre la ligne de base de deux lignes consécutives d'un même paragraphe), \parindent (largeur du retrait de paragraphe) et \parskip (interligne entre deux paragraphes).

Exemple
\hspace{4em}
\vspace{0.5\baselineskip}

Certaines commandes, dites « fragiles », ne donnent pas le résultat attendu dans certains environnements ou arguments de commandes. Le fait de placer devant la commande \protect peut parfois résoudre le problème.

Fichier de préambule

modifier

Le fichier de préambule est un fichier .tex qui contient :

  • les appels aux extensions (packages) ;
  • les commandes personnelles.

On l'appellera ici preambule.tex

Voici un fichier de préambule typique :

% ************************
% * fichier de préambule *
% ************************

% ***** extensions *****

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[frenchb]{babel}

% ***** césures particulières *****

\hyphenation{anti-consti-tu-tionnel-le-ment atmo-sphère 
   caou-tchouc cis-alpin trans-action}

% ***** exemples de commandes personnelles *****

\newcommand{\langue}{\emph} % mots en langues étrangères
\newcommand{\citital}{\emph} % citation en italique
\newcommand{\nomprog}{\texttt} % nom de programme en police teletype

On peut de même créer un fichier de fin de document, par exemple pour un livre, le fichier fin_livre.tex :

% ******************
% * fichier de fin *
% ******************
\listoftables
\listoffigures
\bibliographystyle{} % indiquer le style
\bibliography{} % indiquer le fichier .bib

\tableofcontents

Commandes personnelles

modifier

Pour une commande sans paramètre (par exemple développer une abréviation) :

\newcommand{\nom_de_commande}{commandes à exécuter}

Pour une commande avec n paramètres :

\newcommand{\nom_de_commande}[n]{commandes à exécuter}

les paramètres figurant sous la forme #1, #2, …

Pour définir un nouvel environnement :

\newenvironment{nom_de_l_environnement} 
  {commandes de début} 
  {commandes de fin}

Squelette de fichier

modifier

Le squelette de fichier est un fichier minimal qui sert de base à tous les autres fichiers. Pour l'utiliser, on fait une copie du fichier, on lui donne le nom du document puis on le modifie.

Le squelette général est :

\documentclass[options]{classe}

\input{preambule} 

\begin{document}

\end{document}

On peut créer des squelettes pour différents types de document. Pour un livre, on aura par exemple

\documentclass[a4paper, 11pt]{book}

\input{preambule} 

\begin{document}

\title{}
\author{}
\date{} 

\frontmatter % introduction

\maketitle

\mainmatter % corps du livre

\include{} % fichier contenant le 1er chapitre
\include{} % fichier contenant le 2e chapitre, ...

\appendix

\include{} % fichier contenant la 1re annexe

\backmatter % annexes

\input{fin_livre}

\end{document}

et pour un article

\documentclass[a4paper, 11pt]{article}

\input{preambule} 

\begin{document}

\title{}
\author{}
\date{} 

\maketitle

\begin{abstract}
   % résumé de l'article

\end{abstract}

% corps de l'article

\end{document}

Notons que :

  • le titre dans \title est nécessairement un paragraphe unique ; on peut forcer un retour de ligne avec \\ ;
  • dans \author, le nom d'un auteur peut être suivi d'une instruction \thanks{…}, qui permet de lui associer une note de bas de page ;
  • la fonction \include permet d'utiliser le texte d'un fichier .tex, ce qui permet de morceler un grand document en plusieurs fichiers ; la fonction introduit également une nouvelle page ;
  • la fonction \input est similaire à \include mais ne commence pas une nouvelle page, ce qui est utile pour les articles par exemple ; un fichier appelé par un \input ou un \include peut lui-même contenir un \input mais pas un \include.

Format du document

modifier

Le format du document dépend essentiellement de la classe de document invoquée : book (livre), report (rapport), article (article) pour les principales. On peut indiquer le format du papier ainsi que son orientation :

\documentclass[a4paper,11pt]{article}

pour un format A4 avec un corps de texte de 11 points. Les principales options sont (les options sur une même ligne sont exclusives) :

  • 10pt, 11pt, 12pt : corps de texte ;
  • a4paper, a5paper, b5paper, legalpaper, letterpaper : format de la page ;
  • landscape : page orientée à l'italienne (en paysage) ;
  • twocolumn : texte sur deux colonnes.

Par défaut, la page est orientée en portrait, et le texte est sur une colonne.

On peut définir le format avec les extensions geometry et multicol (qui permet d'utiliser plus de deux colonnes), auquel cas on n'indique que le corps de texte avec la classe :

\documentclass[11pt]{article}

\usepackage[a4paper,landscape]{geometry}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2)
...
\end{multicols}
\end{document}

Structuration du document

modifier

Titres de parties

modifier
Titres de parties
Type de partie Commande Remarque
Partie \part{titre}
Chapitre \chapter{titre} n'est pas disponible pour la classe article
Section \section{titre}
Sous-section \subsection{titre}
Sous-sous-section \subsubsection{titre}
Paragraphe \paragraph{titre}
Sous-paragraphe \subparagraph{titre}

Le titre affiché dans la table des matières peut être différent de celui affiché sur la page :

\section[titre dans la table]{Titre réel}

On peut utiliser les commandes étoilées (par exemple \chapter*{titre}) si l'on ne veut pas que le titre soit numéroté ; il ne figure alors pas dans la table des matières.

Si l'on veut au contraire faire figurer une partie, on utilise \addcontentsline, par exemple :

\addcontentsline{toc}{section}{\protect\numberline{}Préface}
\chapter*{Préface}

Le deuxième argument est le niveau de titre (chapter, section, subsection, …). La bibliographie, l'index, les listes de tableau et de figure et la table des matières elle-même peuvent être inclus automatiquement (sans utiliser \addcontentsline) en utilisant l'extension tocbibind.


Si vous utilisez l'extension hyperref, les entrées de la table des matières seront des liens hypertextes vers les sections.

Mise en emphase

modifier

La mise en emphase se fait avec

\emph{texte}

Cela se traduit par de l'italique dans le romain, ou par du romain dans l'italique.

On peut aussi mettre du texte hors alinéa, avec une marge plus grande. On utilise pour cela :

  • l'environnement quote : en général pour les citations courtes, la composition est en pavé ;
  • l'environnement quotation : en général pour les citations longues, la composition est en alinéa et il doit contenir plusieurs paragraphes.

Listes structurées

modifier

Les listes structurées sont des environnements :

\begin{type_de_liste}
   \item premier objet de la liste~;
   \item deuxième objet de la liste~;
   …
\end{type_de_liste}
Types de liste
Type de liste Environnement
Liste numérotée enumerate
Liste non-numérotée itemize
Liste de description description

Les listes de description s'utilisent de la manière suivante

\begin{description}
   \item[objet 1] description de l'objet 1~;
   \item[objet 2] description de l'objet 2~;
   …
\end{description}

On peut imbriquer les listes

\begin{type_de_liste 1}
   \item premier objet de la liste~;
   \item deuxième objet de la liste~:
      \begin{type_de_liste 2}
         \item premier objet de la sous-liste,
         …
      \end{type_de_liste 2}
   …
\end{type_de_liste 1}

Références et notes

modifier

Une note de bas de page s'obtient avec

\footnote{texte de la note}

placé à l'endroit de l'appel de note.

Si vous utilisez l'extension hyperref, les appels de note sont des liens vers la note.

La commande \marginpar{texte de la note} permet de mettre une note de marge, mais sans appel de note (puisque la note se trouve à côté du texte auquel elle se réfère).

Référence croisée

modifier

Pour faire une référence dans le texte (à une page, à un numéro de section), il faut d'abord placer une étiquette à l'endroit cible :

\label{étiquette}

puis, on utilise

  • \pageref{étiquette} pour mentionner le numéro de page, et
  • \ref{étiquette} pour mentionner le numéro de partie, chapitre, section, sous-section, équation, objet flottant (figure, tableau).

Si vous utilisez l'extension hyperref, les numéros de section et de page sont des liens menant vers l'endroit pointé.

Bibliographie

modifier

Pour placer une référence bibliographique, il faut :

  • introduire les références de l'ouvrage dans un fichier .bib dédié ; pour chaque ouvrage, on définit une étiquette ;
  • à l'endroit de l'appel, écrire \cite{étiquette} ;
  • à la fin de l'ouvrage, mettre
    \bibliographystyle{style}
    \bibliography{nom de fichier} ;
  • compiler avec latex, puis avec bibtex, et à nouveau avec latex.

Les entrées du fichier de bibliographie sont du type

@book{étiquette,
   author="auteur(s) du livre",
   title="titre de l'ouvrage",
   year="année",
   publisher="éditeur"
}

pour les livres, et

@article{étiquette,
   author="auteur(s) de l'article",
   title="titre de l'article",
   journal="nom du journal",
   number="numéro du journal",
   year="année de parution"
}

Il ne faut employer que des caractères ASCII (non accentués), donc utiliser des commandes de type {\'e} pour « é ». Les mots contenant des capitales doivent être dans un bloc {…} pour que la casse soit respectée.

S'il n'y a qu'un seul auteur on écrit :

author="Nom, Prénom"

s'ils sont plusieurs, on écrit :

author="Nom1, Prénom1 and Nom2, Prénom2"

Pour les styles bibliographiques, on peut utiliser des styles anglais ou francisés. Les principaux styles sont :

  • plain (anglais) ou plain-fr (francisé) : style « simple », la référence est un numéro, établi selon l'ordre alphabétique des auteurs puis l'année ;
  • unsrt (anglais) ou unsrt-fr (francisé) : style « non-trié » (unsorted), la référence est un numéro qui est l'ordre de citation ;
  • alpha (anglais) ou alpha-fr (francisé) : style « alphanumérique », la référence est composée des initiales du ou des auteurs et de l'année.

Si vous utilisez l'extension hyperref, les appels de note bibliographique sont des liens vers la référence.

Pour faire un index, il faut utiliser l'extension makeidx, puis :

  • dans le préambule, mettre la commande \makeindex ;
  • pour créer une entrée, mettre dans le texte \index{nom de l'entrée} ;
  • mettre la commande \printindex à l'endroit où l'on veut mettre l'index ;
  • compiler avec \latex, puis avec makeindex, puis à nouveau avec latex.

L'index contiendra le nom de l'entrée suivi du, ou des numéros de page.

On a les possibilités suivantes :

  • pour avoir un classement alphabétique ne correspondant pas au nom de l'entrée : \index{nom de classement@nom affiché}, par exemple \index{Epee@Épée} ;
  • pour faire référence à un autre mot : \index{mot|see{autre mot}}, par exemple \index{Sabre|see{Épée}} ;
  • pour avoir un intervalle de page : on place \index{mot|(} au début de la zone et \index{mot|)} à la fin ;
  • pour une « cascade », on met un point d'exclamation, par exemple \index{Lame!Sabre}, \index{Lame!Epee@Épée}.

Si vous utilisez l'extension hyperref, les numéros de page sont des liens vers les endroits concernés.

Caractères particuliers

modifier

Certains caractères ne sont pas accessibles au clavier, ou bien ne font pas partie du codage utilisé (défini par l'option passée à l'extension inputenc). Pour les obtenir, on utilise des commandes. En particulier, les caractères suivants ont une utilisation spéciale dans LaTeX et ne peuvent être tapés tels quels : { } % # $ ^ ~ & _ \.

Nous indiquons ci-dessous quelques caractères spéciaux. L'extension textcomp fournit des caractères supplémentaires.

Caractères spéciaux
Saisie Caractère Saisie Caractère Saisie Caractère
\{ { \copyright © \textbar |
\} } \dag \textperiodcentered ·
\% % \ddag \textregistered ®
\# # \o ø \texttrademark
\$ $ \O Ø \textvisiblespace ?
\textasciicircum ^ \P \degres?2 °
\textasciitilde ~ \pounds £ \ier, \iere, \iers, \ieres?2 er, re, ers, res
\& & \S § \ieme, \iemes?2 e, es
\_ _ \ss ß \primo, \secundo, \tertio, \quarto2 1°, 2°, 3°, 4°
\textbackslash \ \euro?1 \no, \No2 n°, N°
Notes
  1. avec l'extension eurosym
  2. avec l'extension [frenchb]{babel}
Ponctuation particulière
Commande Caractère Note
\dots points de suspension
\og, \fg «, » avec l'extension [frenchb]{babel} ; gère les espaces insécables ; selon ce qui suit le guillemet fermant, on peut devoir utiliser \fg{}
- - division (trait d'union)
-- tiret demi-cadratin, alternative : \endash
--- tiret cadratin, alternative : \emdash
?` ¿ alternative : \textquestiondown
!` ¡ alternative : \textexclamdown


Diacritiques et ligatures
Commande Résultat Exemple
\' accent aigu \'E ? É
\` accent grave \`E ? È
\^ accent circonflexe \^E ? Ê, \^\i ? î
\" tréma \"E ? Ë
\c cédille \c?C ou \c{C} ? Ç
\ae, \AE, \oe, \OE æ, Æ, œ, Œ

On peut utiliser différents espaces horizontaux. Pour introduire une espace[1] de dimension donnée, on utilise la commande

\hspace{longueur}
Espaces
Type Saisie
espace justifiante ?, retour de ligne, \?, {}? ou {?}
espace insécable ~
petite espace \,
espace fine \/

Rappel : l'espace insécable se met entre autres devant une ponctuation double (:;?!), l'extension [frenchb]{babel} gère ceci automatiquement ; elle se met aussi entre une valeur et son unité, ainsi qu'entre un titre et un patronyme.

Mise en forme du texte

modifier

On peut faire varier le corps (taille du texte), par ordre de taille croissant : \tiny, \scriptsize, \footnotesize, \small, \normalsize (taille normale), \large, \Large, \LARGE, \huge, \Huge. On peut :

  • soit inclure le texte avec la commande dans un bloc, par exemple {\small texte en petit} ;
  • soit utiliser un l'environnement ayant le même nom que la commande, par exemple \begin{small} texte en petit \end{small}.

On peut changer la police. Une police est définie par trois paramètres :

  • sa famille (caractères romains, sans empattement, type machine à écrire) ;
  • sa forme (caractères droits, italiques, petites capitales) ;
  • sa graisse (gras, moyen).

On peut définir chacun de ces trois paramètres avec des commandes à argument, de la forme \textoption, ou bien avec des commandes déclaratives ; on a trois type de commandes déclaratives selon le paramètre concerné (\optionfamilly pour la famille, \optionshape pour la forme, \optionseries pour la graisse).

Choix de la police
Type de police Commande à argument Commande déclarative Remarque
romain \textrm{texte} {\rmfamily texte}
sans empattement \textsf{texte} {\sffamily texte}
police type machine à écrire \texttt{texte} {\ttfamily texte}
italique \textit{texte} {\itshape texte} la plupart du temps, préférer \emph{…}
petites capitales \textsc{texte} {\scshape texte}
\bsc{texte} avec l'extension [frenchb]{babel} (empêche la césure)
gras \textbf{texte} {\bfseries texte}
supérieures (exposant) \textsuperscript{texte}
chiffres elzéviriens (ou bas de casse) \oldstylenums{chiffres}

Certaines extensions permettent d'utiliser d'autres fontes :

  • l'extension fourier permet d'utiliser la fonte Utopia ;
  • l'extension mathptmx permet d'utiliser la fonte Times ;
  • l'extension mathpazo permet d'utiliser la fonte Palatino ;
  • l'extension times définit la fonte Times comme fonte romaine, Helvetica comme fonte sans empattement et Courier comme fonte à chasse fixe ;
  • l'extension oldgerm fournit la commande \textgoth{texte en gothique} ; l'extension yfonts fournit les commandes {\frakfamily texte en gothique} et \textfrak{texte en gothique} ;
  • l'extension frcursive fournit l'environnement cursive, qui imite une écriture manuelle.

Pour une lettrine, il faut utiliser l'extension lettrine, on a alors la commande \lettrine :

\lettrine{L}{es premiers} mots du paragraphe...

Mise en page

modifier

On peut provoquer un retour à la ligne sans changer d'alinéa avec \\ (double contre-oblique).

On peut introduire un espace vertical entre deux paragraphes :

  • \vspace{longueur} ;
  • \medskip pour sauter une ligne « normale » ;
  • \smallskip pour un « petit » saut de ligne ;
  • \bigskip pour un « grand » saut de ligne.

On peut inciter à un saut de page avec \pagebreak et décourager un saut de page avec \nopagebreak.

On peut forcer un saut de page avec \newpage ou \clearpage, le second forçant l'affichage des flottants en suspens. Avec la commande \cleardoublepage, le texte qui suit est en belle page (page impaire).

L'environnement minipage permet d'organiser une partie d'un texte comme une page, par exemple à l'intérieur d'une \fbox, ou bien pour placer des notes au bas d'un bloc donné plutôt qu'en bas de page :

\begin{minipage}{largeur}
   ...
\end{minipage}

Composition

modifier

Par défaut, le texte est composé en alinéa en typographie française.

Pour composer ponctuellement en pavé, on peut mettre un espace vertical (par exemple \medskip) avant le paragraphe pour placer une ligne vide, et \noindent au début du paragraphe pour annuler l'alinéa.

La commande \indent permet de forcer un alinéa lorsqu'il n'y en a pas.

Pour une composition en drapeau (alignée à gauche ou à droite), on utilise les environnements flushleft (au fer à gauche) ou flushright (au fer à droite). Pour une composition centrée, on utilise l'environnement center.

Pour empêcher une césure, on utilise \mbox{mot}. Pour indiquer l'endroit où peut se trouver la césure, on utilise la commande \hyphenation dans le préambule. S'il s'agit d'un mot à usage unique, on peut indiquer la césure localement, en mettant \- dans le mot.

Tableaux

modifier

Il est fortement conseillé d'utiliser l'extension array.

Un tableau est défini par l'environnement tabular :

\begin{tabular}{description}
   élément A1 & élément A2 \\
   élément B1 & élément B2 \\
\end{tabular}

Les lignes se terminent par une double contre-oblique \\ ou par un \tabularnewline, et au sein d'une ligne, les cellules sont séparées par une esperluette &.

La description est la liste des colonnes avec leur type :

  • l : texte aligné à gauche ;
  • c : texte centré ;
  • r : texte aligné à droite ;
  • p{largeur} : texte en pavé, la largeur de la colonne étant fixée.

Dans une colonne de type p, on peut revenir à la ligne au sein d'une colonne avec \newline, et on peut changer d'alinéa avec une ligne vide.

Pour avoir des filets verticaux, on place des tubes | dans la description. Pour avoir des filets horizontaux, on place des \hline. On peut mettre un filet horizontal partiel (qui ne fait pas toute la largeur du tableau) avec \cline{colonne1-colonne2}. L'extension arydshln (pour array dashed lines, à placer après les autres extensions relatives aux tableaux) qui permet d'avoir un filet en trait discontinu : on utilise le deux-points « : » pour les séparateurs verticaux, \hdashline pour les séparateurs horizontaux et cdashline{colonne1-colonne2} pour les séparateurs horizontaux qui ne font pas toute la largeur. Par exemple, pour un tableau avec des filets simples partout :

\begin{tabular}{|l|l|}
   \hline
   élément A1 & élément A2 \\
   \hline
   élément B1 & élément B2 \\
   \hline
\end{tabular}

On peut fusionner des cellules consécutives d'une ligne avec \multicolumn :

\multicolumn{nombre}{description}{contenu}

nombre est le nombre de cellules fusionnées, et description est la description comme ci-dessus (l, c, r, p). À moins que la première colonne ne soit incluse, on n'indique que le filet de droite (par exemple {l|}), le filet de gauche étant déterminé par la description générale. On peut utiliser cette commande sur une seule colonne pour en changer la mise en forme (alignement, filets).

On peut simuler une fusion verticale en utilisant des filets partiels. Pour faire de la vraie fusion de lignes, il faut utiliser l'extension multirow et la commande :

\multirow{nombre de lignes}{largeur}{contenu}

Pour largeur, on peut indiquer une étoile * afin de laisser LaTeX ajuster la largeur automatiquement ; cependant, cette option ne permet pas d'avoir des retours de ligne dans la cellule.

L'extension array définit deux commandes à placer dans la description des colonnes : >{commandes} qui permet d'exécuter des commandes en début de cellule, et <{commandes} pour la fin de cellule. Par exemple :

  • mettre toute une colonne en fonte teletype : >{\ttfamily}l| ;
  • mettre toute une colonne en mode mathématiques : >{$}l<{$}| ;
  • pour aligner gauche en fixant la largeur : >{\raggedright\arraybackslash}p{3cm}|[2] ; la commande \arraybackslash permet d'utiliser \\ pour changer de ligne de tableau, sinon ceci sert pour revenir à la ligne dans la cellule (on peut toujours utiliser \tabularnewline) ;
  • pour centrer et aligner à droite : >{\centering} et >{\raggedleft}, avec la même précaution que ci-dessus.

Cette extension fournit également deux types de colonne : m et b, identiques à p, mais verticalement, les cellules des autres colonnes seront respectivement centrées et alignées en bas par rapport aux cellules de cette colonne. Si l'on veut centrer verticalement une cellule ou l'aligner en bas, il faut avoir recours à une solution au cas par cas[3].

Enfin, si un type de colonne doit être utilisé plusieurs fois, l'extension array permet de définir un type de colonne, par exemple

\newcolumntype{C}{>{\centering\arraybackslash}p{3cm}}
\begin{tabular}{|l|C|}
   ...

L'extension slashbox permet de scinder une cellule en deux selon la diagonale, par exemple pour la cellule en haut à gauche du tableau, on utilise :

\backslashbox{titre de la colonne}{titre de la ligne}

Si l'on veut faire tourner un texte (par exemple mettre un en-tête vertical), on utilise

\rotatebox{angle}{texte}

angle est en degrés. Si l'on veut avoir un en-tête de colonne à 45°, il faut mettre le texte dans une boîte de taille nulle pour ne pas élargir la colonne :

\makebox[0cm][1]{\rotatebox{45}{texte}}

Couleur

modifier

On utilise l'extension xcolor. On dispose des fonctions suivantes :

  • \textcolor{couleur}{texte} et {\color{couleur} texte} pour la couleur des caractères ;
  • \colorbox{couleur}{texte} pour une boîte à fond coloré ;
  • \fcolorbox{couleur cadre}{couleur fond}{texte} pour une boîte à fond coloré avec un filet de couleur autour du texte ;
  • \pagecolor{couleur} pour une page à fond coloré.

Les couleurs utilisables sont red, green, blue, cyan, magenta, yellow, orange, violet, purple, brown, black, darkgray, gray, lightgray et white.

On peut aussi utiliser des modèles, en remplaçant {couleur} par [modèle]{couleur}, par exemple \colorbox[modèle]{couleur}{texte}. On a notamment :

  • rgb : les trois composantes sont un nombre entre 0 et 1, séparés par une virgule ;
  • HTML : les trois composantes sont un nombre hexadecimal entre 00 et FF, accolés (HTML en majuscule) ;
  • hsb : modèle teinte-saturation-luminosité (TSL), les trois composantes sont un nombre entre 0 et 1 (la teinte est donc l'angle en degrés divisé par 360), séparés par une virgule ;
  • gray : modèle nuances de gris, avec un nombre décimal entre 0 (noir) et 1 (blanc).

On peut définir une nouvelle couleur avec \definecolor :

\definecolor{vertolive}{rgb}{0.5,0.5,0}

Pour un tableau, on utilise le paramètre table en appelant l'extension xcolor, \usepackage[table]{xcolor}. On peut alors définir :

  • la couleur de fond d'une ligne en mettant \rowcolor{couleur} en début de ligne ;
  • la couleur de fond d'une colonne en mettant >{\columncolor{couleur}} avant la désignation de la colonne dans la définition de l'environnement tabular ; on peut lui adjoindre la couleur des caractères >{\color{couleur} \columncolor{couleur}} ;
  • la couleur de fond d'une cellule en mettant \cellcolor{couleur} en début de cellule.
\begin{tabular}{|l|l|>{\columncolor{yellow}}l|}
   \hline
   A1 & A2 & A3 \\ \hline
   \rowcolor{cyan} B1 & B2 & \cellcolor{green}B3 \\ \hline
\end{tabular}

Pour une alternance de couleur sur deux lignes, on peut utiliser la commande \rowcolors (avec un s?) : \rowcolors{début}{couleur impaire}{couleur paire}, début étant la première ligne colorée (cela permet de sauter les en-têtes).

\rowcolors{1}{lightgray}{white}
\begin{tabular}
...

Éléments autres que du texte

modifier

L'inclusion d'une image se fait avec la commande \includegraphics{nom du fichier}. Il est conseillé d'avoir deux fichiers image, un PostScript (.ps ou .eps) et un PNG, JPEG ou PDF, et de ne pas indiquer l'extension afin de laisser LaTeX choisir le fichier.

L'extension graphicx permet de définir simplement la taille de l'image : \includegraphics[width=largeur]{nom du fichier}, \includegraphics[height=hauteur]{nom du fichier}.

Adresses réticulaires

modifier

L'extension hyperref met en forme l'adresse réticulaire et crée en plus un lien cliquable dans le document :

\url{http://fr.wikibooks.org/}
\url{mailto:jeveuxduspam@fai.fr}
\url{news:fr.comp.text.tex}

Comme l'extension redéfinit un certain nombre de commandes, il est recommandé de la placer en dernier dans le préambule. Si l'on veut colorer le lien, on peut appeler l'extension avec l'option colorlinks=true. L'option breaklinks=true autorise LaTeX à faire des césures dans les adresses :

\usepackage[colorlinks=true,breaklinks=true]{hyperref}

Si vous ne voulez pas de lien mais simplement une mise en forme, vous pouvez utiliser la commande \url{…} de l'extension url.

Éléments flottants

modifier

Un élément flottant est une image ou un tableau dont le placement est laissé à l'initiative de LaTeX ; LaTeX se charge également de la numérotation. Un élément flottant est défini par un environnement : figure pour une image et table pour un tableau.

\begin{figure}[position]
   \caption{\label{étiquette} titre} 
   \includegraphics[…]{}
\end{figure} 
[…]
Dans la figure~\ref{étiquette} page~\pageref{étiquette}, […].

ou bien

\begin{table}[position]
   \caption{\label{étiquette} titre} 
   \begin{tabular}{description}
      […]
   \end{tabular}
\end{table} 
[…]
Dans le tableau~\ref{''étiquette''} page~\pageref{''étiquette''}, […].

Le paramètre optionnel position est une lettre indiquant l'emplacement désiré :

  • h pour qu'il soit à côté du texte précédant dans le source (here),
  • t : en haut d'une page (top),
  • b : en bas d'une page (bottom),
  • p : dans une page ne contenant que des flottants (regroupement des figures et tableaux).

Si l'on est sur deux colonnes, les environnements étoilés figure* et table* permettent de placer l'objet sur toute la largeur de la page et non plus dans une colonne.

Pour centrer l'objet, il faut utiliser \centering :

\begin{figure}[position]  \begin{table}[position]
   \centering                \centering
   […]                          […]
\end{figure}                 \end{table}

La commande \clearpage qui provoque un changement de page et l'affichage de tous les flottants en attente. L'instruction \cleardoublepage a le même effet, mais le texte qui suit est placé en belle page.

On peut afficher l'index des flottants avec \listoffigures et \listoftables.

L'extension rotating fournit deux environnements flottants appelés sidewaystable et sidewaysfigure qui permettent de placer les objet à l'italienne (en paysage), en faisant également tourner le titre.

\begin{sidewaystable}
   \caption{titre}
   \begin{tabular}
      […]
   \end{tabular}
\end{sidewaystable}

Formules mathématiques

modifier

L'utilisation des extensions de l'AMS (American Mathematical Society), et en particulier amsmath et amsfonts, est fortement recommandée.

\usepackage{amsmath,amssymb,amsfonts}

Le mode mathématique ne gère pas de manière correcte les opérateurs Unicode (en particulier l'alignement et l'espacement), par exemple le caractère « × » n'est pas géré correctement, il faut utiliser les commandes (\times ici).

Mode mathématique

modifier

les formules mathématiques sont incluses dans des environnements : math pour une formule dans le texte, displaymath pour une formule hors alinéa, et equation pour une formule hors alinéa numérotée. On peut utiliser les abréviations suivantes :

  • $…$ pour une formule dans le texte ;
  • \[…\] pour une formule hors alinéa non-numérotée.
Exemple
\begin{equation}
   \label{eq_gas_pft}
   PV = nRT
\end{equation}
Dans l'équation~\ref{eq_gas_pft},
dite \og équation des gaz parfaits \fg, ...

Fonctions

modifier

Par défaut, les lettres sont considérées comme des variables et sont mises en italique. Les fonctions sont en romain, et sont des commandes simples à retenir : une contre-oblique et l'abréviation de la fonction, par exemple \sin, \cos, \tan, \cot, \arcsin, \arccos, \arctan, \coth, \sinh, \cosh, \tanh \ln, \log, \exp \max, \min, \sup, \inf, \lim \ker, \deg, …

Si vous voulez définir une nouvelle fonction, il faut utiliser la commande \DeclareMathOperator[4] :

\DeclareMathOperator{\commande}{texte}

par exemple

\DeclareMathOperator{\acos}{acos}

Polices mathématiques

modifier

Les polices mathématiques sont différentes des polices de texte. Les instructions permettant de changer de police sont donc différentes.

Choix de la police mathématique
Type de police Commande Type de police Commande
romain \mathrm{texte} supérieures (exposant) ^{texte}
sans empattement \mathsf{texte} inférieures (indice) _{texte}
police type machine à écrire \mathtt{texte} lettres ajourées \mathbb{texte}[5]
italique \mathit{texte} écriture calligraphique \mathcal{texte}
gras \mathbf{texte} gothique \mathfrak{texte}[5]

Les lettres grecques sont obtenue en écrivant leur nom en anglais avec une contre-oblique :

  • bas-de-casse : \alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \kappa \lambda \mu \nu \xi \pi \rho \sigma \tau \upsilon \phi \chi \psi \omega ;
  • capitales : \Gamma \Delta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega.

Certaines lettres sont identiques aux lettres latines et ne sont donc pas définies, comme le omicron, qui est en fait identique au « o », et de nombreuses capitales (l'alpha capitale est identique au A etc.).

Certaines lettres ont des variantes.

Variantes des lettres grecques
Première
variante
Caractère Seconde
variante
Caractère
\epsilon   \varepsilon  
\theta   \vartheta  
\pi   \varpi  
\rho   \varrho  
\sigma   \varsigma  
\phi   \varphi  

Le mode mathématique gère différemment les espaces et les accents. Lorsque l'on veut mettre du texte normal en mode mathématique (par exemple entre deux expressions), on utilise la commande \text{…}[4].

Opérateurs, quantificateurs, relations et symboles

modifier
Opérateurs arithmétiques
Instruction Symbole Instruction Symbole
+   \div  
-   :  
\times   \Im, \Re  ,  
\cdot   \otimes  
/   \wedge  
Grands opérateurs arithmétiques
Instruction Symbole Instruction Symbole
\frac{a}{b}   \prod_{i=1}^{n} u_i  
\sqrt{a}   \int_{a}^{b} f(x)dx  
\sqrt[n]{a}   \oint_{\Lambda} f(x)dx  
\sum_{i=1}^{n} u_i  

L'extension amsmath fournit les commandes \iint et \iiint pour les intégrales doubles et triples.

Dérivation
Instruction Symbole
\nabla  
\partial  

Certains quantificateurs et relations ont leur négation, par exemple \exists et \nexists. S'il n'existe pas, on peut faire précéder la commande par \not (par exemple \not\exists).

Quantificateurs
Instruction Symbole
\forall  
\exists  
\nexists  
Relations
Instruction Symbole Instruction Symbole
=   \neq  
\equiv   \ll, \gg  ,  
\approx   \lll, \ggg[6]  ,  
\simeq   \Rightarrow, \Longrightarrow  ,  
\propto   \iff  
\leq, \geq  ,   \leqslant, \geqslant[6]  ,  
\pm, \mp  ,   \to  
Ensembles
Instruction Symbole Instruction Symbole
\varnothing   \subset  
\cap   \subseteq  
\cup   \in  
Opérateurs logiques
Instruction Symbole
\lnot  
\land  
\lor  
Géométrie
Instruction Symbole Instruction Symbole
\wedge   \sphericalangle  
\angle   \perp  
\measuredangle  
Flèches
Instruction Symbole Instruction Symbole
\leftarrow, \longleftarrow  ,   \xrightarrow[a]{b}, \xleftarrow[a]{b}[4]  ,  
\rightarrow, \longrightarrow  ,   \leftrightarrows, \leftrightharpoons  ,  
\leftrightarrow, \longleftrightarrow  ,   \uparrow, \downarrow, \updownarrow  ,  ,  
\nwarrow, \nearrow, \searrow, \swarrow  ,  ,  ,   \Uparrow, \Downarrow, \Updownarrow  ,  ,  

On fera attention à la présence éventuelle d'un s, ainsi qu'à l'ordre des mots left et right. Si l'on met une capitale à l'instruction de la flèche, on obtient en général une flèche double.

Divers
Instruction Symbole Instruction Symbole
\infty   \bullet  
\circ   \cdots, \ldots  

Délimiteurs

modifier

Les délimiteurs classiques sont (…), […], \{…\}, |…|, \|…\| (pour ||…||), \langle…\rangle (pour <…>).

Pour avoir des délimiteurs adaptables en taille à leur contenu, on met \left devant le délimiteur d'ouverture et \right devant le délimiteur de fermeture, par exemple \left ( \frac{a}{b} \right ).

Si l'on ne veut qu'un délimiteur d'ouverture (par exemple une grande accolade), on termine l'expression par \right . (le point n'est pas affiché).

Accents mathématiques

modifier
Accents mathématiques
Instruction Résultat Instruction Résultat
\acute{a}   \tilde{a}  
a', a^\prime  ,   \dot{a}, \ddot{a}  ,  
\hat{a}   \widehat{ABC}  
\bar{a}   \overline{AB}  
\grave{a}   \underline{AB}  
\overbrace{1,\ldots,n}^{a}   \underbrace{1,\ldots,n}_{b}  
\vec{a}   \overrightarrow{AB}  

Il existe des accents spécifiques aux mathématiques et à la physique.

Les instructions \imath et \jmath donnent un i et un j sans point, ce qui évite la superposition d'un accent au point.

Mise en forme des formules

modifier

Le mode mathématique supprime tous les espaces. Il faut donc les forcer.

Espaces typographiques en mode mathématiques
Instruction Espace Instruction Espace
\? normale (justifiante) \; grande
\, fine \! négative (permet le rapprochement d'objets)

L'extension amsmath permet d'empiler des éléments.

Placement vertical
Instruction Résultat
\overset{a}{X}  
\underset{b}{X}  
\overset{a}{\underset{b}{X}}  

L'environnement array est l'équivalent de tabular pour le mode mathématiques.

Matrices

modifier

L'extension amsmath fournit les environnements suivants :

  • matrix : matrice sans délimiteur ;
  • pmatrix : matrice entre parenthèses (…) ;
  • vmatrix : matrice entre barres |…| ;
  • Vmatrix : matrice entre doubles barres ||…|| ;
  • bmatrix : matrice entre crochets […] ;
  • Bmatrix : matrice entre accolades {…}.

La ligne d'une matrice se termine par un \\ (double contre-oblique) et sur une ligne, les éléments sont séparés par une esperluette &

\begin{pmatrix}
   a_1 & b_1 \\
   a_2 & b_2 
\end{pmatrix}

Pour les ellipses, on dispose des symboles suivants.

Ellipses pour matrices
Instruction Symbole Instruction Symbole
\cdots ··· \ldots
\vdots   \ddots  

Physique

modifier

En mode mathématiques, la commande \mho affiche le symbole du mho,  , et \hbar affiche  .

L'extension [frenchb]{babel} fournit la commande \nombre{nombre} qui met en forme les nombres longs.

L'extension SIunits permet la mise en forme les unités :

\usepackage[cdot]{SIunits}
…
\unit{nombre}{unité}

Les unités sont composées à partir des unités SI (\meter, \kilogram, \second, \ampere, \kelvin, \mol, \candela) et des suffixes (\nano, \micro, \kilo, \mega, \giga, …). Certaines unités non SI ou dérivées du SI sont disponibles (\gram, \liter, \hertz, \newton, \pascal, \ohm, \celsius, \angstrom, \rad, \degree, \arcminute, \arcsecond, …).

On peut composer les unités. Si elles sont accolées ou séparées par des espaces, les symboles sont accolés (multiplication). Si elles sont séparées par un point « . », le séparateur dépend de l'option d'appel de l'extension (espace par défaut, point multiplicateur avec l'option cdot). On utilise \per pour la division.

On peut élever à une puissance quelconque avec \power{unité}{puissance}. On peut aussi utiliser \reciprocal avant l'unité pour élever à la puissance -1, \squared ou \cubed après l'unité pour les puissances 2 et 3, \rpsquared ou \rpcubed après l'unité pour les puissances -2 et -3.

Certaines unités composées sont déjà définies (\squaremeter, \kilowatthour, …).

On peut aussi utiliser les unités hors de la commande \unit.

Exemple
\unit{\nombre{1000}}{\meter} = \unit{1}{\kilo\meter}

\unit{1}{\newton} = \unit{1}{\kilogram \meter \second\rpsquared}
   = \unit{1}{\kilogram.\meter \per \second\squared}

$\unit{5\cdot 10^3}{\newton}$

La vitesse s'exprime en mètres par seconde (\meter\per\second)

L'extension sistyle est plus simple d'utilisation : elle définit une commande similaire

\SI{nombre}{unité}

mais unité est écrite comme une formule mathématique

\SI{1}{N}=\SI{1}{kg.m/s^2}

Si l'on veut utiliser le point décimal dans l'unité, il faut employer \pnt. On dispose également de quelques unités et suffixes particuliers (\angstrom, \micro, \degC, \arcdeg, \arcmin, \arcsec).

Formule chimique

modifier

L'extension mhchem permet d'écrire simplement des formules compactes et semi-développées, ainsi que des équations de réaction.

\usepackage[version=3]{mhchem}
...
\ce{1/2H2O}
\ce{^{227}_{90}Th+}

donnent respectivement   et  . Les nombres après les symboles chimiques sont en indice, les + et - sont en exposant, et l'on peut utiliser la notation mathématique ^{…} et _{…} pour forcer la position. Le \ce est un mode mathématiques, on peut par exemple écrire \ce{\frac{n}{2}H2O}. Par ailleurs :

  • la liaison simple se marque avec un - ou \sbond, la double avec un = ou \dbond, et la triple avec un # ou \tbond ;
  • la flèche de réaction se marque -> ;
    • on peut mettre du texte au dessus avec ->[texte au dessus],
    • du texte au dessus et en dessous avec ->[texte au dessus][texte en dessous] ;
  • la double flèche d'équilibre se note <=> ;
  • un chapeau ^ entouré de deux espaces indique un dégagement de gaz ? ; un v entouré de deux espaces indique une précipitation ? ;
  • un astérisque « * » ou un point « . » est transformé en un point centré « · ».

L'extension ppchtex permet également d'écrire des formules et équations :

\usepackage{etex}
\usepackage{m-pictex,m-ch-en}
...
\chemical{2H_2,+,O_2,->,2H_2O}

La syntaxe générale est \chemical{élément 1,élément 2,…}élément n est :

  • une molécule ou une partie de molécule : on utilise ici la notation mathématique ;
  • une liaison simple -, double -- ou triple --- ;
  • une flèche de réaction : -> (réaction simple), <=> (équilibre).

Si la formule est dans un mode mathématique hors paragraphe (\[...\] ou environnement equation), on peut mettre du texte au-dessus ou en dessous.

\chemical{texte principal}{texte dessous}
\chemical{texte principal}{texte dessus}{texte dessous}

Code source

modifier

L'extension listings permet de mettre du code source. On ne peut pas utiliser de caractères Unicode dans le code mise en forme par les commandes de cette extension.

Le code source est placé dans un environnement lstlisting ; la mise en forme stricte (y compris les espaces et les retours de ligne) est respectée, et les commandes LaTeX ne sont pas interprétées.

On définit le langage ainsi qu'un caractère d'échappement juste après l'appel de l'extension :

\usepackage{listings}
\lstset{language=TeX,
   basicstyle=\ttfamily\small,
   columns=flexible,
   escapechar=+}

Dans l'exemple ci-dessus, on indique :

  • que l'on écrit du TeX ou du LaTeX, ce qui permettra à l'extension de reconnaître les mots-clefs et d'appliquer une mise en forme spécifique ;
  • que le code sera en police Teletype de corps plus petit que le texte ;
  • que les colonnes sont « flexibles », c'est-à-dire que l'écriture peut être un plus compacte au détriment éventuellement de l'alignement vertical ;
  • que le caractère d'échappement est « + ».

Le texte compris entre deux caractères d'échappement est interprété par LaTeX, par exemple dans

\begin{lstlisting}
{\large +\emph{Texte en corps plus grand}+}
\end{lstlisting}

la séquence {\large et le } final seront imprimés tels quels, tandis que le \emph{Texte en corps plus grand} sera interprété (on aura donc le contenu du bloc en italique). Il faut évidemment choisir un caractère d'échappement qui ne sera pas dans le code.

On peut mettre du code au sein d'un texte, avec la commande \lstinlinec...c. Le c indique un caractère qui marque le début et la fin du code ; il peut être choisi arbitrairement, mais ne doit évidemment pas faire partie du code. Par exemple

Pour mettre du texte en emphase,
on utilise la commande \lstinline-\emph-.

Un grand nombre de langages sont disponibles : Pascal, Fortran, Basic, C, C++, Ada, Scilab, HTML, Java, … On peut indiquer des variantes, par exemple

\lstset{language=[95]Ada}
\lstset{language=[Visual]C++}
\lstset{language=[77]Fortran}

On peut aussi indiquer les options lors de l'appel de l'environnement lstlisting :

\begin{lstlisting}[language=XML,escapechar=?]
...
\end{lstlisting}
  1. le mot espace, lorsqu'il désigne un écart horizontal entre deux mots dans le document final, est au féminin ; une espace était une pièce destinée à écarter les caractère de plomb
  2. ragged right pour « drapeau droit » (littéralement « en lambeau à droite »)
  3. l'alignement vertical est défini par rapport à la ligne de base de la cellule de référence ; on peut placer un tableau dans une cellule, afin que les autres cellules les considèrent comme une ligne unique
  4. 4,0 4,1 et 4,2 cette commande nécessite l'extension amsmath
  5. 5,0 et 5,1 cette commande nécessite l'extension amsfonts
  6. 6,0 et 6,1 cette commande nécessite l'extension amssymb

Voir aussi

modifier