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 | |
|
|
Inconvénients | |
|
|
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…
- 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.
- 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.
- 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.
- 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.
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 :
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 :-)