Introduction à LaTeX

Ce tutoriel est la première partie d’une suite de tutoriels dédiée à vous présenter LaTeX (prononcez « latek »), un langage de balisage vous permettant de créer des documents PDF à l’allure professionnelle. Il est utilisé dans la vaste majorité des milieux universitaires et professionnels.

Commençons tout d’abord par comparer les avantages et inconvénients de LaTeX par rapport à un éditeur de texte plus « classique ».

Comparaison : Word et consorts vs. LaTeX

Microsoft Word, LibreOffice Writer, ... LaTeX
Avantages
  • Facile d'accès
  • WYSIWYG (What You See Is What You Get, traduisez « ce que vous voyez est ce que vous obtenez »)
  • La plupart des gens l'utilisent (donc d'un côté plus pratique pour les documents à plusieurs)
  • Multi-plateforme
  • Haute qualité typographique (ligatures, etc.)
  • Gère une grosse partie de la mise en page pour vous
  • Capable de gérer des gros documents, comme des livres de plus de 700 pages
  • Insertion aisée de formules mathématiques, graphiques, schémas, tables des matières, ...
  • Utilisé dans à peu près tous les milieux universitaires et professionnels (le connaître ouvre donc des portes)
  • Génère du PDF, ce qui permet au document de s'afficher partout de la même manière et aussi d'être lisible sur plus de plateformes, souvent sans avoir à installer quoi que ce soit. Un PDF vous assure que le document qui sera lu est exactement celui qui a été envoyé (autrement dit, même avec Word, transformez en PDF dès que votre document est terminé).
Inconvénients
  • Mélange le contenu avec la mise en page
  • Pas évident de gérer des gros documents
  • Pas facile d'échanger des documents ou de travailler de manière collaborative (problèmes entre les versions, etc.)
  • Différences majeures entre certaines versions (niveau interface)
  • Pas purement multi-plateforme
  • Insérer des mathématiques est fastidieux
  • Peut paraître complexe au début, mais au final ce n'est pas bien pire que du HTML et ça en vaut la peine
  • Parfois il n'est pas évident de mettre ce qu'on veut où on veut, mais il ne faut pas vouloir tout contrôler, vous n'êtes pas Mao...

OpenOffice, LibreOffice ou encore Microsoft Office sont des éditeurs WYSIWYG. Autrement dit, lorsque vous tapez du texte, tout s’affiche directement (gras, italique, mise en forme des titres, etc.). Le document que vous êtes en train d’éditer est donc votre document final. Votre input et votre output ne font qu’un.

Avec LaTeX, vous lui dites juste ce qui est quoi : « ça c’est en gras, ça c’est un titre, ça c’est un sous-titre, mets ma table des matières ici, etc. ». Les paragraphes sont gérés automatiquement, comme dans Office et ses dérivés.

Avec Word (dernière comparaison que je fais, promis ;-)), quand vous avez fini d’écrire, vous sauvez votre document. En LaTeX, vous le compilez via un compilateur, comme pdflatex, qui est le plus utilisé. Ce dernier vous génèrera directement un PDF. Ci-dessous, vous pouvez voir deux fois le même paragraphe ; une fois écrit en Word, l’autre fois en LaTeX.

Nous pouvons voir qu’il y a plusieurs différences…

  1. La première chose que l’on peut remarquer est que Word n’a pas correctement géré le retour à la ligne sur le « Allait-il ». Une césure de ce type a un caractère ambigu et est donc à éviter.
  2. Le deuxième souci est le blanc laissé vers le milieu du texte. Cela est lié au fait qu’il n’a pas géré automatiquement la césure des longs mots, contrairement à ce qu’on peut voir à droite.
  3. Par conséquent, juste en-dessous se trouve une ligne composée de 2 mots tellement courts qu’un espace bien trop grand les sépare. Le dernier souci est la formule mathématique dont la fin est passée à la ligne.
  4. Une différence un peu plus subtile se situe au niveau du « Tant que ». Dans la version LaTeX, les espaces entre les caractères ont été un tantinet mieux gérés. En effet, si vous regardez le couple « Ta », vous pouvez voir que le « a » a été mis légèrement en dessous du « T » afin que ce soit plus esthétique, ce qui n’est pas le cas dans Word. Vous pouvez voir d’autres exemples du même style ici.

Du côté de LaTeX, tout a été géré automatiquement ; je n’ai rien dû faire pour que le texte soit mis en forme comme vous le voyez. C’est là tout l’intérêt de la chose : il n’est en général pas nécessaire de penser à la mise en page. LaTeX ne laissera pas de titre orphelin en bas de page, de ponctuation seule à la ligne, etc. Il « sait » ce qui est beau (du moins la plupart du temps).

Dernière petite précision, les fichiers LaTeX portent l’extension de fichier .tex, contrairement aux documents Word qui eux finissent en .doc et .docx.

Voici un schéma sur lequel je suis tombé récemment que j’ai refait en LaTeX (il est en effet possible de dessiner des fonctions très facilement). Il représente assez bien la relation entre la complexité et les possibilités pour Word et LaTeX :

Faire un petit document simple en Word est potentiellement plus rapide et plus simple qu’en LaTeX, mais une fois qu’un document devient un peu plus conséquent et complexe, la tendance s’inverse. Par ailleurs, si vous avez un bon éditeur avec des bonnes macros, créer un document LaTeX est souvent bien plus rapide que de créer un document Word (surtout si on compte le temps d’ouverture de Word). Arrive aussi un moment où ce que vous cherchez à faire n’est pas possible avec Word, étant donné que vous n’avez pas un contrôle quasi-absolu.

Bref, nous pouvons voir que chaque solution a des avantages et des inconvénients. Cela dit, personnellement, tous les inconvénients de Word combinés ont fait que lorsque Sébastien Combéfis a fait une présentation d’introduction à LaTeX il y a quelques années, j’ai immédiatement accroché. La première chose qui m’avait frappé fut le fait que LaTeX générait des documents agréables à regarder avec peu de configuration nécessaire de la part de l’utilisateur. À présent, c’est donc à mon tour de vous faire découvrir ce splendide langage de création de documents.

Enfin, avant de commencer, je me dois quand même de vous montrer le magnifique syllabus écrit avec ce cher Sébastien il y a deux ans quand on suivait des cours de japonais ensemble (n’hésitez pas à ouvrir l’image dans un nouvel onglet pour mieux voir le résultat) :

Installer LaTeX

Avant toute chose, il va falloir installer LaTeX. Je vous invite donc à suivre les étapes adéquates suivant votre système d’exploitation.

Mac OS X

Cliquez ici pour télécharger MacTeX (2,3 Go, alternative : torrent). Selon les développeurs, il est vivement recommandé de la télécharger via Safari (ne s’applique pas au torrent, fatalement). MacTeX s’occupe d’installer LaTeX avec tous ses packages, ainsi qu’un éditeur relativement basique (TeXShop). Autrement dit, une fois que MacTeX est installé, vous n’aurez plus besoin de télécharger quoi que soit d’autre pour utiliser LaTeX, sauf si vous voulez un meilleur éditeur (ce que je vous conseille). Une fois MacTeX téléchargé, installez-le.

Windows

Rendez-vous à l’adresse http://miktex.org/download, téléchargez l’installeur MiKTeX (154,14 Mo) et lancez-le pour démarrer l’installation. Pendant cette dernière, à un moment il vous sera demandé quel est votre papier préféré. Vous pouvez le mettre sur A4, mais en soi cela importe peu. En effet, afin d’être sûr que ça compile partout de la même manière, je vous conseille de toujours spécifier le format du papier de votre document. Concernant le téléchargement automatique des paquets manquants, quoiqu’il arrive, ne le désactivez pas.

Linux

Ubuntu

Sur Ubuntu, ouvrez, un Terminal et tapez sudo apt-get install texlive-full. Cela va télécharger environ 1,5 Go. Comme pour OS X, cela installe LaTeX avec tous ses packages. Une fois installé, vous n’aurez donc plus besoin de télécharger quoi que ce soit d’autre pour utiliser LaTeX.

Fedora

Si vous tournez sous Fedora 18 ou ultérieur, LaTeX est normalement déjà installé. Si ce n’est pas le cas ou que vous êtes sur une ancienne version, ouvrez un terminal et tapez les commandes suivantes :

yum remove tex-* texlive-*
cat > /etc/yum.repos.d/texlive.repo <<EOF
[texlive]
name=texlive
baseurl=http://jnovy.fedorapeople.org/texlive/2012/packages.f17/
enabled=1
gpgcheck=0
EOF
yum update; yum install texlive

Autres distributions

Pour les autres distributions, il y en a tellement que c’est franchement dur de vous préciser une marche à suivre fixe. Je reprends donc ce qui est marqué à ce propos sur le Site du Zéro :

Ouvrez votre gestionnaire de paquets et installez tous les paquets contenant les mots suivants :

  • texlive ;
  • ec-fonts-mftraced (uniquement si vous êtes sous Mandriva) ;
  • cm-super (pack de polices) ;
  • xdvi ;
  • gv ;
  • spdf.

Si ça ne fonctionne pas, je vous invite à chercher les instructions spécifiques pour votre distribution via Google.

Éditeur de LaTeX

Pour une fois, ici, pas de complications pour chaque plateforme. TeXStudio est un éditeur multiplateforme que vous pouvez télécharger ici.

Capture d'écran de TeXStudio sur Mac

Pour débuter avec TeXStudio, il n’y a pas grand chose à savoir. Le bouton avec la double-flèche verte sert à compiler et visualiser. Lorsque vous compilez, le PDF créé se trouve dans le même répertoire que votre fichier .tex.

Vous pouvez à tout moment faire un clic sur l’aperçu en maintenant la touche CTRL (ou CMD sur Mac) pour afficher la partie correspondante dans la source et vice-versa. Pour le reste, je vous laisse découvrir l’interface ;-)

Pour les utilisateurs de Sublime Text, si vous souhaitez écrire et compiler du LaTeX avec ce dernier, je vous invite à installer le package LaTeXTools (lisez la documentation en bas de la page pour voir les étapes pour votre système d’exploitation).

Les bases

Les fichiers LaTeX portent l’extension de fichier .tex. Voici à quoi ressemble le document minimal :

\documentclass{article} % Classe du document

% Préambule

% Corps du document
\begin{document}
    Hello, World !
\end{document}

Comme son nom l’indique, c’est le strict minimum à indiquer pour que LaTeX puisse compiler votre document. La première ligne spécifie la classe du document. Les classes les plus utilisées sont article, report, beamer et letter. Ci-dessous, vous pouvez voir un petit tableau vous indiquant à quoi sert chacune de ces classes.

Classe Utilité
article Écriture de textes ou rapports courts
report Écriture de textes ou rapports plus longs
beamer Conception de slides
letter Écriture de lettres
book Écriture de vrais livres

Comme vous pouvez le voir, le préambule est vide. C’est dans ce dernier que se mettent les packages additionnels à utiliser, d’éventuelles configurations personnelles, etc.

Le document proprement dit se situe dans l’environnement document. Vous l’avez sans doute remarqué : % indique que le reste de la ligne est un commentaire.

En parlant d’environnement, il faut savoir qu’en LaTeX, tout se base essentiellement sur deux constructions : les environnements et les commandes.

Les environnements

Voici la syntaxe générale des environnements en LaTeX :

\begin{nomEnvironnement}[options]
    % ...
\end{nomEnvironnement}

Quelques environnements prennent également des paramètres. Voici quelques exemples d’environnements :

Environnement Description Option(s)
itemize Crée une liste à tirets. Chaque objet de la liste doit être précédé d’un \item. -
enumerate Crée une énumération. Chaque objet de l’énumération doit être précédé d’un \item. Apparence de l’énumérateur. Vous pouvez le mettre en chiffres romains majuscules (I) ou minuscules (i), en lettres normales (a), en lettres normales entourées de parenthèses ((a)), en chiffres entourées de parenthèses ((1)), etc.
tabular Crée un tableau selon le formatage indiqué en argument (sera abordé en détail plus loin) Ne prend pas d’options, mais un paramètre indiquant le formatage des colonnes
center Centre son contenu -
verbatim Son contenu n’est pas interprété mais retranscrit tel quel, dans une police à largeur fixe, ce qui fait qu’il est principalement utilisée pour insérer du code source -
figure Contient une figure à laquelle on peut donner un titre via la commande \caption Position (h pour « ici » (here), t pour en haut de la page, b pour en bas de page et finalement p pour une page à part avec les figures)
table Contient une table à laquelle on peut donner un titre via la commande \caption Position (h pour « ici » (here), t pour en haut de la page, b pour en bas de page et finalement p pour une page à part avec les figures)

Voici un document vous montrant ces commandes en utilisation pratique :

\documentclass[11pt]{article} % Classe du document, l'option 11pt définit la taille de la police

\usepackage[french]{babel} % définit la langue du document
\usepackage[utf8]{inputenc} % définit l'encodage du fichier .tex
% Les deux packages suivants disent à LaTeX d'utiliser une police vectorielle
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{graphicx}

\begin{document}
    \begin{itemize}
        \item premier élément d'une liste~;
        \item second élément d'une liste...
    \end{itemize}

    \begin{enumerate}
        \item premier élément d'une liste numérotée~;
        \item second élément d'une liste numérotée...
    \end{enumerate}

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam vitae velit consequat, ullamcorper purus a, pulvinar velit. Donec sodales ullamcorper eleifend. Maecenas eleifend euismod neque nec aliquet. Ut dapibus in orci eget tincidunt. Phasellus malesuada libero et lectus porttitor rhoncus. Vestibulum cursus eleifend leo, eu posuere mauris convallis et. Donec vel diam quis neque ornare eleifend in ut velit.

    Nunc eget ultrices dui. Aliquam tellus nulla, elementum tincidunt cursus sit amet, malesuada at nunc. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla at augue magna. Aliquam ultricies sapien id pretium consectetur. Nam eget tortor pellentesque, sodales ante vehicula, lobortis neque.

    \begin{verbatim}
function test() {
    alert('Hello world');
}
    \end{verbatim}

    \begin{table}[h] % L'option h permet de mettre la figure le plus près possible de l'endroit où elle est déclarée dans la source
        \centering
        \begin{tabular}{|l|l|}
            \hline
            ceci & est \\
            \hline
            un & tableau \\
            \hline
        \end{tabular}
        \caption{Exemple de table}
    \end{table}

    \begin{figure}[h]
        \centering
        \includegraphics{exemple1.png} % la commande includegraphics sera abordée juste après
        \caption{Exemple de figure}
    \end{figure}
\end{document}

Cela génèrera le document suivant :

Vous pouvez voir qu’il y a plusieurs choses dans mon préambule. La première chose que vous remarquerez est que j’ai utilisé le package babel avec l’option french. Cela indique à LaTeX que le document est en français et lui permet de gérer automatiquement les conventions typographiques. Par exemple, LaTeX mettra alors automatiquement une espace insécable avant un deux-points, même si vous collez ce dernier au mot.

Si votre document va contenir plusieurs langues, vous pouvez en indiquer plusieurs séparés par une virgule. La langue prédominante sera la dernière. Par exemple \usepackage[english,french]{babel} pour un document en français avec quelques passages en anglais. Il est possible d’utiliser la commande \selectlanguage{langue} pour changer de langue au milieu du document.

La commande \usepackage[utf8]{inputenc} précise à LaTeX que mon fichier .tex est encodé en UTF8.

Les deux commandes suivantes sont un peu plus particulières.\usepackage{lmodern} va charger des polices vectorielles, tandis que \usepackage[T1]{fontenc} va indiquer de les utiliser. Avec une police vectorielle, contrairement à une police bitmap, les caractères sont décrits non pas par des points fixes mais par des formules mathématiques complexes représentant les différents vecteurs nécessaires à la représentation du caractère. Autrement dit, si vous agrandissez un texte écrit avec une police bitmap, vous verrez des pixels, là où avec une police vectorielle ça sera parfaitement lisse. Voici la différence en image :

Police bitmap (à gauche) et police vectorielle (à droite)

Sur certaines installations, ceci n’est pas nécessaire, mais afin d’assurer que votre document compile de la même manière partout, je vous invite à toujours inclure ces deux packages.

Les commandes

Voici la syntaxe générale des commandes en LaTeX :

\nomCommande[options]{parametre_1}...{parametre_n}

Voici des exemples de commandes :

Commande Description Option(s) Paramètre(s)
\section, \subsection, \subsubsection Entame une nouvelle section, sous-section, etc. En ajoutant une étoile juste après le nom de la commande, la section ne sera pas numérotée et n’apparaîtra pas dans la table des matières Titre à afficher dans la table des matières Le titre de la section
\tableofcontents Affiche la table des matières à l’endroit de la commande - -
\textbf, \textit, \texttt Met le texte en paramètre en gras, en italique ou en police à largeur fixe - Le texte à mettre en gras, en italique ou en police à largeur fixe
\bf, \it, \tt Un peu le même principe que les commandes ci-dessus, à la seule différence que ça change le mode pour la suite de l’environnement courant ou jusqu’à la prochaine accolade fermante. - -
\maketitle & cie Crée le titre en fonction de ce qui est défini précédemment par les commandes title, author et date - -
\footnote Insère une note de bas de page - Le texte à mettre en note de bas de page
\today Affiche la date du jour - -
\includegraphics Permet d’inclure une image (nécessite l’importation du package graphicx via la commande \usepackage{graphicx} width pour la largeur, height pour la hauteur et scale pour l’échelle L’image à inclure (format PNG ou JPG)
\documentclass[11pt]{article} % Classe du document, l'option 11pt définit la taille de la police

% définit la langue du document
\usepackage[french]{babel}
% définit l'encodage du fichier .tex
\usepackage[utf8]{inputenc}
% Les deux packages suivants disent à LaTeX d'utiliser une police vectorielle
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{graphicx} 

\title{Fichier d'exemple \LaTeX}
\author{Pierre-Louis Peeters}
\date{28 août 2013}

% début du document
\begin{document}
    \maketitle
    \tableofcontents

    % début de la section « exemples »
    \section{Exemples}

         \subsection{Exemple 1}

    % affiche la date du jour
    Nous sommes le \today.

    \section*{Section sans numéro}

    Voici du texte en \textbf{gras} et en \textit{italique}\footnote{En HTML, on écrirait \texttt{<b>gras</b>} et \texttt{<i>italique</i>}}. % On aurait pu mettre aussi {\bf gras} et {\it italique}

    \begin{figure}[h]
        \centering
        \includegraphics[scale=0.75]{exemple2.png}
        \includegraphics[scale=0.5]{exemple2.png}
        \caption{Utilisation de la commande \texttt{includegraphics} avec des options}
    \end{figure}

    % exemple d'utilisation correcte d'une commande comme \LaTeX dans une phrase
    \LaTeX c'est génial :-)

    \LaTeX{} c'est génial :-)

    \LaTeX\ c'est génial :-)
\end{document}

Cela génèrera le document suivant :

Notez que pour que LaTeX gère bien les espaces après les commandes comme \LaTeX, il faut que cette dernière soit suivie de {} ou \ (notez l’espace). Sans ça, aucun espace ne sera inséré après ce qui est généré par la commande. Comparez la source ci-dessus au résultat obtenu et voyez par vous-mêmes.

Vous avez sans doute remarqué l’option 11pt que j’ai passé à la commande documentclass. Voici les options possibles de cette commande, ainsi que leur valeur par défaut :

Description Valeurs possibles Valeur par défaut
Définit la taille principale de la police du document 10pt, 11pt, 12pt 10pt
Définit la taille du papier a4paper, letterpaper, a5paper, b5paper, executivepaper, legalpaper letterpaper
Aligner les équations à gauche au lieu de les centrer fleqn -
Place la numérotation des formules à gauche plutôt qu'à droite leqno -
Indique si une nouvelle page doit être commencée après le titre du document titlepage, notitlepage -
Première page des chapitres openany (n'importe quelle page), openright (uniquement les pages de droite) openright
Formate le texte sur une ou deux colonnes onecolumn, twocolumn onecolumn
Indique si l'impression sera en recto-verso (oneside) ou non (twoside) afin d'ajuster les marges twoside, oneside article et report : oneside
book : twoside

Les tableaux

En LaTeX, faire des tableaux n’est pas bien compliqué. Comme vu plus haut, cela se fait à l’aide de l’environnement tabular. Le nombre de colonnes souhaitées ainsi que leur formatage est passé en argument. C’est un des rares environnements à utiliser des arguments. Les arguments de base sont l, c et r, ce qui aligne le texte dans les colonnes à gauche, au centre ou à droite.

Les colonnes d’un tableau sont séparées par un & et les lignes par \\. Voici quelques exemples de tableaux :

\documentclass[11pt]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
% Les deux packages suivants disent à LaTeX d'utiliser une police vectorielle
\usepackage{lmodern}
\usepackage[T1]{fontenc}

\begin{document}
    \section{Une colonne alignée à gauche, une autre centrée et une autre alignée à droite}Tableau à 3 colonnes avec la 1ère colonne alignée à gauche, la 2e centrée et la 3e à droite

    \begin{tabular}{lcr}
        aligné à gauche & centré & aligné à droite \\
        foo & bar & \\
    \end{tabular} \\

    \section{Trois colonnes alignées à gauche}

    \begin{tabular}{lll}
        aligné à gauche & idem & blabla \\
        foo & bar & \\
    \end{tabular} \\
\end{document}

Ce code génèrera ceci :

C’est bien beau, mais ça manque de bordures… Pour en ajouter, rien de plus simple. Pour les lignes verticales, il suffit d’ajouter un ou plusieurs | (appelé pipe, situé sur la touche 1 de votre clavier si vous possédez un clavier belge ou la touche 6 si vous possédez clavier français) entre les colonnes dans l’argument de l’environnement tabular. Les lignes horizontales sont ajoutées via la commande \hline. Quelques exemples concrets :

\documentclass[11pt]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
% Les deux packages suivants disent à LaTeX d'utiliser une police vectorielle
\usepackage{lmodern}
\usepackage[T1]{fontenc}

\begin{document}
    \section*{Une colonne alignée à gauche, une colonne centrée et une alignée à droite}

    \begin{tabular}{|l|c|r|}
        \hline
        Ceci & est & un \\
        \hline
        tableau & avec& des \\
        \hline
        & bordures & \\
        \hline
    \end{tabular}

    \section*{Trois colonnes alignées à gauche}

    \begin{tabular}{|l||l|l|}
        \hline
        Entête & entête & entête \\
        \hline
        \hline
        Un & autre & exemple \\
        \hline
        avec & des doubles & bordures \\
        \hline
    \end{tabular}
\end{document}

Résultat :

Il est également possible d’étendre des cellules sur plusieurs colonnes à l’aide de la commande \multicolumn, qui a la syntaxe suivante :

\multicolumn{nombre de colonnes}{descripteur de colonne}{contenu}

En important le package multirow, il est possible de faire de même pour les lignes :

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

Le paramètre largeur permet d’indiquer une largeur fixe si désiré. Vous pouvez aussi mettre un astérisque (*) afin que la colonne prenne tout la largeur disponible. La commande \cline{a-b} vous permet de tirer un trait horizontal (comme \hline) de la colonne a à la colonne b.

Attention : contrairement à multicolumn, multirow nécessite que vous mettiez quand même les colonnes « vides » (occupées par la multirow).

Mise en pratique :

\documentclass[11pt]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
% Les deux packages suivants disent à LaTeX d'utiliser une police vectorielle
\usepackage{lmodern}
\usepackage[T1]{fontenc}

\usepackage{multirow}

\begin{document}
    \begin{tabular}{|l|l|l|}
        \hline
        \multicolumn{3}{|c|}{Entête} \\
        \hline
        Test & test & test \\
        \hline
        \multirow{2}{*}{Blabla} & C'est & pas \\
        \cline{2-3}
        & beau & ça ? \\
        \hline
    \end{tabular}
\end{document}

Ce qui donnera le tableau suivant :

Gestion des espaces

Les caractères d’espacement comme la tabulation et l’espace sont gérés comme de simples espaces en LaTeX. Il en va de même pour un simple retour à la ligne. Les espaces de début ou de fin de ligne sont ignorés et si plusieurs espaces se suivent, LaTeX n’en affiche qu’un seul (fini les doubles espacements entre deux mots donc). Lorsque deux phrases sont séparées d’une ou plusieurs lignes vides, cela indique à LaTeX que ce sont deux paragraphes différents.

Caractères spéciaux

En LaTeX, certains caractères spéciaux sont des caractères réservés. Il s’agit de $, &, %, #, _, {, }, ^, ~ et \. Pour obtenir les 8 premiers — de $ à ^ —, il suffit de les échapper avec un backslash. Autrement dit, \$, \&, \%, \#, \_, \{, \} et \^. Les 2 derniers s’obtiennent avec les commandes \textasciitilde et \textbackslash respectivement. \\ est utilisé pour forcer un retour à la ligne (à n’utiliser que dans certains cas bien particuliers).

Introduction aux mathématiques

Rassurez-vous, cette section n’est pas un cours d’introduction aux maths ;-) Elle va vous montrer à quel point il est facile d’écrire des formules mathématiques en LaTeX. En effet, s’il y a bien un domaine où ce langage excelle, c’est l’écriture de mathématiques ! (raison pour laquelle la plupart des documents que vous fournissent les profs de math sont écrits en LaTeX)

Pour écrire des maths, l’environnement est un peu différent des autres. Il s’ouvre et se referme avec $ pour des maths à l’intérieur d’un paragraphe et $$ pour des maths en bloc entre les paragraphes (si vous connaissez un peu de CSS, $ ça fait comme inline-block, là où $$ ça fait comme block). Pour les maths entre les paragraphes, les dollars peuvent aussi s’écrire \[ et \]. Cet environnement est appelé mode mathématique.

En mode mathématique, tous les caractères grecs sont accessibles via une commande qui est leur nom. Si vous voulez la version majuscule, mettez simplement une majuscule au nom. Entrer des exposants se fait à l’aide de l’accent circonflexe (^), tandis que les indices s’entrent à l’aide de l’underscore (_). Si l’exposant ou l’indice comporte plus d’un caractère, il suffit de mettre ce dernier entre accolades pour en faire un groupe.

Pour le reste, la plupart des noms de commandes sont logiques. \int pour une intégrale, \sum pour une somme, \frac{numérateur}{dénominateur} pour une fraction, etc.

Vous pouvez aussi insérer différents symboles, comme un « pour tout » via \forall, une flèche vers la droite avec \rightarrow, une double flèche avec \leftrightarrow, etc. Pour avoir une flèche donnée avec un double trait, il suffit de mettre une majuscule à la commande. Voici quelques exemples :

\documentclass[11pt]{article}

\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
% Les deux packages suivants disent à LaTeX d'utiliser une police vectorielle
\usepackage{lmodern}
\usepackage[T1]{fontenc}

\begin{document}
    Une limite et une intégrale :

    $$ \lim_{x \rightarrow 0^+} \frac{1}{x} = \infty $$

    $$ \int_0^x 4x^2 + 3x + 2 $$

    Mettre une lettre grecque comme $\delta$ ou $\lambda$ est vraiment simple : $\Delta$, $\Lambda$.

    $$ \forall x : (p(x) \land q(x)) \Leftrightarrow (\forall x : p(x)) \land \forall x : q(x)) $$

    Prenons la formule

    $$ J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^m \left(h_\theta(x^{(i)}) - y^{(i)}\right)^2 $$

    où $h_\theta(x)$ est défini par la fonction suivante :

    $$ h_\theta(x) = \theta_0 + \theta_1 x $$

    Voici les 4 mêmes formules, {\it inline} cette fois :

    \begin{itemize}
        \item $ J(\theta_0, \theta_1) = \frac{1}{2m} \sum_{i=1}^m \left(h_\theta(x^{(i)}) - y^{(i))}\right)^2 $
        \item  $ h_\theta(x) = \theta_0 + \theta_1 x $
        \item $ \lim_{x \rightarrow 0^+} \frac{1}{x} = \infty $, $ \int_0^x 4x^2 + 3x + 2 $
        \item $ h_\theta(x) = \theta_0 + \theta_1 x $ \\
    \end{itemize}
\end{document}

Quelques commandes mathématiques utiles :

Commande Description Option(s) Paramètre(s)
\underbrace, \overbrace Permet d’avoir une accolade en-dessous ou au-dessus d’une formule, en ajoutant un texte sur l’accolade. - Le premier paramètre est ce en-dessous (au-dessus) de quoi doit se trouver l’accolade. Le deuxième est ce qui doit se trouver sur l’accolade.
\bar Comme son nom l’indique, surligne son paramètre (dans le sens « mettre une ligne au-dessus ») - L’expression à surligner
\vec Met une flèche au-dessus de son paramètre et est donc utilisé pour les vecteurs - L’expression à surmonter d’une flèche
\hat Met un chapeau au-dessus de son paramètre - L’expression à surmonter d’un chapeau
\frac Permet de créer des fractions - Le premier paramètre est le numérateur, le deuxième le dénominateur
\leq, \geq Affiche les signes ≤ et ≥ - -
\sqrt Utilisé pour créer des racines Degré (2 par défaut) L’expression ou le nombre dont on veut la racine
\left et \right Permet d’agrandir un caractère pour qu’il englobe ce qui se trouve entre le \left et le \right. Même s’il n’y a pas de caractère à agrandir à droite, le \right doit quand même être présent, suivi d’un point (\right. donc) - -
\textrm Permet de mettre du vrai texte en mode mathématique - Le texte à afficher
\mathbb Permet de générer une lettre d’ensemble mathématique (nécessite l’importation du package amssymb (\usepackage{amssymb})) - Lettre de l’ensemble

Et deux-trois environnements utiles :

Environnement Description Option(s) Paramètre(s)
array Fonctionne de la même manière qu’un tabular, sauf que celui-ci s’utilise en mode mathématique. - Même principe que pour tabular
equation Utilisé pour une équation seule, qui sera numérotée (utilisez equation* pour ne pas numéroter - -
eqnarray Un mélange des deux environnements ci-dessus. Vous pouvez utiliser eqnarray* pour ne pas numéroter les équations ou mettre \nonumber derrière une équation à ne pas numéroter. À la différence d’array, cet environnement a des colonnes implicites (voir dans l’exemple ci-dessous) - -

Pour finir, encore un exemple d’utilisation :

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc} % Indique que le fichier est encodé en UTF-8
\usepackage[french]{babel} % Indique que le document sera en français
\usepackage{lmodern} % Charge des polices vectorielles
\usepackage[T1]{fontenc} % Dit à LaTeX d'utiliser des polices vectorielles
\usepackage{amssymb} % Pour les ensembles

\begin{document}
    \begin{eqnarray}
        4x^2 + 2x + 3 & = & 0 \\
        10x^2 + 3x + 6 & = & 0
    \end{eqnarray}

    \begin{eqnarray*}
        3x + 2y & \geq & 5 \\
        \sqrt{x^2 + 3x - 5} & < & 2x - 3
    \end{eqnarray*}

    \begin{eqnarray}
        4x^2 + 2x + 3 & = & 0 \nonumber \\
        10x^2 + 3x + 6 & = & 0
    \end{eqnarray}

    Système d'équations :

    \[
        \left\{
            \begin{array}{l}
                a = b \\
                c = d \\
            \end{array}
        \right.
    \]

    Exemple de matrice :

    \[
        A = \left[
        \begin{array}{lll}
            1 & 0 & 0 \\
            0 & 1 & 0 \\
            0 & 0 & 1
        \end{array}
        \right]
    \]

    (...)

    $$ \underbrace{1 + 2 + 3 + ... + k}_{\textrm{Hyp. de récurrence}} + (k + 1) = \frac{k(k + 1)}{2} + (k + 1) $$

    (...)

    $$ <\vec{x}_1, \vec{x}_2> = \{\alpha (1, 0) + \beta (3, 0) | \alpha, \beta \in \mathbb{R}\} $$

\end{document}

Notez que LaTeX retient la numérotation entre les environnements. Cela dit, si pour une raison quelconque vous souhaitez la remettre à 0, il suffit de mettre la commande \setcounter{equation}{0} à l’endroit voulu.

Si vous ne savez pas comment faire un symbole, n’hésitez pas à aller le dessiner sur Detexify pour voir si l’algorithme le reconnait. S’il le reconnait, il vous dira la commande associée au symbole. Un outil extrêmement pratique à garder en favoris.

Les références

Faire référence à une partie de votre document est un jeu d’enfant en LaTeX. Pour cela, vous n’avez besoin que de trois commandes. La première commande est \label{nom_label} qui vous permet de donner un nom à une partie du document. Généralement, on met systématiquement un label sous chaque nouvelle section d’un document. S’il est positionné dans une figure ou une table, il fera référence à cette dernière

Une fois le label défini, vous pouvez obtenir le numéro de la section, figure, table ou équation où il se trouve via la commande \ref{nom_label}. La commande \pageref{nom_label} vous permet d’obtenir le numéro de la page. Pour les noms de labels, il est souvent utile d’y mettre un préfixe. En général, il s’agit de sec pour les sections, sub pour les sous-sections, ssub pour les sous-sous-sections, cha pour les chapitres, fig pour les figures, eq pour les équations, etc.

Notez que lorsque vous avez des labels dans un document LaTeX, il est nécessaire de compiler ce dernier deux fois afin que les ref et pageref soient générés. Le compilateur affichera ?? à l’endroit de vos références après la première passe et les remplacera par ce qu’il faut à la deuxième.

Voici un exemple pratique :

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc} % Indique que le fichier est encodé en UTF-8
\usepackage[french]{babel} % Indique que le document sera en français
\usepackage{lmodern} % Charge des polices vectorielles
\usepackage[T1]{fontenc} % Dit à LaTeX d'utiliser des polices vectorielles
\usepackage{graphicx}

\begin{document}

\section{Section 1}
\label{sec:section_1}

% ...

\section{Section 2}
\label{sec:section_2}

\begin{figure}[h]
    \centering
    \includegraphics[scale=.5]{exemple2.png}
    \caption{Exemple de figure}
    \label{fig:exemple}
\end{figure}

\newpage

\subsection{Sous-section}
\label{sub:sous_section}

\begin{equation}
    \frac{\displaystyle\int_0^3 2x + 11 dx + \sum_{i=0}^\infty \left(\frac{1}{2}\right)^i}{\displaystyle -e^{i \times \pi}} \label{eq:meaning}
\end{equation}

\section{Section 3}
\label{sec:section_3}

Allez donc voir la figure~\ref{fig:exemple} à la page~\pageref{fig:exemple}, ou encore l'équation~(\ref{eq:meaning}) à la section~\ref{sub:sous_section} ci-dessus.


\end{document}

Le package hyperref

Le package hyperref est un package qui va vous permettre de mettre des hyperliens sur toutes les références présentes dans votre document, que ce soit votre table des matières, vos notes de bas de page ou les autres. Ceci vous permet de vous déplacer à l’endroit désigné en cliquant dessus, tout simplement. Ce package vous permet également de faire afficher votre table des matières directement dans les lecteurs PDF, ce qui facilite la navigation dans le document.

Pour utiliser ce package, il suffit de l’inclure via la commande \usepackage[bookmarks,hidelinks,pdftex]{hyperref}. La première option, bookmarks, permet d’afficher votre table des matières dans les lecteurs PDF. La deuxième, hidelinks, évite que dans certains lecteurs, dont Adobe Reader et celui de Google, vos liens ne soient entourés d’un ignoble cadre rouge. La dernière option, pdftex, indique tout simplement que le document est compilé via pdftex ou pdflatex.

Petites astuces de mise en forme

Vous avez à présent des solides bases pour commencer à écrire vos propres documents LaTeX. J’ai juste encore quelques petites commandes à placer dans le préambule qui vous permettront d’améliorer la mise en forme. Voici sans plus attendre ces commandes et leur explication :

Commande Utilité
\usepackage[margin=3cm]{geometry} Met toutes les marges du document à une largeur (hauteur) de 3 cm
\setlength{\parindent}{0mm} Enlève l’alinéa en début de paragraphe
\setlength{\parskip}{3mm} Laisse un espace de 3 millimètres entre les paragraphes (à placer après la commande \tableofcontents afin que la table des matières ne soit pas affectée, sinon elle n’est pas très belle…)

Voici mon squelette de fichier LaTeX :

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc} % Indique que le fichier est encodé en UTF-8
\usepackage[french]{babel} % Indique que le document sera en français
\usepackage{lmodern} % Charge des polices vectorielles
\usepackage[T1]{fontenc} % Dit à LaTeX d'utiliser des polices vectorielles
\usepackage[margin=3cm]{geometry} % Met les marges à 3 cm

\setlength{\parindent}{0mm} % Enlève l'alinéa en début de paragraphe

\title{Titre}
\author{Auteur}
\date{date} % A préciser uniquement si on veut une autre date que la date du jour

\begin{document}

\maketitle

\tableofcontents

\setlength{\parskip}{3mm} % Laisse un espace de 3 mm entre les paragraphes

% Contenu du document

\end{document}

Un excellent livre de référence à avoir à portée de main lors de la création de vos documents est « LaTeX HowTo », écrit par Sébastien Combéfis et relu entre autres par nul autre que moi-même. Il est disponible sur Amazon au prix de 15,25 €. Si vous le souhaitez, une version PDF gratuite est également disponible sur LaTeX-HowTo.be. Personnellement, j’utilise les deux versions quasi quotidiennement.

Un fichier ZIP contenant tous les fichiers .tex et PDF des exemples de ce tutoriel est disponible : ZIP.

Voici qui conclut ce tutoriel. Comme d’habitude, si vous avez des questions, des suggestions ou autres, les commentaires sont là pour ça :-)

Cet article contient des liens affiliés Amazon.
En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.

Merci d'avoir pris le temps de lire cet article.
Si vous l'appréciez, n'hésitez pas à le partager autour de vous.

Si vous le souhaitez, vous pouvez également soutenir l’écriture de ces articles.
Abonnez-vous ou suivez-moi sur les réseaux sociaux à l’aide des boutons ci-dessous.

Commentaires

comments powered by Disqus
S’abonner

Vous souhaitez recevoir un e-mail lors de mes prochaines publications ? Laissez-moi votre adresse ci-dessous !

Elle ne sera jamais divulguée à des tiers.