Aide-mémoire LaTeX

De La Mouche VII
Aller à la navigationAller à la recherche


Sommaire

Colonnes

Article en deux colonnes :

\documentclass[twocolumn]{article}

Pour une section locale en deux colonnes, on pourra utiliser le paquet multicol (cf. infra).

Sauts

  • \\ ou \newline : saut de ligne.
  • \\* : empêche un saut de page après le saut de ligne demandé.
  • \newpage : saut de page, ou saut de colonne dans un document « twocolumn ».
  • \columnbreak : saut de colonne dans un environnement « multicol ».

Inclusion de documents

  • \include{fichier} : Inclusion d'un fichier avec saut de page.
  • \includeonly{fichier1,fichier2,...} : Ne prendre en compte que les directive \include{fichier} où "fichier" correspond à l'un de ceux cités ; ignorer les autres (à utiliser dans le préambule).
  • \input{fichier.tex} : Inclusion d'un fichier sans saut de page.

Vérification sans compilation

Pour forcer LaTeX à ne pas compiler le dvi, inclure les lignes suivantes :

\usepackage{syntonly}
\syntaxonly

Césure et retours à la ligne

Gestion des erreurs de césure

La commande \hyphenation{liste de mots} permet de corriger les erreurs de césure, au cas par cas. Les mots déclarés ne seront coupés qu'aux endroits marqués par un tiret.

  • \hyphenation{FORTRAN} : empêche toute césure du mot "fortran"
  • \hyphenation{Anti-cons-ti-tu-tion-nel-le-ment} : déclare les bons endroits de césure pour "anticonstitutionnellement"

Cette commande a un effet global. Pour obtenir le même effet sur une unique occurrence d'un mot, utiliser la commande \-, insérant un point de césure potentiel dans un mot.

Empêcher un texte d'être coupé

Pour empêcher le retour à la ligne dans un groupe de mots : \mbox{groupe de mots}

"groupe de mots" apparaîtra obligatoirement sur la même ligne.

Chaînes et caractères spéciaux

Chaînes spéciales

  • \today : date de compilation du document.
  • \TeX
  • \LaTeX
  • \LaTeXe

Abréviations (babel français)

  • Madame, Docteur : M\up{me}, D\up{r}
  • Premier, etc. : 1\ier{}, 1\iere{}, 1\iers{}, 1\ieres{}
  • Deuxième, etc. : 2\ieme{}, 4\iemes{}
  • Numéro : \No 1, \no 2

Espaces insécables

  • ~ : espace insécable (exemples : M.~Dupont, cf.~Fig.~5, etc.)
  • \, : demie-espace insécable, dite aussi espace fine (exemple : 1\,234\,567. Note : pour les nombres, il vaut mieux utiliser la commande \nombre{1234567} fournie par l'extension babel.)

Guillemets

Guillemets français à la mode babel 
Affichés grâce à des commandes, ils gèrent automatiquement notamment les espaces insécables.
  • \og : ouvrir les guillemets.
  • \fg{} : fermer les guillemets (les accolades sont nécessaires si le guillemet est suivi d'une espace, facultatives devant un signe de ponctuation ; autant toujours les mettre, ça évite les surprises).

NB : on peut automatiser à peu de frais les commandes ci-dessus, en incluant dans le préambule du document :

\newcommand{\g}[1]{\og #1 \fg{}}

Il suffit ensuite de taper

\g{texte à mettre entre guillemets}

Pour obtenir

« texte à mettre entre guillemets »

(évidemment, on peut choisir une autre commande que \g)

Guillemets français manuels 
On peut saisir manuellement les guillemets, soit grâce aux caractères idoines, soit avec des doubles chevrons. Il faut dans les deux cas placer une espace insécable entre les guillemets et le texte.
  • <<~texte entre guillemets~>>
  • «~texte entre guillemets~»
Guillemets doubles anglais 
Parfois utilisés pour les citations à l'intérieur des guillemets français).
  • `` : ouvrir les guillemets (deux accents graves).
  •  : fermer les guillemets (deux apostrophes).

Les guillemets simples anglais s'obtiennent de même avec un accent grave pour ouvrir et une apostrophe pour fermer, mais ne s'utilisent (à ma connaissance) pas en français.

Tildes

  • \~ : tilde
  • $\sim$ : gros tilde

Tirets

  • Tiret simple : "sous-sol"
  • Tiret double (--) : n'existe pas en français
  • Tiret triple : "il parle ---~en vain~--- du passé."
  • Tiret triple : "oui~---~ou non ?"
  • Signe moins : $-$
  • Tiret bas (sous-tiret, underscore) : \_

Symbole 'degrés'

Pour obtenir "Il fait -30°C", on peut écrire :

Il fait $-30\,^{\circ}\mathrm{C}$

ou, avec babel français :

Il fait -30~\degres C

Points de suspension

Utiliser la commande \dots plutôt que de taper ....

Accents et lettres spéciales

Supprimer le point du i ou du j : \i ou \j

  • æ Æ : \ae \AE
  • œ Œ : \oe \OE

Caractères réservés

Les caractères suivants ont une signification spéciale en LaTeX et doivent être protégés par une barre oblique inverse (antislash) :

  • $ s'écrit \$
  • & s'écrit \&
  • % s'écrit \%
  • # s'écrit \#
  • _ s'écrit \_
  • { s'écrit \{
  • } s'écrit \}

La barre oblique inverse ne peut pas être protégée de cette façon, car la séquence \\ indique un retour à la ligne :

  • \ s'écrit $\backslash$

Mise en forme du texte

Changement de police

  • \textrm{roman (police droite)}
  • \textsf{sans sérif}
  • \texttt{typewriter (machine à écrire)}
  • \textmd{medium}
  • \textbf{bold face (gras)}
  • \textup{upright}
  • \textit{italique}
  • \textsl{slanted (penché)}
  • \textsc{small caps (petites majuscules)}
  • \emph{emphasised (mise en valeur)} : met ou enlève l'emphase (le plus souvent représentée par l'italique). On peut également utiliser la syntaxe {\em texte mis en valeur}, par exemple pour mettre en valeur plus d'un paragraphe.
  • \textnormal{document font}
  • \underline{texte souligné}

Taille de police

  • {\tiny minuscule}
  • {\scriptsize très petit}
  • {\footnotesize assez petit}
  • {\small petit}
  • {\normalsize normal}
  • {\large grand}
  • {\Large plus grand}
  • {\LARGE très grand}
  • {\huge énorme}
  • {\Huge géant}

On peut aussi utiliser les environnements :

\begin{huge}
Énorme texte.
\end{huge}

Babel français

  • \bsc{Petites majuscules}
  • \nombre{1234,56789}

Sections

  • \part{titre} (ne change pas la numérotation des chapitres)
  • \chapter{titre} (seulement dans les classes report et book)
  • \section{titre}
  • \subsection{titre}
  • \subsubsection{titre}
  • \paragraph{titre}
  • \subparagraph{titre}

En version étoilée (exemple : \section*{titre}), ces commandes produisent des titres non numérotés et qui n'apparaissent pas dans la table des matières.

On peut changer le titre qui apparaît dans la table des matières en donnant un argument à la commande (ex : \section[titre alternatif]{titre}).

\appendix : bascule la numérotation des chapitres (des sections, pour un article) en lettres.

\tableofcontents : imprime la table des matières.

Astuce : pour que les parties modifient la numérotation des chapitres (c'est-à-dire que le premier chapitre d'une partie porte toujours le numéro 1), insérer cette commande en préambule :

\makeatletter
\@addtoreset{chapter}{part}
\makeatother

Autres "sections"

\begin{abstract}
Un résumé. Les paragraphes contenus dans cet environnement
apparaissent sous le titre "Résumé".
\end{abstract}

Titre du document

Déclaration du titre :

\title{titre du document}
\author{auteur du document \and deuxième auteur \and etc.}
\date{date de rédaction}

\maketitle : imprime le titre du document.

Commandes spéciales de la classe book

  • \frontmatter : Doit être la première commande après le \begin{document}. Introduit le préambule du document (numérotation en chiffres romains). En général on ne numérote pas les parties du préambule, on utilise les versions étoilées des titres.
  • \mainmatter : A mettre juste avant le titre du premier "vrai" chapitre (bascule la numérotation en chiffres arabes).
  • \appendix : A mettre avant le début des appendices, comme vu précédemment.
  • \backmatter : A mettre juste avant la bibliographie et les index.

Listes

\begin{enumerate}
\item Premier élément d'une liste numérotée.
\item Second élément d'une liste numérotée.
\end{enumerate}
\begin{itemize}
\item Premier élément d'une liste à puce.
\item Second élément d'une liste à puce.
\end{itemize}
\begin{description}
\item Premier élément d'une liste nommée.
\item Second élément d'une liste nommée.
\end{description}

Alignement du texte

\begin{flushleft}
Texte aligné à gauche.
\end{flushleft}
\begin{flushright}
Texte aligné à droite.
\end{flushright}
\begin{center}
Texte centré.
\end{center}

Citations

\begin{quote}
Ceci est une citation, l'indentation est plus importante.
\end{quote}
\begin{quotation}
Ceci est une citation, l'indentation est plus importante.
La première ligne d'un paragraphe est plus indentée que les autres.
\end{quotation}
\begin{flushleft}
\begin{verse}
Citation de poésie\\
Les vers sont séparés\\
Par deux anti-slashes.

Les strophes par\\
une ligne vide.
\end{verse}
\end{flushleft}

Mathématiques

Symboles utiles

  • Grandes parenthéses <math>\left(\frac{x}{y}\right)^2</math> : \left( et \right)
  • Chapeau (pour les angles) <math>\widehat{BAC}</math> : \widehat{BAC}
  • Égal environ <math>\simeq</math> : ou \simeq
  • Différent <math>\ne</math> : ou \neq ou \ne

Équations

Au sein d'un paragraphe, on peut écrire des maths comme ça : $X_mouche = \log_{10}(42)$ et continuer dans le même paragraphe.

Pour faire apparaître une formule de manière centrée, on a le choix entre une formule non numérotée :

\[
  X_mouche = \log_{10}(42)
\]

… et une formule numérotée, à laquelle on peut faire référence avec \ref{} et consorts si on y place un label :

\begin{equation}
  X_mouche = \log_{10}(42)
  \label{formule-mouche}
\end{equation}

Ignorer les commandes LaTeX

L'environnement "verbatim"

\begin{verbatim}
A l'intérieur de l'environnement "verbatim",
les commandes LaTeX ne sont pas interprétées.
\end{verbatim}
\begin{verbatim*}
A l'intérieur de l'environnement "verbatim étoilé",
les commandes LaTeX ne sont pas interprétées
et les espaces sont mises en évidence.
\end{verbatim*}

La commande "verb"

La commande \verb|texte| permet, à l'intérieur d'un paragraphe, d'ignorer les commandes LaTeX présentes dans "texte". Le caractère séparateur | peut être remplacé par n'importe quel autre, mis à part une lettre, une espace, ou * (les accolades peuvent être utilisées, mais deux du même côté : deux ouvrantes ou deux fermantes).

La commande étoilée \verb*|texte| permet un comportement similaire à celui de l'environnement "verbatim étoilé".

Note : ni l'environnement "verbatim", ni la commande "verb" ne fonctionnent à l'intérieur d'autres commandes comme \footnote{}.

Extensions verbatim et moreverb

La commande \verbatiminput{fichier}, fournie par l'extension verbatim, permet d'inclure un fichier ASCII dans le document, comme s'il se trouvait à l'intérieur d'un environnement "verbatim". Elle existe également en version étoilée.

L'extention moreverb ajoute (entre autres) les environnements suivants :

  • verbatimtab : gestion des tabulations. \begin{verbatimtab}[largeur de tabulation]
  • listing : numérote les lignes. \begin{listing}[intervalle de numérotation]{numéro de la 1è ligne}
  • listingcont : numérote les lignes en reprenant au dernier numéro de ligne.
  • boxedverbatim : place le contenu de l'environnement dans une boîte.

Elle définit également les commandes :

  • \verbatimtabsize : permet de redéfinir la largeur par défaut des tabulations (défaut : 8). Pour redéfinir la largeur par défaut plus loin dans le document : \renewcommand\verbatimtabsize{largeur\relax}.
  • \verbatimtabinput : version de \verbatiminput avec gestion des tabulations.
  • \listinginput : version de \verbatiminput avec numéros de lignes (pas de version étoilée).

Tableaux

\begin{tabular}{description du tableau}
\end{tabular}

Description du tableau :

  • l : colonne alignée à gauche
  • r : colonne alignée à droite
  • c : colonne centrée
  • p{largeur} : colonne justifiée à droite sur plusieurs lignes (exemple de largeur : 4.7cm)
  • | : ligne verticale

A l'intérieur de l'environnement "tabular" :

  • & : séparateur de colonnes
  • \\ : nouvelle ligne
  • \hline : insère une ligne horizontale

Exemple 1 :

\begin{tabular}{|r|l|}
\hline
7C0 & hexadécimal \\
3700 & octal \\
11111000000 & binaire \\
\hline \hline
1984 & décimal \\
\hline
\end{tabular}

Exemple 2 :

\begin{tabular}{|p{4.7cm}|}
\hline
Bienvenue dans ce
cadre.\\
Merci de votre visite.\\
\hline
\end{tabular}

Imposer un séparateur de colonnes : @{séparateur}

Exemple, pour supprimer le séparateur de colonnes :

\begin{tabular}{@{} l @{}}
\hline
sans espace\\
\hline
\end{tabular}

Groupement de cellules en ligne : \multicolumn{nombre de colonnes}{type d'alignement}{texte}

Exemple :

\begin{tabular}{|l|l|}
\hline
\multicolumn{2}{|c|}{\textbf{Nom}}\\
\hline
Dupont & Jules \\
\hline
\end{tabular}

Pour créer un tableau plus grand qu'une page, il faut utiliser les extensions supertabular ou longtabular.

Objets flottants

  • Figure : \begin{figure}[placement]
  • Tableau : \begin{table}[placement]

Placement :

  • h : here, ici, à l'emplacement dans le texte où la commande se trouve. Utile pour les petits objets. Automatiquement changé en "ht" dans les versions modernes de LaTeX.
  • t : top, en haut d'une page.
  • b : bottom, en bas d'une page.
  • p : page, sur une page à part ne contenant que des objets flottants.
  • ! : ici, sans prendre en compte les paramètres internes (tels que le nombre maximum d'objets flottants sur une page) qui pourraient empêcher ce placement.

Exemple, pour un tableau : \begin{table}[!hbp]

  • Légende : \caption{texte de la légende}
  • Légende avec texte alternatif pour la liste des figures ou des tables : \caption[texte alternatif]{texte de la légende}
  • L'éventuel \label pour les références croisées doit obligatoirement être placé après l'entrée \caption.
  • Imprimer la liste des figures : \listoffigures
  • Imprimer la liste des tables : \listoftables
  • Placer tous les objets en attente et commencer une nouvelle page : \clearpage ou \cleardoublepage (commence une nouvelle page de droite).

Graphiques

Pour inclure un fichier au format EPS : \includegraphics[clef=valeur,...]{fichier.eps}

Paramètre optionnel :

  • width : largeur
  • height : hauteur
  • angle : angle de rotation (sens horaire)
  • scale : échelles

Exemple : \includegraphics[angle=90, width=10cm]{test.eps}

Références croisées

  • \label{marque} : place une marque (dans un flottant la marque doit obligatoirement être placée après l'entrée \caption).
  • \ref{marque} : imprime le numéro de la section marquée.
  • \pageref{marque} : imprime la page de la section marquée.

Pour rendre les références croisées plus intelligentes (par exemple pour éviter de dire « le tableau X page Y » quand la référence est elle aussi sur la page Y), on peut utiliser l'extension varioref.

\usepackage[french]{varioref}

Cette extension fournit les commandes \vref et \vpageref qui s'utilisent comme \ref et \pageref, qui placent du texte à la place du numéro de page dans certains cas : « sur cette page », « page suivante »...). \vref place ce genre de texte uniquement si la figure n'est pas sur la même page, et le numéro de page si la figure est à plusieurs pages d'écart ; elle n'indique que le numéro de la figure si celle-ci est sur la même page.

Références externes

L'extension xr (pour "eXternal Reference") permet de faire référence à des marques présentes dans d'autres documents.

\usepackage{xr}

Il faut ensuite déclarer dans l'en-tête du document les fichiers où se trouvent les références, grâce à la commande \externaldocument ; écrire le nom du fichier sans l'extension. Par exemple pour permettre les références au fichier annexes.tex, il faut écrire :

\externaldocument{annexes}

Les références se font ensuite normalement, comme si les marques étaient déclarées dans le même fichier. Par exemple pour faire référence à la marque "codeduscript" :

Le code de ce script est fourni en annexe \ref{codeduscript}.

Pour éviter les doublons dans les marques, on peut utiliser un paramètre optionnel lors de l'appel à \externaldocument, qui forcera à préfixer la référence par la chaîne voulue :

\externaldocument[a-]{annexes}
[...]
Le code de ce script est fourni en annexe \ref{a-codeduscript}.

Note : pour que les références fonctionnent, le fichier externe doit être compilé en premier.

Notes

Notes de bas de page

  • \footnote{Texte de la note.}

Note 1 : Cette commande est fragile. Il faut par exemple la protéger dans les titres des sections.

Note 2 : les règles de typographie françaises préconisent une espace fine avant le renvoi à la note.

Changer la numérotation des notes de bas de page

  • \setcounter{footnote}{0} : remet à zéro le compteur des numéros de notes.
  • \renewcommand{\thefootnote}{\alph{footnote}} : bascule la numérotation des notes en petites lettres ; \renewcommand{\thefootnote}{\arabic{footnote}} : bascule la numérotation des notes en chiffres arabes (valeur par défaut). Liste des valeurs possibles :
    • \arabic
    • \roman
    • \Roman
    • \alph
    • \Alph

Notes de marge

\marginpar{Texte de la note.}

Manipulations spéciales pour les notes de marge

  • \marginpar{\rule[-10mm]{3mm}{50mm}} : fait apparaître une ligne verticale le long du texte.
  • \reversemarginpar : change le côté d'une note (?).

Commandes fragiles

\protect\commandefragile{arguments}

Table des matières

Sections non numérotées et ajout de sections supplémentaires

Les sections non numérotées (\chapter*{Blabla} ou \section*{Blabla}, etc.) n'apparaissent pas automatiquement dans la table des matières. Pour ajouter une entrée correspondante à la main :

\chapter*{Blabla}
\addcontentsline{toc}{chapter}{Blabla}

Ajout de résumés

Pour faire apparaître un résumé dans la table des matières :

\begin{abstract}
% \phantomsection % required if using hyperref
\addcontentsline{toc}{section}{\abstractname}
... rest of the abstract
\end{abstract}

Éviter l'auto-référencement

Pour éviter qu'une entrée « table des matières » apparaisse dans la table des matières :

\begin{KeepFromToc}
\tableofcontents
\end{KeepFromToc}

Index

En préambule :

\usepackage{makeidx}
\makeindex
  • \index{clef} : déclare une entrée d'index.
  • \index{clef!sous-clef}
  • \index{clef@\textsl{clef formatée}}
  • \index{clef|numéro de page formaté}
  • \index{eolienne@éolienne} : clef accentuée (sans cette précaution, les caractères accentués apparaissent en haut de l'index).

Pour faire apparaître l'index : \printindex

Compilation

Après une première passe, exécuter makeindex fichier.idx (si le fichier LaTeX se nomme fichier.tex), puis relancer la compilation.

Glossaire

L'extension glossary s'utilise de façon similaire à makeidx.

En préambule :

\usepackage{glossary}
\makeglossary
  • \glossary{name=nom de l'entrée,description=texte de l'entrée} : déclare une entrée de glossaire.

Pour faire apparaître le glossaire : \printglossary

Compilation

Après une première passe, exécuter makeglos.pl fichier.glo (si le fichier LaTeX se nomme fichier.tex), puis relancer la compilation.

Déclarations des entrées à part

On peut définir les entrées du glossaire en-dehors du corps du document, grâce à la commande :

\storeglosentry{nom_macro}{name=nom de l'entrée, description={texte de l'entrée}}

nom_macro est l'identifiant qui servira à appeler la référence dans le corps du document via la commande \gls{com_macro}.

Exemple :

\documentclass{report}
\usepackage{glossary}
\makeglossary
\storeglosentry{bagada}{name=bagada,description=Demandez-lui, moi je ne sais pas ce que c'est !}
\begin{document}
Savez-vous ce qu'est un \gls{bagada} ? Vous devriez maintenant le savoir.
\printglossary
\end{document}

Personnalisation

Nouvelles commandes

\newcommand{\nom}[nombre d'arguments <= 9]{définition}

Exemples :

\newcommand{\prestoto}{\og Bonjour, je m'appelle Toto ! \fg}
\newcommand{\presx}[1]{\og Bonjour, je m'appelle #1 ! \fg}
  • Pour "surcharger" une commande existante : \renewcommand
  • Pour définir une commande si elle n'existe pas déjà : \providecommand

Nouveaux environnements

\newenvironment{nom de l'environnement}[nb args]{avant}{après}

avant est traité avant le contenu de l'environnement. après" est traité à l'endroit du \end{nom de l'environnement}.

Pour redéfinir un environnement existant : \renewenvironment

Nouvelles extensions

Dans un fichier .sty, copier les sections voulues du préambule. En première ligne de ce fichier, il faut mettre \ProvidesPackage{nom de l'extension}.

On utilise l'extension normalement, par \usepackage{nom de l'extension} dans le préambule du document.

Extensions remarquables

Voir aussi : /usr/share/texmf/doc/index.html#packages

  • acronym : gestion des acronymes. Voir /usr/share/texmf/doc/latex/acronym/acronym.dvi
  • hyperref : crée des liens intra-documents, et fournit la commande \url{http://example.com} qui permet l'affichage correct des URL (note : l'extension url fournit également une telle commande).
  • Flottants, figures
    • caption : permet de personnaliser les légendes.
    • rotating : permet de faire tourner du texte ou des figures. Voir /usr/share/texmf/doc/latex/rotating
  • lettrine : permet de définir... des lettrines ! (\lettrine[options]{lettrine}{texte}). Voir /usr/share/texmf/doc/latex/lettrine/lettrine.dvi et /usr/share/texmf/doc/latex/lettrine/demo.pdf
  • babel
  • bibtex
  • footnote : amélioration de la gestion des notes de bas de page, commandes supplémentaires... Voir /usr/share/texmf/doc/latex/mdwtools/footnote.dvi
  • makeindex
  • Glossaire
    • makeglossary
    • nomencl : prévu pour une liste des symboles, mais permet également de créer un glossaire. Voir /usr/share/texmf/doc/latex/nomencl/nomencl.dvi
  • Gestion des colonnes
    • fix2col : correction de bogues.
    • multicol : permet de mélanger dans un même document des sections sur deux colonnes et des sections sur une seule colonne.
    • multitoc : permet d'afficher les tables sur deux colonnes.
    • ftnright : permet de modifier l'emplacement des notes de bas de page dans les documents sur deux colonnes.
  • mparhack : correction de bogues sur la commande \marginpar. Voir /usr/share/texmf/doc/latex/mparhack/mparhack.dvi pour les explications, et surtout les limitations de cette extension (incompatibilité avec multicol, problèmes éventuels sur les gros documents).
  • paralist : amélioration des listes. Voir /usr/share/texmf/doc/latex/paralist/paralist.dvi
  • mdwlist : idem. Voir /usr/share/texmf/doc/latex/mdwtools/mdwlist.dvi
  • mdwtab : amélioration des tableaux. Voir les 86 pages de /usr/share/texmf/doc/latex/mdwtools/mdwtab.dvi
  • Tables
    • tocbibind : permet d'afficher les titres des sections automatiques (table des matières, bibliographie, index). Voir /usr/share/texmf/doc/latex/tocbibind/tocbibind.dvi
    • tocloft : permet de modifier le comportement des tables (table des matières, liste des figures...). Voir /usr/share/texmf/doc/latex/tocloft/tocloft.dvi (présente aussi les méthodes habituelles de LaTeX).
  • sectsty : permet de modifier l'apparence des titres (police, etc.). Voirsectsty/sectsty.dvi
  • verbatim : redéfinit l'environnement "verbatim", définit la commande \verbatiminput et un nouvel environnement "comment" qui permet d'ignorer toute une section. Voir L'extension verbatim.
  • moreverb : extension de verbatim, qui permet la gestion des tabulations, des numéros de lignes, et des cadres verbatim. Voir L'extension verbatim.
  • pdfpages : macro pour pdflatex permettant l'inclusion de pages PDF externes.
  • ragged2e : meilleure gestion de l'alignement. Voir /usr/share/texmf/doc/latex/ms/ragged2e.dvi
  • titling : modifier le style du titre du document.
  • titlesec : modifier les styles des titres de sections.