Vous êtes sur la page 1sur 167

Tik Z

pour l'impatient
Gerard Tisseau et Jacques Duma

in
ss
De

X
LATE

er

ceva

vec
a
t
Fa i
ik Z
T
t
Xe
TE
A
L

Tik Z pour limpatient


Grard Tisseau

Jacques Duma

3 juillet 2015

ruo
limpatient
\def\arete{3}

\def\epaisseur{5}

Z
k
i
T
\def\rayon{2}

\newcommand{\ruban}{(0,0)
++(0:0.57735*\arete-0.57735*\epaisseur+2*\rayon)
++(-30:\epaisseur-1.73205*\rayon)
arc (60:0:\rayon)
-- ++(90:\epaisseur)
arc (0:60:\rayon)
-- ++(150:\arete)
arc (60:120:\rayon) -- ++(210:\epaisseur)
arc (120:60:\rayon) -- cycle}
\begin{tikzpicture}[very thick,top color=white,bottom color=gray]
\shadedraw \ruban;
\shadedraw [rotate=120] \ruban;
\shadedraw [rotate=-120] \ruban;
\draw (-60:4) node[scale=5,rotate=30]{Ti{\color{orange}\textit{k}}Z};
\draw (180:4) node[scale=3,rotate=-90]{limpatient};
\clip (0,-6) rectangle (6,6); % pour croiser
\shadedraw \ruban;
\draw (60:4) node [gray,xscale=-3,yscale=3,rotate=30]{pour};
\end{tikzpicture}

Table des matires


Avant-propos
Vous avez des documents publier, avec des figures . . .
Vous avez essay dinclure des figures, sans grand succs
Nous vous recommandons dutiliser Tik Z . . . . . . . .
Ce livre vous aide utiliser Tik Z . . . . . . . . . . . . .
Chercher dans le livre : la table des matires . . . . . . .
Trouver une rfrence : le glossaire . . . . . . . . . . . .
Le site compagnon . . . . . . . . . . . . . . . . . . . . .
Remerciements . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

1 Premires figures
1.1 Utilisation de Tik Z dans LATEX . . . . . . . . . . . . . . . . . .
1.1.1 Tik Z est un package : \usepackage{tikz} . . . . . . .
1.1.2 Insrer une figure Tik Z : \begin{tikzpicture} . . . .
1.2 Le reprage des points . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Coordonnes cartsiennes : (x,y) . . . . . . . . . . . . .
1.2.2 Coordonnes polaires : (a:r) . . . . . . . . . . . . . . .
1.2.3 chelle : [scale=k] . . . . . . . . . . . . . . . . . . . .
1.3 Exemple : tracer un segment ou un cercle . . . . . . . . . . . .
1.3.1 nonc : deux segments, un cercle . . . . . . . . . . . .
1.3.2 Solution la main . . . . . . . . . . . . . . . . . . . . .
1.3.3 Solution Tik Z : (a,b) -- (c,d) et (a,b) circle (r)
1.3.4 crire des textes : (x,y) node [position] {texte} .
1.3.5 Arc de cercle : (x,y) arc (a:b:r) . . . . . . . . . . .
1.3.6 Annotations : angle droit, segments gaux . . . . . . . .
1.4 Figure gomtrique : mthodes de base . . . . . . . . . . . . . .
1.4.1 Problme principal : calculer les coordonnes . . . . . .
1.4.2 Exemple : triangle de cts 3, 4 et 5 . . . . . . . . . . .
1.4.3 Prparer la figure avec GeoGebra . . . . . . . . . . . . .
1.4.4 Faire engendrer le code Tik Z par GeoGebra . . . . . . .
1.5 Exercices : figures gomtriques . . . . . . . . . . . . . . . . . .
1.5.1 Thorme de Thals . . . . . . . . . . . . . . . . . . . .
1.5.2 Paralllogramme . . . . . . . . . . . . . . . . . . . . . .
1.5.3 Losange . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4 Centre de gravit . . . . . . . . . . . . . . . . . . . . . .
1.5.5 Cercle circonscrit . . . . . . . . . . . . . . . . . . . . . .
1.5.6 Orthocentre . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.7 Centre du cercle inscrit . . . . . . . . . . . . . . . . . .
1.6 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

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

.
.
.
.
.
.
.
.

9
9
9
9
9
9
10
10
10

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

11
11
11
12
13
13
13
14
14
14
14
15
15
16
17
19
19
19
21
22
22
23
23
23
24
24
25
25
26

TABLE DES MATIRES

2 Chemins, options graphiques


2.1 Simplifications, raccourcis, abstractions . . . . . . . . . . . .
2.1.1 Nommage des points : \coordinate(nom) at (x,y) .
2.1.2 Enchanement de traits : chemin, position courante . .
2.1.3 Rectangle : (a,b) rectangle (c,d) . . . . . . . . . .
2.1.4 Figures fermes : cycle, fill . . . . . . . . . . . . . .
2.1.5 Noeuds sur les traits : midway, sloped . . . . . . . . .
2.1.6 Coordonnes relatives : ++(x,y) . . . . . . . . . . . .
2.2 Dcorations, styles, options graphiques . . . . . . . . . . . . .
2.2.1 Options : [ ] . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 paisseur des traits : thick, thin, line width=5pt
2.2.3 Pointills, styles des traits : dotted, dashed, double
2.2.4 Pointes de flches : ->, >= stealth . . . . . . . . . .
2.2.5 Couleurs : red, color=gray!20 . . . . . . . . . . . .
2.3 Axes, grille, fentre dachage . . . . . . . . . . . . . . . . .
2.3.1 Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Quadrillage (grille) : grid . . . . . . . . . . . . . . . .
2.3.3 Fentre dachage : clip . . . . . . . . . . . . . . . .
2.4 Complments : opacit, couleurs, styles . . . . . . . . . . . . .
2.4.1 Ordre des tracs, transparence : opacity . . . . . . .
2.4.2 Noms et calculs des couleurs, package xcolor . . . . .
2.4.3 Dfinition de styles : \tikzstyle, \tikzset . . . . . .
2.5 Exercices : styles de traits, flches, couleurs . . . . . . . . . .
2.5.1 Somme de deux vecteurs . . . . . . . . . . . . . . . . .
2.5.2 Triangle rectangle inscrit dans un demi-cercle . . . . .
2.5.3 Angle inscrit et angle au centre . . . . . . . . . . . . .
2.5.4 Parallles, aires gales . . . . . . . . . . . . . . . . . .
2.5.5 Compose de deux symtries centrales . . . . . . . . .
2.5.6 Suite gomtrique . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

27
27
27
28
29
29
30
30
32
32
32
32
33
33
34
34
35
36
36
36
37
38
38
38
39
39
39
39
40

3 Courbes
3.1 Tracer une courbe : plot (...) . . . . . . . . . . . . . . . . .
3.1.1 Domaine : [domain=a:b] . . . . . . . . . . . . . . . . .
Le problme de babel franais et de : . . . . . . . .
Dsactiver : avec \shorthandoff{:} . . . . . . . . .
Introduire une autre option [domaine={a}{b}] . . . . .
Utiliser le package microtype . . . . . . . . . . . . . .
Exemples de domaines . . . . . . . . . . . . . . . . . . .
3.1.2 Formules mathmatiques disponibles . . . . . . . . . . .
Oprations . . . . . . . . . . . . . . . . . . . . . . . . .
Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . .
Fonctions trigonomtriques . . . . . . . . . . . . . . . .
Nombres alatoires . . . . . . . . . . . . . . . . . . . . .
Oprations boolennes . . . . . . . . . . . . . . . . . . .
3.2 Aspect du graphe . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Nombre de points : samples . . . . . . . . . . . . . . . .
3.2.2 Lissage : smooth, tension . . . . . . . . . . . . . . . .
3.2.3 Discontinuits : on peut sparer les intervalles . . . . . .
3.2.4 Grandes valeurs : scale, \clip . . . . . . . . . . . . .
3.3 Rgions limites par des courbes . . . . . . . . . . . . . . . . .
3.3.1 Une courbe et des segments : cycle, \fill, \filldraw
3.3.2 Rgion entre deux courbes . . . . . . . . . . . . . . . . .
3.3.3 Rgion non convexe : interior rules . . . . . . . . . . . .
3.4 Complments techniques . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Utilisation de Gnuplot : plot function . . . . . . . . .
3.4.2 Automatisation de certaines configurations . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

41
41
42
42
43
43
43
43
44
44
44
44
45
45
45
45
46
46
47
48
48
49
49
50
50
51

TABLE DES MATIRES


3.5

3.6

Exercices . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Ellipse. Angles avec circle et \clip . . .
3.5.2 ab = ba . xscale, yscale . . . . . . . . .
3.5.3 Fonction priodique : \foreach . . . . . .
3.5.4 Fonctions rciproques, aires : pattern . .
3.5.5 Lemniscate de Gerono. \scope, xshift,
Rsum . . . . . . . . . . . . . . . . . . . . . . .

5
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
\filldraw
. . . . . . .

4 Gomtrie dans lespace


4.1 Coordonnes (x,y,z) . . . . . . . . . . . . . . . . . .
4.1.1 Reprsentation Tik Z standard . . . . . . . . .
4.1.2 Autres reprsentations : x=..., y=..., z=...
4.2 Quelques figures de gomtrie . . . . . . . . . . . . . .
4.2.1 Section dun cube suivant un hexagone . . . . .
4.2.2 Grande diagonale dun cube . . . . . . . . . . .
4.2.3 Droites et plans . . . . . . . . . . . . . . . . . .
4.3 Courbes et surfaces . . . . . . . . . . . . . . . . . . . .
4.3.1 Reprsentation paramtrique, plot, \foreach .
4.3.2 Hlice . . . . . . . . . . . . . . . . . . . . . . .
4.3.3 Cylindre x2 + y 2 = 1 . . . . . . . . . . . . . . .
4.3.4 Sphre x2 + y 2 + z 2 = 1 . . . . . . . . . . . . .
4.3.5 Parabolode z = x2 + y 2 . . . . . . . . . . . . .
4.4 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

52
52
52
53
54
55
56

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

59
59
59
60
60
60
61
61
62
62
63
64
64
64
64

5 Reprsentation de donnes
5.1 Notions de base . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Diagramme deectifs : plot coordinates . . . .
5.1.2 Amliorer la lisibilit : grid, node, \foreach . . .
5.1.3 Marquer les points, tiqueter : mark, node, rotate
5.1.4 Diagramme barres : xcomb, ycomb, polar comb
5.1.5 Histogramme : xcomb, ycomb, line width . . . .
5.1.6 Achage des donnes dun fichier : plot file . .
5.2 Diagramme barres horizontales . . . . . . . . . . . . . .
5.2.1 Le bl dans le monde : utilisation dun tableur . .
5.2.2 Barres horizontales : plot file, xcomb . . . . . .
5.2.3 Installation dune grille : grid, xstep, ystep . . .
5.2.4 tiquetage du repre : \foreach, node . . . . . .
5.2.5 Deux sries plus une lgende : plot, shift, node
5.3 Courbe des variations de donnes . . . . . . . . . . . . . .
5.3.1 Production annuelle de riz : pr-traitement . . . .
5.3.2 Courbe des variations : plot file . . . . . . . . .
5.3.3 Quadrillage : grid, step . . . . . . . . . . . . . .
5.3.4 Annotations, dcorations : \foreach, node, mark
5.4 Diagramme secteurs . . . . . . . . . . . . . . . . . . . .
5.4.1 Rpartition par catgories socioprofessionnelles . .
5.4.2 Calcul des angles : pr-traitement avec un tableur
5.4.3 Dessiner les secteurs : \draw, arc, cycle, fill, $
5.4.4 Diagramme complet : \foreach . . . . . . . . . .
5.5 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

65
65
65
66
67
68
69
69
70
70
71
73
73
74
75
75
76
77
78
79
79
79
80
81
82

6 Graphes : Introduction
6.1 Notions de base . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Nuds et Arcs : \draw, --, node, et \node . .
6.1.2 Chemin annot : \draw avec opration node .
6.1.3 Graphe : \node puis \draw avec nom de nud
6.2 Styles des nuds et des arcs . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

83
83
83
84
84
84

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

.
.
.
.
.

.
.
.
.
.

TABLE DES MATIRES


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

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

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

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

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

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

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

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

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

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

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

84
86
86
87
88
89
90
90
90
91
91
91
93
94
95
95
95
96
96
97
98
98

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

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

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

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

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

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

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

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

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

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

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

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

99
99
99
99
102
103
103
103
104
106
107
107
107
108
109
109
110
111
112
113
114

8 Des figures aux illustrations


8.1 Les anneaux olympiques . . . . . . . . . . . . . . . . . . . . . .
8.1.1 Un anneau : circle, fill, even odd rule . . . . . . .
8.1.2 Entrelacer les anneaux : \coordinate, fill et arc . .
8.1.3 La figure complte : \newcommand . . . . . . . . . . . .
8.2 Diagrammes de Venn . . . . . . . . . . . . . . . . . . . . . . . .
8.2.1 Ensembles E, A, B : rectangle, circle, \newcommand
8.2.2 Coloriage : \fill, color, opacity . . . . . . . . . . . .
8.2.3 Mthode par superposition de couleurs . . . . . . . . . .
A, B et A [ B : \draw et \fill . . . . . . . . . . . . .
A \ B, A \ B, B \ A et A B : \clip et scope . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

115
115
116
116
118
120
120
121
121
121
122

6.3

6.4

6.5

6.2.1 Les arcs : \draw, --, |-, -|, to et options de flches . .


6.2.2 Extrmits des arcs : [->|, *-o, >->>, )-( . . . . . . .
6.2.3 Frontires des nuds : circle, ellipse, diamond . . .
6.2.4 Abstraction des styles : \tikzstyle, \tikzset . . . . .
6.2.5 Points dancrage des nuds : N.south, N.left, N.below
6.2.6 Flches vers les ancres : N.north, N.center, N.15 . . .
Techniques avances . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Tracer un arc sans avancer : edge . . . . . . . . . . . .
6.3.2 tiquetage des arcs : sloped, midway, pos . . . . . . .
6.3.3 Inclinaison des tiquettes : sloped, rotate . . . . . . .
6.3.4 Modification de la taille des annotations : scale . . . .
6.3.5 Insrer une sous-figure : scope, shift, rotate, scale .
6.3.6 Textes longs : text width, justified, centered . . .
6.3.7 Contournement dun nud . . . . . . . . . . . . . . . .
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Voyelle ou Consonne . . . . . . . . . . . . . . . . . . . .
6.4.2 Les points cardinaux . . . . . . . . . . . . . . . . . . . .
6.4.3 Orientations . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.4 Pentagone . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.5 Benzne . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.6 Arbre gnalogique . . . . . . . . . . . . . . . . . . . .
Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 Graphes : Exemples
7.1 Graphe dune relation . . . . . . . . . . . . . . . . . . . . . .
7.1.1 Relations entre quadrilatres . . . . . . . . . . . . . .
7.1.2 Des nuds et des flches : node et -> . . . . . . . . .
7.1.3 Graphe final : courbure bend, ancrage P.east . . . .
7.2 Organigramme informatique . . . . . . . . . . . . . . . . . . .
7.2.1 Somme des N premiers nombres entiers . . . . . . . .
7.2.2 Style des nuds : draw, ellipse, fill, text . . . . .
7.2.3 Forme des flches : >=, rounded corners, |- . . . . .
7.2.4 Organigramme final . . . . . . . . . . . . . . . . . . .
7.3 Diagrammes syntaxiques . . . . . . . . . . . . . . . . . . . . .
7.3.1 Grammaire des expressions mathmatiques . . . . . .
7.3.2 Alignement des nuds, tiquetage . . . . . . . . . . .
7.3.3 Regroupement de figures : scope et yshift . . . . . .
7.4 Graphe de preuve . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 Rsolution dune quation : 2x + 3 = 7 . . . . . . . .
7.4.2 Placement des nuds : \node (a) at (x,y), below
7.4.3 Placement et tiquetage des flches : ->, midway . .
7.4.4 Flches courbes : bend, to . . . . . . . . . . . . . . .
7.4.5 Exercice damlioration . . . . . . . . . . . . . . . . .
7.5 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8.2.4

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

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

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

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

123
124
125
126
126
127
127
127
129
130
130
130

9 Complments techniques
9.1 Transformations avec scope . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 Translations : xshift, yshift ou shift . . . . . . . . . . . . . . . .
9.1.2 Combinaison de translation et rotation : [xshift=6cm,rotate=45]]
9.1.3 Translation et changement dchelle : [xshift=6cm,scale=0.5] . . .
9.1.4 paisseur des traits : \draw et line width . . . . . . . . . . . . . . .
9.1.5 Taille et inclinaison de textes : transform shape . . . . . . . . . . .
9.1.6 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Au sujet des arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.1 Dfinition : \node node et child . . . . . . . . . . . . . . . . . . . . .
9.2.2 Espacement des frres : sibling distance . . . . . . . . . . . . . .
9.2.3 Forme globale : level distance et grow . . . . . . . . . . . . . . .
9.2.4 tiquetage des arcs : edge from parent . . . . . . . . . . . . . . . .
9.2.5 Style des arcs : edge from parent path . . . . . . . . . . . . . . . .
9.3 Liaisons entre figures : overlay . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.1 Dfinitions globales des noms : remember picture . . . . . . . . . . .
9.3.2 Dessiner dune figure lautre : overlay . . . . . . . . . . . . . . . .
9.3.3 La page courante est un nud : current page . . . . . . . . . . . . .
9.4 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

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

131
131
131
132
133
134
136
137
137
138
139
140
140
141
141
142
142
143
143

A La syntaxe de Tik Z
A.1 Les environnements : {tikzpicture}, {scope} . . . .
A.2 Les commandes . . . . . . . . . . . . . . . . . . . . . .
A.3 Les coordonnes . . . . . . . . . . . . . . . . . . . . .
A.3.1 Forme gnrale : (...) . . . . . . . . . . . . .
A.3.2 Calculs sur les nombres : package pgfmath . . .
A.3.3 Calculs sur les coordonnes : bibliothque calc
A.4 Les oprations de chemin . . . . . . . . . . . . . . . .
A.5 Les options . . . . . . . . . . . . . . . . . . . . . . . .
A.6 Utiliser des commandes LATEX dans Tik Z . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

145
145
145
146
146
146
147
147
148
150

B Erreur ! Que faire ?


Oubli du ; . . . . . . . . . . . . . . . .
Les nombres trop grands . . . . . . . . . .
Le ! dans la dfinitions des couleurs . .
Le problme de babel franais et de :

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

151
151
151
151
152

8.3

8.4

Mthode par coloriage entre les frontires . . . . . .


Dfinition des frontires : rectangle, circle et arc
Coloriage des rgions : \fill, even odd rule . . .
Personnages et dcors . . . . . . . . . . . . . . . . . . . . .
8.3.1 Locan : \shade, arc, top color, bottom color .
8.3.2 Le quai : \fill, rectangle, rotate . . . . . . . . .
8.3.3 Les personnages : \fill, ellipse, circle . . . . .
8.3.4 Le cur : \draw, .. controls and .. . . . . . . .
8.3.5 Curs multicolores : \shift, rotate, ball color
8.3.6 La figure complte : scope, shift, rotate . . . . .
8.3.7 La solution : scope, shift, rotate . . . . . . . . .
Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

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

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

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

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

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

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

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

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

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

C O trouver de laide ?

153

D Glossaire

155

Avant-propos
Vous avez des documents publier, avec des figures
Vous avez rgulirement des documents publier. Vous avez choisi LATEX pour sa grande qualit
typographique, son ouverture et sa portabilit. Vous souhaiteriez maintenant inclure des figures et
illustrations dans vos documents, mais sans avoir sortir de lenvironnement LATEX, et de manire
pouvoir produire directement des documents au format PDF, qui devient un format dchange
et de publication standard.

Vous avez essay dinclure des figures, sans grand succs


Les direntes solutions que vous avez essayes ne vous ont pas sembles satisfaisantes.
Vous avez prpar un dessin dans un logiciel externe, puis vous avez utilis la commande
\includegraphics, mais vous navez pas trouv pratique le fait de manipuler des fichiers externes
et dessayer dadapter le style et le format votre document.
Vous avez essay pstricks, mais vous lavez trouv un peu trop complexe, mme si pstricks
et Tik Z orent peu prs les mmes outils.

Nous vous recommandons dutiliser Tik Z


Tik Z est un package pour LATEX permettant dinclure des figures au format PDF en restant
dans lenvironnement LATEX.
Il a t cr vers 2006 par Till Tantau. Il devient rapidement populaire, car il rpond aux besoins
prcdents en vitant les inconvnients des autres solutions. La phase initiale dapprentissage est
rapide, et les figures simples peuvent tre obtenues simplement. On sent que le langage a t conu
pour rpondre des besoins usuels de manire pratique. Il continue dvoluer, et les extensions
actuelles permettent de crer des illustrations trs varies.
Utiliser Tik Z est un plaisir car on obtient des figures prcises et dune grande qualit, avec une
impression de matrise.

Ce livre vous aide utiliser Tik Z


Dans ce livre, nous prsentons Tik Z de manire vous rendre capable dobtenir rapidement des
figures incluses dans vos documents LATEX, en lillustrant de direntes faons : gomtrie, courbes,
graphes, arbres, histogrammes, illustrations.
La lecture des deux premiers chapitres est indispensable. Vous pourrez crer vos figures ds
le premier chapitre. Le deuxime fournit des complments importants dordre gnral, et ensuite
vous pourrez choisir en fonction de votre domaine dapplication.
Les deux derniers chapitres prsentent des exemples plus complexes et des complments techniques. Il est prfrable dtre laise avec LATEX et Tik Z pour les aborder .

Chercher dans le livre : la table des matires


La table des matires est une sorte daide mmoire intgr.
Chaque fois que cest possible, un titre est la description dune tche ou dun problme suivis
des mots-cls Tik Z qui permettent de raliser cette tche ou de rsoudre ce problme de faon
standard.
9

10

TABLE DES MATIRES

Par exemple : chelle : [scale=k], tiquetage des arcs : sloped, midway, pos, etc. Dun seul
coup doeil, on devrait pouvoir retrouver une information utile et la situer dans le contexte dun
exemple.

Trouver une rfrence : le glossaire


Ce livre contient un glossaire mais pas dindex. Le problme dun index alphabtique est que
lon ne peut y trouver que des mots dj connus.
Notre glossaire rassemble uniquement la liste des mots-cls du langage prsents dans le livre,
avec pour chacun deux un court rsum et une rfrence au passage du Manuel de Tik Z & PGF
de Till Tantau prsentant le concept.
Till Tantau signale lui-mme que lindex de son manuel nest pas trs satisfaisant parce quil
contient tout alors quil ne devrait contenir quune slection. Il contient plus de 2000 entres !
Nous avons justement fait une slection (moins de 100 entres). Le rsum devrait sure pour
lusage indiqu dans cet ouvrage, et ensuite vous pourrez obtenir des complments dans le manuel
ociel.

Le site compagnon
Un site Internet, cr par les auteurs, accompagne ce livre. On y trouvera le code de tous les
exemples prsents ici, plus quelques complments.
partir du site, il est aussi possible de contacter les auteurs : Toutes les questions, toutes les
critiques et toutes les suggestions sont les bienvenues.
http://math.et.info.free.fr/TikZ/index.html

La version papier de ce document est en noir et blanc, seule la version PDF disponible sur ce
site est en couleurs.

Remerciements
Merci Emmanuel Collinet pour sa lecture trs attentive de Tik Z pour limpatient et pour
ses nombreuses remarques pertinentes. Ainsi, nous avons pu amliorer la qualit de ce document.

Chapitre 1

Premires figures
1.1
1.1.1

Utilisation de Tik Z dans LATEX


Tik Z est un package : \usepackage{tikz}

Tik Z tant un package pour LATEX, il sutilise comme tout autre package, en dclarant
\usepackage{tikz} dans le prambule.
Pour savoir quelle est la version de Tik Z dont vous disposez, vous pouvez faire acher le numro
de version par la commande \pgfversion (PGF est le nom du moteur de Tik Z).
Par exemple, ce document a t compos le 3 juillet 2015 avec la version 3.0.0 de Tik Z, mais
la premire version a t rdige en fvrier 2008 avec la version 2.00.
Si vous ne disposez pas de Tik Z ou si vous avez une version plus ancienne que la version 2.00,
le plus simple est sans doute de charger entirement la plus rcente version de la distribution TEX
(Tik Z est fourni avec les principales distributions de TEX).
Dans ce cas il faudra consulter la documentation de lauteur si quelques dirences apparaissent
dans la composition des exemples.
Version la plus rcente de Tik Z & PGF Manual
Le document minimal utilisant Tik Z est donc :
\documentclass{article}
\usepackage{tikz}
\begin{document}
La version de TikZ est : \pgfversion
\end{document}
Les standards sont TeX Live pour les systmes Unix (y compris MacOS X, o elle est prsente
dans MacTeX) et MiKTeX pour les systmes Windows. Ces distributions TEX sont assez souvent
mises jour (une fois par an environ).
La version 2 de Tik Z est incluse dans la distribution TeX Live version 10.2 de 2008.
Pour Windows : http://miktex.org
Pour Mac : http://www.tug.org/mactex/
Pour Unix, Linux : http://www.tug.org/texlive/
ventuellement, vous pouvez obtenir directement le package pgf et lui seul, mais il faut une
certaine expertise pour linstaller correctement la main . Cependant MikTeX dispose dun
utilitaire pour cela, accessible par un menu, et il existe une commande tlmgr sous Unix (TeX Live
manager).
Package pgf : http://sourceforge.net/projects/pgf/
ou http://www.ctan.org/tex-archive/graphics/pgf/
Comme dans toute utilisation de package, il faut tre prudent : il peut exister des conflits avec
dautres packages. Le plus notable pour Tik Z est le conflit avec xcolor, car Tik Z redfinit certaines
des fonctions de xcolor. Cependant les deux packages peuvent rester compatibles si on dclare
xcolor avant tikz.
11

12

CHAPITRE 1. PREMIRES FIGURES

1.1.2

Insrer une figure Tik Z : \begin{tikzpicture}

Llment de base que permet de crer Tik Z dans un document LATEX est une figure (picture).
Elle se matrialise dans le document LATEX par un environnement tikzpicture :
\begin{tikzpicture}
...
\end{tikzpicture}
lintrieur de cet environnement se trouve une zone de texte dans laquelle on crit suivant la
syntaxe spciale de Tik Z. Voici par exemple comment on trace un cercle de rayon 1 dont le centre
a pour coordonnes cartsiennes (0, 0) (dans le systme de reprage de Tik Z) :
\begin{tikzpicture}
\draw (0,0) circle (1) ;
\end{tikzpicture}
Ce qui donne :

La syntaxe \draw (0,0) circle (1) ; est analyse par Tik Z suivant ses propres conventions,
qui ne sont pas celles du LATEX standard, et que nous dtaillerons par la suite.
Comment une figure Tik Z est-elle place dans le document final ? Tik Z calcule dabord lencombrement total de la figure et fait en sorte que LATEX considre cette figure comme un bloc
rectangulaire. LATEX insre alors ce bloc dans le flot normal, suivant les rgles applicables aux
blocs de type mbox.
Dans lexemple qui suit, on a insr une figure Tik Z dans du texte et on la encadre avec
\fbox :
Voici une premire ligne ...
... et de rayon 1
\fbox{
\begin{tikzpicture}
...
\end{tikzpicture}
}
insr dans une ligne ...
Voici une premire ligne de texte LATEX. pour montrer linsertion dune figure. Voici le cercle de

centre (0, 0) et de rayon 1


insr dans une ligne LATEX et encadr avec fbox. La
figure est considre comme un rectangle et est aligne sur la ligne de base.
On peut ensuite grer lalignement et le placement sur la page avec les outils LATEX habituels
de mise en page. La plupart du temps, on isole la figure sur une ligne et on la centre avec
\begin{center} ... \end{center}.
:newpage

1.2. LE REPRAGE DES POINTS

1.2
1.2.1

13

Le reprage des points


Coordonnes cartsiennes : (x,y)

Dans le systme par dfaut, les points sont reprs laide de deux axes perpendiculaires :
laxe des abscisses, horizontal et dirig vers la droite et laxe des ordonnes, vertical et dirig vers
le haut. Les vecteurs de base ont exactement pour longueur 1 cm (et quand on imprime, cest trs
prcisment 1 cm). La position dun point est repre par un couple de nombres (x,y)

(x, y)

y
1

On peut se demander o est place lorigine dans la figure engendre. En fait, elle na pas de
position prdfinie. La figure occupe seulement la place minimale pour que tous les lments tracs
explicitement soient visibles. La position de lorigine par rapport la figure dpend donc des points
tracs. Si on trace juste un cercle de centre (2, 0) et de rayon 1, lorigine ne sera pas dans le cadre
de la figure, qui ne montrera que les abscisses x entre 1 et 3 et les ordonnes y entre 1 et 1.
Tik Z possde dautres systmes de reprage que nous verrons au fur et mesure. Signalons
tout de suite les coordonnes polaires (a:r) o a est langle polaire en degrs et r le rayon polaire.

1.2.2

Coordonnes polaires : (a:r)

On peut reprer la position dun point M dans un systme de coordonnes polaires, avec la
syntaxe ( : r), o est langle orient (en degrs) entre le vecteur de base des abscisses et le
!
vecteur OM et r est la distance OM .

( : r)
M

Les formules permettant de passer dun systme un autre sont :


p
x
y
r = x2 + y 2 , cos() = , sin() =
r
r
x = r cos() et y = r sin()
Par exemple, le point de coordonnes cartsiennes
p a pour coordonnes polaires approp (2,2)
ches (45:2.82), o 2.82 est la valeur approche de 8 = 22 + 22 .

14

CHAPITRE 1. PREMIRES FIGURES

2
1

(45 : 2.82)

8
45

Dans la version de base, on doit spcifier les coordonnes sous forme numrique approche.
Cependant une extension de Tik Z permet dintroduire quelques calculs formels. Nous verrons cela
dans la suite, mais pour linstant nous utiliserons uniquement les valeurs numriques.

1.2.3

chelle : [scale=k]

Il peut arriver que la figure, telle quelle est dfinie avec les coordonnes, soit trop petite ou trop
grande. On peut alors utiliser loption [scale=k], quon crit juste aprs \begin{tikzpicture}.
Elle signifie que toutes les dimensions seront multiplies par k.
Pour avoir une figure deux fois plus grande, crire
\begin{tikzpicture}[scale=2] ... \end{tikzpicture}
Le point de coordonnes (1,0) sera alors dessin 2 cm de lorigine au lieu de 1 cm.

1.3

Exemple : tracer un segment ou un cercle

1.3.1

nonc : deux segments, un cercle

Dans un repre orthonormal dunit 1 cm, tracer les deux segments reliant lorigine aux points
units de coordonnes (1, 0) et (0, 1), ainsi que le cercle trigonomtrique.

1.3.2

Solution la main

Pour cela, on procde en sparant les trois lments de la figure :


1. Premier segment (horizontal)
(a) Positionner le crayon au-dessus de lorigine
(b) Abaisser le crayon et tracer le segment jusquau point de coordonnes (1, 0)
2. Deuxime segment (vertical)
(a) Relever le crayon, le positionner au-dessus de lorigine
(b) Abaisser le crayon et tracer le segment jusquau point de coordonnes (0, 1)
3. Cercle
(a) Prendre un compas, piquer sa pointe lorigine
(b) Fixer un rayon de 1 cm, tracer le cercle.

1.3. EXEMPLE : TRACER UN SEGMENT OU UN CERCLE

1.3.3

15

Solution Tik Z : (a,b) -- (c,d) et (a,b) circle (r)

Cette construction se traduit en Tik Z de la manire suivante :


\begin{tikzpicture}
\draw (0,0) -- (1,0) ;
\draw (0,0) -- (0,1) ;
\draw (0,0) circle (1) ;
\end{tikzpicture}
On y retrouve tous les lments de la solution prcdente.
La figure entire est dlimite par un environnement au sens de LATEX :
\begin{tikzpicture}
...
\end{tikzpicture}
lintrieur de cet environnement, Tik Z introduit sa propre syntaxe, qui nest plus celle de
LATEX (ce qui peut drouter au dbut).
Chacune des sous-figures (segments, cercle) est dlimite par
\draw ... ;
Chaque lment dune sous-figure correspond une opration lintrieur du \draw :
positionner :
(x,y)
tracer un segment :
--(x,y)
tracer un cercle :
circle (r)
Il y a bien dautres lments de syntaxe dans Tik Z, nous les verrons au fur et mesure.

1.3.4

crire des textes : (x,y) node [position] {texte}

Pour que la figure soit plus parlante, on veut maintenant crire le nom des points ct des
points : O pour lorigine, A pour (1, 0), B pour (0, 1)
B

Pour cela, on veut exprimer en gros les actions suivantes :


crire la lettre O en-dessous de lorigine
crire la lettre A droite du point (1, 0)
crire la lettre B au-dessus du point (0, 1)
Ces trois instructions scrivent en Tik Z de la manire suivante :
\draw (0,0) node[below]{$O$} ;
\draw (1,0) node[right]{$A$} ;
\draw (0,1) node[above]{$B$} ;
A chaque fois, on retrouve lopration de positionnement : (0, 0) pour se positionner lorigine,
etc.
Puis vient le mot-cl node. Cela fait rfrence un concept de Tik Z : le concept de nud.
Cela dsigne en gros une bote de texte. Il faut ensuite prciser o se place le centre de cette bote
par rapport la position spcifie. Cest lobjet de loption entre crochets : [below] par exemple
(il nest pas ncessaire de donner une position trs prcise, Tik Z fait des choix raisonnables). Puis
on donne le texte acher, entre accolades, et dans ces accolades on crit une expression LATEX
quelconque. Cest une des forces de Tik Z : pouvoir annoter une figure avec des textes crits en
LATEX.
Ces instructions se rajoutent la figure prcdente, qui devient :

16

CHAPITRE 1. PREMIRES FIGURES

\begin{tikzpicture}
\draw (0,0) -- (1,0) ;
\draw (0,0) -- (0,1) ;
\draw (0,0) circle (1) ;
\draw (0,0) node[below]{$O$} ;
\draw (1,0) node[right]{$A$} ;
\draw (0,1) node[above]{$B$} ;
\end{tikzpicture}
On peut ne pas spcifier du tout de position. Le centre du texte est alors plac au point de
rfrence :
Par exemple, pour placer la lettre O prcisment lorigine, on peut crire :
\draw (0,0) node{$O$};
Les positions possibles sont (avec les significations des mots anglais) :
above, below, right, left,
above left, above right, below left, below right
au-dessus, en-dessous, droite, gauche
au-dessus gauche, au-dessus droite, en-dessous gauche, en-dessous droite
Parfois ces indications qualitatives ne sont pas assez prcises. Le plus simple est souvent alors
de placer le centre du nud explicitement un autre point proche du point principal, en contrlant
exactement les coordonnes. Il y a dautres mthodes, mais elles introduisent de nouveaux concepts
techniques que nous aborderons plus tard.
O

(0,0) node[below left] {$O$}

1.3.5

(-0.6,-0.3) node {$O$}

Arc de cercle : (x,y) arc (a:b:r)

Comment dessiner seulement le quart de cercle de A B ?


B

Pour spcifier mathmatiquement un arc de cercle, on peut donner le centre du cercle, son
rayon, langle polaire du point origine et langle polaire du point extrmit (le vecteur de rfrence
!
des angles polaires tant comme dhabitude le vecteur (1, 0), ici OA).
Par exemple, ici, on pourrait dire : tracer larc de cercle de centre (0, 0) et de rayon 1 dont
lorigine a pour angle polaire 0 et donc lextrmit a pour angle polaire 90.
Malheureusement, Tik Z na pas choisi cette faon de sexprimer. Il faut dire quelque chose
comme : tracer larc de cercle qui commence en A, de telle manire que A se trouve sur ce cercle
avec un angle polaire de 0, jusquau point dangle polaire 90 sur le mme cercle, sachant que le
rayon du cercle vaut 1.
\draw (1,0) arc (0:90:1) ;

1.3. EXEMPLE : TRACER UN SEGMENT OU UN CERCLE

17

Bien sr, ces informations susent pour retrouver le centre et pour reconstituer la figure, mais
ce nest sans doute pas la convention la plus naturelle possible (sauriez-vous construire gomtriquement le centre ?). Lavantage quon peut lui trouver, cest justement de ne pas avoir prciser
le centre. Mais existe-t-il des cas o on trace un arc de cercle sans avoir aucune ide du centre ?
Une application frquente de cette construction est de marquer un angle sur une figure.
Soit le triangle OAB avec O(0, 0), A(2, 0), B(2, 2). Marquer sur le dessin langle en O.
B

O
\begin{tikzpicture}
\draw (0,0) node[below] {$O$};
\draw (2,0) node[right] {$A$};
\draw (2,2) node[right] {$B$};
\draw (0,0) -- (2,0) ;
\draw (0,0) -- (2,2);
\draw (1,0) arc (0:45:1) ;
\end{tikzpicture}

Et ensuite, on peut utiliser le concept de node pour crire la valeur de langle ct. Il faut
alors placer la bote de texte au bon endroit, prs de larc. Ici on peut utiliser les coordonnes
polaires, puisque langle en O est connu : 45. Le nud est alors plac dans la direction de langle
moiti : 22.5, une distance un peu plus grande que le rayon de larc : 1.3. En fait, on ne peut
indiquer quun nombre entier de degrs, donc on arrondit par exemple 22.
\draw (22:1.3) node {$\dfrac{\pi}{4}$};

1.3.6

Annotations : angle droit, segments gaux

Annotons maintenant le triangle avec les signes habituels indiquant que cest un triangle isocle
rectangle.

On marque langle droit avec deux petits segments perpendiculaires, lgalit des cts avec
deux petits segments coupant les cts. Bien que ces signes ne fassent pas vraiment partie de la
figure et quils ne vont pas faire lobjet dune tude gomtrique, il sagit, aprs tout, quand mme,
dlments gomtriques : des segments. On peut les tracer avec les outils vus jusqu maintenant,
mais cela ncessite de calculer les coordonnes de leurs extrmits.
Cela peut paratre inhabituel, car on trace souvent ce genre de signes sans trop y faire attention
et sans avoir rsoudre de nouveaux problmes gomtriques.
Ici les traits de la marque dangle droit sont horizontaux et verticaux, donc il nest pas dicile
dimaginer des coordonnes (leur longueur exacte rsulte dun choix arbitraire, disons 0.3).
Donc les nouveaux points introduire sont (1.7, 0), (1.7, 0.3) et (1.7, 0.3), (2, 0.3)

18

CHAPITRE 1. PREMIRES FIGURES


...
\draw (1.7,
\draw (1.7,

0) -- (1.7,
0.3) -- (2,

0.3) ;
0.3) ;

Les marques de segments gaux peuvent galement tre choisis horizontaux et verticaux, disons
de longueur 0.2
Donc les nouveaux points introduire sont (1.9, 1), (2.1, 1) et (1, 0.1), (1, 0.1).
....
\draw (1.9,1) -- (2.1,1);
\draw (1,-0.1) -- (1,0.1);

Et si on voulait marquer les points avec des points plus gros, comme ?
Eh bien, un gros point de ce type est simplement un caractre LATEX : $\bullet$
Il sut dintroduire un nud (node), centr sur le point (il sut de ne donner aucune option
de position) et dont le contenu est $\bullet$ :
\draw (0,0) node {$\bullet$} ;
\draw (2,0) node {$\bullet$} ;
\draw (0,2) node {$\bullet$} ;

On peut prolonger cette ide : un noeud de texte peut tre rempli avec un symbole LATEX,
et un symbole nest rien dautre aprs tout quun dessin. crire un symbole, cest dessiner, et
LATEX est bien fourni en symboles divers. On peut utiliser cette ide ici pour tracer les petits traits
indiquant lgalit des cts : on peut utiliser les symboles $|$ (barre verticale |), --- (tiret ),
$\backslash$ (barre oblique \), $/$ (barre oblique /), $\times$ (multiplication ).

|
$|$

$\backslash$ \

$\times$

$\times$

1.4. FIGURE GOMTRIQUE : MTHODES DE BASE

1.4

19

Figure gomtrique : mthodes de base

Nous venons de voir les lments de base qui constituent une figure gomtrique comme on en
rencontre au collge et au lyce, et comment ils se traduisent en Tik Z :
des segments : (a,b) -- (c,d)
des cercles : (a,b) circle (r)
des arcs de cercle : (a,b) arc (u:v:r)
des annotations de texte : (a,b) node[position] {texte}
Nous allons voir maintenant comment on peut crer de nombreuses figures de gomtrie uniquement
laide de ces lments de base. Autrement dit, vous pouvez tre oprationnels ds maintenant
avec les techniques vues jusquici.
Tik Z propose bien dautres possibilits (son manuel comporte 560 pages), mais il est essentiel
de se familiariser avec les bases pour comprendre lintrt des extensions et savoir quand les utiliser
de manire pertinente. Et encore une fois, les bases peuvent vous sure pour la plupart de vos
figures.
Cela peut paratre surprenant de pouvoir se contenter de ces constructions, mais aprs tout,
si vous observez une figure de gomtrie usuelle, mme complique, vous verrez bien quelle nest
forme que de ces lments, du moins en ce qui concerne sa structure. Les figures usuelles sont bien
de ce type : points, segments, triangles, paralllogrammes, polygones, cercles, droites parallles et
perpendiculaires, etc.

1.4.1

Problme principal : calculer les coordonnes

Construire une figure avec les techniques de base seulement suppose que vous devez calculer
dabord par vos propres moyens les coordonnes (cartsiennes ou polaires) de tous les points.
Ce nest pas ce quon fait dhabitude quand on trace une figure la main : on dispose doutils
de dessin (rgle, compas, rapporteur, papier quadrill) et doutils de calcul (calculatrice, logiciel
mathmatique).
La dicult du calcul dpend de la figure que vous avez construire et des contraintes sur cette
figure. Si les positions des points sont imposes par un nonc et si les points ne sont pas placs
de manire pratique pour le dessin, alors il peut y avoir beaucoup de calculs. Mais souvent, vous
avez une certaine marge de manuvre : si votre but est dillustrer une proprit gomtrique, vous
pouvez dcider de placer certains points de telle manire que les calculs soient facilits.
Voici quelques stratgies, qui sont en fait dj bien connues pour les tracs la main :
privilgier les points coordonnes entires
privilgier les directions verticales et horizontales
privilgier les directions dangles polaires simples et connus, ce qui permettra dutiliser plus
facilement les coordonnes polaires
commencer par la fin : si on veut illustrer le cercle circonscrit un triangle, commencer par
placer le cercle

1.4.2

Exemple : triangle de cts 3, 4 et 5

Voici un exemple : tracer un segment [AB] horizontal de longueur 5, puis tracer le triangle
ABC direct tel que BC = 4 et AC = 3.
On choisit des coordonnes simples pour A et B : A(0, 0) et B(5, 0).
Il faut calculer les coordonnes de C, en traduisant AC = 3 et BC = 4, soit x2 + y 2 = 32 ,
(x 5)2 + y 2 = 42 .
9
= 1.8, puis, en
On rsout ensuite le systme par dirence : 10x 25 = 7, soit x =
5
12
remplaant, y =
= 2.4
5
On peut alors crire le code Tik Z, quon peut annoter avec des commentaires LATEXpour plus
de lisibilit :

20

CHAPITRE 1. PREMIRES FIGURES

\begin{tikzpicture}
\draw (0,0) -- (5,0);
\draw (0,0) -- (1.8,2.4);
\draw (5,0) -- (1.8,2.4);
\end{tikzpicture}

% AB = 5
% AC = 3
% BC = 4

On peut rajouter des nuds de texte pour montrer les noms Des points :
\draw (0,0) node [below] {$A$}; etc.
C

Et finalement, on peut indiquer les longueurs des cts. Pour cela, il faut trois noeuds de
texte,

5
placs aux alentours des milieux des segments, milieux dont on calcule les coordonnes :
,0 ,
2

17 6
9 6
,
,
,
.
5 5
10 5
Donc, par exemple \draw (3.4,1.2) node [above right] {$4$} ; etc.
C
3

Il serait dommage de ne pas en profiter pour illustrer le thorme de Pythagore : langle en


C est droit puisque 32 + 42 = 52 . Pour noter cela, il faut des petits traits dans langle en C, de
longueur 0.5 par exemple, de manire former un carr CGIH avec G sur [CA] et H sur [CB].
C
H

G
I

! 1 1 !
! 1 1 !
!
!
!
On pose CG = CA, CH = CB, puis CI = CG + CH.
2 3
2 4
On trouve G (1.5, 2), H(2.2, 2.1) et I(1.9, 1.7).
Sur le dessin on trace [GI] et [IH] : \draw (1.5,2) -- (2.2,2.1) ; etc.

1.4. FIGURE GOMTRIQUE : MTHODES DE BASE

21

C
3

Il faut quand mme un certain temps pour concevoir tout cela, faire les calculs et raliser la
figure, et cela pour un simple triangle. Le plus long nest dailleurs pas de tracer le triangle, mais
de bien placer les annotations (noms des points, longueurs des cts, marque dangle droit). On
conoit alors que la ralisation dune figure plus complexe peut demander beaucoup de temps et
de calculs.
Une possibilit est alors de les faire excuter dabord par un autre logiciel spcialis en gomtrie
et en mathmatiques. Un exemple dun tel logiciel est GeoGebra. Nous allons voir comment lutiliser
pour prparer cette figure.

1.4.3

Prparer la figure avec GeoGebra

Le site de GeoGebra est ladresse http://www.geogebra.org/


GeoGebra permet de construire interactivement et visuellement une figure avec des primitives
mathmatiques, comme tracer la perpendiculaire une droite passant par un point, tracer lintersection de deux lignes, tracer le milieu dun segment, tracer limage dun point par une rotation
donne, tracer le cercle passant par trois points, etc. Il permet aussi de nommer les points, de
tracer les droites par leurs quations, de dterminer le lieu dun point quand un autre varie.
Autrement dit, il manipule directement des objets gomtriques de manire visuelle et conceptuelle et il a des capacits de calcul mathmatique. Ces possibilits peuvent tre trs avantageuses
pour prparer une figure Tik Z.
Un autre de ses avantages est que vous pouvez dplacer certains points pour que la figure
soit bien mise en place sans avoir tout redfinir (les contraintes gomtriques imposes restent
vrifies). Pour cette raison, on dit que cest un logiciel de gomtrie dynamique (un autre excellent
logiciel bien connu de ce type est Cabri).
Voici comment raliser la figure prcdente avec GeoGebra :
Tracer le point A(0, 0), le point B(5, 0), le cercle de centre A et de rayon 3, le cercle de centre
B et de rayon 4, puis dfinir C comme un des points dintersection des deux cercles (le point
dordonne positive). Dans la colonne des coordonnes gauche, vous pouvez lire les coordonnes
de C : (1.8, 2.4). Vous navez pas eu de calculs faire pour cela.
De mme on peut tracer les milieux des cts et lire leurs coordonnes.
Pour la marque dangle droit, on peut construire G et H comme les intersections du cercle de
centre C et de rayon 0.5 avec les segments [CA] et [CB], puis obtenir I comme image de C par la
rotation de centre H et dangle 90.

C
H

G
D
A

E
F

On peut ainsi retrouver toutes les coordonnes utiles et reconstituer la figure.

22

CHAPITRE 1. PREMIRES FIGURES

1.4.4

Faire engendrer le code Tik Z par GeoGebra

Au lieu de lire les coordonnes et de les utiliser pour crire le code Tik Z, vous pouvez laisser
GeoGebra le faire pour vous ! En eet, depuis la prversion de dveloppement 3.1 de septembre
2008, on trouve un menu "Fichier ! Exporter ! Export PGF/TikZ". Lorsquon demande un
export, on obtient le code dun document LATEX contenant une figure Tik Z. Si votre seul but
est de produire un document avec juste une figure, cela sut. La figure reproduit lidentique
(quasiment) celle que vous avez construite avec GeoGebra, avec la qualit Tik Z. Autrement dit,
dans ce cas, vous navez mme pas apprendre Tik Z !
Il se peut que vous souhaitiez inclure cette figure dans un document LATEX, ce que vous pouvez
faire par copier-coller. Il se peut aussi que vous ne souhaitiez pas conserver tous les lments de la
figure (en particulier ce qui concerne les dclarations des couleurs, la grille, les axes). Il faut alors
analyser prcisment le code produit par GeoGebra pour extraire juste ce qui vous intresse, par
exemple les segments entre les points (il est prfrable de cacher dabord sous GeoGebra tout ce
quon ne souhaite pas voir). En gnral, le code correspondant est identifiable et bien group.
Par exemple, aprs avoir trac un triangle quilatral avec la commande GeoGebra polygone
rgulier , on peut extraire juste les lignes qui tracent le triangle :
\draw [color=zzttqq] (2,1)-- (4,2);
\draw [color=zzttqq] (4,2)-- (2.13,3.23);
\draw [color=zzttqq] (2.13,3.23)-- (2,1);
puis supprimer les indications de couleur. On obtient alors un trac simple :
\begin{tikzpicture}
\draw (2,1)-- (4,2);
\draw (4,2)-- (2.13,3.23);
\draw (2.13,3.23)-- (2,1);
\end{tikzpicture}

On peut ensuite partir de ce code pour complter la figure.


Ce procd a t utilis pour construire de nombreuses figures de gomtrie de ce livre, en
particulier pour les exercices qui suivent.

1.5

Exercices : figures gomtriques

Dans chaque exercice, on demande de raliser la figure spcifie. Toutes ces figures peuvent tre
construites en Tik Z uniquement partir des lments de base : coordonnes, segments, cercles,
arcs, nuds. Pour certaines figures, les coordonnes ont t obtenues laide du logiciel GeoGebra.
Comme lments de solution, nous donnons les coordonnes utilises (il est recommand dutiliser GeoGebra ou au minimum un papier quadrill).
Il est parois tonnant de sapercevoir que, mme pour des figures aussi classiques et relativement
simples, le nombre de points peut tre lev (une vingtaine de points). Cest d en partie aux points
auxiliaires utiliss pour les annotations.

1.5. EXERCICES : FIGURES GOMTRIQUES

1.5.1

23

Thorme de Thals

Figure : deux droites obliques coupes par trois parallles horizontales.

Aide :
droites obliques (0,0)--(1,3) et (4,0)--(2,3)
droites parallles (0,1)--(4,1) (0,1.5)--(4,1.5) et
(0,2.5)--(4,2.5)

1.5.2

Paralllogramme

Les diagonales dun paralllogramme se coupent en leur milieu


\
||

||

Aide :
Centre : $\bullet$ (0,0)
Diagonales : (-2,0)--(2,0) et (1,1)--(-1,-1)
Marques $||$ : ( 1, 0) et (1, 0)
Marques $\backslash$ : ( 0.5, 0.5) et (0.5, 0.5) ;

1.5.3

Losange

Les diagonales dun losange sont perpendiculaires.


Ici le losange est form de deux triangles quilatraux.
/

Aide :
Losange : (0, 0), (2, 0), (3, 1.73), (1, 1.73)
Diagonales (0,0) -- (3,1.73) ; (1,1.73) -- (2,0)
Marques $/$ : (2, 1.73), (1, 0)
Marques --- : (2.5, 0.87), (0.5, 0.87)
Angle droit : (1.38, 1.07), (1.59, 1.19), (1.7, 0.99)

24

CHAPITRE 1. PREMIRES FIGURES

1.5.4

Centre de gravit

Le centre de gravit dun triangle est lintersection des mdianes.


Les points ont t choisis!sur le cercle trigonomtrique.
!
p
p

3 4
3 1
3 1
A
,
,B
,
,C
,
5 5
2
2
2
2
A
\

\
B

||

||

Aide :
chelle : 2.
Triangle : A(0.6, 0.8), B( 0.87, 0.5), C(0.87, 0.5)
Milieux : (0, 0.5), (0.74, 0.15), ( 0.13, 0.15)
Centre de gravit G(0.2, 0.07)
Marques $\backslash$ : (0.24, 0.47), ( 0.5, 0.18)
Marques $||$ : ( 0.44, 0.5), (0.44, 0.5)

1.5.5

Cercle circonscrit

Le centre du cercle circonscrit


un triangle
est lintersection des mdiatrices. Mme triangle :
!
!
p
p

3 4
3 1
3 1
A
,
,B
,
,C
,
5 5
2
2
2
2
A
\
\
B

||

O
||

Aide :
chelle : 2.
Triangle : A(0.6, 0.8), B( 0.87, 0.5), C(0.87, 0.5)
Milieux : (0, 0.5), (0.74, 0.15), ( 0.13, 0.15)
Cercle : centre O(0, 0), rayon : 1 (tout a pour a !)
Marques $\backslash$ : (0.24, 0.47), ( 0.5, 0.18)
Marques $||$ : ( 0.44, 0.5), (0.44, 0.5)
Angle droit sur [BC] : (0.1, 0.5), (0.1, 0.4), (0, 0.4)
Angle droit sur [AB] : ( 0.08, 0.09), ( 0.02, 0.14), ( 0.07, 0.2)

1.5. EXERCICES : FIGURES GOMTRIQUES

1.5.6

25

Orthocentre

Lorthocentre est lintersection des hauteurs.


B

C
Aide :
Triangle : A(0, 0), B(2, 2), C(3, 2)
Pieds des hauteurs :
sur [AC] : (0.46, 0.31), sur [BC] : (2.35, 0.59), sur [AB] : (0.5, 0.5)
Orthocentre : H(0.8, 0.2)
Angles droits :
sur [AC] : (0.8, 0.53), (1.02, 0.2), (0.68, 0.03)
sur [BC] : (1.96, 0.49), (2.06, 0.1), (2.45, 0.2)

1.5.7

Centre du cercle inscrit

Le centre du cercle inscrit est lintersection des bissectrices.


C

I
A

Aide :
Triangle : A(0, 0), B(4, 0), C(3, 3)
Cercle : centre I(2.54, 1.05), rayon : 1, 05
Points de contact :
sur [AB] : (2.54, 0), sur [AC] : (1.8, 1.8), sur [BC] : (3.54, 1.38)
Marques dangles (en A, langle est simple : 45) :
BAI : (1,0) arc(0:22:1), IAC : (1.11,0.46) arc (23:45:1.2)
Angle droit sur [AB] : (2.34, 0), (2.34, 0.2), (2.54, 0.2)

26

1.6

CHAPITRE 1. PREMIRES FIGURES

Rsum

Tik Z est un package pour LATEX, dclar par \usepackage{tikz}.


Une figure Tik Z est engendre par du code plac dans un environnement
\begin{tikzpicture} ... \end{tikzpicture}, suivant une syntaxe spciale propre Tik Z.
Les points sont reprs par leurs coordonnes cartsiennes (x,y) ou par leurs coordonnes
polaires (a:r)
Lunit par dfaut est 1 cm, mais on peut appliquer toute la figure une chelle avec [scale=k]
(lunit devient k cm).
La principale commande de dessin est \draw ... ;
Tracer un segment : \draw (a,b) -- (c,d) ;
Tracer un cercle : \draw (a,b) circle (r) ;
Tracer un arc de cercle : \draw (a,b) arc (u:v:r) ;
crire un texte LATEX : \draw (a,b) node {texte} ;
ou \draw (a,b) node [position] {texte} ; (position : above, below, etc.)
Le problme principal pour tracer une figure de gomtrie est de dterminer les coordonnes des
points, surtout pour les points auxiliaires servant aux annotations. Pour cela, il peut tre pratique
de saider dun logiciel auxiliaire comme GeoGebra, qui est mme capable dengendrer du code
Tik Z.

Chapitre 2

Chemins, options graphiques


Dans ce chapitre, nous allons voir direntes faons de simplifier le trac des figures par rapport
aux mthodes de base vues dans le chapitre prcdent. Nous introduirons la possibilit de nommer
les points, de regrouper des traits lmentaires dans un chemin, de spcifier des positions par
rapport des traits et plus seulement des points. Dautre part, nous prsentons des options
graphiques permettant de faire varier lapparence des traits : pointills, couleurs, remplissage. Et
enfin nous introduirons des faons de prciser le cadre de la figure : axes, grille, fentre.
Ces outils permettent de raliser de nombreuses figures de gomtrie avec une prsentation de
qualit.

2.1

Simplifications, raccourcis, abstractions

Toutes les figures prcdentes taient construites point par point, trait par trait, et partir de
coordonnes qui devaient toutes tre calcules au pralable. On peut trouver cela un peu fastidieux.
Tik Z fournit direntes facilits pour simplifier les choses. Mais qui dit simplification dit nouveaux outils, nouvelle syntaxe, nouveaux concepts. Ces nouveauts ont un avantage et un inconvnient : lavantage, cest que le code crire sera un peu plus simple ou de plus haut niveau,
linconvnient cest que cela rajoute une charge mentale de mmoire, de comprhension, de dcision. Il faut apprendre et comprendre les nouveauts et il faudra se demander lors de chaque
figure quel va tre le choix de loutil le plus appropri. Ces nouveauts pourront mme embrouiller
rtrospectivement ce quon pensait avoir compris. Donc prudence : il nest pas ncessaire de se
prcipiter sur toutes les nouveauts. Il faut que lacquisition soit progressive.

2.1.1

Nommage des points : \coordinate(nom) at (x,y)

Pour concevoir et vrifier une figure, il est plus agrable de pouvoir dsigner les points par des
noms plutt que par des coordonnes.
Il y a plusieurs variantes syntaxiques. Nous conseillons la suivante, qui joue le rle de dclaration,
un peu comme dans un texte mathmatique : Soit A le point de coordonnes (1, 0) . Cela scrit
\coordinate (A) at (1,0) ;
\coordinate (nom) at (x,y) ;
Le nom peut tre choisi librement, mais il ne doit pas contenir de signes de ponctuation ou de
symboles spciaux.
Si on reprend la figure du dbut, on peut dclarer les noms des points puis utiliser ensuite ces
noms pour le trac :
\begin{tikzpicture}
\coordinate (O) at (0,0) ;
\coordinate (A) at (1,0) ;
\coordinate (B) at (0,1) ;
\draw (O) -- (A) ;
27

28

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

\draw (O) -- (B) ;


\draw (O) circle (1) ;
\end{tikzpicture}
Apparemment, on ny gagne pas en concision, puisquon rajoute des lignes. Mais on y gagne
sur plusieurs points : en lisibilit dabord (on voit clairement quon trace le segment [OA] par
exemple), en modularit ensuite (on spare nettement les positions particulires et la structure de
la figure) et en rutilisabilit enfin (on peut utiliser plusieurs fois le mme nom pour faire rfrence
la mme position).
Cela facilite aussi les corrections : si on sest tromp dans le calcul des coordonnes dun point,
il ny a quun seul endroit rectifier (la dclaration des coordonnes).

2.1.2

Enchanement de traits : chemin, position courante

Jusqu maintenant, nous avons trac les traits un par un, chacun dans une instruction \draw.
Cest un peu fastidieux quand il faut tracer des successions de traits qui senchanent (des lignes
brises et polygones) car on est oblig dcrire deux fois ou plus les points intermdiaires. Tik Z
introduit un raccourci pour cela : plutt que dcrire
\draw (0,0) -- (1,0) ;
\draw (1,0) -- (1,1) ;
On peut crire en enchanant les traits dans une mme instruction :
\draw (0,0)

-- (1,0) -- (1,1) ;

Cela sappelle un chemin (path). Cette notion est introduite ici propos dune suite de segments, mais elle est beaucoup plus gnrale et forme une des bases de Tik Z.
Syntaxiquement, elle se prsente comme une suite doprations de chemin (path operations).
Ici, il y en a trois : (0,0), qui est une opration de positionnement explicite, puis -- (1,0) et
-- (1,1) , qui sont des oprations de trac de segment.
Ces dernires oprations ont un double rle : un rle de trac dabord, mais aussi un rle
de positionnement implicite aprs le trac. En eet, le long dun chemin, Tik Z maintient une
position courante : cest la position qui rsulte du trac prcdent et qui servira de rfrence
(point de dpart) pour le trac suivant. Dune manire image, cest la position du crayon.
Dans le cas dun segment, cette position implicite est naturelle : aprs linstruction de trac
-- (x,y) , la position courante devient (x, y). Mais il y a dautres instructions pour lesquelles la
convention est moins vidente, ce qui peut tre source de confusions.
Par exemple, aprs le trac dun cercle par circle (r), la position courante devient le centre du
cercle.
Aprs le trac dun arc, la position courante devient lextrmit de larc. Cette dirence entre
arc et cercle explique peut-tre la convention inhabituelle choisie pour dcrire un arc. Un arc peut
tre inclus dans une succession de lignes pour former une ligne continue :
\draw (0,0) -- (1,1) arc (180:0:1) -- (4,0);
(1, 1) 180

(0, 0)

(4, 0)

Les indications donnes en gris ont t rajoutes pour bien montrer linfluence des paramtres,
mais elles ne font pas partie du dessin proprement dit.
Si on remplace larc par un cercle, on obtient :
\draw (0,0) -- (1,1) circle(1) -- (4,0);

2.1. SIMPLIFICATIONS, RACCOURCIS, ABSTRACTIONS

29

(1, 1)

(0, 0)

(4, 0)

Aprs le trac du cercle, le crayon est en son centre (1, 1) et on repart de l pour joindre le
point suivant (4, 0).

2.1.3

Rectangle : (a,b) rectangle (c,d)

Il est frquent davoir tracer un rectangle dont les cts sont parallles aux axes. Tik Z fournit
une opration pour cela : rectangle, utilise sous la forme (a,b) rectangle (c,d), o (a, b) et
(c, d) sont deux coins opposs du rectangle.
Exemple : (0,0) rectangle (2,1);
(2,1)

(0,0)
Autre exemple : (0,2) rectangle (2,0);
(0,2)

(2,0)

2.1.4

Figures fermes : cycle, fill

Pour tracer un triangle ABC, on peut toujours crire :


\draw (a) -- (b) -- (c) -- (a);
Mais Tik Z possde le concept de chemin ferm. Il est possible de dire : tracer de A B puis
C, puis fermer la figure :
\draw (a) -- (b) -- (c) -- cycle;
Il y a deux intrts cela : dabord dans la jonction des traits entre le dpart du point initial
et le retour au point initial (Tik Z sarrange pour que la jonction se fasse bien au pixel prs) et
ensuite dans le remplissage des figures fermes avec de la couleur ou des motifs.
Pour remplir une figure ferme, on utilise \fill au lieu de \draw :
\fill (0,0) -- (1,0) -- (1,1) -- cycle;

Le principal intrt de la notion de chemin ne rside pas tellement dans lconomie dcriture
quelle permet (on conomise quelques instructions \draw), mais dans cette possibilit de dfinir
des chemins ferms pour linstruction \fill. Elle a un autre avantage : elle permet de regrouper
en un seul endroit les options graphiques qui sappliquent sur tout le chemin (voir plus loin).
Nous allons voir plus loin comment remplir la figure avec des couleurs et des motifs.

30

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

2.1.5

Noeuds sur les traits : midway, sloped

Dans ce qui prcde, nous avons vu lopration node, qui permet de placer une bote de texte
une position donne, avec ventuellement une option de positionnement :
\draw (0,0) node[below right] {$O$} node{$\bullet$};

On peut aussi placer un nud pour annoter un trait, et non plus un point : pour cela on
place lopration node aprs lextrmit du trait, avec une option de position relative au trait
(midway, near start, near end). Tik Z comprendra alors grce cette option que le nud se
rapporte au trait plutt quau point.
\draw (0,0) -- (4,0) node[midway] {$M$}
node[near start] {$NS$}
node[near end] {$NE$};
NS

NE

On peut ajouter les options usuelles de placement : above, below, etc. (ici : above), et ajouter
dautres nuds (ici les points qui marquent les positions exactes) :
node[midway,above] {$M$} node[midway] {$\bullet$}
Cela permet par exemple de tracer rapidement le milieu M dun segment.
NS

NE

On peut aussi indiquer que le texte doit suivre lorientation du trait : option sloped
node[midway,above,sloped] {$M$}

M
N

Cette dernire possibilit est pratique pour noter des segments gaux par de petits traits.
Au lieu de tracer ces petits traits explicitement laide de coordonnes, on peut les considrer
comme des nuds associs aux segments (option midway), avec un contenu symbolique comme $|$
(un trait vertical |) et loption sloped pour que le petit trait reste perpendiculaire au segment :
node[midway, sloped]{$|$}

|
|

2.1.6

Coordonnes relatives : ++(x,y)

Il peut tre pratique de dsigner un point non pas par ses coordonnes absolues mais par un
dplacement partir du point courant.
La notation \draw (a,b) -- ++(x,y); est un raccourci qui remplace \draw (a,b) -- (c,d)
par c = a + x et d = b + y.

2.1. SIMPLIFICATIONS, RACCOURCIS, ABSTRACTIONS

31

Autrement dit, on joint le point (a, b) au point qui sen dduit par la translation de vecteur
(x, y).
Ainsi, \draw (1,2) -- ++(1,1); quivalent \draw (1,2)--(2,3);
++(x,y)
!
v (x, y)

(a,b)

Ici encore, les annotations en gris ne font pas partie de la figure proprement dite.
Cette opration est intressante pour dcrire un chemin par tapes locales : pour trouver le
trsor, partez du grand chne en (1, 2), puis faites 2 pas vers le nord, puis 3 pas vers lest.
\draw (1,2) -- ++(0,2) -- ++ (3,0);
Cest quivalent \draw (1,2) -- (1,4) -- (4,4);
++(3,0)
(1, 4)

(4, 4)

++(0,2)

(1, 2)
Cela peut tre pratique pour tracer des polygones dont on connat les vecteurs des cts, par
exemple un carr OABC :
\draw (0,0) -- ++(1,1) -- ++(-1,1) --++ (-1,-1) -- cycle;
!
!
!
Les coordonnes des vecteurs sont : OA(1, 1), AB( 1, 1), BC( 1, 1)
B

O
Cette dernire technique est particulirement intressante en utilisant les coordonnes polaires,
par exemple pour tracer un pentagone rgulier. Langle entre deux cts successifs dun pentagone
rgulier est 72, et les cts ont tous la mme longueur, prenons 1 par exemple.
Le premier ct est (0,0) -- (1,0).
Pour tracer le deuxime ct, on peut crire : \draw -- ++(72:1). Cela revient dire : tracer
un segment dans la direction dangle polaire 72, sur une distance 1. Pour le troisime ct, il sura
de dire -- ++ (144:1), sachant que 144 est le double de 72, cest langle polaire du troisime ct.
Et ainsi de suite avec les multiples de 72 :
\draw (0,0) -- (1,0)
-- ++(72:1) -- ++(144:1) -- ++(216:1) -- cycle;
144
72
(0, 0) (1, 0)

32

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

2.2
2.2.1

Dcorations, styles, options graphiques


Options : [ ]

Une figure nest pas constitue que de traits pleins entre des points. Il devient trs vite ncessaire
de modifier laspect des lignes : pointills au lieu de traits pleins, couleur, paisseur des traits,
pointes de flches, etc. Non pas pour le simple plaisir de faire joli, mais pour communiquer des
informations propos de la figure.
Tik Z permet cela par lintermdiaire doptions graphiques. Le concept et la syntaxe des options
est analogue ce quon trouve dans LATEX : les options scrivent entre crochets, spares par des
virgules. Par exemple [thick, red] signifiera quon veut des traits pais et rouges. Remarquez
quon a dj utilis cette syntaxe pour le positionnement des noeuds :
dans lexpression node[below]{}, below tait une option au sens indiqu ici.
Les questions qui se posent propos de cette nouvelle construction syntaxique sont les suivantes :
o peut-on (doit-on) crire ces options ?
quelles sont les options disponibles, avec quelle syntaxe ?
quels sont les lments de la figure aects par loption ?
Nous ne pouvons pas rpondre dun seul coup ni compltement toutes ces questions. En gros,
les options scrivent immdiatement aprs les direntes commandes comme \tikzpicture (pour
une option sappliquant toute la figure), \draw (pour une option sappliquant uniquement au
chemin), et dans les oprations de chemin, comme node. Elles sont . . . optionnelles, cest--dire
quon peut ne pas les faire figurer (dans ce cas Tik Z choisira alors automatiquement des valeurs
par dfaut). En fait, chaque fois que nous introduirons une nouvelle possibilit de Tik Z, nous
indiquerons les principales options associes.

2.2.2

paisseur des traits : thick, thin, line width=5pt

chaque opration draw, on peut spcifier lpaisseur des traits, avec les options suivantes (fin
ou pais) :
thin, very thin, ultra thin
thick, very thick, ultra thick
Par exemple \draw [very thick] (0,0) -- (1,0);
Remarquez que Tik Z permet de sexprimer de manire qualitative (en anglais), sans trop se
proccuper de prcision absolue. Cest souvent susant, mais si on veut on peut aussi spcifier la
largeur exacte du trait, avec des units de longueur :
[line width=5pt]
On peut remarquer deux choses dans cette syntaxe : dabord les noms des options peuvent
contenir des espaces, et ensuite il y a deux formes possibles, lune courte, comme [thin], et lautre
longue comme [line width=5pt]. On direncie en fait le nom de loption (line width) et la
valeur de loption (5pt). La plupart du temps, Tik Z se dbrouille tout seul pour trouver de quelle
option on parle quand on donne une valeur seulement (quand on donne [red], Tik Z reconstitue
la syntaxe complte [color=red]). En cas dambigut il faut prciser le nom de loption.

2.2.3

Pointills, styles des traits : dotted, dashed, double

On peut spcifier quun trait doit tre en pointills :


dotted
Options possibles : dotted, loosely dotted, densely dotted
ou en traitills :
dashed

2.2. DCORATIONS, STYLES, OPTIONS GRAPHIQUES

33

Options possibles : dashed, loosely dashed, densely dashed


On peut aussi spcifier quun trait doit tre double :
\draw [double] (0,0) -- (1,0)
On peut mme prciser lcartement entre les deux traits :
\draw [double distance = 5pt] (0,0) -- (1,0)

2.2.4

Pointes de flches : ->, >= stealth

On peut spcifier que lextrmit dun trait doit tre une pointe de flche avec loption [->].
Si la flche doit tre lorigine plutt qu lextrmit : [<-].
Et on peut combiner les deux : [<->].

Pour un chemin form de traits contigus dans une mme instruction \draw, la flche sapplique
tout le chemin considr comme un seul trait.
Exemple : \draw [<->] (0,0) -- (1,0) -- (1,1);
Les pointes de flches par dfaut sont un peu petites, et on peut en prfrer dautres. On peut alors
spcifier le type de pointe quon veut avec loption >, par exemple : [>=stealth]. Rappelons que
les options saccumulent entre crochets, spares par des virgules : [>=stealth,->]
Le mot stealth voque la forme de lavion furtif appel stealth-fighter (stealth = ruse).

Autre forme de flche, plus triangulaire : [>=latex]

Une extension de Tik Z permet davoir des pointes de flches varies (library arrows)

2.2.5

Couleurs : red, color=gray!20

On peut indiquer quun trait ou une rgion doit tre dune couleur donne en indiquant seulement le nom de la couleur comme option : [red] ou avec le nom doption : [color=red].
On peut spcifier une couleur pour toute la figure :
\begin{tikzpicture}[red] ... ou juste un trait \draw[red]...
Les noms de couleur autoriss sont les noms de couleur standard en LATEX. Les couleurs de base
sont :
red, green, blue, cyan, yellow, magenta, black, white, gray
On peut de plus ajouter une nuance la couleur, le procd consistant suxer le nom de
couleur par un point dexclamation suivi dun nombre de 0 100.
Exemple : [color=gray!20], signifie que la couleur est grise 20% (plus le nombre est petit,
plus la couleur est claire). Mais attention, syntaxiquement il faut alors indiquer obligatoirement le
nom de loption : color=gray!20
gray!20

gray!40

gray!60

gray!80

gray!100

34

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES


On peut distinguer la couleur de remplissage et la couleur du contour :
\draw [black,fill=gray!20]

2.3

Axes, grille, fentre dachage

Dans les figures de gomtrie la position prcise des points est importante, et il est pratique de
lindiquer visuellement en traant les axes ainsi quun quadrillage (en anglais grid, souvent traduit
par grille).

2.3.1

Axes

Tik Z ne possde pas dinstruction particulire pour tracer les axes. Un axe nest rien dautre
quun segment quon trace entre deux points, comme tous les autres segments, en lui appliquant
ventuellement des options graphiques (flches, paisseur, pointills, couleur) et en ajoutant des
annotations :
\begin{center}
\begin{tikzpicture}
\draw[->] (-1,0) -- (1,0);
\draw (1,0) node[right] {$x$};
\draw [->] (0,-1) -- (0,1);
\draw (0,1) node[above] {$y$};
\end{tikzpicture}
\end{center}
y

Une figure classique consiste indiquer les coordonnes dun point dans les axes.
Par exemple, pour le point A(2, 1), il faut joindre le point A ses projets sur les axes (2, 0) et
(0, 1), et indiquer ct de ces projets labscisse 2 et lordonne 1.
\draw [dashed] (2,1) -- (2,0) node[below] {$2$};
\draw [dashed] (2,1) -- (0,1) node[left] {$1$};
A(2, 1)

Plutt que de tracer sparment les deux segments, il est possible de faire le dessin en une seule
opration. On veut joindre le point (0, 1) au point (2, 0) par une ligne dabord horizontale, puis
verticale. Tik Z possde une opration pour cela, note -| :
\draw [dashed] (0,1) -| (2,0);
Ou, dans lautre sens, on joint le point (2, 0) au point (0, 1) par une ligne dabord verticale puis
horizontale : \draw [dashed] (2,0) |- (0,1);

2.3. AXES, GRILLE, FENTRE DAFFICHAGE

2.3.2

35

Quadrillage (grille) : grid

Pour rendre les coordonnes directement lisibles, il est souvent pratique dacher un quadrillage
(une grille). Tik Z fournit linstruction grid pour cela.
La syntaxe est \draw (a,b) grid (c,d);
Cela dessine un quadrillage dont les points sont les points de coordonnes entires lintrieur
du rectangle dfini par deux coins opposs (a, b) et (c, d).
Par dfaut, les traits sont espacs de 1 cm.
Par exemple \draw (0,0) grid (3,2);
(3, 2)

(0, 0)
Le problme dun quadrillage, cest quil risque dembrouiller la figure. Il vaut donc mieux le
dessiner discrtement. Pour cela, on peut utiliser les options very thin et gray (trait trs fin et
gris).
\draw [very thin, gray] (0,0) grid (3,2);
\draw (1,0) -- (3,2);

Cela peut ne pas sure pour les nuds de texte. On peut alors aecter ces noeuds loption
fill=white. Cela colorie le fond du nud en blanc (non transparent). Il faut alors tracer le noeud
aprs la grille.
grid puis node[fill=white]

node

(AB)

(AB)

La distance par dfaut de 1 cm peut parfois tre insusante. On peut alors utiliser loption
step applique lopration grid.
Par exemple, il est possible dobtenir un quadrillage de cahier dcolier avec : grid [step=0.5],
et pour un papier millimtr : grid [step=0.1]. Et si on veut renforcer les traits des units, on
peut tracer une autre grille standard par-dessus, avec des traits un peu plus gros.
grid[step=0.5]

deux grilles

grid[step=0.1]

36

2.3.3

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

Fentre dachage : clip

Il se peut que, pour direntes raisons, on doive rduire la fentre dachage, cest--dire la
rgion qui sera eectivement ache. On utilise alors linstruction \clip.
La syntaxe est \clip (a,b) rectangle (c,d);
La rgion eectivement ache sera seulement lintrieur du rectangle dont les coins opposs
sont (a, b) et (c, d). Cela aectera uniquement les dessins placs aprs linstruction \clip.
Les pointills ont t rajouts pour lexemple, ils ne font pas partie de linstruction \clip.
5

(a,b)
4

\clip (a,b) rectangle (c,d)


(a,b)
5

3
(c,d)

4
3

(c,d)
2
En fait, la fentre na pas forcment toujours une forme de rectangle. Elle a la forme quon
dfinit lintrieur de linstruction \clip. En particulier,
elle peut avoir une forme circulaire.
1
\clip (a,b) circle (r);
5
4
3

(a,b)
5
\clip (a,b) circle (r);
4
3

2
2

(c,d)

2.4
2.4.1

Complments : opacit, couleurs, styles


Ordre des tracs, transparence : opacity

Dans une figure, les traits se superposent dans lordre du trac. Or certains tracs sont transparents et dautres pas. Donc les tracs non transparents vont cacher les traits qui ont t tracs
avant.
Cest le cas en particulier avec la grille grid et des commandes \fill.
La grille est transparente, mais un triangle rempli avec \fill ne lest pas :
grid, puis \fill

\fill, puis grid

Autre exemple, dans loption double, qui trace un trait double, en fait le trait est un rectangle et
la rgion entre les deux traits nest pas transparente. Il faut ventuellement y penser pour lordre
de trac des traits, sachant que les dirents traits se dessinent lun aprs lautre, cest--dire lun
sur lautre. Dans lexemple suivant, le trait vertical de gauche est trac avant le trait horizontal
double, et le trait vertical de droite est trac aprs. Le trait horizontal en traitill est trac aprs,
et montre comment le trait double saligne : il est centr sur la ligne du trait simple.

2.4. COMPLMENTS : OPACIT, COULEURS, STYLES

37

Il existe une option pour grer la transparence ou plutt lopacit : opacity, avec des valeurs
allant de 0 (transparent) 1 (opaque).
On peut reprendre le premier dessin (la grille suivie dun triangle rempli de gris) en appliquant
[gray,opacity = 0.5] au triangle. On obtient :
grid, puis \fill[gray,opacity=0.5]

opacity=0.2

Le triangle est bien trac par-dessus la grille, mais il est en partie transparent. Plus prcisment,
on peut distinguer draw opacity lopacit pour le contour et fill opacity lopacit pour le
remplissage, sachant que opacity fixe les deux la fois.

2.4.2

Noms et calculs des couleurs, package xcolor

Si on veut disposer de noms de couleur plus varis quen LATEX standard, on peut charger le
package xcolor. Il est dclar par \usepackage[usenames, dvipsnames]{xcolor}.
Attention, il faut le dclarer avant \usepackage{tikz}, sinon il y a incompatibilit.
On dispose alors des couleurs suivantes :
De jaune orange : GreenYellow, Yellow, Goldenrod, Dandelion, Apricot, Peach, Melon,
YellowOrange ;
De orange rouge : Orange, BurntOrange, Bittersweet, RedOrange, Mahogany, Maroon,
BrickRed, Red ;
De rouge rose : OrangeRed, RubineRed, WildStrawberry, Salmon, CarnationPink, Magenta, VioletRed, Rhodamine ;
De rose violet : Mulberry, RedViolet, Fuchsia, Lavender, Thistle, Orchid, DarkOrchid,
Purple ;
De violet bleu : Plum, Violet, RoyalPurple, BlueViolet, Periwinkle, CadetBlue, CornflowerBlue, MidnightBlue ;
De bleu bleu clair : NavyBlue, RoyalBlue, Blue, Cerulean, Cyan, ProcessBlue, SkyBlue,
Turquoise ;
De bleu clair vert : TealBlue, Aquamarine, BlueGreen, Emerald, JungleGreen, SeaGreen,
Green, ForestGreen ;
De vert brun : PineGreen, LimeGreen, YellowGreen, SpringGreen, OliveGreen, RawSienna, Sepia, Brown, Tan.
Sinon, on peut fabriquer soi-mme ses propres couleurs en faisant des mlanges :
[color=blue!30!red] dsigne une couleur avec 30 % de bleu et 70 % de rouge. Cest donc
une couleur plutt rouge, lgrement violette.
De mme [color=blue!30!red!40!green] dsigne le mlange de la couleur prcdente en
proportion de 40 %, avec 60 % de vert. Cela donne une dfinition globale dans le systme RVB,
avec des valeurs de 0 255 : R = 31, B = 71, V = 153 (calcul de barycentres). Le rsultat est
plutt vert.
Cela donne une grande libert, mais il nest peut-tre pas trs raisonnable de vouloir tout
prix inventer ses propres couleurs. Cest un exercice dicile, et les coloristes ont tabli des palettes
soigneusement talonnes quil est prfrable dutiliser. Les 64 couleurs de xcolor plus les couleurs
standard devraient sure.

38

2.4.3

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

Dfinition de styles : \tikzstyle, \tikzset

Il est frquent que plusieurs lments dune figure aient les mmes options graphiques, et que
ces options soient associes une convention particulire de reprsentation, quon appelle un style.
Il est alors pratique de sparer la dfinition du style, qui est commune, et ses applications aux
divers lments.
Par exemple, pour que les traits soient en pointills pais et que la couleur de remplissage soit
en gris, on crit habituellement :
\draw[thick, dashed, fill=gray] ...
On peut alors dsigner ce style par un nom, par exemple grisEncadre. On dclare alors ce
nom Tik Z de la faon suivante :
\tikzstyle{grisEncadre}=[thick, dashed, fill=gray!20]
On peut crire cette commande nimporte o dans le document LATEX, avant la figure.
Ensuite, on peut utiliser ce nom dans la figure de la manire suivante, en crivant seulement le
nom comme option, et cela jouera le rle dune abrviation :
\draw [grisEncadre] (0,0) circle (1);
Et on peut utiliser ce mme style plusieurs fois :
\tikzstyle{grisEncadre}=[thick, dashed, fill=gray!20]
\begin{tikzpicture}
\draw [grisEncadre] (0,0) circle (1);
\draw [grisEncadre] (2,0) circle(0.5);
\end{tikzpicture}

Cette faon de faire augmente la lisibilit et facilite les corrections : en corrigeant seulement la
dfinition du style, toutes les figures utilisant ce style seront modifies automatiquement.
En fait, la commande \tikzstyle semble tombe en dsutude dans la version 2 (mme si elle
est toujours correcte et utilisable).
La mthode utilise par la version 2 utilise la commande \tikzset pour dfinir un style, avec
une syntaxe un peu plus complique :
\tikzset{grisEncadre/.style={thick, dashed, fill=gray!20}}
Cette lgre complication permet de profiter des possibilits du package pgfkeys, que nous ne
dtaillons pas dans cet ouvrage.

2.5

Exercices : styles de traits, flches, couleurs

Voici des exercices raliser avec Tik Z. Pour chacun deux, on donne une figure et il faut crire
le code Tik Z qui trace cette figure. On donne comme indications les techniques utilises, cest--dire
les mots-cls Tik Z utiliss.
Les figures sont des figures classiques de gomtrie.

2.5.1

Somme de deux vecteurs

La somme de deux vecteurs sobtient en traant la diagonale dun paralllogramme, ou en


plaant les vecteurs bout bout.
!
u

!
u +!
v
!
v

!
u

!
v
!
u +!
v

2.5. EXERCICES : STYLES DE TRAITS, FLCHES, COULEURS

39

Techniques utilises :
->, >= stealth, --, node, above
below right, dashed, midway

2.5.2

Triangle rectangle inscrit dans un demi-cercle

Tout triangle rectangle est inscrit dans un demi-cercle dont le diamtre est lhypotnuse.

|
Techniques utilises :

2.5.3

dashed, arc, node, --

Angle inscrit et angle au centre

Langle au centre est le double de langle inscrit.

Techniques utilises :
double distance, thick, arc,
color=gray!20, circle, --, densely dotted

2.5.4

Parallles, aires gales

Deux triangles, de bases gales et de hauteurs gales, ont des aires gales.

Techniques utilises :
color=gray!20, --, cycle, node, \fill

2.5.5

Compose de deux symtries centrales

La compose s2 s1 de deux symtries centrales de centres I1 et I2 est la translation de vecteur


!
2I1 I2 . Si M1 = s1 (M ) et M2 = s2 (M1 ),
!
!
alors M M2 = 2I1 I2 .

40

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES


M
2!
v
I1

M2

!
v

||

||
I2

M1
Techniques utilises :
>=latex, node, below, midway, --,
above, dashed, left, below right, ->

2.5.6

Suite gomtrique
n

X 1
1 1 1
+ + + = lim
=1
n!+1
2 4 8
2k
k=1

Le triangle OAB est isocle rectangle en B, direct. partir de B, on eectue une suite de
projections orthogonales : sur [OA] dabord, puis sur [AB], puis sur [OA], puis sur [AB], etc.
1
Les longueurs des segments sur [OA] forment une suite gomtrique de raison
2
B

A
1
2

1
4
1

Techniques utilises :
>=latex, <->, node, left, above, --,
right, midway, below, densely dashed

1
8

Chapitre 3

Courbes
3.1

Tracer une courbe : plot (...)

Dans ce chapitre, nous allons voir comment tracer des courbes dfinies laide dquations
mathmatiques, comme lquation
cartsienne y = sin(x), lquation polaire r = f () ou les

x = cos(t)
quations paramtriques
.
y = sin(t)
Lopration principale pour cela est plot, insrer dans une commande \draw par exemple :
\draw plot ... ;
Nous dcrivons ici la syntaxe de cette opration dans la version 2 de Tik Z.
Cette opration permet de tracer des courbes paramtres, le nom du paramtre par dfaut
tant \x.
Aprs le mot plot, on crit :
ou bien (X, Y ), o X et Y sont les formules de labscisse et de lordonne en fonction du
paramtre, Si ces formules contiennent des parenthses ou des virgules, il faut les crire
entre accolades. Cest trs souvent le cas pour Y. Par exemple, on crit (\x,{exp(\x)}) ;
ou bien ( : r), o et r sont les formules de langle polaire (en degrs) et du rayon en
fonction du paramtre (rayon algbrique, qui peut tre ngatif). Les accolades peuvent tre
ncessaires galement.
x
Par exemple, pour tracer la courbe de la fonction dquation cartsienne y = , il faut dabord
4
(
x=x
x , et on crit :
la traduire en quations paramtriques :
y=
4
\draw plot (\x, \x/4);
ce qui donne :
y=

x
4

(5, 1.25)

(0, 0)

( 5, 1.25)
On a ajout des annotations en gris pour montrer comment la figure se place.
Ici, Tik Z a utilis ses options par dfaut pour choisir le domaine du paramtre :

5 6 x 6 5.

Autre exemple : la courbe dquation polaire = 20 r. On peut la reprsenter en choisissant r


comme paramtre, ce qui scrit :
\draw plot (20*\x:\x);
41

42

CHAPITRE 3. COURBES
La courbe part du point ( = 100 : r = 5) et arrive au point
( = 100 : r = 5) car \x varie par dfaut de 5 5. On obtient :
(100 : 5)

( 45 :

( 100 :

5)

(45 : 2.25)

2.25)

|
(0 : 0)
Si on ne souhaite pas conserver le nom par dfaut \x pour le paramtre, on peut lui attribuer
un nom, par exemple \t, avec loption [variable=\t] applique lopration plot.
Exemple : \draw plot [variable=\t] (\t,2*\t);
Il reste direntes questions, que nous allons tudier dans la suite :
Comment dfinir le domaine du paramtre ?
Quelles sont les formules mathmatiques disponibles ?
Comment spcifier le nombre de points calculs, le lissage ?
Comment sont traits les points singuliers (discontinuits, valeurs trop grandes) ?

3.1.1

Domaine : [domain=a:b]

Pour dire que le paramtre (\x par dfaut) varie de a b, Tik Z a prvu la syntaxe [domain=a:b].
Malheureusement, cette syntaxe pose un problme pour les utilisateurs franais qui ont dclar
le package babel avec une option french, frenchb ou francais.
Le problme de babel franais et de :
Remarque : Dans la dernire version de Tik Z & PGF (la version 2.10), qui est actuellement
fournie avec la distribution TEXlive 2011, ce problme de babel du : est corrig.
Si on dispose dune version plus ancienne, lire la suite.
Avec le package babel franais (french, frenchb ou francais), le code interne TEX du caractre : (son catcode) est modifi pour permettre un traitement spcial adapt aux rgles
typographiques de la langue franaise. Cela ne pose pas de problmes en gnral dans LATEX, mais
comme Tik Z utilise une syntaxe spciale et donc une procdure de lecture spciale, cela interfre
avec ses rgles syntaxiques et provoque une erreur, en particulier dans loption [domain=a:b]. On
obtient en gnral dans la fentre de console le message suivant, dicile comprendre, mais qui
peut servir dindice pour reprer lerreur :
Paragraph ended before \tikz@plot@samples@recalc was complete
Nous proposons deux solutions direntes :
dire LATEX de ne plus considrer le caractre : comme un caractre spcial dans les
passages o il doit tre interprt par Tik Z, en utilisant la commande fournie par babel
franais : \shorthandoff{:} ;
configurer Tik Z pour modifier la syntaxe de loption domain=a:b, ou plutt introduire une
autre option quivalente domaine={a}{b} qui nutilise pas les deux-points.
Aucune des deux solutions nest parfaite, nous les dveloppons dans ce qui suit.

3.1. TRACER UNE COURBE : PLOT (...)

43

Dsactiver : avec \shorthandoff{:}


On peut dire LATEX de ne plus considrer le caractre : comme un caractre spcial dans
les passages o il doit tre interprt par Tik Z. La commande pour cela est :
\shorthandoff{:}
O exactement placer cette commande ? Rpondre prcisment et compltement cette question est dicile, parce quil sagit dinteractions un niveau de base de TEX (la lecture des caractres
et lexcution des commandes), et que des eets inattendus peuvent se produire.
La plupart du temps il sut dinsrer la commande lintrieur de chaque environnement
tikzpicture :
\begin{tikzpicture} \shorthandoff{:} ... \end{tikzpicture}
Cependant, cela ne sut pas si la tikzpicture est elle-mme lintrieur dune autre commande,
comme quand on veut encadrer une tikzpicture par \fbox. On obtient le message derreur
suivant :
Argument of \tikz@plot@samples@recalc has an extra }
Dans ce cas-l, on peut essayer dcrire :
{ \shorthandoff{:}
\fbox{ \begin{tikzpicture} ... \end {tikzpicture} } }
Introduire une autre option [domaine={a}{b}]
Nous proposons dintroduire loption domaine (cest un mot franais rappelant que le problme
se pose pour les utilisateurs de babel en franais).
Pour la dfinir, il sut dcrire la ligne suivante la fin du prambule LATEX du document :
\tikzset { domaine/.style 2 args={domain=#1:#2} }
Alors, dans une tikzpicture, au lieu dcrire [domain=a:b], on crira
[domaine={a}{b}]
Cette solution est pratique quand on crit soi-mme le code de ses figures Tik Z. Elle ne rgle
cependant pas tous les problmes quand on veut rcuprer un code Tik Z qui utilise directement
loption domain originale. Dans ce cas-l, il vaut mieux utiliser la solution avec \shorthandoff{:}.
Utiliser le package microtype
Un package rcent, microtype, permet de rsoudre le problme globalement de faon simple.
Il sut dajouter :
\usepackage[babel=true,kerning=true]{microtype} aprs la dclaration dutilisation du package babel. Ainsi le caractre : ne semble plus poser de problme.
Attention : nous supposons, partir de maintenant, que toutes ces prcautions sont prises
quand nous utilisons [domain=a:b] dans les exemples.
Exemples de domaines
Avec les prcautions concernant : , voici comment on peut modifier le domaine de la courbe
polaire prcdente (dquation = 20 r), par exemple en le fixant 0 6 x 6 90. On peut
galement en profiter pour modifier lchelle (diviser les dimensions par 2 avec scale=0.5).
\draw [domain=0:9, scale=0.5] plot (20*\x:\x);
(135 : 6.75)

(90 : 4.5)

= 20 r
(45 : 2.25)
(180 : 9)

(0 : 0)

44

CHAPITRE 3. COURBES

Le bon rglage du domaine est important pour les fonctions qui prennent de trs grandes
valeurs, par exemple lexponentielle.
Avec \draw plot(\x,{exp(\x)});, on obtient un trait quasiment vertical qui prend toute la
page, car e5 148.
Il vaut mieux crire \draw [domain=-3:1.5] plot(\x,{exp(\x)});

y = ex

3.1.2

(0, 0)

Formules mathmatiques disponibles

Depuis la version 2, Tik Z permet dcrire des formules mathmatiques avec une syntaxe usuelle
analogue celle des calculatrices, des logiciels mathmatiques ou des langages de programmation.
Cependant, la gamme de fonctions disponibles nest pas trs grande. Tik Z nest pas un logiciel
de calcul, et il ne faut pas lui en demander trop.
Si les fonctions disponibles ne susent pas, il y a deux grandes solutions :
utiliser lopration plot function qui fait appel (de manire transparente) au logiciel libre
Gnuplot, quil faut avoir pralablement install et connect Tik Z. Voir plus loin complments techniques pour des prcisions sur Gnuplot ;
prparer les donnes (coordonnes des points de la courbe) laide dun logiciel extrieur,
les sauvegarder sur fichier sous un format convenable, puis utiliser lopration plot file
(voir chapitre suivant).
Oprations
Addition, soustraction, multiplication, division, lvation une puissance :
x+y, x-y, x*y, x/y, x^y
Modulo, maximum, minimum :
mod(x,y), max(x,y), min(x,y)
Fonctions
Valeur absolue, exponentielle, logarithme nprien, racine carre :
abs(x), exp(x), ln(x), sqrt(x)
Arrondi, partie entire (plancher), entier immdiatement suprieur (plafond) :
round(x), floor(x), ceil(x)
Fonctions trigonomtriques
Les angles sont en degrs.
sin(x), cos(x), tan(x), cot(x), sec(x), cosec(x)
Fonctions rciproques :
asin(x), acos(x), atan(x)
Constante , conversions
pi, x r, deg(x), rad(x)

3.2. ASPECT DU GRAPHE

45

En Tik Z, les fonctions trigonomtriques attendent des angles en degrs. Pour retrouver les fonctions mathmatiques habituelles qui attendent des angles en radians, il faut convertir les radians
en degrs.
Appelons s la fonction note en Tik Z par sin et continuons appeler sin la fonction mathmatique habituelle
enradians. On a alors les relations :


180
sin(x) = s
x et s(x) = sin
x

180
180
Multiplier x par
(cest--dire convertir les radians en degrs) peut se faire de deux faons

en Tik Z : deg(x) ou x r.
Par exemple sin(pi/2 r) vaut 1, ainsi que sin(deg(pi/2))
Mais attention au niveau de priorit de la notation r : elle est de mme priorit quune multi180
plication. Elle reprsente en eet la multiplication par

180
180
Autrement dit a*b r reprsente ab
mais a+b r reprsente a + b

La courbe habituelle de la fonction sinus sur [ ; ] est obtenue par


\draw [domain=-pi:pi] plot (\x,{sin(\x r)});.

(0, 0)

La fonction sinus en radians sur [ ; ]

Inversement, pour convertir de degrs en radians (cest--dire multiplier par


),
180
utiliser rad(x)
Nombres alatoires
Un rel alatoire entre 0 et 1 : rnd
Un rel alatoire entre 1 et 1 : rand
Oprations boolennes
Tests dgalit et dingalits :
x == y, x < y, x > y
Le rsultat est 1 pour vrai et 0 pour faux.
La manuel ne prcise pas avec quelle approximation numrique ces tests sont eectus.

3.2
3.2.1

Aspect du graphe
Nombre de points : samples

Par dfaut, lorsquon demande Tik Z de tracer une courbe avec plot, il calcule un certain
nombre de points de la courbe (25 points) puis il les joint par des segments. On peut changer ces
choix par des options.
On peut changer le nombre de points avec loption samples.
Par exemple, pour la courbe dont la formule Tik Z est (\x,{sin(5*\x r)}, cest--dire la courbe
de la fonction mathmatique x 7! sin(5x)
Avec la valeur de samples par dfaut (25) :

46

CHAPITRE 3. COURBES

Avec [samples=200] :

3.2.2

Lissage : smooth, tension

On peut demander Tik Z de ne pas joindre les points par des segments mais par des courbes
(calcules avec un algorithme de lissage). On obtient alors une courbe lisse.
La courbe de la fonction prcedente x 7! sin(5x) avec 25 points, mais lisse avec loption
[smooth] est moins cahotique, mais ne compense pas leet d au faible nombre de points :

Le degr de lissage (la courbure des arcs de courbes) peut tre configur avec loption tension.
Une valeur de 0 donne un segment (comme si on navait pas mis loption smooth), la valeur par
dfaut est 0.55, et le maximum est la valeur 1 (plus la valeur est grande, plus les arcs sont courbs).
Avec [smooth, tension=1] :

On voit que, de toutes faons, le meilleur eet de lissage est obtenu en augmentant le nombre de
points avec samples. Cependant, loption smooth peut quand mme tre ecace pour des courbes
simples et rgulires.

3.2.3

Discontinuits : on peut sparer les intervalles

x
La fonction nest pas dfinie en 0, et pas
|x|
non plus prolongeable par continuit en 0. La courbe est forme de deux demi-droites : y = 1
pour x < 0 et y = 1 pour x > 0.
Quand on crit lquation directement, Tik Z ne donne pas un rsultat correct (contrairement
par exemple GeoGebra) :
\draw[domain=-3:3] plot(\x,{\x/abs(\x)});
Exemple : tracer la courbe de la fonction x 7!

Tik Z joint systmatiquement les points quil calcule.


La solution usuelle est de tracer sparment deux morceaux de courbes, sur deux intervalles
qui vitent le point de discontinuit, mais quand mme trs proches de ce point, par exemple
[ 3, 0.01] et [0.01, 3].

3.2. ASPECT DU GRAPHE

47

\draw[domain=-3:-0.01] plot(\x,{\x/abs(\x)});
\draw[domain=0.01:3] plot(\x,{\x/abs(\x)});

3.2.4

Grandes valeurs : scale, \clip

Prenons lexemple de la fonction x 7!

1
, trace lchelle 0.5, avec le nombre de points par
x

dfaut (25).
\draw [scale=0.5] plot (\x, {1/\x});

Le dernier point gauche de 0 ne devrait pas tre reli au premier point droite de 0
parce que le domaine de dfinition de la fonction nest pas connexe.
Si on voulait augmenter le nombre de points ([samples=100]), ce serait encore pire : on obtiendrait un message derreur : Dimension too large. Les valeurs au voisinage de 0 sont en eet
trop grandes pour les capacits de calcul de Tik Z (sans compter le problme de la valeur en 0).
La seule faon de rsoudre le problme est dtudier la fonction avant, danalyser les problmes
de discontinuit et de valeurs trop grandes, et de tracer sparment deux morceaux de courbe sur
des domaines dirents, en prenant soin dviter les abscisses trop proches de 0.
On peut alors essayer [domain=-3:-0.2] pour lune et [domain=0.2:3] pour lautre. Les
courbes se tracent mais les valeurs extrmes des ordonnes restent un peu grandes ( 5 et 5), ce
qui donne une image de 10 cm de hauteur.
Il y a deux sortes de solutions cela : loption scale ou la commande \clip.
Avec scale, on peut rduire lchelle, par exemple [scale=0.5].
Avec \clip, on garde lchelle mais on peut rduire la fentre dachage, par exemple :
\clip (-3,-2) rectangle (3,2); (commande placer au dbut de la figure).
[scale=0.5]
\clip (-3,-2) rectangle (3,2);

Il peut paratre un peu dcevant que Tik Z ne prenne pas en charge ces problmes de discontinuit et de valeurs trop grandes, contrairement certaines calculatrices ou logiciels. Mais encore

48

CHAPITRE 3. COURBES

une fois, ce nest quun module pour TEX, qui nest aprs tout quun logiciel de composition typographique et nest pas du tout prvu pour tre un logiciel de calcul. Il est mme remarquable que
TEX arrive supporter toutes ces extensions de manire robuste.

3.3

Rgions limites par des courbes

Il arrive souvent quon doive reprsenter une rgion limite par des courbes, par exemple pour
des calculs daires. La technique de base est de dfinir le contour laide dun chemin, en enchanant
les courbes, puis de demander remplir ce chemin avec fill.

3.3.1

Une courbe et des segments : cycle, \fill, \filldraw

1
Exemple : remplir la rgion comprise entre laxe des abscisses, la courbe de la fonction x 7!
x
et les droites dquation x = 1 et x = 2.

B
C
A

Il sagit de remplir la rgion ABCD, avec A(1, 0), B(1, 1), C(2, 0.5), D(2, 0).
Pour cela on dfinit un chemin ferm avec dans lordre : le segment de A B, la courbe de B
C et les segments de C D, puis de D A.
Le code suivant doit tre inclus dans un environnement tikzpicture en noubliant pas dviter
le problme des deux-points grce \shorthandoff{:}. Notez bien que tous les lments du
chemin sont connects les uns aux autres (y compris la courbe) par des tirets -- pour indiquer un
chemin connexe, et que le chemin est ferm par -- cycle.
\fill[color=gray!20]
(1,0) -- (1,1)
-- plot [domain=1:2] (\x,1/\x)
-- (2,0) -- cycle;

% segment de A B
% courbe de B C
% segment de C D puis fermer

Il y a un sous-entendu concernant la position implicite du crayon aprs la trac dune courbe


par plot : le crayon est plac au dernier point trac par cette opration, ici le point C(2, 0.5),
sachant que les points sont tracs dans lordre du domaine [domain=1:2], cest--dire de 1 2. Le
mme morceau de courbe aurait pu tre trac de 2 1 par [domain=2:1], mais alors il aurait t
parcouru dans lautre sens et la position finale du crayon aurait t B(1, 1).
On souhaite souvent tracer le contour galement. Au lieu de \fill, on peut utiliser \filldraw,
qui remplit et trace le contour. Mais il faut spcifier deux couleurs direntes, avec les options
fill et draw :
\filldraw [fill=gray!20,draw=black]

Cette rgion nest quun lment de la figure complte, avec les axes et la courbe. Pour des
raisons dordre du trac et de recouvrement, il est prfrable de tracer la rgion avant.
La structure de la figure complte est donc :

3.3. RGIONS LIMITES PAR DES COURBES


\begin{tikzpicture}
%\shorthandoff{:}
\filldraw ... ;
\draw ... ;
\draw ... ;
\draw plot ... ;
\draw ... ;
\end{tikzpicture}

49

% protection des deux-points pour domain


% la rgion ABCD
% laxe des abscisses de 0 3
% laxe des ordonnes de 0 2
% la courbe complte, de 0.5 3
% les noeuds de texte A, B, C, D

Aire(ABCD) =

2
1

1
dx = ln(2)
x

B
C
A

3.3.2

Rgion entre deux courbes

Exemple : remplir la rgion comprise entre la courbe de x 7! x2 et celle de x 7!

x sur [0; 1].

Le principe est le mme : on dfinit un contour, puis on remplit la rgion intrieure. Il faut
juste faire attention aux sens des tracs des courbes. Il faut tracer une premire courbe de 0 1,
puis tracer lautre de 1 0 pour revenir lorigine.
\filldraw[draw=black,fill=gray!20]
plot [smooth,domain=0:1] (\x,{sqrt(\x)})
-- plot [smooth,domain=1:0] (\x,\x^2)
-- cycle;

3.3.3

Rgion non convexe : interior rules

Pour linstant, nous avons dfini un contour et utilis la commande \fill pour remplir son intrieur. Mais comment est dfini exactement lintrieur dun contour ? La question devient dlicate
lorsque la frontire de la rgion se recoupe et se traverse elle-mme.
Exemple : remplir la rgion limite par la courbe de x 7! sin(x) et laxe des abscisses sur [0; 2].

La frontire se recoupe et se traverse au point (, 0).


Pour remplir la rgion grise, on peut dfinir un chemin ferm comme prcdemment :
\filldraw[fill=gray!20,draw=black]
(0,0) -- plot [domain=0:2*pi] (\x,{sin(\x r)}) -- cycle;

50

CHAPITRE 3. COURBES

On obtient ce quon veut, mais il faut bien comprendre ce qua fait Tik Z. Il dispose de deux
modes de calcul pour dterminer lintrieur dun chemin. Dans le cas de lexemple prcdent, les
deux modes donnent le mme rsultat, mais ce ne sera pas toujours le cas.
Il a utilis ici son mode par dfaut, quon aurait pu demander explicitement par loption
nonzero rule, lautre mode tant even odd rule.
La dfinition de ces modes nest pas simple (voir le manuel : interior rules). Comme le dit luimme le manuel : Vous pensez que cest compliqu ? Eh bien, oui, a lest ! . Le plus compliqu
est le mode par dfaut, lautre est un peu plus naturel.
Cependant, pour les cas usuels tudis ici (rgion entre deux courbes de fonctions continues),
les deux modes donnent le mme rsultat. Par exemple : tracer la rgion dlimite par la courbe
du sinus et la courbe du cosinus sur [0; 2]. On trace dabord la courbe du sinus de 0 2, puis la
courbe du cosinus de 2 0.
\filldraw [draw=black,fill=gray!20]
plot [domain=0:2*pi] (\x,{sin(\x r)})
-- plot [domain=2*pi:0] (\x,{cos(\x r)})
-- cycle;
5
4
0

Notez que le quadrillage grid doit tre dessin aprs les courbes pour quil soit entirement
visible. On peut aussi dessiner le quadrillage avant, mais alors si on veut quil reste visible, il faut
que les dessins tracs par-dessus soient transparents, par exemple avec loption [opacity=0.5].

3.4
3.4.1

Complments techniques
Utilisation de Gnuplot : plot function

Il se peut que les formules mathmatiques intgres dans Tik Z ne vous susent pas. Il faut
alors faire appel un programme extrieur. Une possibilit prvue par Tik Z est dutiliser Gnuplot,
logiciel permettant de tracer toutes sortes de courbes et diagrammes.
Le mcanisme est le suivant : quand on donne la commande \draw avec une opration
plot function, comme dans lexemple suivant :
\draw plot function {sin(x)};
Tik Z fait appel au logiciel Gnuplot (qui doit avoir t install et connect Tik Z), qui se charge
de calculer une liste de points tracer, les enregistre dans un fichier, puis Tik Z va lire ce fichier et
sen sert pour tracer la courbe.
Plus prcisment, si le nom du fichier LATEX est doc.tex, Tik Z engendre un fichier :
doc.pgf-plot.gnuplot, puis ce fichier est excut par Gnuplot, qui fournit en retour un fichie :
doc.pgf-plot.table, qui est ensuite utilis par Tik Z pour tracer la courbe, exactement comme
si on avait crit : \draw plot file {doc.pgf-plot.table};
Pour que cela soit possible, il faut certaines manipulations pralables. Il faut dabord charger
et installer Gnuplot, ce qui est plus ou moins facile suivant les systmes dexploitation.
La page daccueil de Gnuplot est http://www.gnuplot.info/
Il faut sassurer de la compatibilit entre les versions de Gnuplot, du systme et de TEX.
Il faut ensuite configurer le systme TEX pour quil puisse se connecter Gnuplot. L aussi, la
manoeuvre suivre dpend des systmes.
Quand tout fonctionne, on peut utiliser \draw plot function {...}, en notant que la syntaxe
de reprsentation des fonctions nest pas celle de Tik Z, cest celle de Gnuplot.
Cette opration admet direntes options permettant de contrler Gnuplot, en particulier loption parametric pour tracer des courbes paramtres.

3.4. COMPLMENTS TECHNIQUES

51

Depuis la version 2 de Tik Z, lusage de Gnuplot devient moins ncessaire car on peut maintenant crire directement des formules mathmatiques. Il nest donc pas systmatiquement conseill
dutiliser Gnuplot, dautant que son installation peut tre dlicate.

3.4.2

Automatisation de certaines configurations

Dans les calculatrices graphiques et les logiciels qui tracent des courbes, il y a souvent un
couplage troit entre direntes options : la fentre de trac, le domaine dtude de la fonction,
le trac des axes et du quadrillage. En gnral, on fixe les bornes pour labscisse et lordonne, et
tout le reste en dcoule.
Il est possible de raliser cela avec Tik Z, en utilisant ses possibilits de gestion doptions (le
package pgfkeys) et un peu de programmation LATEX. Ce package ncessite la version 2 de Tik Z.
Le but recherch est le suivant : introduire quatre nouvelles options xmin, xmax, ymin, ymax
permettant de fixer les bornes, et trois commandes LATEX \axes, \grille, \fenetre utilisant
ces bornes pour tracer les axes et la grille (grid), et fixer la fentre (\clip).
Exemple dutilisation :
\begin{center}
\begin{tikzpicture} [xmin=-2,xmax=2,ymin=0,ymax=5]
\grille \axes \fenetre
\draw plot[smooth] (\x,\x^2);
\end{tikzpicture}
\end{center}

Lordre des tracs est dlicat : si on place \axes avant \grille, les axes sont recouverts par la
grille. Si on place \fenetre avant \axes, la pointe de flche des abscisses est rogne (ce problme
peut tre vit en largissant la fentre vers le bas).
Pour obtenir ces nouvelles options et commandes, il sut dinsrer la fin du prambule du
document LATEX les quelques lignes suivantes :
% Dfinition des nouvelles options xmin, xmax, ymin, ymax
% Valeurs par dfaut : -3, 3, -3, 3
\tikzset{
xmin/.store in=\xmin, xmin/.default=-3, xmin=-3,
xmax/.store in=\xmax, xmax/.default=3, xmax=3,
ymin/.store in=\ymin, ymin/.default=-3, ymin=-3,
ymax/.store in=\ymax, ymax/.default=3, ymax=3,
}
% Commande qui trace la grille entre (xmin,ymin) et (xmax,ymax)
\newcommand {\grille}
{\draw[help lines] (\xmin,\ymin) grid (\xmax,\ymax);}
% Commande \axes

52

CHAPITRE 3. COURBES

\newcommand {\axes} {
\draw[->] (\xmin,0) -- (\xmax,0);
\draw[->] (0,\ymin) -- (0,\ymax);
}
% Commande qui limite laffichage (xmin,ymin) et (xmax,ymax)
\newcommand {\fenetre}
{\clip (\xmin,\ymin) rectangle (\xmax,\ymax);}

3.5
3.5.1

Exercices
Ellipse. Angles avec circle et \clip

Illustrer la proprit suivante : la tangente et la normale en un point A une ellipse sont les
bissectrices de (AF, AF 0 ), o F et F 0 sont les foyers de lellipse.
A

F0

Echelle 0.5
Ellipse (reprsentation paramtrique) :

x = 5 cos()
y = 3 sin()

Foyers F (4, 0) et F 0 ( 4, 0) car 32 + 42 = 52 .


A(2, 2.75)
Tangente : y = 0.26x + 3.27, normale : y = 3.82x 4.89
Angle droit : (2.25,3.72) -- (1.28,3.97) -- (1.03,3)
Les coordonnes ont t obtenues avec GeoGebra.
Pour les marques dangle, on a trac des cercles de centre A (rayons 1 et 1.2), et on nen a
montr que la partie intrieure aux triangles AF 0 P et AP F , P tant le point de la normale sur
laxe Ox : P (1.28, 0). Pour ne montrer quune partie, on utilise \clip, et pour limiter la porte de
ce clip, on utilise un environnement \begin{scope} ... \end{scope}
\begin{scope}
% pour limiter la porte du \clip
\clip (a) -- (p) -- (f2) -- cycle; % triangle APF
\draw [gray] (a) circle (1);
% cercle pour arc
\end{scope}

3.5.2

ab = ba . xscale, yscale

Illustrer la proprit suivante : lquation ab = ba na que deux solutions entires (a, b) avec
a 6 b : (2, 2) et (2, 4)
ln(a)
ln(b)
ln(x)
Lquation est quivalente
=
Pour illustrer cela, on trace la courbe de x 7!
a
b
x
et on tudie ses intersections avec des droites horizontales y = k. Ltude du sens de variation
montre un maximum en e et une limite de 0 en +1. Donc la seule solution envisageable est a = 2.

3.5. EXERCICES

53

Pour mieux voir le sens de variation au voisinage de e, on peut choisir une chelle dirente
pour les abscisses et pour les ordonnes, par exemple multiplier les abscisses par 2 et les ordonnes
par 100 : ici [xscale=2,yscale=100].
ln(2)
Pour les points dordonne
, on peut utiliser directement une formule de calcul dans les
2
coordonnes, par exemple (2,{ln(2)/2}).
On limite galement le domaine de la fonction, avec [domain=1.85:4.5]. Attention aux deuxpoints : protger avec \sorthandhoff(:) ou utiliser
[domaine={1.85}{4.5}]

y=

3.5.3

ln(2)
2

1
e

e,

x=2

x=4

Fonction priodique : \foreach

Tracer la courbe de la fonction priodique de priode 2 dont la formule sur [ 1; 1] est y = x2 .


Lide est de tracer dabord la courbe sur une priode avec
\draw plot [domain=-1:1] (\x,\x^2);

,
puis de reproduire ce morceau par des translations de vecteur (2, 0).

!
v (2, 0)

On ajoute pour cela \draw plot [domaine={-1}{1}] (\x+2,\x^2); .


On peut rajouter de mme dirents morceaux, en factorisant les options au dbut :
\begin{tikzpicture} [domaine={-1}{1}, samples=80]
\draw plot (\x,\x^2);
\draw plot (\x+2,\x^2);
\draw plot (\x+4,\x^2);

54

CHAPITRE 3. COURBES

\draw plot (\x+6,\x^2);


\draw plot (\x+8,\x^2);
\end{tikzpicture},
Cette rptition dcritures peut tre rsume par lutilisation de \foreach :
\foreach \k in {0,2,...,8}
{\draw plot (\x + \k, \x^2);}

\foreach est une instruction de boucle au sens usuel de linformatique. Nous en verrons dautres
exemples plus loin.

3.5.4

Fonctions rciproques, aires : pattern

Illustrer la formule

ln(x) dx +
1

ln(2)

ex dx = 2 ln(2) en linterprtant en termes daires.


0

Lintgrale du logarithme est reprsente par laire grise A, lintgrale de lexponentielle par
laire hachure. Les fonctions ln et exp sont rciproques, donc les deux aires grises A et B sont
gales, par symtrie par rapport la droite dquation y = x. Laire (hachure + B) est laire dun
rectangle et vaut 2 ln(2),
y = ex
y=x
2
B
y = ln(x)
1

0
ln(2) 1

On trace les rgions avant le reste. Pour les hachures, il faut utiliser la bibliothque patterns,
en dclarant dans le prambule :
\usepackage{tikz}
\usetikzlibrary{patterns}
On lutilise alors avec loption pattern (voir le manuel pour les dirents motifs possibles :
vertical lines, north east lines, dots, etc.) :

3.5. EXERCICES

55

\fill [pattern=horizontal lines]


(0,0)
-plot [domaine={0}{ln(2)}] (\x,{exp(\x)})
-- ({ln(2)},0)
-- cycle;
Attention au domaine de dfinition du logarithme, et aux grandes valeurs au voisinage de 0. Il
faut choisir un domaine convenable. De mme pour les grandes valeur de lexponentielle. De plus,
on peut fixer la fentre pour bien cadrer le dessin. Attention lordre des direntes commandes.
La structure du code est :
\begin{tikzpicture}[scale = 2,xmin=-1,xmax=3,ymin=-1,ymax=3]
\fenetre
\fill ... ;
% aire grise avec logarithme
\fill ... ;
% aire grise avec exponentielle
\fill ... ;
% aire hachure
\axes
\draw plot ... ;
% courbe de ln
\draw plot ...;
% courbe de exp
\draw plot ... ;
% courbe y = x
\draw [dashed] ... ; % les lignes de rappel en pointills
...
% les noeuds de texte
\end{tikzpicture}

3.5.5

Lemniscate de Gerono. \scope, xshift, \filldraw

La lemniscate de Gerono est la courbe de reprsentation paramtrique

x = cos()
y = sin() cos()
p
p
Son quation cartsienne est x4 + y 2 = x2 , soit y = x 1 x2 ou y = x 1 x2 . Le but est de
reprsenter laire de la rgion intrieure dlimite par la courbe, puis de reprsenter un encadrement
de cette aire.
16A6

16A

A6

3
2

3
2

Pour reprsenter laire A, utiliser \filldraw. Tik Z dtermine correctement la rgion intrieure.
Pour
reprsenter lencadrement daires, il faut calculer dirents lments de la fonction x 7!
p
x 1 x2 sur [0; 1] :
!
p
2 1
la tangente en O a pour quation y = x, le maximum est
,
.
2 2
Mettre au point dabord 4 figures spares (les trois aires puis le rsultat). Ne pas oublier que
les angles de la formule mathmatique sont en radians.
Ensuite, regrouper ces figures en une seule en utilisant scope et xshift.
Ainsi, \begin{scope}[xshift=1.5 cm] ... \end{scope} eectue une translation de 1.5 cm
vers la droite et limite leet de cette translation lenvironnement scope.
En remplissant les rgions, attention lordre du trac : tracer les rgions remplies avant les
autres lments.

56

CHAPITRE 3. COURBES
La structure du code est donc :

\begin{tikzpicture}[scale=...]
\begin{scope}
\filldraw[fill=...] plot ...;
\draw (0,-1) node {$A$};
\end{scope}

%
%
%
%

choisir une chelle


premire figure
la courbe et laire
commentaire

\begin{scope}[xshift= 2.3cm]
\filldraw ... ;
\draw[densely dashed] plot ...;
\draw (0,-1) node ... ;
\end{scope}

%
%
%
%

translation
aire minorante
la courbe
commentaire

\begin{scope}[xshift= 4.6cm]
\filldraw ... ;
\draw[densely dashed] plot ... ;
\draw (0,-1) node ... ;
\end{scope}

%
%
%
%

translation
aire majorante
la courbe
commentaire

\begin{scope}[xshift= ...cm]
\draw (0,0) node ... ;
\end{scope}
\end{tikzpicture}

3.6

% translation
% le rsultat

Rsum

Pour tracer une courbe dfinie par des quations mathmatiques utiliser :
\draw plot (abscisse,ordonne); ou \draw plot (angle:rayon);
Les formules sont donnes en fonction dun paramtre nomm \x par dfaut, ou quon peut
nommer comme on veut avec loption variable=.
Avec loption [domain=a:b], on peut fixer le domaine de variation de ce paramtre, mais cette
syntaxe pose des problmes quand on utilise babel franais. Ces problmes peuvent tre rsolus
par lemploi de shorthandoff(:) ou par la programmation dune option [domaine={a}{b}].
Tik Z fournit une syntaxe pour les formules mathmatiques usuelles. Les fonctions trigonomtriques utilisent des angles en degrs, mais Tik Z fournit des possibilits de conversion de radians
en degrs : r ou deg().
Laspect des courbes peut tre contrl par des options : samples pour le nombre de points,
smooth pour le lissage.
Le traitement des discontinuits ou des grandes valeurs nest pas automatique. Il faut alors
sparer soi-mme les intervalles, fixer explicitement lchelle avec scale, xscale, yscale et la
fentre dachage avec \clip.
Les courbes formes de morceaux quon reproduit par des transformations (fonction priodique
par exemple) peuvent tre construites avec la commande \foreach.
On peut remplir des rgions dlimites par des courbes. Pour cela il faut dfinir un chemin
ferm (avec -- et cycle) et utiliser \fill ou \filldraw. Certaines portions du chemin peuvent
tre des courbes traces avec plot, sachant quelles sont parcourues dans le sens dfini par lordre
des valeurs extrmes du paramtre dans domain=a:b (de a vers b, mme si a > b).
On peut remplir une rgion avec de la couleur ou des motifs, comme par exemple :
[pattern= horizontal lines] (voir la bibliothque patterns).
Le remplissage des rgions est rgi par des rgles techniques consulter dans le manuel (interior
rules : nonzero rule par dfaut, ou
even odd rule). La rgle par dfaut donne en gnral le rsultat attendu.
Une autre possibilit pour tracer des courbes est dutiliser plot function, qui fait appel au
logiciel extrieur Gnuplot. Cela peut tre utile quand les fonctions mathmatiques de Tik Z se
rvlent insusantes, ou pour rcuprer des figures charges sur Internet. Mais cela exige une

3.6. RSUM

57

bonne installation et configuration de Gnuplot et de TEX. Se rfrer aux manuels de Tik Z et de


Gnuplot.
Une autre possibilit encore est dutiliser plot file {fichier }, o fichier contient la liste des
coordonnes des points avec un point par ligne.
On peut retrouver les options de certaines calculatrices graphiques avec un peu de programmation :
xmin, xmax, ymin, ymax, \axes, \grille, \fenetre.
Pour construire une figure compose de plusieurs sous-figures indpendantes, on peut utiliser
lenvironnement scope pour sparer les sous-figures et les options shift, xshift, ou yshift pour
les dcaler.

Chapitre 4

Gomtrie dans lespace


4.1
4.1.1

Coordonnes (x,y,z)
Reprsentation Tik Z standard

Tik Z prvoit une syntaxe (x,y,z) pour reprsenter des points dans lespace. Mais ce nest
pas un logiciel de modlisation 3D : il ne gre pas les surfaces caches, ne permet pas de voir les
figures sous dirents points de vue. Il se contente de tracer des figures planes qui sont les projetes
!
!
!
!
de figures de lespace, sachant que le point M (x, y, z) est dfini par OM = x i + y j + z k , o
! ! !
!
1 !
1 !
p i
p j (ce nest pas ce
i , j , k sont des vecteurs du plan, avec par dfaut k =
2 2
2 2
que dit le manuel, mais on peut vrifier sur la figure suivante).
!
j
!
i
!
k
Le cube unit est alors obtenu par :

\draw (0,0,0)--(1,0,0)--(1,1,0)--(0,1,0)--cycle; % face arrire


\draw (0,0,1)--(1,0,1)--(1,1,1)--(0,1,1)--cycle; % face avant
% artes horizontales, de larrire vers lavant
\draw (0,0,0) -- (0,0,1); % bas gauche
\draw (1,0,0) -- (1,0,1); % bas droit
\draw (1,1,0) -- (1,1,1); % haut droit
\draw (0,1,0) -- (0,1,1); % haut gauche
Si lon considre le cube comme un solide plein, on peut tracer en pointills ([dashed]) les
artes caches (celles qui partent de lorigine) :

Ou bien on peut ombrer les faces avec \fill (le soleil est en haut gauche) :
59

60

CHAPITRE 4. GOMTRIE DANS LESPACE

On peut de plus rendre les faces transparentes avec opacity :

Tout cela est possible avec les options habituelles de Tik Z, mais ce nest pas automatique.
Il faut dcider soi-mme ce qui sera en pointills [dashed], en gris [fill=...], transparent
[opacity=0.7], et bien dessiner les lments dans le bon ordre.

4.1.2

Autres reprsentations : x=..., y=..., z=...

La reprsentation de Tik Z est une convention comme une autre, et une fois quon la comprise,
on peut lutiliser. Cependant, lenseignement mathmatique franais utilise une autre convention
laquelle sont attachs des rflexes et des images mentales, et changer ces rflexes peut induire une
charge mentale inutile.
Tik Z possde des options x, y et z, qui permettent de redfinir les vecteurs de base en fonction
de coordonnes planes absolues (abscisses horizontales vers la droite, ordonnes verticales vers le
haut).
La reprsentation mathmatique franaise usuelle peut tre obtenue par :
[x= {(-0.353cm,-0.353cm)}, z={(0cm,1cm)}, y={(1cm,0cm)}]
!
k
!
j
!
i
Si lon souhaite utiliser souvent cette reprsentation, il peut tre pratique den faire un style
(par exemple math3d), quon dfinit une fois pour toutes au dbut du document :
\tikzset{math3d/.style=
{x= {(-0.353cm,-0.353cm)}, z={(0cm,1cm)},y={(1cm,0cm)}}}
On peut dailleurs choisir une autre valeur de x pour les besoins de la perspective. Pour chaque
figure o lon veut utiliser cette convention, il sura dajouter loption math3d :
\begin{tikzpicture} [math3d] ... \end{tikzpicture}

4.2
4.2.1

Quelques figures de gomtrie


Section dun cube suivant un hexagone

En joignant les milieux de certains cts, on obtient un hexagone rgulier, section du cube par
le plan mdiateur de la grande diagonale.

4.2. QUELQUES FIGURES DE GOMTRIE

61

En soi, il ny a pas de dicult particulire concernant Tik Z. Il faut pralablement calculer


les coordonnes de tous les points, mais cest plus un problme mathmatique quun problme de
dessin. Pour le dessin, il faut tracer des segments entre les points, en reprant ce qui doit tre
ombr, mis en pointills ou transparent.
Une dcision prendre est de choisir un paralllogramme pour reprsenter le plan de lhexagone.
On a choisi des points dont la position est facilement reprable par rapport aux autres lments
du dessin, le but tant de favoriser la vision dans lespace.
(3/2,0,0)
(0,3/2,0)
(-1/2,1,1)
(1,-1/2,1)

4.2.2

Grande diagonale dun cube

La grande diagonale du cube coupe un certain triangle quilatral en son centre de gravit,
perpendiculairement.

L encore, il faut calculer les coordonnes de tous les points, reprer ce qui est cach et le
traduire par des couleurs, des pointills, une opacit, un ordre de trac.

4.2.3

Droites et plans

Il est frquent davoir illustrer un problme de gomtrie qui demande de dessiner des droites
et des plans quand on connat leurs quations.
Par exemple : construire la perpendiculaire commune aux deux droites
d et d0 dont les reprsentations paramtriques sont :
8
< x=1 t
y=t
d
et
:
z = 2t

8
< x=t
y = 2 + 2t
d0
:
z=t

Une solution mathmatique consiste construire le plan P parallle d et contenant d0 (dqua0


tion x y + z 1 = 0), puis
le plan
Q perpendiculaire P et contenant d (dquation x z = 0).
2 1 2
Ce plan Q coupe d en H
, ,

3 3 3

1 4 1
Soit K le projet de H sur P : K
, ,

3 3 3
0
Alors la perpendiculaire commune d et d est la droite (HK).
Le problme est mathmatiquement rsolu, mais il reste faire la figure suivante pour lillustrer :

H
K
d0

62

CHAPITRE 4. GOMTRIE DANS LESPACE

Pour cela, il reste de nombreux choix supplmentaires faire et de problmes auxiliaires


rsoudre.
On choisit dabord deux points A et B de d et on trace le segment [AB]. De mme, on choisit
C et D sur d0 et on trace le segment [CD]. Ce nest pas grand chose, mais rien que cela peut
demander plusieurs essais pour que la figure ne soit pas trop grande et que la vue en perspective
soit interprtable. On choisit A(2, 1, 2); B(0, 1, 2); C(0, 2, 0); D( 1, 0, 1).
Ensuite il faut reprsenter le plan P par un paralllogramme. On dcide de choisir [CD] comme
diagonale de ce paralllogramme. On choisit lautre diagonale [C 0 D0 ] parallle d pour bien suggrer
le paralllisme. Mais pour que le paralllogramme ne soit pas trop grand, on prend pour longueur
C 0 D0 la moiti de AB.

3 1
1 3
0
0
On obtient C
1, ,
; D 0, ,

2 2
2 2
Il faut ensuite reprsenter le plan Q par un paralllogramme. On choisit [CD] comme un des
cts et on sarrange pour que le ct parallle [CD] contienne H. Les autres sommets sont alors
E(1, 1, 1) et F (0, 1, 0).
Pour le dessin, il faut faire attention lordre du trac pour suggrer la perspective : le contour
et le remplissage du plan P doivent tre faits dabord (le plan P est plac derrire), puis celui du
plan Q avec une certaine transparence [opacity = 0.7].
B

E
K

D
D
A
On voit que, pour une structure mathmatique relativement simple (deux plans et trois droites),
les contraintes du trac en perspective rendent la ralisation assez dlicate : il faut matrialiser les
droites par des segments et les plans par des paralllogrammes, suggrer les proprits de la figure
(paralllisme), rendre la figure lisible et pas trop grande. Et tout cela en respectant les quations
donnes par lnonc et les rgles de la reprsentation en perspective.
Une astuce consisterait considrer que la figure finale nest aprs tout quune figure plane comportant essentiellement deux paralllogrammes, et de tracer ces paralllogrammes sans se soucier
dun quelconque repre de lespace. On peut alors choisir les paralllogrammes de formes arbitraires, condition de respecter la possibilit dinterprter la figure comme une projection dune
figure de lespace.
Cependant, il ne serait plus possible de les choisir arbitrairement si on devait de plus reprsenter
le repre de lespace de manire cohrente avec les quations (ou alors dans ce cas il faudrait calculer
la bonne position du repre).

4.3
4.3.1

Courbes et surfaces
Reprsentation paramtrique, plot, \foreach

Une courbe dans lespace peut tre dfinie par une reprsentation paramtrique un paramtre.
On peut donc la dessiner avec lopration plot (X, Y, Z) en exprimant X, Y et Z en fonction dun
paramtre (nomm \x par dfaut).

4.3. COURBES ET SURFACES

63

Une surface peut tre dfinie mathmatiquement par une reprsentation paramtrique deux
paramtres t et u. Tik Z ne prvoit pas cette possibilit, mais on peut cependant la mettre en
oeuvre.
Lorsquon fixe t et quon fait varier u, on obtient une courbe dans lespace, trace sur la surface.
Lide est de tracer chacune de ces courbes avec lopration plot, et cela pour direntes valeurs
de t, quon peut obtenir laide dune boucle \foreach.
Le schma est donc :
\foreach \t in {...} { plot ( ..., ..., ...) }
Prenons comme exemple une surface de rvolution daxe Oz (comme un cylindre, un cne, une
sphre). Elle est obtenue en faisant tourner la courbe plane dquation x = f (z) autour de laxe
Oz et a pour reprsentation paramtrique (avec deux paramtres et t, variant de 0 2) :
8
< x = f (t) cos()
y = f (t) sin()
:
z=t

On peut alors reprsenter la surface par empilement de disques horizontaux (un disque est
obtenu pour t constant), en les dessinant dans lordre croissant des valeurs de t. On matrialise
ainsi les sections de la surface par des plans horizontaux (les courbes de niveau).
Avec Tik Z, les noms des paramtres vont tre \x pour et \t pour t. On fera varier \t grce
une boucle \foreach, et \x sera le paramtre dune instruction plot. Suivant la surface, il faut
choisir correctement les valeurs de \t et le domaine de \x

4.3.2

Hlice

>
< x=

Une hlice circulaire (un ressort) est dfinie par :


y = cos()
>
:
z = sin()

\draw [domain=-4*pi:4*pi, samples=80, smooth]


plot (\x/pi, {cos(\x r)}, {sin(\x r)}) ;

Tik Z na pas de mcanisme automatique pour mettre en vidence les parties caches. Sur cette
figure, il nest pas facile de le faire, contrairement ce qui peut se passer pour les faces dun cube.
Laxe de lhlice est laxe des abscisses. Dans le sens des variations du paramtre, de 4 4, les
spires vont de larrire vers lavant, en tournant dans le sens inverse des aiguilles dune montre.
On constate les limitations de Tik Z en ce qui concerne les figures dans lespace. Il fournit une
faon simple de reprer prcisment les points dans lespace avec trois coordonnes, ce qui permet
de faire des figures exactes, mais il ne permet pas danalyser les figures obtenues pour obtenir un
rendu analogue la vision humaine.

64

CHAPITRE 4. GOMTRIE DANS LESPACE

4.3.3

Cylindre x2 + y 2 = 1

Cest une surface de rvolution de reprsentation paramtrique :

(cos(), sin(), t)

\foreach \t in {-1,-0.9,...,1} {
\filldraw plot[domain=0:2*pi]
({cos(\x r)}, {sin(\x r)}, \t);
}

4.3.4

Sphre x2 + y 2 + z 2 = 1

p
Cest une surface de rvolution de reprsentation paramtrique : ( 1

t2 cos(),

t2 sin(), t)

On nobtient pas tout fait laspect visuel habituel dune sphre, mais cela sexplique par le
type de perspective utilis : perspective cavalire (cest--dire projection sur un plan) et non pas
perspective centrale (qui correspond notre mode de vision).
Il y a dautres faons de reprsenter une sphre, mais ici la reprsentation par empilement de
disques horizontaux permet de suggrer le relief et de cacher les parties qui sont derrire.

4.3.5

Parabolode z = x2 + y 2

Cest une surface de rvolution


p obtenuepen faisant tourner une parabole autour de Oz. Une
reprsentation paramtrique est ( t cos(), t sin(), t)

4.4

Rsum

Tik Z permet dexprimer les coordonnes (x,y,z) dun point de lespace, quil reprsente par
projection sur le plan de dessin.
Le repre correspondant de lespace a une position prdfinie, quon peut modifier par les
options x, y et z, qui fixent les projets des vecteurs de lespace. Pour une reprsentation franaise
standard, on peut choisir
[x= {(-0.353cm,-0.353cm)}, z={(0cm,1cm)}, y={(1cm,0cm)}]
Tik Z nest pas un logiciel de modlisation 3D, et il ne fournit aucune autre fonctionnalit automatique part la trac dun point par (x,y,z). Il faut donc dcider soi-mme des reprsentations
du relief, de la perspective, des parties caches. part les cas simples (faces planes, segments), ce
nest pas forcment possible. Il est alors conseill de se tourner vers des logiciels spcialiss.
Les courbes peuvent tre traces partir de leurs reprsentations paramtriques, en utilisant
lopration plot.
Les surfaces peuvent tre reprsentes par leurs courbes de niveau, en combinant lutilisation
de linstruction \foreach et celle de lopration plot.

Chapitre 5

Reprsentation de donnes
5.1

Notions de base

On parle de reprsentation graphique de donnes, lorsque des informations relatives un certain phnomne et qui sont fournies comme une liste de nombres, sont aches sous forme dun
diagramme significatif.
On va montrer, dans ce chapitre, comment raliser les diagrammes utiliss de faon usuelle dans
ce type de situation : les courbes, les diagrammes barres, les histogrammes, les diagrammes
secteurs.

5.1.1

Diagramme deectifs : plot coordinates

Dans une classe, un professeur a rendu un devoir not sur 10, en points entiers. Il a compt
combien il y avait de copies pour chaque note. Il dsire faire une reprsentation graphique du
nombre de copies par note.

Note
Nombre de copies

0
0

1
0

2
2

3
0

4
6

5
4

6
7

7
4

8
3

9
0

10
1

Pour tre traites, ces donnes numriques vont tre reprsentes sous forme dune liste de
couples de coordonnes, avec en abscisse la note et en ordonne le nombre des copies ayant obtenu
cette note.
Ainsi en utilisant lopration plot coordinates :

\begin{tikzpicture}
\draw plot coordinates {(0,0) (1,0) (2,2) (3,0)
(4,6) (5,4) (6,7) (7,4) (8,3) (9,0) (10,1)};
\end{tikzpicture}
on va dessiner le diagramme suivant :
65

66

CHAPITRE 5. REPRSENTATION DE DONNES

Comme on le voit, la commande :


\draw plot coordinates {(0,0) (1,0) (2,2) ... (10,1)};
produit le mme trac que : \draw (0,0)--(1,0)--(2,2) ... --(10,1);
On peut alors se demander quel intrt il y a utiliser plot coordinates.
Sur ce petit exemple, ce nest pas vident. Mais les sries statistiques comportent parfois une
trs grande quantit de donnes, et nous verrons plus loin comment traiter ces donnes facilement
laide dapplications auxiliaires (tableur ou outils statistique) et crer des fichiers de donnes
associer au code source du document.
Nous allons maintenant prsenter plusieurs exemples avec ces donnes. Pour viter davoir les
recopier plusieurs fois, nous allons les dfinir sous forme dune commande LATEX rutilisable dans
les exemples qui vont suivre. En eet, bien que Tik Z dfinisse ses propres rgles syntaxiques, il peut
quand mme bnficier de certains mcanismes de LATEX, en particulier lutilisation de commandes
vues comme des macros de remplacement de texte.
Voici la commande \nombresCopiesParNote :
\newcommand{\nombresCopiesParNote}
{(0,0)(1,0)(2,2)(3,0)(4,6)(5,4)(6,7)(7,4)(8,3)(9,0)(10,1)}
Maintenant, lexemple prcdent peut tre obtenu plus simplement avec :
\draw plot coordinates {\nombresCopiesParNote};

5.1.2

Amliorer la lisibilit : grid, node, \foreach

Nous allons maintenant montrer comment amliorer ce diagramme pour rendre comprhensibles
les informations fournies.
Il est ncessaire de placer ces donnes sur une grille pour rendre les valeurs plus facilement
lisibles : \draw (-1,0) grid (11,7);
On peut ensuite tiqueter les abscisses avec des commandes de ce type :
\draw (\x,0) node[below]{\x} en faisant varier \x entre 0 et 10.
ou les ordonnes avec : \draw (-1,\y) node[left]{\y};
Pour cela on peut utiliser la commande \foreach qui permet en deux instructions deectuer
ltiquetage des abscisses et des ordonnes :
\foreach \y in {1,2,...,7} \draw(-1,\y)node[left]{\y};
\foreach \x in {0,1,...,10} \draw(\x,0)node[below]{\x};

5.1. NOTIONS DE BASE

67

Dans la commande \foreach, la variable \x va prendre successivement les valeurs dfinies par
{0,1,...,10} cest--dire {0,1,2,3,4,5,6,7,8,9,10}
Les trois points signifient que la liste doit tre prolonge en utilisant comme modles les 2
premires valeurs et jusqu la valeur finale. Pour cela, on ajoute la seconde valeur de la dirence
delle mme avec la premire et ainsi de suite...
Par exemple : {-1,4,...,19} reprsente {-1,4,9,14,19}
7
6
5
4
3
2
1
0

5.1.3

10

Marquer les points, tiqueter : mark, node, rotate

On peut placer un texte sur chaque axe pour prciser ce quil reprsente. On utilise pour cela
un nud (node) correctement plac :
\draw (5.5,-0.75) node{Notes};
\draw (-1.75,3.5) node[rotate=90]{Nombre de notes};
On peut aussi marquer les points significatifs de la courbe laide de loption mark aecte
lopration plot :
\draw[thick] plot[mark=*] coordinates {\nombresCopiesParNote};
On obtient alors cette nouvelle version du diagramme :
7
plot[mark=*]

Nombre de notes

6
5

\draw[thick]

4
3
2
1
0

5
6
Notes

10

68

CHAPITRE 5. REPRSENTATION DE DONNES

Le marquage des points est fait laide de loption mark= suivie dune des 3 valeurs * + ou x qui
placent respectivement + ou sur chaque point de la liste. Loption mark size=, suivie dune
dimension, permet de modifier la taille de la marque. Par exemple : [mark=*,mark size=5mm]
Loption ball permet aussi de placer une marque comme celle-ci
Dautres marques sont disponibles dans la bibliothque (library) plotmarks. Pour cela, dans le
prambule, lors du chargement de Tik Z il faut ajouter :
\usetikzlibrary{plotmarks} aprs \usepackage{tikz}
Pour un diagramme deectifs, la courbe qui relie les points nest pas trs significative, et ce
nest donc pas une bonne ide de tracer cette courbe.

5.1.4

Diagramme barres : xcomb, ycomb, polar comb

Par dfaut, lopration plot relie les points donns par une ligne polygonale, mais on peut
remplacer cette ligne par des barres :
horizontales avec loption xcomb ;
verticales avec loption ycomb ;
joignant les points lorigine avec loption polar comb.
Voici trois petits exemples o la mme liste de coordonnes est ache avec les options xcomb,
ycomb et polar comb.
On pourra ainsi comparer les dirents modes dachage :
\draw[very thick] plot coordinates
{(-1.5,1.5)(0.5,2)(1.5,0.5)(-0.5,-0.5)(-2,-1)(1,-1.5)}

xcomb

ycomb

polar comb

Pour le diagramme actuel, la meilleure option est donc ycomb.


On peut aussi rendre les barres bien visibles en dessinant des traits plus larges et en marquant
le point avec, par exemple :
7
plot[ycomb,mark=*]

6
Nombre de notes

\draw[line width=4pt]
5
4
3
2
1
0

5
6
Notes

10

5.1. NOTIONS DE BASE

5.1.5

69

Histogramme : xcomb, ycomb, line width

Un histogramme est aussi un diagramme barre, en eet il sut de supprimer les marques du
diagramme prcdent et daugmenter la largeur du trait pour obtenir un histogramme traditionnel :
\draw[line width=8mm,color=blue!50]

plot[ycomb]

Nombre de notes

6
5
4
3
2
1
0

5.1.6

5
6
Notes

10

Achage des donnes dun fichier : plot file

Dans les exemples prcdents, les eectifs par note ont t donns sous forme dune liste de
coordonnes :
{(0,0)(1,0)(2,2)(3,0)(4,6)(5,4)(6,7)(7,4)(8,3)(9,0)(10,1)}
Cependant les informations statistiques sont souvent disponibles sous forme de fichier de texte
contenant les donnes numriques. Voici par exemple le fichier nombresCopiesParNote.txt
contenant les mme informations que ci-dessus sous un format dirent :
0
1
2
3
4
5
6
7
8
9
10

0
0
2
0
6
4
7
4
3
0
1

Il y a un couple de coordonnes par ligne, et il y a au moins un sparateur (espace ou tabulation)


entre labscisse et lordonne. Il est facile de crer un tel fichier avec nimporte quel diteur de texte
ordinaire.
En gnral si on copie deux colonnes dun tableur et quon les colle dans lditeur de texte, on
obtient exactement ce que lon dsire.
Une fois ce fichier nombresCopiesParNote.txt plac dans le dossier contenant le source
.tex du document en cours de rdaction, on obtiendra exactement le mme rsultat en remplaant
la commande :
\draw plot coordinates {\nombresCopiesParNote};
ou la commande :
\draw plot coordinates {(0,0) (1,0) (2,2) (3,0)
(4,6) (5,4) (6,7) (7,4) (8,3) (9,0) (10,1)};

70

CHAPITRE 5. REPRSENTATION DE DONNES

par la commande :
\draw plot file {nombresCopiesParNote.txt};
Le principal avantage de cette approche est quil est, dans ce cas, facile de changer les donnes dans le fichier texte auxiliaire, sans modifier le code source .tex du document. Une simple
compilation permet alors une mise jour rapide de lachage des donnes.
Un autre avantage concerne le traitement des donnes statistiques de grande taille (des centaines
de points). Dans ce cas linclusion des donnes dans le source serait trop pnible et provoquerait
des risques derreurs.

5.2
5.2.1

Diagramme barres horizontales


Le bl dans le monde : utilisation dun tableur

On dsire prsenter sur un diagramme, de faon significative, les deux sries statistiques suivantes. Ces donnes reprsentent la production de bl pour les annes 2004 et 2005 (en millions de
tonnes), pour les principaux pays producteurs dans le monde :
Pays
Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine
Royaume-Uni
Iran
Argentine

Production 2004
91,96
72,16
58,74
45,41
39,69
25,86
21,91
25,43
19,50
21,00
17,52
15,47
14,57
15,96
10

20

Production 2005
97,45
68,64
58,74
47,70
36,89
26,78
25,09
23,69
21,61
21,50
18,70
14,86
14,31
12,57
30

40

50

60

70

80

90 Mt

Chine
Inde
tats-Unis
Russie
France

On veut obtenir une figure de ce type :

Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine
Royaume-Uni
Iran
Argentine

La solution la plus rapide est de raliser le diagramme laide dun logiciel adapt, comme un
tableur, par exemple. On peut alors exporter la figure et linclure dans le document. Hlas, dans
ce cas, le style de la figure ne sera pas parfaitement assorti la typographie du document, et on
risque de rencontrer des dicults pour la mise lchelle de la figure.
Faire la figure avec Tik Z rclame videment un petit eort qui sera largement valid par la
qualit du rsultat obtenu.
Comme nous lavons vu prcdemment, lopration plot eectue un trac laide de coordonnes de points.
Nous pouvons dcider, par exemple, de reprsenter chaque valeur par une barre horizontale.
Chaque valeur est donc labscisse dun point dont il faut fixer lordonne.

5.2. DIAGRAMME BARRES HORIZONTALES

71

Pour cela, nous allons procder, laide du tableur, un pr-traitement des donnes pour
prparer les fichiers textes ncessaires.
On va produire les deux fichiers suivants :
"producBle2004.txt"

"producBle2005.txt"

91.96 14
97.45 14
72.16 13
68.64 13
58.74 12
58.74 12
45.41 11
47.70 11
39.69 10
36.89 10
25.86 9
26.78 9
21.91 8
25.09 8
25.43 7
23.69 7
19.50 6
21.61 6
21.00 5
21.50 5
17.52 4
18.70 4
15.47 3
14.86 3
14.57 2
14.31 2
15.96 1
12.57 1
On a plac les donnes en abscisse et on a numrot les ordonnes par valeurs dcroissantes
pour que les barres horizontales se placent les unes en dessous des autres, par pays. On utilisera
loption xcomb de lopration plot qui permet de relier chaque point laxe des ordonnes par une
barre horizontale, comme on a vu prcdemment.
Attention : en franais le sparateur dcimal est la virgule. On a utilis la fonction de
recherche-remplacement de notre diteur de texte pour mettre des points dcimaux la place des
virgules.

5.2.2

Barres horizontales : plot file, xcomb

Maintenant, si on utilise la commande :


\draw[thick] plot[xcomb] file {producBle2004.txt};
Le rsultat donne quelque chose de ce type :

On constate que la figure dborde dans la marge droite de la feuille. En eet la Chine produit
91,96 Mt de bl, or lunit par dfaut de Tik Z est le centimtre et on obtient donc une barre de
presque un mtre.
Il va falloir jouer avec lchelle de la figure pour obtenir un achage de taille correcte en ajoutant
des options lenvironnement tikzpicture.
Un facteur multiplicatif pour les abscisses peut tre dfini la suite de loption xscale=.
Pour que la figure tienne sur la largeur de la feuille, ce facteur doit tre infrieur 0,1 et il sera
ncessaire de faire quelques essais pour parvenir un rsultat satisfaisant.
Comme il y a 14 pays dans la liste, le diagramme fera au moins 14 cm de haut, ce qui est
beaucoup.
On pourra, de mme, rduire cette hauteur en fixant un facteur multiplicatif pour les ordonnes
la suite de loption yscale=.
Voici ce quon obtient avec, par exemple : [xscale=0.09,yscale=0.6]

72

CHAPITRE 5. REPRSENTATION DE DONNES

On peut maintenant se proccuper du style des barres. Si on veut une prsentation en histogramme on peut crire par exemple :
\draw[line width=4mm,color=blue!50]
plot[xcomb] file {producBle2004.txt};

5.2. DIAGRAMME BARRES HORIZONTALES

5.2.3

73

Installation dune grille : grid, xstep, ystep

On va placer des lignes verticales pour faciliter la lecture des informations. On utilise pour cela
une grille dont le pas sera astucieusement choisi :
\draw (0,0) grid[xstep=10,ystep=15] (100,15);

Loption xstep=10 place les lignes verticales tous les 10 millions de tonnes et loption ystep=15
place les lignes horizontale toutes les 15 units, ce qui reprsente en ralit uniquement la ligne du
bas et la ligne du haut.
On a aussi ajout une sous-grille en gris de pas plus petit (5 Mt) :
\draw[gray,very thin] (0,0) grid[xstep=5,ystep=15] (100,15);
Cette commande a t place avant la commande prcdente dans lenvironnement tikzpicture
de faon ce que le reste de la figure soit dessin par dessus.

5.2.4

tiquetage du repre : \foreach, node

On utilisera ensuite des commandes \foreach pour graduer les abscisses de la grille de reprage
et pour placer les noms de pays en ordonnes.

\foreach \x in {10,20,...,90} \draw(\x,15)node[above]{\x};

Cette commande place les nombres en haut du diagramme.

74

CHAPITRE 5. REPRSENTATION DE DONNES


10

20

30

40

50

60

70

80

90

Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine
Royaume-Uni
Iran
Argentine

\foreach \n/\y in {Chine/14,Inde/13,tats-Unis/12,Russie/11,


France/10,Canada/9,Australie/8,Allemagne/7,Pakistan/6,
Turquie/5,Ukraine/4,Royaume-Uni/3,Iran/2,Argentine/1}
\draw (0,\y) node [left] {\n};
Nous utilisons ici une nouvelle forme de la commande \foreach qui permet de contrler plusieurs variables simultanment. Les valeurs proposes entre accolades sont, dans ce cas, une liste
de valeurs multiples.
Dans cette forme de la commande \foreach, il y a ici deux variables :
\n qui va prendre pour valeurs les noms de ville
\y qui va prendre pour valeurs les ordonnes du point dtiquetage
De mme que les deux variables sont spares par un / dans la dclaration \n/\y leurs valeurs
respectives dans la liste qui suit sont aussi spares par un / comme pour Chine/14 par exemple.

5.2.5

Deux sries plus une lgende : plot, shift, node

Il est possible de placer la seconde srie statistique (la production de bl 2005) sur le mme
diagramme en utilisant une couleur dirente et en dcalant lgrement les barres des deux sries
verticalement avec yshift. La premire srie est dcale de 2 mm vers le haut avec yshift=2mm,
et la seconde srie est dcale de 2 mm vers le bas avec yshift=-2mm :
\draw [line width=3mm,color=blue!50,yshift=2mm]
plot[xcomb] file {producBle2004.txt};
\draw [line width=3mm,color=green!50,yshift=-2mm]
plot[xcomb] file {producBle2005.txt};
Cest une bonne ide dajouter par la mme occasion une lgende, dans deux nuds correctement placs :
\draw(60,5)node[fill=blue!50,above] {Production 2004};
\draw(60,5)node[fill=green!50,below] {Production 2005};

5.3. COURBE DES VARIATIONS DE DONNES


10

20

30

40

75
50

60

70

80

90 Mt

Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan

Production 2004
Production 2005

Turquie
Ukraine
Royaume-Uni
Iran
Argentine

Les principaux pays producteurs de bl (en millions de tonnes)

5.3
5.3.1

Courbe des variations de donnes


Production annuelle de riz : pr-traitement

On dsire prsenter par une courbe lvolution de la production mondiale de riz durant les
annes 1997 2006.
Les donnes sont prsentes dans la table suivante :
Anne
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006

Production de riz en Mt
577
583
612
598
603
572
588
615
627
633
640
630
620

On dsire prsenter les variations ainsi :

610
600
590
580

1997

1998

1999

2000

2001

2002

2003

2004

2005

2006

Il semble tout fait naturel de penser procder de la mme faon que dans le paragraphe
prcdent :

76

CHAPITRE 5. REPRSENTATION DE DONNES


crer un fichier de texte contenant ces donnes ;
utiliser la commande \draw plot file {nomDuFichier.txt}.

Hlas, ce nest pas aussi simple : Tik Z supporte assez mal les points dont les coordonnes sont
grandes. Lunit par dfaut du dessin est le centimtre. Avec 2006 on obtient donc une figure de
plus de 20 m de large.
On peut alors esprer utiliser loption scale pour modifier lchelle du dessin. Hlas, a ne
marche pas non plus, car Tik Z utilise aussi pour ses calculs internes des nombres damplitude
limite.
On dcouvre exprimentalement (a ne semble pas clairement document dans le manuel de
lauteur) quil vaut mieux limiter les coordonnes des points des valeurs comprise entre 500 cm et
+500 cm. On peut malgr tout utiliser des nombres plus grands dans les calcul, Tik Z est simplement
incapable dutiliser des points dont les coordonnes sortent de cet intervalle. Il est dans ce cas
impossible de dessiner, mme en rduisant la fentre dachage avec la commande \clip ou en
changeant dchelle avec loption scale.
Si une erreur de compilation survient avec un message de ce type :
! dimension too large.
<recently read> \pgf@yy
on doit penser vrifier que certaines coordonnes ne sont pas trop grandes.
Nos donnes ne sont pas du tout comprises dans cet intervalle. Nous allons donc eectuer un
pr-traitement, laide dun tableur par exemple, pour obtenir des donnes plus adaptes au dessin.
On peut dcider de :
soustraire 1990 aux annes ;
diviser par 10 les nombres de millions de tonnes.
7
57.7
8
58.3
9
61.2
10 59.8
11 60.3
On produit ainsi le fichier : "producRiz.txt"
12 57.2
13 58.8
14 61.5
15 62.7
16 63.3

5.3.2

Courbe des variations : plot file

La commande \draw plot file {producRiz.txt}; permet dobtenir immdiatement un rsultat visible :

5.3. COURBE DES VARIATIONS DE DONNES

5.3.3

77

Quadrillage : grid, step

On va ajouter une grille en faisant varier les abscisses entre 7 (pour 1997) et 16 (pour 2006),
les ordonnes entre 57 (pour un minimum de 57,2) et 64 (pour un maximum de 63,3) :
\draw (7,57) grid (16,64);

Pour faciliter la lecture, on peut quadriller plus finement selon les ordonnes en fixant pour
lopration grid loption [ystep=0.5] :

On constate que la ligne horizontale infrieure du quadrillage est absente. En eet les erreurs
darrondi dans le calcul du quadrillage produisent parfois des problmes de ce type.
Pour corriger ce problme, il sut de faire quelques essais en modifiant progressivement la
valeur de loption ystep qui fixe le pas vertical de la grille du quadrillage. Dans le cas prsent, on
obtient un rsultat satisfaisant en augmentant trs lgrement le pas, avec :
\draw (7,57) grid [ystep=5.00001mm] (16,64);

78

5.3.4

CHAPITRE 5. REPRSENTATION DE DONNES

Annotations, dcorations : \foreach, node, mark

On peut maintenant tiqueter les axes du quadrillage pour faciliter la lecture des donnes qui
sont aches.
On commence par laxe des ordonnes avec la commande \foreach :
\foreach \y in {58,59,...,64}
\draw (7,\y) node[left,scale=0.8]{\y0};
Pour ltiquetage des ordonnes, on remarquera que la variable \y prend les valeurs de 58 64,
mais que le contenu du nud est {\y0}, cest--dire la valeur de \y suivie du caractre 0, ce qui
fera donc : 580, 590, ... jusqu 640.
\foreach \x in {1997,1998,...,2006}
\draw (\x-1990,57) node [below,scale=0.8] {\x};
Pour ltiquetage des abscisses, on utilise les capacits de calcul de la version 2 de PGF. La
variable \x prend les valeurs successives de 1997 2006, mais les nuds contenant les annes
doivent tre placs aux points dabscisses successives 7, 8, ... jusqu 16. On place donc chaque
nud en (\x-1990,57)
Labscisse \x-1990 est la valeur de \x laquelle on soustrait 1990. Ainsi les abscisses seront
bien les valeurs 7, 8, ... jusqu 16 (valeurs infrieures 500).
Cette syntaxe, qui accepte des formules de calcul dans les commandes Tik Z, est rserve
la version 2 de Tik Z & PGF. De plus elle ne fonctionne que si le bibliothque calc a t
charge dans le prambule, dans lequel il faut donc placer \usetikzlibrary{calc} juste aprs
\usepackage{tikz}.
Pour terminer, on va eectuer une petite amlioration esthtique de la figure en accentuant la
visibilit des points significatifs. Pour cela, on ajoute, lopration plot, loption [mark=ball,mark
size=3pt] pour obtenir :
640
630
620
610
600
590
580

1997

1998

1999

2000

2001

2002

2003

2004

2005

2006

Production annuelle mondiale de riz en million de tonnes

5.4. DIAGRAMME SECTEURS

5.4
5.4.1

79

Diagramme secteurs
Rpartition par catgories socioprofessionnelles

Voici la rpartition, en pourcentage, de la population franaise, par catgories socioprofessionnelles, pour lanne 1999 :
Catgorie
Agriculteurs exploitants
Artisans, commerants, chefs dentreprise
Cadres, professions intellectuelles suprieures
Professions intermdiaires
Employs
Ouvriers
Retraits
Autres sans activit professionnelle

%
2
3
5
9
13
12
18
38

Dans ce cas, il est assez naturel de reprsenter ces donnes laide dun diagramme secteurs.
Le disque complet reprsentera la population franaise. Chaque catgorie socioprofessionnelle
sera associ un secteur dangle proportionnel au pourcentage de la population quelle reprsente.
Employs
Intermdiaires

13%

Ouvriers

9%

12%

Cadres
5%
3%

Voici laspect de la figure que lon dsire raliser :

2%
Retraits

Artisans
Agriculteurs

18%

38%

Inactifs

5.4.2

Calcul des angles : pr-traitement avec un tableur

Dans Tik Z, il ny a pas de commande spcifique prvue pour construire automatiquement des
diagrammes secteurs.
Il va donc falloir construire chaque secteur laide de lopration arc crite sous la forme
suivante :
\draw (X0 , Y0 ) -- ( : R) arc ( :

: R) -- cycle;

(X0 , Y0 )

On constate quil est ncessaire, pour tracer un secteur, de calculer au pralable les angles qui
dfinissent sa forme, langle du secteur, mais aussi langle que fait le rayon du dbut du secteur
avec lhorizontale, puis celui que fait le rayon de la fin du secteur avec lhorizontale :

80

CHAPITRE 5. REPRSENTATION DE DONNES


Catgorie
Agriculteurs
Artisans
Cadres
Intermdiaires
Employs
Ouvriers
Retraits
inactifs

%
2
3
5
9
13
12
18
38

angle en
7,2
10,8
18
32,4
46,8
43,2
64,8
136,8

dbut du secteur
0
7,2
18
36
68,4
115,2
158,4
223,2

fin du secteur
7,2
18
36
68,4
115,2
158,4
223,2
360

Ces rsultats ont t obtenus laide dun tableur.

5.4.3

Dessiner les secteurs : \draw, arc, cycle, fill, $

Pour dessiner un secteur on utilise son angle de dbut et son angle de fin.
On peut aussi tiqueter ce secteur, par exemple, en notant la catgorie lextrieur et en plaant
le pourcentage lintrieur.
Expliquons en dtail deux exemples :
Agriculteurs (2% secteur de 0 7,2) ;
Employs (13% secteur de 68,4 115,2).
2%

Agriculteurs

\draw[fill=black!2!blue!2] (0,0)--(0:4.5)arc(0:7.2:4.5)--cycle;
\draw (3.6:4) node {2\%};
\draw (3.6:5.6) node {Agriculteurs};
Le secteur est centr lorigine (X0 , Y0 ) = (0, 0), le rayon du cercle est R = 4, 5 cm et le secteur
de = 0 = 7, 2 est colori avec un mlange de 2% de noir et de bleu [fill=black!2!blue!2],
cest--dire proportionnellement au pourcentage de la population quil reprsente. Ainsi le secteur
sera dautant plus sombre que son angle sera grand.
Ltiquette 2% est place 4 cm du centre, lintrieur du secteur, avec un angle de 3,6(la
moiti de 7,2) cest--dire sur la bissectrice de langle du secteur. Ltiquette Agriculteurs est
place, avec le mme angle 5,6 cm du centre, cest--dire lextrieur du secteur.
Employs

13%

\draw[fill=black!13!blue!13]
(0,0)--(68.4:4.5)arc(68.4:115.2:4.5)--cycle;
\draw ({(68.4+ 115.2)/2}:4) node {13\%};
\draw ({(68.4+ 115.2)/2}:5.6) node {Employs};

5.4. DIAGRAMME SECTEURS

81

Cette fois-ci, le secteur de, = 68, 4 = 115, 2, est colori avec un mlange de 13% de noir
et de bleu. Il est donc plus sombre que le prcdent.
+
Pour aligner les tiquettes, langle de la bissectrice
a t calcul comme moyenne des
2
angles et qui dlimitent le secteur.
On a utilis pour cela les capacits de calcul de la version 2 de PGF :
ainsi, ({(68.4+115.2)/2}:4) sera valu (91.8:4)
On remarque ici que pour eectuer le calcul, lexpression valuer doit tre place entre accolades {(68.4+115.2)/2}, pour viter les conflits de syntaxe.
En rsum, sur ces deux exemples, on remarque que les trois commandes utilises pour la
construction de chaque secteur colori et tiquet, ont la structure gnrale suivante :
\draw[fill=black!\p!blue!\p]
(0,0) -- (\a:4.5) arc (\a:\b:4.5) -- cycle;
\draw ({(\a+\b)/2}:4) node {\p\%};
\draw ({(\a+\b)/2}:5.6) node {\c};
\a est langle
utilis pour dfinir de dbut du secteur.
\b est langle
utilis pour dfinir de fin du secteur.
\p est le pourcentage de la population reprsente
utilis pour fixer lintensit la couleur ;
utilis pour dfinir le texte ltiquette intrieure.
\c est la catgorie socioprofessionnelle
utilise pour dfinir le texte ltiquette extrieure.
De plus, la taille du diagramme complet est contrle par les valeurs des rayons de trois cercles :
le cercle des secteurs : de rayon R = 4,5 (en centimtres)
le cercle des tiquettes intrieures de pourcentage : de rayon 4
le cercle des tiquettes extrieures de catgorie : de rayon 5,6

5.4.4

Diagramme complet : \foreach

Pour dessiner tous les secteurs du diagramme, les commandes ci-dessus doivent tre excutes
en faisant varier les valeurs de \a, \b, \p et \c.
On va utiliser pour cela quatre variables \a/\b/\p/\c dans la commande \foreach et crer la
liste des valeurs que doivent prendre ces variables laide du tableau donn au dbut.
Par exemple, les trois premires lignes du tableau :
Catgorie
Agriculteurs
Artisans
Cadres

%
2
3
5

angle en
7,2
10,8
18

dbut du secteur
0
7,2
18

fin du secteur
7,2
18
36

vont fournir les valeurs respectives des variables \a/\b/\p/\c sous la forme :
{0/7.2/2/Agriculteurs, 7.2/18/3/Artisans, 18/36/5/Cadres,...
On obtiendra ainsi avec une commande \foreach unique le diagramme complet avec tous les
secteurs coloris et tiquets :
\begin{tikzpicture}
\foreach \a/\b/\p/\c in
{
0/7.2/2/Agriculteurs, 7.2/18/3/Artisans,
18/36/5/Cadres, 36/68.4/9/Intermdiaires,
68.4/115.2/13/Employs, 15.2/158.4/12/Ouvriers,
158.4/223.2/18/Retraits, 223.2/360/38/Inactifs

82

CHAPITRE 5. REPRSENTATION DE DONNES


}
{
\draw[fill=black!\p!blue!\p]
(0,0) -- (\a:4.5) arc (\a:\b:4.5) -- cycle;
\draw ({(\a+\b)/2}:4) node {\p\%};
\draw ({(\a+\b)/2}:5.6) node {\c};

}
\end{tikzpicture}
On remarque ci-dessus :
la liste des donnes, entre accolades, aprs \foreach \a/\b/\p/\c in
les trois commandes de construction dun secteur qui sont insres entre des accolades et
forme donc le bloc des instructions excutes chaque tape par la commande \foreach
Et voici le diagramme obtenu :
Employs
Intermdiaires

13%

Ouvriers

9%

12%

Cadres
5%
3%

Artisans

2% Agriculteurs

Retraits

18%

38%

Inactifs
Rpartition par catgorie socioprofessionnelle en France en 1999

5.5

Rsum

On a vu ici des exemples de reprsentations graphiques de donnes.


partir de sries statistiques varies enregistres sous forme de fichiers de texte, on a dessin, des courbes, des diagrammes barres horizontales ou verticales, des histogrammes et des
diagrammes secteurs.
On a montr quil est souvent ncessaire deectuer un traitement des donnes au pralable
laide dune application auxiliaire comme un tableur par exemple, pour obtenir les cordonnes des
points significatifs du diagramme.
On a aussi constat quun diagramme se construit par essais successifs, en construisant dabord
une premire figure, puis en procdant des modifications progressives pour obtenir une figure
satisfaisante.
Attention :
en centimtres.

Ne jamais utiliser de coordonnes de points en dehors de lintervalle [ 500; 500]

Chapitre 6

Graphes : Introduction
6.1

Notions de base

On va montrer ici, laide dexemples simples, comment construire des diagrammes de graphes
constitus de nuds relis par des arcs.

6.1.1

Nuds et Arcs : \draw, --, node, et \node

Allons dabord de Paris Strasbourg, le plus simple est dcrire :


\draw (0,0)node[draw]{Paris} -- (4,-1)node[draw]{Strasbourg};
Paris
Strasbourg
Mais on peut aussi dfinir dabord les villes puis les relier ensuite :
\node[draw] (P) at (0,0) {Paris};
\node[draw] (S) at (4,-1) {Strasbourg};
\draw (P) -- (S);
Paris
Strasbourg
Si lon regarde attentivement, on constate que les deux critures donnent des rsultats lgrement dirents :
Dans le premier cas, node est une opration excute sur un chemin. On peut considrer
chaque nud comme une dcoration du point auquel il est associ. La ligne trace par la
commande \draw joint deux points, les nuds sont des objets ajouts ensuite et centrs sur
les points. Loption draw de lopration node trace le contour du nud.
Dans le second cas, \node est une commande Tik Z qui permet de dfinir un nud, de le
nommer et de le dessiner. On peut alors considrer les nuds comme des objets prexistants
que lon va ensuite relier avec la commande \draw. Ces nuds ne sont pas des points, il ont
une certaine dimension, la ligne trace joint les bords de ces objets.
La syntaxe de dfinition dun nud avec la commande \node est :
\node[<options>] (<nom>) at (<position>) {<contenu>};
Par dfaut, un nud a la forme dun rectangle qui englobe son contenu comme on le voit dans
les deux cas de figure ci-dessus.
83

84

CHAPITRE 6. GRAPHES : INTRODUCTION

Sil ny a pas loption draw, le contour nest pas trac, mais le rectangle a des dimensions non
nulles mme si le contenu est vide comme on peut le constater en comparant les deux exemples
ci-dessous :
\draw (0,0) --(1,1) --(2,0);
(1, 1)

(0, 0)

\node (A) at (1,1) {};


\draw (0,0) --(A) --(2,0);
(A)

(2, 0)

(0, 0)

(2, 0)

Dans la figure de gauche, le trait du chemin passe par les trois points de rfrence, il ny a pas
de nud.
Dans celle de droite, le nud, nomm (A), qui a t dessin est visible, bien quil soit vide, car
le trait du chemin sinterrompt la frontire du nud, alors que celle-ci est elle-mme invisible.

6.1.2

Chemin annot : \draw avec opration node

La premire mthode (ajouter des nuds sur un chemin) a dj t utilise prcdemment, par
exemple pour annoter les figures de gomtrie.
On peut prciser la position des nuds autour des points du chemin en ajoutant lopration
node des options de position comme above ou below par exemple.
\draw (0,0)node[above]{Paris}--(4,-1)node[below]{Strasbourg};
Paris

Strasbourg

6.1.3

Graphe : \node puis \draw avec nom de nud

La seconde mthode (relier par un chemin des nuds nomms prcdemment) nous intresse
davantage dans ce chapitre, car elle sera plutt utilise pour construire des diagrammes de graphes.
Dans ce cas, on modifiera le style des traits, laide doptions de la commande \draw, comme
par exemple [<->,>=latex] pour obtenir des flches :
\draw[<->,>=latex] (P) -- (S);
Paris
Strasbourg

6.2
6.2.1

Styles des nuds et des arcs


Les arcs : \draw, --, |-, -|, to et options de flches

Nous allons maintenant tudier comment construire des graphes constitus de nuds et darcs.
On prsentera les direntes options qui permettent de prciser le style des arcs et des nuds.
Nous avons constat sur lexemple prcdent que larc entre deux nuds est une ligne droite
qui relie les centres des nuds, mais sarrte la priphrie, sur la frontire rectangulaire du nud.
On peut remplacer la liaison -- par une liaison |- (dpart vertical, arrive horizontale) ou -|
(dpart horizontal, arrive verticale) :

6.2. STYLES DES NUDS ET DES ARCS

85

Lille
Paris
Strasbourg
\draw[->,>=latex] (P) |- (L);
\draw[->,>=latex] (L) -| (S);
\draw[->,>=latex] (S) -| (P);
On peut aussi utiliser une liaison to, suivie dune option de courbure.
Pour cette option de courbure, le plus simple est dindiquer vaguement ce que lon veut, soit une
courbure vers la droite avec [bend right], soit une courbure vers la gauche avec [bend left] :
Lille
Paris
Strasbourg

\draw[->,>=latex] (P) to[bend right] (L);


\draw[->,>=latex] (L) to[bend left] (S);
\draw[->,>=latex] (S) to[bend left] (P);
Pour loption bend, la courbure est relative la direction de parcours du chemin en ligne droite
dfini par deux points successifs.
Attention : Le mot courbure prte ici confusion. Pour loption bend left par exemple, cela
signifie que le chemin subit une dformation courbe qui le place sur la gauche, dans le sens du
parcours du chemin en ligne droite directe.
Pour que tout soit parfaitement clair, voici quelque exemples de flches traces avec to[bend
left], le chemin direct tant visualis en gris :

Limportance de la courbure de loption bend peut tre modifie en prcisant aprs un signe =
un angle en degrs (0correspond la ligne droite) :

90

45
Paris

20

0
\draw[->,>=latex] (P) to[bend left=0] (S);
\draw[->,>=latex] (P) to[bend left=20] (S);
\draw[->,>=latex,dashed] (P) to[bend left] (S);
\draw[->,>=latex] (P) to[bend left=45] (S);
\draw[->,>=latex] (P) to[bend left=90] (S);

Strasbourg

86

CHAPITRE 6. GRAPHES : INTRODUCTION

Avec lopration de liaison to, on peut aussi tre encore plus prcis et utiliser loption out=
qui dfinit langle polaire en degrs de sortie du nud origine et loption in= pour langle dentre
dans le nud extrmit :
Lille

out=45
Paris

out=0

in=-90

in=0
in=180 Strasbourg
out=230

\draw[->,>=latex] (P) to[out=45,in=-90] (L);


\draw[->,>=latex] (L) to[out=0,in=180] (S);
\draw[->,>=latex] (S) to[out=230,in=0] (P);

6.2.2

Extrmits des arcs : [->|, *-o, >->>, )-(

De nombreuses variations sont possibles pour dfinir les extrmits des arcs. On se reportera
la documentation gnrale pour plus dinformations sur ce sujet. Voici quelques exemples :

\draw[{[-]}] (0,0) -- (1,1);


\draw[>->>] (4,0) -- (5,1);
\draw[|<-)] (8,0) -- (9,1);

\draw[*-o] (2,0) -- (3,1);


\draw[)-(] (6,0) -- (7,1);
\draw[{]-)}] (10,0) -- (11,1);

On remarquera la ncessit dutiliser des accolades dans le cas o on utilise le crochet. Ceci
vite, lors de la lecture de loption, une erreur de syntaxe.

6.2.3

Frontires des nuds : circle, ellipse, diamond

Nous avons vu loption draw de \node qui trace la frontire du nud.


Cette frontire peut tre modifie et dcore laide de direntes options :
de forme : rectangle (dfaut), circle, ellipse, diamond ;
de style : dashed, dotted, thick, red, fill ;
de modification : rounded corners, minimum width ou height.
Pour que certaines options de forme soient disponibles, le chargement dune bibliothque (library) dans le prambule est ncessaire. Aprs le chargement de \usepackage{tikz} il faut ajouter
\usetikzlibrary{shapes}
Lille

minimum height=1cm,dashed

rounded corners=3pt Paris

ellipse
Strasbourg

Bourges
diamond,aspect=2.5

Dijon
circle,fill=gray

6.2. STYLES DES NUDS ET DES ARCS

87

\node[draw,rectangle,rounded corners=3pt] (P)at(0,0){Paris};


\node[draw,minimum height=1cm,dashed] (L)at(2,1) {Lille};
\node[draw,ellipse] (S)at(6,-1) {Strasbourg};
\node[draw,diamond,aspect=2.5] (B)at(0,-1.5) {Bourges};
\node[draw,circle,fill=gray!50] (D)at(4,-2) {Dijon};
Remarque : Loption diamond est accompagne de son option aspect qui fixe le rapport entre
la largeur et la hauteur du nud.

6.2.4

Abstraction des styles : \tikzstyle, \tikzset

Pour les graphes un peu complexes dans lesquels figurent des nuds et des arcs de styles varis,
il est parfois utile de nommer les styles. Plutt que de procder aux copier-coller des options, on
dfinira des styles laide de la commande \tikzstyle (pour PGF version 1) ou de la commande
\tikzset (pour PGF version 2).
On dfinit, par exemple, un style pour ville et le style de Paris sera, par exemple, capitale :
\tikzstyle{ville}=[draw,rectangle,rounded corners=3pt]
\tikzstyle{capitale}=[draw,ellipse,very thick,fill=black!25]
ou avec la commande \tikzset de PGF version 2 :
\tikzset{ville/.style={draw,rectangle,rounded corners=3pt}}
\tikzset{capitale/.style={draw,ellipse,very thick,fill=black!25}}
Il sura alors dcrire dans le code :
\node[capitale] (P)at(0,0){Paris};
\node[ville] (L)at(2,1){Lille}; . . .
On dfinit de mme des styles radial et transversal pour les arcs :
\tikzset{radial/.style={very thick,->,>=stealth}}
\tikzset{transversal/.style={<->,>=stealth,thick,dashed}}
On peut alors eectuer les liaisons :
\draw[radial] (P)--(L);
\draw[transversal] (D)--(B); . . .
Lille
[capitale]
Paris

[tr
ans
ver
sal
]

[radia
l]

[ville]
Strasbourg

Bourges
Dijon
Remarque : Un des avantages principaux de la dfinition de style est de rendre le code beaucoup
plus lisible.
Mais il y a plus important encore, les commandes \tikzstyle ou \tikzset peuvent tre dfinies
lextrieur de lenvironnement {tikzpicture}. Dans ce cas, toutes les figures qui suivent pourront
utiliser les styles dfinis. Ceci permet ainsi duniformiser le style de plusieurs figures distinctes. Par
contre, si les commandes \tikzstyle ou \tikzset sont dfinies lintrieur dun environnement
{tikzpicture}, la porte est limite cet environnement.

88

CHAPITRE 6. GRAPHES : INTRODUCTION

Attention : La commande \tikzstyle de Tik Z & PGF version 1 est toujours valable dans
la version 2, mais, on lui prfrera la nouvelle commande \tikzset qui permet de dfinir des styles,
mais qui ore aussi des possibilits supplmentaires que lon utilise par ailleurs.
Les dfinitions de style prcdentes peuvent ainsi tre dfinies globalement dans une unique
commande \tikzset.
\tikzset{ville/.style={draw,rectangle,rounded corners=3pt},
capitale/.style={draw,ellipse,very thick,fill=black!25},
radial/.style={very thick,->,>=stealth},
transversal/.style={<->,>=stealth,thick,dashed}}
Les styles ainsi dfinis pourront tre ensuite utiliss dans tous les environnements {tikzpicture}
qui suivent.

6.2.5

Points dancrage des nuds : N.south, N.left, N.below

On a vu en gomtrie comment placer un nud autour dun point. On montre ici comment
atteindre certains points dancrage dun nud :

Paris

\node[draw] (N) at (2,2) {\Large Paris};


\draw[->,>=latex] (0,0) -- (N.north);
\draw[->,>=latex] (0,0) -- (N.south);
\draw[->,>=latex] (0,0) -- (N.west);
\draw[->,>=latex] (0,0) -- (N.east);

Pour visualiser les dirents points dancrage dun nud, nous allons dabord crer un nud de
grande taille en utilisant les options de dcoration vues dans le paragraphe prcdent pour dfinir
son style :

node N

\tikzstyle{noeud}=[minimum width=5cm,minimum height=3cm,


rectangle,rounded corners=10pt,draw,
fill=yellow!75,text=red,font=\bfseries]
\node[noeud] (N) at (0,0) {\Large node \og{}N\fg{}};
Une fois le nud N plac, on dessine sur la figure les principaux points dancrage, avec leurs
noms :
(N.north)

(N.west)

(N.center)

node N

(N.south)

(N.east)

6.2. STYLES DES NUDS ET DES ARCS

89

\draw (N.north) node{$\times$} node[above]{(N.north)};


\draw (N.south) node{$\times$} node[below]{(N.south)};
\draw (N.west) node{$\times$} node[left]{(N.west)};
\draw (N.east) node{$\times$} node[right]{(N.east)};
\draw[blue] (N.center) node{$\times$} node[above=3pt]{(N.center)};
En ralit, il y a de trs nombreux points dancrage, ce qui permet, comme toujours avec Tik Z
dtre extrmement prcis dans la disposition des objets. Voici quelques autres des principaux
points dancrage :
(N.north west)
+

(N.40) (N.north east)


+
(N.15)
+node + N
(N.text) (N.base)

+
(N.south west)

+
(N.south east)

Les noms de tous ces points sont assez comprhensibles. On remarquera en particulier les points
(N.15) et (N.40) qui font rfrence aux points dintersection de la frontire du nud avec la droite
passant par le centre et qui fait un angle de 15(respectivement 40) avec lhorizontale.

6.2.6

Flches vers les ancres : N.north, N.center, N.15

Le nom (N) fait rfrence au centre du nud comme (N.center), mais nest cependant pas
identique. Une flche qui pointe vers (N) a son extrmit sur la frontire du nud, tandis quune
flche qui pointe vers (N.center) a son extrmit sur le centre du nud comme on peut le constater
sur la figure suivante qui rsume les dirents cas :
\draw[->]
(etiquetteN) -- (N);
\draw[->] (etiquetteNcenter) -- (N.center);
...
(N.center)
(N)
(N.north west)

(N.north)

(N.north east)
(N.40)
(N.15)

(N.west)

node N

(N.east)

(N.south)

(N.south east)

(N.text)

(N.south west)
(N.base)

90

6.3
6.3.1

CHAPITRE 6. GRAPHES : INTRODUCTION

Techniques avances
Tracer un arc sans avancer : edge

En plus des oprations de chemin --, |-, -| et to, qui dfinissent la forme des traits de liaison,
on dispose aussi de edge (avec les mmes options que pour lopration to) qui dessine une ligne
jusquau point suivant, mais laisse le crayon lorigine pour les liaisons suivantes, en toile :
\draw[->,>=latex] (P) edge[bend left] (L)
edge[out=0,in=90] (S)
edge (D)
edge[bend right] (B);
[bend left]

Lille

[out=0,in=90]

Paris
[bend right]

Strasbourg

Bourges
Dijon

6.3.2

tiquetage des arcs : sloped, midway, pos

Aprs spcification dans une commande \draw dun chemin (A)--(B), lopration node qui
suit place, par dfaut, un nud au point (B). Si on ajoute lopration node loption midway le
nud sera plac mi-chemin du point (A) et du point (B).
En plus de loption midway, il existe aussi les options very near start, near start, near end,
very near end pour les placements approximatifs, et loption pos= qui permet une plus grande
prcision.
Le nombre qui suit pos= est le pourcentage du chemin parcourir pour placer le nud : 0 en
(A), 1 en (B), 0.5 au milieu de (A)--(B).
\draw (0,0) node{A} -- (4,2) node{B}
node[midway]{M}
node[near end]{N};
\draw (5,0) node{A} to[bend right]
node[very near start]{R}
node[pos=0.7]{S} (9,2) node{B};
\draw (9,0) node{A} to[bend left]
node[pos=0.5]{M}
node[pos=0.25]{Q} (13,2) node{B};
near end
N
midway
M
A

B
pos=0.7

M
pos=0.5

Q
pos=0.25

very near start


A R

Les tiquettes sont crites horizontalement par dfaut, mais comme on le voit sur les exemples
ci-dessous, ajouter loption sloped permet dincliner les tiquettes selon la pente du chemin :
node[sloped,midway]{M}

avec sloped

start
very near
A R

7
0.
=
s
po S

po
s=
Q 0.2
5

B
ay N end
dw
mi M ear
n

M 0.5
s=
o
p

6.3. TECHNIQUES AVANCES

6.3.3

91

Inclinaison des tiquettes : sloped, rotate

Il est aussi possible de modifier linclinaison par dfaut du texte de ltiquette dans lopration
node avec loption rotate= suivie dun angle en degrs :

te

rotate=45
Te
x

Texte
node[draw]{Texte}

node[draw,rotate=45]{Texte}

La rotation du texte se fait partir de la position normale du texte, cest--dire par rapport
lhorizontale.
La rotation peut aussi tre applique sur des nuds placs une position intermdiaire dun
chemin entre deux points conscutifs :
pos=0.25
N

sloped,pos=0.25

rotate=45
R

sloped,pos=0.75

pos=0.75

rotate=45

Si loption sloped est prsente sur lopration node, la rotation du texte se fait partir de la
tangente au chemin la position de ltiquette.

6.3.4

Modification de la taille des annotations : scale

On peut enfin modifier la taille des tiquettes de lopration node avec loption scale= suivie
dun coecient multiplicatif :
scale=1.5
scale=0.75

6.3.5

sloped,scale=1.5
sloped,scale=0.75

Insrer une sous-figure : scope, shift, rotate, scale

Supposons quon ait deux figures, chacune dfinie dans un environnement tikzpicture :
B
J
C
Figure 1 :
Figure 2 :
I
O
O
Dans chaque figure, le point O a pour coordonnes (0, 0). Si on copie le code des deux figures
lintrieur dun mme environnement tikzpicture, elles ne seront plus disjointes :
B
C

OO

92

CHAPITRE 6. GRAPHES : INTRODUCTION

Le problme est alors le suivant : comment crer dans un mme environnement tikzpicture
un dessin comportant ces deux figures, mais disjointes ? Et, de plus, on aimerait pouvoir recopier
directement le code de chaque figure spare, et ne pas avoir recalculer de nouvelles coordonnes.
Heureusement, il existe un environnement scope qui peut tre vu comme un sous-environnement
tikzpicture auquel on peut aecter des options de dcalage comme loption xshift (suivie dun
dcalage horizontal), loption yshift (suivi dun dcalage vertical) ou loption shift (suivi des
coordonnes dun vecteur de translation).
Par exemple : [xshift=2] [yshift=25mm] ou [shift={(5,2)}]
On remarque, dans ce dernier cas, les accolades autour des coordonnes du vecteur de translation. Ces accolades sont ncessaires ici, pour que la virgule ne soit pas considre comme un
sparateur doptions.
Prenons le code de chacune de nos deux figures et insrons les codes respectifs dans un environnement scope, que nous plaons ensuite dans un environnement tikzpicture. Pour dcaler la
seconde figure, on ajoute son environnement scope loption [shift={(5,-1)}] :
\begin{tikzpicture}
\begin{scope}
% ... Figure 1
\end{scope}
\begin{scope}[shift={(5,-1)}]
% ... Figure 2
\end{scope}
\end{tikzpicture}
J

B
C
I

shift
={(5,
-1)}

Ajoutons loption [rotate=60] au scope qui contient le code de la premire figure, une rotation
de 60 est donc applique cette figure :
rotate=60
B

C
O

shift
={(5,
-1)}

Remarque : la rotation ne concerne que le dessin du chemin. On constate que les textes ont
conserv leur alignement original.
Cest un peu surprenant, mais raisonnable : si vous avez ralis une figure complexe avec de
nombreuses annotations textuelles, vous pouvez ainsi la faire tourner facilement, les annotations
restent lisibles car elles conservent la mme orientation. Il est cependant parfois utile de modifier
lancrage de certains nuds.
Loption [shift={(5,-1)},rotate=-45,scale=1.5] a maintenant t aecte au scope contenant le code de la seconde figure, celle-ci a donc subi une translation, une rotation et sa taille a
t augmente de 50%.

6.3. TECHNIQUES AVANCES

93
C

rotate=60

scale=1.5

J
O

shift
={(5,
-1)}

rotate=-45

Remarque : Attention, leet des options rotate ou scale, quand elles sont appliques un des
environnements scope ou tikzpicture, nest pas le mme que si elles sont appliques lopration
node :
rotate ou scale pour les environnements scope ou tikzpicture :
ce sont les lignes du dessin qui constitue la figure qui subissent les transformations. La figure
tourne, sa taille est modifie, mais les annotations textuelles eectues laide de nuds
gardent leurs tailles et leurs orientations :
rotate ou scale pour lopration node :
ce sont les textes contenus dans le nud qui subissent les transformations. Une fois ces
transformations eectues, il ny a plus de changement des textes, ni en taille, ni en orientation lors dune modifications des options de scope ou tikzpicture. Cependant, il y a
dplacement des textes qui restent lis leurs points dancrage qui ont boug.

6.3.6

Textes longs : text width, justified, centered

Voici un commentaire bavard qui ne


tiendra pas sur 3 cm

Voici un commentaire bavard


qui ne tiendra
pas sur 3 cm

text centered

Voici un commentaire bavard qui


ne tiendra pas sur
3 cm

text justified

Le contenu dun nud est en gnral assez court et plac sur une seule ligne. Toutefois, il est
possible de mettre dans un nud des textes plus longs, sur plusieurs lignes, comme par exemple
dans la lgende dune figure.
Loption text width permet de limiter la largeur du contenu textuel du nud et de provoquer
ainsi son achage sur plusieurs lignes :

\node[draw,text width=3cm] at(0,0){Voici...cm};


\node[draw,text width=3cm,text justified] at(4,0){Voici...cm};
\node[draw,text width=3cm,text centered] at(8,0){Voici...cm};

Voici un
commentaire
bavard qui ne
tiendra pas sur
3 cm

text badly centered

Voici un
commentaire
bavard qui ne
tiendra pas sur
3 cm

text badly ragged

Les options text justified ou text centered permettent de prciser le type dalignement
du texte.
En gnral, la largeur dun nud est assez limite. Dans ce cas, les csures provoques par
LATEX, lors de la mise en page, seront parfois gnantes.
Les options text badly ragged ou text badly centered permettent dinterdire les csures
dans le texte du nud :

94

CHAPITRE 6. GRAPHES : INTRODUCTION

Il est aussi possible dutiliser simultanment les options minimum width, minimum height et
text width dans un mme nud. Ainsi on contrle la taille du rectangle du nud :

Voici un commentaire bavard


qui ne tiendra
pas sur 3 cm

minimum height=4cm

minimum width=6cm

text width=3cm

\node[draw,text width=3cm,text centered,


minimum width=6cm,
minimum height=4cm] at (0,0) {Voici...cm}

6.3.7

Contournement dun nud

Si on construit un graphe complexe, il peut parfois arriver que certains nuds gnent le passage
dun arc, comme ci-dessous, o les options les plus simples ne permettent pas daller de A B sans
rencontrer les autres nuds.
On veut relier A B par une flche qui contourne les obstacles :
P

B
Q

On va dabord dfinir un nud auxiliaire (n), invisible, lgrement droite et en dessous (2 mm)
du coin sud-est du nud (P) :
\coordinate[shift={(2mm,-2mm)}] (n) at (P.south east);
Pour cela, on a utilis loption [shift={(2mm,-2mm)}], applique lancre (P.south east) du
nud (P).
On trace ensuite :
\draw[->,thick,>=latex,rounded corners=5pt] (A) |- (n) |- (B);
P
|A out=0

B
in=220

. |(n)
Q
R

Une petite marque discrte t ajoute sur la figure pour montrer la position du point
auxiliaire (n) invisible ct du point (P).
On remarque quil tait aussi possible dviter les obstacles avec une flche courbe qui passe
entre Q et R, condition dajuster les angles de sortie et dentre dans les nuds, laide des
options out= et in= de lopration to.

6.4. EXERCICES

6.4

95

Exercices

Dans chaque exercice, on demande de raliser la figure spcifie. Toutes ces figures peuvent tre
construites uniquement en Tik Z avec des nuds et des arcs, en dfinissant videment des styles
laide des direntes options.
La principale dicult, dans ces exercices, est de raliser la figure la plus proche possible du
modle en respectant les positions et les angles.

6.4.1

Voyelle ou Consonne
A
B
Voyelle

Consonne

D
E
Aide
On place les lettres 1 cm les unes des autres et Voyelle et Consonne 3 cm de chaque
ct. On dfinit trois styles :
\tikzstyle{lettre}=[circle,draw,fill=yellow!50,text=blue]
\tikzstyle{type}=[circle,fill=red!25]
\tikzstyle{fleche}=[->,>= stealth,thick]
Il ny a plus qu lier les dirents nuds.

6.4.2

Les points cardinaux


Est

Sud

Nord

Ouest

Aide
On dfinit le style des points cardinaux :
\tikzstyle{point}=[circle,fill=blue!25,minimum width=5em]
Le mot le plus long est Ouest , on fixe donc minimum width=5em, une largeur dau moins 5
fois la largeur de la lette m , pour que tous les cercles soient de mme taille. On dfinit le style
des flches :

96

CHAPITRE 6. GRAPHES : INTRODUCTION


\tikzstyle{fleche}=[<->,>=latex,line width=2mm]
On trace :

\node[point] (N) at (2,0){Nord};


\node[point] (S) at (-2,0){Sud};
\draw[fleche] (N)--(S);
...

sc
De
60

on
t
e

Sur le Dos

e
ent

Horizontal

Vertical

Orientations
45

6.4.3

Aide
On dfinit les nuds H : (0,0) , M : (2,0), S : (6,0), D : (6,0) et V : (9,0) avec loption
draw,rotate= et les angles 45, 180, 60, 90, et le style pour les flches :
\tikzstyle{fleche}=[<->,>=stealth,very thick]
Les liens sont assez dlicats tablir en raison des rotations des nuds. La figure a t obtenue
avec les options suivantes :
\draw[fleche] (H.south) to[bend right=90] (S.north);
\draw[fleche] (M.east) to[bend left] (D.west);
\draw[fleche] (D.east) to[out=-60,in=-90] (V.west);
Par exemple, sur la premire ligne on relie (H.south) (S.north) qui est au dessous du nud
(S), car le nud (S) est sur le dos [rotate=180], et son nord est en bas !

6.4.4

Pentagone

Solution
Pentagone de rayon 2 centr sur lorigine :
\tikzstyle{sommet}=[circle,draw,thick,fill=yellow]
\draw (90:2) node[sommet]{}
-- (162:2) node[sommet]{}
-- (234:2) node[sommet]{}
-- (306:2) node[sommet]{}
-- (378:2) node[sommet]{}
-- cycle;
Le premier sommet trac est celui du haut.

6.4. EXERCICES

6.4.5

97

Benzne

Le benzne est un hydrocarbure aromatique monocyclique, de formule C6 H6


H
H

C
C

C
H

C
C

H
Solution
Les C et les H sont placs et nomms laide dune commande \foreach
Lorigine est au centre de la molcule, et les atomes sont placs en coordonnes polaires, langle
tant dfini par la variable \a.
Les C sont nomms a, b, c, d et e (noms pris successivement par la variable \n) et les H associs
sont nomms respectivement aa, bb, cc, dd et ee (noms engendrs successivement par \n\n).
% les C et les H
\foreach \n/\a in {a/30,b/90,c/150,d/210,e/270,f/330}
{\node (\n) at (\a:1) {C};
\node (\n\n) at (\a:2) {H};}
% les liaisons C - H
\foreach \n in {a,b,c,d,e,f} \draw [thick] (\n)--(\n\n);
On remarque la possibilit, avec la commande \foreach, de construire des noms de nud par
concatnation de variables et de les rutiliser plus tard.
Il sut ensuite de dessiner les liaisons, simples ou doubles.
% les
\draw
\draw
\draw

liaisons simples entre C


[thick](a)--(b);s
[thick] (c)--(d);
[thick] (e)--(f);

% les
\draw
\draw
\draw

liaisons doubles entre C


[double,thick] (b)--(c);
[double,thick] (d)--(e);
[double,thick] (f)--(a);

98

CHAPITRE 6. GRAPHES : INTRODUCTION

6.4.6

Arbre gnalogique
Pp

Papy

Mm

Papa

Mamie

Maman

Bibi
Aide
On dfinit le style des liens :
\tikzstyle{lien}=[->,>=stealth,rounded corners=5pt,thick]
On peut ensuite dfinir, avec la commande \tikzstyle, trois styles distincts pour Bibi les
hommes et les femmes, mais si lon dispose de la version 2.00 de Tik Z & PGF, on pourra utiliser
la commande \tikzset pour crer un style paramtrable :
\tikzset{individu/.style={draw,thick,fill=#1!25},
individu/.default={green}}
Ici, loption individu donne un fond fill=green!25 par dfaut, mais elle peut accepter un nom
de couleur qui remplacera le #1 dans la dfinition. Ainsi individu=red donne un fond fill=red!25.
On peut alors placer les nuds, puis les liens :
\node[individu] (B) at (0,0) {Bibi};
\node[individu=blue] (P) at (-3,2) {Papa};
\node[individu=red] (M) at (3,2) {Maman};
...
\draw[lien] (B) |- (-1,1) -| (P);
\draw[lien] (B) |- (1,1) -| (M);
...
On remarque lutilisation de points auxiliaires pour permettre un trac des flches des liens en
zigzag.

6.5

Rsum

On construit des graphes en dfinissant et en nommant des nuds, qui sont des botes de texte,
avec la commande \node, puis on les relie par des arcs avec la commande \draw.
On peut modifier le style, la taille et lorientation des textes crits dans les nuds avec les
options rotate scale.
Les arcs sont tracs laide de la commande \draw, et de ses direntes oprations comme |-,
-| ou to qui permettent de modifier la forme des arcs. Avec lopration edge, il est aussi possible
de tracer des arcs partir dun node, sans avancer.
Les options comme thick, dashed, ->, *-o ou [-( permettent de prciser les styles de trait ou
de flche.
On peut aussi ajouter des annotations sur les arcs avec lopration node et une des options
midway, pos= ou sloped.
Pour la construction de figures complexes, lenvironnement scope permet de dcomposer le
diagramme en sous-figures cres dabord indpendamment, puis assembles ensuite avec des transformations ventuelles en utilisant des options comme shift, rotate ou scale.

Chapitre 7

Graphes : Exemples
On a prsent, dans le chapitre prcdent, les outils de base pour dessiner des graphes. On va
maintenant raliser des graphes complexes pour montrer comment mettre en uvre ces dirents
outils.

7.1
7.1.1

Graphe dune relation


Relations entre quadrilatres

On connat direntes relations entre quadrilatres, comme : un carr est un rectangle, un carr
est un losange.
On veut tracer un graphe exprimant ces direntes relations entre les types de quadrilatre
suivant : paralllogramme, rectangle, carr, losange.
Chaque type de quadrilatre sera reprsent par un nud et chaque relation sera reprsente
par une flche.
Par exemple Carr est un Rectangle : Carr
Rectangle
carrs est strictement inclus dans lensemble des rectangles.

7.1.2

signifie que lensemble des

Des nuds et des flches : node et ->

La figure tant assez complexe, on va la construire pas pas en indiquant, chaque tape,
uniquement ce qui dire de ltape prcdente.
On place dabord un nud (node) pour chaque type de quadrilatre et on le nomme laide
de son initiale :

\begin{tikzpicture}
\node (Q) at (0,3) {Quadrilatre};
\node (P) at (0,1.5) {Paralllogramme};
\node (R) at (-3,0) {Rectangle};
\node (L) at (3,0) {Losange};
\node (C) at (0,-1.5) {Carr};
\end{tikzpicture}
99

100

CHAPITRE 7. GRAPHES : EXEMPLES


Quadrilatre

Paralllogramme

1.5

Rectangle

Losange 0

Carr
0

1.5
3

Le placement des nuds a t fait au crayon sur un papier, puis simul en centrant chaque
nud sur des points de coordonnes raisonnables.
Pour rendre la figure plus lisible, on va dfinir un style de nud en crivant chaque nom en
bleu sur fond jaune clair, dans un rectangle encadr de noir.
On dfinit un style quadri ajouter comme option sur chaque nud :
\tikzstyle{quadri}=[rectangle,draw,fill=yellow!50,text=blue]
\node[quadri] (Q) at (0,3) {Quadrilatre}; . . . etc.

Quadrilatre

Paralllogramme

Rectangle

Losange

Carr

On ajoute maintenant les relations est un reliant les nuds par des flches. On dfinit estun,
le style de ces flches, pour les tracer en pointills trs pais, avec une pointe de type latex.
On ajoute ainsi le code suivant notre figure :

\tikzstyle{estun}=[->,dotted,very thick,>=latex]
\draw[estun] (P)--(Q);
\draw[estun] (R)--(Q); \draw[estun] (R)--(P);
\draw[estun] (L)--(Q); \draw[estun] (L)--(P);
\draw[estun] (C)--(Q); \draw[estun] (C)--(P);
\draw[estun] (C)--(L); \draw[estun] (C)--(R);

7.1. GRAPHE DUNE RELATION

101
Quadrilatre

Paralllogramme

Rectangle

Losange

Carr
Le rsultat manque de lisibilit, car certaines flches traversent les nuds et dautres se superposent.
vitons dabord les superpositions en remplaant les droites par des courbes. Pour cela le lien
est remplac par un lien to avec une option [bend left] (courb gauche) ou [bend right]
( droite).
Modifions dabord Rectangle-Quadrilatre et Losange-Quadrilatre :
\draw[estun] (R) to[bend left] (Q);
\draw[estun] (L) to[bend right] (Q);
Quadrilatre

Paralllogramme

Rectangle

Losange

Carr
Le nud Carr est mal plac. Pour sparer les flches superposes et rendre les relations
entre quadrilatres visibles, on dplace le nud Carr droite du nud Losange et on
courbe ensuite la flches Carr-Quadrilatre et la flche Carr-Paralllogramme :
\node[quadri] (L) at (4,1.5) {Losange};
\node[quadri] (C) at (7,0) {Carr};
\draw[estun] (C) to[bend right] (Q);
\draw[estun] (C) to[bend left] (P);
Quadrilatre

Paralllogramme

Rectangle

Losange

Carr

102

CHAPITRE 7. GRAPHES : EXEMPLES


Il est encore possible damliorer la figure.

7.1.3

Graphe final : courbure bend, ancrage P.east

On va redresser la flche Losange-Quadrilatre et la faire arriver au coin sud-est du nud


Quadrilatre : \draw (L)--(Q.south east);
On procde ensuite dautres petites modifications de position des extrmits des flches
Carr-Losange et Carr-Paralllogramme .
Pour terminer, on place sur le ct gauche de la figure, une lgende qui prcise la smantique
de la flche :
\draw[estun] (-4.5,2.5) -- (-3,2.5) node[midway,above]{est un};

est un

Quadrilatre

Paralllogramme

Rectangle

Losange

Carr

\begin{tikzpicture}
% dfinition des styles
\tikzstyle{quadri}=[rectangle,draw,fill=yellow!50,text=blue]
\tikzstyle{estun}=[->,>=latex,very thick,dotted]
% les nuds
\node[quadri] (Q) at (0,3) {Quadrilatre};
\node[quadri] (P) at (0,1.5) {Paralllogramme};
\node[quadri] (R) at (-3,0) {Rectangle};
\node[quadri] (L) at (3,0) {Losange};
\node[quadri] (C) at (5,-1.5) {Carr};
% les flches
\draw[estun] (P)--(Q);
\draw[estun] (R)to[bend left](Q); \draw[estun] (R)--(P);
\draw[estun] (L)--(Q.south east); \draw[estun] (L)--(P);
\draw[estun] (C)to[bend right](Q.east); \draw[estun] (C)to[bend left](P);
\draw[estun] (C)--(L.south east); \draw[estun] (C)to[bend left](R);
% la lgende
\draw[estun] (-4.5,2.5)--(-3,2.5)node[midway,above]{est un};
\end{tikzpicture}

7.2. ORGANIGRAMME INFORMATIQUE

103

Lexemple prcdent avait pour but de montrer comment contrler finement la position des
nuds et des arcs. Il est dusage, en gnral, de ne pas reprsenter les flches que lon peut dduire
par transitivit comme ci-dessous :
Quadrilatre
Paralllogramme
Rectangle

Losange
Carr

7.2
7.2.1

Organigramme informatique
Somme des N premiers nombres entiers

Dessiner un organigramme du programme qui calcule la somme des N premiers nombres entiers
avec lalgorithme suivant :
DBUT
Lire un entier positif N
S
0
TANT QUE N > 0 FAIRE
S
S+N
N
N 1
FIN

7.2.2

Acher la somme S

Style des nuds : draw, ellipse, fill, text

Comme dans lexemple prcdent, on va reprsenter un graphe compos de nuds relis par des
flches. Mais, dans ce cas, il y a plusieurs types de nuds que lon dsire direncier graphiquement.
On va dfinir des styles pour chaque type de nud du diagramme :
debfin pour les repres de Dbut et de Fin : ellipse ;
es pour les Entres-Sorties : rounded corners ;
instruct pour les instructions : rectangle ;
test pour le test : diamond.
\begin{tikzpicture}
\tikzstyle{debutfin}=[ellipse,draw,text=red]
\tikzstyle{instruct}=[rectangle,draw,fill=yellow!50]
\tikzstyle{test}=[diamond, aspect=2.5,thick,
draw=blue,fill=yellow!50,text=blue]
\tikzstyle{es}=[rectangle,draw,rounded corners=4pt,fill=blue!25]
\end{tikzpicture}
On va ensuite placer les lments en leur attribuant un nom significatif :
\node[debutfin] (debut) at (-2,5) {Dbut};
\node[es] (lire) at (-2,4) {Lire un entier positif $N$};
\node[test] (test) at (0,0) {$N>0$ \ ?};
\node[instruct] (init) at (-2,2.5) {$S\leftarrow 0$};
\node[instruct] (plus) at (0,-2.5) {$S\leftarrow S+N$};
\node[instruct] (moins) at (0,-3.5) {$N\leftarrow N-1$};

104

CHAPITRE 7. GRAPHES : EXEMPLES

\node[es] (afficher) at (-4,-2) {Afficher la somme $S$};


\node[debutfin] (fin) at (-4,-3) {Fin};

Dbut

Lire un entier positif N

2, 5

N >0 ?

Acher la somme S
S

S+N

Fin
4

7.2.3

2
2, 5
3
3, 5

Forme des flches : >=, rounded corners, |-

Il sut de reprsenter la squence ordonne des instructions par des flches dont le style suite
est dabord dfini :

\tikzstyle{suite}=[->,>=stealth,thick,rounded corners=4pt]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]

(debut) -- (lire);
(lire) -- (init);
(init) -- (test.north);
(test) -- (plus);
(plus) -- (moins);
(test) -| (afficher);
(afficher) -- (fin);

On remarquera en particulier : \draw[suite] (init)--(test.north); le branchement au


sommet du losange de test.
Et aussi : \draw[suite] (test)-|(afficher); le branchement avec virage angle droit en
sortie du test.

7.2. ORGANIGRAMME INFORMATIQUE

105
Dbut

Lire un entier positif N

N >0 ?

Acher la somme S
S

S+N

Fin
1

(1, 1.5)
Il manque la flche qui boucle entre linstruction N
N 1 et le sommet du losange de test.

N >0 ?

Comme elle doit contourner la figure par la


droite, on va introduire deux points auxiliaires
rendus visibles ci-contre par .
On ajoute donc la commande :

\draw[suite] (moins) |- (3,-4.5)


|- (1,1.5) -- (test.north);

S+N

1
(3, 4.5)

Il ne reste plus qu tiqueter les sorties du losange de test :

\draw[suite] (test) -- (plus)


node[midway,fill=white] {oui};
\draw[suite] (test) -| (afficher)
node[near start,fill=white] {non};

106

CHAPITRE 7. GRAPHES : EXEMPLES

7.2.4

Organigramme final
Dbut
Lire un entier positif N

non

N >0 ?

oui
Acher la somme S
S

S+N

Fin
1

Code complet de la figure :


\begin{tikzpicture}
% style des nuds
\tikzstyle{debutfin}=[ellipse,draw,text=red]
\tikzstyle{instruct}=[rectangle,draw,fill=yellow!50]
\tikzstyle{test}=[diamond, aspect=2.5,thick,
draw=blue,fill=yellow!50,text=blue]
\tikzstyle{es}=[rectangle,draw,rounded corners=4pt,fill=blue!25]
% style des flches
\tikzstyle{suite}=[->,>=stealth,thick,rounded corners=4pt]
% placement des nuds
\node[debutfin] (debut) at (-2,5) {Dbut};
\node[es] (lire) at (-2,4) {Lire un entier positif $N$};
\node[test] (test) at (0,0) {$N>0$ \ ?};
\node[instruct] (init) at (-2,2.5) {$S\leftarrow 0$};
\node[instruct] (plus) at (0,-2.5) {$S\leftarrow S+N$};
\node[instruct] (moins) at (0,-3.5) {$N\leftarrow N-1$};
\node[es] (afficher) at (-4,-2) {Afficher la somme $S$};
\node[debutfin] (fin) at (-4,-3) {Fin};
% Placement des flches
\draw[suite] (debut) -- (lire);
\draw[suite] (lire) -- (init);
\draw[suite] (init) -- (test.north);
\draw[suite] (test) -- (plus) node[midway,fill=white]{oui};
\draw[suite] (plus) -- (moins);
\draw[suite] (moins)|-(3,-4.5) |- (1,1.5)--(test.north);
\draw[suite] (test)-|(afficher)node[near start,fill=white]{non};
\draw[suite] (afficher) -- (fin);
\end{tikzpicture}

7.3. DIAGRAMMES SYNTAXIQUES

7.3
7.3.1

107

Diagrammes syntaxiques
Grammaire des expressions mathmatiques

Dessiner les diagrammes de dfinition de la grammaire (simplifie) des expressions mathmatiques :


Une Expression est une somme de Termes spars par + ;
Un Terme est une produit de Facteurs spars par ;
Un Facteur est : soit une Variable, soit une Expression entre ( et ) ;
Une Variable est : soit X, soit Y , soit Z.
Pour le spcialiste, voici cette grammaire, note en BNF :
Expression ::= Terme {"+" Terme}*
Terme ::= Facteur {"" Facteur}*
Facteur ::= Variable | "(" , Expression , ")"
Variable ::= "X" | "Y " | "Z"
Remarque : pour simplifier on se limite trois variables et on ne prvoit aucune valeur
numrique. Voici quelques exemples :
X ; X Y ; X + Y ; X + (Y Z) ; (X + Y ) (Z + X)

7.3.2

Alignement des nuds, tiquetage

On connat bien maintenant les mthodes de construction de graphes que nous allons appliquer
ce problme.
On dfinit dirents styles :
element pour les lments syntaxiques (Terme Facteur . . .) ;
terminal pour les lment terminaux de la grammaire (+ . . .) ;
fleche pour les arcs de liaison.
\tikzstyle{element}=[rectangle,draw,fill=white]
\tikzstyle{terminal}=[circle,draw]
\tikzstyle{fleche}=[->,>=stealth,thick,rounded corners=4pt]
On place ensuite les nuds en les alignant correctement, puis les arcs orients pour lier les
dirents nuds.
\begin{tikzpicture}
\node[above right] at (-1,0) {Expression};
\node[element] (T) at (4,0) {Terme};
\node[terminal] (p) at (4,-1) {$+$};
\draw[fleche] (0,0) -- (T); \draw[fleche] (T) -- (8,0);
\draw[fleche] (6,0) |- (p); \draw[fleche] (p) -| (2,0);
\end{tikzpicture}
Expression

Terme
+

De mme, on va construire les diagrammes syntaxiques successifs :


Terme

Facteur

108

CHAPITRE 7. GRAPHES : EXEMPLES

\node[above right] at (-1,0) {Terme};


\node[element] (F) at (4,0) {Facteur};
\node[terminal] (m) at (4,-1) {$\times$};
\draw[fleche] (0,0) -- (F); \draw[fleche] (F) -- (8,0);
\draw[fleche] (6,0) |- (m); \draw[fleche] (m) -| (2,0);
Facteur

Variable
(

Expression

\node[above right] at (-1,0) {Facteur};


\node[element] (V) at (4,0) {Variable};
\node[terminal] (po) at (2,-1) {$($};
\node[element] (E) at (4,-1) {Expression};
\node[terminal] (pf) at (6,-1) {$)$};
\draw[fleche] (0,0) -- (V); \draw[fleche] (V) -- (8,0);
\draw[fleche] (1,0) |- (po); \draw[fleche] (po)--(E);
\draw[fleche] (E) -- (pf);
\draw[fleche] (pf) -| (7,0);
Variable

X
Y
Z

\node[above right] at (-1,0) {Variable};


\node[terminal] (x) at (4,0) {$X$};
\node[terminal] (y) at (4,-1) {$Y$};
\node[terminal] (z) at (4,-2) {$Z$};
\draw[fleche] (0,0) -- (x); \draw[fleche] (x) -- (8,0);
\draw[fleche] (2,0) |- (y); \draw[fleche] (y) -| (6,0);
\draw[fleche] (1,0) |- (z); \draw[fleche] (z) -| (7,0);

7.3.3

Regroupement de figures : scope et yshift

Les quatre figures ont t construites dans des environnements tikzpicture spars. On aimerait maintenant les regrouper en une seule figure.
On pourrait recopier simplement leur code dans un seul environnement tikzpicture :
\begin{tikzpicture}
\node[above right]
\node[above right]
\node[above right]
\node[above right]
\end{tikzpicture}

at
at
at
at

(-1,0)
(-1,0)
(-1,0)
(-1,0)

{Expression}; ...
{Expression}; ...
{Terme}; ...
{Variable}; ...

Malheureusement, dans ce cas, toutes les figures seraient superposes puisque les coordonnes
ont t positionnes lorigine.
On pourrait alors penser modifier les coordonnes de tous les nuds. Cest possible, mais ce
serait long.
On va utiliser une instruction qui permet de dcaler chaque figure vers le bas de 2.5 cm par
rapport la prcdente. En fait, il est plus prcis de dire : dcaler la deuxime figure de 2.5 cm,
la troisime de 5 cm, etc.

7.4. GRAPHE DE PREUVE

109

Le dcalage vertical sobtient avec loption yshift, et pour prciser quelle partie du code
sapplique cette option, on insre le code concern dans un environnement scope. Lorsque Tik Z
applique loption [yshift=-2.5cm] au point (-1,0), il trace en fait le point (-1,-2.5), etc.
On applique ensuite chaque scope les dcalages successifs :
[yshift=-2.5cm], [yshift=-5cm], [yshift=-7.5cm].

\begin{tikzpicture}
\node[above right] at (-1,0) {Expression}; ...
\begin{scope}[yshift=-2.5cm]
\node[above right] at (-1,0) {Expression}; ...
\end{scope}
\begin{scope}[yshift=-5cm]
\node[above right] at (-1,0) {Terme}; ...
\end{scope}
\begin{scope}[yshift=-7.5cm]
\node[above right] at (-1,0) {Variable}; ...
\end{scope}
\end{tikzpicture}

Expression

Terme
+

Terme

Facteur

Facteur

Variable
(

Variable

Expression

X
Y
Z

7.4
7.4.1

Graphe de preuve
Rsolution dune quation : 2x + 3 = 7

On veut expliquer, laide dun schma, la rsolution de lquation du premier degr : 2x+3 = 7

110

CHAPITRE 7. GRAPHES : EXEMPLES


Rsolution de lquation
On soustrait 3 chaque membre
On simplifie
On divise chaque membre par 2
On simplifie
La solution est

2x + 3
2x + 3 3
2x
2x
2
x
S

=
=
=
=
=
=

7
7 3
4
4
2
2
{2}

On veut prsenter le schma de rsolution sous cette forme :


2x + 3

3
2x

4
/2

/2
x

S = {2}

7.4.2

Placement des nuds : \node (a) at (x,y), below

La figure finale est propose ci-dessus pour montrer lobjectif atteindre. En ralit un diagramme de ce type a t fait la main au brouillon au pralable. On code ensuite successivement
les dirents lments en procdant par essais et erreurs pour obtenir le rsultat voulu.
On va reprsenter notre quation laide de 3 nuds en nommant les membres de gauche (g)
et de droite (d). Ainsi les nuds (g) et (d) pourront tre origines des flches :
\begin{tikzpicture}
\node (g) at (-1.25,4.5) {$2x+3$};
\node at (0,4.5) {$=$};
\node (d) at (1,4.5) {$7$};
\end{tikzpicture}
2x + 3

Un maniaque de la prcision remarquera un lger dfaut dalignement du signe gal par rapport
sa position dans lquation standard : 2x + 3 = 7
Pour corriger a, on peut penser loption [below] que lon ajoute au nud gal :
\node[below] at (0,5) {$=$};
2x + 3

Hlas le rsultat est pire ! Il faut ajuster la valeur de la descente en procdant par essais successifs
jusqu obtenir : [below=-5pt]
2x + 3

On va aussi encadrer les deux membres de lquation en dfinissant le style membre quon
ajoutera ensuite comme option des nuds (g) et (d).
\tikzstyle{membre}= [rectangle,draw,thick,dotted]
\node[membre] (g) at (-1.25,4.5) {$2x+3$};
\node[membre] (d) at (1,4.5) {$7$};

7.4. GRAPHE DE PREUVE

111
=

2x + 3

2x

2x + 3
On peut maintenant complter le diagramme :

S = {2}
Plusieurs ajustements des coordonnes des dirents nuds ont t ncessaires pour obtenir
une disposition satisfaisante et des espacements corrects.
\node[membre] (gg) at (-1,2.5) {$2x$};
\node [below=-5pt] at (0,2.5) {$=$};
\node[membre] (dd) at (1,2.5) {$4$};
\node[membre] (ggg) at (-1,0.5) {$x$};
\node [below=-5pt] (egal) at (0,0.5) {$=$};
\node[membre] (ddd) at (1,0.5) {$2$};
\node[membre] (reponse) at (0,-1) {$S=\{2\}$};
On remarque que lon a nomm (egal) le nud contenant le signe gal de lavant dernire
quation et (reponse) le nud contenant la dernire quation. En eet, on lintention de les relier
par une flche.

7.4.3

Placement et tiquetage des flches : ->, midway

On va donc maintenant placer des flches qui indiquent, laide dtiquettes, les oprations
eectuer sur chaque mempbre de lquation. Par exemple :
\draw[->] (g)--(gg) node[midway]{$-3$};
\draw[->] (d)--(dd) node[midway]{$-3$};
2x + 3

3
2x

On a utilis loption [->] de la commande \draw pour obtenir une flche, et loption [midway]
de node pour placer ltiquette mi-chemin de lorigine et de lextrmit.
La dfinition pour les flches et les tiquettes des styles respectifs operation et etiquette
permettent damliorer la pointe des flches et de dessiner des tiquettes sur fond gris clair :
\tikzstyle{operation}=[->,>=latex]
\tikzstyle{etiquette}=[midway,fill=black!20]
\draw[operation] (g)--(gg) node[etiquette]{$-3$};
\draw[operation] (d)--(dd) node[etiquette]{$-3$};

112

CHAPITRE 7. GRAPHES: EXEMPLES


2x + 3

3
2x

7.4.4

Flches courbes : bend, to


2x + 3

3
2x

/2

/2
x

S = {2}
\begin{tikzpicture}
\tikzstyle{membre}= [rectangle,draw,thick,dotted]
\tikzstyle{operation}=[->,>=latex]
\tikzstyle{etiquette}=[midway,fill=black!20]
\node[membre] (g) at (-1.25,4.5) {$2x+3$};
\node[below=-5pt] at (0,4.5) {$=$};
\node[membre] (d) at (1,4.5) {$7$};
\node[membre] (gg) at (-1,2.5) {$2x$};
\node [below=-5pt] at (0,2.5) {$=$};
\node[membre] (dd) at (1,2.5) {$4$};
\node[membre] (ggg) at (-1,0.5) {$x$};
\node [below=-5pt] (egal) at (0,0.5) {$=$};
\node[membre] (ddd) at (1,0.5) {$2$};
\node[membre] (reponse) at (0,-1) {$S=\{2\}$};
%flches
\draw[operation] (g)--(gg) node[etiquette]{$-3$};
\draw[operation] (d)--(dd) node[etiquette] {$-3$};
\draw[operation] (gg)--(ggg) node[etiquette]{$/2$};
\draw[operation] (dd)--(ddd) node[etiquette] {$/2$};
\draw[operation] (egal)--(reponse);
\end{tikzpicture}
Mais on peut faire mieux pour que la figure remplace la solution rdige.
On va dabord viter dintercaler les tiquettes 3 ou /2 entre les quations et les placer,
de chaque ct des quations, comme des commentaires on soustrait 3 ou on divise par 2 :
On change la flche de droite en flche courbe en remplaant par to et en prcisant, en option,
langle de sortie du nud, pour lorigine de la flche, et langle dentre dans le nud suivant, pour
lextrmit.
On dcale ensuite les tiquettes, en ajoutant les options left ou right aux nuds correspondants.

7.4. GRAPHE DE PREUVE

113

\draw[operation] (g) to[out=180,in=180]


node[etiquette,left]{on soustrait $3$} (gg);
\draw[operation] (d) to[out=0,in=0]
node[etiquette,right]{on soustrait $3$} (dd);
\draw[operation] (gg) to[out=180,in=180]
node[etiquette,left]{on divise par $2$}; (ggg)
\draw[operation] (dd) to[out=0,in=0]
node[etiquette,right]{on divise par $2$} (ddd);

2x + 3

on soustrait 3

on soustrait 3
2x

on divise par 2

on divise par 2
x

La position des flches nest pas encore tout fait satisfaisante. On va lgrement modifier les
angles dentre et de sortie et prciser les points dentre et de sortie des flches sur les nuds.
De plus, on peut remonter lgrement la ligne de la troisime quation.

\draw[operation] (g) to[out=200,in=135]


node[etiquette,left]{on soustrait $3$} (gg.north west);
\draw[operation] (d) to[out=0,in=45]
node[etiquette,right]{on soustrait $3$} (dd.north east);
\draw[operation] (gg.south west) to[out=-135,in=180]
node[etiquette,left]{on divise par $2$} (ggg);
\draw[operation] (dd.south east) to[out=-45,in=0]
node[etiquette,right] {on divise par $2$}; (ddd)

2x + 3

7
on soustrait 3

on soustrait 3
2x

4
on divise par 2

on divise par 2
x

7.4.5

Exercice damlioration

titre dexercice, on laissera le lecteur poursuivre lamlioration de la figure pour obtenir, par
exemple, la prsentation suivante :

114

CHAPITRE 7. GRAPHES : EXEMPLES


=

2x + 3

on soustrait 3

on soustrait 3
2x + 3

on simplifie
2x
on divise par 2

on divise par 2
2x
2

4
2

on simplifie
x=2
Solution :
S = {2}

7.5

Rsum

On a vu ici des exemples de graphes complexes et le moyen de les raliser en utilisant les
commandes \node et \draw et leurs direntes options.
On a montr la ncessit de structurer le dessin en plaant dabord les nuds, puis les arcs
partir dun modle fait la main sur papier au pralable.
Mais on a aussi pris conscience quun diagramme se prpare dabord soigneusement avec un
papier et un crayon. Il faut ensuite le modifier par amliorations successives, laide de corrections
du plus en plus fines.

Chapitre 8

Des figures aux illustrations


8.1

Les anneaux olympiques

Dans cet exemple, la figure est dcorative, mais sa construction exige une grande prcision
mathmatique.

Description des anneaux olympiques

Les cinq anneaux olympiques sont centrs aux points A, B, C, D, et E. Leur rayon et leur
position sont prciss sur le diagramme suivant :

A+

5
2,
3,2

3,2

C
+

3,2

3,2

3,2

3,2

+
B

+
D

De plus, ils sont en couleur et entrelacs ainsi :

115

+E

116

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS


Centre
A
B
C
D
E

8.1.1

Pays
Europe
Asie
Afrique
Ocanie
Amrique

Couleur
Bleu
Jaune
Noir
Vert
Rouge

Un anneau : circle, fill, even odd rule

On trace dabord deux cercles concentriques :


\draw (0,0) circle(2.5) circle(3);
Puis on met une couleur lintrieur avec loption : fill=lightgray

Hlas, ce nest pas ce que lon dsire. On a dj vu prcdemment que la dfinition de lintrieur
dune rgion nest pas simple (voir le manuel : interior rules). Dans le cas prsent, loption
appliquer est : even odd rule
On peut viter de tracer les frontires de lanneau en remplaant \draw par :
\fill[lightgray,even odd rule] (0,0) circle(2.5) circle(3);

8.1.2

Entrelacer les anneaux : \coordinate, fill et arc

On va maintenant dfinir et nommer les coordonnes des centres des cercles et tracer les anneaux :
\coordinate (A) at (-6.4,0);
\coordinate (B) at (-3.2,-3.2);
\coordinate (C) at (0,0);
\coordinate (D) at (3.2,-3.2);
\coordinate (E) at (6.4,0);
\fill[blue,even odd rule]
(A)
\fill[yellow,even odd rule] (B)
\fill[black,even odd rule] (C)
\fill[green,even odd rule] (D)
\fill[red,even odd rule]
(E)

circle(2.5)
circle(2.5)
circle(2.5)
circle(2.5)
circle(2.5)

circle(3);
circle(3);
circle(3);
circle(3);
circle(3);

8.1. LES ANNEAUX OLYMPIQUES

117

On reconnat bien les anneaux olympiques. Hlas, ils ne sont pas entrelacs, mais placs les uns
sur les autres selon leur ordre de cration.
Sur la figure qui suit, on a dessin des secteurs angulaires de 30 qui reprent la zone o lanneau
bleu devrait tre au dessus de lanneau jaune et la zone o lanneau jaune devrait tre au dessus
de lanneau noir.
Donc, une fois les anneaux superposs normalement, il sut de dessiner nouveau, par dessus,
les arcs danneaux correspondants aux zones concernes. Cest--dire les rgions colories en gris :

Par exemple, pour entrelacer les deux anneaux bleu et jaune, on va faire passer un arc danneau
bleu sur le jaune avec la commande :

\fill[blue] (A) ++(0:3)


arc(0:-30:3)
-- ++(-30:-0.5)
arc(-30:0:2.5)
-- cycle;

118

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

1
(A)

arc(-30:0:2.5)

5
0

++(0:3)
2

30

--++(-30:-0.5)

3
arc(0:-30:3)

Suivons pas pas la frontire de la rgion colorie :


1. (A)

origine

2. ++(0:3)

avance, au dpart, sans tracer de 3 dans la direction 0

3. arc(0:-30:3)

trace un arc de rayon 3 de 0

4. --++(-30:-0.5)

trace vers le centre un trait de 0,5 direction

5. arc(-30:0:2.5)

trace un arc de rayon 2,5 de

6. --cycle

retour au point de dpart 2.

30
30

30 0

On procde de la mme faon pour le recouvrement de la partie jaune en remplaant lorigine


(A) par le point (B) et les angles de 0 30 par lintervalle des angles de 90 60 = 90 30.
En rsum : on trace dabord tous les anneaux, puis ensuite, on retrace la partie des anneaux
entrelacs qui doit tre au dessus.

8.1.3

La figure complte : \newcommand

On remarque que le dessin dun anneau est dtermin par son centre et sa couleur. La partie
de recouvrement est dtermine par son centre, sa couleur et son angle de dpart. Il semble donc
naturel den faire des commandes :
\newcommand{\anneau}[2]%
{\fill[#2,even odd rule] (#1) circle (2.5) circle (3);}
#1 est le centre
#2 est la couleur

8.1. LES ANNEAUX OLYMPIQUES

119

\newcommand{\recouvrement}[3]%
{\fill[#3]
(#1) ++(#2:3)
arc (#2:{#2-30}:3)
-- ++({#2-30}:-0.5)
arc ({#2-30}:#2:2.5) -- cycle;}
#1 est le centre
#2 est la couleur
#3 est langle de dpart du recouvrement
On note lutilisation des calculs dans la dfinition de cette commande. Pour que cet exemple
fonctionne correctement, il ne faut pas oublier dinclure dans le prambule \usetikzlibrary{calc},
aprs avoir charg le package Tik Z (uniquement avec PGF version 2).
On trace alors les anneaux olympiques avec :
\anneau{A}{blue}
\anneau{C}{black}
\anneau{D}{green}
\anneau{B}{yellow}
\anneau{E}{red}
\recouvrement{A}{0}{blue}
\recouvrement{B}{90}{yellow}
\recouvrement{C}{0}{black}
\recouvrement{D}{90}{green}

120

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

8.2

Diagrammes de Venn

Dans cet exemple, les diagrammes illustrent un sujet mathmatique, mais la construction de
ces diagrammes ne demande pas de prcision particulire.
Les diagrammes de Venn permettent de faire des schmas densembles. On se limitera deux
ensembles dun mme rfrentiel.
On choisit de reprsenter le rfrentiel E par un rectangle et les ensembles A et B par des
cercles concourants dans ce rectangle, mais on pourrait aussi choisir de reprsenter ces ensembles
par dautres formes quelconques.
On va construire les diagrammes classiques qui reprsentent : A, B, A [ B, A \ B, A \ B, B \ A,
A B et leurs complmentaires dans le rfrentiel E.
On proposera deux mthodes direntes pour raliser ces diagrammes.

8.2.1

Ensembles E, A, B : rectangle, circle, \newcommand

partir de lorigine O point dintersection bas des deux cercles, on placera les centres A et
B 2 cm de O, respectivement 135 et 45, comme on le voit sur la figure :
\begin{tikzpicture}
\draw (-4,-1) rectangle (4,4);
% E
\draw (0,0) ++(135:2) circle (2); % A
\draw (0,0) ++(45:2) circle (2); % B
\end{tikzpicture}

(4, 4)

++(135:2) B

135

A ++(45:2)

45
O

( 4, 1)

Pour viter davoir rcrire chaque fois les coordonnes des dirents dessins, on propose de
les dfinir comme des commandes LATEX quil sera facile dutiliser ensuite dans les commandes
Tik Z. On gagne ainsi du temps la rdaction, mais surtout, on rend le code plus comprhensible.
On va dfinir les commandes LATEX \E, \A et \B pour reprsenter respectivement les ensembles
E, A et B :
\newcommand{\E}{(-4,-1) rectangle (4,4)}
\newcommand{\A}{(0,0) ++(135:2) circle (2)}
\newcommand{\B}{(0,0) ++(45:2) circle (2)}
Chaque fois que, par exemple, la commande \E sera rencontre dans le code Tik Z, elle sera
remplace par le texte (-4,-1) rectangle (4,4)

Ainsi, le code \tikz\draw\E\A\B; produit :

Pour linstant, seuls les contours ont t tracs. Il est possible de les colorier en remplaant la
commande \draw par la commande \fill.

8.2. DIAGRAMMES DE VENN

8.2.2

121

Coloriage : \fill, color, opacity

crire : \fill[cyan] \E; \fill[red] \A; \fill[blue] \B; donne :

E
Les couleurs sont un peu violentes ! Mais surtout, lensemble B qui a t dessin en dernier,
cache une partie de lensemble A.
Pour claircir la couleur de E, on va remplacer \fill[cyan] \E; par
\fill[cyan!50] \E; Hlas, cela provoque une erreur de compilation avec le message :
! Missing \encsname inserted.
<to be read again> \penalty
En eet, \fill[cyan] est une abrviation de \fill[color=cyan] qui est permise par la syntaxe
de Tik Z, car cyan est reconnu sans ambigut comme une couleur par la commande \fill.
Par contre cyan!50 provoque une erreur. Dans ce cas, il est obligatoire dcrire
\fill[color=cyan!50].
On peut viter ce type de problme en crivant systmatiquement color= lorsquon dfinit une
couleur.
Pour viter ensuite le recouvrement de lensemble A par lensemble B, on peut dfinir un
coloriage transparent laide de loption opacity.

\fill[color=cyan!50] \E;
\fill[opacity=0.5,red] \A;
\fill[opacity=0.5,blue] \B;
A

8.2.3

Mthode par superposition de couleurs

Dans cette premire mthode, le coloriage des rgions sera eectu en plusieurs couches. Certaines zones du dessin seront colories plusieurs fois.
Eacer une zone peut tre considr comme la colorier en blanc (la couleur du fond).
A, B et A [ B : \draw et \fill
Le disque de A est simplement colori dans le rectangle de E :
\draw[cyan] \E; \fill[cyan] \A;
Le complmentaire A est obtenu en coloriant le rectangle de E puis en eaant le disque de A,
cest--dire en le coloriant en blanc :
\fill[cyan] \E; \fill[white] \A;

122

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

De mme pour les ensembles B et B :

Pour lensemble A [ B, on va superposer les disques reprsantant A et B, et pour lensemble


A [ B, on fera de mme en coloriant en blanc :
\fill[cyan] \E; \fill[white] \A; \fill[white] \B;

A[B
A[B
A \ B, A \ B, B \ A et A B : \clip et scope
Pour lensemble A \ B, il faut colorier uniquement la partie du cercle de A qui est aussi dans
le cercle de B.
Pour cela, on va utiliser la commande \clip qui dfinit une rgion de dcoupage dans laquelle
les commandes suivantes seront eectues. On placera le code dans un environnement scope pour
limiter la porte du dcoupage :
\draw[cyan] \E;
\begin{scope}
\clip \B;
\fill[cyan] \A;
\end{scope}

\fill[cyan] \E;
\begin{scope}
\clip \B;
\fill[white] \A;
\end{scope}

A\B
A\B

8.2. DIAGRAMMES DE VENN

123

Lensemble A \ B et son complmentaire A \ B peuvent se dessiner par simple coloriageeacement :


\fill[cyan] \E;
\draw[cyan] \E;
\fill[white] \A;
\fill[cyan] \A;
\fill[cyan] \B;
\fill[white] \B;

A\B

A\B

De mme pour les ensembles B \ A et B \ A :

B\A

Enfin : A B = (A [ B) \ (A \ B)
runion et lintersection :
\draw[cyan] \E;
\fill[cyan] \A;
\fill[cyan] \B;
\begin{scope}
\clip \B;
\fill[white] \A;
\end{scope}

B\A

et on a dj vu prcdemment comment reprsenter la


\fill[cyan] \E;
\fill[white] \A;
\fill[white] \B;
\begin{scope}
\clip \B;
\fill[cyan] \A;
\end{scope}

A B
A B

8.2.4

Mthode par coloriage entre les frontires

Dans cette seconde mthode, on va dabord dfinir les frontires qui entourent les dirents
ensembles, puis colorier lintrieur des rgions dfinies par ces frontires.
Comme on la dj dit prcdemment, le mode par dfaut de coloriage des rgions est loption
nonzero rule quil est inutile de spcifier, lautre mode quil est possible dfinir est even odd
rule.
La dfinition de ces modes est complique (voir le manuel : interior rules). En particulier, le
mode par dfaut tient compte du sens de parcours de la frontire pour dterminer la rgion
colorier. Or, quand on trace un rectangle ou un cercle, le sens du trac est inconnu. Dans ce cas,
le coloriage donne trs souvent des rsultats inattendus et diciles interprter.

124

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

Conseil : Ds quune rgion est complique (en plusieurs morceaux ou avec des trous), il est
trs fortement conseill dutiliser even odd rule comme option de coloriage. Il faut donc, dans ce
cas, le spcifier explicitement dans chaque commande \fill.
Dans le mode even odd rule, le coloriage se fait de faon assez naturelle, lextrieur est blanc,
lintrieur est colori. Il sut donc de savoir ce quon appelle intrieur et extrieur :
lespace situ autour de la figure totale est lextrieur
chaque fois quon franchit une frontire :
si on est lextrieur on passe lintrieur
si on est lintrieur on passe lextrieur
Attention : Dans toute cette section even odd rule est explicitement spcifi dans chaque
commande \fill.
Dfinition des frontires : rectangle, circle et arc
Les frontires de E, A et B ont t dfinies prcdemment avec les commandes \E, \A et \B.

Le code

\tikz\draw\E\A\B;

produit :

Nous allons dfinir, de mme pour A [ B, A \ B, A \ B et B \ A, les commandes respectives


\AuB, \AnB, \AmB et \BmA.
Pour : A [ B : \draw (0,0) arc(-135:135:2) arc(45:315:2);
Et donc la commande :
\newcommand{\AuB}{(0,0) arc(-135:135:2) arc(45:315:2)}

135
45

135

315
O

Pour : A \ B : \draw (0,0) arc (-45:45:2) arc (135:225:2);


Et donc la commande :
\newcommand{\AnB}{(0,0) arc (-45:45:2) arc (135:225:2)}

135
45
45
O

225

8.2. DIAGRAMMES DE VENN

125

Pour : A \ B : \draw (0,0) arc (225:135:2) arc (45:315:2);


Et donc la commande :
\newcommand{\AmB}{(0,0) arc (225:135:2) arc (45:315:2)}

135
225

45

315
O

Et de mme pour B \ A la commande :


\newcommand{\BmA}{(0,0) arc(-135:135:2) arc(45:-45:2)}
Coloriage des rgions : \fill, even odd rule
Maintenant que les frontires sont dfinies, le coloriage ne pose plus de problme et on va
obtenir les mmes rsultats que prcdemment avec :
\draw[cyan] \E;
\fill[cyan] \AuB;

% ou respectivement \AnB \AmB \BmA

Et les complmentaires avec :


\draw[cyan,even odd rule] \E \AuB;

% resp. \AnB \AmB \BmA

Pour lensemble A B , on na pas dfini de frontire particulire. Cest en eet inutile, car
loption even odd rule permet un coloriage correct en utilisant pour frontire de A B la runion
de celle de A et de B ainsi :
\draw[cyan] \E;
\fill[cyan,even odd rule]
\A \B;

\fill[cyan,even odd rule]


\E \A \B;

126

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

8.3

Personnages et dcors

Dans cet exemple, on a choisi dillustrer un problme de mathmatiques rcratives. Les choix
esthtiques sont ceux de lauteur, mais on laisse le lecteur libre de refaire la figure selon sa propre
inspiration.

Cur bris
Vous venez de plaquer lex-amour de votre vie !

Vous labandonnez sur la jete, altitude de ses yeux humides : 4 m et vous ramez irrsistiblement
vers le large, altitude de vos yeux impitoyables : 1 m.
quelle distance du rivage chapperez-vous
son regard dchirant, en disparaissant lhorizon ?

Solution
h

R est le rayon de la terre ;


h la hauteur des yeux au dessus du sol ;
d la distance entre lil et lhorizon ;
c la distance au sol (arc de cercle).

d
R

R
donc c = R et d = R tan()
R+h
On peut prendre R 6365 km, h1 = 0, 001 km, h2 = 0, 004 km.
On a

cos() =

Comme est trs petit, on a c1 d1 3, 568 km et c2 d2 7, 136 km


Donc le cur est dfinitivement bris environ 15 km

8.3.1

Locan : \shade, arc, top color, bottom color

On va dessiner un arc avec un grand rayon :


\draw (0,0) arc (105:75:25) -- cycle;
105

75

(0, 0)
On peut alors remplacer la commande \draw, la commande \shade pour colorier locan et dfinir les couleurs des dgrads, par exemple les options : top color=blue et bottom color=lightgray

8.3. PERSONNAGES ET DCORS

8.3.2

127

Le quai : \fill, rectangle, rotate

Le quai est un rectangle : \fill (0,0)rectangle(1,0.2);


Il sut de le tourner un peu en ajoutant loption [rotate=12] pour le mettre en place gauche
de limage :

8.3.3

Les personnages : \fill, ellipse, circle

Les personnages sont de petites silhouettes constitues dune ellipse et dun cercle dessins avec
la commande \fill, et dont les dimensions ont t rendues satisfaisantes avec quelques essais :
\fill (0,0)ellipse(0.12 and 0.25) (0,0.35)circle(0.1);
Quelques essais sont encore ncessaires pour placer le personnage sur le quai laide des options
[rotate=12,shift={(0.8,0.3)}] :

Le second personnage rame dans une barque que nous allons dabord dessiner avant de ly
placer.
\fill (0,0)--(1,0)--(1.1,0.2)--(-0.1,0.1)--cycle;% barque
\draw[line width=2pt] (-0.2,0.4)--(0.5,0.2)--(1.2,0.4);% rames

On ajoute le personnage en linclinant lgrement pour produire un eet plus dynamique :


\fill[shift={(0.5,0.25)},rotate=-10] % personnage
(0,0)ellipse(0.12 and 0.25) (0,0.35)circle(0.1);

Il ny a plus qu le placer la barque au large en insrant les instructions prcdentes dans un


environnement scope avec les options appropries :
\begin{scope} [shift={(11,0.4)},rotate=-10]
% ...
\end{scope}

Il faut bien insister sur le fait que pour arriver placer correctement les dirents lments du
dessin, de nombreux essais ont t ncessaires.

8.3.4

Le cur : \draw, .. controls and ..

Pour dessiner une figure quelconque, on peut utiliser des courbes de Bzier. Une courbe de
Bzier est dfinie laide de quatre points de contrle :
A, le point de dpart de la courbe ;
S, le point tel que AS est la tangente la courbe en A ;
T , le point tel que BT est la tangente la courbe en B ;
B, le point darrive de la courbe.

128

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

\draw (A) .. controls (S) and (T) .. (B);


S
T

Une fois les points A et B placs, on peut modifier la courbure en jouant de faon assez intuitive
avec les points S ou T . On montre ici deux dplacements du point T et leet produit sur la courbe :
S

S
T

On peut considrer que plus AS ou BT sont longs, plus la courbe colle la tangente. On
constate donc que les dplacements des points de contrle S est T ont un eet global sur la forme
de la courbe, mais sans en dplacer les extrmits A et B.
!
!
Une autre syntaxe permet de dfinir les vecteurs tangents !
u = AS et !
v = BT en coordonnes
relatives par rapport A et B respectivement :
\draw (A) .. controls +(u) and +(v) .. (B);

On peut maintenant construire des formes complexes constitues darcs de Bzier raccords
bout bout. Si, de plus, on aligne les vecteurs tangents aux extrmits communes, on obtient
facilement des courbes lisses.
Par exemple, on peut commencer dessiner un cur ainsi :
\draw (0,0) ..controls +(0,2) and +(0,2).. (3,0); % arc 1
\draw (3,0) ..controls +(0,-2) and +(0,2).. (0,-4); % arc 2
+(0, 2)

+(0, 2)
1

(3, 0)

(0, 0)

+(0, 2)
2

(0, 4)

+(0, 2)

8.3. PERSONNAGES ET DCORS

129

En ajoutant deux arcs supplmentaires, on complte le cur avec une symtrie par rapport
laxe vertical : \draw[fill=red] (0,0) ... cycle;
4

( 3, 0)

(3, 0)

(0, 0)

(0, 4)

8.3.5

Curs multicolores : \shift, rotate, ball color

Les options de la commande \draw peuvent tre modifies pour changer laspect du cur,
comme par exemple :
\draw [scale=0.25,rotate=45,ball color=blue]
(0,0) .. controls +(0,2) and +(0,3) .. (3,0)
.. controls +(0,-2) and +(0,2) .. (0,-4)
.. controls +(0,2) and +(0,-2) .. (-3,0)
.. controls +(0,2) and +(0,2) .. (0,0);
On va donc crer une commande ayant pour paramtres les options de la commande \draw et
faire appel cette commande plusieurs fois, pour dessiner les curs des endroits dirents avec
des orientations direntes :
% Commande \coeur
\newcommand{\coeur}[1][fill=red] % rouge par dfaut
{\draw [#1] (0,0)
.. controls +(0,2) and +(0,2) .. (3,0)
.. controls +(0,-2) and +(0,2) .. (0,-4)
.. controls +(0,2) and +(0,-2) .. (-3,0)
.. controls +(0,2) and +(0,2) .. (0,0);}
% Dessin
\coeur[shift={(1.3,2)},ball color=red,scale=0.35]
\coeur[shift={(0.3,1.8)},ball color=orange,scale=0.2,rotate=35]
\coeur[shift={(2.2,1.6)},ball color=magenta,scale=0.2,rotate=-20]
\coeur[shift={(1.8,2.5)},ball color=green,scale=0.25,rotate=-25]
\coeur[shift={(2.7,2.1)},ball color=yellow,scale=0.15,rotate=10]

(0, 0)

130

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

8.3.6

La figure complte : scope, shift, rotate

On regroupe enfin tous les lments pour obtenir lillustration de lnonc du problme :

8.3.7

La solution : scope, shift, rotate

La figure propose dans la solution est une figure gomtrique classique quil sera facile de
raliser titre dexercice.
Pour simplifier les calculs dangles et de coordonnes, dessinons un demi-triangle quilatral :
45
h
R

(0, 0)

= 30 R

5
(5, p )
3
d

(5, 0)

15
\begin{tikzpicture}
% angle alpha
\draw[->,red,>=stealth] (1.5,0) arc (0:30:1.5);
\draw[red] (15:1.5) node[right]{$\alpha$};
% angle droit
\draw (4.5,0)|-(5,0.5);
% triangle
\draw[thick] (0,0)-- node[pos=0.6,above]{$R$} (5,0)
-- node[midway,right]{$d$} (5,{5/sqrt(3)})
-- node[pos=0.1,above]{$h$}
node[pos=0.5,above left]{$R$}(0,0);
% arcs
\draw[blue,thick,dashed] (0:5) arc (0:-15: 5);
\draw[blue,thick] (0:5) arc (0:30: 5);
\draw[blue,thick,dashed] (30:5) arc (30:45: 5);
\end{tikzpicture}

8.4

Rsum

On a vu dans ce chapitre comment dessiner des figures complexes en composant des lignes
lmentaires comme rectangle, circle, arc ou en utilisant des courbes de Bzier. Les courbes
dessines peuvent tre les frontires de rgions quil est possible de colorier avec fill.
Ainsi Tik Z permet non seulement de construire des figures purement gomtriques de grande
prcision, mais il peut aussi permettre de raliser certains travaux dillustration.

Chapitre 9

Complments techniques
9.1

Transformations avec scope

On va tudier ici leet des options de transformation xshift, yshift, shift, scale et rotate,
sur une mme figure, que lon dsire dessiner plusieurs fois sur un diagramme unique, des positions
direntes.
Pour cela, on placera cette figure dans sa position dorigine, en crivant son code dans un
environnement tikzpicture, et en insrant une copie de ce code dans un environnement scope,
contrl par des options de transformation.
Les exemples suivants seront donc tous rdigs sur ce modle :
\begin{tikzpicture}
% code de la Figure
\begin{scope} [<options de transformation>]
% code de la Figure
\end{scope}
\end{tikzpicture}
Voici la petite figure qui va nous servir visualiser les transformations. Elle est inscrite dans
un rectangle de 1,5 cm sur 2 cm de cts :
(1.5, 2)
(0, 1)
(0, 0)

(1, 0)

\begin{tikzpicture}
% code de la Figure
\draw [<->,>=stealth] (1,0) -- (0,0) -- (0,1);
\draw[thick] (1.5,0) -- (0,2) -- (1.5,2) -- cycle;
\end{tikzpicture}
Les transformations dont il est question ici sont appliques au repre dans lequel sont excutes
les commandes Tik Z qui construisent la figure. La figure semble donc subir les mmes transformations, mais il sagit en ralit de changement du repre dans lequel est dessine la figure. Il faut
donc faire attention lordre dans lequel sont eectues ces transformations.

9.1.1

Translations : xshift, yshift ou shift

Pour viter de superposer les deux dessins, on va dabord eectuer une translation en utilisant
une des options xshift, yshift ou shift :
131

132

CHAPITRE 9. COMPLMENTS TECHNIQUES

(0, 0)

[yshift=35mm]

[xshift=6cm]

]
)}
mm
5
3
m,
6c
(
{
t=
if
h
[s

(0, 0)

(0, 0)

On remarquera que dans le cas de loption shift=, les coordonnes du vecteur de translation
doivent tre insres entre des accolades. Ceci est ncessaire, car la virgule qui spare les coordonnes ne doit pas tre interprte comme un sparateur doptions.
On va maintenant montrer comment faire tourner ou dilater la figure. Dans tous les cas suivants,
on utilisera au pralable loption xshift=6cm pour viter la superposition des deux figures.

9.1.2

Combinaison de translation et rotation : [xshift=6cm,rotate=45]]

Loption rotate= attend pour paramtre langle de la rotation en degrs :

(0, 0)

rotate=45
xshift=6cm

Attention : On conseille vivement de toujours crire en premier loption de translation


(xshift, yshift ou shift), mais ce nest pas obligatoire.
En eet le centre de la rotation est lorigine actuelle, cest--dire lorigine de la figure aprs
quelle ait subi le xshift=6cm dans lexemple prcdent.
Mais si on eectue la rotation en premier, le centre est lorigine (0, 0) de dpart. Dans ce cas la
translation suivante est alors eectue dans un repre ayant dj subi la rotation.
Voici ce que donne : \begin{scope}[xshift=6cm,rotate=30]

(0, 0)

rotate=30
xshift=6cm

9.1. TRANSFORMATIONS AVEC SCOPE

133

Si on le compare : \begin{scope}[rotate=30,xshift=6cm]

cm
=6
t
f
hi
xs
rotate=30
(0, 0)
on constate que lordre des options est important et le rsultat est plus dicile interprter dans
le second cas.
Il est donc plus facile de toujours faire la translation en premier. Le rsultat final est alors plus
facile comprendre.

9.1.3

Translation et changement dchelle : [xshift=6cm,scale=0.5]

Le changement dchelle est une homothtie, applique au repre dans lequel sont excutes
les commandes de construction de la figure, ce qui provoque eectivement une modification de la
taille de la figure.
Loption scale= attend pour paramtre le rapport dhomothtie :
scale=0.5

(0, 0)

xshift=6cm

Attention : On conseille, comme dans le cas prcdent, de toujours crire en premier une
option de translation (xshift, yshift ou shift) bien que ce ne soit pas obligatoire.
En eet le centre de lhomothtie est lorigine actuelle, cest--dire lorigine du repre dans
lequel est trace la figure aprs quelle ait subi le xshift=6cm dans lexemple prcdent.
Si on on eectue lhomothtie en premier, le centre est lorigine (0, 0) de dpart. Dans ce cas
la translation suivante est alors eectu dans un repre ayant dj subi lhomothtie et dont les
units ont t multiplies par le rapport dhomothtie.
Voici ce que donne : \begin{scope}[xshift=5cm,scale=1.5]

scale=1.5

(0, 0)

xshift=5cm

Si on le compare : \begin{scope}[scale=1.5,xshift=5cm]

134

CHAPITRE 9. COMPLMENTS TECHNIQUES

(0, 0)

xshift=5cm 1.5 =7.5cm

on constate, comme prcdemment avec la rotation, que lordre des options est important et le
rsultat est toujours surprenant dans le second cas.
On a vu, sur les exemples, que le coecient de loption scale (rapport dhomothtie), peut
tre infrieur 1, pour rtrcir, ou suprieur 1, pour dilater la figure. Il peut aussi tre ngatif.
On peut evidemment composer les trois transformations, translation en premier, homothtie et
rotation ensuite dans un ordre quelconque.
Par exemple : \begin{scope}[xshift=6cm,rotate=60,scale=2.25]

scale=2.25

rotate=60
(0, 0)

xshift=6cm

Les options [xshift=6cm,scale=2.25,rotate=60], crites dans cet ordre, donnent la mme


figure.
Attention : Toutes ces options de transformation sappliquent au repre dans lequel sera trace
la figure dfinie dans lenvironnement scope, cest--dire que les transformations ont un eet sur
lensemble des chemins (path) dessins (draw). Par contre, ces transformations nont aucun eet
sur lpaisseur des traits, sur la taille ou linclinaison des textes contenus dans les nuds (node)
qui annotent ventuellement la figure.

9.1.4

paisseur des traits : \draw et line width

Attention : En premire lecture, vous pouvez ignorer ce paragraphe assez technique. Par
contre si vous avez lintention de faire des transformations prcises sur des figures dans lesquelles
les traits ont des paisseurs direntes, il sera ncessaire de le lire attentivement.
On va considrer une figure de rfrence qui ressemble la prcdente, mais avec des traits
dpaisseurs direntes :
\draw [<->,>=stealth] (1,0) -- (0,0) -- (0,1);
\draw[very thick] (0,2) -- (1.5,2) -- (1.5,0);
\draw[line width=3mm,color=blue!50] (0,2) -- (1.5,0);
Elle est situe gauche et a t reproduite deux fois avec des options scale direntes pour
chaque environnement scope :

[l
in
e

wi
dt
h=
[v
3m
er
m]
y
th
ic
k]

9.1. TRANSFORMATIONS AVEC SCOPE

135

[scale=2.5]

[scale=0.5]

On constate que la forme de la figure a t transforme lexception de lpaisseur des traits


qui est reste constante. Lhomothtie porte sur les chemins (path) dessins par \draw mais pas
sur leur paisseur dfinie par des options de la commande \draw.
Lpaisseur du trait peut tre dfinie avec loption line width= suivie dune dimension, ou
avec une des options suivantes : ultra thin (0.1pt), very thin (0.2pt), thin (qui est line
width=0.4pt paisseur par dfaut si aucune option nest spcifie), semithick (0.6pt), thick
(0.8pt), very thick (1.2pt) et ultra thick (1.6pt)
Si on veut obtenir des figures semblables, il faut modifier le code situ lintrieur de lenvironnement scope pour dfinir lpaisseur de chaque trait en multipliant lpaisseur originale par le
coecient de loption scale.
Dans le cas o lenvironnement scope est contrl par [scale=0.5], toute commande de la
forme : \draw[line width=<d>] ...; o <d> est une dimension, sera remplace par :
\draw[line width={0.5*<d>}] ...;
Par exemple :
\draw ...; par \draw[line width={0.5*0.4pt}] ...;
\draw[very thick] ...; par \draw[line width={0.5*1.6pt}] ...;
\draw[line width=3mm] ...; par \draw[line width={0.5*3mm}] ...;
Ne pas oublier dinsrer les calculs entre accolades.
Maintenant, le changement dchelle est appliqu la figure complte (paisseur des traits
comprise). Voici ce que donnera, aprs correction, notre figure :

[scale=2.5]

[scale=0.5]

Remarque : Pour que cet exemple fonctionne correctement, il ne faut pas oublier dinclure
dans le prambule \usetikzlibrary{calc} aprs avoir charg le package Tik Z (uniquement avec
PGF version 2).

136

CHAPITRE 9. COMPLMENTS TECHNIQUES

9.1.5

Taille et inclinaison de textes : transform shape

Attention : En premire lecture, vous pouvez ignorer ce paragraphe qui est assez technique.
Par contre si vous avez lintention de faire des transformations prcises sur des figures contenant
de nombreuses annotations textuelles, il sera ncessaire de le lire attentivement.
On va considrer une figure de rfrence qui ressemble la prcdente, mais avec des annotations
textuelles varies en taille et en orientation :
\draw [<->,>=stealth] (1,0) -- (0,0) -- (0,1);
\path (1.5,2) node{$\oplus$}
node[left,scale=1.5,rotate=45]{Texte};

no
de
[s Te
ca x
le te
=1
.5
,r
ot
at
e=
45
]

Te
xt
e

et lui faire subir deux transformations :

[scale=2]

node{$\oplus$}

Te
xt
e

[scale=0.5]
30

te
Te
x

Te
x

te

Text
e

On constate que la forme de la figure a t transforme et que les annotations textuelles sont
correctement places, mais elles ont conserv la mme taille et la mme inclinaison. La plupart
du temps, on veut simplement modifier la taille de la figure et cest donc tout fait satisfaisant,
les annotations gardent une taille assortie celle du texte qui accompagne la figure.
Par contre, si on a lintention de montrer une image rduite ou dilate du diagramme avec
des texte proportionnels correctement inclins, il va falloir ajouter la figure loption [transform
shape] qui va faire subir aux nuds les transformations dfinies dans les environnements {scope} :

On remarque quon a bien obtenu des figures de formes semblables, textes compris. Seule
lpaisseur des trais est reste constante.

9.2. AU SUJET DES ARBRES

9.1.6

137

Exercice

e
t
x
e
T

titre dexercice, faites subir un quart de tour et triplez la figure.

Solution
\begin{tikzpicture} [scale=3,rotate=90,transform shape]
\draw[<->,>=stealth,very thick] (1,0)--(0,0)--(0,1);
\path (1.5,2) node{$\oplus$}
node[left,scale=1.5,rotate=45]{Texte};
\end{tikzpicture}

9.2

Au sujet des arbres

En mathmatiques, la structure darbre est un cas important de la thorie des graphes. Tik Z
propose de nombreuses oprations spcifiques pour la construction des arbres.
Nous allons montrer sur un exemple vu prcdemment sous forme dexercice, comment dessiner
dun arbre gnalogique :
% dfinition des styles
\tikzstyle{lien}=[->,>=stealth,rounded corners=5pt,thick]
\tikzset{individu/.style={draw,thick,fill=#1!25},
individu/.default={green}}
% dfinition de larbre
\begin{tikzpicture}
\node[individu] (B) at (0,0) {Bibi};
\node[individu=blue] (P) at (-3,2) {Papa};
\node[individu=red] (M) at (3,2) {Maman};
\node[individu=blue] (GPP) at (-4.5,4) {Pp};
\node[individu=red] (GMP) at (-1.5,4) {Mm};
\node[individu=blue] (GPM) at (1.5,4) {Papy};
\node[individu=red] (GMM) at (4.5,4) {Mamie};
\draw[lien] (B) |- (-1,1) -| (P);
\draw[lien] (B) |- (1,1) -| (M);
\draw[lien] (P) |- (-4,3) -| (GPP);
\draw[lien] (P) |- (-2,3) -| (GMP);
\draw[lien] (M) |- (2,3) -| (GPM);
\draw[lien] (M) |- (4,3) -| (GMM);
\end{tikzpicture}

138

CHAPITRE 9. COMPLMENTS TECHNIQUES


Pp

Papy

Mm

Papa

Mamie

Maman

Bibi
On va dabord rappeler le vocabulaire usuel concernant les arbres.
Ci-dessus, le nud Bibi est la racine de larbre. Ce nud Bibi a deux nuds fils : le
nud Papa et le nud Maman . Les nuds terminaux, ou feuilles de larbre, sont donc les
nuds Pp , Mm , Papy et Mamie .
Remarque : Cet arbre reprsente les anctres de Bibi, donc, du point de vue mathmatique,
Papa et Maman, les parents de Bibi, sont bien les nuds fils du nud Bibi , au sens de la
structure darbre, de mme que Papy et Mamie sont mathmatiquement deux nuds frres
du nud parent Maman .

9.2.1

Dfinition : \node node et child

Si on dfinit un nud avec la commande \node, lopration child permet de lui associer des
fils sous la forme suivante :
\node {Racine} child{ node{Fils1}...} child{ node{Fils2}...};
et ceci de faon rcursive.
On peut donc dfinir lexemple prcdent ainsi :
\begin{tikzpicture}
\node [individu] {Bibi}
child { node [individu=blue]{Papa}
child { node [individu=blue]{Pp} }
child { node [individu=red]{Mm} }
}
child { node [individu=red]{Maman}
child { node [individu=blue]{Papy} }
child { node [individu=red]{Mamie} }
};
\end{tikzpicture}
Bibi

Papa

Pp

Maman

Papy
Mm

Mamie

On remarque que les nuds ont t dfinis avec leur place dans larbre, les arcs ont t automatiquement tracs. Par contre la distance entre les frres est par dfaut toujours la mme et au
second niveau, les nuds se superposent.

9.2. AU SUJET DES ARBRES

9.2.2

139

Espacement des frres : sibling distance

Une option de lopration child permet de modifier cette distance entre frres : sibling
distance. Par exemple la racine :
\node [individu]{Bibi} [sibling distance=3cm] ...
Bibi

Papa

Pp

Maman

Papy
Mm

Mamie

On constate hlas que si la distance entre frres a augment, il y a toujours superposition au


second niveau car loption sibling distance propage son eet sur tous les sous-arbres. Il faut
donc redfinir cette option chaque tage en faisant varier la distance selon le niveau, par exemple :
\node [individu] {Bibi} [sibling distance=6cm]
node [individu=blue]{Papa} [sibling distance=3cm]
node [individu=red]{Maman} [sibling distance=3cm]
Bibi

Papa

Pp

Maman

Mm

Papy

Mamie

Construire un arbre est toujours une tche assez dlicate. En pratique, il est toujours ncessaire
de bien rflchir pour fixer correctement la sibling distance, et cela, tous les niveaux.
Heureusement, il existe des noms de style crs automatiquement lors de la construction dun
arbre et que lon peut dfinir globalement, ce qui vite de le faire sur chaque fils chaque niveau.
Le style level sapplique larbre entier. Les styles level 1, level 2, etc. sappliquent respectivement aux fils de niveau 1, 2, etc.
On obtient exactement le mme arbre en supprimant, sur tous les nuds o on les avait mises,
les options sibling distance, condition de dfinir globalement pour la figure les styles level
1 et level 2 :
\begin{tikzpicture}
[level 1/.style={sibling distance=6cm},
level 2/.style={sibling distance=3cm}]
\node [individu] {Bibi}
child{ node [individu=blue]{Papa}
% etc.
}
child{ node [individu=red]{Maman}
% etc.
};
\end{tikzpicture}

140

9.2.3

CHAPITRE 9. COMPLMENTS TECHNIQUES

Forme globale : level distance et grow

On peut aussi prciser la distance entre les niveaux avec loption level distance et modifier
la direction de croissance de larbre avec une des options grow ou grow
grow=down : les fils sont au-dessous du pre, de gauche droite (grow : de droite gauche)
(valeur par dfaut)
grow=up : les fils sont au-dessus du pre, de droite gauche (grow : de gauche droite)
grow=right : les fils sont droite du pre, de bas en haut (grow : de haut en bas)
grow = left : les fils sont gauche du pre, de haut en bas (grow : de bas en haut)
Par exemple : \node{Bibi} [grow=up,level distance=2cm,sibling distance=6cm]

Pp

level 2

sibling distance=3cm
Papy

Mm

level 2

sibling distance=6cm
level 1

Papa

Maman

Bibi

9.2.4

Mamie
level distance=2cm

sibling distance=3cm

tiquetage des arcs : edge from parent

Parfois, il peut tre utile de placer des textes sur les arcs. Lopration edge from parent,
place la fin de la dfinition dun fils (child), si elle est suivie de nuds (node), place les textes
de ces nuds sur larc reliant le fils son parent, comme le montre la figure suivante :
Pp

Papy

Mm

Mamie

# Descendant
Papa

Maman

Anctre "
Bibi
Pour bien comprendre la figure obtenue ci-dessus, lire attentivement le code suivant qui a permis
de placer les textes sur les arcs :
\node [individu] {Bibi}
child{ node [individu=blue]{Papa}
child{ node [individu=blue]{Pp}
edge from parent node{$\downarrow$ Descendant}
}
child{node [individu=red]{Mm}}
edge from parent node[below left]{Anctre $\uparrow$}
}
child{ node [individu=red]{Maman}
child{node [individu=blue]{Papy}}
child{node [individu=red]{Mamie}}
};

9.3. LIAISONS ENTRE FIGURES : OVERLAY

9.2.5

141

Style des arcs : edge from parent path

Pour finir on va montrer comment on peut modifier le trac et le style des arcs reliant les nuds.
Loption edge from parent path permet de dfinir larc comme un chemin quelconque. Pour
faire rfrence aux nuds origine et extrmit du chemin, on peut utiliser les commandes respectives \tikzparentnode et \tikzchildnode, par exemple on peut dfinir comme option de
lenvironement tikzpicture :
[edge from parent path={[->,>=stealth,thick]
(\tikzparentnode) to [out=90,in=-90] (\tikzchildnode)}]
Pp

Papy

Mm

Papa

Mamie

Maman

Bibi
Les nombreuses autres oprations sont disponibles dans Tik Z pour amliorer la reprsentation
des arbres, mais elle sortent du cadre de cet ouvrage.
On conseille donc au lecteur qui voudrait dessiner des arbres complexes de se reporter au manuel
de rfrence.

9.3

Liaisons entre figures : overlay

Parfois on peut avoir envie de montrer du doigt certains points remarquables dune figure.
Pour cela, on veut en gnral crire, en dehors de la figure, dans le texte daccompagnement, des
commentaires relatifs des points particuliers dsigns sur la figure.
Par en dehors de la figure on veut dire, dans la page LATEX, mais en dehors de lenvironnement tikzpicture qui dfinit la figure. On peut aussi dessiner sur la page des liens entre deux
environnements tikzpicture distincts dfinissant deux figures direntes.
Voici, dans le cadre ci-dessous, un exemple contenant du texte LATEX et quatre figures Tik Z
dont deux visibles :
la premire figure est le paralllogramme ;
la seconde est le couple de flches.
Les deux autres figures Tik Z sont invisibles, ce sont des nuds qui reprent simplement les
origines des flches dans le texte LATEX.
Cette figure est un paralllogramme.

Ce point est le milieu des diagonales de ce paralllogramme.


Les extrmits des flches sont des nuds situs dans quatre figures Tik Z direntes et nomms :

142

CHAPITRE 9. COMPLMENTS TECHNIQUES


(figure) , le point situ entre les mots figure et est de la premire ligne de texte ;
(parallelogramme) , le sommet nord-ouest du paralllogramme ;
(centre) , le centre du paralllogramme ;
(point) , le point situ entre les mots point et est de la ligne de texte qui suit la figure.
On veut pouvoir dessiner les flches avec les instructions suivantes :

\draw [->] (figure) to[bend right,thick] (parallelogramme);


\draw [->] (point) to[bend left,thick,dashed] (centre);
Deux questions se posent :
comment peut-on dfinir les nuds (figure) et (point) ?
comment partager des noms de nuds entre direntes figures ?
(en eet, on sait que la porte dun nom est limite la figure dans laquelle il est dfini)

9.3.1

Dfinitions globales des noms : remember picture

Pour dfinir le nud (figure), il faut insrer une figure Tik Z entre le mot figure et le mot
est de la premire ligne de texte, et pour rendre la porte de ce nom globale, il faut ajouter
loption [remember picture].
Cette figure \tikz[remember picture]\coordinate(figure); est un
On procde de mme pour le nud (point) :
Ce point \tikz[remember picture]\coordinate(point); est le milieu
Ces deux figures Tik Z ne dessinent rien sur les lignes de texte. Cest pour cela quon les a
appeles figures invisibles.
La figure elle-mme ne pose pas de problme. On a simplement dfini deux points, le centre
(centre) et le point (parallelogramme) le sommet en haut gauche du paralllogramme, et
pour rendre la porte de ces noms globale il faut aussi ajouter loption [remember picture]
\begin{tikzpicture} [remember picture]
\draw (-3,-2)--(3,2) (-2,1)--(2,-1);
\draw[thick] (-3,-2)--(2,-1)--(3,2)--(-2,1)--cycle;
\node (centre) at (0,0){$\bullet$};
\node (parallelogramme) at (-2,1){};
\end{tikzpicture}

9.3.2

Dessiner dune figure lautre : overlay

Les flches sont ensuite dessines par dessus la figure et le texte dans une nouvelle figure dfinie
avec les deux options [remember picture,overlay]. La premire, remember picture, indique
quil faut utiliser les noms globaux, la seconde, overlay, indique que la figure sera dessine en
surimpression sur la page. Le code suivant peut tre plac nimporte o, condition que ce soit
aprs la dfinition des noms utiliss :
\begin{tikzpicture}[remember picture,overlay]
\draw [->] (figure) to[bend right,thick] (parallelogramme);
\draw [->] (point) to[bend left,thick,dashed] (centre);
\end{tikzpicture}
Attention : La mise en place dune figure avec les options overlay et remember picture
exige au moins deux compilations du texte source.
En gnral, aprs la premire compilation, les parties dfinies avec loption overlay sont mal
places sur la page. Il ne faut pas sen inquiter, le rsultat satisfaisant sera obtenu aprs une autre
compilation.

9.4. RSUM

9.3.3

143

La page courante est un nud : current page

Tik Z fournit un nom de nud spcial current page qui donne accs la page courante sous
la forme dun rectangle qui reprsente la page complte. Cest un rectangle dont chaque sommet
a pour cordonnes un des coins de la page. On peut donc, partir de ce nud, dfinir nimporte
quelle position absolue sur la page courante.
On peut par exemple crire Tik Z au centre de la page avec le code suivant :
\begin{tikzpicture}[remember picture,overlay]
\node [rotate=60,scale=10,text opacity=0.3]
at (current page.center) {Ti\textit{\color{orange}k}Z};
\end{tikzpicture}
Attention : Il est parfois dicile de comprendre quelle est la page courante, car la mise en
page est faite automatiquement par LATEX.
Si le dessin ne se situe pas dans la page prvue, on peut essayer de dplacer le code de la figure
dans le texte source, ou forcer un saut de page laide de la commande \newpage, et compiler
nouveau deux fois.

9.4

Rsum

Tik
Z

On a ajout ici des prcisions sur lutilisation de lenvironnement scope qui permet dinsrer
une sous-figure dans une figure. Leet des options xshift, yshift, shift, scale et rotate sur
lpaisseur des traits et sur les annotations textuelles a t tudi en dtail.
On a prsent, sur un exemple simple, quelques uns des outils de base que Tik Z fournit spcifiquement pour la construction de graphes de type arbre.
On a aussi montr comment il est possible dcrire nimporte o sur une page et crer des liens
entre direntes figures dfinies et le texte du document, laide des options remember picture
et overlay.

Annexe A

La syntaxe de Tik Z
La syntaxe de Tik Z admet de nombreuses constructions spcialises, avec parfois des raccourcis
et des exceptions, et il peut tre dicile de sy retrouver. Pour cela il peut tre bon de classer
les formes syntaxiques en grandes catgories : environnements, commandes, options, oprations de
chemin, coordonnes.
Toutes ces catgories se retrouvent dans lexemple suivant, qui trace un triangle en pointills :
\begin{tikzpicture}
\draw [dashed] (0,0) node[below]{O} -- (1,1) -- (2,0) -- cycle;
\end{tikzpicture}

O
{tikzpicture} est un environnement, \draw est une commande, [dashed] est une option,
(0,0) est un couple de coordonnes, node est une opration de chemin avec une option [below]
et un argument {O}, -- est une opration de chemin avec un argument (1,1) , -- cycle est aussi
une opration de chemin.

A.1

Les environnements : {tikzpicture}, {scope}

Tik Z ne dfinit que deux environnements au sens de LATEX : {tikzpicture} et {scope}. Le


premier est utilis chaque fois quon veut insrer une figure Tik Z dans un document LATEX, le
deuxime peut tre utilis lintrieur du prcdent pour dfinir un contexte ayant ses propres
options graphiques.

A.2

Les commandes

Ce sont des commandes au sens de LATEX, qui se reconnaissent ce quelles commencent par
le caractre \.

Commandes utilisables dans tout le document


Certaines commandes peuvent tre utilises dans le document LATEX en dehors de lenvironnement {tikzpicture}.
Ce sont :
\usetikzlibrary
Pour charger, au dbut, dans le prambule du document, certaines bibliothques Tik Z utiles
comme : arrows, patterns ou calc.
Par exemple : \usetikzlibrary{patterns, arrows}
145

146

ANNEXE A. LA SYNTAXE DE TIKZ


\tikzset
Pour dfinir des options globalement dans tout le document.
Par exemple : \tikzset{rougegris/.style={draw=gray,fill=red}}
Applique un nud, cette option encadrera le nud en gris et coloriera lintrieur en
rouge. Par exemple : node[rougegris]{texte}.
La commande \tikzset peut aussi tre lintrieur dun environnement {tikzpicture}.
Son eet sera alors limit cet environnement.
\tikzstyle
Cest lancienne forme de la commande \tikzset. Elle reste toujours utilisable, sous la
forme \tikzstyle{rougegris}=[draw=gray,fill=red]
\tikz
Cest lquivalent de lenvironnement {tikzpicture} pour les figures dont le code est court
(un paragraphe au plus).
Par exemple : \tikz \draw (0,0) circle (1); pour tracer un cercle centr lorigine et
de rayon 1.
\foreach
Cest une instruction de programmation rendue disponible dans tout le document ds le
chargement de Tik Z. Elle permet dexcuter des instructions de manire rpte (au sens
informatique, cest une boucle).
Par exemple : \foreach \x in {1,2,3} {$x=\x$, } donne :
x = 1, x = 2, x = 3,
La commande peut tre utilise aussi lintrieur dun environnement {tikzpicture}.
Par exemple, pour tracer cinq cercles concentriques :
\tikz \foreach \r in {1,2,...,5} \draw (0,0) circle (\r mm);

Commandes dans lenvironnement {tikzpicture}


Les autres commandes ne peuvent tre utilises que dans un environnement {tikzpicture}.
Les principales sont :
\clip, \coordinate, \draw, \fill, \filldraw, \node, \path

A.3
A.3.1

Les coordonnes
Forme gnrale : (...)

Syntaxiquement, la position dun point est indique par une expression de coordonnes, comme
(x,y) (coordonnes cartsiennes) ou (a:r) (coordonnes polaires) ou (nom) (point nomm), ou
(nom.ancre) (ancre dun noeud, comme (n.north)), ou ++(x,y) (coordonnes relatives la position du crayon).
Il y a dautres formes, mais dune manire gnrale, une expression de coordonnes scrit entre
parenthses.

A.3.2

Calculs sur les nombres : package pgfmath

Depuis la version 2 de Tik Z, il est possible dcrire des calculs portant sur les nombres grce au
package pgfmath, qui est charg automatiquement avec Tik Z. Les formules de calcul disponibles
sont celles quon peut utiliser pour le trac de courbes avec lopration plot.
Dans une expression de coordonnes, on peut utiliser ces calculs
! :
p
3 1
({sqrt(3)/2},1/2) dsigne le point de coordonnes
,

2 2
Comme on le voit, si le calcul utilise des parenthses, il faut lencadrer par des accolades.

A.4. LES OPRATIONS DE CHEMIN

A.3.3

147

Calculs sur les coordonnes : bibliothque calc

Une autre sorte de calcul est rendue possible avec le chargement de la bibliothque calc.
Contrairement au package \pgfmath, dont le chargement est automatique et implicite, le chargement de calc doit tre explicite, avec \usetikzlibrary{calc}. Nous navons pas parl dans cet
ouvrage des possibilits oertes par calc. Se rfrer au manuel ociel : 12.4 Coordinate Calculations page 113.
Avec cette bibliothque, il est possible de faire des calculs portant directement sur les couples
de coordonnes (par exemple faire la somme de deux couples, faire le produit dun nombre par un
couple). Mais cela introduit une syntaxe spciale : les calculs de ce type doivent tre crits entre
les symboles ($ et $), comme ($ (1,2) + (3,4) $).
En plus de ces calculs avec des oprations mathmatiques, cette syntaxe permet deectuer de
manire interne les calculs lis des constructions gomtriques :
Point de tangence de la tangente mene dun point un cercle ;
Barycentre de plusieurs points, combinaisons linaires ;
Point dintersection de deux segments ;
Image dun point par une similitude directe dont on donne le centre, le rapport et langle ;
Projection orthogonale dun point sur un segment ;
Point une distance donne dun autre sur un segment.
Ces possibilits peuvent tre intressantes pour viter davoir calculer par soi-mme des coordonnes. En ceci, elles rapprochent Tik Z dun logiciel de construction gomtrique comme GeoGebra.
Cependant, la syntaxe de ces instructions est souvent un peu sotrique et manque dunit.
Voici un exemple tir du manuel : ($(1,1)!.5!60:(2,2)$) dsigne limage du point (2,2) par la
similitude directe de centre (1,1), de rapport 0.5 et dangle 60.
Si le seul but est dviter les calculs, on peut aussi le faire en utilisant GeoGebra ou un logiciel
de calcul formel comme logiciel auxiliaire. Mais cela fige le rsultat des calculs et il faut tout
recommencer ds quon veut changer une coordonne quelque part.

A.4

Les oprations de chemin

Ce sont les oprations quon peut crire dans les commandes qui dfinissent des chemins ou qui
agissent sur des chemins, comme dans
\draw, \fill, \filldraw, \path, \clip.

Syntaxe opration argument


La plupart des oprations ont une syntaxe de la forme opration argument, o opration est le
nom de lopration et argument est largument. La syntaxe dune opration dpend, pour largument, de cette opration. La plupart des arguments sont simples (un couple de coordonnes ou un
nom de nud), except pour plot et child (cette dernire tant rcursive).
La seule opration qui na pas de nom est lopration de positionnement explicite, quon utilise
au dbut dun chemin pour fixer la position du crayon : elle a seulement un argument, qui est la
position en question.
Dans lexemple suivant, les expressions dsignant des oprations ont t encadres :
\draw (0,0) -- (1,1) circle (1) ;
La premire est lopration de positionnement explicite du crayon en (0, 0), la deuxime celle
de trac dun segment, la troisime celle de trac dun cercle. Aprs chaque opration, la position
du crayon est ractualise.
(1, 1)

(0, 0)

148

ANNEXE A. LA SYNTAXE DE TIKZ

Cette opration de positionnement peut tre utilise plusieurs fois dans un mme chemin. Dans
ce cas-l, le chemin peut tre en dirents morceaux non connects. Par exemple :
\draw (0,0) -- (1,1) (2,2) -- (3,3);
Il y a deux positionnements explicites (0, 0) et (2, 2). Le chemin est form de deux segments non
connects. Cette possibilit est utiliser avec prudence, elle rend le code plus dicile interprter.
Il vaudrait mieux crire :
\draw (0,0) -- (1,1);
\draw (2,2) -- (3,3);
Cest un peu plus long crire, mais plus clair et plus modulaire. Cependant, un avantage de
regrouper les oprations en un seul chemin est de pouvoir factoriser les options graphiques en un
seul endroit, dans la commande \draw.

Principales oprations
Les principaux symboles ou noms doprations sont :
--, -|, |-, --cycle
rectangle, circle, arc, grid, plot, --plot,

to

Les oprations se rapportant aux nuds sont spciales :


node, edge, child
On crit ces dernires lintrieur dun chemin, mais ce quelles dfinissent nest pas considr
comme un lment du chemin. Cette distinction est importante pour lordre du trac (les noeuds
sont tracs aprs le reste), les remplissages avec fill et la fermeture des rgions avec --cycle (les
noeuds ne font pas partie de la rgion remplir).
Il existe quelques autres oprations dont nous navons pas ou peu parl :
..controls and .., ellipse, parabola, sin, cos, let

A.5

Les options

Les options explicites : [...]


Syntaxiquement, on crit les options entre crochets, spares par des virgules. La spcification
dune option peut prendre plusieurs formes, dont les principales sont [cl] et [cl=valeur].
Elles peuvent sappliquer tout un environnement {tikzpicture}, un environnement {scope},
un chemin utilis par \draw, \fill, \clip.
\filldraw, ou \path, et la plupart des oprations de chemin, par exemple node, to ou grid.
Exemple :
\begin{tikzpicture} [scale=0.75]
\draw [gray, very thin] (-2,-2) grid [step=0.5cm] (2,2);
\draw (0,0) node [below, fill=white] {$O$} node{$\bullet$};
\draw [dashed,red,thick] (0,0) circle(1);
\end{tikzpicture}

A.5. LES OPTIONS

149

Les options implicites : raccourcis


Le mcanisme qui interprte les options est dfini par le package pgfkeys, charg automatiquement avec Tik Z, et qui peut tre utilis en dehors de Tik Z. Ce mcanisme comporte des
possibilits dabstraction, dabrviations et de valeurs par dfaut qui sont souvent pratiques, mais
qui peuvent sembler parfois mystrieuses et entraner des confusions, dautant plus que certains
raccourcis peuvent aussi tre obtenus laide de commandes qui cachent le mcanisme doptions.
Exemple : coordinate
Un bon exemple est donn par le mot-cl coordinate permettant dattribuer un nom symbolique un point ou un nud.
On le rencontre sous direntes formes : comme commande, comme opration de chemin, comme
cl doption, comme valeur doption.
Voici dirents exemples ayant pour eet de nommer (o) lorigine du repre :
commande : \coordinate (o) at (0,0);
opration de chemin : \path (0,0) coordinate (o);
cl doption : \path (0,0) node [coordinate] (o);
valeur doption : \path (0,0) node [shape=coordinate] (o);
En fait, le vrai concept de coordinate est le dernier : cest une valeur possible de loption
shape pour un nud. Dire que shape a pour valeur coordinate signifie que le noeud na pas
dtendue, et donc quil peut tre vu comme un simple point, et donc quil peut servir reprer
les coordonnes de ce point.
Mais penser ce concept en ces termes est un niveau de dtail technique un peu compliqu
pour lusage habituel, qui consiste seulement donner un nom un point. Cest pour cela que le
langage ore les autres possibilits, qui se ramnent toutes de manire interne dire quil y a un
nud (parfois implicite) dont loption shape a pour valeur coordinate.
Exemple : draw
Pour tracer un chemin, on utilise habituellement la commande \draw. Mais ce nest quun
raccourci pour dire que loption draw du chemin a pour valeur une certaine couleur (la couleur
actuellement en vigueur, cest--dire la valeur de loption color).
Autrement dit, le mot-cl draw indique une option de couleur plutt que rellement une instruction demandant de dessiner. Mais, dans le mcanisme interne, le fait de spcifier cette couleur
a pour consquence de rendre le trac eectif.
Exemple :
\begin{tikzpicture} [scale=0.4]
\draw [red] (0,0) circle (1) ;
% 1
\path[color=blue] (0,0) circle (2);
% 2
\path[color=blue,draw] (0,0) circle (3);
% 3
\path[color=blue,draw=green] (0,0) circle (4);% 4
\path [draw=gray] (0,0) circle (5);
% 5
\end{tikzpicture}

trace en
ne trace
trace en
trace en
trace en

1 2 3 4 5

rouge
pas
bleu
vert
gris

150

ANNEXE A. LA SYNTAXE DE TIKZ

On constate cette occasion que la commande de base pour un chemin est \path, qui se
contente de dfinir un chemin, mais ne le trace pas forcment. Les autres commandes de chemin,
comme \clip, \draw, \fill, ne sont en fait que des raccourcis qui se ramnent de manire
interne la commande \path, en aectant certaines options.

A.6

Utiliser des commandes LATEX dans Tik Z

Tik Z est une extension de LATEX. Bien quil dfinisse ses propres rgles syntaxiques, il peut
quand mme bnficier de certains mcanismes de LATEX, en particulier lutilisation de commandes
vues comme des macros de remplacement de texte.
La manuel ne prcise pas exactement ce qui est possible ou pas, mais lexprience et les exemples
montrent quil est possible de dfinir ses propres commandes comme abrviations pour engendrer
des parties du texte source.
Par exemple, on peut dfinir une commande qui trace un triangle quilatral de ct 1 dont
un sommet est (0, 0) et dont un ct est dirig suivant langle polaire donn en paramtre #1. On
utilise loption rotate pour tourner le triangle dans la direction voulue.
\newcommand{\triangleE}[1]
{\draw[rotate=#1] (0,0) -- (1,0) -- (1/2, {sqrt(3)/2}) -- cycle;}
Si on a plusieurs triangles de ce type tracer, cela vite davoir crire chaque fois le code
dtaill :
\begin{tikzpicture}
\triangleE{10}
\triangleE{90}
\triangleE{200}
\end{tikzpicture}

90
10
200

On voit donc qu lintrieur dun environnement {tikzpicture}, il est possible dutiliser une
commande dfinie ailleurs. Cette commande sera dveloppe sous forme de code source Tik Z et
sera ensuite interprte par Tik Z.

Annexe B

Erreur ! Que faire ?


Soyons optimistes, on suppose ici que le lecteur sait dj comment corriger les erreurs qui
peuvent survenir lors de la rdaction dun document LATEX.
On signale simplement ici les principales sources derreurs typiques de Tik Z.
Lors dune erreur de compilation, il faut dabord consulter les dernires lignes aches sur la
console. On appelle console la fentre dans laquelle sont achs les messages de compilation et les
messages derreur.
On va signaler ici les messages les plus frquents provoqus par les erreurs dans Tik Z et qui
doivent attirer lattention.
On va expliquer leur origine et comment corriger les erreurs.

Oubli du ;
Si on voit le message suivant :
! Package tikz Error; Giving up on this path.
Did you forget a semicolon?.
Cest lerreur la plus frquente quand on commence utiliser Tik Z. Toute commande Tik Z se
termine par un point-virgule que lon oublie souvent.
La correction est facile.

Les nombres trop grands


Si on voit le message suivant :
! Dimension too large.
<recently read> \pgf@xx
Ce message est suivis du numro dune ligne contenant en gnral des coordonnes trop grandes.
En eet, dans Tik Z, il vaut mieux limiter les coordonnes des points des valeurs comprises entre
500 et +500.
Il sut donc de concevoir le dessin de faon maintenir les coordonnes de tous les points de
la figure dans un intervalle plus limit.

Le ! dans la dfinition des couleurs


Si on voit le message suivant :
! Missing \endcsname inserted.
<to be read again>
\penalty
151

152

ANNEXE B. ERREUR ! QUE FAIRE ?

Ce message assez mystrieux est suivi du numro dune ligne qui contient en gnral une option
de couleur comme par exemple : \draw[red!50]...
Le responsable de lerreur est ici le ! et le raccourci dans la dfinition de la couleur du trac.
On corrige lerreur en vitant le raccourci : \draw[color=red!50]...

Le problme de babel franais et de :


Remarque : Dans la dernire version de Tik Z & PGF (la version 2.10) qui est actuellement
fournie avec la distribution TEXlive 2011, ce problme de babel et du : est corrig.
Si on dispose dune version plus ancienne et si on voit le message suivant :
! Paragraph ended before \tikz@plot@samples@recalc was complete.
<to be read again>
\par
ou le message suivant :
! File ended while scanning use of \tikz@plot@samples@recalc.
< inserted text >
\par
Ces messages assez mystrieux sont suivis du numro dune ligne contenant en gnral une
commande \plot avec une option [domain=a:b]. Cest le deux-points qui est responsable de
lerreur.
Le plus simple, pour corriger cette erreur, est dajouter la commande \shorthandoff{:} ds
le dbut de lenvironnement {tikzpicture}
Mais on peut aussi voir le message suivant :
! Argument of \tikz@plot@samples@recalc has an extra }.
<inserted text>
\par
Ceci peut se produire si lenvironnement {tikzpicture} est insr dans une commande \fbox.
Dans ce cas la commande \shorthandoff{:} doit tre place lextrieur de la commande \fbox,
ainsi :
{\shorthandoff{:}
\fbox{\begin{tikzpicture}
\draw plot[domain=-2:5] (\x,\x/5);
\end{tikzpicture}}}
Ce problme dincompatibilit des packages tikz et babel franais est tudi en dtail dans le
chapitre Courbes .
Un package rcent, microtype, permet de rsoudre le problme globalement de faon simple.
Il sut dajouter :
\usepackage[babel=true,kerning=true]{microtype} aprs la dclaration dutilisation du package babel.
Ainsi le caractre : ne semble plus poser de problme.

Remarque : Dans la dernire version de Tik Z & PGF (la version 2.10) qui est actuellement
fournie avec la distribution TEXlive 2011, ce problme de babel et du : est corrig.

Annexe C

O trouver de laide ?
Un site Internet, cr par les auteurs, accompagne ce livre. On y trouvera le code de tous les
exemples prsents ici, plus quelques complments.
partir du site, il est aussi possible de contacter les auteurs : Toutes les questions, toutes les
critiques et toutes les suggestions sont les bienvenues.
http://math.et.info.free.fr/TikZ/index.html

Livres lire
On trouve sur Internet la documentation de lauteur Till Tantau :
Version la plus rcente de Tik Z & PGF Manual
Ce document au format PDF de 560 pages est une rfrence trs complte, mais reste dun
abord un peu dicile...
Si vous tes plutt dbutant en LATEX, nous vous conseillons en particulier chez lditeur H&K :
EX pour limpatient . La lecture pralable de cet ouvrage remarquable, simple, mais cependant
trs complet vous sera trs utile :
LAT

http://www.h-k.fr/liens/tp/latex_pour_impatient.htm

Autres liens vers Internet


En anglais
Lauteur de Tik Z est Till Tantau qui a aussi cr pour LATEX le package Beamer qui permet de
raliser des prsentations sous forme de diaporama.
http://www.tcs.uni-luebeck.de/mitarbeiter/tantau/

On trouvera sur le site TEXample.net des exemples proposs par lauteur et concernant de trs
nombreux domaines :
http://www.texample.net/tikz/examples/author/till-tantau/

En franais
Allez sur le site Altermundus :

http://www.altermundus.fr/

153

Annexe D

Glossaire
Ce glossaire contient la liste alphabtique des commandes, oprations et options du langage
Tik Z utilises dans ce livre et brivement commentes.
Pour chaque item il y a une rfrence la documentation de Till Tantau dans laquelle cet item
est dfini.
Cette rfrence est donne sous la forme : Titre de la section, numro de la section et page.
Version la plus rcente de Tik Z & PGF Manual

Conventions dcriture
Dans le langage de Tik Z, le mme mot peut souvent reprsenter des lments syntaxiques
distincts. Pour aider comprendre les nombreux raccourcis et les variations syntaxiques on notera
dans ce glossaire les lments dirents ainsi :
les commandes prfixes par une contre-oblique, ainsi : \draw ;
les coordonnes ou les noms entre parenthses, ainsi : (x,y) (a:r) (P) ;
les options entre crochets, ainsi : [above] ;
les environnements entre accolades, ainsi : {scope} ;
les oprations de chemin et autres mots cls, ainsi : arc west ;
les concepts prsents dans ce livre, ainsi : chemin.

Liste alphabtique
--

(The Line-To Operation 13.2 page 118)


-- est le symbole de lopration qui trace un segment sous la forme :
\draw (a,b) -- (c,d); du point (a,b) au point (c,d)
On peut aussi obtenir un trac en lignes horizontales et verticales avec |- ou -| ou des
lignes courbes avec to ou .. controls and ..

[->]
(Graphic Parameters : Arrow Tips 14.3.4 page 134)
Cest une option graphique applicable un trait ou un chemin, pour dessiner une pointe de
flche place lextrmit du trait.
Exemple : \draw [->] (a,b) -- (c,d); Dirents styles de pointe de flche sont possibles,
comme par exemple |->, *-o, |<->>, [-( ou ->>. On peut changer aussi le dessin des pointes
avec lotption >= suivie de latex ou stealth.
(x,y), (x,y,z), (a:r), (P)
(Specifying coordinates 12 page 103)
Tik Z propose plusieurs faons dexprimer les coordonnes des points :
(x,y) coordonnes cartsiennes 2 dimensions ;
(x,y,y) coordonnes cartsiennes 3 dimensions ;
(a:r) coordonnes polaires angle et distance au centre ;
155

156

ANNEXE D. GLOSSAIRE
(P) coordonnes du nud dont le nom (P) a t dfini par exemple avec :
\draw (x,y) node(P){Texte}; ou \coordinate (P) at (x,y);
++(x,y)
(Relative and Incremental Coordinates 12.3 page 112)
++ est le symbole qui prcde des coordonnes pour indiquer que celles-ci doivent tre
considres comme relatives au point prcdent.
\draw (4,3) -- ++(1,3); quivalent \draw (4,3) -- (5,6);
[above], [above left], [above right]
Options de placement des nuds. (Voir : node)

(Positioning Nodes 15.5 page 154)

arbre
(Voir : child)

(Making Trees Grow 17 page 183)

arc
(The Arc Operation 13.8 page 121)
arc est lopration de chemin qui trace un arc sous la forme :
\draw (x,y) arc (d:f:r); partir du point (x,y) un arc de rayon r dont le rayon origine forme un angle de d avec lhorizontale et le rayon extrmit un angle de f avec
lhorizontale.
[below], [below left], [below right]
Options de placement des nuds. (Voir : node)
[bend left], [bend right]
Options pour fixer la courbure dun ligne. (Voir : to)

(Positioning Nodes 15.5 page 154)


(Curves 40.2 page 367)

[bottom color=], [top color=]


(Choosing a Shading Color 14.5.2 page 140)
Options pour fixer les couleurs de dgrads. (Voir : \shade)
[text centered]
(Options for the Text in Nodes 15.4 page 152)
Option de mise en forme de texte. (Voir : node)
chemin
(Voir : \path ou \draw)

(Actions on Paths 14 page 130)

child
(Making Trees Grow 17 page 183)
child est une opration place la suite dune opration node qui permet de dfinir un fils
du noeud dans une structure darbre.
De nombreuses options sont disponibles pour contrler les dimensions de larbre comme
sibling distance ou level distance ou la direction dans laquelle il se dveloppe comme
grow.
On peut aussi tiqueter les nuds laide de edge from parent et dessiner les arcs entre
les nuds avec edge from parent path .
circle
(The Circle and Ellipse Operations 13.7 page 121)
circle est lopration de chemin qui trace un cercle sous la forme :
\draw (x,y) circle (r); de centre (x,y) et de rayon (r).
On peut aussi tracer une ellipse en donnant les rayons sur les deux axes sous la forme
\draw (x,y) circle (r and s);
[circle]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=circle], fixe la forme dun nud. (Voir : node)
\clip
(Clipping and Fading : Soft Clipping 14.7 page 142)
\clip... est la commande qui restreint la rgion dachage. Tous les dessins qui suivent
cette commande seront limits cette rgion.

157
[color=]
(Specifying a Color 14.2 page 131)
Option pour dfinir la couleur. (Voir : \draw, \fill, node ou {scope})
.. controls and ..
(The Curve-To Operation 13.3 page 119)
(A) ..controls (U) and (V) .. (B) trace une courbe de Bzier entre le point (A) et
le point (B), les tangentes en (A) et (B) tant respectivement dtermines par les points de
contrle (U) et (V).
[coordinate]
(Nodes and Their Shapes 15.2 page 146)
Abrviation de [shape=coordinate] qui fixe la forme dun nud.
Cest une forme de nud spciale, de dimension nulle, qui permet de considrer le nud
comme un simple point et de le nommer pour un usage ultrieur. (Voir : node)
\coordinate
(Nodes and Their Shapes 15.2 page 146)
\coordinate (A) at (x,y); est la forme abrge de la commande qui permet de nommer
et de placer un nud de dimension nulle :
\path (x,y) coordinate (A); ou
\draw (x,y) node[coordinate] (A){}; ou
\node (A) at (x,y) node[shape=coordinate]{};
--cycle
(The Cycle Operation 13.4 page 119)
--cycle; est lopration de fin de chemin qui consiste relier le dernier point au premier.
(current page)
(Referencing the Current Page Node 15.13.2 page 170)
Nud spcial qui reprsente la page entire. (Voir : [overlay])
[dashed]
(Graphic Parameters : Dash Pattern 14.3.2 page 134)
Option de style pointill en tirets. (Voir : \draw)
[diamond]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=diamond], fixe la forme dun nud. (Voir : node)
[domain=]
(Plotting a Function 18.5 page 194)
Option pour le domaine de dfinition dune fonction. (Voir : plot)
[dotted]
(Graphic Parameters : Dash Pattern 14.3.2 page 134)
Option de style pointill. (Voir : \draw)
[double]
(Graphic Parameters : Double Lines 14.3.5 page 136)
Option de style de trait double. (Voir : \draw)
\draw
(Drawing a Path 14.3 page 131)
\draw... est la commande qui permet de tracer un chemin.
De nombreuses options permettent de prciser le mode de trac. On peut fixer lpaisseur
des traits avec thin, thick, line width=, le type de trait avec dashed, dotted, double
etc.
east
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=east] dun nud. (Voir : node)
.east
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.east) point dancrage un nud. (Voir : node)
edge from parent
(Edges From the Parent Node 17.6 page 191)
Opration daccs au parent dun nud dans un arbre. (Voir : child )

158

ANNEXE D. GLOSSAIRE
edge from parent path,
(Edges From the Parent Node 17.6 page 191)
Style pour dfinir les arcs dans un arbre. (Voir : child )
[ellipse]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=ellipse], fixe la forme dun nud. (Voir : node)
[even odd rule]
Rgle de dfinition de rgion. (Voir : \clip ou \fill)
figure
(Voir : {tikzpicture} \tikz)

(Interior Rules 14.4.2 page 138)


(Creating a Picture 11.2 page 96)

\fill
(Filling a Path 14.4 page 136)
\fill... est la commande qui colorie la rgion limite par un chemin.
La couleur du coloriage peut tre prcise avec par exemple :
\draw[fill=red]... ou aussi \fill[color=red]... On peut aussi obtenir des eets
de transparence avec loption opacity.
Il existe deux rgles pour dfinir le mode de coloriage des rgions limites par un chemin :
nonzero rule, par dfaut ou even odd rule
\filldraw
(Drawing a Path 14.3 page 131) (Filling a Path 14.4 page 136)
\filldraw.. est la forme abrge de la commande \path[fill,draw].. qui permet de
tracer le chemin et colorier la rgion. (Voir : \fill et \draw)
\foreach
(The Foreach Statement 44 page 389)
La commande \foreach sutilise sous la forme :
\foreach <variables> in <liste> <commandes>
<variables> est une ou plusieurs commandes LATEX spares par des barres. Exemples :
\x ou \x/\y/\z
<liste> est une liste de valeurs spares par des virgules :
Exemples : {2,texte,0.5} ou avec 3 variables {1/un/I,5/cinq/V}
<commandes> sont des instructions qui contiennent la ou les variables et qui seront
excutes de faon rptitive en donnant aux variables successivement les valeurs fournies
dans la liste.
grid
(The Grid Operation 13.9 page 121)
grid est lopration de chemin consistant tracer un quadrillage (grille).
La forme dutilisation la plus simple est \draw (A) grid (B); qui trace une grille dont
(A) et (B) sont deux sommets dune diagonale.
Le pas de la grille peut tre fix avec les options step, xstep ou ystep
[grow=]
(Default Growth Function 17.5.2 page 187)
Option pour fixer la direction de croissance dun arbre. (Voir : child)
[in=], [out=]
Options pour fixer la courbure. (Voir : to)

(Curves 40.2 page 367)

[text justified]
(Options for the Text in Nodes 15.4 page 152)
Option de mise en forme de texte. (Voir : node)
latex
Style de pointe de flche, [>=latex]. (Voir : ->)

(Arrow Tip Library 22 page 224)

[left], [right]
Options de placement des nuds. (Voir : node)

(Positioning Nodes 15.5 page 154)

159
[level distance=]
(Default Growth Function 17.5.2 page 187)
Option pour fixer lcart entre les niveaux dans un arbre. (Voir : child)
[line width=]
(Graphic Parameters : Line Width 14.3.1 page 132)
Option pour fixer lpaisseur du trait. (Voir : \draw)
[mark=]
(Placing Marks on the Plot 18.7 page 198)
Option pour marquer les points dune courbe avec *,+,x. (Voir : plot)
[midway]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)
[minimum size]
(Creating Nodes 59.2 page 474)
Ou aussi [minimum width] et [minimum height]
Option pour fixer les dimensions dun nud. (Voir : node)
[near end]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)
[near start]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)
nud
(Voir : node ou \node)

(Nodes and Edges 15 page 146)

node
(Nodes and Edges 15 page 146)
node est une opration de chemin qui crit un texte LATEX, plac par dfaut dans une bote
rectangulaire centre la position du crayon.
Son utilisation de base est \draw (a,b) node {texte};
De nombreuses options sont possibles, pour contrler dirents aspects :
la position : above, below, left, right, above left, etc.
La couleur du texte : node [red] {texte}
La couleur du fond : node [fill=red] {texte}
la forme : circle, rectangle, coordinate
\node
(Nodes and Their Shapes 15.2 page 146)
\node (A) at (x,y){Texte}; est la forme abrge de la commande :
\path (x,y) node (A){Texte};
[nonzero rule]
Rgle de dfinition de rgion. (Voir : \clip ou \fill)

(Interior Rules 14.4.2 page 138)

north
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=north] dun nud. (Voir : node)
Autres valeurs, [anchor=north west], [anchor=north east]
.north
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.north) point dancrage un nud. (Voir : node)
Autres valeurs, (P.north west), (P.north east)
\newcommand dfinition dune commande. (Voir : LATEX)
On peut aussi utiliser \def en TEX.
[opacity=]
(Transparency 19 page 202)
Option pour dfinir le niveau de transparence. (Voir : \fill)

160

ANNEXE D. GLOSSAIRE
[out=], [in=]
Options pour fixer la courbure dune ligne. (Voir : to)

(Curves 40.2 page 367)

[overlay]
(Referencing Nodes Outside the Current Pictures 15.13 page 169)
Loption overlay associe loption remember picture permet de tracer, sur une mme
page, des chemins entre des figures dfinies dans des environnements {tikzpicture} distincts.
Il est aussi possible de dessiner nimporte o sur la page en utilisant le nud spcial
(current page) qui reprsente le rectangle de la feuille.
\path
(Actions on Paths 14 page 130)
\path... est la commande de base de Tik Z qui dfinit un chemin.
Toutes les autres commandes en sont des cas particuliers comme :
\clip..., \draw..., \fill..., \filldraw..., \shade..., etc.
plot
(Plots of Functions 18 page 193)
plot est une opration de chemin qui trace la courbe reprsentative dune fonction donne
par une formule.
On peut prciser le domaine de dfinition de la fonction avec loption [domain=] et le nombre
de points calculer avec loption [samples=].
Par exemple : plot[domain=-2:2,samples=50] (\x,2*\x+3)
plot coordinates
(Plotting Points Given Inline 18.3 page 194)
plot coordinates est une opration de chemin qui trace une reprsentation graphique
dune liste de points.
Par dfaut, une courbe reliant les points est dessine. On peut aussi tracer des barres,
horizontales avec loption [xcomb], verticales avec [ycomb] ou partir de lorigine avec
[polar comb].
On peut aussi marquer les points de la courbe avec loption [mark=].
La liste des coordonnes de tous les points acher est dfinie en ligne, entre accolades.
Par exemple : plot[ycomb] coordinates {(1,2) (3,5) (5,1)}
plot file
(Plotting Points Read From an External File 18.4 page 194)
plot file est une opration de chemin qui trace une reprsentation graphique dune liste
de points. (Voir : plot coordinates)
La liste des coordonnes de tous les points acher est dfinie dans un fichier texte dont
le nom est donn entre accolades.
Par exemple : plot[mark=*] file {data.txt}
plot function
(Plotting a Function Using Gnuplot 18.6 page 196)
plot function est une opration de chemin qui trace la courbe reprsentative dune fonction donne par une formule Gnuplot.
La formule est transmise Gnuplot qui va calculer les coordonnes de tous les points
acher. (Voir : plot)
On peut prciser le domaine de dfinition de la fonction avec loption [domain=] et le nombre
de points calculer avec loption [samples=].
Par exemple :
plot[domain=-pi:pi,samples=50] function {x+sin(x)}
polar comb
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option pour tracer des barres partir de lorigine. (Voir : plot)
[pos=]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)

161
rectangle
(The Rectangle Operation 13.5 page 120)
rectangle est lopration de chemin consistant tracer un rectangle.
La forme dutilisation la plus simple est \draw (A) rectangle (B); qui trace un rectangle
dont (A) et (B) sont deux sommets dune diagonale.
[rectangle]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=rectangle] fixe la forme dun nud. (Voir : node)
rgion
(Interior Rules 14.4.2 page 138)
Une rgion est limite par un chemin. (Voir : \clip ou \fill)
[remember picture] (Referencing a Node in a Dierent Picture 15.13.1 page 169)
Option qui mmorise les noms des nuds dfinis dans des environnements {tikzpicture}
distincts. (Voir : [overlay])
[right], [left]
Option de placement des nuds. (Voir : node)

(Positioning Nodes 15.5 page 154)

[rotate=]
(Coordinate Transformations 21.3 page 218)
Option pour eectuer une rotation. (Voir : node ou {scope})
[rounded corners=]
(Rounding Corners 13.6 page 120)
Option qui arrondit les angles des lignes. (Voir : \draw ou node)
[scale=]
(Coordinate Transformations 21.3 page 218)
Option pour eectuer un changement dchelle. (Voir : node ou {scope})
{scope}
(Using Scopes to Structure a Picture 11.3 page 99)
Lenvironnement {scope} permet de dessiner une sous-figure et de lui appliquer globalement
direntes transformations ou styles, comme : shift, scale, rotate, etc.
[samples=]
(Plotting a Function 18.5 page 194)
Option qui fixe le nombre des points calculer pour une fonction. (Voir : plot)
\shade
(Shading a Path 14.5 page 139)
\shade... est la forme abrge de la commande \path[shade]... qui permet de colorier
la rgion dfinie par un chemin avec des eets de dgrads de couleurs.
Direntes options permettent de prciser le dgrad comme shading ou les couleurs comme
top color ou bottom color.
[shift=], [xshift=], [yshift=] (Coordinate Transformations 21.3 page 218)
Option pour eectuer une translation. (Voir : node ou {scope})
[sibling distance=]
(Default Growth Function 17.5.2 page 187)
Option pour fixer lcart entre fils dans un arbre. (Voir : child)
[sloped]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour aligner des nuds sur une ligne. (Voir : -- ou to)
[smooth]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option qui provoque le lissage dune courbe. (Voir : plot)
south
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=south] dun nud. (Voir : node)
Autres valeurs, [anchor=south west], [anchor=south east]

162

ANNEXE D. GLOSSAIRE
.south
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.south) point dancrage un nud. (Voir : node)
Autres valeurs, (P.south west), (P.south east)
stealth
Style de pointe de flche, [>=stealth]. (Voir : ->)

(Arrow Tip Library 22 page 224)

[step=], [xstep=], [ystep=]


Option pour fixer le pas de la grille. (Voir : \grid)

(The Grid Operation 13.9 page 121)

[tension=]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option qui contrle le niveau de lissage dune courbe. (Voir : plot)
[text width=]
(Options for the Text in Nodes 15.4 page 152)
Option pour fixer mise en forme du texte dun nud. (Voir : node)
[thick], [very thick]
(Graphic Parameters : Line Width 14.3.1 page 132)
Option pour fixer lpaisseur du trait. (Voir : \draw)
[thin], [very thin]
(Graphic Parameters : Line Width 14.3.1 page 132)
Options pour fixer lpaisseur du trait. (Voir : \draw)
Tik Z
(Loading the Package and the libraries 11.1 page 96)
Pour utiliser Tik Z, on doit charger le package tikz :
\usepackage{tikz}
Si on veut de plus utiliser des bibliothques additionnelles, il faut les charger explicitement,
par exemple :
\usetikzlibrary{arrows,calc}
Ne pas confondre le package tikz avec \tikz, qui est une commande quivalente un
environnement {tikzpicture} (contenant un code bref).
\tikz
(Creating a Picture Using a Command 11.2.2 page 98)
Commande brve pour la cration de figure Tik Z. (Voir : {tikzpicture})
{tikzpicture}
(Creating a Picture Using an Environment 11.2.1 page 96)
On crit les commandes de dessin dans lenvironnement {tikzpicture}
\begin{tikzpicture} ... \end{tikzpicture}
Pour les dessins dont le code tient en un paragraphe, on peut utiliser la commande brve :
\tikz \draw (0,0) -- (1,1);
\tikzset
(How Graphic Options Are Processed 11.4.1 page 100)
\tikzset est une commande Tik Z qui permet de dfinir des options, des styles ou des cls.
Par exemple :
\tikzset{fondRouge/.style={fill=red}}
\tikzstyle
(How Graphic Options Are Processed 11.4.1 page 100)
Cest une ancienne commande de la version 1.00 de Tik Z & PGF utilise pour dfinir une
option de style. Par exemple :
\tikzstyle{fondRouge}=[fill=red]
On peut toujours utiliser cette commande dans la version 2.00, mais maintenant, on utilisera
plutt la commande \tikset
to

(The To Path Operation 13.13 page 125)


(A) to (B) est une opration de chemin comme (A)--(B) mais on peut lui associer des
options pour obtenir des lignes courbes, comme : [bend left], [bend right], [in=] ou
[out=]

163
[top color=], [bottom color=]
(Choosing a Shading Color 14.5.2 page 140)
Options pour fixer les couleurs de dgrads. (Voir : \shade)
west
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=west] dun nud. (Voir : node)
.west
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.west) point dancrage un nud. (Voir : node)
[xcomb]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option pour tracer des barres horizontales. (Voir : plot)
[x=]
(The XY- and XYZ-Coordinate Systems 21.2 page 217)
Option qui permet de changer le vecteur unit des X, qui vaut par dfaut : [x={(1cm,0pt)}]
par rapport un repre absolu.
[y=]
(The XY- and XYZ-Coordinate Systems 21.2 page 217)
Option qui permet de changer le vecteur unit des Y, qui vaut par dfaut : [y={(0pt,1cm)}]
par rapport un repre absolu.
[ycomb]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option pour tracer des barres verticales. (Voir : plot)
[z=]
(The XY- and XYZ-Coordinate Systems 21.2 page 217)
Option qui permet de changer le vecteur unit des Z, qui vaut par dfaut :
[z={(-0.3535cm,-0.3535cm)}] par rapport un repre absolu.
En eet, les points de lespace sont eectivement achs dans un repre deux dimensions
!
1 !
1 !
p
qui vrifie par dfaut : k = 2p
i
j.
2
2 2
Pour obtenir le repre mathmatique franais usuel on peut dfinir :
[x={(-0.353cm,-0.353cm)}, z={(0cm,1cm)}, y={(1cm,0cm)}]

% avec \usetikzlibrary{fadings} en prambule pour le dgrad


\newcommand{\Fin}{node[xshift=-1.5ex,rotate=10]{F}
node[rotate=170]{i}
node[xshift=1.5ex,rotate=45]{n}}
\begin{tikzpicture}[scale=10,transform shape]
\draw (0,0) \Fin;
\draw (-1em,-1ex) -- (1em,-1ex);
\path[scope fading=south] (-1em,-0.25em) rectangle (1em,-3.75ex);
\draw[yscale=-1] (0,2ex) \Fin;
\end{tikzpicture}

n
n