# LaTeX/Vadémécum

LATEX
* Généralités
* Premiers pas
** Installer LaTeX
** Premier exemple
** Lettre
** Éléments de base
** Les classes
** Structuration du texte
** Mise en forme du texte
** Faire des tableaux
** Inclure des images
** Options de mise en forme avancées
** Écrire des mathématiques
** Écrire de la physique
** Écrire des formules chimiques
** Créer une feuille de style
** À l'aide !
* Structure du document
* Gestion de la bibliographie
* Tableaux
* Images
* Éléments flottants
* Mise en forme du texte
* Choix de la police
* Mise en page
* Mathématiques
* Gestion des gros documents
* Faire des présentations
* LaTeX pour enseignants
* Arts et loisirs
** Écrire de la musique
** Dessiner des échiquiers
* Dessiner avec LaTeX
** Dessiner en LaTeX pur
** Dessiner avec PSTricks
** Dessiner avec PGF et TikZ
** Dessiner des molécules
** Réalisation de graphiques mathématiques
* Créer une extension ou une classe
* Programmer avec LaTeX
Annexes
* Vadémécum
* Conversion vers d'autres formats
* Glossaire de typographie
* Index
* Commandes
* Liens externes
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.

## Syntaxe de base

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

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

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 :
On peut de même créer un fichier de fin de document, par exemple pour un livre, le fichier fin_livre.tex :

### Commandes personnelles

Pour une commande sans paramètre (par exemple développer une abréviation) :
Pour une commande avec n paramètres :
les paramètres figurant sous la forme #1, #2, …
Pour définir un nouvel environnement :

## Squelette de fichier

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 :
On peut créer des squelettes pour différents types de document. Pour un livre, on aura par exemple
et pour un article
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

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 :
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 :

## Structuration du document
### Titres de parties

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 :
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 :
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

La mise en emphase se fait avec
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

Les listes structurées sont des environnements :
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
On peut imbriquer les listes

### Références et notes
#### Note

Une note de bas de page s'obtient avec
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

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 :
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

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
pour les livres, et
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 :
s'ils sont plusieurs, on écrit :
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.

#### Index

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

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, \quarto$^2$ | 1°, 2°, 3°, 4° |
| \textbackslash | \ | \euro?$^1$ | € | \no, \No$^2$ | n°, N° |
| Notes avec l'extension eurosym 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 de dimension donnée, on utilise la commande
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
### Police

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} |
| petites capitales | \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 :

### Mise en page

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 :

### Composition

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

Il est fortement conseillé d'utiliser l'extension array.
Un tableau est défini par l'environnement 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 :
On peut fusionner des cellules consécutives d'une ligne avec \multicolumn :
où 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 :
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}| ; 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.
Enfin, si un type de colonne doit être utilisé plusieurs fois, l'extension array permet de définir un type de colonne, par exemple
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 :
Si l'on veut faire tourner un texte (par exemple mettre un en-tête vertical), on utilise
où 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 :

### Couleur

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 :
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.
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).

## Éléments autres que du texte
### Images

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

L'extension hyperref met en forme l'adresse réticulaire et crée en plus un lien cliquable dans le document :
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 :
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

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.
ou bien
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 :
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.

### Formules mathématiques

L'utilisation des extensions de l'AMS (American Mathematical Society), et en particulier amsmath et amsfonts, est fortement recommandée.
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

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
#### Fonctions

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 :
par exemple

#### Polices mathématiques

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} |
| italique | \mathit{texte} | écriture calligraphique | \mathcal{texte} |
| gras | \mathbf{texte} | gothique | \mathfrak{texte} |
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 | $\epsilon$ | \varepsilon | $\varepsilon$ |
| \theta | $\theta$ | \vartheta | $\vartheta$ |
| \pi | $\pi$ | \varpi | $\varpi$ |
| \rho | $\rho$ | \varrho | $\varrho$ |
| \sigma | $\sigma$ | \varsigma | $\varsigma$ |
| \phi | $\phi$ | \varphi | $\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{…}.

#### Opérateurs, quantificateurs, relations et symboles

Opérateurs arithmétiques :
| Instruction | Symbole | Instruction | Symbole |
| + | $+\,$ | \div | $\div \,$ |
| \times | $\times \,$ | \Im, \Re | $\Im$, $\Re$ |
| \cdot | $\cdot \,$ | \otimes | $\otimes$ |
| / | $/\,$ | \wedge | $\wedge$ |
Grands opérateurs arithmétiques :
| Instruction | Symbole | Instruction | Symbole |
| \frac{a}{b} | ${\frac {a}{b}}$ | \prod_{i=1}^{n} u_i | $\prod _{i=1}^{n}u_{i}$ |
| \sqrt{a} | ${\sqrt {a}}$ | \int_{a}^{b} f(x)dx | $\int _{a}^{b}f(x)dx$ |
| \sqrt[n]{a} | ${\sqrt[{n}]{a}}$ | \oint_{\Lambda} f(x)dx | $\oint _{\Lambda }f(x)dx$ |
| \sum_{i=1}^{n} u_i | $\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 | $\nabla$ |
| \partial | $\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 | $\forall$ |
| \exists | $\exists$ |
| \nexists | $\nexists$ |
Relations :
| Instruction | Symbole | Instruction | Symbole |
| = | $=\,$ | \neq | $\neq$ |
| \equiv | $\equiv$ | \ll, \gg | $\ll$, $\gg$ |
| \approx | $\approx$ | \lll, \ggg | $\lll$, $\ggg$ |
| \simeq | $\simeq$ | \Rightarrow, \Longrightarrow | $\Rightarrow$, $\Longrightarrow$ |
| \propto | $\propto$ | \iff | $\iff$ |
| \leq, \geq | $\leq$, $\geq$ | \leqslant, \geqslant | $\leqslant$, $\geqslant$ |
| \pm, \mp | $\pm$, $\mp$ | \to | $\to$ |
Ensembles :
| Instruction | Symbole | Instruction | Symbole |
| \varnothing | $\varnothing$ | \subset | $\subset$ |
| \cap | $\cap$ | \subseteq | $\subseteq$ |
| \cup | $\cup$ | \in | $\in$ |
Opérateurs logiques :
| Instruction | Symbole |
| \lnot | $\lnot$ |
| \land | $\land$ |
| \lor | $\lor$ |
Géométrie :
| Instruction | Symbole | Instruction | Symbole |
| \wedge | $\wedge$ | \sphericalangle | $\sphericalangle$ |
| \angle | $\angle$ | \perp | $\perp$ |
| \measuredangle | $\measuredangle$ |
Flèches :
| Instruction | Symbole | Instruction | Symbole |
| \leftarrow, \longleftarrow | $\leftarrow$, $\longleftarrow$ | \xrightarrow[a]{b}, \xleftarrow[a]{b} | ${\xrightarrow[{a}]{b}}$, ${\xleftarrow[{a}]{b}}$ |
| \rightarrow, \longrightarrow | $\rightarrow$, $\longrightarrow$ | \leftrightarrows, \leftrightharpoons | $\leftrightarrows$, $\leftrightharpoons$ |
| \leftrightarrow, \longleftrightarrow | $\leftrightarrow$, $\longleftrightarrow$ | \uparrow, \downarrow, \updownarrow | $\uparrow$, $\downarrow$, $\updownarrow$ |
| \nwarrow, \nearrow, \searrow, \swarrow | $\nwarrow$, $\nearrow$, $\searrow$, $\swarrow$ | \Uparrow, \Downarrow, \Updownarrow | $\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 | $\infty$ | \bullet | $\bullet$ |
| \circ | $\circ$ | \cdots, \ldots | $\cdots {\text{, }}\ldots$ |

#### Délimiteurs

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

Accents mathématiques :
| Instruction | Résultat | Instruction | Résultat |
| \acute{a} | ${\acute {a}}$ | \tilde{a} | ${\tilde {a}}$ |
| a', a^\prime | $a'\,$, $a^{\prime }$ | \dot{a}, \ddot{a} | ${\dot {a}}$, ${\ddot {a}}$ |
| \hat{a} | ${\hat {a}}$ | \widehat{ABC} | ${\widehat {ABC}}$ |
| \bar{a} | ${\bar {a}}$ | \overline{AB} | ${\overline {AB}}$ |
| \grave{a} | ${\grave {a}}$ | \underline{AB} | ${\underline {AB}}$ |
| \overbrace{1,\ldots,n}^{a} | $\overbrace {1,\ldots ,n} ^{a}$ | \underbrace{1,\ldots,n}_{b} | $\underbrace {1,\ldots ,n} _{b}$ |
| \vec{a} | ${\vec {a}}$ | \overrightarrow{AB} | ${\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

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} | ${\overset {a}{X}}$ |
| \underset{b}{X} | ${\underset {b}{X}}$ |
| \overset{a}{\underset{b}{X}} | ${\overset {a}{\underset {b}{X}}}$ |
L'environnement array est l'équivalent de tabular pour le mode mathématiques.

#### Matrices

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 &
Pour les ellipses, on dispose des symboles suivants.
Ellipses pour matrices :
| Instruction | Symbole | Instruction | Symbole |
| \cdots | ··· | \ldots | … |
| \vdots | $\vdots$ | \ddots | $\ddots$ |

### Physique

En mode mathématiques, la commande \mho affiche le symbole du mho, $\mho$, et \hbar affiche $\hbar$.
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 :
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

L'extension sistyle est plus simple d'utilisation : elle définit une commande similaire
mais unité est écrite comme une formule mathématique
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

L'extension mhchem permet d'écrire simplement des formules compactes et semi-développées, ainsi que des équations de réaction.
donnent respectivement $\mathrm {{\frac {1}{2}}H_{2}O}$ et $\mathrm {_{90}^{227}Th^{+}}$. 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 :
La syntaxe générale est \chemical{élément 1,élément 2,…} où é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.

### Code source

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 :
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
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
Un grand nombre de langages sont disponibles : Pascal, Fortran, Basic, C, C++, Ada, Scilab, HTML, Java, … On peut indiquer des variantes, par exemple
On peut aussi indiquer les options lors de l'appel de l'environnement lstlisting :

## Notes

* ↑ 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
* ↑ ragged right pour « drapeau droit » (littéralement « en lambeau à droite »)
* ↑ 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
* 1 2 3 cette commande nécessite l'extension amsmath
* 1 2 cette commande nécessite l'extension amsfonts
* 1 2 cette commande nécessite l'extension amssymb

## Voir aussi

* Version PDF du Vade mecum