Documentation avanc´ee en LATEX - Page web de Bakir...

71
Documentation avanc´ ee en L A T E X epartement de Math´ ematiques Universit´ e A. Mira de B´ ejaia Alg´ erie.

Transcript of Documentation avanc´ee en LATEX - Page web de Bakir...

Page 1: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Documentation avancee en LATEX

Departement de MathematiquesUniversite A. Mira de BejaiaAlgerie.

Page 2: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

TABLE DES MATIERES

1 Structure generale d’un document LATEX 1

1.1 Gestion des differents espacements a l’interieur 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 a l’interieur 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 epaisseur . . . . . 4

1.2.3 Un trait horizontal completant une ligne de texte . . . . . . . . . . . . . . . 4

1.2.4 Un trait horizontal centre ou mis a 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 apres l’autre . . . . . 5

1.3.2 Ecrire un texte LATEX sur plusieurs colonnes, remplies equitablement . . . . . 7

1.4 Creer des en-tetes et des pieds de page personnalises . . . . . . . . . . . . . . . . . 9

1.4.1 Le fonctionnement par defaut du style de page fancy . . . . . . . . . . . . . 9

1.4.2 Modification du style de page fancy pour creer ses propres en-tetes et piedsde page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Les notes en bas de page 20

2.1 Les types de numerotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.1.1 Numerotation en chiffres romains . . . . . . . . . . . . . . . . . . . . . . . 20

2.1.2 Numerotation en lettres latines . . . . . . . . . . . . . . . . . . . . . . . . 20

2.1.3 Numerotations a l’aide de symboles (autres les chiffres et les lettres) . . . . 20

2.2 Comment forcer une footnote a prendre un numero voulu . . . . . . . . . . . . . . 21

2.3 Comment faire une footnote a l’interieur de certains environnements . . . . . . . . . 21

i

Page 3: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

3 Latex Mathematique 23

3.1 Les equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1.1 Equations courtes et moyennes . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1.2 Equations longues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.1.3 Serie d’equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.4 Equations numerotees par une numerotation de notre choix . . . . . . . . . 25

4 Les couleurs 26

4.1 Les couleurs predefinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 generees 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 a titre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.5 Utilisation des boites pour empecher certaines cesures LATEX . . . . . . . . . . . . . 37

5.6 Le package framed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.6.1 Les differents environnements du package framed . . . . . . . . . . . . . . . 38

5.6.2 Comment redefinir l’environnement leftbar . . . . . . . . . . . . . . . . . . 40

6 Les figures 43

6.1 Elements de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6.2 Comment modifier la taille d’une figure a inserer . . . . . . . . . . . . . . . . . . . 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 cote a cote . . . . . . . . . . . . . . . . . . . . . . . 47

7 Dessiner en utilisant le package PSTricks 51

7.1 Codes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.2 Lignes, vecteurs et lignes brises . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.3 Polygones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

ii

Page 4: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

7.4 Cercles, arcs de cercles et ellipses . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.5 Axes de coordonnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.6 Courbes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

7.6.1 Courbes d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

7.6.2 Courbes definies comme graphe d’une fonction . . . . . . . . . . . . . . . . 58

7.6.3 Courbes parametrees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7.7 Tangentes a une courbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

7.7.1 Cas d’une courbe d’interpolation . . . . . . . . . . . . . . . . . . . . . . . 60

7.7.2 Cas d’une courbe definie comme graphe d’une fonction . . . . . . . . . . . . 60

7.7.3 Cas d’une courbe parametree . . . . . . . . . . . . . . . . . . . . . . . . . 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

Page 5: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

CHAPITRE 1

STRUCTURE GENERALE D’UN DOCUMENT LATEX

1.1 Gestion des differents espacements a l’interieur d’un do-

cument LATEX

En LATEX, les differents espaces specifiques d’un document (marges, indentation, espace inter-ligne, . . . etc) sont fixes par defaut. Cependant, ces espaces pourraient etre modifies a n’importequel endroit du document. Nous donnons dans ce qui suit les codes permettant de modifier cesespaces.

1.1.1 L’indentation

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

\setlength{\parindent}{indentation voulue}

Exemple : Le code :

\parindent=2cm

\par Les quaternions furent decouverts en 1843 par le mathematicien irlandais

William Rowan Hamilton (1805-1865).

donne :

Les quaternions furent decouverts en 1843 par le mathematicien irlandais William RowanHamilton (1805-1865).

N.B : Le code \par signale que le texte qui le suit est un nouveau paragraphe. Sinon, il est bienconnu qu’en LATEX, un espace vertical est interprete comme un passage a un nouveau paragraphe.Si l’on desire laisser un espace vertical dans notre document LATEX(pour l’aerer par exemple) sanspour autant passer a un nouveau paragraphe dans le document visualise, on utilise la commande\noindent qu’on mettra au debut du texte que l’on ne desire pas indenter.Notons par ailleurs que l’indentation par defaut d’un document LATEX est d’environ 6 mm.

1

Page 6: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

1.1.2 L’espace interparagraphe

Si l’on desire modifier l’espace vertical se trouvant entre deux paragraphes consecutifs d’undocument LATEX, on utilise le code \parskip=espace voulu ou le code :

\setlength{\parskip}{espace voulu}

que l’on mettra a l’endroit a partir duquel on souhaite modifier l’espace interparagraphe.

Exemple : Le code :

\parskip=1.5cm

\par Les quaternions furent decouverts en 1843 par le mathematicien irlandais

William Rowan Hamilton (1805-1865).

\par En faisant des calculs avec les nombres complexes, il s’interessa a

l’interpretation geometrique de l’addition et de la multiplication dans le

plan (a 2 dimensions). Il se demanda, si avec des nombres hypercomplexes, on

ne pourrait pas obtenir des resultats analogues dans l’espace (a 3 dimensions).

donne :

Les quaternions furent decouverts en 1843 par le mathematicien irlandais William Rowan Hamil-ton (1805-1865).

En faisant des calculs avec les nombres complexes, il s’interessa a l’interpretation geometrique del’addition et de la multiplication dans le plan (a 2 dimensions). Il se demanda, si avec des nombreshypercomplexes, on ne pourrait pas obtenir des resultats analogues dans l’espace (a 3 dimensions).

N.B : L’espace interparagraphe par defaut d’un document LATEX est d’environ 1 pt.

1.1.3 L’espace interligne

Si l’on desire modifier l’espace interligne d’un document LATEX, c’est-a-dire l’espace verticalseparant deux lignes consecutives, on utilise le code : \baselineskip=espace voulu, ou le code :

\setlength{\baselineskip}{espace voulu}

que l’on mettra a l’endroit a partir duquel on souhaite modifier l’espace interligne.

Exemple : Le code :

\baselineskip=7mm

\par Durant de nombreuses annees, Hamilton avait espere trouver une forme de

multiplication satisfaisante pour les triplets de nombres reels avec de bonnes

proprietes. Ses recherches sont bien decrites par la celebre anecdote avec son

fils. Peu de temps avant sa mort, il ecrivit a son fils: \og{}Tous les matins,

alors que tu descendais pour prendre le petit dejeuner, tu me demandais:

Eh bien papa, est ce que tu peux multiplier les triplets? J’etais toujours

oblige de repondre, avec un triste hochement de tete: ‘‘Non, je peux

seulement les additionner et les soustraire’’\fg{}. \\

Finalement, Hamilton a eu l’idee geniale de passer a une dimension de plus.

Il ecrivit: ‘‘Ainsi naquit l’idee en moi d’admettre une quatrieme dimension

pour calculer avec les triplets’’. Il aboutit aux quaternions.

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

Page 7: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

donne :

Durant de nombreuses annees, Hamilton avait espere trouver une forme de multiplication sa-

tisfaisante pour les triplets de nombres reels avec de bonnes proprietes. Ses recherches sont bien

decrites par la celebre anecdote avec son fils. Peu de temps avant sa mort, il ecrivit a son fils :

≪ Tous les matins, alors que tu descendais pour prendre le petit dejeuner, tu me demandais : Eh

bien papa, est ce que tu peux multiplier les triplets ? J’etais toujours oblige de repondre, avec un

triste hochement de tete : “Non, je peux seulement les additionner et les soustraire ≫.

Finalement, Hamilton a eu l’idee geniale de passer a une dimension de plus. Il ecrivit : “Ainsi naquit

l’idee en moi d’admettre une quatrieme dimension pour calculer avec les triplets”. Il aboutit aux

quaternions.

N.B : L’espace interligne par defaut 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, onutilise le package geometry qu’on chargera a l’en-tete du document. Si l’on souhaite par exempleque notre document ait comme espace en haut de page h, comme espace en bas de page b, commemarge de gauche g et comme marge de droite d, on mettra a son en-tete le code :

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

Lorsque les marges de gauche et de droite souhaitees ont la meme mesure m (ce qui est souvent lecas), 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 pagede 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 a l’interieur d’un document

LATEX

Quand on redige des documents LATEX d’un certain type (CV, sujet d’examen, serie de TD,. . . etc), on aura souvent besoin de mettre, dans certains endroits, des traits horizontaux (commepar exemple mettre un titre entre deux traits horizontaux ou mettre un demi-trait horizontal pourmarquer la fin du document ou de l’une de ses parties). Dans cette section, on donnera les codespermettant de generer les differents types de traits horizontaux.

1.2.1 Un trait horizontal simple

En LATEX, pour generer un trait horizontal simple, on utilise le code : \hrule. Ce code donnececi :

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

Page 8: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

1.2.2 Un trait horizontal d’une certaine largeur et d’une certaine epaisseur

• Pour generer un trait horizontal d’une largeur ℓ, on utilise le code :

\hrule width ℓ

Par exemple, le code :

\hrule width 5cm

donne :

• Pour generer un trait horizontal d’une epaisseur (c’est-a-dire hauteur) e, on utilise le code :

\hrule height e

Par exemple, le code :

\hrule height 1pt

donne :

• Pour generer un trait horizontal d’une largeur ℓ et d’une epaisseur 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 completant une ligne de texte

• Pour completer une ligne de texte (lorsqu’elle est incomplete bien sur) par un trait horizontal, onutilise le code : \hrulefill. Par exemple, le code :

C’est genial la programmation en VBA \hrulefill

donne :

C’est genial la programmation en VBA

• Pour completer une ligne de texte (lorsqu’elle est incomplete bien sur) par des points de suspension,on utilise le code \dotfill. Par exemple, le code :

C’est genial la programmation en VBA \dotfill

donne :

C’est genial la programmation en VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.4 Un trait horizontal centre ou mis a droite

• Pour generer un trait horizontal centre (par exemple de largeur 1/3 de la largeur d’une ligne detexte), on utilise le code :

\hspace*{0.33\textwidth} \hrulefill \hspace*{0.33\textwidth}

(apres un retour a la ligne). Ce qui donne ceci :

• Pour generer un trait horizontal mis a droite (par exemple de largeur 1/3 de la largeur d’une lignede texte), on utilise le code :

\hspace*{0.66\textwidth} \hrulefill

(apres un retour a la ligne). Ce qui donne ceci :

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

Page 9: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

1.2.5 Un trait horizontal de couleur

Pour generer 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 preambule du document).

Par exemple, pour generer un trait horizontal de couleur magenta, de largeur 8 cm et d’epaisseur 1pt, 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 apres l’autre

Presenter un document LATEX en entier sur deux colonnes

Pour ecrire un document LATEX en entier sur deux colonnes qui vont etre remplies l’une apresl’autre, il suffit d’integrer l’option twocolumn dans la classe du document en question. On taperapar exemple au preambule du document :

\documentclass[twocolumn]{article}

ou encore :

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

. . . etc.

Il est a noter qu’avec cette option, les deux colonnes de chaque page du document seront rempliesl’une apres l’autre. Autrement dit, le remplissage des colonnes n’est pas equiparti. On peut ainsiavoir, dans une meme page, la colonne de gauche beaucoup plus remplie (en texte) que la colonnede droite. Plus loin, on verra comment faudrait-il proceder pour obtenir un remplissage equiparti decolonnes.

Presenter une partie d’un document LATEX sur deux colonnes

Pour agir localement, c’est-a-dire ecrire seulement une partie d’un document LATEX sur deuxcolonnes (remplies l’une apres l’autre), il n’est pas necessaire d’integrer l’option twocolumn a laclasse du document mais il suffit simplement de taper la commande \twocolumn juste avant letexte que l’on souhaite presenter sur deux colonnes. Une autre alternative consiste a taper plutot :

\twocolumn{Le texte que l’on souhaite presenter sur deux colonnes}

ou encore :

\begin{twocolumn}

Le texte que l’on souhaite presenter sur deux colonnes

\end{twocolumn}

Si l’on desire presenter un texte sur deux colonnes (remplies l’une apres l’autre) mais avec un titrequi tient sur une seule colonne, on tapera :

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

Page 10: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE 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’uneapres l’autre). Il en est de meme 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 lisibilite du texte source (fichiertex) mais a part cela, il n’a aucun autre interet.

Presenter certaines parties d’un document LATEX sur une colonne et d’autres parties surdeux colonnes

Si l’on souhaite maintenant presenter certaines parties d’un document LATEX sur une colonneet d’autres parties sur deux colonnes (remplies l’une apres l’autre), on utilisera les commandes :\onecolumn et \twocolumn. On ecrira 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 inconvenient de ces deux commandes \onecolumn et \twocolumn reside dans le fait qu’achaque fois que l’une d’elle est utilisee, elle entraıne automatiquement un changement de page. Ama connaissance, cet inconvenient de taille est incontournable !

Remarque importante : Si l’on souhaite presenter un document LATEX entierement sur deux co-lonnes, il est nettement preferable d’integrer l’option twocolumn a la classe du document que d’uti-liser la commande \twocolumn au debut du document. En effet, la commande \twocolumn esttellement fragile qu’elle pourrait entraıner des anomalies comme la suivante : ≪ certaines lignes dela colonne gauche arrivent a toucher les lignes d’en face de la colonne droite d’une meme page dudocument ≫.

Mettre un trait vertical pour separer les colonnes d’un texte LATEX presente sur deuxcolonnes

Pour faire apparaıtre un trait vertical separant les deux colonnes d’un texte LATEX (ecrit sur deuxcolonnes), on devra taper, juste avant le texte en question, le code :

\columnseprule=epaisseur voulue pour le trait vertical

ou le code :

\setlength{\columnseprule}{epaisseur voulue pour le trait vertical}

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

Page 11: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

Par exemple, le code :

\columnseprule=0.1pt

\twocolumn Il etait une fois ...

mettra notre texte ≪ Il etait une fois . . . ≫ sur deux colonnes qu’il separe avec un trait verticald’epaisseur 0,1 pt (un trait fin).

N.B : Lorsqu’un document LATEX est entierement ecrit sur deux colonnes (via l’option twocolumn,integree a la classe du document), il suffit de mettre le code \columnseprule=epaisseur voulue

juste apres \begin{document} pour separer les deux colonnes de chaque page du document parun trait vertical d’une epaisseur voulue.

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

Supposons donnee une partie d’un document LATEX ecrite sur deux colonnes.Alors, pour forcer le passage a une nouvelle colonne a un endroit voulu, il suffit de taper a cetendroit le code \newpage. Noter que ce code est habituellement reserve pour forcer le passagea une nouvelle page, mais seulement dans ce cas (d’un texte ecrit sur deux colonnes), il force lepassage a une nouvelle colonne plutot qu’a une nouvelle page.Ainsi, en etant sur une colonne de gauche, pour forcer le passage a une nouvelle page, on doit taperle code \newpage~\newpage (et non pas \newpage ou \newpage\newpage).

1.3.2 Ecrire un texte LATEX sur plusieurs colonnes, remplies equitablement

Le package multicol (qu’on chargera au preambule d’un document LATEX via la commande\usepackage{multicol}) definit l’environnement multicols qui permet de presenter une partied’un document LATEX sur plusieurs colonnes (10 colonnes au maximum). On tapera par exemple :

\begin{multicols}{3}

Il etait une fois ...

\end{multicols}

pour presenter notre texte ≪ Il etait une fois . . . ≫ sur 3 colonnes, remplies equitablement.

L’importance de cet environnement est qu’il repartit le texte qu’il detient equitablement sur toutesles colonnes, et ceci meme lorsque la page contenant le texte en question n’est pas completementremplie.

L’environnement multicols nous permet egalement d’obtenir un texte reparti equitablement surplusieurs colonnes avec un titre ecrit 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 etre une section, une sous-section, . . . etc.

Pour information, c’est l’environnement multicols qu’on utilise pour rediger (en LATEX) les articlesde journaux.

Enfin, pour ecrire une partie d’un document LATEX sur un nombre n de colonnes (1 ≤ n ≤ 10),remplies equitablement, et faire apparaıtre des traits verticaux d’epaisseur e separant chaque deuxcolonnes consecutives, on devrait taper (juste avant l’environnement multicols) l’un des deux codesequivalents :

\columnseprule=e

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

Page 12: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

ou

\setlength{\columnseprule}{e}

Exemple : Le code complet 1 :

\documentclass[a4paper,12pt]{article}

\usepackage[T1]{fontenc} % pour avoir des caracteres en codage T1

\usepackage[latin1]{inputenc} % pour gerer les accents

\usepackage{multicol}

\begin{document}

\thispagestyle{empty}

\columnseprule=0.1pt

\begin{multicols}{4}[\section*{De bonnes raisons pour enseigner l’arithmetique}]

Il n’y a pas deux branches des mathematiques qui presentent un plus grand

contraste que l’arithmetique et la theorie des nombres.\\

Le caractere de grande generalite et de simplicite de ses regles rend

l’arithmetique accessible a l’esprit le moins ouvert.\\

Par contre, la theorie des nombres est de beaucoup la plus difficile des

sciences mathematiques. Sans doute, l’expose de ses problemes est si simple

qu’un enfant peut comprendre de quoi il s’agit; mais les methodes employees

sont si particulieres qu’il faut une adresse insoupconnee et une habilete

consommee pour decouvrir la voie qui permet d’aborder ces problemes. Des

propositions tenues pour vraies pendant des siecles ont ete ulterieurement

reconnues fausses, et actuellement il existe des problemes qui ont epuise

toutes les capacites des plus grands mathematiciens et restent encore sans

solution.\\

La theorie des nombres est la branche des mathematiques qui a trouve le plus

petit nombre d’applications; non seulement elle est restee bien loin de toute

influence sur le progres technique, mais dans le domaine des mathematiques

pures, elle est toujours restee isolee, n’ayant que de vagues liaisons avec

le fond general de la science \dots

\end{multicols}

\end{document}

donne :

1. Le texte contenu dans l’environnement multicols est du a Tobias Dantzig (Le nombre langage de la

science, 1974).

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

Page 13: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

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 ac-

cessible à l’esprit

le moins ouvert.

Par contre, la

théorie des nom-

bres est de beau-

coup la plus dif-

ficile des sci-

ences mathéma-

tiques. Sans doute,

l’exposé de ses

problèmes est si

simple qu’un en-

fant peut com-

prendre de quoi

il s’agit; mais

les méthodes em-

ployées sont si

particulières qu’il

faut une adresse

insoupçonnée et

une habileté con-

sommé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érieure-

ment reconnues

fausses, et actuelle-

ment il existe des

problèmes qui ont

épuisé toutes les

capacités des plus

grands mathémati-

ciens et restent en-

core 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 tech-

nique, mais dans

le domaine des

mathématiques

pures, elle est

toujours restée

isolée, n’ayant

que de vagues li-

aisons avec le fond

général de la sci-

ence . . .

1.4 Creer des en-tetes et des pieds de page personnalises

Le moyen le plus simple pour creer ses propres en-tetes et pieds de page consiste a utiliser le packagefancyhdr que l’on chargera au preambule du document Latex via la commande :

\usepackage{fancyhdr}

Le chargement de ce package seul n’entraıne ni une en-tete particuliere ni un pied de page particulier.C’est par contre le style de page qui donnera a un document Latex une en-tete et un pied de pageparticuliers.Pour definir son propre style de page (c’est-a-dire sa propre en-tete 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 preambule ou dans le corps du document (a l’endroit a partir duquel onsouhaite adopter le style de page fancy) ; ensuite modifier ce style aux endroits voulus du documentpar des commandes que nous allons detailler ci-dessous.Avant tout, nous allons expliquer comment fonctionne le style de page fancy par defaut.

1.4.1 Le fonctionnement par defaut du style de page fancy

Le style de page fancy cree des en-tetes particulieres qui dependent en fait de la classe du document(article, report ou book) et du mode du document (oneside ou twoside). Pour ce qui concerne les 3types de classes : article, report et book d’un document Latex, ils sont bien connus et nous jugeonsinutile de les rappeler en detail ; juste en deux mots : la classe article est utilisee pour rediger desarticles alors que les deux classes report et book sont utilisees pour rediger desmemoires de these,des polycopies, des livres, . . . etc. En revanche, les modes oneside et twoside d’un document Latexnecessitent un eclaircissement.

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

Page 14: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

Le mode oneside :

C’est le mode “recto”. Le role de ce mode est d’attribuer a toutes les pages d’un document Latexla meme en-tete et le meme pied de page.

Le mode twoside :

C’est le mode “recto-verso”. Le role de ce mode est d’attribuer aux pages d’un document Latex desen-tetes et des pieds de page differents selon leur parite. Plus precisement, il attribue aux pagespaires la meme en-tete et le meme pied de page et aux pages impaires aussi la meme en-tete et lememe pied de page. Ainsi, une page impaire (recto) aura une en-tete et un pied de page differentsde ceux d’une page paire (verso).

Le mode que l’on choisit pour rediger son document Latex doit etre declare comme argument(optionnel) de la classe du document. On tapera par exemple :

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

N.B : Si on ne declare pas le mode d’un document Latex, il sera attribue par defaut a ce documentle mode oneside s’il est de classe article ou report et le mode twoside s’il est de classe book.

L’en-tete par defaut du style de page fancy est decrite dans ce qui suit :

1. Pour la classe article :

(a) Pour le mode oneside : On verra apparaıtre un trait horizontal au dessus duquelfigure : la section courante a droite et la sous-section courante a gauche.

(b) Pour le mode twoside : On verra apparaıtre un trait horizontal au dessus duquelfigure :

Pour les pages paires : la section courante a droite et la sous-section cou-rante a gauche.

Pour les pages impaires : la section courante a gauche et la sous-sectioncourante a droite.

2. Pour les classes report et book :

(a) Pour le mode oneside : On verra apparaıtre un trait horizontal au dessus duquelfigure : le chapitre courant a droite et la section courante a gauche.

(b) Pour le mode twoside : On verra apparaıtre un trait horizontal au dessus duquelfigure :

Pour les pages paires : le chapitre courant a droite et la section courante agauche.

Pour les pages impaires : le chapitre courant a gauche et la section courantea droite.

Remarques :— Dans l’en-tete par defaut du style de page fancy, les titres figurant au dessus du trait

horizontal sont ecrits en majuscules et en italique.— Pour ce qui concerne le pied de page, le style fancy n’ajoute rien a ce qui est standard, a

savoir la numerotation de la page courante au centre du bas de page.

Nous allons maintenant expliquer comment modifier le style de page fancy pour creer nos propresen-tetes et nos propres pieds de page.

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

Page 15: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

1.4.2 Modification du style de page fancy pour creer ses propres en-teteset pieds de page

Modification du trait horizontal de l’en-tete

Les commandes a utiliser pour supprimer ou rendre plus ou moins epais ou plus ou moins long letrait horizontal de l’en-tete sont :

\renewcommand{\headrulewidth}{0pt}

pour supprimer le trait en question ;

\renewcommand{\headrulewidth}{e}

pour modifier son epaisseur en e (ou e est une mesure donnee en pt, mm, . . . etc) et

\renewcommand{\headheight}{ℓ}

pour modifier sa longueur en ℓ (ou ℓ est une mesure donnee en cm, mm, pt, . . . etc).

N.B : Ces codes pourraient etre tapes aussi bien dans le preambule du document que dans lecorps du document mais dans les deux cas, ils agissent sur l’ensemble du document et non pasa partir de l’endroit ou ils etaient tapes. Il est donc preferable de les taper au preambule dudocument.

Il est aussi possible de modifier l’espacement entre l’en-tete et le corps du document en tapant (dansle preambule du document) l’un des deux codes equivalents suivants :

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

ou esp est l’espacement voulu, qui est une mesure qu’on devrait fournir en pt, cm, mm, . . . etc.

Enfin, on peut carrement remplacer le trait horizontal de l’en-tete par tout autre chose de notrechoix en utilisant le code plus general :

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

horizontal de l’en-tete}

Ce code nous permet en particulier de modifier la couleur du trait horizontal de l’en-tete qui estnoire par defaut. En effet, si l’on souhaite par exemple changer cette couleur par la rouge, il suffirade taper (dans le preambule du document) :

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

On peut meme specifier par ce meme code l’epaisseur et la longueur du trait horizontal de l’en-tete. Par exemple, si l’on souhaite modifier a la fois la couleur (en verte), l’epaisseur (en 1pt) et lalongueur (en 8cm) du trait horizontal de l’en-tete, on tapera (dans le preambule du document) :

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

En ayant un peu d’imagination, on peut meme fabriquer des en-tetes originales (voir qui sortent del’ordinaire) en remplacant le trait horizontal de l’en-tete par quelque chose d’autre. Pour illustration,nous donnons juste les deux exemples suivants :

Exemple 1 : Nous souhaitons avoir a la place du trait horizontal de l’en-tete deux traits horizontauxsimples, tres proches l’un de l’autre. L’idee pour realiser ce souhait consiste a se servir du packageulem qui permet de faire un double soulignement professionnel d’un texte voulu, via la commande\uuline{le texte voulu}.Il faudrait donc charger prealablement le package ulem au preambule du document ; ensuite taper(dans le preambule du document) le code :

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

Page 16: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

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

Exemple 2 : Nous souhaitons avoir a la place du trait horizontal de l’en-tete un trait horizontalondule (comme ✿✿✿✿✿✿). L’idee est la meme que celle de l’exemple precedent ; elle consiste a utiliserle package ulem qui permet de souligner un texte donne par un trait ondule via la commande\uwave{le texte voulu}. Apres avoir charge le package ulem au preambule du document, ondevrait (pour realiser notre souhait) taper (dans le preambule du document) le code :

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

Creation de sa propre en-tete et de son propre pied de page

La creation de sa propre en-tete et de son propre pied de page se fait en deux temps :— On supprime d’abord l’en-tete et le pied de page adoptes par defaut par le style fancy.— Ensuite, on definit sa propre en-tete et son propre pied de page.

Pour supprimer l’en-tete et/ou le pied de page adoptes par le style fancy, on procede comme suit :

1. Pour supprimer a la fois l’en-tete et le pied de page du style fancy (c’est-a-dire les titresfigurant au dessus du trait horizontal de chaque page et la numerotation de chaque page),on tapera la commande :

\fancyhf{}

(a placer dans le preambule ou dans le corps du document).

2. Pour supprimer juste l’en-tete du style fancy (c’est-a-dire les titres figurant au dessus dutrait horizontal de chaque page), on tapera la commande :

\fancyhead{}

(a placer dans le preambule ou dans le corps du document).

3. Pour supprimer juste le pied de page du style fancy (c’est-a-dire la numerotation de chaquepage), on tapera la commande :

\fancyfoot{}

(a placer dans le preambule ou dans le corps du document).

Une fois que l’on a supprime l’en-tete et/ou le pied de page par defaut du style fancy, on pourradefinir sa propre en-tete et son propre pied de page en procedant de la facon suivante :

1. Pour les documents de mode oneside : On tapera dans le preambule ou dans le corpsdu document ce qui suit :

(a) \lhead{ce qu’on desire mettre en haut-a gauche de chaque page}

(b) \rhead{ce qu’on desire mettre en haut-a droite de chaque page}

(c) \chead{ce qu’on desire mettre en haut-au centre de chaque page}

(d) \lfoot{ce qu’on desire mettre en bas-a gauche de chaque page}

(e) \rfoot{ce qu’on desire mettre en bas-a droite de chaque page}

(f) \cfoot{ce qu’on desire mettre en bas-au centre de chaque page}

2. Pour les documents de mode twoside : On dispose de deux manieres differentes pourrealiser sa mise en page :

1ere maniere : On tapera dans le preambule ou dans le corps du document ce qui suit :

(a) \lhead[ce qu’on desire mettre en haut-a gauche des pages paires]

{ce qu’on desire mettre en haut-a gauche des pages impaires}

Attention : il n’y a pas de saut de ligne dans ce code ainsi que dans ceux qui vontsuivre.

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

Page 17: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

(b) \rhead[ce qu’on desire mettre en haut-a droite des pages paires]

{ce qu’on desire mettre en haut-a droite des pages impaires}

(c) \chead[ce qu’on desire mettre en haut-au centre des pages paires]

{ce qu’on desire mettre en haut-au centre des pages impaires}

(d) \lfoot[ce qu’on desire mettre en bas-a gauche des pages paires]

{ce qu’on desire mettre en bas-a gauche des pages impaires}

(e) \rfoot[ce qu’on desire mettre en bas-a droite des pages paires]

{ce qu’on desire mettre en bas-a droite des pages impaires}

(f) \cfoot[ce qu’on desire mettre en bas-au centre des pages paires]

{ce qu’on desire mettre en bas-au centre des pages impaires}

2nde maniere : On tapera dans le preambule ou dans le corps du document ce qui suit :

(a) \fancyhead[LO]{ce qu’on desire mettre en haut-a gauche des pages impaires}

N.B : LO = Left-Odd = a gauche-impaire.

(b) \fancyhead[LE]{ce qu’on desire mettre en haut-a gauche des pages paires}

N.B : LE = Left-Even = a gauche-paire.

(c) \fancyhead[RO]{ce qu’on desire mettre en haut-a droite des pages impaires}

N.B : RO = Right-Odd = a droite-impaire.

(d) \fancyhead[RE]{ce qu’on desire mettre en haut-a droite des pages paires}

N.B : RE = Right-Even = a droite-paire.

(e) \fancyhead[CO]{ce qu’on desire mettre en haut-au centre des pages impaires}

N.B : CO = Center-Odd = au centre-impaire.

(f) \fancyhead[CE]{ce qu’on desire mettre en haut-au centre des pages paires}

N.B : CE = Center-Even = au centre-paire.

(g) \fancyfoot[LO]{ce qu’on desire mettre en bas-a gauche des pages impaires}

(h) \fancyfoot[LE]{ce qu’on desire mettre en bas-a gauche des pages paires}

(i) \fancyfoot[RO]{ce qu’on desire mettre en bas-a droite des pages impaires}

(j) \fancyfoot[RE]{ce qu’on desire mettre en bas-a droite des pages paires}

(k) \fancyfoot[CO]{ce qu’on desire mettre en bas-au centre des pages impaires}

(l) \fancyfoot[CE]{ce qu’on desire mettre en bas-au centre des pages paires}

Remarque : Si, par exemple, on desire mettre le meme titre en haut-a droite de chaquepage (peu importe sa parite), on peut taper simplement le code :

\rhead{le titre voulu}

ou encore :

\fancyhead[RO,RE]{le titre voulu}

Une importante numerotation de page :

Lorsqu’on redige un CV, une serie de TD ou tout autre document latex comportant peu de pages,il est souvent souhaitable de numeroter ses pages comme suit :

Le numero de la page / Le nombre total de pages

Ainsi, si le document latex dont il s’agit contient n pages, ces pages seront numerotees par :1/n, 2/n, . . . , n/n.

Pour ce faire, on doit d’abord charger au preambule du document le package lastpage, via la com-mande :

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

Page 18: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

\usepackage{lastpage}

Noter que ce package retient des informations sur la derniere page du document ; en particulier sonnumero qui n’est rien d’autre que le nombre total des pages du document et dont on a besoin ici.

Ensuite, dans le preambule ou dans le corps du document, on tapera le code suivant :

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

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

Les commandes Latex permettant d’imprimer les numeros et les intitules du chapitre,section et sous-section en cours :

1. Les commandes Latex permettant d’imprimer les numeros des titres courants :

• La commande permettant d’imprimer le numero du chapitre courant d’un document Latex (declasse book ou report) est : \thechapter.

• La commande permettant d’imprimer le numero de la section (resp. sous-section) courante d’undocument Latex (de classe book, report ou article) est : \thesection (resp. \thesubsection).

2. Les commandes Latex permettant d’imprimer les intitules des titres courants :

a) Pour les classes report et book :

• Les commandes \leftmark et \rightmark permettent d’imprimer respectivement les intitulesdu chapitre courant et de la section courante. Ces intitules vont apparaıtre sous la forme :

CHAPITRE n. INTITULE DU CHAPITRE

(pour le chapitre numero n) et

n.m. INTITULE DE LA SECTION

(pour la section numero m du chapitre numero n).

Noter que ces intitules sont ceux de la table des matieres 2, convertis en ecriture en lettres majuscules.

• Si l’on souhaite que ces intitules ne soient pas convertis en ecriture en lettres majuscules et nesoient pas precedes de leurs numeros mais soient exactement tel qu’ils apparaissent dans la tabledes matieres, on ajoutera au preambule du document Latex (apres la definition de son en-tete etjamais avant) les deux codes :

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

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

Noter que les commandes \chaptermark et \sectionmark, lorsqu’elles sont utilisees, 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 autrechose que ce qui apparaıt dans la table des matieres, on devra ajouter juste apres (resp. juste avant)l’introduction du chapitre (resp. section) dont il s’agit, c’est-a-dire juste apres (resp. juste avant)\chapter{...} (resp. \section{...}), le code :

\chaptermark{le titre que l’on desire imprimer avec la commande \leftmark}

(resp. \sectionmark{le titre que l’on desire imprimer avec la commande \rightmark}).

Dans cette situation, l’impression donnera les titres que nous avons choisi, precedes des numeros

2. Il est possible qu’un chapitre (section, sous-section, . . .) apparaisse sous un certain nom dans la table desmatieres et sous un autre nom dans le corps du document.

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

Page 19: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

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

• Pour aller encore plus loin, on peut souhaiter que les commandes \leftmark et \rightmark im-priment exactement ce qu’on ecrit entre les accolades des commandes \chaptermark et \sectionmark(y compris si l’on souhaite une ecriture en italique, en gras, en couleurs, . . . etc). Pour ce faire,il suffira d’ajouter au preambule du document Latex (apres la definition de son en-tete et jamaisavant) les codes :

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

(pour la gestion des intitules de chapitres) et :

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

(pour la gestion des intitules de sections).

Un exemple plus complique :Dans un document Latex de classe report et de mode oneside, on souhaite avoir comme en-tete untrait horizontal simple au dessus duquel figurera :

A gauche : L’intitule du chapitre courant, ecrit sous la forme :

Chap n. Intitule du chapitre

(en couleur rouge).

A droite : L’intitule de la section courante, ecrit sous la forme :

Sec n.m. Intitule de la section

(en couleur verte).

Pour ce faire, il faudrait d’abord definir l’en-tete souhaitee au preambule du document par le code :

\pagestyle{fancy}

\fancyhead{}

\lhead{\leftmark}

\rhead{\rightmark}

(sans oublier bien sur de charger prealablement le package fancyhdr).

Ensuite, juste apres ceci et pas avant (toujours dans le preambule du document), redefinir les deuxcommandes \chaptermark et \sectionmark par :

\renewcommand{\chaptermark}[1]{\markboth{{\color{red} Chap \thechapter. #1}}{}}

\renewcommand{\sectionmark}[1]{\markright{{\color{green} Sec \thesection. #1}}}

Ainsi programme, les intitules des chapitres et sections qui apparaıtront dans l’en-tete du documentseront exactement ceux donnes par les commandes \chaptermark et \sectionmark lorsque celles-ci sont utilisees ; sinon ceux de la table des matieres.

b) Pour la classe article :

• Les commandes \leftmark et \rightmark permettent d’imprimer respectivement les intitulesde la section courante et de la sous-section courante. Ces intitules vont apparaıtre sous la forme :

n INTITULE DE LA SECTION

(pour la section numero n) et

n.m Intitule de la sous-section

(pour la sous-section numero m de la section numero n).

Noter que ces intitules sont ceux de la table des matieres, convertis en ecriture en lettres majusculespour les sections et laisses tels quels pour les sous-sections.

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

Page 20: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

• Si l’on souhaite que ces intitules ne soient ni precedes de leurs numeros ni convertis en ecriture enlettres majuscules (pour les sections) mais soient exactement tels qu’ils apparaissent dans la tablesdes matieres, on ajoutera au preambule du document Latex (apres la definition de son en-tete etjamais avant) les deux codes :

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

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

Noter que les commandes \sectionmark et \subsectionmark, lorsqu’elles sont utilisees, offrentrespectivement aux commandes \leftmark et \rightmark ce qu’elles devront imprimer (voir leprochain item).

• Si l’on souhaite maintenant que les commandes \leftmark et \rightmark impriment autre choseque ce qui apparaıt dans la table des matieres, on devra ajouter juste apres (resp. juste avant) l’in-troduction de la section (resp. sous-section) dont il s’agit, c’est-a-dire juste apres (resp. juste avant)\section{...} (resp. \subsection{...}), le code :

\sectionmark{le titre que l’on desire imprimer avec la commande \leftmark}

(resp. \subsectionmark{le titre que l’on desire imprimer avec la commande \rightmark}).

Dans cette situation, l’impression donnera les titres que nous avons choisi, precedes des numeros dessections (resp. sous-sections) concernees. Ces titres sont, en outre, convertis en ecriture en lettresmajuscules 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 ecrit entre les accolades des commandes \sectionmark et \subsectionmark(y compris si l’on souhaite une ecriture en italique, en gras, en couleurs, en minuscules, . . . etc).Pour ce faire, il suffira d’ajouter au preambule du document Latex (apres la definition de son en-teteet jamais avant) les codes :

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

(pour la gestion des intitules de sections) et :

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

(pour la gestion des intitules de sous-sections).

Un exemple plus complique :Dans un document Latex de classe article et de mode oneside, on souhaite avoir comme en-tete untrait horizontal simple au dessus duquel figurera :

A gauche : L’intitule de la section courante, ecrit sous la forme :

Section n. Intitule de la section

(en couleur rouge).

A droite : L’intitule de la sous-section courante, ecrit sous la forme :

Sous-section n.m. Intitule de la sous-section

(en couleur verte).

Pour ce faire, il faudrait d’abord definir l’en-tete souhaitee au preambule du document par le code :

\pagestyle{fancy}

\fancyhead{}

\lhead{\leftmark}

\rhead{\rightmark}

(sans oublier bien sur de charger prealablement le package fancyhdr).

Ensuite, juste apres ceci et pas avant (toujours dans le preambule du document), redefinir les deuxcommandes \sectionmark et \subsectionmark par :

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

Page 21: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

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

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

Ainsi programme, les intitules des sections et des sous-sections qui apparaıtront dans l’en-tete dudocument seront exactement ceux donnes par les commandes \sectionmark et \subsectionmarklorsque celles-ci sont utilisees ; sinon ceux de la table des matieres.

Une derniere remarque : Les commandes \leftmark et \rightmark fonctionnent correctementlorsqu’on les utilise pour definir sa propre en-tete (c’est-a-dire accompagnees des commandes tellesque \lhead, \rhead, . . . etc) mais elles fonctionnent moins bien lorsqu’on les utilise seules dans lecorps d’un document Latex.

Exercices

Exercice 1 : Le texte encadre ci-dessous constitue une page d’une serie de TD ecrite 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 ψ dansl’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− y2 + 2y.— Déterminer l’expression de ψ(x, y) en fonction de x et de y, puis en déduirel’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éepar:

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 contientun chemin fermé γ et soit a un point du plan complexe se trouvantà l’intérieur de γ. Alors, on a:

f (n)(a) =n!

2πi

γ

f(z)

(z − a)n+1dz,

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

1. En utilisant la formule intégrale de Cauchy montrer que l’on a pourtout t ∈ R et tout n ∈ N:

(

tn

n!

)2

=1

2π i

γ

tnetz

n!zn+1dz ,

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=0

(

tn

n!

)2

=1

∫ 2π

0

e2t cos θ dθ.

2/3 B. Farhi

Comme on le constate, l’en-tete et le pied de page du document en question sont composes commesuit :

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

Page 22: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

En-tete : Un trait horizontal d’epaisseur 1 pt. A sa droite c’est marque “Annee 2011-2012”et a sa gauche c’est marque “Universite A. Mira de Bejaia” (ecriture en italique).

Pied de page : A droite c’est marque le nom de l’auteur, en l’occurrence “B. Farhi”(ecriture en petites lettres majuscules). Au centre se trouve la numerotation de la pagequi est presentee ici sous la forme “Numero de la page/Nombre total de pages”. Enfin, agauche, on voit apparaıtre le logo de l’universite de Bejaia ; il s’agit d’une image de formateps, nommee logoubej, inseree a cet endroit en reduisant sa taille a moitie (on supposeraque cette image se trouve dans le meme repertoire que le document Latex dont il s’agit).

— Donner l’ensemble des instructions qui nous ont permis de realiser l’en-tete et le pied de page dece document.

Solution : Le code source qui permet d’obtenir l’en-tete et le pied de page du document enquestion est le suivant :

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

% est oneside par defaut)

\usepackage[T1]{fontenc} % Pour avoir des caracteres en codage T1

\usepackage[utf8]{inputenc} % Pour gerer les accents

\usepackage[francais]{babel} % Pour avoir certains titres en francais

\usepackage{graphicx} % Pour pouvoir inserer des figures

\usepackage{amsmath} % Pour avoir certains symboles mathematiques

\usepackage{amssymb} % Pour les symboles AMS

\usepackage{color} % Pour gerer les couleurs

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

\usepackage{lastpage} % Pour referencer la derniere page du document

\pagestyle{fancy}

\fancyhf{}

\renewcommand{\headrulewidth}{1pt}

\rhead{Annee 2011-2012}

\lhead{\textit{Universite A. Mira de Bejaia}}

\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 colore en bleu sont celles agissantsur le style du document (c’est-a-dire sur son en-tete et son pied de page). �

Exercice 2 : On souhaite attribuer a un ouvrage mathematique ecrit en Latex (de classe book)la mise en page decrite ci-dessous :

En-tete :— Un trait horizontal de couleur magenta et d’epaisseur 0,1 pt.— Au dessus-a gauche de ce trait horizontal, on fera apparaıtre le nom de l’auteur, enl’occurrence B. Farhi, ecrit en vert et en petites lettres majuscules.— Au dessus-a droite du trait horizontal, on fera apparaıtre pour les pages impaires l’intituledu chapitre courant precede de son numero et pour les pages paires l’intitule de la sectioncourante precedee de son numero. Ces intitules seront ecrits en couleur rouge, en petitesecriture (small) et en lettres minuscules.

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

Page 23: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 1. STRUCTURE GENERALE D’UN DOCUMENT LATEX

Pied de page :— A droite, on fera apparaıtre l’url http://farhi.bakir.free.fr/ du site internet del’auteur, non pas comme un simple texte mais comme un lien hypertexte.— Au centre, le numero de la page courante.— A gauche, le logo de l’Universite de Bejaia (une image de format eps nommee logoubejet classee dans le meme repertoire que le document Latex en question, qu’on reduira amoitie).

— Donner l’ensemble des instructions qui feront realiser cette mise en page.

Solution : L’ensemble des instructions qui permettent de realiser la mise en page souhaitee estdonne dans ce qui suit :

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

% est twoside par defaut)

\usepackage[T1]{fontenc} % Pour avoir des caracteres en codage T1

\usepackage[utf8]{inputenc} % Pour gerer les accents

\usepackage[francais]{babel} % Pour avoir certains titres en francais

\usepackage{graphicx} % Pour pouvoir inserer des figures

\usepackage{amsmath} % Pour avoir certains symboles mathematiques

\usepackage{amssymb} % Pour les symboles AMS

\usepackage{color} % Pour gerer les couleurs

\usepackage{hyperref} % Pour gerer 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 colore en bleu sont celles agissantsur le style du document (c’est-a-dire sur son en-tete et son pied de page). �

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

Page 24: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

CHAPITRE 2

LES NOTES EN BAS DE PAGE

En Latex, les notes en bas de la page se realisent par la commande :

\footnote{Le texte de la note}

que l’on met devant le mot auquel une note voulue est affectee. Par cette commande, les notes sontnumerotees par defaut en chiffres arabes (1, 2, 3, . . .etc). Plusieurs d’autres types de numerotationssont possibles. On donnera l’essentiel de ces types dans ce qui suit :

2.1 Les types de numerotations

2.1.1 Numerotation en chiffres romains

Pour obtenir des numerotations de footnotes en chiffres romains majuscules, il suffit d’ajouter al’en-tete de votre document latex ceci :

\def\thefootnote{\Roman{footnote}}

Pour obtenir des numerotations de footnotes en chiffres romains minuscules, on fait la meme choseen remplacant juste Roman par roman.Pour revenir ensuite, a partir d’un endroit voulu du document, a la numerotation standard defootnotes (c’est-a-dire a la numerotation en chiffres arabes), on met au debut de cet endroit ceci :

\def\thefootnote{\arabic{footnote}}

2.1.2 Numerotation en lettres latines

Pour obtenir des numerotations de footnotes en lettres latines majuscules, il suffit d’ajouter al’en-tete de votre document latex ceci :

\def\thefootnote{\Alph{footnote}}

Pour obtenir des numerotations de footnotes en lettres latines miniscules, on fait la meme chose enremplacant juste Alph par alph.

2.1.3 Numerotations a l’aide de symboles (autres les chiffres et les lettres)

En Latex, on peut numeroter les footnotes a l’aide des neufs symboles suivants :

∗ † ‡ § ¶ ‖ ∗∗ †† ‡‡ (dans cet ordre).

20

Page 25: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 2. LES NOTES EN BAS DE PAGE

Pour ce faire, il suffira de mettre au debut de votre document ceci :

\def\thefootnote{\fnsymbol{footnote}}

2.2 Comment forcer une footnote a prendre un numero voulu

Pour forcer une note a prendre un numero voulu (pour n’importe quel type de numerotation),on utilise le code :

\footnote[Le numero voulu]{Le texte de la note}

Exemple : Le texte suivant insere dans votre document latex :

\def\thefootnote{\fnsymbol{footnote}}

Le theoreme d’al-Kashi\footnote[7]{Mathematicien 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 theoreme d’al-Kashi∗∗affirme que dans un triangle quelconque ABC, on a : BC2 =

AB2 + AC2 − 2AB ·AC cos BAC .

Et en bas de la page, on aura la footnote :**Mathematicien musulman.

2.3 Comment faire une footnote a l’interieur de certains en-

vironnements

Dans certains environnements tels theorem, minipage, tabular, . . .etc, la commande \footnotene fonctionne pas correctement. En fait, le code \footnote{Le texte de la note} marque lemot qui le precede par un numero mais ne fait pas figurer la note qui lui est associee en basde la page. Pour y remedier a ce probleme, on doit plutot mettre \footnotemark juste apresle mot auquel on veut associer une note, puis apres, on precisera la note voulue par le code\footnotetext{Le texte de la note}.En fait, le code \footnotemark sert juste a marquer le mot qui le precede par un petit numero,alors que le code \footnotetext{Le texte de la note} fait figurer la note voulue en bas de lapage.

Attention : Le code \footnotetext{Le texte de la note} doit etre place apres le code\footnotemark auquel il est associe et avant un autre code \footnotemark pour eviter la confu-sion.

D’autres manieres d’utilisation des footnotes (notamment a l’interieur d’un environnement) sontdonnees dans ce qui suit :

• Pour associer un numero voulu n a une footnote a l’aide des commandes \footnotemark et\footnotetext, on mettra :

\footnotemark[n]

(juste apres le mot auquel on veut associer une note), puis apres :

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

• Pour associer une seule note a plusieurs endroits (mots) du texte, on mettra devant chaque endroitvoulu :

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

Page 26: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 2. LES NOTES EN BAS DE PAGE

\footnotemark[n]

ou n est un numero voulu. Ensuite, apres 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 mathematiciens du monde, on cite:

al-Khawarizmi\footnotemark[3], Abu Kamil\footnotemark[3],

al-Kashi\footnotemark[3], Gauss\footnotemark[4], \dots \, etc.

\footnotetext[3]{Mathematicien musulman.}

\footnotetext[4]{Mathematicien allemand.}

donne :

Parmi les grands mathematiciens du monde, on cite : al-Khawarizmi3, Abu Kamil3,al-Kashi3, Gauss4, . . . etc.

puis apres en bas de la page :

3Mathematicien musulman.4Mathematicien allemand.

Exemple 2 : Supposons que l’on a deja mis 5 footnotes dans notre document. Alors, le meme textede l’exemple precedent peut s’ecrire comme suit :

Parmi les grands mathematiciens du monde, on cite:

al-Khawarizmi\footnote{Mathematicien musulmans.},

Abu Kamil\footnotemark[6], al-Kashi\footnotemark[6],

Gauss\footnote{Mathematicien allemand.}, \dots \, etc.

Ce qui donnera :

Parmi les grands mathematiciens du monde, on cite : al-Khawarizmi6, Abu Kamil6,al-Kashi6, Gauss7, . . . etc.

puis apres en bas de la page :

6Mathematicien musulman.7Mathematicien allemand.

Attention : L’astuce de ce second exemple marche bien a condition de ne pas ajouter apres desfootnotes avant celles du texte en l’occurrence.

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

Page 27: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

CHAPITRE 3

LATEX MATHEMATIQUE

3.1 Les equations

3.1.1 Equations courtes et moyennes

Pour ecrire une equation numerotee (qui tiendra sur une ligne), on utilise l’environnementequation. 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 :n∑

k=1

k3 =

(

n∑

k=1

k

)2

=n2(n+ 1)2

4(1)

(en supposant que c’est la premiere equation de votre document).Le code \label{al-karaji} sert a referencer l’equation en question ; ici notre equation estreferencee par le nom du mathematicien qui l’a decouverte. Pour se referer ensuite a cette equationdans notre document, on utilise le code \eqref{al-karaji} ou bien le code (\ref{al-karaji})pour donner (1).Pour ecrire une equation non numerotee, on utilise l’environnement equation* plutot que equation.

3.1.2 Equations longues

Pour ecrire une equation longue (c’est-a-dire qui ne tient pas sur une seule ligne) et numerotee,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 deuxieme equation de votre document).On pourra bien sur referencer l’equation longue en question en utilisant le code \label{la reference}.

23

Page 28: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 3. LATEX MATHEMATIQUE

Pour ecrire une equation longue non numerotee, on utilise l’environnement multline* plutot quemultline.Pour ecrire une equation longue numerotee avec des alignements bien precis, on utilise l’environne-ment split a l’interieur 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) =

2x2n+1

(3)

(en supposant que c’est la troisieme equation de votre document).Noter que le symbole & marque les endroits d’alignement.Pour une equation du meme style mais non numerotee, on utilise l’environnement equation* plutotque equation.Pour referencer l’equation en question, on utilise le code \label{la reference} et pour citerensuite cette reference dans le document, on utilise le code \eqref{la reference}.

3.1.3 Serie d’equations

Pour ecrire une serie d’equations numerotees et alignees, 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)

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

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

(en supposant que ces equations sont les trois premieres equations de votre document).Rappelons que le symbole & precise les endroits d’alignement.Pour ecrire une serie d’equations alignees et non numerotees, on utilise l’environnement eqnarray*plutot que eqnarray.

Pour ecrire une serie d’equations alignees dont certaines sont numerotees et d’autres non, onutilise l’environnement eqnarray et on precisera qu’une equation est non numerotee en ajoutant lecode \notag a 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/

Page 29: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 3. LATEX MATHEMATIQUE

donne :

(a+ b) + (a− b) = 2a (4)

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

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

3.1.4 Equations numerotees par une numerotation de notre choix

Pour ecrire une equation et la numeroter par une numerotation de notre choix, on utilise parexemple l’environnement equation en precisant a la fin de l’equation sa numerotation par le code :\tag{numero ou symbole choisi}. Par exemple le code :

\begin{equation}

E = mc^2 . \tag{$I$}

\end{equation}

donne :E = mc2. (I)

Noter que les parentheses de la numerotation se mettent par defaut.

Attention : Contrairement a \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/

Page 30: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

CHAPITRE 4

LES COULEURS

4.1 Les couleurs predefinies

Pour pouvoir utiliser des couleurs en Latex, on doit charger a l’en-tete de notre document l’undes deux packages suivants :

\usepackage{color} ou \usepackage{xcolor}

Ensuite, pour utiliser une couleur donnee, la commande est :

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

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

Il est a savoir que le package color a 8 couleurs predefinies qui sont donnees dans le tableau suivant :

Nom de la couleur Nom en francais la couleur en questionblack Noirwhite Blancred Rougegreen Vertblue Bleucyan Bleu clairmagenta Magentayellow Jaune

Ainsi, pour ecrire par exemple le texte “Omar va a l’ecole” en magenta, on utilise l’une des deuxcommandes equivalentes suivantes :

{\color{magenta} Omar va a l’ecole}

ou

\textcolor{magenta}{Omar va a l’ecole}

De meme, pour ecrire le texte mathematique “∀x ∈ R : x2 + x + 1 ≥ 0” en rouge, on utilise lacommande :

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

26

Page 31: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 4. LES COULEURS

4.2 Couleurs personnelles

On pourrait bien avoir envie d’utiliser d’autres couleurs autre les 8 couleurs predefinies precedentes.Ceci est bien sur possible en Latex et on a trois types de couleurs que voici :

1er type : il est defini par la syntaxe gray. Il contient toutes les couleurs grises possibles, du blancau noir. La syntaxe gray est suivi du taux de blanc dans la couleur voulue. Le taux 1 correspond a lacouleur blanche et le taux 0 correspond a la couleur noir. Par exemple, pour definir la couleur grisede taux de blancheur 0.7, on insere a l’en-tete de notre document Latex la commande :

\definecolor{gris}{gray}{0.7}

(noter que le mot “gris” de la premiere accolade est de notre choix). Ensuite pour utiliser cettecouleur qu’on a nomme “gris”, on se sert de l’une des deux syntaxes equivalentes suivantes :

{\color{gris} Texte voulu} ou \textcolor{gris}{Texte voulu}

On obtient alors :

Texte voulu

Pour une utilisation unique, on pourra bien sur utiliser notre couleur grise sans la definir prealablement,et la syntaxe dans ce cas la est :

{\color[gray]{0.7} Texte voulu} ou \textcolor[gray]{0.7}{Texte voulu}

2eme type : il est defini par la syntaxe rgb. Il contient toutes les couleurs. Ces couleurs peuvent etredefinies a 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’ou le nom rgb, comme red-green-blue. Voici un exemple de definition puis d’utilisation d’unecouleur de type rgb :

\definecolor{vertolive}{rgb}{0.5,0.5,0}

(bien entendu le nom “vertolive” est de notre choix). Cette definition est a inserer bien sur a l’en-tetedu document Latex. Ensuite, pour utiliser cette couleur que l’on vient de definir, on se sert de l’unedes deux syntaxes equivalentes 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 decimaux compris entre 0 et 1 mais leurs sommen’est pas obligatoirement egale a 1.Comme pour le premier type, si notre utilisation pour cette couleur est unique ou rare, on pourral’utiliser sans la definir prealablement. Pour ce faire, on utilise l’une des deux syntaxes equivalentessuivantes :

{\color[rgb]{0.5,0.5,0} Texte voulu} ou \textcolor[rgb]{0.5,0.5,0}{Texte voulu}

3eme type : il est defini par la syntaxe RGB. Ce codage (nomme RVB en francais) contient toutesles couleurs visibles par l’homme. Toute couleur est definie par trois entiers naturels, tous inferieursstrictement a 256 = 28. Ces nombres correspondent aux composantes du rouge, du vert et du bleudans une couleur donnee ; d’ou le nom RGB (comme Red-Green-Blue). En fait, chaque composanteest codee sur 8 bits, ce qui donne 28 = 256 niveaux d’intensite pour chacune d’elles. Noter quece codage est le plus utilise par les logiciels d’imagerie et c’est celui que nous preferons aussi pourLatex. En voici quelques exemples faciles de couleurs representees par ce codage :

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

Page 32: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 4. LES COULEURS

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

— Le vert est evidemment un RGB(0, 255, 0).

— Le bleu est evidemment un RGB(0, 0, 255).

— Le jaune est un RGB(255, 255, 0) (c’est donc un melange du rouge et du vert avec unememe intensite, 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 definir une couleur via son codage RGB, on utilise la commande :

\definecolor{Nom de votre choix}{RGB}{a,b,c}

ou a, b et c sont des entiers naturels inferieurs strictement a 256 et designant respectivement lesintensites du rouge, du vert et du bleu dans la couleur en question. Ensuite, pour utiliser cettecouleur afin de colorer par exemple un certain texte, on utilise comme avant l’une des deux syntaxesequivalentes suivantes :

{\color{Le nom choisi pour votre couleur} Texte voulu}

ou \textcolor{Le nom choisi pour votre couleur}{Texte voulu}

Pour utiliser de facon temporaire une couleur definie par son code RGB, on peut le faire sans definirprealablement cette couleur. La commande a utiliser est :

{\color[RGB]{a,b,c} Texte a colorer} ou \textcolor[RGB]{a,b,c}{Texte a colorer}

ou a, b et c designent respectivement les intensites du rouge, du vert et du bleu dans la couleur enquestion.

4eme type : il est defini par la syntaxe cmyk. Ce type contient toutes les couleurs. Il est code par 4taux 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 definition d’une couleur via le codage cmyk se fait par lacommande :

\definecolor{Nom de votre choix}{cmyk}{a,b,c,d}

ou a, b, c et d sont les nombres decimaux compris entre 0 et 1 (mais de somme non forcementegale a 1) representant respectivement les taux du cyan, du magenta, du jaune et du noire dans lacouleur definie.Pour utiliser une couleur sans la definir prealablement, on utilise l’une des deux commandes equi-valentes suivantes :

{\color[cmyk]{a,b,c,d} Texte a colorer}

ou \textcolor[cmyk]{a,b,c,d}{Texte a colorer}

ou a, b, c et d sont les taux respectifs du cyan, du magenta, du jaune et du noire dans la couleurutilisee.

Une remarque supplementaire : On peut obtenir facilement le code rgb du code RGB et viceversa. Pour ce faire, on a la regle :

RGB(A,B,C) = rgb(a, b, c), avec a = A256

, b = B256

, c = C256

.

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

Page 33: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 4. LES COULEURS

4.3 Pour une liste exhaustive de couleurs

Pour avoir a sa disposition une liste plus exhaustive de couleurs (predefinies), on pourra utiliserle package xcolor avec l’une de ses trois differentes options : dvipsnames (qui charge 68 couleursdifferentes), svgnames (qui charge 151 couleurs differentes) et x11names (qui charge 317 couleursdifferentes !).

Exemple : En inserant a l’en-tete de notre document Latex le code :

\usepackage[x11names]{xcolor}

puis, au niveau du corps du meme document, la commande :

\textcolor{Red3}{Essai} % Red3 est l’une des couleurs chargees par l’option

x11names du package xcolor

on obtient ceci :

Essai

Les differentes couleurs que charge l’option dvipsnames du package xcolor sont donnees dans untableau a la page suivante. Pour les couleurs que nous offrent les deux autres options svgnames etx11names, on invite le lecteur a consulter l’internet (il les obtient immediatement par une simplerecherche google).

4.4 Comment utiliser rapidement avec WinEdt une couleur :

Sous WinEdt, il existe une facon simple d’utiliser ou de definir une couleur sans perdre sontemps a chercher son code. En cliquant sur l’icone 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 sacommande s’affiche sur le texte avec son code rgb. A droite de la palette, il y a egalement des casesa remplir par les intensites en code RGB d’une couleur a definir et voir immediatement cette couleur.

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

Page 34: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 4. LES COULEURS

4.5 Les couleurs generees par l’option dvipsnames du pa-

ckage xcolor

Code de la couleur La couleur en question

ApricotAquamarineBittersweetBlackBlueGreenBlueVioletBlueBrickRedBrownBurntOrangeCadetBlueCarnationPinkCeruleanCornflowerBlueCyanDandelionDarkOrchidEmeraldForestGreenFuchsiaGoldenrodGrayGreenYellowGreenJungleGreenLavenderLimeGreenMagentaMahoganyMaroonMelonMidnightBlueMulberryNavyBlue

Code de la couleur La couleur en question

OliveGreenOrangeRedOrangeOrchidPeachPeriwinklePineGreenPlumProcessBluePurpleRawSiennaRedOrangeRedVioletRedRhodamineRoyalBlueRoyalPurpleRubineRedSalmonSeaGreenSepiaSkyBlueSpringGreenTanTealBlueThistleTurquoiseVioletRedVioletWhiteWildStrawberryYellowGreenYellowOrangeYellow

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

Page 35: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

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 necessitent aucun package particulier. Les textes qu’on mettraa l’interieur de ces boites doivent tenir en une seule ligne 1.La commande \framebox comporte deux arguments optionnels. Le premier sert a fixer la largeurde la boite et le second sert a choisir l’alignement voulu au texte de la boite (alignement a gauche(l), alignement a droite (r), centralisation (c), repartition 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’epaisseur de la bordure est specifiee par le code : \setlength{\fboxrule}{epaisseur voulue}.

Exemple : Le code :

\setlength{\fboxrule}{2pt}

\framebox[8cm][c]{Rien de special!}

donne :

Rien de special !

• Les differents types d’alignement sont :

l (alignement a gauche)r (alignement a droite)c (centralisation)s (On repartit les mots du texte uniformement sur la longueur de la boite).

Exemple : Le code : \framebox[6cm][s]{Une belle boite} donne :

Une belle boite

Remarque : La commande \boxed est reservee a mettre dans une boite un texte mathematique(elle doit etre donc mise entre deux dollars).

1. Voir plus loin pour ce qui concerne les textes comportant plusieurs lignes.

31

Page 36: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

Un exemple important et utile :Pour fabriquer une boite de largeur egale a 3 fois la largeur du texte qu’elle contiendra, lequel seracentre, 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 inserer tout un paragraphe dans une boite (avec la commande \fbox), on doit utiliser enplus la commande \parbox dont le premier parametre est la largeur de la boite et le second estson contenu. Pour controler l’alignement du texte de la boite, on utilise les commandes d’aligne-ment : \flushleft (alignement a gauche), \flushright (alignement a droite) et \centering

(centralisation).

Exemple : Le code 2

\fbox{\parbox{8cm}{\flushleft

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirent

que l’integrale de Riemann devait etre remplacee par quelque autre

type d’integrale, tout a la fois plus souple, plus general et mieux

adapte au passage a la limite. Les tentatives les plus notables sont

dues a C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier

obtint la construction qui s’avera la plus reussie.

}

}

donne :

Vers la fin du 19 eme siecle, beaucoup demathematiciens comprirent que l’integrale deRiemann devait etre remplacee par quelqueautre type d’integrale, tout a la fois plussouple, plus general et mieux adapte aupassage a la limite. Les tentatives les plusnotables sont dues a C. Jordan, E. Borel,W.H. Young et H. Lebesgue. Ce dernier obtintla construction qui s’avera la plus reussie.

2. Le texte de la boite est extrait du livre de Walter Rudin, qui s’intitule ≪ Analyse reelle et complexe ≫ (traduiten francais par Jean Dhombres).

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

Page 37: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

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 a l’en-tete du fichier tex a travers la commande\usepackage{fancybox}) permet d’obtenir des boites a plusieurs types de bordures. Les com-mandes a utiliser sont :

• \doublebox (pour les boites a doubles bordures)• \ovalbox (pour les boites a bordures ovales)• \Ovalbox (pour les boites a bordures ovales et epaisses)• \shadowbox (pour les boites a ombre).

Exemples : Les codes :

\doublebox{double bordure}, \ovalbox{boite ovale},\Ovalbox{boite ovale a bordure epaisse} et \shadowbox{boite a ombre} donnent res-pectivement :

double bordure ,✞✝

☎✆boite ovale ,

✞✝ ☎✆boite ovale a bordure epaisse etboite a ombre

.

Quelques options supplementaires pour les commandes \ovalbox, \Ovalbox et \shadowbox :

• Pour les commandes \ovalbox et \Ovalbox, les rondeurs des coins arrondis peuvent etre modifieespar la commande \cornersize{rondeur voulue}.

• Pour la commande \shadowbox, la taille de l’ombre peut etre modifiee 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 utiliseprecedemment ne peuvent fabriquer que des boites comportant une seule ligne. Pour qu’elles puissentfabriquer 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 eme siecle, beaucoup de mathematiciens comprirent

que l’integrale de Riemann devait etre remplacee par quelque autre

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

Page 38: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

type d’integrale, tout a la fois plus souple, plus general et mieux

adapte au passage a la limite. Les tentatives les plus notables sont

dues a C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier

obtint la construction qui s’avera la plus reussie.

}

}

donne :

Vers la fin du 19 eme siecle,beaucoup de mathematicienscomprirent que l’integrale deRiemann devait etre remplacee parquelque autre type d’integrale,tout a la fois plus souple, plusgeneral et mieux adapte aupassage a la limite. Les tentativesles plus notables sont dues a C.Jordan, E. Borel, W.H. Young etH. Lebesgue. Ce dernier obtint laconstruction qui s’avera la plusreussie.

2. Le code :

\Ovalbox{

\begin{minipage}{0.75\textwidth}

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirent

que l’integrale de Riemann devait etre remplacee par quelque autre

type d’integrale, tout a la fois plus souple, plus general et mieux

adapte au passage a la limite. Les tentatives les plus notables sont

dues a C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier

obtint la construction qui s’avera la plus reussie.

\end{minipage}

}

donne :✬

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirentque l’integrale de Riemann devait etre remplacee par quelque autre typed’integrale, tout a la fois plus souple, plus general et mieux adapte au pas-sage a la limite. Les tentatives les plus notables sont dues a C. Jordan, E.Borel, W.H. Young et H. Lebesgue. Ce dernier obtint la construction quis’avera la plus reussie.

5.3 Boites de couleurs

Le package graphicx propose les commandes \colorbox et \fcolorbox qui permettent d’avoirdes 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/

Page 39: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

La aussi, pour avoir une boite de couleur (sans bordure) comportant tout un paragraphe, il faudraitcombiner cette commande avec la commande \parbox ou avec l’environnement minipage, commec’est deja explique auparavant.

2) Pour \fcolorbox :

Elle permet de creer une boite dont la bordure et le fond prennent des couleurs voulues.

Exemple : Le code : \fcolorbox{red}{yellow}{Demonstration} donne :

Demonstration .

Encore une fois, pour inclure tout un paragraphe dans une boite avec la commande \fcolorbox, ilfaudrait combiner cette commande soit avec la commande \parbox ou bien avec l’environnementminipage, comme c’est deja explique auparavant.

D’autres exemples ou les couleurs choisies sont definies a l’aide des codes gray, rgb ouRGB :

Le code :

\fcolorbox[gray]{0}{0.9}{\parbox{7cm}{\flushleft

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirent

que l’integrale de Riemann devait etre remplacee par quelque autre

type d’integrale, tout a la fois plus souple, plus general et mieux

adapte au passage a la limite. Les tentatives les plus notables sont

dues a C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier

obtint la construction qui s’avera la plus reussie.

}

}

donne :

Vers la fin du 19 eme siecle, beaucoupde mathematiciens comprirent quel’integrale de Riemann devait etreremplacee par quelque autre typed’integrale, tout a la fois plus souple,plus general et mieux adapte au passagea la limite. Les tentatives les plusnotables sont dues a C. Jordan, E.Borel, W.H. Young et H. Lebesgue. Cedernier obtint la construction qui s’averala plus reussie.

Et le code :

\setlength{\fboxrule}{2pt}

\fcolorbox[RGB]{112,0,223}{255,128,0}{

\begin{minipage}{0.75\textwidth}

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirent

que l’integrale de Riemann devait etre remplacee par quelque autre

type d’integrale, tout a la fois plus souple, plus general et mieux

adapte au passage a la limite. Les tentatives les plus notables sont

dues a C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier

obtint la construction qui s’avera la plus reussie.

\end{minipage}

}

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

Page 40: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

donne :

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirentque l’integrale de Riemann devait etre remplacee par quelque autre typed’integrale, tout a la fois plus souple, plus general et mieux adapte au pas-sage a la limite. Les tentatives les plus notables sont dues a C. Jordan, E.Borel, W.H. Young et H. Lebesgue. Ce dernier obtint la construction quis’avera la plus reussie.

5.4 Boites a titre

On va maintenant decouvrir comment fabriquer une boite avec bordure et un titre qui se situe pardessus de cette bordure. Pour ce faire, on utilise la commande \boxput qui permet de superposerdeux boites.

La commande \boxput prend deux boites en parametres et place la premiere boite derriere laseconde. La commande \boxput* joue le meme role mais elle place la seconde boite derriere lapremiere.

Enfin, on doit specifier deux coordonnees qui indiquent ou la premiere boite est placee par rapporta la seconde. Par exemple :— Les coordonnees (0,0) indiquent que la premiere boite est centree (horizontalement et verticale-ment) par rapport a la seconde.— Les coordonnees (0,1) indiquent que la premiere boite est centree (horizontalement) et se trouveen haut par rapport a la seconde.— Les coordonnees (1,0) indiquent que la premiere boite se trouve a droite et elle est centree (ver-ticalement) par rapport a la seconde.— Les coordonnees (-1,-1) indiquent que la premiere boite se trouve a gauche et en bas de laseconde.

En tout, on a 9 cas possibles pour les coordonnees a specifier, puisque ces coordonnees appartiennenta l’ensemble :

{(x, y) : x ∈ {−1, 0, 1} et y ∈ {−1, 0, 1}}.

La syntaxe des commandes \boxput (resp. \boxput*) est :

\boxput(x,y){1ere boite}{2nde boite} (resp. \boxput*(x,y){1ere boite}{2nde boite}).

Exemple :

On veut fabriquer une boite sans bordure, de fond gris, contenant un texte qui se trouve separe de lafrontiere de 10 points et on veut que cette boite porte un titre qui se trouvera en haut et au centre(en plus, ecrit en gras). Pour ce faire, on utilisera la commande \boxput* dans laquelle la premiereboite sera juste le titre (qui va etre considere comme une boite sans bordure, de fond blanc) et laseconde boite sera la boite a texte, de fond gris, en question. Le code complet est le suivant :

\boxput*(0,1){

\colorbox{white}{\bf Les integrales de Lebesgue}

}{

\setlength{\fboxsep}{10pt}

\colorbox[gray]{0.7}{\begin{minipage}{0.8\textwidth}

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirent

que l’integrale de Riemann devait etre remplacee par quelque autre

type d’integrale, tout a la fois plus souple, plus general et mieux

adapte au passage a la limite. Les tentatives les plus notables sont

dues a C. Jordan, E. Borel, W.H. Young et H. Lebesgue. Ce dernier

obtint la construction qui s’avera la plus reussie.

\end{minipage}}

}

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

Page 41: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

Ce qui donne :

Vers la fin du 19 eme siecle, beaucoup de mathematiciens comprirent quel’integrale de Riemann devait etre remplacee par quelque autre type d’integrale,tout a la fois plus souple, plus general et mieux adapte au passage a la limite.Les tentatives les plus notables sont dues a C. Jordan, E. Borel, W.H. Young etH. Lebesgue. Ce dernier obtint la construction qui s’avera la plus reussie.

Les integrales de Lebesgue

5.5 Utilisation des boites pour empecher certaines cesures

LATEX

LATEX fait souvent des cesures indesirables pour ne pas depasser la ligne. Pour empecher LATEXde commettre ces cesures, quitte a depasser la ligne s’il le faut, les specialistes utilisent des boitessans bordure et sans couleur. L’idee consiste a mettre le mot (ou le texte) a ne pas couper dans uneboite (sans bordure et sans couleur). LATEX ne saura jamais decouper une boite ; ce qui fait que lemot (ou le texte) de la boite restera toujours sur une meme ligne.Les codes permettant de creer des boites sans bordure et sans couleur sont de deux types : \mboxet \makebox.• Pour \mbox, la syntaxe est simple :

\mbox{le mot ou le texte a ne pas decouper}

• Pour \makebox, c’est la meme syntaxe mais elle met a notre disposition deux options facultatives :la premiere pour specifier la longueur de la boite et la seconde pour preciser l’alignement horizontaldu texte a l’interieur de la boite

(

alignement a gauche (l), alignement a droite (r), centralisation

(c) ou repartition 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 mondesalut tout le monde

salut tout le mondesalut tout le monde

salut tout le monde

Exemple d’utilisation d’une boite pour eviter une cesure :

La phrase :

Pour Gauss et pour beaucoup de mathematiciens du monde, la theorie des nombres

est incontestablement la reine des mathematiques.

(ainsi tapee) donne apres compilation :

Pour Gauss et pour beaucoup de mathematiciens du monde, la theorie des nombres est incontesta-blement la reine des mathematiques.

ou l’on constate que le mot “incontestablement” est decoupe en incontesta-blement. Pour evitercette coupure, on devra taper la phrase precedente comme ceci :

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

Page 42: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

Pour Gauss et pour beaucoup de mathematiciens du monde, la theorie des nombres

est \mbox{incontestablement} la reine des mathematiques.

Ce qui donne (apres compilation) :

Pour Gauss et pour beaucoup de mathematiciens du monde, la theorie des nombres est incontestablementla reine des mathematiques.

(Constater que le mot “incontestablement” n’est plus decoupe en deux).

5.6 Le package framed

Le package framed, qu’on chargera via la commande \usepackage{framed}, laquelle on mettraa l’en-tete du document LATEX, propose de nouveaux environnements permettant de creer des boitesdont le contenu pourrait etre un paragraphe (c’est-a-dire un texte comportant plusieurs lignes) etceci sans passer par la commande \parbox ni par l’environnement minipage ; ce qui est donc trespratique. Les boites creees par ces environnements peuvent contenir aussi plusieurs pages de texte !

5.6.1 Les differents environnements du package framed

Les plus importants environnements du package framed sont :

1. L’environnement framed :

Cet environnement cree une boite simple pouvant contenir un paragraphe de n’importe quelle taille(meme s’il prend plusieurs pages !). La boite qu’il cree est du meme type que celle que cree lacommande \fbox (vue precedemment).

Exemple 1 : Le code 3 :

\begin{framed}

Je reve d’un jour o\‘u l’egoısme ne regnera plus dans

les sciences, o\‘u on s’associera pour etudier, au lieu

d’envoyer aux academiciens des plis cachetes, 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 reve d’un jour ou l’egoısme ne regnera plus dans les sciences, ou on s’associera pouretudier, au lieu d’envoyer aux academiciens des plis cachetes, on s’empressera de publier sesmoindres observations pour peu qu’elles soient nouvelles, et on ajoutera ≪ je ne sais pas lereste ≫.

Pour modifier l’epaisseur de la bordure creee par cet environnement, on utilise la commande :\FrameRule=epaisseur voulu, qu’on mettra juste avant l’environnement framed. Et pour modi-fier l’espace separant 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 ecrit par Evariste Galois (mathematicien francais du 19eme siecle).

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

Page 43: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

\FrameRule=2pt

\FrameSep=1cm

\begin{framed}

Je reve d’un jour o\‘u l’egoısme ne regnera plus dans

les sciences, o\‘u on s’associera pour etudier, au lieu

d’envoyer aux academiciens des plis cachetes, 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 reve d’un jour ou l’egoısme ne regnera plus dans les sciences, ou on s’associerapour etudier, au lieu d’envoyer aux academiciens des plis cachetes, on s’empressera depublier ses moindres observations pour peu qu’elles soient nouvelles, et on ajoutera ≪ jene sais pas le reste ≫.

2. L’environnement oframed :

Sa seule difference avec l’environnement framed est le fait qu’il laisse ouvertes d’en bas (resp. d’enhaut) les boites qu’il construit en chaque page jusqu’a l’avant derniere (resp. sauf la premiere).Autrement dit, les boites de chaque page contenant le texte de l’environnement oframed sontouvertes d’en haut et d’en bas, sauf la premiere qui est ouverte juste d’en bas et la derniere qui estouverte juste d’en haut. On comprend bien donc que cet environnement est fait pour construire desboites contenant un texte tres long qui se tient en plusieurs pages.

3. L’environnement shaded :

Cet environnement est l’analogue de la commande \colorbox. Il cree une boite de couleur sansbordure pouvant contenir un paragraphe de n’importe quelle taille (meme s’il prend plusieurs pages).Avant d’utiliser l’environnement shaded, on doit obligatoirement lui preciser la couleur voulue dufond de la boite (voir les deux exemples ci-dessous).

Exemple 1 : Le code :

\definecolor{shadecolor}{gray}{0.9}

\begin{shaded}

Je reve d’un jour o\‘u l’egoısme ne regnera plus dans

les sciences, o\‘u on s’associera pour etudier, au lieu

d’envoyer aux academiciens des plis cachetes, 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/

Page 44: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

Je reve d’un jour ou l’egoısme ne regnera plus dans les sciences, ou on s’associera pour etudier,au lieu d’envoyer aux academiciens des plis cachetes, 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 reve d’un jour o\‘u l’egoısme ne regnera plus dans

les sciences, o\‘u on s’associera pour etudier, au lieu

d’envoyer aux academiciens des plis cachetes, 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 reve d’un jour ou l’egoısme ne regnera plus dans les sciences, ou on s’associera pour etudier,au lieu d’envoyer aux academiciens des plis cachetes, 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 generer un trait vertical dans la marge de gauche du texte qu’ilcontient.

Exemple : Le code :

\begin{leftbar}

Je reve d’un jour o\‘u l’egoısme ne regnera plus dans

les sciences, o\‘u on s’associera pour etudier, au lieu

d’envoyer aux academiciens des plis cachetes, 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 reve d’un jour ou l’egoısme ne regnera plus dans les sciences, ou on s’associera pour etudier,au lieu d’envoyer aux academiciens des plis cachetes, on s’empressera de publier ses moindresobservations pour peu qu’elles soient nouvelles, et on ajoutera ≪ je ne sais pas le reste ≫.

5.6.2 Comment redefinir l’environnement leftbar pour pouvoir modifiercertaines de ses mesures et de ses couleurs

L’environnement leftbar tel qu’il est defini ci-dessus nous laisse guere le choix sur ses mesures(comme l’epaisseur du trait vertical et l’espace separant ce trait du texte de l’environnement) etses 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 cree un petit programme LATEX qu’on devraitmettre au preambule de notre document (avant \begin{document}). Ce programme est le suivant :

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

Page 45: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

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 apres, dans le corps de notre document, un texte avec une barre verticale a sa gauchetel que :

— L’epaisseur de la barre verticale soit de 1 pt,— L’espace qui separe la barre verticale du texte soit de 2 pt (en plus des 4 pt qui sont laissees

par defaut),— 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 medieval ont

cree dans leurs pays des conditions favorables pour le travail

des mathematiciens et astronomes. Mais on trouve peu d’exemples

d’un roi qui s’est occupe lui-meme de l’etude des sciences mathematiques.

Un cas bien connu est celui d’Ulugh Beg, roi a Samarcande au commencement

du quinzieme siecle, qui a fonde un observatoire astronomique, dans

lequel il a employe plus de soixante mathematiciens et astronomes, et

qui a lui-meme participe activement aux discussions des sujets mathematiques

et astronomiques. Moins connu jusqu’a present etait le cas des deux

{\sc Bani Hud}, rois de Saragosse, en Espagne: {\sc Ahmad Al-Muqtadir},

qui regna de 1041 jusqu’a 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, intitule : “Le Roi-Geometre al-Mutaman Ibn Hud etson livre de la perfection (Kitab al-Istikmal)”.

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

Page 46: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 5. LES BOITES

Beaucoup de rois et de princes du monde islamique medieval ontcree dans leurs pays des conditions favorables pour le travail desmathematiciens et astronomes. Mais on trouve peu d’exemples d’unroi qui s’est occupe lui-meme de l’etude des sciences mathematiques.Un cas bien connu est celui d’Ulugh Beg, roi a Samarcande au com-mencement du quinzieme siecle, qui a fonde un observatoire astrono-mique, dans leguel il a employe plus de soixante mathematiciens etastronomes, et qui a lui-meme participe activement aux discussions dessujets mathematiques et astronomiques. Moins connu jusqu’a presentetait le cas des deux Bani Hud, rois de Saragosse, en Espagne : Ah-

mad Al-Muqtadir, qui regna de 1041 jusqu’a 1081, et son fils etsuccesseur Al-Mutaman, qui mourut en 1085.

Une derniere remarque : Pour ne laisser aucun espace entre la barre verticale et le texte enquestion, utiliser le code \setlength{\leftbarsep}{-4pt}.

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

Page 47: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

CHAPITRE 6

LES FIGURES

6.1 Elements de base

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

\usepackage{graphicx}

qu’il faudrait donc charger prealablement a l’en-tete de votre document Latex.Pour inserer ensuite une figure a l’interieur du document, on utilise l’environnement figure. Si parexemple 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 mathematicien arabe al-Khawarizmi}

\label{kha}

\end{figure}

Explication du code :

1. Les commandes \begin{figure} et \end{figure} definissent l’environnement figure. Cet en-vironnement demande a Latex de placer la figure en question dans l’endroit le plus convenable.

Pour placer notre figure dans un endroit de notre choix (meme s’il n’est pas convenable), on doitajouter a \begin{figure} l’une des lettres : h, t, b ou p qu’on mettra entre deux crochets commececi :

\begin{figure}[h]

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

• h (comme here) permet de placer la figure la ou l’on est arrive dans le tapement de notredocument.

• 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 separee (apres la page courante).

Pour insister sur son choix de placement de sa figure, on ajoute un point d’exclamation juste avantl’une des lettres h, t, b ou p, comme ceci :

\begin{figure}[!h]

43

Page 48: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 6. LES FIGURES

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

3. La commande \includegraphics est celle qui insere la figure souhaitee (dans notre exemple, ils’agit de la figure khawarizmi.eps).Noter que la figure a inserer doit se trouver dans le meme repertoire que le document Latex enquestion. Pour une gestion plus aisee et plus professionnelle des figures necessaires a un documentLatex, on conseille de mettre toutes ces figures dans un meme repertoire que l’on met (obligatoire-ment) dans le meme endroit ou se trouve notre document Latex. Dans notre exemple precedent, sinotre figure khawarizmi.eps se trouvait dans un repertoire nomme Rep, on aurait informer Latex dece repertoire par le code :

\includegraphics{Rep/khawarizmi.eps}

4. La commande \caption associe une legende (c’est-a-dire un titre) a notre figure. Cette legendeapparaıtra, selon le placement du code \caption, en dessus ou en dessous de la figure en question.Pour notre exemple precedent, on obtient (apres compilation) ce qui suit :

Figure 6.1 – Le grand mathematicien arabe al-Khawarizmi

Noter que la numerotation des figures est automatique et est toujours precedee du nom Fig. pardefaut ; on verra plus loin comment eliminer ou changer ce nom par un autre. Noter aussi que leplacement de la legende d’une figure est (par defaut) centre par rapport a la largeur de la figure.

5. Finalement, la commande \label a pour role de referencer la figure en lui attribuant un mot cle.Dans notre cas le mot cle est kha. Pour se referer alors a cette figure dans notre document Latex,on ecrira par exemple :

...(voir la figure \ref{kha})...

Ce qui donnera dans les fichiers dvi et pdf :

. . .(voir la figure 6.1) . . .

Pour se referer a la page ou se trouve notre figure, on ecrira 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 oblige de preciser l’extension (ici eps) de la figure a inserer dans undocument Latex. On aurait pu ecrire simplement dans l’exemple precedent :

\includegraphics{khawarizmi}

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

Page 49: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 6. LES FIGURES

6.2 Comment modifier la taille d’une figure a inserer

La commande \includegraphics contient des arguments qui permettent de modifier la taille desa figure d’origine. Les plus utilises parmi ces arguments sont :

• width (qui veut dire largeur en anglais) : Il sert a specifier la largeur que l’on souhaite adaptera sa figure en l’agrandissant ou on la reduisant. Il est donne en cm, mm ou pt.

• height (qui veut dire hauteur en anglais) : Il sert a specifier la hauteur que l’on souhaiteadapter a sa figure. Il est donne en cm, mm ou pt.

• scale (qui veut dire echelle en anglais) : Il sert a specifier l’echelle que l’on souhaite adaptera sa figure (par exemple egale a 0.5 si l’on souhaite reduire a moitie les dimensions de safigure ; egale a 2 si l’on souhaite les doubler).

• angle : Il sert a specifier l’angle de rotation (dans le sens contraire a l’aiguille d’une montre)que l’on souhaite faire subir a sa figure. Il est donne en degre.

Ces arguments doivent etre specifies entre crochets juste apres la commande \includegraphics.Si l’on souhaite par exemple que notre figure khawarizmi.eps soit reduite a une largeur de 3 cm etune hauteur de 6 cm, on ecrira le code :

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

Si l’on souhaite maintenant que notre figure prenne par exemple comme largeur la moitie de lalargeur d’une ligne (complete) de texte dans notre document et qu’elle prenne comme hauteur 3/10de la hauteur d’une page (en texte) de notre document, on ecrira le code :

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

La specification width=0.5\textwidth pourrait s’averer tres utile pour ecrire un texte suivi, a soncote droit, d’une figure (graphique, image ou photo) comme c’est le cas par exemple d’un CV avecphoto. On reviendra la dessus un peu plus loin.

Si l’on souhaite maintenant que notre figure se reduise a la moitie de ses dimensions reelles, onecrira le code :

\includegraphics[scale=0.5]{khawarizmi}

Noter que dans \includegraphics, il est possible de ne mettre aucun argument (comme on l’adeja fait tout au debut 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 inseree apparaisse dans un cadre, on utilisera la commande \fbox. Pour notreexemple, on devra ecrire le code :

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

On peut aussi mettre notre figure dans un cadre specifique. Pour notre exemple, si l’on souhaiteencadrer notre figure khawarizmi.eps dans un cadre qui sera espace d’elle de 1 cm et aura unebordure d’epaisseur 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/

Page 50: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 6. LES FIGURES

Figure 6.2 – Le grand mathematicien arabe al-Khawarizmi

(Bien entendu, on a reduit les dimensions de notre figure d’origine en utilisant les commandes citeesauparavant).

6.4 Insertion de figures d’extension autre que eps

• Si l’on compile avec LATEX, le seul format de figures accepte est le format eps (EncapsulatedPostScript). Le format eps est defini par le systeme Adobe ; c’est un format vectoriel 1 de tres hautequalite, ce qui donne la facilite a Latex de le redimensionner comme on le souhaite sans que la figureperde sa qualite.

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 presquen’importe quel format d’image au format eps.

Pour convertir une image d’extension jpg ou png au format eps sans utiliser le logiciel commercialAdobe Illustrator, on peut proceder comme suit :— On convertit d’abord l’image en question au format pdf en utilisant par exemple le logiciel gratuitPDFill 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 lechoix sur le format de la figure a inserer : Les formats jpg, png et pdf sont acceptes. Le format jpg estparticulierement ideal pour les photos. En revanche, on ne peut pas inserer une figure de format eps.Noter aussi que la mention de l’extension de la figure a inserer via la commande \includegraphicsn’est pas obligatoire.

• Lorsqu’un fichier pdf contient plusieurs pages et que l’on souhaite inserer precisement commefigure dans un document Latex, la page numero n de ce fichier, on indiquera ceci a Latex parl’argument “page=n” qu’on ajoutera entre crochets a la commande \includegraphics commececi :

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

Exemple : On souhaite inserer dans le present document la page 8 de mon livre sur les sujets deBrevet, c’est-a-dire la page 8 du fichier pdf nomme bef.pdf. On devra alors utiliser le code suivant :

1. La qualite de l’image reste la meme lorsqu’on agrandit la figure.

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

Page 51: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

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 apres 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 numero de la page a inserer d’un fichier pdf, PDFLATEX insere par defaut lapremiere page du fichier.

6.5 Insertion de plusieurs figures cote a cote

On dispose de photos (en format eps) des trois grands mathematiciens arabes : Al Khawarizmi, AbuKamil et Abu al Wafa. Les fichiers eps en question sont nommes :

khawarizmi2.epsabukamil.epsabualwafa.eps

Pour mettre ces trois photos cote a cote avec une meme legende, on peut utiliser simplement lecode 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 mathematiciens arabes}

\end{figure}

Ce qui donne apres compilation ceci :

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

Page 52: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 6. LES FIGURES

Figure 6.4 – Trois grands mathematiciens arabes

Noter bien que l’on a redimensionne nos photos a une meme largeur (qui fait 0.3 de la largeur d’uneligne de texte) et une meme hauteur (qui est de 5 cm). Ceci a pour but d’avoir un alignement ideal.

Au lieu du code ci-dessus, on peut utiliser un code plus professionnel mais qui donne quasiment lememe resultat. Il s’agit d’un code utilisant en plus l’environnement tabular pour mettre chacune destrois photos dans une case d’un tableau de format : 1 lignes × 3 colonnes. Il est donne 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 mathematiciens arabes}

\end{figure}

Ce qui donne apres compilation ceci :

Figure 6.5 – Trois grands mathematiciens arabes

On constate que la seule difference avec le code d’avant est qu’ici les trois photos sont un peu plusespacees entre elles.

Si l’on souhaite maintenant faire apparaıtre au dessous de chacune des trois photos le nom dumathematicien qu’elle represente, il est necessaire d’utiliser l’environnement tabular afin de creer (al’interieur de l’environnement figure) un tableau de format : 2 lignes × 3 colonnes. Le code completest le suivant :

\begin{figure}[!h]

\centering

\begin{tabular}{ccc}

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

Page 53: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

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 mathematiciens arabes}

\end{figure}

Ce qui donne apres compilation ceci :

Al Khawarizmi Abu Kamil Abu Al Wafa

Figure 6.6 – Trois grands mathematiciens arabes

Si l’on souhaite maintenant que chacune des trois photos prenne une legende a elle seule, on doitutiliser a l’interieur de l’environnement figure l’environnement minipage qui permet de creer despetites pages de largeur voulue. L’idee consiste a mettre chaque figure dans une minipage reserveea elle seule afin de pouvoir lui affecter une legende dans cette minipage. Le code qu’on utilisera estle 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 apres compilation ceci :

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

Page 54: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 6. LES FIGURES

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

Quelques eclaircissements sur le code precedent :

• Avec la commande \begin{minipage}{0.3\textwidth}, on a cree une minipage de largeurfaisant 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 creee a cet effet apres l’avoir redimensionnee aune largeur egale a la largeur du texte de la minipage qui la contient et a une hauteur de 5 cm.• Bien que chaque figure a sa propre legende, on pourra mettre en plus une legende globale pourles trois figures. Pour ce faire, on n’a qu’a ajouter cette legende apres le dernier \end{minipage},c’est-a-dire juste avant \end{figure}.

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

Page 55: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

CHAPITRE 7

DESSINER EN UTILISANT LE PACKAGE PSTRICKS

PSTricks est un package permettant de construire des figures geometriques directement par descodes Latex, via l’environnement pspicture. Ce package necessite de passer par le postscript ; on doitdonc absolument obtenir le fichier ps avant le fichier pdf. Ainsi, on ne peut pas compiler le fichiersource (tex) avec le compilateur PdfLatex par exemple. Pour obtenir le fichier pdf a la suite du fichierps, on doit utiliser un bon convertisseur ps-pdf comme le ps2pdf par exemple. Malheureusement, iln’y a pas de bon convertisseur ps-pdf gratuit mais on verra par la suite une astuce permettant d’yremedier a ce probleme.

7.1 Codes de base

Pour utiliser l’environnement pspicture, on doit prealablement charger le package pstricks a l’en-tetedu document Latex par la commande :

\usepackage{pstricks}

L’environnement pspicture cree une boite rectangulaire dans laquelle on mettra nos figures geo-metriques souhaitees (point, ligne, cercle, . . .). Cette boite est caracterisee par son point du bas a

gauche et son point du haut a droite. Les unites de mesure sont par defaut : le centimetre pourles longueurs et le degre pour les angles. Pour mettre notre figure geometrique dans une boite deformat 10 cm × 10 cm par exemple, on utilise le code :

\begin{pspicture}(0,0)(10,10)

......................

\end{pspicture}

Ici (0, 0) represente les coordonnees du point du bas a gauche de la boite et (10, 10) designe lescoordonnees de son point du haut a droite. Noter que ce code est aussi equivalent a :

\begin{pspicture}(10,10)

......................

\end{pspicture}

car si le point du bas a gauche n’est pas mentionne, l’environnement pspicture le prend par defaut(0, 0).

7.2 Lignes, vecteurs et lignes brises

• Pour dessiner une ligne (c’est-a-dire un segment) reliant deux points de coordonnees (x0, y0) et(x1, y1), il suffit d’inserer a l’interieur de l’environnement pspicture le code :

51

Page 56: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

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

• Pour dessiner un vecteur dont le point de depart a pour coordonnees (x0, y0) et le point d’arriveea pour coordonnees (x1, y1), on utilise le code :

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

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

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

• Le segment fleche en ses deux extremites (x0, y0) et (x1, y1) s’obtient par le code :

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

Le segment fleche en ses deux extremites s’utilise en general pour mentionner des mesures degrandeurs.

• Une ligne brisee passant par des points de coordonnees (x0, y0), (x1, y1), . . . , (xn, yn) (dans cetordre) 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 pourdessiner 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 decouvrira un code plus approprie aux polygones.

Les arguments de psline

La commande \psline possede des arguments optionnels importants qui caracterisent la ligne atracer ; par exemple : la couleur de la ligne, son epaisseur, . . . etc. Ces arguments doivent etrementionnes entre deux crochets qu’on mettra juste apres \psline. L’essentiel de ces arguments estdonne par le tableau suivant :

Argument Son effetlinewidth = epaisseur Ligne d’epaisseur epaisseurlinecolor = couleur Ligne de couleur couleurlinestyle = dashed Ligne en tirets (- - - - - -)linestyle = dotted Ligne en pointilles (............)doubleline = true Ligne doublee

Exemple : Pour tracer une ligne en pointilles liant entre les deux points de coordonnees (1, 1) et(3, 5) et qui soit de couleur bleu et d’epaisseur 2 pt, on utilise le code :

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

1. C’est-a-dire le vecteur dont le point de depart a pour coordonnees (x1, y1) et le point d’arrivee a pourcoordonnees (x0, y0).

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

Page 57: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

Dessiner un segment avec des extremites apparentes

Pour dessiner un segment liant entre deux points (x0, y0) et (x1, y1), lesquels sont apparents2, on

doit ajouter comme argument a \psline :

showpoints=true

et on precisera le type du symbole montrant les extremites par l’argument :

dotstyle=symbole

ou symbole prend comme valeur l’un des symboles suivants :

+ , × , | , square (carre vide) , square* (carre plein) , diamond (losange vide), diamond* (losange plein) , triangle (triangle vide) , triangle* (triangle plein).

En cas d’absence de precision du type du symbole voulu pour pointer les extremites d’un segment,Latex prendra par defaut le type point gras (•).

On peut en outre preciser l’echelle (c’est-a-dire l’epaisseur) du symbole voulu pour pointer les deuxextremites d’un segment. Pour ce faire, il suffit d’ajouter l’argument :

dotscale=echelle voulue

L’echelle est bien entendu un nombre strictement positif.

Exemple 1 : Pour tracer le segment de droite liant entre les deux points de coordonnees (0, 0) et(3, 3) et pointer ses extremites par des points gras d’echelles 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 coordonnees (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 cotes, l’epaisseur des cotes, . . . etcse codent de la meme facon que pour les lignes.

Exemple : Pour dessiner le rectangle suivant :

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

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

Page 58: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

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 coordonnees (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 etre utiles dans ce code sont : l’epaisseur du cercle en question et lacouleur de sa circonference.

• Pour avoir un cercle plein (c’est-a-dire un disque), il suffit de remplacer la commande \pscirclepar \pscircle*. On peut aussi utiliser la commande \qdisk mais sachez que celle-ci n’accepte pasd’arguments !

• Pour dessiner l’arc du cercle de centre (x0, y0) et de rayon r, qui part d’un angle θ1 et va vers unangle θ2 (ou les deux angles θ1 et θ2 sont donnes en degres), 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/

Page 59: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

Le meme code avec \psarc remplace par \psarc* donne :

• Pour dessiner l’arc oriente du cercle de centre (x0, y0) et de rayon r, qui part d’un angle θ1 etva 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 θ1et 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/

Page 60: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

Le meme code avec \pswedge remplace par \pswedge* donne :

• Pour dessiner l’ellipse (dont les axes sont les axes de coordonnees 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}

genere la figure :

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

7.5 Axes de coordonnees

Pour tracer des axes de coordonnees au sein d’une figure, il est bien possible d’utiliser le code\psline deux fois. Cependant, il y a une commande plus immediate et plus appropriee pour cefaire. Cette commande necessite la package pstricks-add, qui est plus complet que pstricks.On doit donc charger prealablement ce package, a l’en-tete du document, par la commande :

\usepackage{pstricks-add}

Par suite, pour tracer deux axes de coordonnees perpendiculaires, on utilise le code :

\psaxes[arguments](x0, y0)(xmin, ymin)(xmax, ymax)

ou (x0, y0) est le centre (c’est-a-dire le point d’intersection des deux axes) et (xmin, ymin) et(xmax, ymax) sont respectivement le point le plus bas et le plus a gauche et le point le plus haut etle plus a droite du plan que generent les deux axes en question. Quant aux arguments, ils sont lesmemes que ceux d’une ligne simple.

• Pour tracer deux axes de coordonnees perpendiculaires orientes, 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}

genere la figure suivante :

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

Page 61: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

−1

−2

1

2

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 a utiliser est :

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

Si l’on souhaite que cette courbe soit fermee (c’est-a-dire que le dernier point (xn, yn) rejoint lepremier point (x0, y0)), on utilise plutot 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 fermee passant par tous les points voulus mais elle ne sera pas (tres proba-blement) lisse en (x0, y0) (c’est-a-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}

genere la courbe suivante :

0

1

2

3

4

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/

Page 62: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

0

1

2

3

4

0 1 2 3 4

7.6.2 Courbes definies comme graphe d’une fonction

Grace au package pstricks-add, on peut meme tracer des courbes representatives de fonctionspouvant s’exprimer a l’aide des fonctions elementaires. Pour ce faire, il faut d’abord charger cepackage par la commande \usepackage{pstricks-add}. Ensuite, il faut preceder l’endroit ou l’onsouhaite dessiner le graphe de notre fonction du code :

\psset{algebraic=true}

Pour tracer alors le graphe d’une fonction donnee f sur un intervalle [a, b], on insere le code :

\psplot[arguments]{a}{b}{expression de f}

Les operations elementaires et les noms de fonctions usuelles permettant d’ecrire l’expression de fsont donnees par le tableau suivant :

Operation ou nom de fonction usuelle Signification

+ addition− soustraction∗ multiplication/ division∧ puissancesqrt racine carreeEXP exponentielleln logarithme neperiencos cosinussin sinustan tangentearcos arc cosinusarcsin arc sinusarctan arc tangente

Il est possible egalement de definir d’abord l’expression de f par une commande du type :

\def\fct{expression de f}

(ou \fct est le nom que l’on a donne a notre fonction) puis tracer son graphe sur un intervalledonne [a, b] en inserant (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/

Page 63: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

genere la figure suivante :

−1

−2

1

2

3

4

5

1 2 3 4 5−1−2

7.6.3 Courbes parametrees

Tout comme le tracage des courbes definies comme graphes de fonctions, le tracage des courbesparametrees necessite le package pstricks-add (plus riche que pstricks) que l’on doit (obligatoirement)charger a l’en-tete de notre document latex, via le code \usepackage{pstricks-add}. On doitinserer aussi (obligatoirement) dans l’environnement pspicture, relatif a notre courbe, la commande\psset{algebraic=true}. Soient a et b deux nombres reels tels que a < b et soient t 7→ x(t) ett 7→ y(t) deux fonctions reelles definies sur [a, b]. Pour tracer la courbe parametree, de parametrage :

{

x = x(t)y = y(t)

(t ∈ [a, b]),

on definie prealablement 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 insere le code :

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

Bien evidemment, on peut s’en passer de l’introduction de \x et \y et inserer directement leursexpressions 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}

genere la figure suivante (dont la nature geometrique est une ellipse) :

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

Page 64: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

−1

−2

−3

1

2

3

1 2 3−1−2−3

7.7 Tangentes a une courbe

7.7.1 Cas d’une courbe d’interpolation

Pour tracer la tangente T a une courbe d’interpolation (C ) en son point d’abscisse x0, On choisittrois points (x1, y1), (x2, y2) et (x3, y3) de (C ), parmi les points d’interpolation, qui soient les plusproches du point tangentiel et on choisit une grandeur ∆x = xmax − x0 = x0 − xmin, ou xmax etxmin sont respectivement les abscisses maximale et minimale des points du segment qui representela tangente en question (le point tangentiel sera situe au milieu de ce segment). Le code pour tracerT (qui doit etre precede 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}

genere la figure suivante :

0

1

2

3

4

5

0 1 2 3 4 5

7.7.2 Cas d’une courbe definie comme graphe d’une fonction

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

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

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

Page 65: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

,

ou ∆x est defini comme au §7.7.1. Nous rappelons aussi que ce tracage necessite le package\usepackage{pstricks-add} (a charger a l’en-tete du document latex) et le code\psset{algebraic=true} (a inserer au debut 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}

genere la figure suivante :

0

1

2

3

0 1 2 3 4

7.7.3 Cas d’une courbe parametree

Soient a et b deux nombres reels tels que a < b et soient t 7→ x(t) et t 7→ y(t) deux fonctionsreelles definies sur [a, b]. On considere la courbe (C ) definie par le parametrage :

{

x = x(t)y = y(t)

(t ∈ [a, b]).

Etant donne t0 ∈ [a, b] et M0 = (x(t0), y(t0)) ∈ (C ), pour tracer la tangente a C au point M0, onutilise le code suivant (naturellement precede du code pour tracer (C )) :

\psplotTangent{t0}{∆x}{\x|\y}

ou les commandes \x et \y definissent respectivement les expressions de x(t) et y(t) (voir le§7.6.3) et ∆x est defini comme au §7.7.1. Nous rappelons aussi que ce tracage necessite le package\usepackage{pstricks-add} (a charger a l’en-tete du document) et le code\psset{algebraic=true} (a inserer au debut 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}

genere la figure suivante (la courbe en rouge est appelee le cœur de Raphael Laporte) :

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

Page 66: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 7. DESSINER EN UTILISANT LE PACKAGE PSTRICKS

−1

−2

1

2

1 2−1−2

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

Page 67: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

CHAPITRE 8

DEFINIR DE NOUVELLES COMMANDES ET DE NOUVEAUX

ENVIRONNEMENTS

8.1 La commande let

La commande \let est une simple commande que l’on introduit au preambule d’un document Latexpour remplacer une commande existante, que l’on considere assez lourde, par une autre commandequi existe deja ou qu’on cree et que l’on considere plutot legere. La syntaxe de cette commandeest :

\let\CommandeLegere=\CommandeLourde

Exemples

1. Supposons que l’on a introduit au preambule de notre document Latex le code suivant :

\let\up=\textsuperscript

Alors, dans le corps de notre meme document Latex, l’ecriture :

Les etudiants de la 2\up{eme} annee Licence Maths \dots

donne :

Les etudiants de la 2eme annee 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 preambule de notre document Latexles codes :

\let\epsilon=\varepsilon

\let\phi=\varphi

Alors, dans le corps du meme 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 correspondentrespectivement aux lettres grecques : ǫ, ε, φ et ϕ).

63

Page 68: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

8.2 La commande def

La commande \def est une simple commande que l’on utilise au preambule d’un document Latexpour remplacer les codes exclusivement mathematiques, que l’on considere lourds, par des codesde notre creation et qui sont plus legers. Les codes mathematiques (lourds) auxquels on appliquecette commande sont generalement ceux qui se repetent souvent dans notre document Latex. Lasyntaxe de cette commande est :

\def\CommandeLegere{\CommandeLourde}

Exemples :

1. Les codes mathematiques \mathbb{N}, \mathbb{Z}, \mathbb{R} et \mathbb{C}, qu’onutilise respectivement pour les ensembles mathematiques N, Z, R et C, pourront etreremplaces par les codes plus legers \N, \Z, \R et \C et ceci grace aux instructions suivantesque l’on doit integrer prealablement au preambule 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 definir certaines notations ou certains operateursmathematiques. 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}}

creent les nouvelles commandes \ker, \im, \id, \pgcd, \ppcm, \card et \dist pourrepresenter respectivement les notations mathematiques : Ker (pour le noyau d’une ap-plication lineaire), Im (pour l’image d’une application lineaire), Id (pour l’applicationidentite), pgcd (pour le plus grand commun diviseur), ppcm (pour le plus petit communmultiple), Card (pour le cardinal) et dist (pour la distance).

3. Nous allons voir maintenant deux autres exemples un peu plus compliques mais tres im-portants.

(a) La fonction indicatrice. L’instruction :

\def\ind{1\hspace*{-0.9mm}\mathrm{I}}

(que l’on insere prealablement au preambule de notre document Latex) cree la nouvellecommande \ind pour representer la fonction indicatrice d’un ensemble mathematiquedonne. Ainsi, le code :

$$

\int_{\mathbb{R}} \ind_A(x) \, d x = \int_A \, d x .

$$

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

Page 69: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

(que l’on insere au corps du meme document Latex) donne :∫

R

1IA(x) dx =

A

dx.

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

Remarque : le code \hspace*{-0.9mm} permet d’introduire un espace horizontalnegatif de 0, 9 mm.

(b) La valeur absolue. La valeur absolue en Latex est codee par l’une des deux com-mandes identiques $|x|$ ou $\vert{x}\vert$ (pour representer la valeur absoluede x) ou encore par $$\left\vert{expression}\right\vert$$ lorsqu’une expres-sion donnee est de grande taille et que l’on est en mode displaystyle. Nous allonsmaintenant creer une nouvelle commande \vabs pour remplacer la commande Latex\left\vert{...}\right\vert que l’on trouve assez lourde. A la difference des com-mandes creees precedemment, la commande \vabs qu’on creera plus bas comporteraun argument, designe en Latex par #1, et reserve a l’expression que l’on souhaite mettreen valeur absolue. Pour ce faire, nous inserons au preambule de notre document Latexl’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}

$$

(insere au corps du meme document Latex) donne :∣

n∑

i=1

ai

≤n∑

i=1

|ai|

N. B : La commande \vabs que l’on vient de creer fonctionne aussi bien en mode“normal” qu’en mode “displaystyle”.

Remarque : Si cette commande \vabs que l’on vient de creer vous porte bon-heur, vous pouvez faire exactement la meme chose pour creer une nouvelle com-mande (que vous pourrez nommer \norme) afin d’alleger la commande predefinie\left\Vert{...}\right\Vert de Latex, qui est utilisee pour representer la normed’un vecteur.

(c) Les congruences. Nous allons creer 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 respectivementcodes (en Latex) par #1 et #2. Une des facons de realiser ceci est d’inserer dans lepreambule de notre document Latex l’instruction :

\def\restmod#1#2{#1\ (\mathrm{mod}\ #2)}

Ainsi, en tapant dans le corps du meme document Latex le code :

2014 \equiv \restmod{4}{10}

on obtient en visualisant (apres compilation) :

2014 ≡ 4 (mod 10)

8.3 La commande DeclareMathOperator*

La commande \DeclareMathOperator* permet de creer de nouveaux operateurs mathematiquessophistiques. Sa syntaxe (que nous devons inserer au preambule de notre document Latex) est :

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

Page 70: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

\DeclareMathOperator*{\CodeOperateur}{Son apparition voulue}

Exemples :

1. Nous voulons creer deux nouveaux operateurs mathematiques, que nous codons par lescommandes \argmin et \argmax, pour designer respectivement l’argument minimal1 etl’argument maximal1 d’une fonction reelle. Pour se faire, il suffit d’inserer au preambule denotre document Latex les deux instructions :

\DeclareMathOperator*{\argmin}{argmin}

\DeclareMathOperator*{\argmax}{argmax}

Ainsi, en inserant 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 inserant le meme code mais en mode displaystyle, c’est-a-dire :

$$

\argmin_{x \in \mathbb{R}} f(x) = 1

$$

on obtient :argmin

x∈Rf(x) = 1

2. Nous voulons creer un nouvel operateur mathematique qui s’occupera de la compositiond’une suite d’applications et qui fonctionnera exactement comme l’operateur de somma-tion

. Nous voulons coder cet operateur par la commande \comp et nous voulons qu’ilapparaıtra (en impression) sous le signe “◦”. Pour ce faire, il suffit d’inserer au preambulede notre document Latex l’instruction :

\DeclareMathOperator*{\comp}{\circ}

Ainsi, en inserant par exemple dans le corps de notre meme document Latex le code :

$$

\comp_{i = 1}^{n} f_i = f

$$

on obtient :n◦i=1

fi = f

N. B : Par ces deux exemples, nous devons comprendre que l’interet de la commande\DeclareMathOperator* est de creer des operateurs mathematiques qui fonctionnent exactementcomme l’operateur de sommation

.

8.4 La commande newcommand

La commande \newcommand permet de creer de nouvelles commandes (textuelles ou mathematiques).On peut creer aussi bien des commandes simples (c’est-a-dire sans argument) que des commandesavec plusieurs arguments2. Son utilisation pour creer une commande simple est fournie par la syn-taxe :

\newcommand{\CodeChoisiPourNotreNouvelleCommande}{Sa definition}

1. L’argument minimal (resp. maximal) d’une fonction reelle f : I → R est le point x ∈ I ou f atteint sonminimum (resp. maximum).

2. Le nombre d’arguments est limite a 9.

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

Page 71: Documentation avanc´ee en LATEX - Page web de Bakir FARHIfarhi.bakir.free.fr/index_fichiers/BakirLatex.pdf · 1.1.4 Les marges, l’espace en haut de page et l’espace en bas de

Bakir FARHI CHAPITRE 8. COMMANDES ET ENVIRONNEMENTS

et son utilisation pour creer des commandes muni d’un ou plusieurs arguments est fournie par lasyntaxe :

\newcommand{\CodeChoisi}[Nombres d’arguments]{Definition}

ou dans la definition de la commande en question, un argument de rang n est designe par le symbole#n.Bien entendu, ces syntaxes doivent etre mises au preambule d’un document Latex.

Exemples :

1. On souhaite creer une nouvelle commande simple (c’est-a-dire sans argument), de nom\Indication, qui servira a inscrire une indication pour un exercice d’une serie de TDpar exemple ; et ceci en utilisant la figuration bien precise ☞ . Comme le symbole en-cadre est integre dans le package pifont sous le code \ding{43}, ce package doit etreprealablement inscrit dans le preambule de notre document Latex. L’instruction qui permetde creer notre commande souhaitee est alors :

\newcommand{\Indication}{\fbox{\ding{43}}~}

2. On souhaite creer une simple commande, de nom \Fin, qui servira par exemple a marquerla fin d’un chapitre ou d’une serie de TD. On souhaite plus exactement faire apparaıtre(via cette commande) la jolie forme :

Y Fi‹nffl Za

Noter que les symboles Y et a relevent du package fourier-orns que l’on doit donc obliga-toirement charger dans le preambule de notre document Latex, via le code\usepackage{fourier-orns}3 . Dans ce package, ces deux symboles sont respective-ment designes par les codes \decothreeleft et \decotwo. Par ailleurs, le style d’ecriture

du mot “Fin” (Fi‹nffl) releve du package frcursive que l’on doit donc charger egalement dansle preambule de notre meme document Latex, via le code \usepackage{frcursive}. Le

code d’obtention de l’ecriture Fi‹nffl est alors \cursive{Fin}. L’instruction qui permet decreer notre commande souhaitee se presente 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 a agrandir la taille des caracteres en lesmettant a 32 points ; son role ici est juste d’agrandir le symbole a.

3. Si l’on utilise plutot le package fourier, Latex prendra la fonte “fourier” comme fonte par defaut du documenten question.

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