Vous êtes sur la page 1sur 189

Tik Z

Grard Tisseau et Jacques Duma

De
ss

X
LATE

in
er

ce.va

Tik Z pour limpatient


Grard Tisseau

Jacques Duma

15 novembre 2013

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

.
.
.
.
.
.
.

.
.
.
.
.
.
.

9
9
9
9
9
10
10
10

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 Echelle : [scale=k] . . . . . . . . . . . . . . . . . . . .
1.3 Exemple : tracer un segment ou un cercle . . . . . . . . . . . .
1.3.1 Enonc : 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 Ecrire 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

11
11
11
12
13
13
14
14
15
15
15
15
16
17
18
20
21
21
23
24
24
25
25
25
26
26
27
28
28

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

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 Epaisseur 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 . . . . . . . . . . . . . . . . . . . .

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

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

29
29
29
30
31
32
32
33
35
35
35
36
36
37
37
38
38
40
40
40
41
42
43
43
43
43
44
44
45

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 : sparer les intervalles . . . . .
3.2.4 Grandes valeurs : scale, \clip . . . . . . . .
3.3 Rgions limites par des courbes . . . . . . . . . . . .

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

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

46
46
47
48
48
49
49
49
50
50
50
50
51
51
52
52
52
53
53
54

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

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

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

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

TABLE DES MATIRES

3.4
3.5

3.6

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 . . . . . . . . . . . .
Complments techniques . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Utilisation de Gnuplot : plot function . . . . . . . . .
3.4.2 Automatisation de certaines configurations . . . . . . .
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, \filldraw .
Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

54
56
56
57
57
58
59
59
60
61
62
63
64

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

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

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

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

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

66
66
66
67
68
68
68
68
70
70
71
71
72
72
72

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 Diagrammes 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 . . . . . . . . . . . . . . . . . . . .

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

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

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

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

74
74
74
75
76
77
78
79
80
80
81
83
84
85
86
86
87
87
88
90

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

TABLE DES MATIRES


.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

90
90
91
93
94

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 . . . . . . . . . . . . . . . . . . .
6.2.1 Les arcs : \draw, , |-, -|, to et options de flches .
6.2.2 Extrmits des arcs : [->|, *-o, >->>, )-( . . . . . .
6.2.3 Dcoration des nuds : circle, ellipse, diamond .
6.2.4 Abstraction des styles : \tikzstyle, \tikzset . . . .
6.2.5 Ancrage et position des nuds : P.south, left, below
6.2.6 Flches vers les ancres : N.north, P.center, N.15 . .
6.3 Techniques avances . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Chemins en toile : edge, bend, in, out . . . . . . . .
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 . . . . . . . . . . . . . . .
6.4 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 . . . . . . . . . . . . . . . . . . .
6.5 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

95
95
95
96
96
97
97
98
99
99
101
102
103
103
103
104
104
104
107
108
108
109
109
110
110
111
112
113

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 nud : 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 . . . . . . . . . . . . . . . . . . . . .

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

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

114
114
114
114
117
118
118
118
120
121
122
122
123
124
125

5.5

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 . . . . . . . . . .
Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

.
.
.
.
.

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

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

TABLE DES MATIRES

7
.
.
.
.
.
.

.
.
.
.
.
.

125
126
127
128
130
131

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 . . . .
8.2.4 Mthode par coloriage entre les frontires . . . . . . . .
Dfinition des frontires : rectangle, circle et arc . .
Coloriage des rgions : \fill, even odd rule . . . . .
8.3 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 . . . . . . . . . . .
8.4 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

132
132
133
134
136
137
137
138
139
139
140
141
142
143
144
145
145
146
146
148
149
149
150

9 Complments techniques
9.1 Transformations avec scope . . . . . . . . . . . . . . . . .
9.1.1 Translations : xshift, yshift ou shift . . . . . .
9.1.2 Rotation : [xshift=6cm,rotate=45]] . . . . . . .
9.1.3 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

151
151
152
152
153
155
157
158
159
160
160
162
162
163
163
164
165
165
166

7.5

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 . . . . . . . . . . . . . . . . .
Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

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

TABLE DES MATIRES

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

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

167
167
167
169
169
169
169
170
171
173

B Erreur ! Que faire ?


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

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

174
174
174
175
175

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

C O trouver de laide ?

177

D Glossaire

178

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.
9

10

TABLE DES MATIRES

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 suivie des mots-cls Tikz qui permettent de raliser cette tche ou de
rsoudre ce problme de faon standard.
Par exemple : Echelle : [scale=k], Etiquetage 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

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).
Voici par exemple la version utilise ici : 2.10. Elle date de fvrier 2008.
Le document minimal utilisant Tik Z est donc :
\documentclass{article}
\usepackage{tikz}
\begin{document}
La version de TikZ est : \pgfversion
\end{document}
Essayez dabord de composer ce document. Si votre distribution TEX est
jour, vous devriez voir ache la version 2.00. Si vous ne disposez pas de
Tik Z ou si vous navez pas la version 2, 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).
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/
Eventuellement, 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).
11

12

CHAPITRE 1. PREMIRES FIGURES

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.

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}
A 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 ...

1.2. LE REPRAGE DES POINTS

13

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}.

1.2
1.2.1

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

14

1.2.2

CHAPITRE 1. PREMIRES FIGURES

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 (2,2) a pour coordonp
nes
p polaires approches (45:2.82), o 2.82 est la valeur approche de 8 =
22 + 22 .

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

Echelle : [scale=k]

Il peut arriver que 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

1.3. EXEMPLE : TRACER UN SEGMENT OU UN CERCLE

15

\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

Enonc : 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.3

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}

16

CHAPITRE 1. PREMIRES FIGURES

A 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

Ecrire 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 :


Ecrire la lettre O en-dessous de lorigine
Ecrire la lettre A droite du point (1, 0)
Ecrire 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 :
\begin{tikzpicture}
\draw (0,0) -- (1,0) ;
\draw (0,0) -- (0,1) ;

1.3. EXEMPLE : TRACER UN SEGMENT OU UN CERCLE

17

\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.

18

CHAPITRE 1. PREMIRES FIGURES


\draw (1,0) arc (0:90:1) ;

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 on peut ensuite 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.

1.3. EXEMPLE : TRACER UN SEGMENT OU UN CERCLE

19

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)
...
\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$ :

20

CHAPITRE 1. PREMIRES FIGURES

\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. Ecrire
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 ).

|
$|$

1.4

$\backslash$ \

$\times$

$\times$

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. FIGURE GOMTRIQUE : MTHODES DE BASE

1.4.1

21

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
On rsout ensuite le systme par dirence : 10x 25 = 7, soit x = = 1.8,
5
12
puis, en remplaant, y =
= 2.4
5
On peut alors crire le code Tik Z, quon peut annoter avec des commentaires
LATEXpour plus de lisibilit :
\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

22

CHAPITRE 1. PREMIRES FIGURES


On peut rajouter des nuds de texte pour montrer les noms les 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, placs auxalentours
des milieux
dessegments, milieux
5
17 6
9 6
dont on calcule les coordonnes :
,0 ,
,
,
,
.
2
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.
C
3

1.4. FIGURE GOMTRIQUE : MTHODES DE BASE

23

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

24

CHAPITRE 1. PREMIRES FIGURES


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

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

1.5. EXERCICES : FIGURES GOMTRIQUES

25

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.1

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.

26

CHAPITRE 1. PREMIRES FIGURES


/

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)

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

||

G
||

Aide :
Echelle : 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


lintersection
des mdiatrices.
! estp
!
p

3 4
3 1
3 1
Mme triangle : A
,
,B
,
,C
,
5 5
2
2
2
2

1.5. EXERCICES : FIGURES GOMTRIQUES

27

A
\
\

||

O
||

Aide :
Echelle : 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.6

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)

28

CHAPITRE 1. PREMIRES FIGURES

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)

1.6

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) ;
Ecrire 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, en
introduisant 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 introduisons 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) ;
29

30

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

\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) ;
\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.

2.1. SIMPLIFICATIONS, RACCOURCIS, ABSTRACTIONS

31

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);

(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);

32

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES


(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 direntes couleurs
et motifs.

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$};

2.1. SIMPLIFICATIONS, RACCOURCIS, ABSTRACTIONS

33

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.

34

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

La notation \draw (a,b) -- ++(x,y); est un raccourci qui peut remplacer


\draw (a,b) -- (c,d) avec c = a + x et d = b + y.
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 :

2.2. DCORATIONS, STYLES, OPTIONS GRAPHIQUES

35

\draw (0,0) -- (1,0)


-- ++(72:1) -- ++(144:1) -- ++(216:1) -- cycle;
144
72
(0, 0) (1, 0)

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

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

A 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

36

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

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

2.3. AXES, GRILLE, FENTRE DAFFICHAGE

37

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 (package
arrowtips)

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

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).

38

2.3.1

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

Axes

Tik Z ne possde pas dinstruction particulire pour tracer les axes. Un axe
nest rien dautre quun segment entre deux points, quon trace 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.2

Quadrillage (grille) : grid

Pour rendre les coordonnes directement lisibles, il est souvent pratique dafficher un quadrillage (une grille). Tik Z fournit linstruction grid pour cela.

2.3. AXES, GRILLE, FENTRE DAFFICHAGE

39

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]

40

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

2.3.3

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 une forme de rectangle. Elle
En fait, la fentre na pas forcment toujours
a la forme quon dfinit lintrieur de linstruction \clip. En particulier, elle
1 circle (r);
peut avoir une forme circulaire. \clip (a,b)
5
4
3

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

2
2

1
1

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

(c,d)

2.4. COMPLMENTS : OPACIT, COULEURS, STYLES

41

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.

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 couleurs plus varis quen LATEXstandard, 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

42

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES


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 pour cent de bleu et 70
pour cent 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 pour cent, avec 60 pour cent 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.

2.4.3

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.

2.5. EXERCICES : STYLES DE TRAITS, FLCHES, COULEURS

43

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

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.

44

CHAPITRE 2. CHEMINS, OPTIONS GRAPHIQUES

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 .
M
2!
v
I1

M2

!
v
||

||
I2

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

2.5. EXERCICES : STYLES DE TRAITS, FLCHES, COULEURS

2.5.6

45

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. A partir de B, on eectue
une suite de projections orthogonales : sur [OA] dabord, puis sur [AB], puis
sur [OA], puis sur [AB], etc.
Les longueurs des segments sur [OA] forment une suite gomtrique de raison
1
.
2

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 y = sin(x) (quation cartsienne), ou

x = cos(t)
(quations paramtriques) ou r = f () (quation polaire).
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.
Par exemple, pour tracer la courbe de la fonction dquation
( cartsienne
x=x
x
x , et
y = , il faut dabord la traduire en quations paramtriques :
y=
4
4
on crit :
\draw plot (\x, \x/4);
ce qui donne :
46

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


x
4

y=

47
(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 choissant comme paramtre r, ce qui scrit :
\draw plot (20*\x:\x);
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].

48

CHAPITRE 3. COURBES

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 et 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.
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} } }

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

49

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)

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)});

50

CHAPITRE 3. COURBES

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)

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

51

Constante , conversions
pi, x r, deg(x), rad(x)
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
On a alors les relations :

habituelle enradians.
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 prio180
rit quune multiplication. 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

), utiliser rad(x)
180
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.

52

CHAPITRE 3. COURBES

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) :

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. ASPECT DU GRAPHE

3.2.3

53

Discontinuits : sparer les intervalles

x
. La fonction nest pas
|x|
dfinie en 0, et pas 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]
\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
x

de points par 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

54

CHAPITRE 3. COURBES

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 en
fait 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 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

Exemple : remplir la rgion comprise entre laxe des abscisses, la courbe de


1
la fonction x 7! et les droites dquation x = 1 et x = 2.
x

3.3. RGIONS LIMITES PAR DES COURBES

55

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 :
\begin{tikzpicture}
%\shorthandoff{:}
\filldraw ... ;
\draw ... ;
\draw ... ;
\draw plot ... ;
\draw ... ;
\end{tikzpicture}

% 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

56

CHAPITRE 3. COURBES

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
p
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 :

3.4. COMPLMENTS TECHNIQUES

57

\filldraw[fill=gray!20,draw=black]
(0,0) -- plot [domain=0:2*pi] (\x,{sin(\x r)}) -- cycle;
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 lui-mme 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 suffisent 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

58

CHAPITRE 3. COURBES

fournit en retour un fichier doc.pgf-plot.table, qui est ensuite utilis par


Tik Z pour tracer la courbe, 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 contler Gnuplot,
en particulier parametric pour tracer des courbes paramtres.
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}

3.5. EXERCICES

59

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
\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.

60

CHAPITRE 3. COURBES
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)
Lquation est quivalente
=
. Pour illustrer cela, on trace la
a
b
ln(x)
courbe de x 7!
et on tudie ses intersections avec des droites horizontales
x
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.

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].

3.5. EXERCICES

61

ln(2)
Pour les points dordonne
, on peut utiliser directement une formule
2
de calcul dans les coordonnes, par exemple (2,{ln(2)/2}).
On limite galement le domaine de la fonction, avec [domain=1.85:4.5].
Attention aux deux-points : 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);
\draw plot (\x+6,\x^2);
\draw plot (\x+8,\x^2);
\end{tikzpicture},

62

CHAPITRE 3. COURBES
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
0

termes daires.
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}

3.5. EXERCICES

63

On lutilise alors avec loption pattern (voir le manuel pour les dirents
motifs possibles : vertical lines, north east lines, dots, etc.) :
\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
Son quation cartsienne est x4 + y 2 = x2 , soit y = x 1 x2 ou y =
p
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
p lencadrement daires, il faut calculer dirents lments de
la fonction x 7! x 1 x2 sur [0; 1] :
!
p
2 1
la tangente en O a pour quation y = x, le maximum est
,
.
2 2

64

CHAPITRE 3. COURBES

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 spares 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.
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.

3.6. RSUM

65

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 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 i , j , k
!
1 !
1 !
p i
p j (ce nest pas
sont des vecteurs du plan, avec par dfaut k =
2 2
2 2
ce 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) :
66

4.1. COORDONNES (X,Y,Z)

67

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

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}

68

4.2
4.2.1

CHAPITRE 4. GOMTRIE DANS LESPACE

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.

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 :

4.2. QUELQUES FIGURES DE GOMTRIE


8
< x=1 t
y=t
d
et
:
z = 2t

69

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

Une solution mathmatique consiste construire le plan P parallle d et


contenant d0 (dquation x y + z + 2 = 0), puis le plan Q perpendiculaire

P
2
1
2
et contenant d0 (dquation x z = 0). 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
Alors la perpendiculaire commune d et d0 est la droite (HK).
Le problme est mathmatiquement rsolu, mais il reste faire la figure
suivante pour lillustrer :

H
K
d0

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
On obtient C 0
1, ,
; D0 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].

70

CHAPITRE 4. GOMTRIE DANS LESPACE


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).
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

4.3. COURBES ET SURFACES

71

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.

4.3.3

Cylindre x2 + y 2 = 1

Cest une surface de rvolution de reprsentation paramtrique


(cos(), sin(), t)

72

CHAPITRE 4. GOMTRIE DANS LESPACE

\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

Cest
p une surface
pde rvolution de reprsentation paramtrique
( 1 t2 cos(), 1 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 obtenue en faisant


p tourner
p 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

4.4. RSUM

73

dcider soi-mmes des reprsentations du relief, de la perspective, des parties


caches. A 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, par lopration plot.
Les surfaces peuvent tre reprsentes par leurs courbes de niveau, en combinant \foreach et 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 :
74

5.1. NOTIONS DE BASE

75

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.

76

CHAPITRE 5. REPRSENTATION DE DONNES

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};
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 :

5.1. NOTIONS DE BASE

77

7
plot[mark=*]

Nombre de notes

6
5

\draw[thick]

4
3
2
1
0

5
6
Notes

10

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

Diagrammes 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 :

78

CHAPITRE 5. REPRSENTATION DE DONNES


\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.1.5

5
6
Notes

10

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 :

5.1. NOTIONS DE BASE


\draw[line width=8mm,color=blue!50]

plot[ycomb]

6
Nombre de notes

79

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};

80

CHAPITRE 5. REPRSENTATION DE DONNES

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)};
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 donne 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 les prsenter de faon significative sur un diagramme 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

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
10

Chine
Inde
tats-Unis
Russie
France

On veut obtenir une figure de ce type :

Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine
Royaume-Uni
Iran
Argentine

20

30

40

50

60

70

80

90 Mt

5.2. DIAGRAMME BARRES HORIZONTALES

81

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

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

14
13
12
11
10
9
8
7
6
5
4
3
2
1

14
13
12
11
10
9
8
7
6
5
4
3
2
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
la vue 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 :

82

CHAPITRE 5. REPRSENTATION DE DONNES

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]

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

83

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

84

CHAPITRE 5. REPRSENTATION DE DONNES

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 ausssi 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.
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 est, dans ce cas, une liste de valeurs multiples.
Dans cet forme de la commande \foreach il y a ici deux variables :
\n qui va prendre pour valeur les noms des villes

5.2. DIAGRAMME BARRES HORIZONTALES

85

\y qui va prendre pour valeur lordonne 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};
10

20

30

40

50

60

70

80

90 Mt

Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine

Production 2004
Production 2005

Royaume-Uni
Iran
Argentine
Les principaux pays producteurs de bl (en millions de tonnes)

86

CHAPITRE 5. REPRSENTATION DE DONNES

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 :
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.

5.3. COURBE DES VARIATIONS DE DONNES

87

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

On produit ainsi le fichier : "producRiz.txt"

5.3.2

7
8
9
10
11
12
13
14
15
16

57.7
58.3
61.2
59.8
60.3
57.2
58.8
61.5
62.7
63.3

Courbe des variations : plot file

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

5.3.3

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);

88

CHAPITRE 5. REPRSENTATION DE DONNES

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);

5.3.4

Annotations, dcorations : \foreach, node, mark

On peut maintenant tiqueter les axes du quadrillage pour faciliter la lecture


des donnes qui sont aches.

5.3. COURBE DES VARIATIONS DE DONNES

89

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 le quel 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

90

CHAPITRE 5. REPRSENTATION DE DONNES

5.4
5.4.1

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 et 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 le type de figure 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;

5.4. DIAGRAMME SECTEURS

91

(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 :
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.

92

CHAPITRE 5. REPRSENTATION DE DONNES


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};
Cette fois-ci, le secteur va 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
2
moyenne des 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)

5.4. DIAGRAMME SECTEURS

93

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
}
{
\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 :

94

CHAPITRE 5. REPRSENTATION DE DONNES


Employs
Intermdiaires

13%

Ouvriers

9%

12%

Cadres
5%
3%

Artisans

2% Agriculteurs

Retraits

18%

38%

Inactifs
Rpartition par catgories socioprofessionnelles 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 : Ne jamais utiliser de coordonnes de points en dehors de
lintervalle [ 500; 500] en centimtres.

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
95

96

CHAPITRE 6. GRAPHES : INTRODUCTION


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.
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)

(2, 0)

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


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

(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. STYLES DES NUDS ET DES ARCS

6.2
6.2.1

97

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 darc. On prsentera les direntes options qui permettent de prciser le styles des arcs et de 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) :
Lille
Paris
Strasbourg
\draw[->,>=latex] (P) |- (L);
\draw[->,>=latex] (L) -| (S);
\draw[->,>=latex] (S) -| (P);
On peut aussi utiliser une liaison to suivie dun 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 :

98

CHAPITRE 6. GRAPHES : INTRODUCTION

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

Strasbourg

\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);
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 :

out=45
Paris

Lille

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);

6.2. STYLES DES NUDS ET DES ARCS

99

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

Dcoration des nuds : circle, ellipse, diamond

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


La forme de 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

\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 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 :

100

CHAPITRE 6. GRAPHES : INTRODUCTION

\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 dfinitions 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 lenvironnement {tikzpicture}, la porte est limite cet environnement.
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 styles 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. STYLES DES NUDS ET DES ARCS

6.2.5

101

Ancrage et position des nuds : P.south, left, 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] (P)at(2,2){\Large Paris};


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

Pour visualiser les dirents points dancrage dun nud, nous allons dabord
crer un nud de grande taille en utilisant les options de dcorations vue 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.east)

(N.south)
\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 :

102

CHAPITRE 6. GRAPHES : INTRODUCTION


(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, P.center, N.15

Le nom (N) fait rfrence au centre du nud comme (N.center), mais


nest pas identique cependant. 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)

6.3. TECHNIQUES AVANCES

6.3

103

Techniques avances

6.3.1

Chemins en toile : edge, bend, in, out

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

very near start


A R

B
pos=0.7

M
pos=0.5

Q
pos=0.25
A

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}

CHAPITRE 6. GRAPHES : INTRODUCTION


B
ay N end
dw
mi M ear
n

avec sloped

7
0.
=
s
po S

start
very near
A R

6.3.3

po
s=
Q 0.2
5

104

M 0.5
s=
o
p

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
xt
e

rotate=45
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

N
P

sloped,scale=1.5
sloped,scale=0.75

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

Voici deux figures dessines sparment :

6.3. TECHNIQUES AVANCES

105
B

J
C
Figure 1 :

Figure 2 :

O
Si on copie simplement le code de chaque figure dans un mme environnement
tikzpicture, les figures seront probablement superposes si leurs points sont
voisins.
B
C

OO

Heureusement, il existe un environnement scope qui peut tre vu comme un


sous-environnement tikzpicture auquel on peut aecter des options de dcalages comme loption xshift (suivi 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

shift
={(5,
-1)}

106

CHAPITRE 6. GRAPHES : INTRODUCTION

Ajoutons loption [rotate=60] au scope qui contient le code de la premire


figure, une rotation de 60est 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 cependant parfois utile de modifier lancrage de certains nuds.
Loption [shift={(5,-1)},rotate=-45,scale=1.5] a maintenant t affecte 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%.
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. Il y a cependant dplacement des textes qui
restent lis leurs points dancrage qui ont boug.

6.3. TECHNIQUES AVANCES

6.3.6

107

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. Il est toutefois 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 :

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}

108

6.3.7

CHAPITRE 6. GRAPHES : INTRODUCTION

Contournement dun nud

Si on construit un graphe complexe, il peut parfois arriver que certains nuds


gnent le passage dun arc, comme ci-dessous, ou 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 :

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

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. EXERCICES

6.4.1

109

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 style :
\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 dfini le style des points cardinaux :
\tikzstyle{point}=[circle,fill=blue!25,minimum width=5em]
Le mot le plus long est Ouest
, ont 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 :

110

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 obtenu 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 :

6.4. EXERCICES

111

\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.5

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 nuds par concatnation de variables et de les rutiliser plus tard.
Il sut ensuite de dessiner les liaisons, simples ou doubles.
%les liaisons simple entre C
\draw [thick](a)--(b);s
\draw [thick] (c)--(d);
\draw [thick] (e)--(f);

112

CHAPITRE 6. GRAPHES : INTRODUCTION

%les liaisons doubles entre C


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

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

6.5

113

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 des 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.
Les options comme thick, dashed, ->, *-o ou [-( permettent de prciser les
styles de traits ou de flches.
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 quadrilatres suivants : 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 signifie
que lensemble des carrs est strictement inclus dans lensemble des rectangles.

7.1.2

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}
114

7.1. GRAPHE DUNE RELATION

115

Quadrilatre

Paralllogramme

1.5

Rectangle

Losange 0

Carr
0

1.5
3

Le placement des nuds 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 dfini estun, le style de ces flches, pour les tracer en pointilles trs
paisses, 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);

116

CHAPITRE 7. GRAPHES : EXEMPLES


Quadrilatre

Paralllogramme

Rectangle

Losange

Carr
Le rsultat manque de lisibilit, car certaines flches traversent les nuds et
dautres se superposent.
vitons dabord les superposition en remplaant les droite 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);

7.1. GRAPHE DUNE RELATION

117

Quadrilatre

Paralllogramme

Rectangle

Losange

Carr
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};

118

CHAPITRE 7. GRAPHES : EXEMPLES

\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}
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 nud : 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.

7.2. ORGANIGRAMME INFORMATIQUE

119

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 instruction : 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$};
\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

2
2, 5
3
3, 5

120

7.2.3

CHAPITRE 7. GRAPHES : EXEMPLES

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.

Dbut
Lire un entier positif N

N >0 ?

Acher la somme S
S

S+N

Fin
1

7.2. ORGANIGRAMME INFORMATIQUE

121

(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 :

S+N

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


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

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};

7.2.4

Organigramme final
Dbut
Lire un entier positif N

non

N >0 ?

oui
Acher la somme S
S

S+N

Fin

Code complet de la figure :

(3, 4.5)

122

CHAPITRE 7. GRAPHES : EXEMPLES

\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
7.3.1

Diagrammes syntaxiques
Grammaire des expressions mathmatiques

Dessiner les diagramme 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. DIAGRAMMES SYNTAXIQUES

7.3.2

123

Alignement des nuds, tiquetage

On connat bien maintenant les mthodes de construction de graphes que


nous allons appliquer ce problme.
On dfini dirents style :
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

\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) {$($};

124

CHAPITRE 7. GRAPHES: EXEMPLES

\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 on t construites dans des environnements tikzpicture


spars. On aimerait maintenant les regrouper en une seule figure.
On peut pourrait recopier simplement leurs codes 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. On ne peut pas en fait sexprimer
directement de cette faon. Il faut dire : dcaler la deuxime figure de 2.5 cm,
la troisime de 5 cm ; etc.
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].

7.4. GRAPHE DE PREUVE

125

\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

126

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

7.4. GRAPHE DE PREUVE

127

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$};
2x + 3

On peut maintenant complter le diagramme :


2x + 3

2x

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 menbre de lquation. Par exemple :

128

CHAPITRE 7. GRAPHES: EXEMPLES

\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$};
2x + 3

3
2x

7.4.4

Flches courbes : bend, to


2x + 3

3
2x

4
/2

/2
x

S = {2}
\begin{tikzpicture}
\tikzstyle{membre}= [rectangle,draw,thick,dotted]
\tikzstyle{operation}=[->,>=latex]
\tikzstyle{etiquette}=[midway,fill=black!20]

7.4. GRAPHE DE PREUVE

129

\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 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.
\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

130

CHAPITRE 7. GRAPHES : EXEMPLES

La position des flches nest pas encore tout fait satisfaisante. on va lgremnt modifier les angles dentre et de sortie et prciser les point 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 :
=

2x + 3

on soustrait 3

on soustrait 3
2x + 3

on simplifie
2x
on divise par 2

on divise par 2
2x
2

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

4
2

7.5. RSUM

7.5

131

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. Leurs


rayons et leurs positions sont prcises 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 :

132

+E

8.1. LES ANNEAUX OLYMPIQUES

Centre
A
B
C
D
E

8.1.1

Pays
Europe
Asie
Afrique
Ocanie
Amrique

133

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 applique 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);

134

8.1.2

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

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);

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 30qui 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 arc danneaux correspondants aux zones concernes.
Cest dire les rgions colories en gris :

8.1. LES ANNEAUX OLYMPIQUES

135

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;

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

avance au dpart sans tracer de 3 dans la direction

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.

136

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

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 dtermin 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
\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 la
prambule \usetikzlibrary{calc} aprs avoir charg le package Tik Z (uniquement avec PGF version 2.10).
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}

8.2. DIAGRAMMES DE VENN

8.2

137

Diagrammes de Venn

Dans cet exemple, les diagrammes illustrent un sujet mathmatiques, 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 a 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)}

138

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

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.2

Coloriage : \fill, color, opacity

crire : \fill[magenta] \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[magenta] \E; par
\fill[magenta!50] \E; Hlas, cela provoque une erreur de compilation avec
le message :
! Missing \encsname inserted.
<to be read again> \penalty
En eet \fill[magenta] est une abrviation de \fill[color=magenta]
qui est permise par la syntaxe de Tik Z, car magenta est reconnu sans ambigut
comme une couleur par la commande \fill.
Par contre magenta!50 provoque une erreur. Dans ce cas, il est obligatoire
dcrire \fill[color=magenta!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.

8.2. DIAGRAMMES DE VENN

139

\fill[color=magenta!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.
Colorier en blanc consiste eacer la zone sur laquelle est appliqu la couleur
blanche.
A, B et A [ B : \draw et \fill
Le disque de A est simplement colori dans le rectangle de E :
\draw[magenta] \E; \fill[magenta] \A;
Le complmentaire A est obtenu en coloriant le rectangle de E puis ensuite
en eaant le disque de A, cest dire en le coloriant en blanc :
\fill[magenta] \E; \fill[white] \A;

De mme pour les ensembles B et B :

Pour lensemble A [ B on va superposer le disque de A et celui de B et pour


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

140

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

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[magenta] \E;
\begin{scope}
\clip \B;
\fill[magenta] \A;
\end{scope}

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

A\B
A\B
Lensemble A B et son complmentaire A
simple coloriage-eacement :
\draw[magenta] \E;
\fill[magenta] \A;
\fill[white] \B;

\fill[magenta] \E;
\fill[white] \A;
\fill[magenta] \B;

De mme pour les ensembles B

B peuvent se dessiner par

A et B

A:

8.2. DIAGRAMMES DE VENN

141

Enfin : A B = (A[B) (A\B) et on a dj vu prcdemment comment


reprsenter la runion et lintersection :
\draw[magenta] \E;
\fill[magenta] \E;
\fill[magenta] \A;
\fill[white] \A;
\fill[magenta] \B;
\fill[white] \B;
\begin{scope}
\begin{scope}
\clip \B;
\clip \B;
\fill[white] \A;
\fill[magenta] \A;
\end{scope}
\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 le 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 parcour 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 inattendu et diciles interprter.
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 :

142

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS


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 dj 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)}

8.2. DIAGRAMMES DE VENN

143

135
45

225

45
O

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
45

225

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[magenta] \E;
\fill[magenta] \AuB;

% ou respectivement \AnB \AmB \BmA

Et les complmentaires avec :


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

% resp. \AnB \AmB \BmA

144

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

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[magenta] \E;
\fill[magenta,even odd rule]
\A \B;

8.3

\fill[magenta,even odd rule]


\E \A \B;

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.
A quelle distance du rivage chapperez-vous
son regard dchirant, en disparaissant lhorizon ?

8.3. PERSONNAGES ET DCORS

145

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)

On a

cos() =

On peut prendre

R
R+h

donc

R 6365 km,

c = R

et

d
R

d = R tan()

h1 = 0, 001 km,

h2 = 0, 004 km.

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.2

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 :

146

8.3.3

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS

Les personnages : \fill, ellipse, circle

Les personnages sont de petites silhouettes constitue dune ellipse et dun


cercle dessines 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

8.3. PERSONNAGES ET DCORS

147

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


S
T

Une fois les points A et B plac on peut modifier la courbure en jouant de


faon assez intuitive avec les points S ou T . On montre ici deux dplacement
du point T et leet produit sur la courbe :

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);

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 commune, 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

148

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS


+(0, 2)

+(0, 2)
1

(3, 0)

(0, 0)

+(0, 2)
2

+(0, 2)

(0, 4)
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 paramtre les options de la
commande \draw et faire appel cette commande plusieurs fois, pour dessiner
les curs des endroits dirents avec des orientations direntes :

8.3. PERSONNAGES ET DCORS

149

% 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)

8.3.6

La figure complte : scope, shift, rotate

On regroupe enfin tous les lments de la figure 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 on conseille de dessiner


un demi triangle quilatral :

150

CHAPITRE 8. DES FIGURES AUX ILLUSTRATIONS


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 dessine 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 carr de 1,5 cm sur 2 cm de ct :
(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
151

152

CHAPITRE 9. COMPLMENTS TECHNIQUES

semble donc subir les mmes transformations, mais il sagit en ralit de changement du repre dans lequel est dessin 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 :

(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

Rotation : [xshift=6cm,rotate=45]]

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

(0, 0)

rotate=45
xshift=6cm

9.1. TRANSFORMATIONS AVEC SCOPE

153

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

rotate=30

(0, 0)

xshift=6cm

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

m
6c
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

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

154

CHAPITRE 9. COMPLMENTS TECHNIQUES

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 subi dj subi lhomothtie et dont les units ont t multiplies par le
rapport dhomotthie.
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]

(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 aussi composer les trois transformations, traunslation en premier,
homothtie et rotation ensuite dans un ordre quelconque.
Par exemple : \begin{scope}[xshift=6cm,rotate=60,scale=2.25]

9.1. TRANSFORMATIONS AVEC SCOPE

155

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). Pr 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 :

CHAPITRE 9. COMPLMENTS TECHNIQUES

[l
in
e

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

156

[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. Lhomottie porte sur les chemins
(path) dessins par \draw mais pas sur leurs paisseurs dfinies 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 remplac 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 :

9.1. TRANSFORMATIONS AVEC SCOPE

157

[scale=2.5]

[scale=0.5]

Remarque : Pour que cet exemple fonctionne correctement il ne faut pas


oublier dinclure dans la prambule \usetikzlibrary{calc} aprs avoir charg
le package Tik Z (uniquement avec PGF version 2.10).

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
x

te

[scale=0.5]
30

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

158

CHAPITRE 9. COMPLMENTS TECHNIQUES

Te
xt
e

Te
xt

Text
e

la mme inclinaison. La plupart du temps, on veut simplement modifier la taille


de la figue 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.1.6

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

9.2

159

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}
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
.

160

CHAPITRE 9. COMPLMENTS TECHNIQUES

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.2

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] ...

9.2. AU SUJET DES ARBRES

161
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 styles 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}

162

CHAPITRE 9. COMPLMENTS TECHNIQUES

9.2.3

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 et grow (qui inverse lordre des frres) :
\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}

9.3. LIAISONS ENTRE FIGURES : OVERLAY

163

child{node [individu=blue]{Papy}}
child{node [individu=red]{Mamie}}
};

9.2.5

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 nud origine et extrmit du chemin on
peut utiliser les commande 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.

164

CHAPITRE 9. COMPLMENTS TECHNIQUES


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 :
(figure) pour le point situ entre le mot "figure" et le mot "est" de la premire
ligne de texte
(parallelogramme) pour le sommet nord-ouest du paralllogramme
(centre) pour le centre du paralllogramme
(point) pour le point situ entre le mot "point" et le mot "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 dhabitude 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]

9.3. LIAISONS ENTRE FIGURES : OVERLAY

165

\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 :

Tik
Z

\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.3.3

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.

166

9.4

CHAPITRE 9. COMPLMENTS TECHNIQUES

Rsum

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 graphe 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 textes 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 \.
167

168

ANNEXE A. LA SYNTAXE DE TIKZ

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 du document les bibliothques Tik Z ncessaires,
comme arrowtips, patterns ou calc.
Exemple : \usetikzlibrary{patterns, arrowtips}
\tikzset
Pour dfinir des options globalement dans tout le document.
Exemple : \tikzset{rougegris/.style={draw=gray,fill=red}}
Applique un nud, cette option encadrera le nud en gris et coloriera
lintrieur en rouge. Exemple : node[rougegris]{texte}
La commande \tikzset peut aussi tre utilise 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).
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).
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}. 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 qu lintrieur dun environnement {tikzpicture}. Les principales sont :
\clip, \coordinate, \draw, \fill, \filldraw, \node, \path

A.3. LES COORDONNES

A.3
A.3.1

169

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.3.3

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.

170

ANNEXE A. LA SYNTAXE DE TIKZ

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 pour
largument dune opration dpend 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)
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);

A.5. LES OPTIONS

171

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}

172

ANNEXE A. LA SYNTAXE DE TIKZ

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

rouge
pas
bleu
vert
gris

A.6. UTILISER DES COMMANDES LATEX DANS TIKZ

173

1 2 3 4 5

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.
174

175

Le ! dans la dfinitions des couleurs


Si on voit le message suivant :
! Missing \endcsname inserted.
<to be read again>
\penalty
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 deuxpoints qui est responsable de lerreur.
Le plus simple, pour corriger cette erreur, est dajouter ds le dbut de
lenvironnement {tikzpicture} la commande \shorthandoff{:}
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}}}

176

ANNEXE B. ERREUR ! QUE FAIRE ?

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 :
Tik Z & PGF Manual for Version 2.00
http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf

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 : LATEX pour limpatient . La lecture pralable de cet
ouvrage remarquable, simple, mais cependant trs complet vous sera trs utile :
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 prsentation 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/

Vous y trouverez aussi de nombreux exemples :


http://www.altermundus.fr/pages/pdflatex/tikz.html

177

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.
Tik Z & PGF Manual for Version 2.00
http://www.ctan.org/tex-archive/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf

Conventions dcriture
Dans 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 crochet, ainsi : [above]
les environnements entre accolade, 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 pointes de
flches sont possibles, comme par exemple |->, *-o, |<->>, [-( ou ->>.
178

179
On peut changer aussi le dessin des pointes avec lotpion >= 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
(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] (Positioning Nodes 15.5 page 154)
Options de placement des nuds. (Voir : node)
(Making Trees Grow 17 page 183)

arbre
(Voir : child)
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] (Positioning Nodes 15.5 page 154)
Options de placement des nuds. (Voir : node)
[bend left], [bend right]
(Curves 40.2 page 367)
Options pour fixer la courbure dun ligne. (Voir : to)
[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)
child

(Actions on Paths 14 page 130)

(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.

180

ANNEXE D. GLOSSAIRE
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.

[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 contrles (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)

181
[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 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 )
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]
(Interior Rules 14.4.2 page 138)
Rgle de dfinition de rgion. (Voir : \clip ou \fill)
(Creating a Picture 11.2 page 96)

figure
(Voir : {tikzpicture} \tikz)
\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)

182

ANNEXE D. GLOSSAIRE

\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

(Arrow Tip Library 22 page 224)


Style de pointe de flche, [>=latex]. (Voir : ->)

[left], [right]
(Positioning Nodes 15.5 page 154)
Options de placement des nuds. (Voir : node)
[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)
Options 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]
Options pour fixer les dimensions dun nud. (Voir : node)
[near end]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Options pour placer des nuds sur une ligne. (Voir : -- ou to)

183
[near start]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Options pour placer des nuds sur une ligne. (Voir : -- ou to)
(Nodes and Edges 15 page 146)

nud
(Voir : node ou \node)
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]
(Interior Rules 14.4.2 page 138)
Rgle de dfinition de rgion. (Voir : \clip ou \fill)
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)
[out=], [in=]
(Curves 40.2 page 367)
Options pour fixer la courbure dune ligne. (Voir : to)
[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.

184

ANNEXE D. GLOSSAIRE
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 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)
Options pour placer des nuds sur une ligne. (Voir : -- ou to)
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.

185
[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 environnement
{tikzpicture} distincts. (Voir : [overlay])
[right], [left]
(Positioning Nodes 15.5 page 154)
Options de placement des nuds. (Voir : node)
[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)
Options pour aligner des nuds sur une ligne. (Voir : -- ou to)
[smooth]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Options qui provoque le lissage dune courbe. (Voir : plot)

186
south

ANNEXE D. GLOSSAIRE
(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]

.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
(Arrow Tip Library 22 page 224)
Style de pointe de flche, [>=stealth]. (Voir : ->)
[step=], [xstep=], [ystep=]
(The Grid Operation 13.9 page 121)
Option pour fixer le pas de la grille. (Voir : \grid)
[tension=]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Options qui contrle le niveau lissage dune courbe. (Voir : plot)
[text width=]
(Options for the Text in Nodes 15.4 page 152)
Options 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)
Option 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 avec \tikz, qui est une commande quivalente lenvironnement {tikzpicture}

\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}}

187
\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
luis associer des options pour obtenir des lignes courbes, comme : [bend
left], [bend right], [in=] ou [out=]

[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
!
1 !
1 !
p
deux dimensions 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

Vous aimerez peut-être aussi