Docs

Débuter avec LaTeX

Nicolas, le lundi 7 juillet 2003

LaTeX est un outil particulièrement pratique, il fait tout tout seul. Cet article est simplement un introduction qui j’espère donnera envie d’utiliser LaTeX...

Qu’est-ce que LaTeX

LaTeX est un logiciel de composition typographique, c’est à dire qu’il permet de produire des documents écrits.

A l’origine de LaTeX, il y a TeX [1] qui a été écrit par D. E. Knuth en 1977. LaTeX est un ensemble de macros utilisant TeX pour mettre en page le document final.

Le LaTeX qui est utilisé aujourd’hui est LaTeX2e, le regroupement de plusieurs variantes.

LaTeX n’est PAS un traitement de texte WYSIWYG [2], il utilise TeX qui est plutôt un language de programmation qu’il faudra écrire dans un éditeur de texte comme GNU/Emacs, Vi, Gedit, Kate... Un peu comme le HTML. Il faudra ensuite compiler la source pour obtenir le document final lisible, imprimable et pouvant être échangé [3].

Grâce LaTeX, il est possible de produire des documents en de nombreux formats :
- PostScript ;
- Portable Document Format (PDF) [4] ;
- Hyper Text Markup Language (HTML) ;
- ...

J’allais oublié : LaTeX est un Logiciel Libre !

Installation des logiciels qui vont bien

Comme LaTeX utilise TeX pour fonctionner, il faut installer TeX également. On va installer aussi un visionneur de DVI (xdvi [5]) et le logiciel permettant de créer des documents PDF.

La commande qui va bien sous MandrakeLinux est la suivante :

# urpmi tetex-latex xdvi tetex-dvips

Je suppose qu’en replaçant urpmi par apt-get install ça doit le faire avec Debian :)

Une fois les logiciels installé, on peut y aller.

Structure d’un document de base

Comme une page HTML, une source LaTeX se compose d’un en-tête (préambule) et du corps.

Passons maintenant pratique...

Note :
Je me permet de conseiller l’utilisation de Kile (mais ce n’est qu’un avis personnel ;), il s’agit d’un éditeur de texte avec pleins de raccourcis spéciaux pour LaTeX ainsi qu’un navigateur de structure ultra pratique :o)

Définition du document

Dans un premier temps, il faut définir le type de document (la classe) dont il va s’agir (ce peut être un article, un livre ou une lettre), le format de la (des) page(s) qui va (vont) accueillir le document ainsi que la taille de la police et la langue.

Pour une lettre, sur papier A4 en français avec une police de base en 11 points :

\documentclass[11pt,french,a4paper]{letter}

Remarque : la classe letter n’est pas du tout adaptée aux conventions françaises...

Si je veux faire un article :

\documentclass[11pt,french,a4paper]{article}

Les autres classes sont :
- report : pour les rapports longs avec plusieurs chapitres (thèses, petits livres...) ;
- book : pour les livres ;
- slides : pour les transparents ;

Les autres options de classes sont :
- fleqn permet d’aligner les formules mathématiques à gauche plutôt que centrées ;
- leqno permet de placer la numérotation des formules mathématiques à gauche plutôt qu’à droite ;
- twocolum formate le texte sur deux colonnes ;
- twoside force la sortie en recto-verso (comme la classe book) ;
- onseside force la sortie en recto (comme les classes report et article par exemple).

Utilisation des paquets

Dans le préambule, on peut demander à LaTeX d’aller chercher des paquets (ou extensions). Il existe de très nombreux paquets pour des applications très diverses.

La définition d’un paquet est la suivante :

\usepackage[option(s)]{extension}

LaTeX ira chercher le paquet extension.sty

Exemple : le paquet Babel permet au document d’être conforme aux conventions françaises en particulier la ponctuation et les mots ajoutés automatiquement (sommaire, légende...).

\usepackage[french]{babel}

Utilisation des styles

La commande \pagestyle{style} définit le style du document.

- \pagestyle{plain} : impose le numéro de page au milieu du pied-de-page (style par défaut) ;
- \pagestyle{headings} : imprime dans l’en-tête le titre du chapitre (à gauche) et le numéro (à droite) ;
- \pagestyle{empty} : laisse l’en-tête et le pied-de-page vide.

Début du texte

Le début du texte proprement dit est appelé par la commande

\begin{document}

et se termine par

\end{document}

Ce qui suit sera ignoré.

Première application

Source

Le code suivant :

\documentclass[a4paper,french,11pt]{article}
\usepackage[french]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

% -------------------
% Début du document
% -------------------
\begin{document}
Mon premier document en \LaTeX
Ben voilà, c'est pas si compliqué que ça :)
\end{document}

une fois enregistré dans un fichier test.tex, mérite quelques explications :

- \documentclass[a4paper,french,11pt]{article} Défini dont la classe du document article, le format de papier A4, la langue française et la taille de la police 11 points ;
- \usepackage[french]{babel} demande à LaTeX d’utiliser l’option french du paquet babel ;
- \usepackage[latin1]{inputenc} défini l’encodage du fichier source ;
- \usepackage[T1]{fontenc} : défini l’encodage du fichier de sortie ;
- Les lignes commençant par % sont des commentaires, ils ne sont pas interprétés par LaTeX ;
- \begin{document} commence le document ;
- \LaTeX permet d’écrire LaTeX de façon conventionnel (il y a aussi \TeX, \LaTeXe et AllTeX) ;
- \end{document} termine le document.

Compilation

La compilation se fait, en ligne de commande :

$ latex le_nom_du_document.tex

(On peut omettre l’extension du fichier dans l’argument...)

Une fois cette compilation terminée, on obtient un fichier avec l’extension .dvi. Pour le visualiser, il suffit de l’ouvrir avec Xdvi :

$ xdvi le_nom_du_document.dvi

Et là, oh miracle ! Le document s’affiche et il est joli :D.

Table des matières

Ce qui est bien avec LaTeX, c’est ça capacité à faire des choses automatiquement et bien ! Il faut simplement lui demander gentillement.

Structure hiérarchique

Avant de pouvoir obtenir une belle table des matières, il faut structurer correctement le document.
Il y a 7 niveaux hierarchiques qui sont, dans l’ordre :

  1. Partie : \part{Le titre de la partie} ;
  2. Chapitre : \chapter{Le titre du chapitre} {{uniquement dans les classes <code>report er book ;
  3. Section : \section{Le titre de la section} ;
  4. Sous-section : \subsection{Le titre de la sous-section} ;
  5. Sous-sous-section : \subsubsection{Le titre de la sous-sous-section} ;
  6. Sous-sous-sous-section : \paragraph{Le titre} ;
  7. Sous-sous-sous-sous-section : \subparagraph{Le titre} :

LaTeX numérote automatiquement les sections, ce qui veut dire que si l’on ajoute plus tard une section en plein milieu du document, pas besoin de refaire toute la numérotation !! Il se charge aussi de mettre en forme (avec toujours les mêmes espacements).

Création de la table des matières

La commande \tableofcontents se charge de faire la travail. Il faut en général deux compilations successives pour obtenir la table des matières.

La commande \setcounter{tocdepth}{x}
permet de définir la profondeur de la table des matières (combien de niveaux d’éléments faire apparaître ?).

Exemple :
La source "Exemple 1",une fois compilée (deux fois [6]) donne un exemple de ce qu’il est possible de faire.

Exemple 1
Présentation de la structure de base d’un document LaTeX
Exemple 1
Présentation de la structure de base d’un document LaTeX

Les tableaux

LaTeX sait aussi faire des tableaux :)

Pour ce faire, il faut utiliser l’environnement tabular ayant la syntaxe suivante :

\begin{tabular}{

format des colonnes

}
Case A1 & Case A2 & Case A3 \\
Case B1 & Case B2 & Case B3 \\
\end{tabular}

Il ne faut pas oublier de refermer la balise...

La syntaxe correspond au tableau suivant :

A B C
1
2

Un tel tableau n’aura pas d’encadrement. Pour ajouter une ligne horizontale, il faut déclarer \hline après la commande de passage à la ligne (\\).

Le format des colonnes est déterminé par l’argument entre crochets après begin{tabular}.

Par exemple, cette suite d’arguments : {clrp{2cm}} indiquera à LaTeX que la première colonne doit être centrée (c), la seconde alignée à gauche (l), la troisième, alignée à droite (r) et enfin, la dernière sera alignée à gauche et aura une largeur de 2 centimètres (avec un retour à la ligne automatique) (p{2cm}).

Pour obtenir un trait vertical entre les colonnes, il faut mettre un pipe (|) entre les arguments des formats de colonnes :

\begin{tabular}{|r|cc|}

Voici un exemple pour mieux comprendre :

Exemple 2
Création d’un tableau avec LaTeX
Exemple 2
Création d’un tableau avec LaTeX

Insertion d’images

Nativement, avec LaTeX, il n’est pas possible d’insérer des images autres que celles au format PostScript [7]. Avant de vouloir mettre une image dans un document il faut donc la convertir en PS [8] mais l’idéal est de créer directement les images si possible directement en PostScript (avec XFig par exemple).

La commande suivante sert à insérer une image :

\includegraphics[height=xcm,width=ycm]{ma_belle_image.eps}

Définir la hauteur et la largeur (en centimètres, points, pixels, pouces,...) est facultatif.

Références

Quand on ajoute un tableau ou une image, il faut lui mettre une légende numéroté et en faire référence dans le texte. LaTeX gère ceci de manière très élégante.

Créer une légende

La légende d’une image est, par convention en desous de celle-ci, la légende d’un tableau est au dessus.

Il faut créer un environnement flottant pour pouvoir les numéroter.

Pour un tableau :

\begin{table}[] % Indique à LaTeX de placer une légende au dessus
\begin{tabular}
...
\end{tabular}
\end{table}

Pour une image (figure) :

\begin{figure}[] % Indique à LaTeX de placer une légende au dessous
\includegraphics[...]
\end{figure}

La commande \begin accepte un (des) argument(s) de position dans l’ordre de préférence :

Commande Position de l’environnement
\begin{}[h] là ou il est placé dans le texte
\begin{}[t] en haut de la page
\begin{}[b] en bas de la page
\begin{}[p] sur une page ne contenant que des flottants
\begin{}[t!] le ! encorrage le t (valable pour les autres options)

Il est possible de combiner plusieurs options dans l’odre de préférence (par défaut : tbp).

Ceci étant fait, il faut indiquer ce que l’on souhaite mettre comme légende. La commande \caption{} produit une légende et la commande \label{} lui donne un code (ce que l’on veut) pour pouvoir y faire référence.

Ce qui donne, pour un tableau :

\begin{table}
\begin{tabular}
...
\end{tabular}

\caption{\label{tableau1}Voici mon tableau}

\end{table}

Et pour une image :

\begin{figure}
\includegraphics[...]

\caption{\label{figure1}Voici mon tableau}

\end{figure}

Enfin, pour faire référence à notre légende dans le texte, on peut utiliser les commande \ref{...} et/ou \pageref{...} :

Nous voyons, dans la figure \ref{figure1} se trouvant à la page \pageref{figure1} des choses...

Imprimer le document

Une fois le document terminé :

$ dvips mondocument.dvi

DviPS sert à l’origine à convertir le document DVI en PostScript :

$ dvips mondocument.dvi mondocument.ps

Pour aller plus loin

- Une courte (?) introduction à LaTeX ;
- Présentation de LaTeX ;
- Un aide-mémoire (très pratique) ;
- FAQ LaTeX ;
- Introduction à LaTeX ;
- Installer LaTeX sur Debian (annexe à la formation GNU/Linux Debian).

Notes :

[1TeX se prononce tek comme Brech’ :)

[2What You See Is What You Get, ce que vous voyez est ce que vous aurez.

[3Même s’il est plus pratique d’échanger les sources que le document compilé... :)

[4Le format PDF est la propriété de la société Adobe.

[5Il existe aussi Kdvi mais je le trouve trop lourd par rapport à Xdvi.

[6En effet, la première compilation se contente de créer le document, la seconde fera la table des matières.

[7Pour insérer des images Jpeg ou PNG, il faut utiliser pdfLaTeX...

[8Le logiciel ImageMagic donne d’assez bons résultats. Attention, il s’utilise avec la commande $ convert.