Vous êtes sur la page 1sur 71

Documentation avancée en LATEX

Département de Mathématiques
Université A. Mira de Béjaia
Algérie.
TABLE DES MATIÈRES

1 Structure générale d’un document LATEX 1


1.1 Gestion des différents espacements à l’intérieur d’un document LATEX . . . . . . . . 1
1.1.1 L’indentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 L’espace interparagraphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 L’espace interligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.4 Les marges, l’espace en haut de page et l’espace en bas de page . . . . . . . 3
1.2 Mettre des traits horizontaux à l’intérieur d’un document LATEX . . . . . . . . . . . 3
1.2.1 Un trait horizontal simple . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Un trait horizontal d’une certaine largeur et d’une certaine épaisseur . . . . . 4
1.2.3 Un trait horizontal complétant une ligne de texte . . . . . . . . . . . . . . . 4
1.2.4 Un trait horizontal centré ou mis à droite . . . . . . . . . . . . . . . . . . . 4
1.2.5 Un trait horizontal de couleur . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Ecrire un document ou une partie d’un document LATEX sur plusieurs colonnes . . . . 5
1.3.1 Ecrire un texte LATEX sur deux colonnes, remplies l’une après l’autre . . . . . 5
1.3.2 Ecrire un texte LATEX sur plusieurs colonnes, remplies équitablement . . . . . 7
1.4 Créer des en-têtes et des pieds de page personnalisés . . . . . . . . . . . . . . . . . 9
1.4.1 Le fonctionnement par défaut du style de page fancy . . . . . . . . . . . . . 9
1.4.2 Modification du style de page fancy pour créer ses propres en-têtes et pieds
de page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Les notes en bas de page 20


2.1 Les types de numérotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.1 Numérotation en chiffres romains . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.2 Numérotation en lettres latines . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.3 Numérotations à l’aide de symboles (autres les chiffres et les lettres) . . . . 20
2.2 Comment forcer une footnote à prendre un numéro voulu . . . . . . . . . . . . . . 21
2.3 Comment faire une footnote à l’intérieur de certains environnements . . . . . . . . . 21

i
3 Latex Mathématique 23
3.1 Les équations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.1 Equations courtes et moyennes . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.2 Equations longues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1.3 Série d’équations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1.4 Equations numérotées par une numérotation de notre choix . . . . . . . . . 25

4 Les couleurs 26
4.1 Les couleurs prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Couleurs personnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Pour une liste exhaustive de couleurs . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Comment utiliser rapidement avec WinEdt une couleur : . . . . . . . . . . . . . . . 29
4.5 Les couleurs générées par l’option dvipsnames du package xcolor . . . . . . . . . . . 30

5 Les boites 31
5.1 Comment fabriquer des boites sans package particulier . . . . . . . . . . . . . . . . 31
5.1.1 Boites contenant un texte d’une ligne . . . . . . . . . . . . . . . . . . . . . 31
5.1.2 Boites contenant un paragraphe . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2 Boites avec le package fancybox . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2.1 Boites contenant un texte d’une ligne . . . . . . . . . . . . . . . . . . . . . 33
5.2.2 Boites contenant un paragraphe . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3 Boites de couleurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.4 Boites à titre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.5 Utilisation des boites pour empêcher certaines césures LATEX . . . . . . . . . . . . . 37
5.6 Le package framed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.6.1 Les différents environnements du package framed . . . . . . . . . . . . . . . 38
5.6.2 Comment redéfinir l’environnement leftbar . . . . . . . . . . . . . . . . . . 40

6 Les figures 43
6.1 Eléments de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.2 Comment modifier la taille d’une figure à insérer . . . . . . . . . . . . . . . . . . . 45
6.3 Comment mettre sa figure dans un cadre . . . . . . . . . . . . . . . . . . . . . . . 45
6.4 Insertion de figures d’extension autre que eps . . . . . . . . . . . . . . . . . . . . . 46
6.5 Insertion de plusieurs figures côte à côte . . . . . . . . . . . . . . . . . . . . . . . 47

7 Dessiner en utilisant le package PSTricks 51


7.1 Codes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.2 Lignes, vecteurs et lignes brisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.3 Polygones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

ii
7.4 Cercles, arcs de cercles et ellipses . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.5 Axes de coordonnées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.6 Courbes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.6.1 Courbes d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.6.2 Courbes définies comme graphe d’une fonction . . . . . . . . . . . . . . . . 58
7.6.3 Courbes paramétrées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
7.7 Tangentes à une courbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
7.7.1 Cas d’une courbe d’interpolation . . . . . . . . . . . . . . . . . . . . . . . 60
7.7.2 Cas d’une courbe définie comme graphe d’une fonction . . . . . . . . . . . . 60
7.7.3 Cas d’une courbe paramétrée . . . . . . . . . . . . . . . . . . . . . . . . . 61

8 Commandes et environnements 63
8.1 La commande let . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2 La commande def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3 La commande DeclareMathOperator* . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4 La commande newcommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

iii
CHAPITRE 1

STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

1.1 Gestion des différents espacements à l’intérieur d’un do-


cument LATEX
En LATEX, les différents espaces spécifiques d’un document (marges, indentation, espace inter-
ligne, . . . etc) sont fixés par défaut. Cependant, ces espaces pourraient être modifiés à n’importe
quel endroit du document. Nous donnons dans ce qui suit les codes permettant de modifier ces
espaces.

1.1.1 L’indentation
Pour modifier l’indentation d’un document LATEX, à partir d’un certain endroit, on utilise le
code : \parindent=indentation voulue, ou bien le code :

\setlength{\parindent}{indentation voulue}

Exemple : Le code :

\parindent=2cm
\par Les quaternions furent découverts en 1843 par le mathématicien irlandais
William Rowan Hamilton (1805-1865).

donne :

Les quaternions furent découverts en 1843 par le mathématicien irlandais William Rowan
Hamilton (1805-1865).

N.B : Le code \par signale que le texte qui le suit est un nouveau paragraphe. Sinon, il est bien
connu qu’en LATEX, un espace vertical est interprété comme un passage à un nouveau paragraphe.
Si l’on désire laisser un espace vertical dans notre document LATEX(pour l’aérer par exemple) sans
pour autant passer à un nouveau paragraphe dans le document visualisé, on utilise la commande
\noindent qu’on mettra au début du texte que l’on ne désire pas indenter.
Notons par ailleurs que l’indentation par défaut d’un document LATEX est d’environ 6 mm.

1
Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

1.1.2 L’espace interparagraphe


Si l’on désire modifier l’espace vertical se trouvant entre deux paragraphes consécutifs d’un
document LATEX, on utilise le code \parskip=espace voulu ou le code :

\setlength{\parskip}{espace voulu}

que l’on mettra à l’endroit à partir duquel on souhaite modifier l’espace interparagraphe.
Exemple : Le code :

\parskip=1.5cm
\par Les quaternions furent découverts en 1843 par le mathématicien irlandais
William Rowan Hamilton (1805-1865).
\par En faisant des calculs avec les nombres complexes, il s’intéressa à
l’interprétation géométrique de l’addition et de la multiplication dans le
plan (à 2 dimensions). Il se demanda, si avec des nombres hypercomplexes, on
ne pourrait pas obtenir des résultats analogues dans l’espace (à 3 dimensions).

donne :

Les quaternions furent découverts en 1843 par le mathématicien irlandais William Rowan Hamil-
ton (1805-1865).

En faisant des calculs avec les nombres complexes, il s’intéressa à l’interprétation géométrique de
l’addition et de la multiplication dans le plan (à 2 dimensions). Il se demanda, si avec des nombres
hypercomplexes, on ne pourrait pas obtenir des résultats analogues dans l’espace (à 3 dimensions).
N.B : L’espace interparagraphe par défaut d’un document LATEX est d’environ 1 pt.

1.1.3 L’espace interligne


Si l’on désire modifier l’espace interligne d’un document LATEX, c’est-à-dire l’espace vertical
séparant deux lignes consécutives, on utilise le code : \baselineskip=espace voulu, ou le code :

\setlength{\baselineskip}{espace voulu}
que l’on mettra à l’endroit à partir duquel on souhaite modifier l’espace interligne.
Exemple : Le code :
\baselineskip=7mm
\par Durant de nombreuses années, Hamilton avait espéré trouver une forme de
multiplication satisfaisante pour les triplets de nombres réels avec de bonnes
propriétés. Ses recherches sont bien décrites par la célèbre anecdote avec son
fils. Peu de temps avant sa mort, il écrivit à son fils: \og{}Tous les matins,
alors que tu descendais pour prendre le petit déjeuner, tu me demandais:
Eh bien papa, est ce que tu peux multiplier les triplets? J’étais toujours
obligé de répondre, avec un triste hochement de t^ete: ‘‘Non, je peux
seulement les additionner et les soustraire’’\fg{}. \\
Finalement, Hamilton a eu l’idée géniale de passer à une dimension de plus.
Il écrivit: ‘‘Ainsi naquit l’idée en moi d’admettre une quatrième dimension
pour calculer avec les triplets’’. Il aboutit aux quaternions.

2 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

donne :

Durant de nombreuses années, Hamilton avait espéré trouver une forme de multiplication sa-
tisfaisante pour les triplets de nombres réels avec de bonnes propriétés. Ses recherches sont bien
décrites par la célèbre anecdote avec son fils. Peu de temps avant sa mort, il écrivit à son fils :
≪ Tous les matins, alors que tu descendais pour prendre le petit déjeuner, tu me demandais : Eh
bien papa, est ce que tu peux multiplier les triplets ? J’étais toujours obligé de répondre, avec un
triste hochement de tête : “Non, je peux seulement les additionner et les soustraire ≫.
Finalement, Hamilton a eu l’idée géniale de passer à une dimension de plus. Il écrivit : “Ainsi naquit
l’idée en moi d’admettre une quatrième dimension pour calculer avec les triplets”. Il aboutit aux
quaternions.
N.B : L’espace interligne par défaut d’un document LATEX est environ 5 mm.

1.1.4 Les marges, l’espace en haut de page et l’espace en bas de page


Pour modifier les marges et les espaces en haut et en bas de page d’un document LATEX, on
utilise le package geometry qu’on chargera à l’en-tête du document. Si l’on souhaite par exemple
que notre document ait comme espace en haut de page h, comme espace en bas de page b, comme
marge de gauche g et comme marge de droite d, on mettra à son en-tête le code :

\usepackage[top=h,bottom=b,left=g,right=d]{geometry}

Lorsque les marges de gauche et de droite souhaitées ont la même mesure m (ce qui est souvent le
cas), on pourra simplifier ce code en :

\usepackage[top=h,bottom=b,margin=m]{geometry}

Exemple : Le code :

\usepackage[top=1.5cm,bottom=1cm,margin=2cm]{geometry}

permet d’avoir sur notre document, un espace de haut de page de 1,5 cm, un espace de bas de page
de 1 cm et une marge de 2 cm (que ce soit la marge de gauche ou celle de droite).

1.2 Mettre des traits horizontaux à l’intérieur d’un document


LATEX
Quand on rédige des documents LATEX d’un certain type (CV, sujet d’examen, série de TD,
. . . etc), on aura souvent besoin de mettre, dans certains endroits, des traits horizontaux (comme
par exemple mettre un titre entre deux traits horizontaux ou mettre un demi-trait horizontal pour
marquer la fin du document ou de l’une de ses parties). Dans cette section, on donnera les codes
permettant de générer les différents types de traits horizontaux.

1.2.1 Un trait horizontal simple


En LATEX, pour générer un trait horizontal simple, on utilise le code : \hrule. Ce code donne
ceci :

3 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

1.2.2 Un trait horizontal d’une certaine largeur et d’une certaine épaisseur


• Pour générer un trait horizontal d’une largeur ℓ, on utilise le code :
\hrule width ℓ
Par exemple, le code :
\hrule width 5cm
donne :
• Pour générer un trait horizontal d’une épaisseur (c’est-à-dire hauteur) e, on utilise le code :
\hrule height e
Par exemple, le code :
\hrule height 1pt
donne :
• Pour générer un trait horizontal d’une largeur ℓ et d’une épaisseur e, on utilise le code :
\hrule width ℓ height e
Par exemple, le code :
\hrule width 4cm height 2pt
donne :

1.2.3 Un trait horizontal complétant une ligne de texte


• Pour compléter une ligne de texte (lorsqu’elle est incomplète bien sûr) par un trait horizontal, on
utilise le code : \hrulefill. Par exemple, le code :
C’est génial la programmation en VBA \hrulefill
donne :
C’est génial la programmation en VBA
• Pour compléter une ligne de texte (lorsqu’elle est incomplète bien sûr) par des points de suspension,
on utilise le code \dotfill. Par exemple, le code :
C’est génial la programmation en VBA \dotfill
donne :
C’est génial la programmation en VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.4 Un trait horizontal centré ou mis à droite


• Pour générer un trait horizontal centré (par exemple de largeur 1/3 de la largeur d’une ligne de
texte), on utilise le code :
\hspace*{0.33\textwidth} \hrulefill \hspace*{0.33\textwidth}
(après un retour à la ligne). Ce qui donne ceci :

• Pour générer un trait horizontal mis à droite (par exemple de largeur 1/3 de la largeur d’une ligne
de texte), on utilise le code :
\hspace*{0.66\textwidth} \hrulefill
(après un retour à la ligne). Ce qui donne ceci :

4 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

1.2.5 Un trait horizontal de couleur


Pour générer un trait horizontal de couleur, il suffit d’utiliser le code :

{\color{la couleur voulue} \hrule ...}


(N’oubliez pas de charger l’un des deux packages color ou xcolor au préambule du document).
Par exemple, pour générer un trait horizontal de couleur magenta, de largeur 8 cm et d’épaisseur 1
pt, on tape le code :

{\color{magenta} \hrule width 8cm height 1pt}

Ce qui donne :

1.3 Ecrire un document ou une partie d’un document LATEX


sur plusieurs colonnes
1.3.1 Ecrire un texte LATEX sur deux colonnes, remplies l’une après l’autre
Présenter un document LATEX en entier sur deux colonnes
Pour écrire un document LATEX en entier sur deux colonnes qui vont être remplies l’une après
l’autre, il suffit d’intégrer l’option twocolumn dans la classe du document en question. On tapera
par exemple au préambule du document :
\documentclass[twocolumn]{article}

ou encore :

\documentclass[a4paper,twocolumn,12pt]{article}

. . . etc.
Il est à noter qu’avec cette option, les deux colonnes de chaque page du document seront remplies
l’une après l’autre. Autrement dit, le remplissage des colonnes n’est pas équiparti. On peut ainsi
avoir, dans une même page, la colonne de gauche beaucoup plus remplie (en texte) que la colonne
de droite. Plus loin, on verra comment faudrait-il procéder pour obtenir un remplissage équiparti de
colonnes.

Présenter une partie d’un document LATEX sur deux colonnes


Pour agir localement, c’est-à-dire écrire seulement une partie d’un document LATEX sur deux
colonnes (remplies l’une après l’autre), il n’est pas nécessaire d’intégrer l’option twocolumn à la
classe du document mais il suffit simplement de taper la commande \twocolumn juste avant le
texte que l’on souhaite présenter sur deux colonnes. Une autre alternative consiste à taper plutôt :

\twocolumn{Le texte que l’on souhaite présenter sur deux colonnes}

ou encore :
\begin{twocolumn}
Le texte que l’on souhaite présenter sur deux colonnes
\end{twocolumn}
Si l’on désire présenter un texte sur deux colonnes (remplies l’une après l’autre) mais avec un titre
qui tient sur une seule colonne, on tapera :

5 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

\twocolumn[Le titre sur une colonne]{Le texte sur deux colonnes}

ou encore :

\begin{twocolumn}[Le titre sur une colonne]


Le texte sur deux colonnes
\end{twocolumn}

Ainsi, le code :

\twocolumn[\section{Le titre de votre section}]{Le texte de votre section}

mettra le titre de votre section sur une seule colonne et son texte sur deux colonnes (remplies l’une
après l’autre). Il en est de même pour le code :

\begin{twocolumn}[\section{Le titre de votre section}]


Le texte de votre section
\end{twocolumn}

Remarque : L’environnement twocolumn nous offre une meilleur lisibilité du texte source (fichier
tex) mais à part cela, il n’a aucun autre intérêt.

Présenter certaines parties d’un document LATEX sur une colonne et d’autres parties sur
deux colonnes
Si l’on souhaite maintenant présenter certaines parties d’un document LATEX sur une colonne
et d’autres parties sur deux colonnes (remplies l’une après l’autre), on utilisera les commandes :
\onecolumn et \twocolumn. On écrira par exemple :

\twocolumn Un texte sur deux colonnes


\onecolumn Un autre texte sur une colonne
\twocolumn Un autre texte sur deux colonnes
..
.
etc

Le grand inconvénient de ces deux commandes \onecolumn et \twocolumn réside dans le fait qu’à
chaque fois que l’une d’elle est utilisée, elle entraı̂ne automatiquement un changement de page. À
ma connaissance, cet inconvénient de taille est incontournable !
Remarque importante : Si l’on souhaite présenter un document LATEX entièrement sur deux co-
lonnes, il est nettement préférable d’intégrer l’option twocolumn à la classe du document que d’uti-
liser la commande \twocolumn au début du document. En effet, la commande \twocolumn est
tellement fragile qu’elle pourrait entraı̂ner des anomalies comme la suivante : ≪ certaines lignes de
la colonne gauche arrivent à toucher les lignes d’en face de la colonne droite d’une même page du
document ≫.

Mettre un trait vertical pour séparer les colonnes d’un texte LATEX présenté sur deux
colonnes
Pour faire apparaı̂tre un trait vertical séparant les deux colonnes d’un texte LATEX (écrit sur deux
colonnes), on devra taper, juste avant le texte en question, le code :

\columnseprule=épaisseur voulue pour le trait vertical

ou le code :

\setlength{\columnseprule}{épaisseur voulue pour le trait vertical}

6 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

Par exemple, le code :

\columnseprule=0.1pt
\twocolumn Il était une fois ...

mettra notre texte ≪ Il était une fois . . . ≫ sur deux colonnes qu’il sépare avec un trait vertical
d’épaisseur 0,1 pt (un trait fin).
N.B : Lorsqu’un document LATEX est entièrement écrit sur deux colonnes (via l’option twocolumn,
intégrée à la classe du document), il suffit de mettre le code \columnseprule=épaisseur voulue
juste après \begin{document} pour séparer les deux colonnes de chaque page du document par
un trait vertical d’une épaisseur voulue.

Forcer le passage à une nouvelle colonne ou à une nouvelle page


Supposons donnée une partie d’un document LATEX écrite sur deux colonnes.
Alors, pour forcer le passage à une nouvelle colonne à un endroit voulu, il suffit de taper à cet
endroit le code \newpage. Noter que ce code est habituellement réservé pour forcer le passage
à une nouvelle page, mais seulement dans ce cas (d’un texte écrit sur deux colonnes), il force le
passage à une nouvelle colonne plutôt qu’à une nouvelle page.
Ainsi, en étant sur une colonne de gauche, pour forcer le passage à une nouvelle page, on doit taper
le code \newpage~\newpage (et non pas \newpage ou \newpage\newpage).

1.3.2 Ecrire un texte LATEX sur plusieurs colonnes, remplies équitablement


Le package multicol (qu’on chargera au préambule d’un document LATEX via la commande
\usepackage{multicol}) définit l’environnement multicols qui permet de présenter une partie
d’un document LATEX sur plusieurs colonnes (10 colonnes au maximum). On tapera par exemple :

\begin{multicols}{3}
Il était une fois ...
\end{multicols}

pour présenter notre texte ≪ Il était une fois . . . ≫ sur 3 colonnes, remplies équitablement.
L’importance de cet environnement est qu’il répartit le texte qu’il détient équitablement sur toutes
les colonnes, et ceci même lorsque la page contenant le texte en question n’est pas complètement
remplie.
L’environnement multicols nous permet également d’obtenir un texte réparti équitablement sur
plusieurs colonnes avec un titre écrit sur une colonne. Pour ce faire, on utilise le code :

\begin{multicols}{Nombre de colonnes voulu}[Le titre sur une colonne]


Notre texte
\end{multicols}

Bien entendu, le titre en question pourrait être une section, une sous-section, . . . etc.
Pour information, c’est l’environnement multicols qu’on utilise pour rédiger (en LATEX) les articles
de journaux.
Enfin, pour écrire une partie d’un document LATEX sur un nombre n de colonnes (1 ≤ n ≤ 10),
remplies équitablement, et faire apparaı̂tre des traits verticaux d’épaisseur e séparant chaque deux
colonnes consécutives, on devrait taper (juste avant l’environnement multicols) l’un des deux codes
équivalents :

\columnseprule=e

7 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

ou

\setlength{\columnseprule}{e}

Exemple : Le code complet 1 :

\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc} % pour avoir des caractères en codage T1
\usepackage[latin1]{inputenc} % pour gérer les accents
\usepackage{multicol}
\begin{document}
\thispagestyle{empty}
\columnseprule=0.1pt
\begin{multicols}{4}[\section*{De bonnes raisons pour enseigner l’arithmétique}]
Il n’y a pas deux branches des mathématiques qui présentent un plus grand
contraste que l’arithmétique et la théorie des nombres.\\
Le caractère de grande généralité et de simplicité de ses règles rend
l’arithmétique accessible à l’esprit le moins ouvert.\\
Par contre, la théorie des nombres est de beaucoup la plus difficile des
sciences mathématiques. Sans doute, l’exposé de ses problèmes est si simple
qu’un enfant peut comprendre de quoi il s’agit; mais les méthodes employées
sont si particulières qu’il faut une adresse insoupçonnée et une habileté
consommée pour découvrir la voie qui permet d’aborder ces problèmes. Des
propositions tenues pour vraies pendant des siècles ont été ultérieurement
reconnues fausses, et actuellement il existe des problèmes qui ont épuisé
toutes les capacités des plus grands mathématiciens et restent encore sans
solution.\\
La théorie des nombres est la branche des mathématiques qui a trouvé le plus
petit nombre d’applications; non seulement elle est restée bien loin de toute
influence sur le progrès technique, mais dans le domaine des mathématiques
pures, elle est toujours restée isolée, n’ayant que de vagues liaisons avec
le fond général de la science \dots
\end{multicols}
\end{document}

donne :
1. Le texte contenu dans l’environnement multicols est dû à Tobias Dantzig (Le nombre langage de la
science, 1974).

8 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

De bonnes raisons pour enseigner l’arithmétique


Il n’y a pas deux coup la plus dif- permet d’aborder ématiques qui a
branches des math- ficile des sci- ces problèmes. trouvé le plus
ématiques qui ences mathéma- Des propositions petit nombre
présentent un plus tiques. Sans doute, tenues pour vraies d’applications; non
grand contraste l’exposé de ses pendant des siècles seulement elle est
que l’arithmétique problèmes est si ont été ultérieure- restée bien loin de
et la théorie des simple qu’un en- ment reconnues toute influence sur
nombres. fant peut com- fausses, et actuelle- le progrès tech-
Le caractère de prendre de quoi ment il existe des nique, mais dans
grande généralité il s’agit; mais problèmes qui ont le domaine des
et de simplicité les méthodes em- épuisé toutes les mathématiques
de ses règles rend ployées sont si capacités des plus pures, elle est
l’arithmétique ac- particulières qu’il grands mathémati- toujours restée
cessible à l’esprit faut une adresse ciens et restent en- isolée, n’ayant
le moins ouvert. insoupçonnée et core sans solution. que de vagues li-
Par contre, la une habileté con- La théorie des aisons avec le fond
théorie des nom- sommée pour dé- nombres est la général de la sci-
bres est de beau- couvrir la voie qui branche des math- ence . . .

1.4 Créer des en-têtes et des pieds de page personnalisés


Le moyen le plus simple pour créer ses propres en-têtes et pieds de page consiste à utiliser le package
fancyhdr que l’on chargera au préambule du document Latex via la commande :

\usepackage{fancyhdr}

Le chargement de ce package seul n’entraı̂ne ni une en-tête particulière ni un pied de page particulier.
C’est par contre le style de page qui donnera à un document Latex une en-tête et un pied de page
particuliers.
Pour définir son propre style de page (c’est-à-dire sa propre en-tête et son propre pied de page),
nous devons d’abord charger le style de page fancy via la commande :

\pagestyle{fancy}

que l’on mettra dans le préambule ou dans le corps du document (à l’endroit à partir duquel on
souhaite adopter le style de page fancy) ; ensuite modifier ce style aux endroits voulus du document
par des commandes que nous allons détailler ci-dessous.
Avant tout, nous allons expliquer comment fonctionne le style de page fancy par défaut.

1.4.1 Le fonctionnement par défaut du style de page fancy


Le style de page fancy crée des en-têtes particulières qui dépendent en fait de la classe du document
(article, report ou book) et du mode du document (oneside ou twoside). Pour ce qui concerne les 3
types de classes : article, report et book d’un document Latex, ils sont bien connus et nous jugeons
inutile de les rappeler en détail ; juste en deux mots : la classe article est utilisée pour rédiger des
articles alors que les deux classes report et book sont utilisées pour rédiger des mémoires de thèse,
des polycopiés, des livres, . . . etc. En revanche, les modes oneside et twoside d’un document Latex
nécessitent un éclaircissement.

9 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

Le mode oneside :
C’est le mode “recto”. Le rôle de ce mode est d’attribuer à toutes les pages d’un document Latex
la même en-tête et le même pied de page.

Le mode twoside :
C’est le mode “recto-verso”. Le rôle de ce mode est d’attribuer aux pages d’un document Latex des
en-têtes et des pieds de page différents selon leur parité. Plus précisément, il attribue aux pages
paires la même en-tête et le même pied de page et aux pages impaires aussi la même en-tête et le
même pied de page. Ainsi, une page impaire (recto) aura une en-tête et un pied de page différents
de ceux d’une page paire (verso).
Le mode que l’on choisit pour rédiger son document Latex doit être déclaré comme argument
(optionnel) de la classe du document. On tapera par exemple :

\documentclass[a4paper,twoside,12pt]{report}

N.B : Si on ne déclare pas le mode d’un document Latex, il sera attribué par défaut à ce document
le mode oneside s’il est de classe article ou report et le mode twoside s’il est de classe book.
L’en-tête par défaut du style de page fancy est décrite dans ce qui suit :

1. Pour la classe article :


(a) Pour le mode oneside : On verra apparaı̂tre un trait horizontal au dessus duquel
figure : la section courante à droite et la sous-section courante à gauche.
(b) Pour le mode twoside : On verra apparaı̂tre un trait horizontal au dessus duquel
figure :
Pour les pages paires : la section courante à droite et la sous-section cou-
rante à gauche.
Pour les pages impaires : la section courante à gauche et la sous-section
courante à droite.
2. Pour les classes report et book :
(a) Pour le mode oneside : On verra apparaı̂tre un trait horizontal au dessus duquel
figure : le chapitre courant à droite et la section courante à gauche.
(b) Pour le mode twoside : On verra apparaı̂tre un trait horizontal au dessus duquel
figure :
Pour les pages paires : le chapitre courant à droite et la section courante à
gauche.
Pour les pages impaires : le chapitre courant à gauche et la section courante
à droite.

Remarques :
— Dans l’en-tête par défaut du style de page fancy, les titres figurant au dessus du trait
horizontal sont écrits en majuscules et en italique.
— Pour ce qui concerne le pied de page, le style fancy n’ajoute rien à ce qui est standard, à
savoir la numérotation de la page courante au centre du bas de page.
Nous allons maintenant expliquer comment modifier le style de page fancy pour créer nos propres
en-têtes et nos propres pieds de page.

10 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

1.4.2 Modification du style de page fancy pour créer ses propres en-têtes
et pieds de page
Modification du trait horizontal de l’en-tête
Les commandes à utiliser pour supprimer ou rendre plus ou moins épais ou plus ou moins long le
trait horizontal de l’en-tête sont :

\renewcommand{\headrulewidth}{0pt}

pour supprimer le trait en question ;

\renewcommand{\headrulewidth}{e}

pour modifier son épaisseur en e (où e est une mesure donnée en pt, mm, . . . etc) et

\renewcommand{\headheight}{ℓ}

pour modifier sa longueur en ℓ (où ℓ est une mesure donnée en cm, mm, pt, . . . etc).

N.B : Ces codes pourraient être tapés aussi bien dans le préambule du document que dans le
corps du document mais dans les deux cas, ils agissent sur l’ensemble du document et non pas
à partir de l’endroit où ils étaient tapés. Il est donc préférable de les taper au préambule du
document.

Il est aussi possible de modifier l’espacement entre l’en-tête et le corps du document en tapant (dans
le préambule du document) l’un des deux codes équivalents suivants :

\setlength{\headsep}{esp} ou \headsep=esp,

où esp est l’espacement voulu, qui est une mesure qu’on devrait fournir en pt, cm, mm, . . . etc.
Enfin, on peut carrément remplacer le trait horizontal de l’en-tête par tout autre chose de notre
choix en utilisant le code plus général :

\renewcommand{\headrule}{ce qu’on souhaite mettre à la place du trait


horizontal de l’en-t^
ete}

Ce code nous permet en particulier de modifier la couleur du trait horizontal de l’en-tête qui est
noire par défaut. En effet, si l’on souhaite par exemple changer cette couleur par la rouge, il suffira
de taper (dans le préambule du document) :

\renewcommand{\headrule}{\color{red} \hrule}

On peut même spécifier par ce même code l’épaisseur et la longueur du trait horizontal de l’en-
tête. Par exemple, si l’on souhaite modifier à la fois la couleur (en verte), l’épaisseur (en 1pt) et la
longueur (en 8cm) du trait horizontal de l’en-tête, on tapera (dans le préambule du document) :

\renewcommand{\headrule}{{\color{green} \hrule height 1pt width 8cm}}

En ayant un peu d’imagination, on peut même fabriquer des en-têtes originales (voir qui sortent de
l’ordinaire) en remplaçant le trait horizontal de l’en-tête par quelque chose d’autre. Pour illustration,
nous donnons juste les deux exemples suivants :
Exemple 1 : Nous souhaitons avoir à la place du trait horizontal de l’en-tête deux traits horizontaux
simples, très proches l’un de l’autre. L’idée pour réaliser ce souhait consiste à se servir du package
ulem qui permet de faire un double soulignement professionnel d’un texte voulu, via la commande
\uuline{le texte voulu}.
Il faudrait donc charger préalablement le package ulem au préambule du document ; ensuite taper
(dans le préambule du document) le code :

11 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

\renewcommand{\headrule}{\vspace{-3mm} \uuline{\hspace{\textwidth}}}

Exemple 2 : Nous souhaitons avoir à la place du trait horizontal de l’en-tête un trait horizontal
ondulé (comme ✿✿✿✿✿✿). L’idée est la même que celle de l’exemple précédent ; elle consiste à utiliser
le package ulem qui permet de souligner un texte donné par un trait ondulé via la commande
\uwave{le texte voulu}. Après avoir chargé le package ulem au préambule du document, on
devrait (pour réaliser notre souhait) taper (dans le préambule du document) le code :

\renewcommand{\headrule}{\vspace{-3mm} \uwave{\hspace{\textwidth}}}

Création de sa propre en-tête et de son propre pied de page


La création de sa propre en-tête et de son propre pied de page se fait en deux temps :
— On supprime d’abord l’en-tête et le pied de page adoptés par défaut par le style fancy.
— Ensuite, on définit sa propre en-tête et son propre pied de page.
Pour supprimer l’en-tête et/ou le pied de page adoptés par le style fancy, on procède comme suit :
1. Pour supprimer à la fois l’en-tête et le pied de page du style fancy (c’est-à-dire les titres
figurant au dessus du trait horizontal de chaque page et la numérotation de chaque page),
on tapera la commande :
\fancyhf{}
(à placer dans le préambule ou dans le corps du document).
2. Pour supprimer juste l’en-tête du style fancy (c’est-à-dire les titres figurant au dessus du
trait horizontal de chaque page), on tapera la commande :
\fancyhead{}
(à placer dans le préambule ou dans le corps du document).
3. Pour supprimer juste le pied de page du style fancy (c’est-à-dire la numérotation de chaque
page), on tapera la commande :
\fancyfoot{}
(à placer dans le préambule ou dans le corps du document).
Une fois que l’on a supprimé l’en-tête et/ou le pied de page par défaut du style fancy, on pourra
définir sa propre en-tête et son propre pied de page en procédant de la façon suivante :
1. Pour les documents de mode oneside : On tapera dans le préambule ou dans le corps
du document ce qui suit :
(a) \lhead{ce qu’on désire mettre en haut-à gauche de chaque page}
(b) \rhead{ce qu’on désire mettre en haut-à droite de chaque page}
(c) \chead{ce qu’on désire mettre en haut-au centre de chaque page}
(d) \lfoot{ce qu’on désire mettre en bas-à gauche de chaque page}
(e) \rfoot{ce qu’on désire mettre en bas-à droite de chaque page}
(f) \cfoot{ce qu’on désire mettre en bas-au centre de chaque page}
2. Pour les documents de mode twoside : On dispose de deux manières différentes pour
réaliser sa mise en page :
1ère manière : On tapera dans le préambule ou dans le corps du document ce qui suit :
(a) \lhead[ce qu’on désire mettre en haut-à gauche des pages paires]
{ce qu’on désire mettre en haut-à gauche des pages impaires}
Attention : il n’y a pas de saut de ligne dans ce code ainsi que dans ceux qui vont
suivre.

12 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

(b) \rhead[ce qu’on désire mettre en haut-à droite des pages paires]
{ce qu’on désire mettre en haut-à droite des pages impaires}
(c) \chead[ce qu’on désire mettre en haut-au centre des pages paires]
{ce qu’on désire mettre en haut-au centre des pages impaires}
(d) \lfoot[ce qu’on désire mettre en bas-à gauche des pages paires]
{ce qu’on désire mettre en bas-à gauche des pages impaires}
(e) \rfoot[ce qu’on désire mettre en bas-à droite des pages paires]
{ce qu’on désire mettre en bas-à droite des pages impaires}
(f) \cfoot[ce qu’on désire mettre en bas-au centre des pages paires]
{ce qu’on désire mettre en bas-au centre des pages impaires}
2nde manière : On tapera dans le préambule ou dans le corps du document ce qui suit :
(a) \fancyhead[LO]{ce qu’on désire mettre en haut-à gauche des pages impaires}
N.B : LO = Left-Odd = à gauche-impaire.
(b) \fancyhead[LE]{ce qu’on désire mettre en haut-à gauche des pages paires}
N.B : LE = Left-Even = à gauche-paire.
(c) \fancyhead[RO]{ce qu’on désire mettre en haut-à droite des pages impaires}
N.B : RO = Right-Odd = à droite-impaire.
(d) \fancyhead[RE]{ce qu’on désire mettre en haut-à droite des pages paires}
N.B : RE = Right-Even = à droite-paire.
(e) \fancyhead[CO]{ce qu’on désire mettre en haut-au centre des pages impaires}
N.B : CO = Center-Odd = au centre-impaire.
(f) \fancyhead[CE]{ce qu’on désire mettre en haut-au centre des pages paires}
N.B : CE = Center-Even = au centre-paire.
(g) \fancyfoot[LO]{ce qu’on désire mettre en bas-à gauche des pages impaires}
(h) \fancyfoot[LE]{ce qu’on désire mettre en bas-à gauche des pages paires}
(i) \fancyfoot[RO]{ce qu’on désire mettre en bas-à droite des pages impaires}
(j) \fancyfoot[RE]{ce qu’on désire mettre en bas-à droite des pages paires}
(k) \fancyfoot[CO]{ce qu’on désire mettre en bas-au centre des pages impaires}
(l) \fancyfoot[CE]{ce qu’on désire mettre en bas-au centre des pages paires}
Remarque : Si, par exemple, on désire mettre le même titre en haut-à droite de chaque
page (peu importe sa parité), on peut taper simplement le code :
\rhead{le titre voulu}
ou encore :
\fancyhead[RO,RE]{le titre voulu}

Une importante numérotation de page :


Lorsqu’on rédige un CV, une série de TD ou tout autre document latex comportant peu de pages,
il est souvent souhaitable de numéroter ses pages comme suit :
Le numéro de la page / Le nombre total de pages
Ainsi, si le document latex dont il s’agit contient n pages, ces pages seront numérotées par :
1/n, 2/n, . . . , n/n.
Pour ce faire, on doit d’abord charger au préambule du document le package lastpage, via la com-
mande :

13 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

\usepackage{lastpage}

Noter que ce package retient des informations sur la dernière page du document ; en particulier son
numéro qui n’est rien d’autre que le nombre total des pages du document et dont on a besoin ici.
Ensuite, dans le préambule ou dans le corps du document, on tapera le code suivant :

\cfoot{\thepage/\pageref{LastPage}}

si l’on souhaite que cette numérotation figure en bas-au centre de chaque page.

Les commandes Latex permettant d’imprimer les numéros et les intitulés du chapitre,
section et sous-section en cours :
1. Les commandes Latex permettant d’imprimer les numéros des titres courants :
• La commande permettant d’imprimer le numéro du chapitre courant d’un document Latex (de
classe book ou report) est : \thechapter.
• La commande permettant d’imprimer le numéro de la section (resp. sous-section) courante d’un
document Latex (de classe book, report ou article) est : \thesection (resp. \thesubsection).
2. Les commandes Latex permettant d’imprimer les intitulés des titres courants :
a) Pour les classes report et book :
• Les commandes \leftmark et \rightmark permettent d’imprimer respectivement les intitulés
du chapitre courant et de la section courante. Ces intitulés vont apparaı̂tre sous la forme :

CHAPITRE n. INTITULÉ DU CHAPITRE

(pour le chapitre numéro n) et

n.m. INTITULÉ DE LA SECTION

(pour la section numéro m du chapitre numéro n).


Noter que ces intitulés sont ceux de la table des matières 2 , convertis en écriture en lettres majuscules.
• Si l’on souhaite que ces intitulés ne soient pas convertis en écriture en lettres majuscules et ne
soient pas précédés de leurs numéros mais soient exactement tel qu’ils apparaissent dans la table
des matières, on ajoutera au préambule du document Latex (après la définition de son en-tête et
jamais avant) les deux codes :

\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{#1}}

Noter que les commandes \chaptermark et \sectionmark, lorsqu’elles sont utilisées, offrent res-
pectivement aux commandes \leftmark et \rightmark ce qu’elles devront imprimer (voir le pro-
chain item).
• Si l’on souhaite maintenant que les commandes \leftmark et \rightmark impriment autre
chose que ce qui apparaı̂t dans la table des matières, on devra ajouter juste après (resp. juste avant)
l’introduction du chapitre (resp. section) dont il s’agit, c’est-à-dire juste après (resp. juste avant)
\chapter{...} (resp. \section{...}), le code :
\chaptermark{le titre que l’on désire imprimer avec la commande \leftmark}
(resp. \sectionmark{le titre que l’on désire imprimer avec la commande \rightmark}).
Dans cette situation, l’impression donnera les titres que nous avons choisi, précédés des numéros
2. Il est possible qu’un chapitre (section, sous-section, . . .) apparaisse sous un certain nom dans la table des
matières et sous un autre nom dans le corps du document.

14 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

des chapitres (resp. sections) et convertis en écriture en lettres majuscules.


• Pour aller encore plus loin, on peut souhaiter que les commandes \leftmark et \rightmark im-
priment exactement ce qu’on écrit entre les accolades des commandes \chaptermark et \sectionmark
(y compris si l’on souhaite une écriture en italique, en gras, en couleurs, . . . etc). Pour ce faire,
il suffira d’ajouter au préambule du document Latex (après la définition de son en-tête et jamais
avant) les codes :
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
(pour la gestion des intitulés de chapitres) et :
\renewcommand{\sectionmark}[1]{\markright{#1}}
(pour la gestion des intitulés de sections).
Un exemple plus compliqué :
Dans un document Latex de classe report et de mode oneside, on souhaite avoir comme en-tête un
trait horizontal simple au dessus duquel figurera :
À gauche : L’intitulé du chapitre courant, écrit sous la forme :
Chap n. Intitulé du chapitre
(en couleur rouge).
À droite : L’intitulé de la section courante, écrit sous la forme :
Sec n.m. Intitulé de la section
(en couleur verte).
Pour ce faire, il faudrait d’abord définir l’en-tête souhaitée au préambule du document par le code :
\pagestyle{fancy}
\fancyhead{}
\lhead{\leftmark}
\rhead{\rightmark}
(sans oublier bien sûr de charger préalablement le package fancyhdr).
Ensuite, juste après ceci et pas avant (toujours dans le préambule du document), redéfinir les deux
commandes \chaptermark et \sectionmark par :
\renewcommand{\chaptermark}[1]{\markboth{{\color{red} Chap \thechapter. #1}}{}}
\renewcommand{\sectionmark}[1]{\markright{{\color{green} Sec \thesection. #1}}}

Ainsi programmé, les intitulés des chapitres et sections qui apparaı̂tront dans l’en-tête du document
seront exactement ceux donnés par les commandes \chaptermark et \sectionmark lorsque celles-
ci sont utilisées ; sinon ceux de la table des matières.
b) Pour la classe article :
• Les commandes \leftmark et \rightmark permettent d’imprimer respectivement les intitulés
de la section courante et de la sous-section courante. Ces intitulés vont apparaı̂tre sous la forme :

n INTITULÉ DE LA SECTION

(pour la section numéro n) et

n.m Intitulé de la sous-section

(pour la sous-section numéro m de la section numéro n).


Noter que ces intitulés sont ceux de la table des matières, convertis en écriture en lettres majuscules
pour les sections et laissés tels quels pour les sous-sections.

15 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

• Si l’on souhaite que ces intitulés ne soient ni précédés de leurs numéros ni convertis en écriture en
lettres majuscules (pour les sections) mais soient exactement tels qu’ils apparaissent dans la tables
des matières, on ajoutera au préambule du document Latex (après la définition de son en-tête et
jamais avant) les deux codes :

\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}

Noter que les commandes \sectionmark et \subsectionmark, lorsqu’elles sont utilisées, offrent
respectivement aux commandes \leftmark et \rightmark ce qu’elles devront imprimer (voir le
prochain item).
• Si l’on souhaite maintenant que les commandes \leftmark et \rightmark impriment autre chose
que ce qui apparaı̂t dans la table des matières, on devra ajouter juste après (resp. juste avant) l’in-
troduction de la section (resp. sous-section) dont il s’agit, c’est-à-dire juste après (resp. juste avant)
\section{...} (resp. \subsection{...}), le code :
\sectionmark{le titre que l’on désire imprimer avec la commande \leftmark}
(resp. \subsectionmark{le titre que l’on désire imprimer avec la commande \rightmark}).
Dans cette situation, l’impression donnera les titres que nous avons choisi, précédés des numéros des
sections (resp. sous-sections) concernées. Ces titres sont, en outre, convertis en écriture en lettres
majuscules lorsqu’ils concernent des sections.
• Pour aller encore plus loin, on peut souhaiter que les commandes \leftmark et \rightmark im-
priment exactement ce qu’on écrit entre les accolades des commandes \sectionmark et \subsectionmark
(y compris si l’on souhaite une écriture en italique, en gras, en couleurs, en minuscules, . . . etc).
Pour ce faire, il suffira d’ajouter au préambule du document Latex (après la définition de son en-tête
et jamais avant) les codes :
\renewcommand{\sectionmark}[1]{\markboth{#1}{}}
(pour la gestion des intitulés de sections) et :
\renewcommand{\subsectionmark}[1]{\markright{#1}}
(pour la gestion des intitulés de sous-sections).
Un exemple plus compliqué :
Dans un document Latex de classe article et de mode oneside, on souhaite avoir comme en-tête un
trait horizontal simple au dessus duquel figurera :
À gauche : L’intitulé de la section courante, écrit sous la forme :
Section n. Intitulé de la section
(en couleur rouge).
À droite : L’intitulé de la sous-section courante, écrit sous la forme :
Sous-section n.m. Intitulé de la sous-section
(en couleur verte).
Pour ce faire, il faudrait d’abord définir l’en-tête souhaitée au préambule du document par le code :
\pagestyle{fancy}
\fancyhead{}
\lhead{\leftmark}
\rhead{\rightmark}
(sans oublier bien sûr de charger préalablement le package fancyhdr).
Ensuite, juste après ceci et pas avant (toujours dans le préambule du document), redéfinir les deux
commandes \sectionmark et \subsectionmark par :

16 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

\renewcommand{\sectionmark}[1]{\markboth{{\color{red} Section \thesection. #1}}{}}


\renewcommand{\subsectionmark}[1]{\markright{{\color{green} Sous-section \thesubsection. #1}}}

Ainsi programmé, les intitulés des sections et des sous-sections qui apparaı̂tront dans l’en-tête du
document seront exactement ceux donnés par les commandes \sectionmark et \subsectionmark
lorsque celles-ci sont utilisées ; sinon ceux de la table des matières.
Une dernière remarque : Les commandes \leftmark et \rightmark fonctionnent correctement
lorsqu’on les utilise pour définir sa propre en-tête (c’est-à-dire accompagnées des commandes telles
que \lhead, \rhead, . . . etc) mais elles fonctionnent moins bien lorsqu’on les utilise seules dans le
corps d’un document Latex.

Exercices
Exercice 1 : Le texte encadré ci-dessous constitue une page d’une série de TD écrite en Latex
(classe article, mode oneside).

Université A. Mira de Béjaia Année 2011-2012

Exercice 4:
En aérodynamique et en mécanique des fluides, les fonctions φ et ψ dans
l’expression f = φ + iψ, où f est une fonction holomorphe sur C sur C,
s’appellent respectivement: potentiel des vitesses et fonction courant.
Supposons que φ(x, y) = x2 + 4x − y 2 + 2y.
— Déterminer l’expression de ψ(x, y) en fonction de x et de y, puis en déduire
l’expression de f (z) en fonction de z.
Exercice 5 (exercice additionnel):
Soit f une fonction holomorphe sur C dont l’expression algébrique est donnée
par:
f (z) = P (x, y) + i Q(x, y),
où z = x + i y (x, y ∈ R), P = Ref et Q = Imf .
On donne: P (x, y) = ex (x cos y − y sin y).
1. Déterminer l’expression de Q(x, y) en fonction de x et de y.
2. En déduire l’expression de f (z) en fonction de z.
Exercice 6:
La formule intégrale de Cauchy annonce ce qui suit:

Soit f une fonction holomorphe sur un ouvert D de C qui contient


un chemin fermé γ et soit a un point du plan complexe se trouvant
à l’intérieur de γ. Alors, on a:

n! f (z)
I
f (n) (a) = dz,
2πi γ (z − a)n+1

où l’on a supposé que γ est orienté positivement.


1. En utilisant la formule intégrale de Cauchy montrer que l’on a pour
tout t ∈ R et tout n ∈ N:
 n 2 I n tz
t 1 t e
= dz ,
n! 2π i γ n!z n+1
où γ est un contour fermé entourant l’origine (supposé orienté positive-
ment).
2. En déduire que l’on a pour tout t ∈ R:
∞  n 2 Z 2π
X t 1
= e2t cos θ dθ.
n=0
n! 2π 0

2/3 B. Farhi

Comme on le constate, l’en-tête et le pied de page du document en question sont composés comme
suit :

17 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

En-tête : Un trait horizontal d’épaisseur 1 pt. À sa droite c’est marqué “Année 2011-2012”
et à sa gauche c’est marqué “Université A. Mira de Béjaia” (écriture en italique).
Pied de page : À droite c’est marqué le nom de l’auteur, en l’occurrence “B. Farhi”
(écriture en petites lettres majuscules). Au centre se trouve la numérotation de la page
qui est présentée ici sous la forme “Numéro de la page/Nombre total de pages”. Enfin, à
gauche, on voit apparaı̂tre le logo de l’université de Béjaia ; il s’agit d’une image de format
eps, nommée logoubej, insérée à cet endroit en réduisant sa taille à moitié (on supposera
que cette image se trouve dans le même répertoire que le document Latex dont il s’agit).
— Donner l’ensemble des instructions qui nous ont permis de réaliser l’en-tête et le pied de page de
ce document.
Solution : Le code source qui permet d’obtenir l’en-tête et le pied de page du document en
question est le suivant :

\documentclass[a4paper,12pt]{article} % Document de classe article (le mode


% est oneside par défaut)
\usepackage[T1]{fontenc} % Pour avoir des caractères en codage T1
\usepackage[utf8]{inputenc} % Pour gérer les accents
\usepackage[francais]{babel} % Pour avoir certains titres en français
\usepackage{graphicx} % Pour pouvoir insérer des figures
\usepackage{amsmath} % Pour avoir certains symboles mathématiques
\usepackage{amssymb} % Pour les symboles AMS
\usepackage{color} % Pour gérer les couleurs

\usepackage{fancyhdr} % Ce package contient le style de page fancy


\usepackage{lastpage} % Pour référencer la dernière page du document
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
\rhead{Année 2011-2012}
\lhead{\textit{Université A. Mira de Béjaia}}
\rfoot{\sc B. Farhi}
\cfoot{\thepage/\pageref{LastPage}}
\lfoot{\includegraphics[scale=0.5]{logoubej}}
\begin{document}
..
.
\end{document}

N.B : Dans le code source ci-dessus, les instructions que l’on a coloré en bleu sont celles agissant
sur le style du document (c’est-à-dire sur son en-tête et son pied de page). 
Exercice 2 : On souhaite attribuer à un ouvrage mathématique écrit en Latex (de classe book)
la mise en page décrite ci-dessous :
En-tête :
— Un trait horizontal de couleur magenta et d’épaisseur 0,1 pt.
— Au dessus-à gauche de ce trait horizontal, on fera apparaı̂tre le nom de l’auteur, en
l’occurrence B. Farhi, écrit en vert et en petites lettres majuscules.
— Au dessus-à droite du trait horizontal, on fera apparaı̂tre pour les pages impaires l’intitulé
du chapitre courant précédé de son numéro et pour les pages paires l’intitulé de la section
courante précédée de son numéro. Ces intitulés seront écrits en couleur rouge, en petites
écriture (small) et en lettres minuscules.

18 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 1. STRUCTURE GÉNÉRALE D’UN DOCUMENT LATEX

Pied de page :
— À droite, on fera apparaı̂tre l’url http://farhi.bakir.free.fr/ du site internet de
l’auteur, non pas comme un simple texte mais comme un lien hypertexte.
— Au centre, le numéro de la page courante.
— À gauche, le logo de l’Université de Béjaia (une image de format eps nommée logoubej
et classée dans le même répertoire que le document Latex en question, qu’on réduira à
moitié).
— Donner l’ensemble des instructions qui feront réaliser cette mise en page.
Solution : L’ensemble des instructions qui permettent de réaliser la mise en page souhaitée est
donné dans ce qui suit :

\documentclass[a4paper,12pt]{book} % Document de classe book (le mode


% est twoside par défaut)
\usepackage[T1]{fontenc} % Pour avoir des caractères en codage T1
\usepackage[utf8]{inputenc} % Pour gérer les accents
\usepackage[francais]{babel} % Pour avoir certains titres en français
\usepackage{graphicx} % Pour pouvoir insérer des figures
\usepackage{amsmath} % Pour avoir certains symboles mathématiques
\usepackage{amssymb} % Pour les symboles AMS
\usepackage{color} % Pour gérer les couleurs
\usepackage{hyperref} % Pour gérer les liens hypertextes, en particulier
% les url

\usepackage{fancyhdr} % Ce package contient le style de page fancy


\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrule}{\color{magenta} \hrule height 0.1pt}
\lhead{\textcolor{green}{\sc B. Farhi}}
\rhead[\rightmark]{\leftmark}
\rfoot{\url{http://farhi.bakir.free.fr/}}
\cfoot{\thepage}
\lfoot{\includegraphics[scale=0.5]{logoubej}}
\renewcommand{\chaptermark}[1]{\markboth{{\color{red} {\small \thechapter. #1}}}{}}
\renewcommand{\sectionmark}[1]{\markright{{\color{red} {\small \thesection. #1}}}}
\begin{document}
..
.
\end{document}

N.B : Dans le code source ci-dessus, les instructions que l’on a coloré en bleu sont celles agissant
sur le style du document (c’est-à-dire sur son en-tête et son pied de page). 

19 c http://farhi.bakir.free.fr/

CHAPITRE 2
LES NOTES EN BAS DE PAGE

En Latex, les notes en bas de la page se réalisent par la commande :


\footnote{Le texte de la note}
que l’on met devant le mot auquel une note voulue est affectée. Par cette commande, les notes sont
numérotées par défaut en chiffres arabes (1, 2, 3, . . .etc). Plusieurs d’autres types de numérotations
sont possibles. On donnera l’essentiel de ces types dans ce qui suit :

2.1 Les types de numérotations


2.1.1 Numérotation en chiffres romains
Pour obtenir des numérotations de footnotes en chiffres romains majuscules, il suffit d’ajouter à
l’en-tête de votre document latex ceci :
\def\thefootnote{\Roman{footnote}}
Pour obtenir des numérotations de footnotes en chiffres romains minuscules, on fait la même chose
en remplaçant juste Roman par roman.
Pour revenir ensuite, à partir d’un endroit voulu du document, à la numérotation standard de
footnotes (c’est-à-dire à la numérotation en chiffres arabes), on met au début de cet endroit ceci :
\def\thefootnote{\arabic{footnote}}

2.1.2 Numérotation en lettres latines


Pour obtenir des numérotations de footnotes en lettres latines majuscules, il suffit d’ajouter à
l’en-tête de votre document latex ceci :
\def\thefootnote{\Alph{footnote}}
Pour obtenir des numérotations de footnotes en lettres latines miniscules, on fait la même chose en
remplaçant juste Alph par alph.

2.1.3 Numérotations à l’aide de symboles (autres les chiffres et les lettres)


En Latex, on peut numéroter les footnotes à l’aide des neufs symboles suivants :
∗ † ‡ § ¶ k ∗∗ †† ‡‡
(dans cet ordre).

20
Bakir FARHI CHAPITRE 2. LES NOTES EN BAS DE PAGE

Pour ce faire, il suffira de mettre au début de votre document ceci :

\def\thefootnote{\fnsymbol{footnote}}

2.2 Comment forcer une footnote à prendre un numéro voulu


Pour forcer une note à prendre un numéro voulu (pour n’importe quel type de numérotation),
on utilise le code :

\footnote[Le numéro voulu]{Le texte de la note}

Exemple : Le texte suivant inséré dans votre document latex :


\def\thefootnote{\fnsymbol{footnote}}
Le théorème d’al-Kashi\footnote[7]{Mathématicien musulman.}
affirme que dans un triangle quelconque $ABC$, on a:
$BC^2 = AB^2 + AC^2 - 2 AB \cdot AC \cos\widehat{BAC}$.
donne :
Le théorème d’al-Kashi∗∗ affirme que dans un triangle quelconque ABC, on a : BC 2 =
AB 2 + AC 2 − 2AB · AC cos BAC. [
Et en bas de la page, on aura la footnote :
**
Mathématicien musulman.

2.3 Comment faire une footnote à l’intérieur de certains en-


vironnements
Dans certains environnements tels theorem, minipage, tabular, . . .etc, la commande \footnote
ne fonctionne pas correctement. En fait, le code \footnote{Le texte de la note} marque le
mot qui le précède par un numéro mais ne fait pas figurer la note qui lui est associée en bas
de la page. Pour y remédier à ce problème, on doit plutôt mettre \footnotemark juste après
le mot auquel on veut associer une note, puis après, on précisera la note voulue par le code
\footnotetext{Le texte de la note}.
En fait, le code \footnotemark sert juste à marquer le mot qui le précède par un petit numéro,
alors que le code \footnotetext{Le texte de la note} fait figurer la note voulue en bas de la
page.
Attention : Le code \footnotetext{Le texte de la note} doit être placé après le code
\footnotemark auquel il est associé et avant un autre code \footnotemark pour éviter la confu-
sion.
D’autres manières d’utilisation des footnotes (notamment à l’intérieur d’un environnement) sont
données dans ce qui suit :
• Pour associer un numéro voulu n à une footnote à l’aide des commandes \footnotemark et
\footnotetext, on mettra :
\footnotemark[n]

(juste après le mot auquel on veut associer une note), puis après :

\footnotetext[n]{Le texte de la note}


• Pour associer une seule note à plusieurs endroits (mots) du texte, on mettra devant chaque endroit
voulu :

21 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 2. LES NOTES EN BAS DE PAGE

\footnotemark[n]

où n est un numéro voulu. Ensuite, après le dernier endroit, on mettra le code :

\footnotetext[n]{Le texte de la note}

Exemple 1 : Le texte suivant dans un document latex :


Parmi les grands mathématiciens du monde, on cite:
al-Khawarizmi\footnotemark[3], Abu Kamil\footnotemark[3],
al-Kashi\footnotemark[3], Gauss\footnotemark[4], \dots \, etc.
\footnotetext[3]{Mathématicien musulman.}
\footnotetext[4]{Mathématicien allemand.}
donne :
Parmi les grands mathématiciens du monde, on cite : al-Khawarizmi3 , Abu Kamil3 ,
al-Kashi3 , Gauss4 , . . . etc.
puis après en bas de la page :

3
Mathématicien musulman.
4
Mathématicien allemand.
Exemple 2 : Supposons que l’on a déjà mis 5 footnotes dans notre document. Alors, le même texte
de l’exemple précédent peut s’écrire comme suit :
Parmi les grands mathématiciens du monde, on cite:
al-Khawarizmi\footnote{Mathématicien musulmans.},
Abu Kamil\footnotemark[6], al-Kashi\footnotemark[6],
Gauss\footnote{Mathématicien allemand.}, \dots \, etc.
Ce qui donnera :
Parmi les grands mathématiciens du monde, on cite : al-Khawarizmi6 , Abu Kamil6 ,
al-Kashi6 , Gauss7 , . . . etc.
puis après en bas de la page :

6
Mathématicien musulman.
7
Mathématicien allemand.
Attention : L’astuce de ce second exemple marche bien à condition de ne pas ajouter après des
footnotes avant celles du texte en l’occurrence.

22 c http://farhi.bakir.free.fr/

CHAPITRE 3
LATEX MATHÉMATIQUE

3.1 Les équations


3.1.1 Equations courtes et moyennes
Pour écrire une équation numérotée (qui tiendra sur une ligne), on utilise l’environnement
equation. En voici un exemple :
\begin{equation}\label{al-karaji}
\sum_{k = 1}^n k^3 = \left(\sum_{k = 1}^n k\right)^2
= \frac{n^2(n+1)^2}{4}
\end{equation}
Ce qui donne : !2
n n
X X n2 (n + 1)2
k3 = k = (1)
k=1 k=1
4
(en supposant que c’est la première équation de votre document).
Le code \label{al-karaji} sert à référencer l’équation en question ; ici notre équation est
référencée par le nom du mathématicien qui l’a découverte. Pour se référer ensuite à cette équation
dans notre document, on utilise le code \eqref{al-karaji} ou bien le code (\ref{al-karaji})
pour donner (1).
Pour écrire une équation non numérotée, on utilise l’environnement equation* plutôt que equation.

3.1.2 Equations longues


Pour écrire une équation longue (c’est-à-dire qui ne tient pas sur une seule ligne) et numérotée,
on utilise la plupart du temps l’environnement multline. Par exemple, le code :
\begin{multline}
(x-1)(x^{2n}+x^{2n-1}+\dots+1)+(x+1)(x^{2n}-x^{2n-1}+x^{2n-2})-\dots+1)= \\
(x^{2n+1}-1)+(x^{2n+1}+1)=2x^{2n+1}
\end{multline}
donne :

(x − 1)(x2n + x2n−1 + · · · + 1) + (x + 1)(x2n − x2n−1 + x2n−2 − · · · + 1) =


(x2n+1 − 1) + (x2n+1 + 1) = 2x2n+1 (2)

(en supposant que c’est la deuxième équation de votre document).


On pourra bien sûr référencer l’équation longue en question en utilisant le code \label{la référence}.

23
Bakir FARHI CHAPITRE 3. LATEX MATHÉMATIQUE

Pour écrire une équation longue non numérotée, on utilise l’environnement multline* plutôt que
multline.
Pour écrire une équation longue numérotée avec des alignements bien précis, on utilise l’environne-
ment split à l’intérieur de l’environnement equation. Par exemple, le code :
\begin{equation}
\begin{split}
(x-1)(x^{2n}+x^{2n-1}+\dots+1)+(x+1)(x^{2n}-x^{2n-1}+ x^{2n-2})-\dots+1) &= \\
(x^{2n+1}-1)+(x^{2n+1}+1) &= \\
2x^{2n+1}
\end{split}
\end{equation}
donne :
(x − 1)(x2n + x2n−1 + · · · + 1) + (x + 1)(x2n − x2n−1 + x2n−2 − · · · + 1) =
(x2n+1 − 1) + (x2n+1 + 1) = (3)
2n+1
2x

(en supposant que c’est la troisième équation de votre document).


Noter que le symbole & marque les endroits d’alignement.
Pour une équation du même style mais non numérotée, on utilise l’environnement equation* plutôt
que equation.
Pour référencer l’équation en question, on utilise le code \label{la référence} et pour citer
ensuite cette référence dans le document, on utilise le code \eqref{la référence}.

3.1.3 Série d’équations


Pour écrire une série d’équations numérotées et alignées, on utilise l’environnement eqnarray.
Par exemple, le code :
\begin{eqnarray}
(a+b)+(a-b) & = & 2a \\
(a+b)^2+(a-b)^2 & = & 2(a^2+b^2) \\
(a+b)^3+(a-b)^3 & = & 2a(a^2+3b^2)
\end{eqnarray}
donne :

(a + b) + (a − b) = 2a (1)
2 2 2 2
(a + b) + (a − b) = 2(a + b ) (2)
(a + b)3 + (a − b)3 = 2a(a2 + 3b2 ) (3)

(en supposant que ces équations sont les trois premières équations de votre document).
Rappelons que le symbole & précise les endroits d’alignement.
Pour écrire une série d’équations alignées et non numérotées, on utilise l’environnement eqnarray*
plutôt que eqnarray.
Pour écrire une série d’équations alignées dont certaines sont numérotées et d’autres non, on
utilise l’environnement eqnarray et on précisera qu’une équation est non numérotée en ajoutant le
code \notag à sa fin. Par exemple, le code :
\begin{eqnarray}
(a+b)+(a-b) & = & 2a \\
(a+b)^2+(a-b)^2 & = & 2(a^2+b^2) \notag \\
(a+b)^3+(a-b)^3 & = & 2a(a^2+3b^2)
\end{eqnarray}

24 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 3. LATEX MATHÉMATIQUE

donne :

(a + b) + (a − b) = 2a (4)
2 2 2 2
(a + b) + (a − b) = 2(a + b )
3 3
(a + b) + (a − b) = 2a(a2 + 3b2 ) (5)

3.1.4 Equations numérotées par une numérotation de notre choix


Pour écrire une équation et la numéroter par une numérotation de notre choix, on utilise par
exemple l’environnement equation en précisant à la fin de l’équation sa numérotation par le code :
\tag{numéro ou symbole choisi}. Par exemple le code :
\begin{equation}
E = mc^2 . \tag{$I$}
\end{equation}
donne :
E = mc2 . (I)
Noter que les parenthèses de la numérotation se mettent par défaut.
Attention : Contrairement à \notag, le code \tag ne fonctionne par dans l’environnement eqnarray.
Il fonctionne cependant dans l’environnement align qu’on verra plus loin.

25 c http://farhi.bakir.free.fr/

CHAPITRE 4
LES COULEURS

4.1 Les couleurs prédéfinies


Pour pouvoir utiliser des couleurs en Latex, on doit charger à l’en-tête de notre document l’un
des deux packages suivants :

\usepackage{color} ou \usepackage{xcolor}

Ensuite, pour utiliser une couleur donnée, la commande est :

{\color{Nom de la couleur} Texte à colorer}


ou \textcolor{Nom de la couleur}{Texte à colorer}

Il est à savoir que le package color a 8 couleurs prédéfinies qui sont données dans le tableau suivant :

Nom de la couleur Nom en français la couleur en question


black Noir
white Blanc
red Rouge
green Vert
blue Bleu
cyan Bleu clair
magenta Magenta
yellow Jaune

Ainsi, pour écrire par exemple le texte “Omar va à l’école” en magenta, on utilise l’une des deux
commandes équivalentes suivantes :

{\color{magenta} Omar va à l’école}

ou

\textcolor{magenta}{Omar va à l’école}

De même, pour écrire le texte mathématique “∀x ∈ R : x2 + x + 1 ≥ 0” en rouge, on utilise la


commande :

{\color{red} $\forall x \in \mathbb{R} : x^2 + x + 1 \geq 0$}

26
Bakir FARHI CHAPITRE 4. LES COULEURS

4.2 Couleurs personnelles


On pourrait bien avoir envie d’utiliser d’autres couleurs autre les 8 couleurs prédéfinies précédentes.
Ceci est bien sûr possible en Latex et on a trois types de couleurs que voici :
1er type : il est défini par la syntaxe gray. Il contient toutes les couleurs grises possibles, du blanc
au noir. La syntaxe gray est suivi du taux de blanc dans la couleur voulue. Le taux 1 correspond à la
couleur blanche et le taux 0 correspond à la couleur noir. Par exemple, pour définir la couleur grise
de taux de blancheur 0.7, on insère à l’en-tête de notre document Latex la commande :
\definecolor{gris}{gray}{0.7}
(noter que le mot “gris” de la première accolade est de notre choix). Ensuite pour utiliser cette
couleur qu’on a nommé “gris”, on se sert de l’une des deux syntaxes équivalentes suivantes :
{\color{gris} Texte voulu} ou \textcolor{gris}{Texte voulu}
On obtient alors :
Texte voulu
Pour une utilisation unique, on pourra bien sûr utiliser notre couleur grise sans la définir préalablement,
et la syntaxe dans ce cas là est :
{\color[gray]{0.7} Texte voulu} ou \textcolor[gray]{0.7}{Texte voulu}
2ème type : il est défini par la syntaxe rgb. Il contient toutes les couleurs. Ces couleurs peuvent être
définies à partir de trois taux :
— Le taux de rouge (red) contenu dans la couleur
— Le taux de vert (green) contenu dans la couleur
— Le taux de bleu (blue) contenu dans la couleur.
D’où le nom rgb, comme red-green-blue. Voici un exemple de définition puis d’utilisation d’une
couleur de type rgb :
\definecolor{vertolive}{rgb}{0.5,0.5,0}
(bien entendu le nom “vertolive” est de notre choix). Cette définition est à insérer bien sûr à l’en-tête
du document Latex. Ensuite, pour utiliser cette couleur que l’on vient de définir, on se sert de l’une
des deux syntaxes équivalentes suivantes :
{\color{vertolive} Texte voulu} ou \textcolor{vertolive}{Texte voulu}
On obtient alors :
Texte voulu
Noter bien que ces trois taux sont tous des nombres décimaux compris entre 0 et 1 mais leurs somme
n’est pas obligatoirement égale à 1.
Comme pour le premier type, si notre utilisation pour cette couleur est unique ou rare, on pourra
l’utiliser sans la définir préalablement. Pour ce faire, on utilise l’une des deux syntaxes équivalentes
suivantes :
{\color[rgb]{0.5,0.5,0} Texte voulu} ou \textcolor[rgb]{0.5,0.5,0}{Texte voulu}
3ème type : il est défini par la syntaxe RGB. Ce codage (nommé RVB en français) contient toutes
les couleurs visibles par l’homme. Toute couleur est définie par trois entiers naturels, tous inférieurs
strictement à 256 = 28 . Ces nombres correspondent aux composantes du rouge, du vert et du bleu
dans une couleur donnée ; d’où le nom RGB (comme Red-Green-Blue). En fait, chaque composante
est codée sur 8 bits, ce qui donne 28 = 256 niveaux d’intensité pour chacune d’elles. Noter que
ce codage est le plus utilisé par les logiciels d’imagerie et c’est celui que nous préférons aussi pour
Latex. En voici quelques exemples faciles de couleurs représentées par ce codage :

27 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 4. LES COULEURS

— Le rouge est évidemment un RGB(255, 0, 0).


— Le vert est évidemment un RGB(0, 255, 0).
— Le bleu est évidemment un RGB(0, 0, 255).
— Le jaune est un RGB(255, 255, 0) (c’est donc un mélange du rouge et du vert avec une
même intensité, ce qui est bien connu).

— Le noir est un RGB(0, 0, 0).


— Le blanc est un RGB(255, 255, 255).
— Le cyan (ou le bleu clair) est un RGB(0, 255, 255).
— Le magenta est un RGB(255, 0, 255).
Pour chercher le codage RGB d’une couleur voulue, on peut consulter le site internet :
http://fr.wikipedia.org/wiki/Liste_de_couleurs .
Pour définir une couleur via son codage RGB, on utilise la commande :
\definecolor{Nom de votre choix}{RGB}{a,b,c}
où a, b et c sont des entiers naturels inférieurs strictement à 256 et désignant respectivement les
intensités du rouge, du vert et du bleu dans la couleur en question. Ensuite, pour utiliser cette
couleur afin de colorer par exemple un certain texte, on utilise comme avant l’une des deux syntaxes
équivalentes suivantes :
{\color{Le nom choisi pour votre couleur} Texte voulu}
ou \textcolor{Le nom choisi pour votre couleur}{Texte voulu}
Pour utiliser de façon temporaire une couleur définie par son code RGB, on peut le faire sans définir
préalablement cette couleur. La commande à utiliser est :
{\color[RGB]{a,b,c} Texte à colorer} ou \textcolor[RGB]{a,b,c}{Texte à colorer}
où a, b et c désignent respectivement les intensités du rouge, du vert et du bleu dans la couleur en
question.
4ème type : il est défini par la syntaxe cmyk. Ce type contient toutes les couleurs. Il est codé par 4
taux qui sont : le taux de la couleur cyan, le taux de la couleur magenta, le taux de la couleur jaune
(yellow) et le taux de la couleur noire. La définition d’une couleur via le codage cmyk se fait par la
commande :
\definecolor{Nom de votre choix}{cmyk}{a,b,c,d}
où a, b, c et d sont les nombres décimaux compris entre 0 et 1 (mais de somme non forcément
égale à 1) représentant respectivement les taux du cyan, du magenta, du jaune et du noire dans la
couleur définie.
Pour utiliser une couleur sans la définir préalablement, on utilise l’une des deux commandes équi-
valentes suivantes :
{\color[cmyk]{a,b,c,d} Texte à colorer}
ou \textcolor[cmyk]{a,b,c,d}{Texte à colorer}
où a, b, c et d sont les taux respectifs du cyan, du magenta, du jaune et du noire dans la couleur
utilisée.
Une remarque supplémentaire : On peut obtenir facilement le code rgb du code RGB et vice
versa. Pour ce faire, on a la règle :
A B C
RGB(A, B, C) = rgb(a, b, c), avec a = 256
, b= 256
, c= 256
.

28 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 4. LES COULEURS

4.3 Pour une liste exhaustive de couleurs


Pour avoir à sa disposition une liste plus exhaustive de couleurs (prédéfinies), on pourra utiliser
le package xcolor avec l’une de ses trois différentes options : dvipsnames (qui charge 68 couleurs
différentes), svgnames (qui charge 151 couleurs différentes) et x11names (qui charge 317 couleurs
différentes !).
Exemple : En insérant à l’en-tête de notre document Latex le code :

\usepackage[x11names]{xcolor}

puis, au niveau du corps du même document, la commande :

\textcolor{Red3}{Essai} % Red3 est l’une des couleurs chargées par l’option


x11names du package xcolor

on obtient ceci :

Essai

Les différentes couleurs que charge l’option dvipsnames du package xcolor sont données dans un
tableau à la page suivante. Pour les couleurs que nous offrent les deux autres options svgnames et
x11names, on invite le lecteur à consulter l’internet (il les obtient immédiatement par une simple
recherche google).

4.4 Comment utiliser rapidement avec WinEdt une couleur :


Sous WinEdt, il existe une façon simple d’utiliser ou de définir une couleur sans perdre son
temps à chercher son code. En cliquant sur l’icône se trouvant juste au dessous de I (de l’Italique),
une palette de couleurs s’ouvre et il suffit de cliquer sur une couleur de notre choix pour que sa
commande s’affiche sur le texte avec son code rgb. A droite de la palette, il y a également des cases
à remplir par les intensités en code RGB d’une couleur à définir et voir immédiatement cette couleur.

29 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 4. LES COULEURS

4.5 Les couleurs générées par l’option dvipsnames du pa-


ckage xcolor

Code de la couleur La couleur en question Code de la couleur La couleur en question


Apricot OliveGreen
Aquamarine OrangeRed
Bittersweet Orange
Black Orchid
BlueGreen Peach
BlueViolet Periwinkle
Blue PineGreen
BrickRed Plum
Brown ProcessBlue
BurntOrange Purple
CadetBlue RawSienna
CarnationPink RedOrange
Cerulean RedViolet
CornflowerBlue Red
Cyan Rhodamine
Dandelion RoyalBlue
DarkOrchid RoyalPurple
Emerald RubineRed
ForestGreen Salmon
Fuchsia SeaGreen
Goldenrod Sepia
Gray SkyBlue
GreenYellow SpringGreen
Green Tan
JungleGreen TealBlue
Lavender Thistle
LimeGreen Turquoise
Magenta VioletRed
Mahogany Violet
Maroon White
Melon WildStrawberry
MidnightBlue YellowGreen
Mulberry YellowOrange
NavyBlue Yellow

30 c http://farhi.bakir.free.fr/

CHAPITRE 5
LES BOITES

5.1 Comment fabriquer des boites sans package particulier


5.1.1 Boites contenant un texte d’une ligne
En LATEX, pour fabriquer des boites contenant du texte, on utilise les commandes \fbox et
\framebox. Ces deux commandes ne nécessitent aucun package particulier. Les textes qu’on mettra
à l’intérieur de ces boites doivent tenir en une seule ligne 1 .
La commande \framebox comporte deux arguments optionnels. Le premier sert à fixer la largeur
de la boite et le second sert à choisir l’alignement voulu au texte de la boite (alignement à gauche
(l), alignement à droite (r), centralisation (c), répartition uniforme (s)).
Exemples :
1. Le code : \fbox{Une belle boite} donne :
Une belle boite
2. Le code : \framebox[6cm][c]{Une belle boite} donne :
Une belle boite
• L’épaisseur de la bordure est spécifiée par le code : \setlength{\fboxrule}{épaisseur voulue}.
Exemple : Le code :
\setlength{\fboxrule}{2pt}
\framebox[8cm][c]{Rien de spécial!}
donne :
Rien de spécial !
• Les différents types d’alignement sont :
l (alignement à gauche)
r (alignement à droite)
c (centralisation)
s (On répartit les mots du texte uniformément sur la longueur de la boite).
Exemple : Le code : \framebox[6cm][s]{Une belle boite} donne :
Une belle boite
Remarque : La commande \boxed est réservée à mettre dans une boite un texte mathématique
(elle doit être donc mise entre deux dollars).
1. Voir plus loin pour ce qui concerne les textes comportant plusieurs lignes.

31
Bakir FARHI CHAPITRE 5. LES BOITES

Un exemple important et utile :


Pour fabriquer une boite de largeur égale à 3 fois la largeur du texte qu’elle contiendra, lequel sera
centré, on utilise le code \framebox[3\width]{le texte voulu}.
Par exemple, le code : \framebox[3\width]{Une belle boite} donne :
Une belle boite
• Pour modifier l’espace entre le contenu de la boite et sa bordure, on utilise la commande \fboxsep.
Par exemple, le code :

\setlength{\fboxsep}{1cm}
\fbox{Une belle boite}

donne :

Une belle boite

5.1.2 Boites contenant un paragraphe


Pour insérer tout un paragraphe dans une boite (avec la commande \fbox), on doit utiliser en
plus la commande \parbox dont le premier paramètre est la largeur de la boite et le second est
son contenu. Pour contrôler l’alignement du texte de la boite, on utilise les commandes d’aligne-
ment : \flushleft (alignement à gauche), \flushright (alignement à droite) et \centering
(centralisation).
Exemple : Le code 2

\fbox{\parbox{8cm}{\flushleft
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait ^etre remplacée par quelque autre
type d’intégrale, tout à la fois plus souple, plus général et mieux
adapté au passage à la limite. Les tentatives les plus notables sont
dues à C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier
obtint la construction qui s’avéra la plus réussie.
}
}

donne :

Vers la fin du 19 ème siècle, beaucoup de


mathématiciens comprirent que l’intégrale de
Riemann devait être remplacée par quelque
autre type d’intégrale, tout à la fois plus
souple, plus général et mieux adapté au
passage à la limite. Les tentatives les plus
notables sont dues à C. Jordan, E. Borel,
W.H. Young et H. Lebesgue. Ce dernier obtint
la construction qui s’avéra la plus réussie.

2. Le texte de la boite est extrait du livre de Walter Rudin, qui s’intitule ≪ Analyse réelle et complexe ≫ (traduit
en français par Jean Dhombres).

32 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

5.2 Boites avec le package fancybox


5.2.1 Boites contenant un texte d’une ligne
Le package fancybox (qu’on chargera à l’en-tête du fichier tex à travers la commande
\usepackage{fancybox}) permet d’obtenir des boites à plusieurs types de bordures. Les com-
mandes à utiliser sont :
• \doublebox (pour les boites à doubles bordures)
• \ovalbox (pour les boites à bordures ovales)
• \Ovalbox (pour les boites à bordures ovales et épaisses)
• \shadowbox (pour les boites à ombre).
Exemples : Les codes :
\doublebox{double bordure}, \ovalbox{boite ovale},
\Ovalbox{boite ovale à bordure épaisse} et \shadowbox{boite à ombre} donnent res-
pectivement :
✞ ☎✞ ☎ boite à ombre
✝ ✆
double bordure , ✝boite ovale ✆, boite ovale à bordure épaisse et .

Quelques options supplémentaires pour les commandes \ovalbox, \Ovalbox et \shadowbox :


• Pour les commandes \ovalbox et \Ovalbox, les rondeurs des coins arrondis peuvent être modifiées
par la commande \cornersize{rondeur voulue}.
• Pour la commande \shadowbox, la taille de l’ombre peut être modifiée par la commande
\setlength{\shadowsize}{taille voulue}.
Exemples : Le code :

\cornersize{1}
\ovalbox{coins arrondis}

donne :
☛ ✟
coins
✡ arrondis ✠
Et le code :

\setlength{\shadowsize}{8pt}
\shadowbox{ombre}

donne :
ombre
.

5.2.2 Boites contenant un paragraphe


Les commandes \doublebox, \ovalbox, \Ovalbox et \shadowbox telles qu’on les a utilisé
précédemment ne peuvent fabriquer que des boites comportant une seule ligne. Pour qu’elles puissent
fabriquer des boites comportant tout un paragraphe, il faudrait les combiner avec la commande
\parbox ou avec l’environnement minipage.
Exemples :
1. Le code :
\doublebox{\parbox{6cm}{\flushleft
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait ^etre remplacée par quelque autre

33 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

type d’intégrale, tout à la fois plus souple, plus général et mieux


adapté au passage à la limite. Les tentatives les plus notables sont
dues à C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier
obtint la construction qui s’avéra la plus réussie.
}
}
donne :

Vers la fin du 19 ème siècle,


beaucoup de mathématiciens
comprirent que l’intégrale de
Riemann devait être remplacée par
quelque autre type d’intégrale,
tout à la fois plus souple, plus
général et mieux adapté au
passage à la limite. Les tentatives
les plus notables sont dues à C.
Jordan, E. Borel, W.H. Young et
H. Lebesgue. Ce dernier obtint la
construction qui s’avéra la plus
réussie.

2. Le code :
\Ovalbox{
\begin{minipage}{0.75\textwidth}
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait ^etre remplacée par quelque autre
type d’intégrale, tout à la fois plus souple, plus général et mieux
adapté au passage à la limite. Les tentatives les plus notables sont
dues à C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier
obtint la construction qui s’avéra la plus réussie.
\end{minipage}
}

✬ ✩
donne :
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait être remplacée par quelque autre type
d’intégrale, tout à la fois plus souple, plus général et mieux adapté au pas-
sage à la limite. Les tentatives les plus notables sont dues à C. Jordan, E.
Borel, W.H. Young et H. Lebesgue. Ce dernier obtint la construction qui
✫ ✪
s’avéra la plus réussie.

5.3 Boites de couleurs


Le package graphicx propose les commandes \colorbox et \fcolorbox qui permettent d’avoir
des boites de couleurs (fond et bordure). Ces deux commandes fonctionnent comme ceci :
1) Pour \colorbox :
Elle permet d’avoir une boite sans bordure avec une couleur de fond voulue.
Exemple : Le code : \colorbox{yellow}{Boite jaune} donne :
Boite jaune .

34 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

Là aussi, pour avoir une boite de couleur (sans bordure) comportant tout un paragraphe, il faudrait
combiner cette commande avec la commande \parbox ou avec l’environnement minipage, comme
c’est déjà expliqué auparavant.
2) Pour \fcolorbox :
Elle permet de créer une boite dont la bordure et le fond prennent des couleurs voulues.
Exemple : Le code : \fcolorbox{red}{yellow}{Démonstration} donne :
Démonstration .
Encore une fois, pour inclure tout un paragraphe dans une boite avec la commande \fcolorbox, il
faudrait combiner cette commande soit avec la commande \parbox ou bien avec l’environnement
minipage, comme c’est déjà expliqué auparavant.
D’autres exemples où les couleurs choisies sont définies à l’aide des codes gray, rgb ou
RGB :
Le code :

\fcolorbox[gray]{0}{0.9}{\parbox{7cm}{\flushleft
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait ^etre remplacée par quelque autre
type d’intégrale, tout à la fois plus souple, plus général et mieux
adapté au passage à la limite. Les tentatives les plus notables sont
dues à C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier
obtint la construction qui s’avéra la plus réussie.
}
}

donne :

Vers la fin du 19 ème siècle, beaucoup


de mathématiciens comprirent que
l’intégrale de Riemann devait être
remplacée par quelque autre type
d’intégrale, tout à la fois plus souple,
plus général et mieux adapté au passage
à la limite. Les tentatives les plus
notables sont dues à C. Jordan, E.
Borel, W.H. Young et H. Lebesgue. Ce
dernier obtint la construction qui s’avéra
la plus réussie.
Et le code :

\setlength{\fboxrule}{2pt}
\fcolorbox[RGB]{112,0,223}{255,128,0}{
\begin{minipage}{0.75\textwidth}
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait ^etre remplacée par quelque autre
type d’intégrale, tout à la fois plus souple, plus général et mieux
adapté au passage à la limite. Les tentatives les plus notables sont
dues à C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier
obtint la construction qui s’avéra la plus réussie.
\end{minipage}
}

35 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

donne :
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait être remplacée par quelque autre type
d’intégrale, tout à la fois plus souple, plus général et mieux adapté au pas-
sage à la limite. Les tentatives les plus notables sont dues à C. Jordan, E.
Borel, W.H. Young et H. Lebesgue. Ce dernier obtint la construction qui
s’avéra la plus réussie.

5.4 Boites à titre


On va maintenant découvrir comment fabriquer une boite avec bordure et un titre qui se situe par
dessus de cette bordure. Pour ce faire, on utilise la commande \boxput qui permet de superposer
deux boites.
La commande \boxput prend deux boites en paramètres et place la première boite derrière la
seconde. La commande \boxput* joue le même rôle mais elle place la seconde boite derrière la
première.
Enfin, on doit spécifier deux coordonnées qui indiquent où la première boite est placée par rapport
à la seconde. Par exemple :
— Les coordonnées (0,0) indiquent que la première boite est centrée (horizontalement et verticale-
ment) par rapport à la seconde.
— Les coordonnées (0,1) indiquent que la première boite est centrée (horizontalement) et se trouve
en haut par rapport à la seconde.
— Les coordonnées (1,0) indiquent que la première boite se trouve à droite et elle est centrée (ver-
ticalement) par rapport à la seconde.
— Les coordonnées (-1,-1) indiquent que la première boite se trouve à gauche et en bas de la
seconde.
En tout, on a 9 cas possibles pour les coordonnées à spécifier, puisque ces coordonnées appartiennent
à l’ensemble :
{(x, y) : x ∈ {−1, 0, 1} et y ∈ {−1, 0, 1}}.
La syntaxe des commandes \boxput (resp. \boxput*) est :
\boxput(x,y){1ère boite}{2nde boite} (resp. \boxput*(x,y){1ère boite}{2nde boite}).
Exemple :
On veut fabriquer une boite sans bordure, de fond gris, contenant un texte qui se trouve séparé de la
frontière de 10 points et on veut que cette boite porte un titre qui se trouvera en haut et au centre
(en plus, écrit en gras). Pour ce faire, on utilisera la commande \boxput* dans laquelle la première
boite sera juste le titre (qui va être considéré comme une boite sans bordure, de fond blanc) et la
seconde boite sera la boite à texte, de fond gris, en question. Le code complet est le suivant :
\boxput*(0,1){
\colorbox{white}{\bf Les intégrales de Lebesgue}
}{
\setlength{\fboxsep}{10pt}
\colorbox[gray]{0.7}{\begin{minipage}{0.8\textwidth}
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent
que l’intégrale de Riemann devait ^etre remplacée par quelque autre
type d’intégrale, tout à la fois plus souple, plus général et mieux
adapté au passage à la limite. Les tentatives les plus notables sont
dues à C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier
obtint la construction qui s’avéra la plus réussie.
\end{minipage}}
}

36 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

Ce qui donne :
Les intégrales de Lebesgue
Vers la fin du 19 ème siècle, beaucoup de mathématiciens comprirent que
l’intégrale de Riemann devait être remplacée par quelque autre type d’intégrale,
tout à la fois plus souple, plus général et mieux adapté au passage à la limite.
Les tentatives les plus notables sont dues à C. Jordan, E. Borel, W.H. Young et
H. Lebesgue. Ce dernier obtint la construction qui s’avéra la plus réussie.

5.5 Utilisation des boites pour empêcher certaines césures


LATEX
LATEX fait souvent des césures indésirables pour ne pas dépasser la ligne. Pour empêcher LATEX
de commettre ces césures, quitte à dépasser la ligne s’il le faut, les spécialistes utilisent des boites
sans bordure et sans couleur. L’idée consiste à mettre le mot (ou le texte) à ne pas couper dans une
boite (sans bordure et sans couleur). LATEX ne saura jamais découper une boite ; ce qui fait que le
mot (ou le texte) de la boite restera toujours sur une même ligne.
Les codes permettant de créer des boites sans bordure et sans couleur sont de deux types : \mbox
et \makebox.
• Pour \mbox, la syntaxe est simple :

\mbox{le mot ou le texte à ne pas découper}

• Pour \makebox, c’est la même syntaxe mais elle met à notre disposition deux options facultatives :
la première pour spécifier la longueur de la boite et la seconde pour préciser l’alignement horizontal
du texte à l’intérieur de la boite alignement à gauche
 (l), alignement à droite (r), centralisation
(c) ou répartition uniforme des mots du texte (s) . Ainsi, le code :

\mbox{salut tout le monde}\\


\makebox[8cm][l]{salut tout le monde}\\
\makebox[8cm][r]{salut tout le monde}\\
\makebox[8cm][c]{salut tout le monde}\\
\makebox[8cm][s]{salut tout le monde}

donne :
salut tout le monde
salut tout le monde
salut tout le monde
salut tout le monde
salut tout le monde
Exemple d’utilisation d’une boite pour éviter une césure :
La phrase :

Pour Gauss et pour beaucoup de mathématiciens du monde, la théorie des nombres


est incontestablement la reine des mathématiques.

(ainsi tapée) donne après compilation :


Pour Gauss et pour beaucoup de mathématiciens du monde, la théorie des nombres est incontesta-
blement la reine des mathématiques.
où l’on constate que le mot “incontestablement” est découpé en incontesta-blement. Pour éviter
cette coupure, on devra taper la phrase précédente comme ceci :

37 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

Pour Gauss et pour beaucoup de mathématiciens du monde, la théorie des nombres


est \mbox{incontestablement} la reine des mathématiques.

Ce qui donne (après compilation) :


Pour Gauss et pour beaucoup de mathématiciens du monde, la théorie des nombres est incontestablement
la reine des mathématiques.
(Constater que le mot “incontestablement” n’est plus découpé en deux).

5.6 Le package framed


Le package framed, qu’on chargera via la commande \usepackage{framed}, laquelle on mettra
à l’en-tête du document LATEX, propose de nouveaux environnements permettant de créer des boites
dont le contenu pourrait être un paragraphe (c’est-à-dire un texte comportant plusieurs lignes) et
ceci sans passer par la commande \parbox ni par l’environnement minipage ; ce qui est donc très
pratique. Les boites créées par ces environnements peuvent contenir aussi plusieurs pages de texte !

5.6.1 Les différents environnements du package framed


Les plus importants environnements du package framed sont :
1. L’environnement framed :
Cet environnement crée une boite simple pouvant contenir un paragraphe de n’importe quelle taille
(même s’il prend plusieurs pages !). La boite qu’il crée est du même type que celle que crée la
commande \fbox (vue précédemment).
Exemple 1 : Le code 3 :

\begin{framed}
Je r^
eve d’un jour o\‘u l’égoı̈sme ne régnera plus dans
les sciences, o\‘u on s’associera pour étudier, au lieu
d’envoyer aux académiciens des plis cachetés, on
s’empressera de publier ses moindres observations
pour peu qu’elles soient nouvelles, et on ajoutera \og je
ne sais pas le reste \fg.
\end{framed}

donne :

Je rêve d’un jour où l’égoı̈sme ne régnera plus dans les sciences, où on s’associera pour
étudier, au lieu d’envoyer aux académiciens des plis cachetés, on s’empressera de publier ses
moindres observations pour peu qu’elles soient nouvelles, et on ajoutera ≪ je ne sais pas le
reste ≫.

Pour modifier l’épaisseur de la bordure créée par cet environnement, on utilise la commande :
\FrameRule=épaisseur voulu, qu’on mettra juste avant l’environnement framed. Et pour modi-
fier l’espace séparant le texte de la boite de sa bordure, on utilise la commande :
\FrameSep=espace voulu, qu’on mettra aussi juste avant l’environnement framed.
Exemple 2 : Le code :
3. Ce texte fut écrit par Evariste Galois (mathématicien français du 19ème siècle).

38 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

\FrameRule=2pt
\FrameSep=1cm
\begin{framed}
Je r^
eve d’un jour o\‘u l’égoı̈sme ne régnera plus dans
les sciences, o\‘u on s’associera pour étudier, au lieu
d’envoyer aux académiciens des plis cachetés, on
s’empressera de publier ses moindres observations
pour peu qu’elles soient nouvelles, et on ajoutera \og je
ne sais pas le reste \fg.
\end{framed}

donne :

Je rêve d’un jour où l’égoı̈sme ne régnera plus dans les sciences, où on s’associera
pour étudier, au lieu d’envoyer aux académiciens des plis cachetés, on s’empressera de
publier ses moindres observations pour peu qu’elles soient nouvelles, et on ajoutera ≪ je
ne sais pas le reste ≫.

2. L’environnement oframed :
Sa seule différence avec l’environnement framed est le fait qu’il laisse ouvertes d’en bas (resp. d’en
haut) les boites qu’il construit en chaque page jusqu’à l’avant dernière (resp. sauf la première).
Autrement dit, les boites de chaque page contenant le texte de l’environnement oframed sont
ouvertes d’en haut et d’en bas, sauf la première qui est ouverte juste d’en bas et la dernière qui est
ouverte juste d’en haut. On comprend bien donc que cet environnement est fait pour construire des
boites contenant un texte très long qui se tient en plusieurs pages.
3. L’environnement shaded :
Cet environnement est l’analogue de la commande \colorbox. Il crée une boite de couleur sans
bordure pouvant contenir un paragraphe de n’importe quelle taille (même s’il prend plusieurs pages).
Avant d’utiliser l’environnement shaded, on doit obligatoirement lui préciser la couleur voulue du
fond de la boite (voir les deux exemples ci-dessous).
Exemple 1 : Le code :

\definecolor{shadecolor}{gray}{0.9}
\begin{shaded}
Je r^
eve d’un jour o\‘u l’égoı̈sme ne régnera plus dans
les sciences, o\‘u on s’associera pour étudier, au lieu
d’envoyer aux académiciens des plis cachetés, on
s’empressera de publier ses moindres observations
pour peu qu’elles soient nouvelles, et on ajoutera \og je
ne sais pas le reste \fg.
\end{shaded}

donne :

39 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

Je rêve d’un jour où l’égoı̈sme ne régnera plus dans les sciences, où on s’associera pour étudier,
au lieu d’envoyer aux académiciens des plis cachetés, on s’empressera de publier ses moindres ob-
servations pour peu qu’elles soient nouvelles, et on ajoutera ≪ je ne sais pas le reste ≫.

Exemple 2 : Le code :

\definecolor{shadecolor}{rgb}{1,1,0}
\begin{shaded}
Je r^
eve d’un jour o\‘u l’égoı̈sme ne régnera plus dans
les sciences, o\‘u on s’associera pour étudier, au lieu
d’envoyer aux académiciens des plis cachetés, on
s’empressera de publier ses moindres observations
pour peu qu’elles soient nouvelles, et on ajoutera \og je
ne sais pas le reste \fg.
\end{shaded}

donne :

Je rêve d’un jour où l’égoı̈sme ne régnera plus dans les sciences, où on s’associera pour étudier,
au lieu d’envoyer aux académiciens des plis cachetés, on s’empressera de publier ses moindres ob-
servations pour peu qu’elles soient nouvelles, et on ajoutera ≪ je ne sais pas le reste ≫.

4. L’environnement leftbar :
L’environnement leftbar permet de générer un trait vertical dans la marge de gauche du texte qu’il
contient.
Exemple : Le code :

\begin{leftbar}
Je r^
eve d’un jour o\‘u l’égoı̈sme ne régnera plus dans
les sciences, o\‘u on s’associera pour étudier, au lieu
d’envoyer aux académiciens des plis cachetés, on
s’empressera de publier ses moindres observations
pour peu qu’elles soient nouvelles, et on ajoutera \og je
ne sais pas le reste \fg.
\end{leftbar}

donne :

Je rêve d’un jour où l’égoı̈sme ne régnera plus dans les sciences, où on s’associera pour étudier,
au lieu d’envoyer aux académiciens des plis cachetés, on s’empressera de publier ses moindres
observations pour peu qu’elles soient nouvelles, et on ajoutera ≪ je ne sais pas le reste ≫.

5.6.2 Comment redéfinir l’environnement leftbar pour pouvoir modifier


certaines de ses mesures et de ses couleurs
L’environnement leftbar tel qu’il est défini ci-dessus nous laisse guère le choix sur ses mesures
(comme l’épaisseur du trait vertical et l’espace séparant ce trait du texte de l’environnement) et
ses couleurs (comme la couleur du trait vertical et la couleur de fond du texte de l’environnement).
Pour pouvoir modifier ces mesures et ces couleurs, on a créé un petit programme LATEX qu’on devrait
mettre au préambule de notre document (avant \begin{document}). Ce programme est le suivant :

40 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

\newlength{\leftbarwidth}
\newlength{\leftbarsep}
\newcommand*{\leftbarcolorcmd}{\color{leftbarcolor}}
\renewenvironment{leftbar}{
\def\FrameCommand{{\leftbarcolorcmd{
\vrule width \leftbarwidth \hspace{\leftbarsep}}}
\fboxsep=\FrameSep\colorbox{colorboxcolor}
}
\MakeFramed {\advance \hsize-\width \FrameRestore}
}{
\endMakeFramed}

Attention : Ne pas oublier de charger les packages framed et color (ou xcolor).
Pour construire après, dans le corps de notre document, un texte avec une barre verticale à sa gauche
tel que :
— L’épaisseur de la barre verticale soit de 1 pt,
— L’espace qui sépare la barre verticale du texte soit de 2 pt (en plus des 4 pt qui sont laissées
par défaut),
— La couleur de la barre verticale soit rouge,
— La couleur de fond du texte soit jaune ;
on tape 4 :

\setlength{\leftbarwidth}{1pt}
\setlength{\leftbarsep}{2pt}
\colorlet{leftbarcolor}{red}
\colorlet{colorboxcolor}{yellow}
\begin{leftbar}\noindent
Beaucoup de rois et de princes du monde islamique médiéval ont
créé dans leurs pays des conditions favorables pour le travail
des mathématiciens et astronomes. Mais on trouve peu d’exemples
d’un roi qui s’est occupé lui-m^ eme de l’étude des sciences mathématiques.
Un cas bien connu est celui d’Ulugh Beg, roi à Samarcande au commencement
du quinzième siècle, qui a fondé un observatoire astronomique, dans
lequel il a employé plus de soixante mathématiciens et astronomes, et
qui a lui-m^ eme participé activement aux discussions des sujets mathématiques
et astronomiques. Moins connu jusqu’à présent était le cas des deux
{\sc Bani Hud}, rois de Saragosse, en Espagne: {\sc Ahmad Al-Muqtadir},
qui régna de 1041 jusqu’à 1081, et son fils et successeur {\sc Al-Mutaman},
qui mourut en 1085.
\end{leftbar}

Ce qui donne :

4. Ce texte est extrait de l’article de J.P. Hogendijk, intitulé : “Le Roi-Géomètre al-Mutaman Ibn Hud et
son livre de la perfection (Kitab al-Istikmal)”.

41 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 5. LES BOITES

Beaucoup de rois et de princes du monde islamique médiéval ont


créé dans leurs pays des conditions favorables pour le travail des
mathématiciens et astronomes. Mais on trouve peu d’exemples d’un
roi qui s’est occupé lui-même de l’étude des sciences mathématiques.
Un cas bien connu est celui d’Ulugh Beg, roi à Samarcande au com-
mencement du quinzième siècle, qui a fondé un observatoire astrono-
mique, dans leguel il a employé plus de soixante mathématiciens et
astronomes, et qui a lui-même participé activement aux discussions des
sujets mathématiques et astronomiques. Moins connu jusqu’à présent
était le cas des deux Bani Hud, rois de Saragosse, en Espagne : Ah-
mad Al-Muqtadir, qui régna de 1041 jusqu’à 1081, et son fils et
successeur Al-Mutaman, qui mourut en 1085.

Une dernière remarque : Pour ne laisser aucun espace entre la barre verticale et le texte en
question, utiliser le code \setlength{\leftbarsep}{-4pt}.

42 c http://farhi.bakir.free.fr/

CHAPITRE 6
LES FIGURES

6.1 Eléments de base


Pour insérer une figure (ou une image) en Latex, on a besoin du package :

\usepackage{graphicx}

qu’il faudrait donc charger préalablement à l’en-tête de votre document Latex.


Pour insérer ensuite une figure à l’intérieur du document, on utilise l’environnement figure. Si par
exemple le nom de notre figure est khawarizmi.eps, le code d’insertion de celle-ci serait :

\begin{figure}
\centering
\includegraphics{khawarizmi.eps}
\caption{Le grand mathématicien arabe al-Khawarizmi}
\label{kha}
\end{figure}

Explication du code :
1. Les commandes \begin{figure} et \end{figure} définissent l’environnement figure. Cet en-
vironnement demande à Latex de placer la figure en question dans l’endroit le plus convenable.
Pour placer notre figure dans un endroit de notre choix (même s’il n’est pas convenable), on doit
ajouter à \begin{figure} l’une des lettres : h, t, b ou p qu’on mettra entre deux crochets comme
ceci :

\begin{figure}[h]

La signification de chacune des lettres h, t, b et p est donnée par ce qui suit :


• h (comme here) permet de placer la figure là où l’on est arrivé dans le tapement de notre
document.
• t (comme top) permet de placer la figure tout en haut de la page courante du document.
• b (comme bottom) permet de placer la figure tout en bas de la page courante du document.
• p (comme page) permet de placer la figure sur une page séparée (après la page courante).
Pour insister sur son choix de placement de sa figure, on ajoute un point d’exclamation juste avant
l’une des lettres h, t, b ou p, comme ceci :

\begin{figure}[!h]

43
Bakir FARHI CHAPITRE 6. LES FIGURES

2. La commande \centering permet juste de centrer la figure.


3. La commande \includegraphics est celle qui insère la figure souhaitée (dans notre exemple, il
s’agit de la figure khawarizmi.eps).
Noter que la figure à insérer doit se trouver dans le même répertoire que le document Latex en
question. Pour une gestion plus aisée et plus professionnelle des figures nécessaires à un document
Latex, on conseille de mettre toutes ces figures dans un même répertoire que l’on met (obligatoire-
ment) dans le même endroit où se trouve notre document Latex. Dans notre exemple précédent, si
notre figure khawarizmi.eps se trouvait dans un répertoire nommé Rep, on aurait informer Latex de
ce répertoire par le code :
\includegraphics{Rep/khawarizmi.eps}
4. La commande \caption associe une légende (c’est-à-dire un titre) à notre figure. Cette légende
apparaı̂tra, selon le placement du code \caption, en dessus ou en dessous de la figure en question.
Pour notre exemple précédent, on obtient (après compilation) ce qui suit :

Figure 6.1 – Le grand mathématicien arabe al-Khawarizmi

Noter que la numérotation des figures est automatique et est toujours précédée du nom Fig. par
défaut ; on verra plus loin comment éliminer ou changer ce nom par un autre. Noter aussi que le
placement de la légende d’une figure est (par défaut) centré par rapport à la largeur de la figure.
5. Finalement, la commande \label a pour rôle de référencer la figure en lui attribuant un mot clé.
Dans notre cas le mot clé est kha. Pour se référer alors à cette figure dans notre document Latex,
on écrira par exemple :
...(voir la figure \ref{kha})...
Ce qui donnera dans les fichiers dvi et pdf :
. . .(voir la figure 6.1) . . .
Pour se référer à la page où se trouve notre figure, on écrira dans notre document Latex :
...(voir la figure de la page \pageref{kha})...
Ce qui donnera :
. . .(voir la figure de la page 44) . . .
Remarque : On n’est pas obligé de préciser l’extension (ici eps) de la figure à insérer dans un
document Latex. On aurait pu écrire simplement dans l’exemple précédent :
\includegraphics{khawarizmi}

44 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 6. LES FIGURES

6.2 Comment modifier la taille d’une figure à insérer


La commande \includegraphics contient des arguments qui permettent de modifier la taille de
sa figure d’origine. Les plus utilisés parmi ces arguments sont :
• width (qui veut dire largeur en anglais) : Il sert à spécifier la largeur que l’on souhaite adapter
à sa figure en l’agrandissant ou on la réduisant. Il est donné en cm, mm ou pt.
• height (qui veut dire hauteur en anglais) : Il sert à spécifier la hauteur que l’on souhaite
adapter à sa figure. Il est donné en cm, mm ou pt.
• scale (qui veut dire échelle en anglais) : Il sert à spécifier l’échelle que l’on souhaite adapter
à sa figure (par exemple égale à 0.5 si l’on souhaite réduire à moitié les dimensions de sa
figure ; égale à 2 si l’on souhaite les doubler).
• angle : Il sert à spécifier l’angle de rotation (dans le sens contraire à l’aiguille d’une montre)
que l’on souhaite faire subir à sa figure. Il est donné en degré.
Ces arguments doivent être spécifiés entre crochets juste après la commande \includegraphics.
Si l’on souhaite par exemple que notre figure khawarizmi.eps soit réduite à une largeur de 3 cm et
une hauteur de 6 cm, on écrira le code :

\includegraphics[width=3cm,height=6cm]{khawarizmi}

Si l’on souhaite maintenant que notre figure prenne par exemple comme largeur la moitié de la
largeur d’une ligne (complète) de texte dans notre document et qu’elle prenne comme hauteur 3/10
de la hauteur d’une page (en texte) de notre document, on écrira le code :

\includegraphics[width=0.5\textwidth,height=0.3\textheight]{khawarizmi}

La spécification width=0.5\textwidth pourrait s’avérer très utile pour écrire un texte suivi, à son
coté droit, d’une figure (graphique, image ou photo) comme c’est le cas par exemple d’un CV avec
photo. On reviendra là dessus un peu plus loin.
Si l’on souhaite maintenant que notre figure se réduise à la moitié de ses dimensions réelles, on
écrira le code :

\includegraphics[scale=0.5]{khawarizmi}

Noter que dans \includegraphics, il est possible de ne mettre aucun argument (comme on l’a
déjà fait tout au début de ce chapitre), comme il est aussi possible d’en mettre un ou plusieurs.

6.3 Comment mettre sa figure dans un cadre


Pour qu’une figure insérée apparaisse dans un cadre, on utilisera la commande \fbox. Pour notre
exemple, on devra écrire le code :

\fbox{\includegraphics[...]{khawarizmi}}

On peut aussi mettre notre figure dans un cadre spécifique. Pour notre exemple, si l’on souhaite
encadrer notre figure khawarizmi.eps dans un cadre qui sera espacé d’elle de 1 cm et aura une
bordure d’épaisseur 2 pt, on tapera le code :

\setlength\fboxsep{1cm}
\setlength\fboxrule{2pt}
\fbox{\includegraphics[...]{khawarizmi}}

Ce qui donnera ceci :

45 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 6. LES FIGURES

Figure 6.2 – Le grand mathématicien arabe al-Khawarizmi

(Bien entendu, on a réduit les dimensions de notre figure d’origine en utilisant les commandes citées
auparavant).

6.4 Insertion de figures d’extension autre que eps


• Si l’on compile avec LATEX, le seul format de figures accepté est le format eps (Encapsulated
PostScript). Le format eps est défini par le système Adobe ; c’est un format vectoriel 1 de très haute
qualité, ce qui donne la facilité à Latex de le redimensionner comme on le souhaite sans que la figure
perde sa qualité.
Plusieurs logiciels convertissent facilement les formats jpg, png ou pdf en eps. Par exemple Gsview
convertit les format pdf et ps en eps ; le logiciel professionnel Adobe Illustrator convertit presque
n’importe quel format d’image au format eps.
Pour convertir une image d’extension jpg ou png au format eps sans utiliser le logiciel commercial
Adobe Illustrator, on peut procéder comme suit :
— On convertit d’abord l’image en question au format pdf en utilisant par exemple le logiciel gratuit
PDFill ou en utilisant simplement une imprimante virtuelle telle pdf 995.
— Ensuite, on utilise Gsview pour convertir l’image pdf ainsi obtenue au format eps.
• Si l’on compile avec PDFLATEX pour obtenir directement le fichier pdf de notre document, on a le
choix sur le format de la figure à insérer : Les formats jpg, png et pdf sont acceptés. Le format jpg est
particulièrement idéal pour les photos. En revanche, on ne peut pas insérer une figure de format eps.
Noter aussi que la mention de l’extension de la figure à insérer via la commande \includegraphics
n’est pas obligatoire.
• Lorsqu’un fichier pdf contient plusieurs pages et que l’on souhaite insérer précisément comme
figure dans un document Latex, la page numéro n de ce fichier, on indiquera ceci à Latex par
l’argument “page=n” qu’on ajoutera entre crochets à la commande \includegraphics comme
ceci :

\includegraphics[page=n]{nom du fichier pdf en question}

Exemple : On souhaite insérer dans le présent document la page 8 de mon livre sur les sujets de
Brevet, c’est-à-dire la page 8 du fichier pdf nommé bef.pdf. On devra alors utiliser le code suivant :
1. La qualité de l’image reste la même lorsqu’on agrandit la figure.

46 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 6. LES FIGURES

\begin{figure}[!h]
\centering
\includegraphics[scale=0.3,page=8]{bef}
\caption{La page 8 de mon livre de BEF}
\end{figure}

Ce qui donnera après compilation, en utilisant obligatoirement PDFLATEX (et non pas LATEX), ceci :

Figure 6.3 – La page 8 de mon livre de BEF

N.B : Sans indiquer le numéro de la page à insérer d’un fichier pdf, PDFLATEX insère par défaut la
première page du fichier.

6.5 Insertion de plusieurs figures côte à côte


On dispose de photos (en format eps) des trois grands mathématiciens arabes : Al Khawarizmi, Abu
Kamil et Abu al Wafa. Les fichiers eps en question sont nommés :

khawarizmi2.eps
abukamil.eps
abualwafa.eps

Pour mettre ces trois photos côte à côte avec une même légende, on peut utiliser simplement le
code suivant :

\begin{figure}[!h]
\centering
\includegraphics[width=0.3\textwidth,height=5cm]{khawarizmi2}
\includegraphics[width=0.3\textwidth,height=5cm]{abukamil}
\includegraphics[width=0.3\textwidth,height=5cm]{abualwafa} \\
\caption{Trois grands mathématiciens arabes}
\end{figure}

Ce qui donne après compilation ceci :

47 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 6. LES FIGURES

Figure 6.4 – Trois grands mathématiciens arabes

Noter bien que l’on a redimensionné nos photos à une même largeur (qui fait 0.3 de la largeur d’une
ligne de texte) et une même hauteur (qui est de 5 cm). Ceci a pour but d’avoir un alignement idéal.
Au lieu du code ci-dessus, on peut utiliser un code plus professionnel mais qui donne quasiment le
même résultat. Il s’agit d’un code utilisant en plus l’environnement tabular pour mettre chacune des
trois photos dans une case d’un tableau de format : 1 lignes × 3 colonnes. Il est donné par :

\begin{figure}[!h]
\centering
\begin{tabular}{ccc}
\includegraphics[width=0.3\textwidth,height=5cm]{khawarizmi2} &
\includegraphics[width=0.3\textwidth,height=5cm]{abukamil} &
\includegraphics[width=0.3\textwidth,height=5cm]{abualwafa}
\end{tabular}
\caption{Trois grands mathématiciens arabes}
\end{figure}

Ce qui donne après compilation ceci :

Figure 6.5 – Trois grands mathématiciens arabes

On constate que la seule différence avec le code d’avant est qu’ici les trois photos sont un peu plus
espacées entre elles.
Si l’on souhaite maintenant faire apparaı̂tre au dessous de chacune des trois photos le nom du
mathématicien qu’elle représente, il est nécessaire d’utiliser l’environnement tabular afin de créer (à
l’intérieur de l’environnement figure) un tableau de format : 2 lignes × 3 colonnes. Le code complet
est le suivant :

\begin{figure}[!h]
\centering
\begin{tabular}{ccc}

48 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 6. LES FIGURES

\includegraphics[width=0.3\textwidth,height=5cm]{khawarizmi2} &
\includegraphics[width=0.3\textwidth,height=5cm]{abukamil} &
\includegraphics[width=0.3\textwidth,height=5cm]{abualwafa} \\
Al Khawarizmi &
Abu Kamil &
Abu Al Wafa
\end{tabular}
\caption{Trois grands mathématiciens arabes}
\end{figure}

Ce qui donne après compilation ceci :

Al Khawarizmi Abu Kamil Abu Al Wafa


Figure 6.6 – Trois grands mathématiciens arabes

Si l’on souhaite maintenant que chacune des trois photos prenne une légende à elle seule, on doit
utiliser à l’intérieur de l’environnement figure l’environnement minipage qui permet de créer des
petites pages de largeur voulue. L’idée consiste à mettre chaque figure dans une minipage réservée
à elle seule afin de pouvoir lui affecter une légende dans cette minipage. Le code qu’on utilisera est
le suivant :

\begin{figure}[!h]
\begin{minipage}{0.3\textwidth}
\centering
\includegraphics[width=\textwidth,height=5cm]{khawarizmi2}\\
\caption{Al Khawarizmi}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering
\includegraphics[width=\textwidth,height=5cm]{abukamil}\\
\caption{Abu Kamil}
\end{minipage}
\begin{minipage}{0.3\textwidth}
\centering
\includegraphics[width=\textwidth,height=5cm]{abualwafa}\\
\caption{Abu Al Wafa}
\end{minipage}
\end{figure}

Ce qui donnera après compilation ceci :

49 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 6. LES FIGURES

Figure 6.7 – Al Khawarizmi Figure 6.8 – Abu Kamil Figure 6.9 – Abu Al Wafa

Quelques éclaircissements sur le code précédent :


• Avec la commande \begin{minipage}{0.3\textwidth}, on a créé une minipage de largeur
faisant 0.3 de la largeur d’une ligne de texte. Ensuite, avec la commande :

\includegraphics[width=\textwidth,height=5cm]{khawarizmi2},

on a mis la figure khawarizmi2.eps dans la minipage créée à cet effet après l’avoir redimensionnée à
une largeur égale à la largeur du texte de la minipage qui la contient et à une hauteur de 5 cm.
• Bien que chaque figure a sa propre légende, on pourra mettre en plus une légende globale pour
les trois figures. Pour ce faire, on n’a qu’à ajouter cette légende après le dernier \end{minipage},
c’est-à-dire juste avant \end{figure}.

50 c http://farhi.bakir.free.fr/

CHAPITRE 7
DESSINER EN UTILISANT LE PACKAGE PSTRICKS

PSTricks est un package permettant de construire des figures géométriques directement par des
codes Latex, via l’environnement pspicture. Ce package nécessite de passer par le postscript ; on doit
donc absolument obtenir le fichier ps avant le fichier pdf. Ainsi, on ne peut pas compiler le fichier
source (tex) avec le compilateur PdfLatex par exemple. Pour obtenir le fichier pdf à la suite du fichier
ps, on doit utiliser un bon convertisseur ps-pdf comme le ps2pdf par exemple. Malheureusement, il
n’y a pas de bon convertisseur ps-pdf gratuit mais on verra par la suite une astuce permettant d’y
remédier à ce problème.

7.1 Codes de base


Pour utiliser l’environnement pspicture, on doit préalablement charger le package pstricks à l’en-tête
du document Latex par la commande :
\usepackage{pstricks}
L’environnement pspicture crée une boite rectangulaire dans laquelle on mettra nos figures géo-
métriques souhaitées (point, ligne, cercle, . . .). Cette boite est caractérisée par son point du bas à
gauche et son point du haut à droite. Les unités de mesure sont par défaut : le centimètre pour
les longueurs et le degré pour les angles. Pour mettre notre figure géométrique dans une boite de
format 10 cm × 10 cm par exemple, on utilise le code :
\begin{pspicture}(0,0)(10,10)
......................
\end{pspicture}
Ici (0, 0) représente les coordonnées du point du bas à gauche de la boite et (10, 10) désigne les
coordonnées de son point du haut à droite. Noter que ce code est aussi équivalent à :
\begin{pspicture}(10,10)
......................
\end{pspicture}
car si le point du bas à gauche n’est pas mentionné, l’environnement pspicture le prend par défaut
(0, 0).

7.2 Lignes, vecteurs et lignes brisés


• Pour dessiner une ligne (c’est-à-dire un segment) reliant deux points de coordonnées (x0 , y0) et
(x1 , y1 ), il suffit d’insérer à l’intérieur de l’environnement pspicture le code :

51
Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

\psline(x0 , y0 )(x1 , y1)

• Pour dessiner un vecteur dont le point de départ a pour coordonnées (x0 , y0 ) et le point d’arrivée
a pour coordonnées (x1 , y1 ), on utilise le code :

\psline{->}(x0 , y0 )(x1 , y1)

Le vecteur opposé de ce vecteur 1 peut s’obtenir par le code :

\psline{<-}(x0 , y0 )(x1 , y1)

• Le segment fléché en ses deux extrémités (x0 , y0 ) et (x1 , y1 ) s’obtient par le code :

\psline{<->}(x0 , y0 )(x1 , y1 )

Le segment fléché en ses deux extrémités s’utilise en général pour mentionner des mesures de
grandeurs.
• Une ligne brisée passant par des points de coordonnées (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) (dans cet
ordre) s’obtient par le code :

\psline(x0 , y0 )(x1 , y1) . . . (xn , yn )

Remarquer qu’il est possible de se servir de ce code pour tracer un polygone. Par exemple pour
dessiner le triangle (ABC), avec A(0, 0), B(1, 1) et C(1, 0), il suffit d’utiliser le code :

\psline(0, 0)(1, 1)(1, 0)(0, 0)

Plus loin, on découvrira un code plus approprié aux polygones.

Les arguments de psline


La commande \psline possède des arguments optionnels importants qui caractérisent la ligne à
tracer ; par exemple : la couleur de la ligne, son épaisseur, . . . etc. Ces arguments doivent être
mentionnés entre deux crochets qu’on mettra juste après \psline. L’essentiel de ces arguments est
donné par le tableau suivant :

Argument Son effet


linewidth = épaisseur Ligne d’épaisseur épaisseur
linecolor = couleur Ligne de couleur couleur
linestyle = dashed Ligne en tirets (- - - - - -)
linestyle = dotted Ligne en pointillés (............)
doubleline = true Ligne doublée

Exemple : Pour tracer une ligne en pointillés liant entre les deux points de coordonnées (1, 1) et
(3, 5) et qui soit de couleur bleu et d’épaisseur 2 pt, on utilise le code :

\psline[linewidth=2pt,linecolor=blue,linestyle=dotted](1,1)(3,5)

1. C’est-à-dire le vecteur dont le point de départ a pour coordonnées (x1 , y1 ) et le point d’arrivée a pour
coordonnées (x0 , y0 ).

52 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

Dessiner un segment avec des extrémités apparentes


Pour dessiner un segment liant entre deux points (x0 , y0 ) et (x1 , y1 ), lesquels sont apparents 2 , on
doit ajouter comme argument à \psline :

showpoints=true

et on précisera le type du symbole montrant les extrémités par l’argument :

dotstyle=symbole

où symbole prend comme valeur l’un des symboles suivants :


+ , × , | , square (carré vide) , square* (carré plein) , diamond (losange vide)
, diamond* (losange plein) , triangle (triangle vide) , triangle* (triangle plein).
En cas d’absence de précision du type du symbole voulu pour pointer les extrémités d’un segment,
Latex prendra par défaut le type point gras (•).
On peut en outre préciser l’échelle (c’est-à-dire l’épaisseur) du symbole voulu pour pointer les deux
extrémités d’un segment. Pour ce faire, il suffit d’ajouter l’argument :

dotscale=échelle voulue

L’échelle est bien entendu un nombre strictement positif.


Exemple 1 : Pour tracer le segment de droite liant entre les deux points de coordonnées (0, 0) et
(3, 3) et pointer ses extrémités par des points gras d’échelles 0.5 (donc des petits points gras),
on utilise le code :

\psline[showpoints=true,dotscale=0.5](0,0)(3,3)

Exemple 2 : Pour dessiner la figure suivante :

| | | |

on peut utiliser le code complet :

\begin{pspicture}(3,3)
\psline[linewidth=1pt,linecolor=green,showpoints=true,
dotstyle=|,dotscale=2](0,0)(1,0)(2,0)(3,0)
\end{pspicture}

7.3 Polygones
• Pour dessiner un polygone dont les sommets ont pour coordonnées (x1 , y1 ), (x2 , y2 ), . . . , (xn , yn )
(dans cet ordre), on utilise le code :

\pspolygon(x1 , y1 )(x2 , y2 ) . . . (xn , yn )

Les arguments que l’on puisse utiliser tels : la couleur des côtés, l’épaisseur des côtés, . . . etc
se codent de la même façon que pour les lignes.
Exemple : Pour dessiner le rectangle suivant :

2. C’est-à-dire pointés par un certain symbole comme une croix (×), un point gras (•), un trait vertical (|),
. . . etc.

53 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

on utilise le code complet :

\begin{pspicture}(2,2)
\pspolygon[linewidth=2pt,linecolor=red](0,0)(2,0)(2,1)(0,1)
\end{pspicture}

• Pour dessiner un polygone plein dont les sommets ont pour coordonnées (x1 , y1 ), (x2 , y2 ), . . . ,
(xn , yn ) (dans cet ordre), on utilise le code :

pspolygon*(x1 , y1 )(x2 , y2 ) . . . (xn , yn )

Par exemple, le code complet :

\begin{pspicture}(2,2)
\pspolygon*[linecolor=green](0,0)(2,0)(2,1)(0,1)
\end{pspicture}

donne le rectangle vert plein :

7.4 Cercles, arcs de cercles et ellipses


• Pour dessiner le cercle de centre (x0 , y0 ) et de rayon r, on utilise le code :

\pscircle[arguments](x0 , y0 ){r}

Les arguments pouvant être utiles dans ce code sont : l’épaisseur du cercle en question et la
couleur de sa circonférence.
• Pour avoir un cercle plein (c’est-à-dire un disque), il suffit de remplacer la commande \pscircle
par \pscircle*. On peut aussi utiliser la commande \qdisk mais sachez que celle-ci n’accepte pas
d’arguments !
• Pour dessiner l’arc du cercle de centre (x0 , y0 ) et de rayon r, qui part d’un angle θ1 et va vers un
angle θ2 (où les deux angles θ1 et θ2 sont donnés en degrés), on utilise le code :

\psarc[arguments](x0 , y0 ){r}{θ1 }{θ2 }

Exemple : Le code complet :

\begin{pspicture}(2,2)
\psline[linewidth=2pt,linecolor=red]{->}(-2,0)(2,0)
\psline[linewidth=2pt,linecolor=red]{->}(0,-2)(0,2)
\psarc[linewdith=2pt,linecolor=green](0,0){2}{30}{80}
\end{pspicture}

donne :

54 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

Le même code avec \psarc remplacé par \psarc* donne :

• Pour dessiner l’arc orienté du cercle de centre (x0 , y0 ) et de rayon r, qui part d’un angle θ1 et
va vers un angle θ2 , on utilise le code :
\psarc[arguments]{->}(x0 , y0 ){r}{θ1 }{θ2 }
Exemple : Le code complet :
\begin{pspicture}(2,2)
\psline[linewidth=2pt,linecolor=red]{->}(-2,0)(2,0)
\psline[linewidth=2pt,linecolor=red]{->}(0,-2)(0,2)
\psarc[linewdith=2pt,linecolor=green]{->}(0,0){2}{30}{80}
\end{pspicture}
donne :

• Pour dessiner le secteur vide du disque de centre (x0 , y0 ) et de rayon r, qui part d’un angle θ1
et va vers un angle θ2 , on utilise le code :
\pswedge[arguments](x0 , y0 ){r}{θ1}{θ2 }
Pour dessiner le secteur plein correspondant, il suffit de remplacer \pswedge par \pswedge*.
Exemple : Le code complet :
\begin{pspicture}(2,2)
\pswedge[linewdith=2pt,linecolor=green](0,0){2}{30}{80}
\end{pspicture}
donne :

55 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

Le même code avec \pswedge remplacé par \pswedge* donne :

• Pour dessiner l’ellipse (dont les axes sont les axes de coordonnées de l’environnement pspicture)
de centre (x0 , y0 ), de rayon horizontal rx et de rayon vertical ry , on utilise le code :
\psellipse[arguments](x0 , y0 )(rx , ry )
Exemple : Le code complet :
\begin{pspicture}(-5,-5)(2,2)
\psellipse[linewidth=1pt,linecolor=magenta](0,0)(4,1)
\end{pspicture}
génère la figure :

• Pour avoir une ellipse pleine, il suffit de remplacer la commande \psellipse par \psellipse*.

7.5 Axes de coordonnées


Pour tracer des axes de coordonnées au sein d’une figure, il est bien possible d’utiliser le code
\psline deux fois. Cependant, il y a une commande plus immédiate et plus appropriée pour ce
faire. Cette commande nécessite la package pstricks-add, qui est plus complet que pstricks.
On doit donc charger préalablement ce package, à l’en-tête du document, par la commande :
\usepackage{pstricks-add}
Par suite, pour tracer deux axes de coordonnées perpendiculaires, on utilise le code :
\psaxes[arguments](x0 , y0)(xmin , ymin)(xmax , ymax )
où (x0 , y0 ) est le centre (c’est-à-dire le point d’intersection des deux axes) et (xmin , ymin) et
(xmax , ymax ) sont respectivement le point le plus bas et le plus à gauche et le point le plus haut et
le plus à droite du plan que génèrent les deux axes en question. Quant aux arguments, ils sont les
mêmes que ceux d’une ligne simple.
• Pour tracer deux axes de coordonnées perpendiculaires orientés, on utilise le code :
\psaxes[arguments]{->}(x0 , y0 )(xmin , ymin)(xmax , ymax )
Exemple : Le code complet :
\begin{pspicture}(-3,-3)(3,3)
\psaxes[linecolor=red]{->}(0,0)(-2,-2)(2.5,2.5)
\end{pspicture}
génère la figure suivante :

56 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

−2 −1 1 2
−1

−2

7.6 Courbes
7.6.1 Courbes d’interpolation
Pour tracer une courbe d’interpolation lisse passant par des points (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ),
la commande Latex à utiliser est :

\pscurve[arguments](x0 , y0 )(x1 , y1) . . . (xn , yn )

Si l’on souhaite que cette courbe soit fermée (c’est-à-dire que le dernier point (xn , yn ) rejoint le
premier point (x0 , y0 )), on utilise plutôt le code :

\psccurve[arguments](x0 , y0 )(x1 , y1 ) . . . (xn , yn )

Remarque : Si, au lieu de ce dernier code, vous utilisez le code

\pscurve[arguments](x0 , y0)(x1 , y1 ) . . . (xn , yn )(x0 , y0)

vous aurez une courbe fermée passant par tous les points voulus mais elle ne sera pas (très proba-
blement) lisse en (x0 , y0 ) (c’est-à-dire qu’elle aura deux demi-tangentes en ce point).
Exemples :
1. Le code :
\begin{pspicture}(0,0)(4,4)
\psaxes(0,0)(0,0)(4,4)
\pscurve[linecolor=red,linewidth=1pt](0,2)(0.5,1)(3,2)(2,2.5)(3.5,3)(2,3)
\end{pspicture}
génère la courbe suivante :

0
0 1 2 3 4

2. Le code :
\begin{pspicture}(0,0)(4,4)
\psaxes(0,0)(0,0)(4,4)
\psccurve[linecolor=red,linewidth=1pt](0,2)(0.5,1)(3,2)(2,2.5)(3.5,3)(2,3)
\end{pspicture}
engendre la courbe suivante :

57 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

0
0 1 2 3 4

7.6.2 Courbes définies comme graphe d’une fonction


Grâce au package pstricks-add, on peut même tracer des courbes représentatives de fonctions
pouvant s’exprimer à l’aide des fonctions élémentaires. Pour ce faire, il faut d’abord charger ce
package par la commande \usepackage{pstricks-add}. Ensuite, il faut précéder l’endroit où l’on
souhaite dessiner le graphe de notre fonction du code :
\psset{algebraic=true}
Pour tracer alors le graphe d’une fonction donnée f sur un intervalle [a, b], on insère le code :
\psplot[arguments]{a}{b}{expression de f }
Les opérations élémentaires et les noms de fonctions usuelles permettant d’écrire l’expression de f
sont données par le tableau suivant :

Opération ou nom de fonction usuelle Signification


+ addition
− soustraction
∗ multiplication
/ division
∧ puissance
sqrt racine carrée
EXP exponentielle
ln logarithme népérien
cos cosinus
sin sinus
tan tangente
arcos arc cosinus
arcsin arc sinus
arctan arc tangente

Il est possible également de définir d’abord l’expression de f par une commande du type :
\def\fct{expression de f }
(où \fct est le nom que l’on a donné à notre fonction) puis tracer son graphe sur un intervalle
donné [a, b] en insérant (dans le fichier tex) le code :
\psplot[arguments]{a}{b}{\fct}
Exemple : Le code complet :
\begin{pspicture}(-2,-2)(5,5)
\psaxes(0,0)(-2,-2)(5,5)
\psset{algebraic=true}
\def\fct1{ln(x)/x}
\psplot[linecolor=green]{0.5}{4.9}{\fct1}
\end{pspicture}

58 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

génère la figure suivante :

−2 −1 1 2 3 4 5
−1

−2

7.6.3 Courbes paramétrées


Tout comme le traçage des courbes définies comme graphes de fonctions, le traçage des courbes
paramétrées nécessite le package pstricks-add (plus riche que pstricks) que l’on doit (obligatoirement)
charger à l’en-tête de notre document latex, via le code \usepackage{pstricks-add}. On doit
insérer aussi (obligatoirement) dans l’environnement pspicture, relatif à notre courbe, la commande
\psset{algebraic=true}. Soient a et b deux nombres réels tels que a < b et soient t 7→ x(t) et
t 7→ y(t) deux fonctions réelles définies sur [a, b]. Pour tracer la courbe paramétrée, de paramétrage :

x = x(t)
(t ∈ [a, b]),
y = y(t)

on définie préalablement les fonctions t 7→ x(t) et t 7→ y(t) par des codes du type :

\def\x{l’expression de x(t)}
\def\y{l’expression de y(t)}

Ensuite, on insère le code :

\psparametricplot{a}{b}{\x|\y}

Bien évidemment, on peut s’en passer de l’introduction de \x et \y et insérer directement leurs


expressions dans la commande \psparametricplot.

Exemple : Le code complet suivant :

\begin{pspicture}(-3,-3)(3,3)
\psaxes(0,0)(-3,-3)(3,3)
\psset{algebraic=true}
\def\x{2*cos(t)-sin(t)}
\def\y{2*cos(t)+sin(t)}
\psparametricplot[linecolor=red]{-3.1416}{3.1416}{\x|\y}
\end{pspicture}

génère la figure suivante (dont la nature géométrique est une ellipse) :

59 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

−3 −2 −1 1 2 3
−1

−2

−3

7.7 Tangentes à une courbe


7.7.1 Cas d’une courbe d’interpolation
Pour tracer la tangente T à une courbe d’interpolation (C ) en son point d’abscisse x0 , On choisit
trois points (x1 , y1 ), (x2 , y2 ) et (x3 , y3 ) de (C ), parmi les points d’interpolation, qui soient les plus
proches du point tangentiel et on choisit une grandeur ∆x = xmax − x0 = x0 − xmin , où xmax et
xmin sont respectivement les abscisses maximale et minimale des points du segment qui représente
la tangente en question (le point tangentiel sera situé au milieu de ce segment). Le code pour tracer
T (qui doit être précédé du code pour tracer (C )) est alors :

\psTangentLine(x1 , y1 )(x2 , y2 )(x3 , y3 ){x0 }{∆x}

Exemple : Le code complet :

\begin{pspicture}(0,0)(5,5)
\psaxes(0,0)(0,0)(5,5)
\pscurve[linecolor=red](1,1)(1.9,1.5)(2.1,1.7)(3,4)(4,4.5)
\psTangentLine[linecolor=green](1.9,1.5)(2.1,1.7)(3,4){2}{1.5}
\end{pspicture}

génère la figure suivante :

0
0 1 2 3 4 5

7.7.2 Cas d’une courbe définie comme graphe d’une fonction


Pour tracer la tangent à une courbe définie comme graphe d’une fonction f en son point d’abs-
cisse x0 , on utilise le code suivant (naturellement précédé du code pour tracer la courbe en question) :

\psplotTangent{x0 }{∆x}{l’expression de f }

60 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

,
où ∆x est défini comme au §7.7.1. Nous rappelons aussi que ce traçage nécessite le package
\usepackage{pstricks-add} (à charger à l’en-tête du document latex) et le code
\psset{algebraic=true} (à insérer au début de l’environnement pspicture).

Exemple : Le code complet :


\begin{pspicture}(-1,-1)(4,3)
\psaxes(0,0)(0,0)(4,3)
\psset{algebraic=true}
\def\f{x*EXP(x)/(x^3+x^2+1)}
\psplot[linecolor=red]{0}{4}{\f}
\psplotTangent[linecolor=green]{3}{2}{\f}
\psplotTangent[linecolor=magenta]{0.7}{2}{\f}
\end{pspicture}
génère la figure suivante :
3

0
0 1 2 3 4

7.7.3 Cas d’une courbe paramétrée


Soient a et b deux nombres réels tels que a < b et soient t 7→ x(t) et t 7→ y(t) deux fonctions
réelles définies sur [a, b]. On considère la courbe (C ) définie par le paramétrage :

x = x(t)
(t ∈ [a, b]).
y = y(t)

Étant donné t0 ∈ [a, b] et M0 = (x(t0 ), y(t0)) ∈ (C ), pour tracer la tangente à C au point M0 , on


utilise le code suivant (naturellement précédé du code pour tracer (C )) :
\psplotTangent{t0 }{∆x}{\x|\y}
où les commandes \x et \y définissent respectivement les expressions de x(t) et y(t) (voir le
§7.6.3) et ∆x est défini comme au §7.7.1. Nous rappelons aussi que ce traçage nécessite le package
\usepackage{pstricks-add} (à charger à l’en-tête du document) et le code
\psset{algebraic=true} (à insérer au début de l’environnement pspicture).

Exemple : Le code complet :


\begin{pspicture}(-2,-2)(2,2)
\psaxes(0,0)(-2,-2)(2,2)
\psset{algebraic=true}
\def\x{(sin(t))^3}
\def\y{cos(t)-(cos(t))^4}
\psparametricplot[linecolor=red]{-3.1416}{3.1416}{\x|\y}
\psplotTangent[linecolor=green]{-1}{2}{\x|\y}
\end{pspicture}
génère la figure suivante (la courbe en rouge est appelée le cœur de Raphaël Laporte) :

61 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

−2 −1 1 2
−1

−2

62 c http://farhi.bakir.free.fr/

CHAPITRE 8
DÉFINIR DE NOUVELLES COMMANDES ET DE NOUVEAUX
ENVIRONNEMENTS

8.1 La commande let


La commande \let est une simple commande que l’on introduit au préambule d’un document Latex
pour remplacer une commande existante, que l’on considère assez lourde, par une autre commande
qui existe déjà ou qu’on crée et que l’on considère plutôt légère. La syntaxe de cette commande
est :

\let\CommandeLégère=\CommandeLourde

Exemples
1. Supposons que l’on a introduit au préambule de notre document Latex le code suivant :
\let\up=\textsuperscript
Alors, dans le corps de notre même document Latex, l’écriture :
Les étudiants de la 2\up{ème} année Licence Maths \dots
donne :
Les étudiants de la 2ème année Licence Maths . . .
(Rappelons que le code \textsuperscript sert pour faire un exposant en mode “texte”).
2. Supposons maintenant que l’on a introduit dans le préambule de notre document Latex
les codes :
\let\epsilon=\varepsilon
\let\phi=\varphi
Alors, dans le corps du même document Latex, le code :
soit $\epsilon > 0$ et $\phi = \epsilon^2$ \dots
donne :
Soit ε > 0 et ϕ = ε2 . . .
(Rappelons que les commandes \epsilon, \varepsilon, \phi et \varphi correspondent
respectivement aux lettres grecques : ǫ, ε, φ et ϕ).

63
Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

8.2 La commande def


La commande \def est une simple commande que l’on utilise au préambule d’un document Latex
pour remplacer les codes exclusivement mathématiques, que l’on considère lourds, par des codes
de notre création et qui sont plus légers. Les codes mathématiques (lourds) auxquels on applique
cette commande sont généralement ceux qui se répètent souvent dans notre document Latex. La
syntaxe de cette commande est :

\def\CommandeLégère{\CommandeLourde}

Exemples :
1. Les codes mathématiques \mathbb{N}, \mathbb{Z}, \mathbb{R} et \mathbb{C}, qu’on
utilise respectivement pour les ensembles mathématiques N, Z, R et C, pourront être
remplacés par les codes plus légers \N, \Z, \R et \C et ceci grâce aux instructions suivantes
que l’on doit intégrer préalablement au préambule de notre document Latex :
\def\N{\mathbb{N}}
\def\Z{\mathbb{Z}}
\def\R{\mathbb{R}}
\def\C{\mathbb{C}}
Par suite, dans le corps de notre document Latex, le code :
Soient $x \in \R$ et $a , b \in \Z$.
donne :
Soient x ∈ R et a, b ∈ Z.
2. On peut utiliser la commande \def pour définir certaines notations ou certains opérateurs
mathématiques. Par exemple, les instructions :
\def\ker{\mathrm{Ker}}
\def\im{\mathrm{Im}}
\def\id{\mathrm{Id}}
\def\pgcd{\mathrm{pgcd}}
\def\ppcm{\mathrm{ppcm}}
\def\card{\mathrm{Card}}
\def\dist{\mathrm{dist}}
créent les nouvelles commandes \ker, \im, \id, \pgcd, \ppcm, \card et \dist pour
représenter respectivement les notations mathématiques : Ker (pour le noyau d’une ap-
plication linéaire), Im (pour l’image d’une application linéaire), Id (pour l’application
identité), pgcd (pour le plus grand commun diviseur), ppcm (pour le plus petit commun
multiple), Card (pour le cardinal) et dist (pour la distance).
3. Nous allons voir maintenant deux autres exemples un peu plus compliqués mais très im-
portants.
(a) La fonction indicatrice. L’instruction :
\def\ind{1\hspace*{-0.9mm}\mathrm{I}}
(que l’on insère préalablement au préambule de notre document Latex) crée la nouvelle
commande \ind pour représenter la fonction indicatrice d’un ensemble mathématique
donné. Ainsi, le code :
$$
\int_{\mathbb{R}} \ind_A(x) \, d x = \int_A \, d x .
$$

64 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

(que l’on insère au corps du même document Latex) donne :


Z Z
1IA (x) dx = dx.
R A

Ici 1IA désigne la fonction indicatrice d’un sous-ensemble A de R.


Remarque : le code \hspace*{-0.9mm} permet d’introduire un espace horizontal
négatif de 0, 9 mm.
(b) La valeur absolue. La valeur absolue en Latex est codée par l’une des deux com-
mandes identiques $|x|$ ou $\vert{x}\vert$ (pour représenter la valeur absolue
de x) ou encore par $$\left\vert{expression}\right\vert$$ lorsqu’une expres-
sion donnée est de grande taille et que l’on est en mode displaystyle. Nous allons
maintenant créer une nouvelle commande \vabs pour remplacer la commande Latex
\left\vert{...}\right\vert que l’on trouve assez lourde. À la différence des com-
mandes créées précédemment, la commande \vabs qu’on créera plus bas comportera
un argument, désigné en Latex par #1, et réservé à l’expression que l’on souhaite mettre
en valeur absolue. Pour ce faire, nous insérons au préambule de notre document Latex
l’instruction :
\def\vabs#1{\left\vert{#1}\right\vert}
Une fois ceci est fait, le code :
$$
\vabs{\sum_{i=1}^{n} a_i} \leq \sum_{i = 1}^{n} \vabs{a_i}
$$
(inséré au corps du même document Latex) donne :

Xn X n
ai ≤ |ai |



i=1 i=1

N. B : La commande \vabs que l’on vient de créer fonctionne aussi bien en mode
“normal” qu’en mode “displaystyle”.
Remarque : Si cette commande \vabs que l’on vient de créer vous porte bon-
heur, vous pouvez faire exactement la même chose pour créer une nouvelle com-
mande (que vous pourrez nommer \norme) afin d’alléger la commande prédéfinie
\left\Vert{...}\right\Vert de Latex, qui est utilisée pour représenter la norme
d’un vecteur.
(c) Les congruences. Nous allons créer une nouvelle commande que nous nommons
\restmod et que nous utilisons pour les congruences. Nous voulons que cette com-
mande comporte deux arguments : le reste et le module, qui sont respectivement
codés (en Latex) par #1 et #2. Une des façons de réaliser ceci est d’insérer dans le
préambule de notre document Latex l’instruction :
\def\restmod#1#2{#1\ (\mathrm{mod}\ #2)}
Ainsi, en tapant dans le corps du même document Latex le code :
2014 \equiv \restmod{4}{10}
on obtient en visualisant (après compilation) :

2014 ≡ 4 (mod 10)

8.3 La commande DeclareMathOperator*


La commande \DeclareMathOperator* permet de créer de nouveaux opérateurs mathématiques
sophistiqués. Sa syntaxe (que nous devons insérer au préambule de notre document Latex) est :

65 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

\DeclareMathOperator*{\CodeOpérateur}{Son apparition voulue}

Exemples :
1. Nous voulons créer deux nouveaux opérateurs mathématiques, que nous codons par les
commandes \argmin et \argmax, pour désigner respectivement l’argument minimal1 et
l’argument maximal1 d’une fonction réelle. Pour se faire, il suffit d’insérer au préambule de
notre document Latex les deux instructions :

\DeclareMathOperator*{\argmin}{argmin}
\DeclareMathOperator*{\argmax}{argmax}
Ainsi, en insérant par exemple dans le corps de notre document Latex le code :
$\argmin_{x \in \mathbb{R}} f(x) = 1$
on obtient :
argminx∈R f (x) = 1
alors qu’en insérant le même code mais en mode displaystyle, c’est-à-dire :
$$
\argmin_{x \in \mathbb{R}} f(x) = 1
$$
on obtient :
argmin f (x) = 1
x∈R

2. Nous voulons créer un nouvel opérateur mathématique qui s’occupera de la composition


d’unePsuite d’applications et qui fonctionnera exactement comme l’opérateur de somma-
tion . Nous voulons coder cet opérateur par la commande \comp et nous voulons qu’il
apparaı̂tra (en impression) sous le signe “◦”. Pour ce faire, il suffit d’insérer au préambule
de notre document Latex l’instruction :
\DeclareMathOperator*{\comp}{\circ}
Ainsi, en insérant par exemple dans le corps de notre même document Latex le code :
$$
\comp_{i = 1}^{n} f_i = f
$$
on obtient :
n
◦ fi = f
i=1

N. B : Par ces deux exemples, nous devons comprendre que l’intérêt de la commande
\DeclareMathOperator* est de créer
P des opérateurs mathématiques qui fonctionnent exactement
comme l’opérateur de sommation .

8.4 La commande newcommand


La commande \newcommand permet de créer de nouvelles commandes (textuelles ou mathématiques).
On peut créer aussi bien des commandes simples (c’est-à-dire sans argument) que des commandes
avec plusieurs arguments2 . Son utilisation pour créer une commande simple est fournie par la syn-
taxe :

\newcommand{\CodeChoisiPourNotreNouvelleCommande}{Sa définition}
1. L’argument minimal (resp. maximal) d’une fonction réelle f : I → R est le point x ∈ I où f atteint son
minimum (resp. maximum).
2. Le nombre d’arguments est limité à 9.

66 c http://farhi.bakir.free.fr/

Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

et son utilisation pour créer des commandes muni d’un ou plusieurs arguments est fournie par la
syntaxe :

\newcommand{\CodeChoisi}[Nombres d’arguments]{Définition}

où dans la définition de la commande en question, un argument de rang n est désigné par le symbole
#n.
Bien entendu, ces syntaxes doivent être mises au préambule d’un document Latex.
Exemples :
1. On souhaite créer une nouvelle commande simple (c’est-à-dire sans argument), de nom
\Indication, qui servira à inscrire une indication pour un exercice d’une série de TD
par exemple ; et ceci en utilisant la figuration bien précise ☞ . Comme le symbole en-
cadré est intégré dans le package pifont sous le code \ding{43}, ce package doit être
préalablement inscrit dans le préambule de notre document Latex. L’instruction qui permet
de créer notre commande souhaitée est alors :
\newcommand{\Indication}{\fbox{\ding{43}}~}
2. On souhaite créer une simple commande, de nom \Fin, qui servira par exemple à marquer
la fin d’un chapitre ou d’une série de TD. On souhaite plus exactement faire apparaı̂tre
(via cette commande) la jolie forme :

Y F˚i‹nffl Z
a
Noter que les symboles Y et a relèvent du package fourier-orns que l’on doit donc obliga-
toirement charger dans le préambule de notre document Latex, via le code
\usepackage{fourier-orns}3 . Dans ce package, ces deux symboles sont respective-
ment désignés par les codes \decothreeleft et \decotwo. Par ailleurs, le style d’écriture
du mot “Fin” (F˚i‹nffl) relève du package frcursive que l’on doit donc charger également dans
le préambule de notre même document Latex, via le code \usepackage{frcursive}. Le
code d’obtention de l’écriture F˚i‹nffl est alors \cursive{Fin}. L’instruction qui permet de
créer notre commande souhaitée se présente alors par le code :
\newcommand{\Fin}{\begin{center}%
\hrulefill{} ~~{\Huge\decothreeleft}~\cursive{Fin}~{\Huge\decothreeright}%
~~ \hrulefill{} \centerline{\fontsize{32}{32} \decotwo~~~}%
\end{center}}
Noter enfin que le code \fontsize{32}{32} sert à agrandir la taille des caractères en les
mettant à 32 points ; son rôle ici est juste d’agrandir le symbole a.

3. Si l’on utilise plutôt le package fourier, Latex prendra la fonte “fourier” comme fonte par défaut du document
en question.

67 c http://farhi.bakir.free.fr/