LaTeX

Partie II

Structure de base

La structure de base se présente comme suit :

 \documentclass[option]{style}[date]
 préambule
 \begin{document}
 texte
 \end{document}

La première ligne correspond au "<!DOCTYPE html>" en HTML et définit 4 styles de publication.

Le préambule - correspondant au <header> en HTML - contient la définition de la taille des pages et les définitions des commandes, des environnements et des théorèmes. Il peut également contenir des commandes d'inclusion de fichiers de style.

La taille des caractères par défaut est 10 points.
Si le warning "Bad Box" et "... too wide ... " apparaît avec une police, il suffit de réduire la taille des caractères.

document - correspondant au <body> en HTML - est l'environnement principal de tout document qui doit se trouver une et une seule fois. Tout le texte rédigé se trouve dans cet environnement

Il faut compiler deux fois le document pour être certain que la table des matières soit correcte.

Préambule

Le préambule est la zone située entre les deux commandes :

 \documentclass[option]{style}  % type de publication
 préambule                      % = <head> ... </head>
 \begin{document}               % = <body>

%

Latex compile le fichier d'entrée (.tex). Comme avec tout code-source, il est possible de le commenter. En LaTeX, ce qui suit le caractère % est un commentaire

Un document peut se composer de plusieurs fichiers d'entrée.

Encodage

LaTeX utilise, par défaut, qu'une partie des codes ASCII, soit les 52 lettres et 10 chiffres ainsi que les 16 caractères de ponctuation suivants : .;,?:!'`()[]-/*@. Soit 78 caractères.

Caractères réservés

Comme dans tous les langages informatiques (utilisé pour écrire le code source), certains caractères sont réservés. Dans les langages de programmation, certains mots sont réservés.

En HTML, le caractère < (indiquant le début d'une balise)
En XML, les caractères : < et &
En C, il existe 32 mots réservés

En LaTeX, il existe 10 caractères réservés : #$&%_^~{}\

Pour imprimer les 9 premiers de ces caractères, ils doivent être précédé par\
Pour imprimer le 10ème - \ - , il faut utiliser la commande : \textbackslash{}

Packages

Un package est une chose utile à la réalisation d'un document. La commande \usepackage[option]{type}, placée dans le préambule, permet d'appeler un package.

Pour les français, il faut indiquer, dans le préambule, l'encodage utilisé et utiliser cet encodage lors de l'édition. Ainsi, l'encodage de l'éditeur doit être réglé avant de commencer à taper le texte.

\usepackage[utf8]{inputenc} % encodage d'entrée
\usepackage[T1]{fontenc}    % police de sortie, T1 = vectorielle
\usepackage{lmodern}        % ou bookman
\usepackage[french]{babel}  % typographie française
\usepackage{eurosym}        % taper la commande \euro{} pour afficher le signe €

Pour un encodage latin1 déclaré dans le préambule - \usepackage[latin1]{inputenc} - l'encodage de l'éditeur doit-être ISO-8859-1

L'encodage utilisé apparaît dans la barre d'état (en bas) de l'éditeur TeXnicCenter

Package : inputenc

Ce package sert à indiquer le type d'encodage utilisé dans le fichier source. Cela permet d'y taper, par exemple, é au lieu de \'{e}. Grâce à ce package, lors de la compilation, la conversion entre ces caractères accentués et les commandes d'accentuation sera faite automatiquement. En option de ce package, il est impératif de préciser quel encodage est utilisé pour le fichier source : [utf8] ou [latin1] ou ...

Package : fontenc

Ce package sert à indiquer le type de font (police) utilisée. L'option [T1] indique que la police de sortie est vectorielle.

Package : babel

Ce package sert à indiquer le type de typographie. L'option [french] indique que les règles de typographie française devront être utilisées par le compilateur.

Le package babel permet l'utilisation de commandes propres à la langue choisie

«         \og
»         \fg
Exposant  \up{}
Petites Majuscules \bsc{texte}
1er       1\ier
2e        2\ieme
1°        \primo
2°        \secundo
3°        \tertio
4°        \quarto
x°        \FrenchEnumerate{x}
no        \no
No        \No
nos       \nos
Nos       \Nos
xx°       xx\degres

où est un chiffre

babel propose la commande \bsc pour placer un bout de texte en petites capitales. Cela peut être pratique pour les acronymes, siglaisons et les noms propres. Exemple :

Thibaut \bsc{pigné}

Documentation sur le module babel-french

Package : eurosym

Permet d'afficher le symbole de l'euro € via la commande \euro{}

Package : lmodern

L'ensemble de polices d'écriture LATIN MODERN, composé de 72 fontes de caractères, auxquelles on ajoute 20 fontes pour les mathématiques. En tout, il y a 58604 caractères pour un total d'environ 69000 glyphes ...

An exploration of the Latin Modern fonts

\documentclass{article}

\usepackage[utf8]{inputenc} % encodage d'entrée
\usepackage[T1]{fontenc}    % police de sortie, T1 = vectorielle
\usepackage{lmodern}        % ou bookman
\usepackage[french]{babel}  % typographie française
\usepackage{eurosym} % taper la commande \euro{} pour afficher le signe €

\begin{document}
\LaTeX\ est génial.


Avec l'encodage utf8, on peut imprimer les 18 lettres suivantes :\\
À Â Ç É È Ê Ë Î Ï Ô Ù Û Ü Ÿ Æ Œ æ œ


Avec le package eurosym, le signe de l'euro : \euro{}\newline
en utilisant la commande \textbackslash{}euro\{\}


Thibaut \bsc{pigné}

\end{document}

A ce stade, vous savez écrire les 84 caractères de l'alphabet français, le symbole de l'euro et les 16 caractères de ponctuation,

Pour créer un paragraphe, il suffit de taper deux retour à la ligne.
Et, pour un retour à la ligne, on utilise la commande \newline ou \\ en fin de ligne

Package : layout

Package facultatif

La commande \layout ajoute une page permettant de mieux visualiser les marges

Package : geometry

Package faculatif, si top=2cm, bottom=2cm, left=2cm, right=2cm

\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}

Package : setspace

Package faculatif, si on veut modifier l'interligne

\usepackage{setspace}

Les commandes \onehalfspacing et \doublespacing, dans le préambule, permettent d'obtenir dans tout le document un interligne respectivement 1,5 et 2 fois plus grand.

Pour ne changer les interlignes que dans des petits morceaux de votre composition, les environnements \begin{onehalfspace} \end{onehalfspace} et \begin{doublespace} \end{doublespace} sont plus adaptés.

Ce package pourrait être téléchargé (non installé par défaut).

Package : color

Package faculatif, si on veut coloriser le texte.

Package : ulem

Package faculatif (non installé par défaut), si on veut souligner du texte.

Le package "soul" (non installé par défaut) génère des erreurs.

Package : url

Package faculatif (non installé par défaut), si on veut placer une URL.

Package Manager

Avec la distribution MikTex, il est possible d'obtenir la liste des packages installés via le programme C:\Latex\miktex\bin\x64\mpm.exe où Latex est le dossier d'installation de la distribution.

vue d'écran

Fichiers de style

Un fichier de style est un fichier texte d'extension .sty.
Mutatis mutandis, il correspond au fichier CSS lié à un fichier HTML

Si votre package à l'extension .sty, tel que A4.sty, il suffit de le copier dans le dossier contenant le fichier-source .tex. Le compilateur en tiendra alors compte.

Un fichier nommé A4.sty contiendra, par exemple, la définition des dimensions des feuilles de format A4. Pour utiliser ses instructions dans un fichier d'entrée, on insère dans le préambule de ce fichier la ligne :
\usepackage{A4}

Structure d'un document

  1. Partie \part{nom de la partie} (si book|report)
  2. Chapitre \chapter{nom du chapitre} (si book|report)
  3. Section \section{nom de la section}
  4. Sous-section \subsection{nom de la sous section}
  5. Sous-sous-section \subsubsection{nom de la sous sous section}
  6. Paragraphe \paragraph{nom du paragraphe} (ou \par)
  7. Sous-paragraphe \subparagraph{nom du sous-paragraphe}

Dans un livre

Si \documentclass{book}

book : Numérotations des pages

En mode publication d'un livre (book),

La commande \frontmatter, qui se positionne juste après \begin{document}, permet de numéroter le préambule [du document] en chiffres romains (i,ii, iii, ...).

Ensuite, la commande \mainmatter se place entre le préambule [du document] et le premier chapitre. Cette commande permet de lancer la numérotation arabe habituelle des pages (1, 2, 3, ....).

Enfin, la commande \backmatter se place après les annexes. Elle stoppe la numérotation des chapitres, mais pas la numérotation arabe des pages.

Page de garde

La page de garde est composée des trois commandes suivantes, placées dans le préambule :

  1. le titre du document => \title{le titre}
  2. l'auteur => \author{prénom \bsc{nom}}
  3. la date => \date{la date}

La commande \maketitle, qui crée la page de garde, se place juste après \begin{document}.

Commandes

Chaque commande est identifiée par un nom unique qui doit commencer par le caractère \ et se poursuivre par une séquence de lettres. Remarquons que les minuscules et les majuscules sont considérées comme différentes.

L'utilisateur peut créer des commandes supplémentaires qui lui permettront, par exemple, d'abréger l'écriture de son texte. La définition d'une commande de nom nom et de texte associé texte se fait au moyen de la ligne
\newcommand{nom}{texte}
Idéalement, la définition d'une commande se fait dans le préambule. Chaque fois qu'elle sera insérée dans le document, sera remplacée à la compilation par le texte. associé.

Pour forcer un espace après une commande, il faut insérer la commande \ (un antislash suivit directement d'un espace) juste dernière le nom de la commande. Par exemple, \LaTeX\ est génial.

\verb

la commande \verb mettra en forme le code délimité par le caractère venant juste après son appel, généralement |

Attention. Il se peut que le caractère | soit utilisé dans certaines zones du code.
Le caractère délimitateur peut être tout caractère (ASCII ?) n'intervenant pas dans le code.

Exemple de l'opérateur logique OU en C : \verb$if(age<18 || age>67){ ... }$

\url

Pour insérer une URL, il vous suffit d'utiliser le package url ainsi que la commande \url{adresse}

\footnote

La commande \footnote{texte} place la note en bas de page

Environnements

Un environnement permet de spécifier une présentation particulière du texte. Les environnements sont les fondements de la mise en page de LaTeX, les <div> du HTML.

Les environnements pré-définis

LaTeX possède de nombreux environnements pré-définis qui permettent de créer des listes numérotées ou non, des citations, des textes littéraux, des tableaux, ...

\begin{nomEnvironnement}
texte
\end{nomEnvironnement}

Les alignements

Par défaut, le texte est justifié.

Les environnements flushright, center et flushleft permettre d'aligner le texte (à droite, au centre et à gauche)

\begin{flushright}
texte aligné à droite
\end{flushright}

Aérez le code en insérant un retour chariot (= taper sur la touche Enter) dans le fichier d'entrée avant et après les instructions de début et de fin d'environnement.

LaTeX présentera alors le texte avec la mise en page spécifiée dans la définition de l'environnement.

itemize

\begin{itemize}

\item Un canard.
\item Un mammouth.
\item Un canard.
\item Un mammouth.
\item Un canard.
\item Un mammouth.
\item[@] Une pintade. % En plaçant un @ entre crochets après \item, j'ai transformé la puce en @
\item[0] Un lapin.

\end{itemize}

enumerate

\begin{enumerate}

\item un canard
\item un mammouth
\item un canard
\item un mammouth
\item un canard
\item un mammouth

\end{enumerate}

Description

\begin{description}

\item[Un canard :] bestiole qui fait coin.
\item[Un poulpe :] bestiole qui fait bloub.
\item[Un ornithorynque :] bestiole qui fait rire.
\item[Un ours :] bestiole qui fait mal.

\end{description}

citation courte

\paragraph{}
La devise de la Belgique est :

\begin{quote}
L'union fait la force
\end{quote}

citation longue

\paragraph{}
Extrait de la Constitution belge :

\begin{quotation}
Art. 23

Chacun a le droit de mener une vie conforme à la dignité humaine.\\
A cette fin, la loi, le décret ou la règle visée à l'article 134 garantissent, en tenant compte des obligations correspondantes, les droits économiques, sociaux et culturels, et déterminent les conditions de leur exercice.
Ces droits comprennent notamment :\\
\primo le droit au travail et au libre choix d'une activité professionnelle dans le cadre d'une politique générale de l'emploi, visant entre autres à assurer un niveau d'emploi aussi stable et élevé que possible, le droit à des conditions de travail
 et à une rémunération équitables, ainsi que le droit d'information, de consultation et de négociation collective;\\
\secundo le droit à la sécurité sociale, à la protection de la santé et à l'aide
 sociale, médicale et juridique;\\
\tertio le droit à un logement décent;\\
\quarto le droit à la protection d'un environnement sain;\\
\FrenchEnumerate{5} le droit à l'épanouissement culturel et social ;\\
\FrenchEnumerate{6} le droit aux prestations familiales.\\

\end{quotation}

verbatim

\par
Code en langage C :

\begin{verbatim}
#include <stdio.h>

int main()
{
  printf("Veuillez entrer votre nom : "); // invitation à fournir des données

  int nombrEntier = 17;
  printf("\n"); // \n signifie "new line"
  printf("La variable 'nombrEntier' vaut : %d\n", nombrEntier);

  printf("\nCaractEres spEciaux : (\\) et (%%) \n\n");

  ...

  return 0;
}
\end{verbatim}

verbatimtab

La commande requiert le package moreverb

\begin{verbatimtab}[nombre_d'espaces_par_tabulation]
votre code
\end{verbatimtab}

listing

La commande requiert le package listings (non installé par défaut et qui génère beaucoup d'erreur avec l'UTF8

La commande \lstset se place avant \begin{document} et possède un grand nombre d'arguments paramétrables.

Avant le \begin{document} :

% commande liée au package "listings"
\lstset{
language=C,
basicstyle=\footnotesize,
numbers=left,
numberstyle=\normalsize,
numbersep=7pt,
}
\begin{listing}
votre code
\end{listing}

L'environnement listing permet de mettre en forme de façon colorée et d'utiliser de nombreuses options pour afficher du code.

minipage

La commande \fbox permettent d'encadrer du texte. L'environnement minipage ajout de options à cette commande.

\fbox{ %fbox est utilisé pour voir les bords de la minipage
\begin{minipage}[c]{5cm}
Un petit paragraphe.
\end{minipage}
}

Ses environnements

On peut définir son propre environnement, dans le préambule :
\newenvironnement{name}{beg_texte}{end_texte}
beg_texte est le texte ajouté au début et end_texte le texte ajouté à la fin

Les sauts

Pour créer un paragraphe, il vous suffit de sauter deux lignes.

\begin{document}
Un paragraphe.

Un second paragraphe.
\end{document}

Le paragraphe se détecte par un petit retrait de la première ligne (et non pas une ligne vide entre deux paragraphes).

Pour aller à la ligne sans créer de nouveau paragraphe, il vous faudra taper la commande \newline ou la commande \\.

Pour faire un saut de page, il vous faut taper la commande \newpage

Options du document

Format du papier          a4paper, a5paper, letterpaper, b5paper…
Taille police principale  10pt, 11pt, 12pt
Alignement des équations  fleqn (à gauche), centrées par défaut
Colonnes                  onecolumn, twocolumn
Page 1 des chapitres      openany, openright
Recto verso               oneside, twoside

article et report : oneside
book : twoside

Entêtes et pieds de page

Pour donner un style à une page en particulier, il suffit d'utiliser la commande \pagestyle{nom du style} dans le préambule. Ce nom est :

Police

En mode texte, il existe des macros qui changent la fonte de leur argument, \textrm, \textit, \textsl, \textbf, \texttt, \textsc, \textsf, \emph et des environements huge, LARGE, Large, large, footnotesize, small, tiny, (rmfamily, sffamily, ttfamily, bfseries, mdseries, upshape, slshape, scshape, itshape, slshape, em.)

Un "pack" de polices comprend quatre polices cohérentes correspondant à des caractères :

LaTeX utilise par défaut les fontes Computer Modern (CM)

Une chasse fixe conduit à un alignement vertical des caractères et est pour ce fait utilisé pour présenter du code. Nom de telles polices : courier new, monospaced, consolas, ...

Empattement

Notons que LaTeX 2ε utilise un système de gestion des polices appelé NFSS (new font selection scheme), qui permet de les manipuler simplement (par exemple d'avoir du gras et italique en même temps). Il importe donc de ne retenir, parmi les solutions que l'on peut trouver sur le Net, que celles qui utilisent le système NFSS.

Taille de la police

Via \commande{texte}, où texte représente le texte visé et une des 10 commandes ci-dessous (par taille croissante) :

  1. \tiny
  2. \scriptsize
  3. \footnotesize
  4. \small
  5. \normalsize (valeur par défaut)
  6. \large
  7. \Large
  8. \LARGE
  9. \huge
  10. \Huge

Gras, soulignement, italique, ...

  1. textbf{texte} => bf = bold font (= gras)
  2. textit{texte} => it = italic (= italique)
  3. textsl{texte} => sl = slanted (= incliné)
  4. texttt{texte} => tt = télétype (= machine à écrire = à chasse fixe)
  5. textsc{texte} => sc = small capitals (= petites majuscules)
  6. textsuperscript{texte} => (= exposant)
  7. fbox{texte} => (= encadré)
  8. uuline{texte} => soulignement deux lignes (package ulem)
  9. uwave{texte} => soulignement en ondulé (package ulem)

Ces commandes (et \emph{texte}) changent la fonte de la police.

\emph{texte}

La commande \emph{texte} met en valeur le texte (en fonction du contexte).

Colorisation du texte

Pour la colorisation du texte, nous utiliserons le package color. Ce package propose par défaut huit couleurs (black, white, red, green, blue, yellow, magenta et cyan), que vous utilisez via la commande suivante : \textcolor{couleur}{texte en couleur}