Home

Cahiers

image

Contents

1. Karl pense que tout cela est un peu trop petit et qu il ne peut pas continuer sans apprendre comment mettre l chelle Pour cela il peut ajouter l option scale 2 3 Il peut ajouter cette option a chaque commande draw mais ce serait maladroit Au lieu de cela il l ajoute tout l environnement ce qui conduit cette option s appliquer partout l int rieur begin tikzpicture scale 2 3 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle 1cm draw 3mm 0Omm arc 0 30 3mm end tikzpicture Cahiers GUTenberg n 48 Avril 2007 Comme pour les cercles on peut sp cifier deux rayons pour obtenir un arc d ellipse tikz draw 0 0 arc 0 315 1 75cm and icm 1 11 D COUPAGE D UN CHEMIN Pour gagner un peu de place dans cet article il serait bien de rogner un peu le graphique de Karl afin de pouvoir nous concentrer sur les parties int ressantes D couper est vraiment simple avec TikZ On utilise la commende clip qui d coupe tout le dessin qui suit Cela marche comme draw mais au lieu de tracer quelque chose a utilise le chemin donn pour d couper tout ce qui suit begin tikzpicture scale 3 clip 0 1 0 2 rectangle 1 1 0 75 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw
2. filldraw fill green 20 draw green 50 black 0 0 3mm Omm arc 0 30 3mm cycle draw red very thick 30 1cm 0 0 5 draw blue very thick 30 1cm 0 0 5 0 0 end tikzpicture Notez qu il n y a pas de entre 30 1cm et 0 0 5 En d tail le chemin est interpr t comme suit d abord le 30 1cm me dit de d placer mon crayon jusque cos30 1 2 Ensuite vient une autre d fi nition de coordonn es aussi je d place mon crayon sans rien tracer Ce nouveau point est une unit sous la derni re position c d cos30 0 Enfin je d place le crayon l origine mais cette fois je trace quelque chose cause du Pour voir la diff rence entre et regardez ce qui suit begin tikzpicture def rectanglepath 1cm Ocm Ocm 1icm 1cm 0cm cycle draw 0 0 rectanglepath draw 1 5 0 rectanglepath end tikzpicture Cahiers GUTenberg n 48 Avril 2007 Par comparaison lorsque l on utilise un simple les coordonn es sont diff rentes begin tikzpicture def rectanglepath 1cm Ocm 1cm 1icm Ocm icm cycle draw 0 0 rectanglepath draw 1 5 0 rectanglepath end tikzpicture Naturellement on aurait pu crire tout cela plus clairement et a moindre frais comme ceci avec un simple ou un double tikz draw 0 0 rectangle 1 1 1 5 0 recta
3. foreach x in 1 0 5 1 draw xshift x cm Opt 1pt Opt 1pt Karl est curieux de savoir ce qui se passerait dans une situation plus complexe lorsqu il y a disons 20 graduations Cela semble ennuyeux d avoir mentionner explicitement tous les nombres dans l ensemble de foreach En effet on peut utiliser dans l expression du foreach Tutoriel Tikz 47 48 pour it rer sur un grand nombre de valeurs qui doivent tre cependant des nombres r els sans dimension comme dans l exemple suivant tikz foreach x in 1 10 draw x 0 circle 0 4cm DOLVOOOOOOO Si on fournit deux nombres avant le l expression du foreach utilisera leur diff rence comme pas tikz foreach x in 1 0 5 1 draw x cm 1pt x cm 1pt On peut aussi emboiter les boucles pour cr er des effets int ressants begin tikzpicture scale 8 foreach x in 1 2 5 7 8 12 foreach y in 1 5 draw x y 5 5 rectangle 5 5 draw x y node x y aa 1 5 2 5 3 5 4 5 5 5 7 5 8 5 9 5 10 5 11 5 12 5 1 4 2 4 3 4 4 4 5 4 7 4 8 4 9 4 10 4 11 4 12 4 1 3 2 3 3 3 4 3 5 3 7 3 8 3 9 3 10 3 11 3 12 3 1 2 2 2 3 2 4 2 5 2 7 2 8 2 9 2 10 2 11 2 12 2 1 1 2 1 3 1 4 1 5 1 7 1 8 1 9 1 10 1 11 1 12 1 Lexpression foreach peut faire des ch
4. la figure depuis le texte principal avec quelque chose comme Pour un exemple de quicksort en action voir la figure 2 1 page Y La plupart des ouvrages sur la typographie et des marches d diteur recommandent de ne pas utiliser les abr viations comme fig 2 1 mais d crire au long figure 2 1 Largument principal contre les abr viations est que le point est trop pr cieux pour le gaspiller dans une abr viation Lid e est que le point am ne le lecteur penser que la phrase s arr te apr s fig et qu il doit revenir consciemment en arri re pour se rendre compte que la phrase ne se finissait pas l apr s tout Tutoriel Tikz 79 80 Largument en faveur des abr viations est qu elles conomisent de la place Personnellement je ne suis convaincu par aucun de ces arguments D un c t je n ai jamais vu de preuve s rieuse que les abr viations ralentissent la lecture D un autre abr ger tous les figure en fig a peu de chance d conomiser ne fusse qu une seule ligne dans la plupart des documents J vite les abr viations 3 5 COH RENCE DU TEXTE ET DES FIGURES Peut tre que l erreur la plus fr quemment faite quand on cr e des graphiques souvenez vous qu une erreur de conception est toujours juste de l ignorance est d avoir une discordance entre l aspect des graphiques et celui du texte Il est fr quent que les auteurs utilisent d
5. end scope draw 3 0 3 1 end tikzpicture D limiter la port e l aide de scope a un autre effet int ressant tout changement affectant la surface d coup e est local a la port e Ainsi si on crit clip quelque part dans la port e l effet de cette commande clip s ach ve la fin de la port e C est utile car il ny a pas d autre moyen d agrandir la partie d coup e Karl a d j vu galement que les options donn es une commande ne s appliquent qu cette commande Il se trouve que la situation est un peu plus compliqu e D abord les options pass es une commande comme draw ne sont pas vraiment des options de la commande mais des options de chemin et peuvent tre donn es n importe o dans le chemin Ainsi au lieu de draw thin 0 0 1 0 on peut crire aussi draw 0 0 thin 1 0 ou draw 0 0 1 0 thin Tous ces codes auront le m me effet Cela peut para tre trange puisque dans le dernier cas il pourrait sembler que le thin ne prend effet qu apr s que la droite de 0 0 1 0 a t trac e Toutefois la plupart Cahiers GUTenberg n 48 Avril 2007 des options de graphique ne s applique qu un chemin complet En fait si l on crit et thin et thick dans un m me chemin c est la derni re des options donn es qui gagne En lisant ce qui pr c de Karl remarque que seulement la plupart des options de graphique s applique au chemin comp
6. que j ai ajout e parce que je n arrivais jamais me souvenir de la syntaxe des autres extensions foreach est d finie dans l extension pgffor et peut tre utilis e ind pendamment de PGF TikZ la charge au tomatiquement Dans sa forme de base la commande foreach est d une utilisation ais e foreach x in 1 2 3 x x x 4 x 1 x 2 x 3 x 4 La syntaxe g n rale de cette macro est foreach variable in listede valeurs commandes l int rieur de commandesla variable prendra les diverses valeurs Si commandes ne commence pas par une accolade tout ce qui pr c de le prochain point virgule est utilis comme commandes Cahiers GUTenberg n 48 Avril 2007 Pour Karl et les graduations sur les axes il pourrait utiliser le code suivant begin tikzpicture scale 3 clip 0 1 0 2 rectangle 1 1 1 51 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 filldraw fill green 20 draw green 50 black 0 0 3mm 0mm arc 0 30 3mm cycle draw gt 1 5 0 1 5 0 draw gt 0 1 5 0 1 5 draw 0 0 circle icm foreach x in i1cm 0 5cm icm draw x 1pt x 1pt foreach y in 1cm 0 5cm 0 5cm 1cm draw 1pt y 1pt y end tikzpicture p En fait il y a plusieurs fa on de cr er les graduations Par exemple Karl pourrait avoir plac le draw entre accolades Il pourrait aussi avoir utilis par exemple
7. 50 south east valeur pour anchor 50 south west valeur pour anchor 50 startscope 44 starttikzpicture 27 stealth valeur pour gt 43 stopscope 44 stoptikzpicture 27 straight line 24 style option 32 sud voir south sud est voir south east sud ouest voir south west swap option 70 text 49 text option 71 text centered option 71 text width option 54 71 q Till TANTAU Institut f r Theoretische Informatik Universit t zu L beck tantau users sourceforge net texte voir text thick style 33 thin style 33 tikz 28 tikzpicture 26 tikzpicture environnement 25 tikzstyle 60 tirets 89 to op ration 67 top color option 38 tournant droite voir bend right tracer voir draw tracer et remplir voir filldraw translater voir shift tr s pais voir very thick tr s fin voir very thin ultra pais voir ultra thick ultra thick style 33 useasboundingbox 37 very near end option 54 very thick style 33 very thin style 31 west valeur pour anchor 50 XCOLOR extension 37 xshift option 45 xslant option 46 yshift option 45 yslant option 46 http sourceforge net projects pgf Cahiers GUTenberg n 48 Avril 2007
8. Dans ce dernier cas les diff rences dans les tailles ne sont dues qu en partie a la distortion Le ou les dessinateur s du graphique originel ont fait la part du Wind trop petit m me en tenant compte de la distortion Comparez simplement la taille de Wind et celle de Regenerative en g n ral D apr s sa l gende ce diagramme est sens nous dire que le char bon est la plus importante source d nergie en Allemagne en 2004 En laissant de c t les distortions dues l effet superflu et trompeur de la 3D cela prend un temps certain pour capter ce message Le charbon comme source d nergie est partag e en deux secteurs un pour le Steinkohle et un pour le Braukohle deux sortes diff rentes de charbon Lorsqu on les ajoute on voit que toute la partie inf rieure du diagramme est consacr e au charbon Les deux aires des diff rentes sortes de charbon ne sont pas du tout reli es visuellement Plut t deux couleurs diff rentes sont utilis es les annotations sont sur des c t s diff rents du graphique Par comparaison Regenerative et Wind sont tr s intimement reli s Le code de couleur du graphique ne suit aucune structure logique Pourquoi l nergie nucl aire en vert L nergie renouvelable est en bleu p le les autres sources en bleu On a presque l impression d une plaisanterie quand on voit que la surface pour Braunkohle qui se traduit li
9. TikZ ist kein Zeichenprogramm Karl trouvait tout cela un peu trange et TikZ semblait indiquer que cette extension n tait pas ce dont il avait besoin Toutefois ayant utilis les logiciels GNU depuis un bon moment et GNU n tant pas Unix il semblait encore y avoir de l espoir Son fils l assurait que le nom de TikZ tait fait pour pr venir les gens que TikZ n est pas un logiciel que l on peut utiliser pour faire des graphiques avec une souris ou une tablette C est plut t quelque chose comme un langage pour graphique 1 1 NONC DU PROBL ME Karl veut placer un graphique dans le prochain poly de ses tudiants En ce moment il enseigne le sinus et le cosinus Ce qu il voudrait faire est quelque chose qui ressemblerait id alement ceci 1 Ce qui signifie TikZ n est pas un programme de dessin N D T Cahiers GUTenberg n 48 Avril 2007 Se Langle a vaut 30 dans l exemple 1 6 en radians Le sinus de a qui est la longueur du segment rouge est sina 1 2 Par le th or me de Pythagore il vient cos a sin a 1 Donc la longueur du segment bleu qui est le cosinus de a 1 cosa 1 2 vaut cosa V1 1 4 373 3 Cela d montre que tana qui est la longueur du segment orange vaut sing tang 1 73 1 cosa 1 2 PR PARER L ENVIRONNEMENT Pour dessiner une figure avec TikZ on doit au d but de celle ci dire TeX ou LTEX que
10. d op ration move to superflues juste pour placer des n uds Il est heureux d apprendre qu il y a d autres mani res d ajouter des n uds d une fa on plus raisonnable D abord l op ration node nous autorise crire at coordinate afin de d finir directement o le n ud doit tre plac en rendant caduque la r gle qui veut qu il soit plac la derni re coordonn e Hagen peut donc crire ce qui suit begin tikzpicture O path node at 0 2 shape circle draw node at 0 1 shape circle draw node at 0 0 shape circle draw O node at 1 1 shape rectangle draw node at 1 1 shape rectangle draw end tikzpicture O Maintenant Hagen reste encore avec un simple chemin vide mais au Tutoriel Tikz 99 60 moins sans trange move to Il se trouve que l on peut encore apporter une am lioration la commande node est une abr viation pour path node ce qui permet a Hagen d crire begin tikzpicture O node at 0 2 circle draw node at 0 1 circle draw node at 0 0 circle draw O node at 1 1 rectangle draw node at 1 1 rectangle draw end tikzpicture O Hagen pr f re cette syntaxe la pr c dente Notez que Hagen a ga lement omis les shape car de m me que pour les color TikZ permet d omettre les shape s il n y a pas de confusion possible 2 5 UTILISER LES S
11. e en argument de l environnement la fin de l environnement tikzpicture les couches sont plac es les unes au dessus des autres en commen ant par la couche d arri re plan Ce qui fait que tout ce qui est dessin sur la couche de fond est sous le texte principal Styles comme pr c demment begin tikzpicture bend angle 45 scale 4 node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical right of critical edge pre critical edge post bend right node auto swap 2 waiting edge pre bend left semaphore node transition enter critical left of critical edge post critical edge pre bend left waiting edge post bend right semaphore begin pgfonlayer background filldraw fill black 30 draw red Cahiers GUTenberg n 48 Avril 2007 semaphore south enter critical west rectangle waiting north leave critical east end pgfonlayer end t ikzpicture eo 2 14 LE CODE COMPLET Hagen a maintenant enfin tout rassembl Et ce n est que maintenant qu il apprend qu il existe d j une biblioth que d di e aux r seaux de Petri Il se trouve que cette biblioth que fournit essentiellement les m mes d finitions que celles de Hagen Par exemple elle d finit un style place d une mani re similaire ce qu a fait Hagen Ajuster le code pour
12. ellipse Au lieu d un seul rayon on en donne deux l un pour la direc tion des x et l autre pour celle des y s par s par and tikz draw 0 0 ellipse 20pt and 10pt T Tutoriel Tikz 29 30 Pour tracer une ellipse dont les axes ne sont pas horizontaux et ver ticaux mais pointent dans une direction arbitraire une ellipse tour n e comme C on peut utiliser des transformations ce que l on ex pliquera plus loin En passant le code de la petite ellipse est tikz draw rotate 30 0 0 ellipse 6pt and 3pt Donc pour retourner au probl me de Karl il peut crire draw 0 0 circle 1cm pour tracer un cercle begin tikzpicture draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 C gt draw 0 0 circle 1cm end tikzpicture ce moment l Karl est un peu alarm de voir ce cercle si petit quand il voudrait que la figure finale soit bien plus grande Il est content d apprendre que TikZ poss de de puissantes options de transformation et qu agrandir tout d un facteur quelconque est tr s facile Mais gardons la taille comme elle est pour le moment afin de gagner un peu de place 1 6 CONSTRUCTION D UN CHEMIN RECTANGULAIRE La prochaine chose que nous voudrions avoir est un quadrillage de fond Il y a plusieurs mani res de l obtenir Par exemple on peut tracer un grand nombre de rectangles Comme les rectangles sont si courants il y a une syntaxe sp ciale pour eux pour ajoute
13. quation y sinx ou y cos x pour x dans l intervalle 0 7 2 de telle sorte que le point courant soit le point de d part de la courbe et que celle ci finisse au point donn Voici deux exemples Une sinusoide tikz draw x 1ex y 1ex f Une sinuso de 0 0 sin 1 57 1 tikz draw x 1 57ex y 1ex 0 0 sin 1 1 cos 2 0 sin 3 1 cos 4 0 PAS 0 1 cos 1 0 sin 2 1 cos 3 0 sin 4 1 1 13 TRACER ET COLORIER Revenant la figure Karl veut maintenant colorier l angle avec un vert tr s p le Pour cela il utilise fil1 au lieu de draw Voici ce que fait Karl begin tikzpicture scale 1 5 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle icm filllgreen 20 white 0 0 3mm Omm arc 0 30 3mm 0 0 end tikzpicture Cahiers GUTenberg n 48 Avril 2007 La couleur green 20 white est compos e de 20 de vert et de 80 de blanc Une telle expression de couleur est possible car PGF utilise l ex tension xcolor de Uwe Kern Voyez la documentation de cette extension pour des d tails sur les expressions de couleur Que se serait il pass si Karl n avait pas ferm le chemin avec 0 0 Dans ce cas le chemin aurait t ferm automatiquement et on aurait pu omettre le dernier point En fait il aurait mieux valu coder la place quelque chose comme ce qui suit fill gr
14. tex 1 2 3 Pr paration de l environnement en ConTEXt Hans l oncle de Karl utilise ConTEXt Comme Gerda Hans peut aussi utiliser TikZ Au lieu de usepackage tikz il crit usemodule tikz Au lieu de begin tikzpicture il crit starttikzpicture et a la place de end tikzpicture il crit stoptikzpicture Sa version de l exemple est la suivante 4h fichier ConTeXt usemodule tikz starttext Nous travaillons sur starttikzpicture draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 stoptikzpicture stoptext Hans compilera maintenant son fichier comme d habitude avec texexec 1 3 CONSTRUCTION D UN CHEMIN DROIT Le bloc de base de toute figure dans TikZ est le chemin path Un chemin est une suite de segments de droites ou de courbes qui sont connect s ce n est pas le tout de la chose mais laissons les complications pour l instant On commence un chemin en donnant les coordonn es du point repr sentant sa position de d part entre parenth ses comme Tutoriel Tikz 27 28 dans 0 0 On continue par une suite d op rations d extension de chemin La plus simple est que l on a d j utilis e Elle doit tre suivie d autres coordonn es et tend le chemin en ligne droite jusqu la nouvelle position Par exemple si nous transformions les deux chemins des axes en un seul ceci s en suivrait tikz draw 1 5 0 1 5 0 0 1 5 0 1 5 Karl est un peu
15. corners fill red 10 inner sep 1ex The graphic draw style help lines step 0 5cm 1 4 1 4 grid 1 4 1 4 draw 0 0 circle 1cm begin scope style axes draw gt 1 5 0 1 5 0 node right x coordinate x axis draw gt 0 1 5 0 1 5 node above y coordinate y axis foreach x xtext in 1 5 frac 1 2 1 draw xshift x cm Opt ipt Opt 1pt Cahiers GUTenberg n 48 Avril 2007 nodel below fill white xtext foreach y ytext in 1 5 frac 1 2 5 frac 1 2 drawlyshift y cm Cipt 0pt 1pt 0pt node left fill white ytext end scope filldraw fill green 20 draw anglecolor 0 0 3mm 0pt arc 0 30 3mm draw 15 2mm node anglecolor alpha draw style important line sincolor 30 1cm node left 1pt fill white sin alpha 30 1cm x axis draw style important line coscolor 30 1cm x axis node below 2pt fill white cos alpha 0 0 draw style important line tancolor 1 0 node right 1pt fill white displaystyle tan alpha color black frac color sincolor sin alpha color coscolor cos alpha intersection of 0 0 30 1cm and 1 0 1 1 coordinate t draw 0 0 t draw xshift 1 85cm node right text width 6cm style information text L color anglecolor angle alpha vaut 30 degre dans 1 exemple pi 6 en radians Le color sincolor sinus
16. d grad voir shade arc op ration 33 ar te voir edge arri re plan voir background arrow 41 arrow tip 41 at option 59 au dessous voir below au dessus voir above auto option 70 background 72 backslash 51 ball color option 38 barre oblique voir slash barre oblique inverse voir backslash below option 51 below of option 63 bend option 36 bend angle option 69 bend right option 68 boite cadre voir bounding box bottom color option 38 boucle voir Loop boucle pour voir for loop bounding box 37 cercle voir circle chaque tiquette voirevery label chemin voir path circle option 29 circle valeur pour shape 58 Tutoriel Tikz 89 90 clip 35 clip option 35 clipping 35 cm option 46 coh rence 81 color option 32 colorier voir fill control point 28 coordinate 39 coordonn e voir coordinate cos op ration 36 couches voir layer couleur voir color courbe voir curve voir line curve 24 28 cycle op ration 37 dans voir in dash pattern option 33 dashed style 33 dashed line 33 d clive voir sloped d coupage voir clipping d couper voir clip d grad voir shading dehors voir out dense 33 d placer voir shift dessiner voir draw dotted style 33 draw 26 draw option 32 35 59 droite voir right droite une voir line voir straight line east valeur pour an
17. du n ud semaphore begin tikzpicture node place waiting node place critical C below of waiting node place semaphore below of critical E C node transition leave critical s lt 3 S right of critical node transition enter critical left of critical node red above at semaphore north s leqslant 3 end tikzpicture C est une approche g n rale qui marchera toujours 2 Hagen peut utiliser l option sp ciale label Cette option est pass e un n ud et ajoute un autre n ud pr s de celui auquel on a pass l op tion Voici l id e quand on construit le n ud semaphore on souhaite indiquer que l on veut au dessus de lui un autre n ud contenant la ca pacit Pour cela on utilise l option label above s leqslant 3 Cette option est interpr t e comme suit on veut un n ud au dessus above du n ud semaphore et ce n ud pr sentera le texte s lt 3 Au lieu de above on peut galement utiliser avant le deux points des choses comme below left ou un nombre comme 60 begin tikzpicture node place waiting node place critical C below of waiting node place semaphore below of critical C E label above s leqslant 3 s lt 3 node transition leave critical right of critical node transition enter critical left of critical end tikzpicture On peut aussi donner de mu
18. edge fait qu un nouveau chemin est construit consistant en un to entre le n ud enter critical et le n ud qui suit la commande edge Pour la touche finale on introduit deux styles pre et post et on utilise l option bend angle 45 qui d finit les deux angles de courbure d un coup Styles place et transition comme pr c demment tikzstyle pre lt shorten lt 1pt gt stealth semithick tikzstyle post gt shorten gt 1pt gt stealth semithick begin tikzpicture bend angle 45 node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical gt right of critical edge pre critical edge post bend right waiting edge pre bend left semaphore node transition enter critical left of critical edge post critical edge pre bend left waiting edge post bend right semaphore end tikzpicture Tutoriel Tikz 69 2 11 AJOUTER DES TIQUETTES PR S DES LIGNES Ce que fait Hagen ensuite c est ajouter 2 pr s des arcs Pour cela Hagen peut utiliser le placement automatique de n ud de TikZ si l option auto est ajout e TikZ placera les n uds de telle sorte qu ils ne soient pas sur la courbe mais c t d elle En ajoutant swap on obtiendra la position sym trique de l tiquette par rapport la courbe Voici un exemple g n ral begin tikzpicture auto
19. l on veut commencer une figure En ATEX on utilisera l environnement tikzpicture en plain TEX on commencera la figure par tikzpicture et on la finira par endtikzpicture 1 2 1 Pr paration de l environnement en ATEX Karl qui utilise IAT X cr era donc son fichier comme suit documentclass article par exemple usepackage tikz begin document Nous travaillons sur begin tikzpicture draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 end tikzpicture end document Tutoriel Tikz 25 26 Une fois le fichier ex cut c d compil par pdflatex ou par latex suivi de dvips le r sultat contiendra quelque chose qui ressemblera ceci Nous travaillons sur D accord pas encore toute la figure pour l instant mais nous avons d ja plac les axes Enfin pas tout a fait mais nous avons des droites qui deviendront des axes Soudain Karl a le sentiment poignant que la figure est encore loin Regardons ce code de plus pr t D abord on charge l extension TIKZ Cette extension est appel e interface au syst me de base de PGF La couche de base d crite dans le manuel complet est quelque peu disons basique et de ce fait plus difficile a utiliser Linterface rend les choses plus faciles en fournissant une syntaxe plus simple Dans l environnement il y a deux commandes draw Elles signifient Le chemin qui est sp cifi apr s la commande et jusqu au point virgule doit
20. le fait avec des italiques De tels caract res se fondent correctement dans le texte principal de loin vous ne pourriez pas dire quelle page contient des italiques mais vous verriez imm diatement un seul mot en gras Si les romans sont compos s comme cela c est pour suivre le paradigme vitez ce qui perturbe Une bonne typographie comme une bonne organisation est quelque chose que l on ne remarque pas Le boulot de la typographie est de rendre la lecture du texte c d l absorption des informations qu il contient aussi ais e que possible Pour un roman le lecteur absorbe le contenu en lisant le texte ligne ligne comme s il coutait quelqu un lui racontant l histoire Dans ces circonstances tout ce qui dans la page emp che le regard d avancer rapidement et r guli rement d une ligne l autre rendra le texte plus difficile lire Tutoriel Tikz 87 88 Maintenant prenez un de vos magazines pr f r s ou un journal et regardez une page typique Vous remarquez que beaucoup de choses se passent sur la page Les polices sont utilis es des tailles diff rentes et dans des arrangements diff rents le texte est organis en colonnes troites souvent entrelac es de photos Si les magazines sont mis en pages de la sorte c est cause du paradigme attirez l attention On ne lit pas un magazine comme on lit un roman Au lieu de lire un magazine ligne ligne on utilise les titres et les r sum
21. place tokens 1 w1 node place c1 below of w1 node red place s1 below of c1 xshift 5mm label left s node red place tokens 3 s2 below of ci xshift 5mm label right bar s node place c2 below of s1 xshift 5mm node place tokens 1 w2 below of c2 node transition e1 left of ci edge pre bend left w1 edge post s1 Cahiers GUTenberg n 48 Avril 2007 3 3 3 edge pre s2 edge post c1 node transition e2 left of c2 edge pre bend right w2 edge post s1 edge pre s2 edge post c2 node transition 11 right of c1 edge pre c1 edge pre s1 edge post s2 edge post bend right node swap 2 w1 node transition 12 right of c2 edge pre c2 edge pre s1 edge post s2 edge post bend left node 2 w2 end scope 2 S 5 2 Le code pour l arri re plan et le serpent est le suivant draw to thick snake snake segment amplitude 4mn segment length 2mm line after snake 1mm xshift 5mm s 11 xshift 5mm si e1 node above imm midway text width 3cm text centered remplacement de la textcolor red capacit par textcolor red deux places begin pgfonlayer background filldraw line width 4mm join round black 10 wi north li east rectangle w2 south e1 wes
22. pour les nouveaux utilisateurs de PGF et TikZ Il ne donne pas une description exhaustive de toutes les fonction nalit s de TikZ ou de PGF mais seulement de celles dont on peut faire usage directement Karl est professeur de math matiques et chimie en lyc e Il avait lha bitude de cr er des graphiques dans ses feuilles d exercices et d examens avec l environnement picture de IATEX Alors que les r sultats sem blaient acceptables la cr ation de graphiques s av rait souvent un pro cessus long De plus il y avait une tendance a avoir des probl mes avec les droites qui montraient des angles l g rement incorrects et les cercles qui semblaient tre difficiles a obtenir correctement Naturellement ses tudiants se contrefichaient de savoir si les droites formaient les angles corrects et ils trouvaient que les examens de Karl taient trop difficiles m me si les graphiques taient trac s avec soin Mais Karl n tait jamais enti rement satisfait du r sultat Le fils de Karl qui tait encore moins satisfait du r sultat il n avait pas a passer les examens apr s tout dit Karl qu il pouvait peut tre essayer une nouvelle extension de cr ation de graphique Portant un peu confusion cette extension semblait avoir deux noms d abord Karl devait t l charger et installer une extension appel e PGF Puis il apparaissait qu il y en avait une autre l int rieur appel e TikZ ce qui est sens vouloir dire
23. qu il fasse appel la biblioth que permet de le raccourcir un peu comme ce qui suit le montre D abord Hagen a besoin de moins de d finitions de style mais il doit toujours d finir les couleurs des places et des transitions shorthandoff pour les caract res actifs de frenchb begin tikzpicture tikzs tikzs tikzs tikzs tylefevery place tylefevery transition thick draw black 75 fill black 20 tyle red place place draw red 75 fill red 20 tylefevery label red Et maintenant les r seaux node distance 1 3cm gt stealth bend angle 45 auto minimum size 6mm thick draw blue 75 fi11 blue 20 begin scope node place tokens 1 w1 node place c1 below of w1 node place s below of c1 label above s leqslant 3 node place c2 below of s 3 node place tokens 1 w2 below of c2 Tutoriel Tikz 73 74 node transition ei left of c1 edge pre bend left w1 edge post bend right s edge post c1 node transition e2 left of c2 edge pre bend right w2 edge post bend left s edge post c2 node transition 11 right of c1 edge pre c1 edge pre bend left s edge post bend right node swap 2 w1 node transition 12 right of c2 edge pre c2 edge pre bend right s edge post bend left node 2 w2 end scope Di lt J begin scope xshift 6cm node
24. quadrillages ont tendance a troubler le lecteur s ils sont trop visibles Pour cela Karl ajoute deux nouvelles options la commande draw qui dessine le quadrillage D abord il utilise la couleur gray pour les lignes du quadrillage Ensuite il r duit la largeur des lignes avec very thin Enfin il change les places des commandes afin que le quadrillage soit trac d abord et que tout le reste vienne par dessus begin tikzpicture draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle 1cm end tikzpicture 1 8 AJOUTER UNE TOUCHE DE STYLE Au lieu d utiliser les options gray very thin Karl aurait pu tout aussi bien crire style help lines Les styles sont des ensembles pr d finis d options que l on peut utiliser pour organiser la mani re dont Tutoriel Tikz 31 32 le graphique sera trac En crivant style help lines on dit utilise le style que moi ou un autre j ai d fini pour tracer les lignes d aide Si Karl d cide plus tard que les quadrillages devraient tre trac s avec par exemple la couleur blue 50 au lieu de gray il lui suffirait d crire ce qui suit tikzstyle help lines color blue 50 very thin Ou il pourrait crire tikzstyle help lines color blue 50 Cela ajouterait l option color blue 50 Le style help lines contien drait maintenant de
25. s pour savoir si l on veut lire ou pas un certain article Le boulot de la typographie est d attirer notre attention d abord sur ces r sum s et ces titres Une fois que l on a d cid de lire un article toutefois on ne tol re plus d tre distrait c est pourquoi le texte principal de l article est compos de la m me mani re que celui d un roman Les deux principes vitez ce qui perturbe et attirez l attention s appliquent aussi aux graphiques Lorsque l on cr e un graphique on devrait liminer tout ce qui va distraire l il En m me temps on devrait essayer d aider activement le lecteur travers le graphique en utilisant des param tres pour les polices couleurs paisseurs de ligne qui mettent en relief les diff rentes parties Voici une liste non exhaustive des choses qui peuvent perturber un lecteur Les contrastes importants seront enregistr s les premiers par l il Par exemple consid rons les deux grilles suivantes Bien que la grille de gauche soit la premi re dans l ordre normal de lecture la droite a la plus de chance d tre vue la premi re le contraste blanc sur noir est plus grand que celui du gris au blanc De plus il y a plus de places ajoutant l effet global de contraste dans la grille de droite Les choses comme des grilles et plus g n ralement toutes les lignes d aide ne devraient pas empoigner l atten
26. sens total 3 2 ESTIMER LE TEMPS N CESSAIRE LA CR ATION DE GRAPHIQUES Lorsque l on cr e un article avec de nombreux graphiques le temps n cessaire cr er ces graphiques devient un facteur important Com bien de temps devrait on pr voir pour la cr ation des graphiques En g n ral il faut compter qu un graphique demande autant de temps qu en demande un texte du m me encombrement Par exemple lorsque j cris un article j ai besoin d une heure par page pour le premier jet Ensuite j ai besoin de deux quatre heures par page pour les relectures et corrections Aussi je compte environ une demie heure pour cr er un premier jet d un graphique d une demie page Je m attends avoir besoin plus tard d une deux heures suppl mentaires pour produire le graphique final Dans beaucoup de publications m me des revues de qualit les au teurs et diteurs ont visiblement investi beaucoup de temps sur le texte mais semblent avoir pass environ cinq minutes pour cr er tous les gra phiques Les graphiques semblent souvent avoir t ajout s apr s coup ou ressemblent une copie d cran du logiciel de statistique qu utilise l auteur Les graphiques produits par de tels outils sans r flexion gra phique ni adaptation la maquette de l article en cours sont en g n ral m diocres Cr er des graphiques instructifs qui aident le lecteur et se marient correctement avec le texte principal est un processu
27. sont encore trop petits En fait Hagen se demande pourquoi ils ont une taille apr s tout le texte est vide La raison en est que TikZ ajoute automatique ment de l espace autour du texte La quantit en est d termin e l aide de l option inner sep Aussi pour accro tre la taille des n uds Hagen pourrait crire tikzstyle place circle draw blue 50 fi11 blue 20 thick tikzstyle transition rectangle draw black 50 fill black 20 thick begin tikzpicture inner sep 2mm node at 0 2 place node at 0 1 place node at 0 0 place node at 1 1 transition node at 1 1 transition end tikzpicture o Toutefois ce n est pas vraiment la meilleure mani re d obtenir l effet voulu Il vaut bien mieux utiliser l option minimum size Cette option au torise Hagen sp cifier une taille minimale pour le n ud Si les n uds doivent en fait tre plus gros du fait d un texte plus long ils s agrandi ront mais si le texte est vide alors le n ud aura pour taille minimum size taille minimale Cette option est aussi utile pour s assurer que plusieurs n uds contenant diff rentes quantit s de texte auront la m me taille Les options minimum height hauteur minimale etminimum width lar geur minimale permettent de sp cifier une hauteur et une largeur mini male de mani re ind pendante Aussi ce dont Hagen a besoin c est de fournir une minimum size pour les
28. tre trac Le premier chemin est d termin par 1 5 0 0 1 5 ce qui signifie un segment de droite depuis le point la position 1 5 0 jusqu au point la position 0 1 5 Ici les positions sont d termin es dans un rep re sp cial pour lequel une unit au d part vaut 1 cm Karl est assez content de voir que l environnement r serve automati quement assez d espace pour contenir toute la figure 1 2 2 Pr paration de l environnement en Plain TX Il se trouve que Gerda la femme de Karl qui est aussi profes seur de math matiques n utilise pas IATEX mais plain TEX car elle pr f re faire les choses a l ancienne Elle aussi peut utiliser TikZ Au lieu de usepackage tikz elle doit crire input tikz tex au lieu de begin tikzpicture elle crit tikzpicture et au lieu de end tikzpicture elle crit endtikzpicture Cahiers GUTenberg n 48 Avril 2007 Elle utiliserait donc 4h fichier Plain TeX input tikz tex baselineskip 12pt hsize 6 3truein vsize 8 7truein Nous travaillons sur tikzpicture draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 endtikzpicture bye Gerda peut compiler ce fichier avec pdftex ou bien tex suivi de dvips TikZ d tectera automatiquement le pilote utilis Si elle d sire utiliser dvipdfm avec tex elle devra soit modifier le fichier pdf cfg ou crire def pgfsysdriver pgfsys dvipdfm def quelque part avant qu elle ne charge tikz tex ou pgf
29. troubl par le fait qu il ny a pas d environnement tikzpicture ici A la place on utilise la commande tikz Cette commande prend soit un seul argument commen ant par une accolade ouvrante comme dans tikz draw 0 0 1 5 0 dont r sulte soit absorbe tout ce qui se trouve avant le point virgule sui vant et le place dans un environnement tikzpicture En gros toutes les commandes de dessin de TikZ doivent apparaitre comme argument de tikz ou dans un environnement tikzpicture Heureusement la commande draw n est d finie que dans cet environnement il y a donc peu de risques pour que l on fasse accidentellement quelque chose de travers 1 4 CONSTRUCTION DE CHEMIN COURBE Ce que veut faire Karl ensuite c est tracer un cercle Pour a videm ment on ne s en sortira pas avec des droites Nous avons besoin au contraire de tracer des courbes Pour cela TikZ fournit une syntaxe sp ciale On a besoin de un ou deux points de contr le Les maths cach es derri re ne sont pas tout fait triviales mais voici l id e de base suppo sez que l on soit au point x et que le premier point de contr le soit y Alors la courbe va d marrer dans la direction de y en partant de x c est dire que la tangente la courbe en x va pointer vers y Ensuite supposons que la courbe doive finir en z avec w pour deuxi me point de contr le Alors la courbe finira bien en z et la tangente la courbe au point
30. une barre oblique slash comme dans x xtext Alors les l ments de l ensemble sur lequel foreach it re doivent tre aussi de la forme pre mier second A chaque it ration x prendra la valeur de premier et xtext celle de second Si on ne donne pas de second le premier est uti lis nouveau Aussi voici le nouveau code pour les graduations begin tikzpicture scale 4 6 clip 0 6 0 2 rectangle 0 6 1 51 draw step 5cm style help lines 1 4 1 4 grid 1 4 1 4 filldraw fill green 20 draw green 50 black 0 0 3mm Omm arc 0 30 3mm cycle draw gt 1 5 0 1 5 0 draw gt 0 1 5 0 1 5 draw 0 0 circle 1cm foreach x xtext in 1 0 5 frac 1 2 1 draw x cm ipt x cm 1pt node anchor north xtext foreach y ytext in 1 0 5 frac 1 2 0 5 frac 1 2 1 draw 1pt y cm 1pt y cm node anchor east ytext end tikzpicture Tutoriel Tikz ol 92 pl hile Le r sultat fait plaisir Karl mais son fils montre que ce nest pas parfaitement satisfaisant le quadrillage et le cercle interf rent avec les nombres et amoindrissent leur lisibilit Karl ne se sent pas tr s concern par a ses tudiants ne s en rendent m me pas compte mais son fils insiste sur le fait qu il y a une solution facile Karl peut ajouter l option fill white pour remplir l arri re plan de la forme de texte de blanc Karl
31. veut ensuite ajouter des tiquettes comme sina Celles l il vou drait les placer au milieu de la courbe Pour ce faire au lieu de d finir l tiquette node sin alpha directement apr s une des extr mi t s de la courbe ce qui placerait tiquette cette extr mit Karl peut placer cette tiquette directement apr s mais avant les coordonn es Par d faut cela place l tiquette au milieu de la courbe mais on peut uti liser les options pos pour modifier ce comportement On peut gale ment utiliser les options comme near start etnear end pour changer la position Cahiers GUTenberg n 48 Avril 2007 begin tikzpicture scale 2 8 clip 2 0 2 rectangle 2 0 8 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 filldraw fill green 20 draw green 50 black 0 0 3mm Omm arc 0 30 3mm cycle draw gt 1 5 0 1 5 0 coordinate x axis draw gt 0 1 5 0 1 5 coordinate y axis draw 0 0 circle icm draw very thick red 30 1cm node left 1pt fill white sin alpha 30 1cm x axis draw very thick blue 30 1cm x axis node below 2pt fill white cos alpha 0 0 draw very thick orange 1 0 node right 1pt fill white displaystyle tan alpha color black frac color red sin alpha color blue cos alpha intersection of 0 0 30 1cm and 1 0 1 1 coordinate t draw 0 0 t foreach x xtex
32. 0 0 circle 1cm draw 3mm Omm arc 0 30 3mm end tikzpicture On peut faire les deux choses en m me temps dessiner et d couper un chemin Pour cela on utilise la commande draw en ajoutant l option clip Ce rest pas tout on peut galement utiliser la commande clip avec l option draw Bon ce nest pas tout non plus en fait draw est juste une abr viation pour path draw et clip une abr viation pour path clip et on peut aussi crire path draw clip Voici un exemple begin tikzpicture scale 3 clip draw 0 5 0 5 circle 6cm draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle 1cm draw 3mm 0Omm arc 0 30 3mm end tikzpicture Tutoriel Tikz 35 1 12 CONSTRUCTION DE CHEMIN PARABOLIQUE OU SINUSO DAL Bien que Karl n en ait pas besoin pour son graphique il est content d apprendre qu il y a des op rations de chemin parabola parabole sin et cos pour ajouter des courbes paraboliques ou sinuso dales au chemin courant Pour l op ration parabola le point courant sera sur la parabole ainsi que le point donn apr s op ration Consid rons l exemple suivant tikz draw 0 0 rectangle 1 1 0 0 parabola 1 1 On peut aussi placer le sommet ailleurs tikz draw x 1pt y 1pt 0 0 parabola bend 4 16 6 12 Les op rations sin et cos ajoutent une courbe d
33. CAHIERS enber TUTORIEL TIKZ C Till TANTAU Cahiers GUTenberg n 48 2007 p 23 92 lt http cahiers gutenberg eu org fitem id CG_2007___48_23_0 gt Association GUTenberg 2007 tous droits r serv s Lacc s aux articles des Cahiers GUTenberg http cahiers gutenberg eu org implique l accord avec les conditions g n rales d utilisation http cahiers gutenberg eu org legal html Toute utilisation commerciale ou impression syst matique est constitutive d une infraction p nale Toute copie ou impression de ce fichier doit contenir la pr sente mention de copyright TUTORIEL TIKZ C Till TANTAU R SUM Karl est un prof de maths et de chimie dans un lyc e Il fabriquait auparavant les illustrations de ses textes l aide de l en vironnement picture de IATEX Les r sultats taient certainement acceptables mais la mise en uvre des illustrations tait toujours un travail long et p nible Il d cide d essayer un outil dont son fils a entendu parler TikZ Nous suivons ses progr s au fil de son ap prentissage Hagen doit faire un expos sur son formalisme favori pour les syst mes distribu s les r seaux de Petri Il d couvre la puissance des outils propos s par TikZ pour tracer des ce type de structure Au final nos deux cobayes semblent assez convaincus TikZ est un logiciel de dessin technique poustouflant ABSTRACT Karl is a math and chemistry high school tea
34. GUTenberg n 48 Avril 2007 Utilisez la m me paisseur de trait dans le texte et les figures La largeur de ligne d un texte normal est l paisseur du f t d une lettre comme le T Pour les polices CM de TEX cela signifie habituelle ment 0 4 pt Toutefois quelques revues n accepteront pas de figures dont l paisseur du trait normal est inf rieure un demi point Lorsque vous utilisez des couleurs faites le en suivant un code de couleur coh rent tant dans le texte que dans les figures Par exemple si le rouge est sens attirer l attention du lecteur sur quelque chose dans le texte principal utilisez le dans les figures pour les parties importantes Si le bleu est utilis pour les l ments structurels tels que les titres de sections utilisez aussi le bleu pour les l ments structurels des figures Toutefois les figures peuvent avoir un code de couleur intrins que et logique Par exemple quelle que soit la couleur utilis e normalement les lecteurs penseront en g n ral par exemple le vert comme positif passez d accord et le rouge comme attention alerte action Assurer la coh rence en utilisant diff rents logiciels de production de graphiques est quasi impossible On devra donc envisager de n en utiliser qu un seul 3 6 ANNOTATIONS DANS LES FIGURES Presque toutes les figures contiennent des annotations c d des bouts de texte expliquant des parties du graphiques Lorsque vous pl
35. TYLES D humeur aventureuse Hagen essaie d embellir les n uds Dans la figure finale les cercles et rectangles devraient tre remplis avec des couleurs diff rentes cela conduit au code suivant begin tikzpicture thick node at 0 2 circle draw blue 50 fill blue 20 node at 0 1 circle draw blue 50 fill blue 20 node at 0 0 circle draw blue 50 fill blue 20 node at 1 1 rectangle _ draw black 50 fill black 20 node at 1 1 rectangle draw black 50 fill black 20 E end tikzpicture Bien que la figure soit jolie le code commence devenir affreux Id alement nous voudrions que notre code transporte le message il y a trois places et deux transitions et pas vraiment quelle couleur de fond doit tre utilis e Pour r soudre ce probl me Hagen utilise des styles Il d finit un style pour les places et un autre pour les transitions tikzstyle place circle draw blue 50 fil1 blue 20 thick tikzstyle transition rectangle draw black 50 fill black 20 thick begin tikzpicture node at 0 2 place o node at 0 1 place node at 0 0 place node at 1 1 transition node at 1 1 transition end tikzpicture E Cahiers GUTenberg n 48 Avril 2007 2 6 TAILLE DES N UDS Avant que Hagen commence nommer et connecter les n uds assurons nous d abord qu ils aient leur apparence finale Ils
36. Visiblement Karl voudrait placer des n uds non seulement la der ni re position d finie mais aussi a gauche ou a droite de cette posi tion Pour cela chaque n ud qu on place dans une figure est quip de plusieurs ancres anchor Par exemple l ancre north nord est au mi lieu la partie sup rieure de la forme l ancre south sud est au bas et Tutoriel Tikz 49 90 l ancre north east nord est est dans le coin sup rieur droit Lorsque lon passe l option anchor north le texte est plac de telle sorte que cette ancre nordique est situ e a la position courante et que le texte est de ce fait sous la position courante Karl utilise cela pour tracer les gra duations comme suit begin tikzpicture scale 4 6 clip 0 6 0 2 rectangle 0 6 1 51 draw step 5cm style help lines 1 4 1 4 grid 1 4 1 4 filldraw fill green 20 draw green 50 black 0 0 3mm Omm arc 0 30 3mm cycle draw gt 1 5 0 1 5 0 draw gt 0 1 5 0 1 5 draw 0 0 circle icm foreach x in 1 0 5 1 draw x cm ipt x cm 1pt node anchor north x foreach y in 1 0 5 0 5 1 draw ipt y cm 1pt y cm node anchor east y end tikzpicture 0 5 p 0 5 C est d j pas mal En utilisant ces ancres Karl peut maintenant ajouter la plupart des autres l ments textuels Toutefois Karl pense Cahiers GUTenberg n 48 Avril 2007 qu
37. acez ces annotations suivez ces conseils Soyez coh rent en pla ant les annotations et cela sur deux plans premi rement soyez coh rent avec le texte principal c d utilisez la m me police pour les annotations que pour le texte principal deuxi mement assurez la coh rence entre annotations c d que si vous pr sentez certaines annotations d une mani re particuli re vous devriez pr senter de la m me mani re toutes les annotations Non seulement vous devriez utilisez les m mes polices pour le texte et pour les graphiques mais en plus les m mes notations Par exemple si vous crivez 1 2 dans votre texte principal utilisez aussi 1 2 pour les annotations de vos figures et pas 0 5 x est 1 et non 3 141 Enfin e Test e il et pas 1 et encore moins 1 Les annotations devraient tre lisibles Non seulement elles de vraient avoir une taille raisonnable mais de plus elles ne devraient pas tre recouvertes par des lignes ou d autres textes Cela s applique aussi Tutoriel Tikz 81 82 aux lignes et aux textes plac s derri re les annotations Les annotations devraient tre en place A chaque fois qu il y a assez de place l annotation devrait tre plac e pr s de ce qu elle marque On ajoutera une ligne discr te entre l annotation et l objet auquel elle se rapporte seulement si n cessaire Essayez d viter les annotations qui ne fo
38. ance option 63 nom voir name nord voir north nord est voir north east nord ouest voir north west north valeur pour anchor 50 north east valeur pour anchor 50 north west valeur pour anchor 50 ouest voir west out option 67 parabola op ration 36 parabole voir parabola path 28 pente en voir sloped pgfonlayer environnement 72 picture 26 point de contr le voir control point pointe de fl che voir arrow tip pointill s 33 89 polaire coordonn e voir polar polar 39 port e voir scope pos option 52 post style 69 pour chaque voir foreach pre style 69 pr s de la fin voirnear end pr s du d but voirnear start PSTRICKS extension 46 quadrillage voir grid rectangle op ration 30 rectangle valeur pour shape 58 remplir voir fill resserr pointill s voir dense r tr cir voir scale right option 51 right color option 38 rotate option 45 scale option 34 46 scope 44 scope environnement 44 segment amplitude option 71 segment length option 71 semi pais voir semithick semithick style 33 serpent voir snake shade 38 shadedraw 38 Tutoriel Tikz 91 92 shading 38 shape option 58 60 shift option 45 sin op ration 36 slash 51 sloped option 54 snake option 71 snake valeur pour snake 71 sommet parabole voir bend sorte voir kind south valeur pour anchor
39. and up 5mm enter critical north end tikzpicture WO E Hagen voit d sormais comment ajouter toutes les ar tes mais le pro cessus semble trange et pas tr s souple L encore le code semble ca cher la structure du graphique Cahiers GUTenberg n 48 Avril 2007 Aussi commen ons am liorer le code des ar tes Tout d abord Ha gen peut laisser tomber les ancres 5 begin tikzpicture node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical right of critical node transition enter critical left of critical draw gt enter critical critical draw gt waiting controls left 8mm and up 8mm enter critical end tikzpicture m Hagen est un peu surpris de voir que cela fonctionne Apr s tout comme TikZ sait il que l ar te joignant enter critical critical doit bien commencer sur les fronti res A chaque fois que TikZ ren contre un nom complet de n ud comme coordonn e il essaie d tre intelligent en choisissant l ancre pour ce n ud Suivant ce qui viendra apr s TikZ choisira une ancre qui se trouve sur la fronti re du n ud sur une droite joignant ce n ud la prochaine coordonn e ou au prochain point de contr le Les r gles exactes sont un peu compliqu es mais le point choisi sera en g n ral correct et quand ce ne sera pa
40. bend right node a at 0 1 0 degres 120 1 node b at 120 1 120 degres 1 node c at 240 1 240 degres 2 2 0 draw a to node 1 node swap 1 b 7 b to node 2 node swap 2 c 5 c to node 3 node swap 3 a 240 3 end tikzpicture Que se passe t il ici Les n uds sont donn s l int rieur de l op ra tion to d une certaine mani re Quand on fait cela le n ud est plac au milieu de la courbe ou droite cr e par l op ration to L option auto fait alors que le n ud soit d plac de telle sorte qu il ne soit pas sur la courbe mais c t Dans cet exemple on fournit m me deux n uds pour chaque op ration to Pour Hagen cette option auto n est pas vraiment n cessaire puisque les deux tiquettes 2 pourraient tre facilement plac es la main Toutefois dans une figure complexe contenant de nombreuses ar tes le placement automatique peut se r v ler une b n diction Styles comme pr c demment begin tikzpicture bend angle 45 scale 4 node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical right of critical edge pre critical edge post bend right node auto swap 2 waiting edge pre bend left semaphore node transition enter critical left of critical edge post critical edge p
41. c at dans ce cas particulier il pr f re rait placer les n uds l un relativement aux autres Aussi Hagen vou drait pouvoir dire que le n ud critical 1 devrait tre sous le n ud waiting 1 quelle que soit la place de ce dernier On peut obtenir cela de plusieurs mani res mais la plus jolie dans le cas de Hage est l option below of en dessous de begin tikzpicture node place waiting o O node place critical below of waiting node place semaphore O below of critical E E node transition leave critical right of critical node transition enter critical left of critical end tikzpicture L option below of etses semblables d terminent la position du n ud de telle sorte qu il soit plac la distance node distance dans la direc tion sp cifi e La distance node distance est la distance qui s pare les centres des n uds et pas leurs fronti res M me si le code ci dessus a le m me effet que le code pr c dent Hagen peut le passer a un de ses coll gues qui pourra le comprendre rien qu en le lisant peut tre m me sans avoir vu la figure Tutoriel Tikz 63 64 2 9 AJOUTER DES TIQUETTES TEXTUELLES AUX N UDS Avant de voir comment Hagen peut joindre les n uds ajoutons la capacit s lt 3 au n ud du bas Pour cela deux approches sont possibles 1 Hagen peut se contenter d ajouter un nouveau n ud au dessus de l ancre north nord
42. cher He used to create the graphics in his writings using ATEX s picture en vironment While the results were acceptable creating the graphics often turned out to be a lengthy process His son advises him to try out another tool named TikZ We follow him along his rapid learn ing curve Hagen must give a talk about his favorite formalism for dis tributed systems Petri nets He discovers the power of the tools available with TikZ in order to set up this kind of structure At the end of the day both of them seem rather convinced TikZ is quite a piece of software Norte Cet article est constitu de la partie intitul e Tutorial du manuel du logiciel PGF http sourceforge net projects pgf de Till Tantau Il a t traduit par Yvon Henel On a d parfois faire pr c der quelques uns des codes par shorthandoff car PGF utilise comme d limiteurs ces ca ract res de ponctuaction rendus actifs par frenchb babel Sans cela une erreur est lev e par une routine d analyse lexicale Le m me probl me se pose d ailleurs avec l utilisation de xcoLor qui utilise le point d exclamation dans la d finition de couleurs On in sistera sur le fait que le passage dans une autre langue typiquement l anglais ne suffit pas les caract res restent actifs dans ce cas Cahiers GUTenberg n 48 Avril 2007 p 23 92 24 1 MODE D EMPLOI UN PETIT DESSIN POUR LES TUDIANTS DE KARL Ce mode d emploi est con u
43. chor 50 edge op ration 68 ellipse op ration 29 embo ter voir nest en dessous de voir below of endscope 44 Cahiers GUTenberg n 48 Avril 2007 endtikzpicture 26 pais voir thick est voir east estomper voir shade tiquette voir label every label style 65 figure voir picture fill 36 fill option 52 filldraw 37 fin voir thin fl che voir arrow for loop 46 foreach 46 forme voir shape gauche voir left genre voir kind graphic 24 graphique voir graphic grid op ration 31 grille 88 help line 32 homoth tie voir scale in option 67 inner sep option 61 intersection of and op ration 41 kind 43 label 49 label option 64 l che pointill s voir loose largeur de texte voir text width layer 72 left option 51 left color option 38 ligne d aide voirhelp line ligne en pointill s voirdashed line line 24 line after snake option 71 line width option 37 loop 46 loose 33 loosely dashed style 33 loosely dotted style 33 matrice voir matrix matrix 45 mettre l chelle voir scale midway option 71 minimum height option 61 minimum size option 61 minimum width option 61 mise l chelle voir scale motif 89 multido 46 n ud voir node name option 58 62 near end option 52 near start option 52 nest 48 node 60 node op ration 49 55 63 node dist
44. cide avec sagesse que l estompage ne fait d habitude que perturber le lecteur sans ajouter quoi que ce soit la figure 1 15 D FINIR DES COORDONN ES Karl veut maintenant ajouter les courbes du sinus et du cosinus Il sait d j qu il peut d finir la couleur de ces courbes avec l option color Mais quelle est la meilleure mani re de d finir les coordonn es Il y a deux mani res de d finir des coordonn es La plus simple est d crire quelque chose comme 10pt 2cm Cela signifie 10pt suivant l axe des x et 2 cm suivant l axe des y Autrement on peut aussi omettre les unit s comme dans 1 2 qui signifie une fois le vecteur courant suivant x plus deux fois le vecteur courant suivant y 3 Ces vecteurs ont pour longueur par d faut 1 cm dans chaque direction Afin de d finir des points en coordonn es polaires on utilise la nota tion 30 1cm qui signifie 1 cm dans la direction 30 degr s C est vi demment bien utile pour obtenir le point cos 30 sin 30 sur le cercle On peut ajouter devant les coordonn es un signe simple ou un double comme dans 1cm 0cm ou 0cm 2cm De telles coordon n es sont interpr t es diff remment la premi re signifie 1 cm vers le haut depuis la position d finie pr c demment et la deuxi me 2 cm vers la droite de la position pr c demment d finie en en faisant la nou velle position d finie Par exemple on peut tracer la courbe du sinus comme sui
45. de alpha qui est la longueur du segment rouge est color sincolor sin alpha 1 2 Par le th or me de Pythagore 3 end tikzpicture 2 UN RESEAU DE PETRI POUR HAGEN 1 Dans cette seconde partie nous explorerons les m chanismes des n uds pour TikZ et PGF Hagen doit faire demain un expos sur son formalisme favori pour les syst mes distribu s les r seaux de Petri Hagen avait l habitude de faire des expos s en utilisant le tableau et tout le monde semblait parfaitement content de cette fa on Malheureusement on a r cemment g t son public avec des pr sentations sur r tro projecteurs et il semble Tutoriel Tikz 99 96 y avoir une certaine pression de ses pairs pour que ces r seaux de Petri soient eux aussi dessin s avec un logiciel Un de ses professeurs l institut lui recommande TikZ et Hagen d cide de tenter le coup 2 1 ENONCE DU PROBL ME Hagen dans son expos veut cr er un graphique qui montrerait com ment un r seau de Petri capacit peut tre mul par un r seau de Petri ordinaire Id alement le graphique devrait ressembler ceci 2 gt 2 Q remplacement O de la capacit SL par deux places Drm S S F CC 2 2 METTRE EN PLACE L ENVIRONNEMENT Pour dessiner Hagen doit charger l extension TikZ comme Karl l a fait dans la premi re partie Toutefois Hagen aura besoin de charger aussi quelques extension de biblioth ques suppl mentaires Ces e
46. de suite Un n ud peut aussi contenir du texte ce pourquoi Karl a utilis des n uds pour afficher du texte Enfin un n ud peut avoir un nom name pour r f rence ult rieure Dans la figure de Hage nous utiliserons des n uds pour les places et les transitions du r seau de Petri les places sont les cercles et les transitions les rectangles Commen ons par la moiti sup rieure du r seau de Petri de gauche Dans cette moiti sup rieure nous avons trois places et deux transitions Plut t que de dessiner trois cercles et deux rectangles nous utiliserons trois n uds de forme circle et deux n uds de forme rectangle begin tikzpicture O path 0 2 node shape circle draw 0 1 node shape circle draw 0 0 node shape circle draw O 1 1 node shape rectangle draw 1 1 node shape rectangle draw end tikzpicture O Hagen note que cela ne ressemble pas vraiment la figure finale mais que a semble un bon premier pas Regardons le code plus attentivement La figure compl te consiste en un seul et unique chemin En ignorant les op rations node on ne trouve pas grand chose dans ce chemin il s agit simplement d une suite de coordonn es sans que rien n arrive entre elles En fait m me si quelque chose devait arriver comme un line to ou un curve to la Cahiers GUTenberg n 48 Avril 2007 commande path ne ferait rien du chemin r sultant Auss
47. de transition leave critical right of critical node transition enter critical C left of critical draw gt enter critical to critical draw gt waiting to bend right 45 enter critical draw gt enter critical to bend right 45 semaphore end tikzpicture Il est temps maintenant pour Hagen d apprendre encore une autre mani re de d terminer les ar tes l op ration de chemin edge ar te Cette op ration est tr s semblable l op ration to mais il y a une diff rence importante de la m me mani re qu un n ud l ar te cr e par l op ration edge ne fait pas partie du chemin principal mais n est Cahiers GUTenberg n 48 Avril 2007 ajout e que post rieurement Cela peut ne pas sembler tr s important mais a quelques cons quences agr ables Par exemple chaque ar te peut avoir ses propres pointes de fl che et sa propre couleur et ainsi de suite et de plus on peut donner toutes les ar tes sur le m me chemin Cela permet Hagen d crire ce qui suit begin tikzpicture node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical C right of critical node transition enter critical left of critical edge gt critical edge lt bend left 45 waiting edge gt bend right 45 semaphore end tikzpicture Chaque
48. e segment amplitude 4mm segment length 2mm line after snake imm 0 0 3 0 end tikzpicture Maintenant Hagen doit ajouter le texte au dessus du serpent Ce texte pose un petit probl me car il est multiligne Pour saisir un tel texte Hagen doit d finir sa largeur et doit pr ciser qu il devrait tre centr Tutoriel Tikz 71 begin tikzpicture draw gt snake snake segment amplitude 4mm segment length 2mm line after snake imm 0 0 3 0 remplacement node above text width 3cm text centered midway de la capacit remplacement de la textcolor red capacit par textcolor red deux places 3 end tikzpicture par deux places 2 13 UTILISER DES COUCHES LES RECTANGLES D ARRI RE PLAN Hagen doit encore ajouter les rectangles d arri re plan C est un peu p nible Hagen voudrait tracer ces rectangles apr s que les r seaux de Petri ont t finis La raison en est que ce n est qu ce moment qu il pourra faire r f rence aux coordonn es qui d terminent les coins du rectangle Si Hagen veut dessiner les rectangles en premier alors il a besoin de la taille exacte du r seau de Petri ce qu il n a pas La solution est d utiliser des couches layer Quand la biblioth que d arri re plans background est charg e Hagen peut placer quelques morceaux de la figure dans un environnement pgfonlayer Alors ces morceaux de la figure deviennent des parties de la couche qui est pass
49. e Par exemple un conseil pourrait tre Utilisez la couleur rouge pour mettre en relief Ce conseil est sens s il s agit par exemple d une pr sentation faite au r troprojecteur mais la couleur rouge a l effet oppos la mise en relief lorsqu on imprime avec une imprimante noir et blanc Les conseils sont presque toujours r dig s en vue d une situation particuli re Si l on n est pas dans cette situation suivre ce conseil peut faire plus de mal que de bien La r gle de base en typographie est On peut contourner une r gle tant que l on sait que l on contourne une r gle Cette r gle s applique aussi aux graphiques Dite autrement la r gle de base est Les seules erreurs en typographie sont les choses faites par ignorance Cahiers GUTenberg n 48 Avril 2007 Lorsque vous connaissez une r gle et que vous d terminez que la contourner permet d obtenir effet voulu contournez la Certains conseils sont simplement faux mais tout le monde les suit par tradition ou est forc de le faire Mon exemple favori est la directive qu une soci t de conception de logiciels pour laquelle j ai travaill avait impos dans un grand projet tous les programmeurs doivent d clarer les param tres des fonctions selon l ordre croissant de leur taille Ainsi les param tres d un octet devaient venir les premiers puis ceux de deux octets et ainsi de suite Cette directive est un non
50. e bien que correcte c est plut t contre intuitif que pour placer quelque chose sous un point donn il faille utiliser l ancre north Pour cette raison il y a une option below dessous qui produit la m me chose que anchor north De m me above right dessus droite fait comme anchor south east De plus below prend un argument optionnel de dimension Si on le donne la forme sera en plus pouss e vers le bas de la valeur donn e Ainsi on peut utiliser be low 1pt pour placer une tiquette textuelle sous un point et en plus la d placer de 1pt vers le bas Karl n est pas tout a fait satisfait des graduations Il voudrait avoir 1 2 ou plut t que 0 5 en partie pour faire montre des exquises capacit s de TEX et de TikZ en partie parce que pour des positions comme 1 3 ou x il est de beaucoup pr f rable d avoir la graduation math matique plut t que juste num rique Ces tudiants par ailleurs pr f rent 0 5 a 1 2 puisqu ils ne sont pas de mani re g n rale tr s friands de fractions Karl maintenant fait face un probl me dans l expression foreach la position x devrait toujours tre donn es comme 0 5 puisque TikZ ne comprendrait pas ce que frac 1 2 est sens tre Par ailleurs le texte crit devrait vraiment tre frac 1 2 Pour r soudre ce pro bl me foreach offre une syntaxe sp ciale au lieu d une seule va riable x Karl peut en d finir deux ou m me plus s par es par
51. een 20 white 0 0 3mm Omm arc 0 30 3mm cycle Le cycle fait que le chemin courant est ferm en fait la partie cou rante du chemin courant en joignant le premier et le dernier point de fa on plus lisse Pour appr cier la diff rence regardez l exemple suivant begin tikzpicture line width 5pt draw 0 0 1 0 1 1 0 0 draw 2 0 3 0 3 1 cycle useasboundingbox 0 1 5 agrandit la boite cadre end tikzpicture On peut tracer et remplir un chemin en m me temps avec la com mande filldraw Cela tracera d abord le chemin puis le remplira Cela peut ne pas sembler tr s utile mais on peut d finir des couleurs diff rentes pour tracer et remplir On sp cifie cela avec des arguments op tionnels comme ici begin tikzpicture scale 3 clip 0 1 0 2 rectangle 1 1 0 75 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle icm filldraw fill green 20 white draw green 50 black 0 0 3mm Omm arc 0 30 3mm cycle end tikzpicture Tutoriel Tikz 37 38 1 14 ESTOMPER Karl consid re bri vement la possibilit de rendre l angle plus fantai siste en l estompant Au lieu de le remplir avec une couleur uniforme on utilise une transition douce entre diff rentes couleurs Pour cela on peut utiliser shade ou shadedraw pour tracer et estomper e
52. el pourcentage de participants a rendu l enqu te en ayant coch tr s bon Malheureusement le diagramme ne permet de r pondre aucune de ces questions La table r pond toutes directement sauf la derni re Essentiellement la densit d information du graphique est tr s proche de z ro La table a une bien plus grande densit d information en d pit du fait qu elle utilise beaucoup d espace blanc pour pr senter quelques nombres Voici la liste de ce qui n allait pas dans le diagramme 3D L ensemble du graphique est domin par d irritants traits en arri re plan On ne comprend pas clairement ce que signifient les nombres de gauche vraisemblablement des pourcentages mais ce pourraient tre aussi des nombres absolus de participants Les annotations du bas ont subi une rotation ce qui les rend diffi ciles a lire Dans la pr sentation que j ai vue le texte tait rendu dans une tr s basse r solution d environ 10 fois 6 pixels par lettre avec de mauvaises approches rendant ce texte presque impossible a lire La troisi me dimension ajoute de la complexit au graphique sans apporter d information La pr sentation en trois dimension rend tr s difficile l estima tion de la hauteur des barres Consid rons la barre de mauvais Repr sente t elle plus ou moins de 20 Alors que le devant de la barre est sous la ligne de 20 l arri re qui compte est au dessus Il
53. est impossible de dire quels sont les nombres repr sent s par les barres Aussi les barres cachent elles gratuitement l information qu elles devaient pr senter Que repr sente la somme des hauteurs des barres 100 ou 60 La barre de tr s mauvais repr sente t elle 0 ou 1 Pourquoi les barres sont elles bleues On pourrait avancer que dans cet exemple les nombres exacts ne sont pas importants pour le diagramme L important est le message qui est qu il y a plus de tr s bon et de bon que de mauvais et tr s mauvais Toutefois s il s agit de faire passer ce message autant utiliser une phrase qui le dit ou un graphique qui le pr sente plus clairement Cahiers GUTenberg n 48 Avril 2007 sans 20 40 tr s bon 3 6 Classement donn tr s mauvais 0 0 par 50 participants bon 9 18 mauvais 8 16 passable 10 20 Le graphique ci dessus a peu pr s la m me densit d information que la table il a peu pr s la m me taille et pr sente peu pr s les m mes nombres De plus on peut voir directement qu il y a plus de bons classements que de mauvais On peut aussi voir que le nombre de personne qui n ont pas donn de classement n est pas n gligeable ce qui est fr quent pour une telle enqu te Un diagramme n est pas toujours une bonne id e Regardons un exemple que je redessine d ap
54. fl ches des chemins courbes et des chemins compos s de plusieurs segments comme dans les exemples qui suivent begin tikzpicture draw lt gt 0 0 arc 180 30 10pt draw lt gt ae Oe ee 1 0 1 5cm 10pt 2cm 0pt 2 5cm 10pt end tikzpicture Karl regarde plus en d tail la fl che que TikZ place la fin Elle ap para t comme ceci quand il l agrandit La forme semble vaguement famili re et de fait c est exactement celle du bout de la fl che normal que TEX utilise dans quelque chose comme f A B Karl aime cette fl che d autant plus qu elle n est pas aussi paisse que celles offertes par tant d extensions Toutefois il s attend ce que parfois il ait besoin d utiliser d autres genre de fl ches Pour cela Karl peut crire par exemple gt right arrow tip kind o right arrow tip kind est une sp cification sp ciale de pointe de fl che Par exemple si Karl crit gt stealth alors il dirait TikZ qu il voudrait une pointe de fl che la combattant furtif begin tikzpicture gt stealth draw gt 0 0 arc 180 30 10pt draw lt lt very thick a EN 1 0 1 5cm 10pt 2cm 0pt 2 5cm 10pt end tikzpicture Karl se demande si un nom aussi guerrier 4 pour un type de fl che est vraiment n cessaire Il n est pas vraiment radouci lorsque son fils lui dit que PowerPoint de Microsoft utilise le m me nom Il d cide d en fa
55. i toute la magie doit tre dans les commandes node Dans la premi re partie nous avons appris que chaque n ud ajoutera un morceau de texte la derni re coordonn e Ainsi chacun des cinq n uds est ajout une position diff rente Dans le code pr c dent le texte est vide cause des vides Alors pourquoi voyons nous quelque chose La r ponse est dans l option draw de l op ration node elle fait que la forme autour du texte est dessin e Donc le code 0 2 node shape circle draw signifie dans le chemin principal ajouter un move to la coordonn e 0 2 Puis suspendre temporairement la construction du chemin principal pen dant que le n ud est construit Ce n ud sera un circle cercle autour d un texte vide Ce cercle doit tre dessin draw mais ni rempli ni utilis autre chose Lorsque le n ud tout entier est construit le sauvegarder jusqu ce que le chemin principal soit termin Alors le dessiner Le 0 1 node shape circle draw qui suit signifie Continuer le chemin principal par un move to jusqu 0 1 Construire ensuite un n ud cette position galement Ce n ud sera montr apr s que le chemin principal sera fini Et ainsi de suite 2 4 PLACER DES N UDS GRACE A LA SYNTAX AT Hagen comprend maintenant que les op rations node ajoutent des n uds au chemin mais il lui semble un rien stupide de cr er avec l op ration path un chemin constitu
56. icipants consid raient le s minaire comme tr s bon neuf comme bon dix comme passable huit comme mauvais et personne ne qualifiait le s minaire de tr s mauvais Une fa on simple de r sumer l information est la table suivante Cahiers GUTenberg n 48 Avril 2007 Classement Nombre de participants sur 50 Pourcentage pour ce classement tr s bon 3 6 bon 9 18 passable 10 20 mauvais 8 16 tr s mauvais 0 0 sans opinion 20 40 Ce que fit l intervenant fut de pr senter les donn es l aide d un diagramme barres en 3 dimensions Cela ressemblait ceci 100 80 60 40 20 2 QZ 2 a 2 S S a a D cb a wo wo 5 5 nN 40 5 La table et le diagramme ont peu pr s la m me taille Si vous pensez d abord que le diagramme semble plus beau que la table essayez de r pondre aux questions suivantes d apr s les informations donn es par la table ou par le graphique 1 Combien y avait il de participants 2 Combien de participants ont r pondu l enqu te 3 Parmi tous les participants quel pourcentage a r pondu len qu te 4 Combien de participants ont coch tr s bon 5 Parmi tous les participants quel pourcentage a coch tr s bon 6 Y eut il plus d un quart des participants pour cocher mauvais ou tr s mauvais Tutoriel Tikz 84 7 Qu
57. iff rents logiciels pour cr er les graphiques de leur article Un auteur pourra produire quelques courbes l aide de GNUPLOT un diagramme avec xFIG et incorporer une image eps produite par un co auteur utilisant un logiciel inconnu Tous ces graphiques auront le plus vraisemblablement des traits d paisseurs diff rentes des polices diff rentes des tailles diff rentes De plus les au teurs utilisent souvent en important les graphiques des options comme height 5cm pour les r duire une taille sympa Si la m me approche tait suivie dans l criture du texte principal chaque partie serait crite avec une police et dans un corps diff rents Dans quelques parties les th or mes seraient soulign s dans d autres il seraient en capitales dans d autres encore crits en rouge De plus les marges changeraient d une page l autre Les lecteurs et les diteurs ne tol reraient pas qu un texte soit crit de cette fa on mais ils tol rent ce genre de choses pour les graphiques Pour assurer une coh rence entre les graphiques et le texte suivez attentivement ces conseils Ne r duisez ni n agrandissez les graphiques Cela signifie que lorsque l on cr e une figure avec un programme externe on doit la cr er la bonne taille Utilisez la m me police dans la figure et le corps de texte 6 Il me semble que l auteur fait preuve ici d un optimisme exag r N D T Cahiers
58. ifs plus complexes de pointill s avec l option dash pattern mais son fils insiste sur le fait que les pointill s doivent tre utilis s avec la plus grande prudence et que en g n ral ils perturbent le lecteur Le fils de Karl maintient que les motifs compli qu s de pointill s sont mauvais Les tudiants de Karl se contrefichent des motifs de pointill s 1 10 CONSTRUCTION D ARC Notre prochain obstacle est de dessiner un arc pour marquer l angle Pour cela l op ration de construction de chemin arc se r v le utile Elle trace une partie de cercle ou d ellipse Cette op ration arc doit tre suivie par un triplet entre parenth ses Les deux premi res composantes sont des angles la derni re est un rayon Par exemple arc 10 80 10pt signifie un arc allant de 10 80 degr s sur un cercle de rayon 10pt Karl a videmment besoin d un arc de 0 a 30 Le rayon devrait tre assez petit peut tre environ un tiers du rayon du cercle Cela donne 0 30 3mm Lorsque l on utilise l op ration de construction de chemin arc l arc d termin est ajout avec pour point de d part la position courante Tutoriel Tikz 33 34 Nous avons donc besoin d abord d y aller begin tikzpicture draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle 1cm draw 3mm 0Omm arc 0 30 3mm end tikzpicture
59. ire discuter ses tudiants un jour En plus de stealth il y a de nombreuses autres pointes pr d finies parmi lesquelles Karl peut choisir De plus il peut d finir des types de fl che lui m me s il en a besoin 4 Ladjectif stealth qui signifie furtif est employ pour un certain type d avion militaire N D T Tutoriel Tikz 43 44 1 17 PORT E Karl a d j vu que de nombreuses options de graphique peuvent influer sur le rendu des chemins Souvent il voudrait appliquer certaines options tout un ensemble de commandes graphiques Par exemple Karl pourrait d sirer tracer trois chemins en utilisant le crayon thick pais mais vouloir que le reste soit trac normalement Si Karl souhaite qu un certain ensemble d options de graphique s ap pliquent toute la figure il peut simplement passer ces options la commande tikz ou l environnement tikzpicture Gerda pas serait ces options tikzpicture Toutefois si Karl veut les appli quer un groupe local il place ces commandes dans un environ nement scope Gerda utilise scope et endscope et Hans utilise startscope et stopscope Cet environnement prend des options de graphique comme argument optionnel et ces options s appliquent tout ce que contient l environnement mais rien d ext rieur Voici un exemple begin tikzpicture ultra thick draw 0 0 0 1 begin scope thin draw 1 0 1 1 draw 2 0 2 1
60. let En fait toutes les options de transformations ne s appliquent pas au chemin entier mais seulement a tout ce qui les suit sur le chemin Nous regarderons cela plus en d tail d ici peu Cependant toutes les options donn es pendant la construction d un chemin ne s appliquent qu a ce chemin 1 18 TRANSFORMATIONS Quand on d finit des coordonn es comme icm icm o le point sera t il plac sur la page Pour d terminer cette position TikZ TEx et PDF ou PostScript appliquent tous certaines transformations aux coordonn es donn es pour d terminer la position finale sur la page TikZ fournit de nombreuses options qui permettent de transformer les coordonn es dans le syst me priv de coordonn es de PGF Par exemple l option xshift permet de pousser tous les points suivants d une certaine quantit tikz draw 0 0 0 0 5 xshift 2pt 0 0 0 0 5 Il est important de noter que l on peut changer de transformation au milieu du chemin une caract ristique que n a ni PDF ni PostScript La raison en est que PGF garde la trace de sa propre matrice de transforma tion Voici un exemple plus complexe begin tikzpicture even odd rule rounded corners 2pt x 10pt y 10pt scale 2 filldraw fill examplefill 0 0 rectangle 1 1 xshift 5pt yshift 5pt 0 0 rectangle 1 1 rotate 30 1 1 rectangle 2 2 end tikzpicture Tutoriel Tikz 45 46 Les transformations les plus utiles
61. ltiples options label ce qui entrainera la Cahiers GUTenberg n 48 Avril 2007 pr sente de multiples tiquettes 60 shorthandoff tikz node circle draw label 60 60 degres label below 90 degres mon cercle 90 Hagen n est pas totalement satisfait de l option label car l ti quette n est pas rouge Pour obtenir cela il a deux options premi rement il peut red finir le style every label chaque tiquette deuxi mement il peut ajouter des options au n ud d tiquette Ces options sont donn es la suite de label et il pourrait crire label red above s leqslant 3 Toutefois cela ne fonctionne pas compl tement car TEX pense que le ferme la liste des options du n ud semaphore Aussi Hagen doit il ajouter des accolades et crire label red above s leqslant 3 Comme cela semble af freux Hagen d cide de red finir le style every label begin tikzpicture tikzstyle every label red node place waiting node place critical below of waiting node place semaphore below of critical E E label above s leqslant 3 s lt 3 node transition leave critical right of critical node transition enter critical left of critical end tikzpicture 2 10 JOINDRE LES N UDS Il est vraiment temps maintenant de joindre les n uds Com men ons par quelque chose de simple savoir la ligne droite entre enter c
62. n m me temps tikz shade 0 0 rectangle 2 1 3 0 5 circle 5cm Lombrage par d faut est une transition douce entre le gris et le blanc Pour sp cifier d autres couleurs on peut utiliser les options p i gt begin tikzpicture rounded corners ultra thick shade top color yellow bottom color black 0 0 rectangle 2 1 shade left color yellow right color black 3 0 rectangle 2 1 shadedraw inner color yellow outer color black draw yellow 6 0 rectangle 2 1 shade ball color green 9 5 circle 5cm end tikzpicture Pour Karl ceci pourrait convenir begin tikzpicture scale 3 clip 0 1 0 2 rectangle 1 1 0 75 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle icm shadedraw left color gray right color green p draw green 50 black 0 0 3mm Omm arc 0 30 3mm cycle end tikzpicture 2 Il faudrait en toute rigueur utiliser soit le verbe d grader qui d apr s le Littr s applique une couleur mais dont le sens courant est un peu trop pr gnant et n gatif pour qu il ne soit pas source de confusion soit la locution appliquer un d grad Je vais une fois de plus au plus court revendiquant pour moi ce qu on trouve bon pour la nature le principe de moindre action N D T Cahiers GUTenberg n 48 Avril 2007 Toutefois il d
63. ngle 1 1 Il reste Karl le segment pour tana qu il semble difficile de d finir en utilisant les transformations et les coordonn es polaires Pour cela il a besoin d une autre fa on de d finir des coordonn es Karl peut d finir des coordonn es l aide d intersections de droites Le segment pour tana commence 1 0 et monte verticalement jusqu au point d intersection d une droite verticale et d une droite passant par l origine et 30 1cm La syntaxe pour obtenir ce point est la suivante draw very thick orange 1 0 intersection of 1 0 1 1 and 0 0 30 1cm Dans ce qui suit deux derniers exemples pr sentent la fa on d utiliser les positions relatives Notez que les options de transformations qui sont expliqu es plus loin sont souvent plus utiles pour d placer des objets que des positions relatives begin tikzpicture scale 0 5 draw 0 0 90 1cm arc 90 360 1cm arc 0 30 1cm cycle gt draw 60 5pt 30 1cm arc 30 90 1cm cycle draw 3 0 O 1cm 72 1cm 144 1cm 216 1cm 288 1cm cycle end tikzpicture 1 16 AJOUTER DES POINTES DE FL CHES Karl veut maintenant ajouter les petites pointes de fl che au bout des axes Il a remarqu que dans de nombreuses figures m me dans des journaux scientifiques ces pointes semblent manquer peut tre parce que les programmes qui ont cr les graphiques ne peuvent pas les produi
64. noeuds Par acquis de conscience il d finit galement inner sep Opt Ainsi il s assure que les n uds auront vraiment la taille minimum size et non pour des tailles minimales tr s petites la taille mi nimale n cessaire pour contenir l espace ajout automatiquement Tutoriel Tikz 61 62 tikzstyle place circle draw blue 50 fill blue 20 thick inner sep Opt minimum size 6mm tikzstyle transition rectangle draw black 50 fil1 black 20 thick inner sep Opt minimum size 4mm begin tikzpicture C node at 0 2 place node at 0 1 place node at 0 0 place node at 1 1 transition node at 1 1 transition end tikzpicture 6000 E 2 7 NOMMER LES N UDS Le prochain but de Hagen est de joindre les n uds l aide de fl ches a semble tre un probl me emb tant puisque les fl ches ne doivent pas commencer au milieu des n uds mais quelque part sur la fronti re et Hagen voudrait bien ne pas avoir calculer ces positions la main Heureusement PGF fera les calculs n cessaires pour lui Toutefois il devra d abord donner des noms aux n uds afin de pouvoir y r f rence plus tard Il y a deux fa ons de nommer un n ud La premi re utilise l option name La seconde consiste crire le nom voulu entre parenth se apr s l op ration node Hagen pense que cette seconde m thode semble trange mais il changera bient t d opinion d finition des st
65. nt que r f rence des explications situ es dans des l gendes ext rieures Le lecteur doit alors sauter d avant en arri re entre les explications et l objet d crit Pensez att nuer les annotations accessoires en les colorant en gris par exemple Cela permettra de centrer l attention sur la figure elle m me 3 7 COURBES ET DIAGRAMMES L esp ce la plus fr quente de graphiques sp cialement dans les ar ticles scientifiques est celle des courbes et diagrammes Elle pr sente de nombreuses vari t s comprenant les courbes simples les courbes para m triques les surfaces les histogrammes les diagrammes en camem bert et bien d autres encore Malheureusement il est de notori t publique qu il est difficile d ob tenir ces graphiques correctement En partie on peut bl mer les r glages par d faut des logiciels comme gnuplot ou Excel car ces logiciels rendent tr s facile la cr ation de mauvais diagrammes ou de mauvaises courbes La premi re question se poser lorsque l on cr e une courbe est Y a t il assez de donn es pour m riter une courbe Si la r ponse est pas vraiment utilisez une table Une situation typique o on ma pas besoin d un diagramme est lorsque des gens pr sentent quelques nombres avec un diagramme barres Voici un exemple v cu la fin d un s minaire un intervenant demande leur avis aux participants D apr s cette petite enqu te trois part
66. oses encore plus sournoises mais ce qui pr c de donne l id e principale Cahiers GUTenberg n 48 Avril 2007 1 20 AJOUTER DU TEXTE Karl est maintenant assez satisfait de la figure Toutefois la partie la plus importante savoir les tiquettes manque encore TikZ offre un syst me puissante et facile utiliser pour ajouter une figure du texte et plus g n ralement des formes complexes une po sition donn e L id e de base est la suivante lorsque TikZ construit un chemin et rencontre le mot clef node n ud au milieu du chemin il lit la sp cification de n ud Le mot clef node est suivi de quelques op tions et de texte plac entre accolades Ce texte est plac dans une boite normale de Tpx si la sp cification de n ud suit directement des coor donn es ce qui est le cas g n ralement TikZ est capable de faire un peu de magie afin qu il soit m me possible d utiliser du texte verbatim dans les boites et puis la place la position courante c d la derni re po sition d termin e ventuellement d plac e un peu suivant les options donn es Toutefois tous les n uds ne sont trac s seulement qu apr s que le chemin a t compl tement trac rempli ombr d coup etc begin tikzpicture scale 2 draw 0 0 rectangle 2 2 draw 0 5 0 5 node fill examplefil1 Text at verb node 1 1 5 1 5 node Text at verb node 2 end tikzpicture Text atnode 2
67. r s un diagramme circulaire de Die Zeit du 4 juin 2005 Kohle ist am wichtigsten Energiemix bei der deutschen Stromerzeugung 2004 Gesamte Netto Stromerzeugung in Prozent in Milliarden Kilowattstunden Mrd kWh Sonstige 16 5 kWh 2 9 Regenerative 53 7 kWh davon Wind 4 4 25 0 kWh Mineral lprodukte 9 2 kWh 1 62 Erdgas 59 2 kWh Kernenergie 158 4 kWh Steinkohle 127 1 kWh Braunkohle 146 0 kWh Tutoriel Tikz 86 Ce graphique a t redessin avec TikZ mais l original lui ressemble beaucoup premi re vue le graphique semble beau et instructif mais il y a beaucoup de choses qui ne vont pas Le diagramme est en trois dimensions Toutefois les ombres n ap portent rien en terme d information et au mieux elles perturbent Dans un diagramme circulaire en 3D les tailles relatives sont tr s d form es Par exemple l aire de la zone grise du Braunkohle est plus grande que celle de la zone verte du Kernenergie en d pit du fait que le pourcentage de Braukohle est plus petit que celui de Kernenergie La distortion due l effet 3D est encore pire pour les petites sur faces Laire de Regenerative est un peu plus grande que celle de Erd gas Laire de Wind est l g rement plus petite que celle de Mine ral lprodukte alors m me que le pourcentage du Wind est presque trois fois plus grand que celui de Mineral lprodukte
68. r un rectangle au che min courant utiliser l op ration de construction de chemin rectangle Cette op ration doit tre suivie d autres coordonn es et ajoutera un rec tangle au chemin de telle sorte que les coordonn es pr c dentes et les suivantes d terminent les coins du rectangle Ajoutons donc deux rec tangles la figure begin tikzpicture draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle 1cm draw 0 0 rectangle 0 5 0 5 draw 0 5 0 5 rectangle 1 1 end tikzpicture Cahiers GUTenberg n 48 Avril 2007 Bien que a puisse tre sympa dans d autres circonstances a ne nous aide pas vraiment pour le probl me de Karl d abord il nous faudrait bien trop de ces rectangles et puis la bordure n est pas ferm e Aussi Karl est pr t recourir simplement au trac de quatre verticales et quatre horizontales en utilisant l aimable commande draw lorsqu il apprend qu il y a aussi une op ration de construction de chemin grid quadrillage 1 7 CONSTRUCTION D UN QUADRILLAGE Karl pourrait utiliser le code suivant begin tikzpicture draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle 1cm draw step 5cm 1 4 1 4 grid 1 4 1 4 end tikzpicture Apr s un autre coup d ceil sur la figure attendue Karl remarque que a serait mieux si le quadrillage tait moins visible Son fils lui a dit que les
69. re Karl pense qu il doit y avoir des pointes au bout des axes Son fils est d accord Ses tudiants ne s occupent pas des fl ches Tutoriel Tikz Al 42 Il se trouve qu ajouter des fl ches est plut t simple Karl ajoute l option gt aux commandes de trac des axes begin tikzpicture scale 5 clip 0 1 0 2 rectangle 1 1 1 51 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw gt 1 5 0 1 5 0 draw gt 0 1 5 0 1 5 draw 0 0 circle icm filldraw fill green 20 draw green 50 black 0 0 3mm Omm arc 0 30 3mm cycle draw red very thick 30 1cm 0 0 5 draw blue very thick 30 1cm 0 0 5 0 0 draw orange very thick 1 0 intersection of 1 0 1 1 and 0 0 30 1cm end tikzpicture Si Karl avait utilis l option lt la place de gt les pointes auraient t plac es au d but du chemin Loption lt gt place des fl ches 4 chaque extr mit du chemin Cahiers GUTenberg n 48 Avril 2007 Il y a certaines restrictions au type de chemins auxquels on peut ajou ter des fl ches En gros on ne peut ajouter des fl ches qu aux lignes simples ouvertes Par exemple on ne devrait pas essayer d ajouter des fl ches disons un rectangle ou un cercle On peut essayer mais il n y a aucune garantie sur ce qui arrivera ni aujourd hui ni dans les pro chaines versions Toutefois on peut ajouter des
70. re bend left waiting edge post bend right semaphore end tikzpicture Cahiers GUTenberg n 48 Avril 2007 2 12 AJOUT DE LA LIGNE SERPENTANTE ET DU TEXTE MULTILIGNE Gr ce au m canisme des n uds Hagen peut facilement cr er les deux r seaux de Petri Il ne sait cependant pas encore comment cr er la ligne serpentante entre les deux r seaux Pour cela il peut utiliser un serpent snake Les serpents sont ainsi nomm s car la forme la plus l mentaire d un serpent ressemble exac tement un serpent Toutefois nimporte quel motif r p titif peut tre utilis comme serpent motif tel que des bosses ou des dents de scie ou m me des choses bien plus compliqu es Pour tracer le serpent il suffit Hagen de placer l option snake snake sur le chemin Cela fait que toutes les lignes droites du chemin sont remplac es par des serpents On peut galement utiliser des serpents que pour certaines parties du chemin mais Hagen n aura pas besoin de cette possibilit begin tikzpicture draw gt snake snake 0 0 2 0 ANNANN end tikzpicture Bon a ne semble pas tout fait correct pour l instant Le probl me est que le serpent se trouve finir exactement l o la fl che commence Heureusement une option peut aider dans ce cas De plus le serpent devrait tre un tout petit peu plus troit ce que l on peut r gler avec encore d autres options begin tikzpicture draw gt snake snak
71. ritical et critical Nous voulons que cette ligne com mence du c t droit de enter critical et s arr te sur le c t gauche de critical Pour cela nous pouvons utiliser les ancres des n uds Chaque n ud d finit une flopp e d ancres qui sont situ es sur sa fron ti re ou dans son int rieur Par exemple l ancre center centre est au Tutoriel Tikz 65 66 centre du n ud l ancre west ouest est la gauche du n ud et ainsi de suite Pour acc der la coordonn e d un n ud on utilise le nom de ce n ud suivi d un point lui m me suivi du nom de l ancre begin tikzpicture node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical right of critical node transition enter critical left of critical draw gt critical west enter critical east end tikzpicture E 0e Ensuite occupons nous de la courbe joignantwaiting enter critical Cela peut tre d terminer l aide de courbes avec points de contr le begin tikzpicture node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical right of critical node transition enter critical left of critical draw gt enter critical east critical west draw gt waiting west controls left 5mm
72. ront implicitement expliqu es par le texte environnant Ainsi le texte princi pal explicitera en g n ral le pourquoi de la figure et ce qu elle montre Il en est tout a fait autrement pour une figure hors texte qui sera vue lorsque le texte auquel elle est li e soit n aura pas encore t lu soit aura t lu bien longtemps avant Pour cela on devrait en cr ant un figure hors texte suivre les conseils que voici Les figures hors texte devraient avoir une l gende qui les rende compr hensibles par elles m mes Supposons par exemple qu une figure montre un exemple de diff rentes tapes de l algorithme de tri rapide quicksort La l gende de la figure devrait au minimum informer le lecteur de ce que La figure montre les diff rentes tapes de l algorithme de tri quicksort pr sent en page X et non pas juste Algorithme quicksort Une bonne l gende donne autant de contexte que possible Par exemple on pourrait crire La figure montre les diff rentes tapes de l algorithme de tri quicksort pr sent en page X Dans la premi re ligne on a pris l l ment 5 pour pivot Cela entra ne Bien que cette infor mation puisse tre donn e aussi dans le texte principal en la pla ant dans la l gende on garantira que le contexte est donn N ayez pas peur des l gendes de 5 lignes de long Votre diteur vous ha ra peut tre pour a Envisagez de le ha r en retour On renverra
73. s d ja cr er la figure que d sire Hagen sauf peut tre la ligne serpentante on va s en occuper on commence avec un grand rectangle gris clair et puis on ajoute des tas de cercles et de petits rectangles plus quelques fl ches Toutefois cette approche a de nombreux d fauts premi rement il sera difficile de changer quoi que ce soit une tape ult rieure Par exemple si on d cide d ajouter plusieurs places au r seau de Petri les Tutoriel Tikz 97 98 cercles sont appel s places dans la th orie des r seaux de Petri toutes les coordonn es changent et on doit tout recalculer Deuxi mement il est difficile de lire le code du r seau de Petri puisque c est une longue liste compliqu e de coordonn es et de commandes de dessin la structure du r seau de Petri sous jacent est perdue Heureusement TikZ offre un m canisme puissant pour viter les difficult s nonc es ci dessus les n uds Nous avons d j abord les n uds dans la partie pr c dente quand nous nous en sommes servi pour ajouter des tiquettes au graphique de Karl Dans cette partie ci nous verrons que les n uds sont bien plus puissants encore Un n ud est une petite partie d une figure Quand on cr e un n ud on fournit une position o le n ud devrait tre dessin et une forme shape Un n ud de forme circle cercle sera dessin comme un cercle un n ud de forme rectangle sera dessin comme un rectangle et ainsi
74. s le cas Ha gen pourra toujours d finir l ancre voulue la main Hagen voudrait maintenant simplifier un peu l op ration curve Il se fait que cela peut tre accompli avec une op ration sp ciale de chemin l op ration to Cette op ration prend de nombreuses options on peut m me d finir les siennes Une paire d option est utiles pour Hagen la paire in dans et out dehors Ces options prennent des angles auxquels 5 M taphore maritime N D T Tutoriel Tikz 67 68 la courbe doit quitter ou atteindre les coordonn es de la source ou de la cible Sans ces options c est une ligne droite qui est trac e begin tikzpicture node place waiting node place critical below of waiting node place semaphore below of critical node transition leave critical right of critical node transition enter critical left of critical draw gt enter critical to critical draw gt waiting to out 180 in 90 enter critical end tikzpicture E O Lop ration to admet encore une autre option qui convient encore mieux au probl me de Hagen l option bend right tournant droite Cette option prend galement un angle mais cette valeur ne d termine que l angle par lequel la courbe tourne vers la droite begin tikzpicture node place waiting node place critical below of waiting node place semaphore below of critical no
75. s long et difficile Traitez les graphiques comme des l ments importants de vos articles Ils m ritent autant de temps et d nergie que le texte On peut avancer que la cr ation de graphiques m rite m me plus de temps que l criture du texte principal parce qu on sera plus attentif Tutoriel Tikz 17 78 aux graphiques et qu on les regarda les premiers Pr voyez autant de temps pour la cr ation et la correction d un graphique que vous n en pr voyez pour un texte de la m me taille Les graphiques difficiles contenant beaucoup d informations peuvent m me demander plus de temps Des graphiques tr s simple demanderont moins de temps mais tr s probablement vous ne voulez pas de graphiques tr s simples dans votre article de toute fa on de m me que vous ne voudriez pas de texte tr s simple de la m me taille 3 3 PROCESSUS DE CR ATION DE GRAPHIQUE Lorsque l on crit un article scientifique on suit probablement le mod le suivant on a quelques r sultats ou id es qu on voudrait publier La cr ation de l article commencera d habitude par un plan sommaire Puis on remplira les diff rentes parties avec du texte pour cr er un premier brouillon Ce brouillon sera revu de mani re r p t e jusqu ce que souvent apr s d importantes corrections un article fini en merge Il n y a en g n ral pas une seule phrase du brouillon d un bon article de revue qui ai
76. sont xshift et yshift pour d placer shift pour d placer jusqu un point donn comme dans shift 1 0 ou shift 0 0 les accolades sont n cessaires pour que TEX ne prenne pas les virgules comme s parateurs d op tions rotate pour faire tourner d un certain angle il y a gale ment un rotate around pour faire tourner autour d un point donn scale pour agrandir ou r tr cir d un certain facteur xscale et yscale pour agrandir uniquement parall lement l axe des x ou l axe des y xsacle 1 est une sym trie axiale et xslant et yslant pour incliner Si ces transformations et celles que je mai pas mentionn es ne suffisent pas l option cm permet d appliquer une matrice de transformation ar bitraire Les tudiants de Karl au passage ne savent pas ce qu est une matrice de transformation 1 19 R P TER BOUCLES POUR Le but suivant de Karl est d ajouter des graduations sur les axes aux emplacements 1 1 2 1 2 et 1 Pour ce faire il lui serait agr able de pouvoir utiliser une sorte de boucle d autant plus qu il souhaite faire la m me chose chacune de ces positions Il existe plusieurs extensions pour faire a IATEX a ses propres commandes internes pstricks est li vr avec la puissante commande multido Toutes peuvent tre utilis es avec PGF et TikZ aussi si vous en tes familier n h sitez pas les utili ser PGF apporte encore une autre commande nomm e foreach pour chaque
77. t begin tikzpicture scale 3 clip 0 1 0 2 rectangle 1 1 0 75 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle icm filldraw fill green 20 draw green 50 black D 0 0 3mm Omm arc 0 30 3mm cycle draw red very thick 30 1cm 0 0 5 end tikzpicture 3 pour un francais frott de maths du secondaire on dira vecteur courant colin aire au vecteur directeur de l axe des abscisses etc N D T Tutoriel Tikz 39 40 Karl utilise le fait que sin30 1 2 Toutefois il doute tr s fortement que ses tudiants le sachent aussi il pense que ce serait bien s il y avait un moyen de d terminer un point comme le point juste sous le point 30 1cm plac sur l axe des x C est en fait possible avec une syntaxe sp ciale Karl peut crire 30 1cm 0 0 De mani re g n rale le sens de p q est le point d intersection de la verticale passant par p et de l horizontale passant par q Ensuite tra ons la courbe du cosinus Une fa on serait d crire 30 1cml 0 0 0 0 Une autre fa on est la suivante nous conti nuons depuis le point o s arr te le sinus begin tikzpicture scale 3 clip 0 1 0 2 rectangle 1 1 0 75 draw step 5cm gray very thin 1 4 1 4 grid 1 4 1 4 draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 0 0 circle icm
78. t wi north 11 east rectangle w2 south e1 west end pgfonlayer Tutoriel Tikz 15 76 end tikzpicture pour le shorthandoff 3 CONSEILS A PROPOS DES GRAPHIQUES Cette section ne concerne pas PGF ou TikZ mais donne quelques conseils sur la cr ation de graphiques pour des pr sentations des ar ticles ou des livres scientifiques Les conseils de cette section proviennent de sources diff rentes Un grand nombre d entre eux ressortissent simplement a ce que je voudrais appeler le bon sens d autres refl tent mon exp rience personnelle toutefois je l esp re pas mes pr f rences personnelles d autres encore sont issus de livres la bibliographie est toujours absente j en suis d sol sur la cr ation de graphique et la typographie Ce qui m a le plus in fluenc ce sont les livres brillants d Edward Tufte Bien que je ne sois pas d accord avec tout ce qu on lit dans ces livres je trouve que de nombreux arguments de Tufte sont si convaincants que j ai d cid de les reprendre dans les conseils qui suivent 3 1 FAUT IL SUIVRE CES CONSEILS La premi re question que l on devrait se poser lorsque quelqu un donne un tas de conseils est dois je vraiment suivre ces conseils C est une question importante parce qu il y a de bonnes raisons de ne pas suivre des conseils g n raux La personne qui a crit ces conseils pourrait avoir en vue un autre objectif que le v tr
79. t in 1 0 5 frac 1 2 1 draw x cm ipt x cm 1pt node anchor north fill white xtext foreach y ytext in 1 0 5 frac 1 2 0 5 frac 1 2 1 draw ipt y cm 1pt y cm node anchor east fill white ytext end tikzpicture Dir l I n RQ ei On peut placer les tiquettes sur les courbes et en ajoutant l option sloped d clive en pente faire qu elles soient tourn es de telle sorte Tutoriel Tikz 53 94 qu elles suivent la pente de la courbe Voici un exemple begin tikzpicture draw 0 0 controls 5 1 and 7 5 1 node near start sloped above near start node midway node very near end sloped below very near end 10 0 end tikzpicture Ve Il reste a crire le texte explicatif sur la droite de la figure La difficult principale ici est de limiter la largeur de l tiquette textuelle qui est assez longue ce qui pousse a utiliser la coupure de ligne Heureusement Karl peut utiliser l option text width 6cm pour obtenir l effet voulu Ainsi voici le code complet begin tikzpicture scale 3 cap round Local definitions def costhirty 0 8660256 Colors colorlet anglecolor green 50 black colorlet sincolor red colorlet tancolor orange 80 black colorlet coscolor blue Styles tikzstyle axes tikzstyle important line very thick tikzstyle information text rounded
80. t surv cu sans modification La cr ation de graphiques suit le m me mod le D cider ce que le graphique doit communiquer En faire une d ci sion consciente c est dire r pondre la question Qu est ce que ce graphique est sens dire au lecteur Cr er un croquis c est dire une forme g n rale et grossi re du graphique contenant les l ments les plus importants Souvent il est utile de le faire avec papier et crayon Placer les d tails plus pr cis pour cr er le premier brouillon Reprendre ce graphique de mani re r p t e en m me temps que le reste de l article 3 4 LIER LE GRAPHIQUE AVEC LE TEXTE PRINCIPAL On peut placer les graphiques diff rents endroits dans un article Ou bien on les place dans le texte c d quelque part au milieu d un paragraphe ou entre deux paragraphes ou bien on les place part en hors texte Comme les imprimeurs et les gens en g n ral aiment bien les pages pleines autant pour des raisons esth tiques qu conomiques les figures hors texte peuvent traditionnellement tre plac es sur des Cahiers GUTenberg n 48 Avril 2007 pages tr s loign es du texte principal dans lequel on y fait r f rence IATEX et TeX tendent encourager ce rejet des graphiques pour des raisons techniques Quand une figure est dans le texte elle est plus ou moins automati quement li e au texte principal dans le sens que ses annotations se
81. tiliser une autre couleur pour le remplissage Karl en aura besoin pour colorier le secteur angulaire Cahiers GUTenberg n 48 Avril 2007 Il remarque que le style very thin produit des traits tr s fins Karl wen est pas vraiment surpris ni par le fait que thin produise des traits fins thick des traits pais very thick des traits tr s pais ultra thick des traits vraiment tr s tr s pais et que ultra thin produise des traits si fins que certaines imprimantes basse d finition ou certains crans ont du mal les montrer Il se demande quelle option permet d obtenir des traits d paisseur normale Il se trouve que c est thin qui le fait Karl trouve cela trange mais son fils lui explique que LATEX a deux commandes nomm es thinlines et thicklines et que thinlines donne les traits d paisseur normale plus pr cis ment de l paisseur par exemple du f t d une lettre comme T ou i N anmoins Karl voudrait savoir s il existe quelque chose entre thin et thick Il y a quelque chose c est semithick Une autre chose que l on peut faire c est tracer les lignes en pointill s ou avec des tirets Pour cela on peut utiliser les styles dashed et dotted ce qui produit _ _ et Ces deux options existent dans une version l che loose et une version serr e dense appel e loosely dashed densely dashed loosely dotted et densely dotted S ily tient vraiment beau coup Karl peut aussi d finir des mot
82. tion du lecteur et donc de vraient tre trac es avec un contraste faible avec l arri re plan Par ailleurs une grille avec un maillage l che perturbe moins qu une grille au maillage serr Cahiers GUTenberg n 48 Avril 2007 Les lignes de pointill s cr ent de nombreux points o appara t un contraste du noir au blanc Les pointill s et les tirets peuvent tre tr s perturbants et aussi devraient tre g n ralement vit s Il ne faut pas utiliser des motifs diff rents de pointill s pour distinguer des courbes De cette fa on on perd des points de donn es et l il n est pas particuli rement bon grouper les choses en fonction d un motif de pointill s L il est bien meilleur grouper en fonction des couleurs Les motifs de fond qui remplissent une surface avec des diago nales des horizontales ou des verticales ou m me des points sont presque toujours perturbants et en g n ral n ont aucun but v ritable Les images de fond et les d grad s perturbent et il est rare qu ils ajoutent quelque chose d important au graphique De jolis petits cliparts peuvent d tourner l attention des donn es INDEX op ration 28 40 gt option 42 op ration 40 op ration 40 lt option 42 lt gt option 42 gt option 43 above option 51 agrandir voir scale anchor option 49 ancre 65 ancre voir anchor annotation 81 82 appliquer un
83. tt ralement par charbon marron est en gris pierre alors que Cahiers GUTenberg n 48 Avril 2007 la surface pour Steinkohle qu on traduit litt ralement par charbon de pierre est marron La surface qui a la couleur la plus claire est utilis e pour Erdgas Cette surface est celle qui ressort le plus cause de cette couleur plus lumineuse Toutefois pour ce diagramme Erdgas n est pas important du tout Edward Tufte appelle les diagrammes comme celui qui pr c de dia grammes de pacotille chart junk Voici quelques conseils qui pourraient vous aider viter de produire des diagrammes de pacotille Ne pas utiliser de diagramme circulaire en 3D C est mal Envisager d utiliser une table au lieu d un diagramme circulaire Ne pas appliquer les couleurs au petit bonheur la chance les utiliser pour guider l attention du lecteur et pour grouper les choses Ne pas utiliser de motifs d arri re plan comme des hachures ou des diagonales au lieu de couleurs Ces motifs perturbent De tels motifs dans un diagramme instructif sont mal 3 8 ATTENTION ET DISTRACTION Prenez votre roman favori et jetez un il sur une page typique Vous verrez que la page est tr s uniforme Rien n est l pour perturber le lec teur dans sa lecture pas de gros titres pas de texte en gras pas de grande plage blanche En fait m me quand l auteur veut mettre quelque chose en vidence on
84. ux options de couleur mais la deuxi me remplacerait la premi re En utilisant les styles on rend le code des graphiques plus flexible On peut changer l aspect des choses d une mani re plus coh rente On peut construire une structure hi rarchique de styles en d finissant des styles l aide d autres Ainsi afin de d finir un style Karl s grid bas sur le style grid Karl pourrait crire tikzstyle Karl s grid style help lines color blue 50 draw style Kar1 s grid 0 0 grid 5 5 On peut ne pas crire le style En fait chaque fois que TikZ rencontre une option qu il ne conna t pas il v rifie si cette option n est pas un nom de style Si oui le style est utilis Ainsi Karl pourrait avoir crit tikzstyle Karl s grid help lines color blue 50 draw Karl s grid 0 0 grid 5 5 Pour certains styles comme very thin on voit clairement ce que le style fait et il n est pas n cessaire d crire style very thin Pour d autres comme help lines il me semble qu crire style help lines est plus naturel Mais c est essentiellement une question de go t 1 9 OPTION DE DESSIN Karl se demande quelles sont les autres options qui influent sur la fa on dont un chemin est trac Il a d j vu que l on peut utiliser l option color color pour fixer la couleur d une ligne Loption draw color fait presque la m me chose seulement elle fixe uniquement la couleur des traits et on peut u
85. xten sions contiennent des d finitions additionnelles comme des pointes de fl ches que l on n utilise pas en g n ral dans un dessin et que l on doit charger explicitement Hagen doit charger trois biblioth ques la biblioth que de pointes de fl ches pour obtenir la pointe de fl che sp ciale utilis e dans le graphique la biblioth que de serpent pour la ligne serpentante au milieu et la biblioth que d arri re plans pour obtenir les deux surfaces rectangulaires plac es derri re les deux parties principales de la figure Cahiers GUTenberg n 48 Avril 2007 2 2 1 Mettre en place l environnement dans ATEX Quand on utilise LATEX on crira documentclass article par exemple usepackage tikz usetikzlibrary arrows snakes backgrounds begin document begin tikzpicture draw 0 0 1 1 end tikzpicture end document 2 2 2 Mettre en place l environnement dans Plain TEX Avec plain Tpx on utilisera 41 Plain TeX file input tikz tex usetikzlibrary arrows snakes backgrounds baselineskip 12pt hsize 6 3truein vsize 8 7truein tikzpicture draw 0 0 1 1 endtikzpicture bye 2 2 3 Mettre en place l environnement dans Con TEXt Avec ConTEXt on utilisera uh ConTeXt file usemodule tikz usetikzlibrary arrows snakes backgrounds starttext starttikzpicture draw 0 0 1 1 stoptikzpicture startext 2 3 INTRODUCTION AUX NCEUDS En principe nous savon
86. yles begin tikzpicture node waiting 1 at 0 2 place node critical 1 at 0 1 place E node semaphore at 0 0 place node leave critical at 1 1 transition node enter critical at 1 1 transition O end tikzpicture Hagen est content de noter que les noms facilitent la compr hension du code Les noms de n uds peuvent tre quasiment arbitraire mais ils ne doivent pas contenir de virgules points parenth ses deux points ni quelques autres caract res sp ciaux La syntaxe de l op ration node est assez lib rale en ce qui concerne l ordre dans lequel le nom de n ud le sp cificateur at et les options doivent appara tre En fait on peut m me avoir des blocs multiples d options entre le node et le texte entre accolades ils s additionnent Cahiers GUTenberg n 48 Avril 2007 On peut les ranger de mani re arbitraire et peut tre que ce qui suit est pr f rable begin tikzpicture O node place waiting 1 at 0 2 node place critical 1 at 0 1 node place semaphore at 0 0 C P node transition leave critical at 1 1 node transition enter critical at 1 1 end tikzpicture O 2 8 PLACER DES N UDS AVEC LE PLACEMENT RELATIF Bien que Hagen d sire toujours joindre les n uds il souhaite d abord s occuper d un autre probl me une fois encore le placement des n uds Bien qu il aime la syntaxe ave
87. z passera par w Cahiers GUTenberg n 48 Avril 2007 Voici un exemple on a ajout les points de contr le pour plus de clart begin tikzpicture filldraw gray 0 0 circle 2pt e e 1 1 circle 2pt 2 1 circle 2pt 2 0 circle 2pt draw 0 0 controls 1 1 and 2 1 2 0 end tikzpicture La syntaxe g n rale pour tendre un chemin d une mani re courbe est controls premier point de contr le and second point de contr le point final On peut ne pas utiliser le and second point de contr le ce qui fera que le premier sera utilis deux fois D sormais Karl peut ajouter le premier demi cercle la figure begin tikzpicture draw 1 5 0 1 5 0 draw 0 1 5 0 1 5 draw 1 0 controls 1 0 555 and 0 555 1 0 1 controls 0 555 1 and 1 0 555 1 0 end tikzpicture Karl est tr s content du r sultat mais trouve que d crire des cercles de cette mani re est extr mement maladroit Heureusement il y a une mani re bien plus simple 1 5 CONSTRUCTION D UN CHEMIN CIRCULAIRE Afin de tracer un cercle on peut utiliser l op ration de construction de chemin circle cercle Cette op ration est suivie du rayon entre paren th ses comme dans l exemple suivant Notez que la position pr c dente est utilis e comme centre du cercle tikz draw 0 0 circle 10pt C On peut galement ajouter une ellipse au chemin avec lop ration

Download Pdf Manuals

image

Related Search

Cahiers cashier\u0027s check cahiers cahiers du cinema cashiers nc cahiers de douai cahiers des charges cahiers du football cahiers d\u0027art cahiers magellanes-ns cahiers de vacances cahiers meaning cahiers de douai date cahiers de douai rimbaud cahiers naturalistes cahiers de douai pdf

Related Contents

TC-BE12P IB  XS-AW200X  USER`R MANUAL    NL - Swift Owners Club  Saeco CA6807/00  CREA/MAX  tqc - Labomat  Top S326isdn Bedienungsanleitung Mode d'emploi Istruzioni per l'uso  

Copyright © All rights reserved.
Failed to retrieve file