Après présentation par l'article précédent de deux solutions de dessin liées à LaTeX, mfpic et MetaPost, l'article d'aujourd'hui prend le relais pour présenter deux autres solutions, largement utilisées : PSTricks et Tikz.
J'avais prévu de présenter également une troisième solution de dessin aujourd'hui, appelée Asymptote, mais l'article étant déjà d'une grande longueur avec les seuls PSTricks et Tikz, j'ai finalement décidé de reporter la présentation d'Asymptote à un prochain (et dernier) épisode de la série.
Je répète l'avertissement d'usage : cette série d'articles suppose de la part du lecteur une connaissance minimale de LaTeX, qu'on peut acquérir en lisant par exemple les deux premiers chapitres du cours d'introduction à LaTeX publié sur cuk.ch par Fabien Conus et moi-même. Bien sûr, si ce n'est pas votre cas vous pouvez toujours poursuivre la lecture par simple curiosité — très bien placée en l'occurrence — mais si vous êtes vraiment allergique à tout ce qui n'est pas wysiwyg, il vaut mieux savoir que vous risquez alors le choc anaphylactique ! ;)
Comme pour mfpic et MetaPost dans l'article précédent, je me focaliserai moins ici sur la syntaxe de PStricks et de Tikz que sur la façon de les utiliser sur Mac OS X, plus précisément avec l'interface graphique TeXShop et la distribution MacTeX.
La raison ? Il existe déjà une floppée de documentations, exemples et tutoriels pour ces solutions graphiques, d'aussi bonne qualité qu'on peut souhaiter, presque tous librement disponibles sur le web. Il existe même quelques livres sur le sujet, que je citerai à la fin de cette série d'articles. Mais il y a en revanche peu de sources d'information qui nous indiquent comment faire tourner tout cela sur notre plateforme favorite. Concernant LaTeX, Mac OS X a hélas toujours été un peu délaissé par les documentations et manuels, lesquels préfèrent en général considérer les outils LaTeX de Windows ou Linux. Cette série d'articles souhaite donc contribuer à combler cette lacune.
PSTricks
De toutes les solutions LaTeX de dessin hors l'environnement picture, PSTricks est la plus ancienne avec mfpic qui à l'époque (1992) ne tournait qu'avec MetaFont. Elle a été créée par l'Américain Timothy van Zandt et est aujourd'hui maintenue par l'Allemand Herbert Voß.
Comme MetaPost, PSTricks se base sur le langage PostScript pour produire ses dessins. Mais contrairement à MetaPost, qui est un programme externe à LaTeX comprenant son propre langage, PSTricks est un « paquet » de commandes LaTeX, chacune d'entre elles produisant un code PostScript.
Les commandes PostScript utilisées par PSTricks faisant, contrairement à celles de MetaPost, intervenir des calculs, PSTricks est incompatible avec pdfLaTeX et LuaLaTeX. Il fonctionne le plus directement avec le chemin de composition traditionnel TeX+ dvips, qui produit d'abord un fichier DVI puis un fichier PostScript avec l'extension .ps contenant entre autres les instructions de dessins de PSTricks traduites en PostScript. Ensuite on applique ps2pdf de GhostScript (ou le Distiller d'Apple) pour obtenir une sortie finale en PDF contenant également les dessins voulus. Ce chemin de composition est appelé en abrégé « TeX et DVI » dans le menu « Composition » de TeXShop.
PSTricks fonctionne également directement avec XeLaTeX et son driver associé xdvipdfmx, et on verra plus loin qu'il y a moyen de l'utiliser, indirectement, avec pdfLaTeX et (sous certaines restrictions) avec LuaLaTeX.
PSTricks est d'assez loin la solution de dessin pour LaTeX la plus complète et la plus riche en extensions actuellement. Il y a le « cœur » de PSTricks, le paquet pstricks proprement dit, qu'il faut toujours charger en premier et sur lequel tous les autres paquets de la famille PSTricks sont basés ; il y a ensuite les extensions dites « de base » :
- pst-plot pour les courbes de fonctions à une variable,
- pst-tree pour les arbres et diagrammes,
- pst-3d pour les dessins basiques en 3D,
- pst-coil pour les connections de nœuds de graphes avec zigzags et ressorts,
- pst-text pour écrire des textes le long de courbes et remplir des caractères selon la fantaisie de l'auteur,
- pst-eps pour créer des fichiers EPS correspondant à chaque dessin,
- pst-fill permettant des instructions de remplissage sophistiquées,
- multido qui fournit une commande permettant d'exécuter des instructions en boucle ;
et une multitude d'autres paquets affectés à des tâches plus ou moins spécifiques : pst-eucl pour la géométrie euclidienne, pst-circ pour les dessins de circuits électriques, pst-optic pour l'optique, pst-3dplot pour les courbes et surfaces en 3D, etc.
Nous allons cependant nous limiter au tracé de la simple parabole y = x2 que nous avions déjà effectué avec mfpic et MetaPost, et nous ne ferons appel pour cela qu'à deux paquets de cette collection outre pstricks : pst-plot, lequel traite des courbes de fonctions mais également des axes de repères, des courbes de données, des courbes paramétrées, etc.) et multido car nous utiliserons une boucle. Voici ce que donne notre code de dessin de parabole en PSTricks :
|
% !TEX encoding = UTF-8
Unicode % !TEX TS-program = LaTeX \documentclass[12pt]{article} % \usepackage[utf8]{inputenc} % \usepackage{pstricks, pst-plot, multido} % \begin{document} % \begin{pspicture}(-2.75,-0.5)(2.75, 5) % Instructions de configuration générale \psset{unit = 1.25cm, labelsep = 3pt} % Tracé des axes \psaxes[labels = none, ticks = none]% {->}(0,0)(-2.75,-0.5)(2.75, 5) % Tracé de la courbe \psplot[plotstyle = curve, linecolor = red]% {-2.2}{2.2}{x 2 exp} % Lignes tiretées \psline[linestyle = dashed](2, 0)(2, 4)(-2, 4)(-2, 0) % Marques sur les axes \psline(1, -3pt)(1, 3pt) \psline(-1, -3pt)(-1, 3pt) % Marques tracées en boucle \multido{\i=1+1}{3}{\psline(-3pt, \i)(3pt, \i)} % Labels \uput[dl](0, 0){$O$} \uput[d](2.75, 0){$x$} \uput[l](0, 5){$y$} \uput[ul](0, 4){$4$} \uput[d](2, 0){$2$} \uput[d](-2, 0){$-2$} % \end{pspicture} % \end{document} |
Tout d'abord, quelques mots sur la syntaxe. En jetant un œil sur le fichier LaTeX, quelque chose vous aura sauté aux yeux : du ps de partout ! Et pas celui du Parti socialiste, mais celui de PostScript bien sûr, celui qui figure dans le mot PSTricks lui-même.
Pour chaque schéma, les instructions de dessins de PSTricks doivent être incluses dans un environnement pspicture, comme celui de notre programme :
|
\begin{pspicture}(-2.75,-1)(2.75, 5) … \end{pspicture} |
Les deux paires de coordonnées qui suivent l'appel de cet environnement précisent respectivement le point inférieur gauche et le point supérieur droit du dessin, ce qui permettra à LaTeX de délimiter une boîte rectangulaire qui lui sera réservée comme place dans le fichier de sortie. Bien faire attention à ce que le dessin ne sorte pas du rectangle, sinon il risque de « mordre » dans le texte qui l'environne (à moins que l'environnement pspicture soit placé en dehors du cours du texte, par exemple dans un environnement center).
Vous aurez sûrement noté que certaines commandes ont des options précisant certains paramètres du dessin selon une syntaxe du genre paramètre = valeur. Cette syntaxe est permise par le paquet xkeyval, chargé automatiquement par pstricks. Elle est un des points forts de PSTricks, car elle rend ses commandes particulièrement flexibles d'emploi.
Si on souhaite effectuer des paramétrisations valables pour plusieurs instructions de dessin, il faut les inclure en argument d'une commande \psset. Cette commande concerne les instructions PSTricks qui la suivent et son effet se limite au groupe LaTeX qui la contient. Dans le cas de notre programme, c'est l'environnement pspicture qui constitue ce groupe, puisque \psset est placé juste au début de cet environnement. Mais elle aurait pu se trouver en dehors : par exemple, s'il y a plusieurs schémas, on peut si on le souhaite faire en sorte que l'instruction \psset les affecte tous en la plaçant juste après le début de l'environnement document.
Dans l'instruction
|
\psplot[plotstyle =
curve, linecolor = red]% {-2.2}{2.2}{x 2 exp} |
qui tracera notre fonction, remarquez la notation dite polonaise inverse de l'expression de la fonction carrée : x 2 exp. Les opérandes d'abord, l'opérateur ensuite ! C'est en fait avec cette syntaxe que se font toutes les opérations dans le langage PostScript. Les utilisateurs de bonnes vieilles calculatrices TI ou HP ne seront pas dépaysés ! Pour ceux qui préfèrent la syntaxe habituelle, alias « notation infixe », il existe heureusement le paquet pst-infixplot qui leur permettra de l'utiliser dans PSTricks.
Je n'entre pas dans le détail des autres commandes, dont le rôle est précisé dans les commentaires du fichier LaTeX.
Il est temps de passer à l'exécution de notre programme. Sauvegardez-le, par exemple sous le nom de pstricks-parabole.tex, et composez-le :
- soit avec l'option « LaTeX » du menu de composition, en ayant coché auparavant l'option « TeX + DVI » du même menu,
- soit tout simplement par le raccourci « commande-T » qui déclenchera automatiquement ici le même type de composition, puisque nous avons pris la précaution d'indiquer dans notre programme l'option LaTeX dans le commentaire spécial en deuxième ligne.
Voilà alors le résultat :
De façons générale, remarquez que le trait de dessin est par défaut plus épais que pour mfpic et MetaPost. C'est un choix délibéré des concepteurs de PSTricks, mais il est facile de changer ce style par défaut, pour tout le dessin ou un élément de celui-ci. Précisément, il suffit d'inclure le paramètre linewidth en argument de \psset ou en option d'une instruction de tracé et de lui affecter l'épaisseur voulue.
Considérons maintenant un des principaux soucis liés à l'utilisation de PSTricks : son incompatibilité avec pdfLaTeX.
Comme je l'ai dit plus haut, il est cependant possible
d'utiliser PSTricks avec pdfLaTeX, mais indirectement. Il
existe plusieurs façons de le faire, et mon expérience
personnelle m'a montré que la moins
mauvaise meilleure est d'utiliser le paquet
auto-pst-pdf, en l'incluant
en préambule de notre document, après le chargement des
modules de PSTricks :
|
\usepackage{auto-pst-pdf} |
Une fois ceci effectué, vous pouvez composer votre fichier avec pdfLaTeX. auto-pst-pdf enclenche alors automatiquement (comme son nom l'indique) une succession d'étapes : tout d'abord la composition par la route traditionnelle TeX + dvips, mais seuls les environnements produisant du code PostScript (ici pspicture) sont alors pris en compte. On obtient un fichier contenant le code PostScript de la ou les figures, lequel fichier est alors converti en PDF par le programme ps2pdf. La ou les figures sont alors individuellement extraites du fichier PDF résultant grâce à un programme appelé pdfcrop, et finalement incluses dans le fichier PDF final après composition finale avec pdfLaTeX. Le tout en un seul clic de souris. Ouf !
La seule contrainte imposée par l'utilisation du paquet auto-pst-pdf sur le code PSTricks est que chaque commande \psset doit impérativement être contenue dans un environnement pspicture (ce qui est le cas dans notre exemple), sinon elle ne sera pas prise en compte. Ainsi, si on veut spécifier un paramétrage commun à toutes nos figures PostScript via une instruction \psset, il faudra répéter cette instruction autant de fois qu'il y a d'environnement pspicture, c'est-à-dire de dessins.
Le paquet auto-pst-pdf permet également à LuaLaTeX de fonctionner des dessins issus de PSTricks, mais il y a alors une restriction majeure : le paquet fontspec, qui permet l'incorporation de polices du système d'exploitation, ne doit pas être chargé. Voyez ici pour pouvoir contourner ce nouveau « stûûût » comme on dit ici en Belgique.
Ceci précisé, il y a également un autre obstacle à lever, posé cette fois-ci par TeXShop : pour pouvoir enclencher l'exécution de tous les programmes annexes dont il a besoin, le paquet auto-pst-pdf nécessite que pdfLaTeX et LuaLaTeX soient lancés avec l'option shell-escape. Sous TeXShop, c'est par défaut le cas de pdfLaTeX mais pas de LuaLaTeX. Il faut modifier en conséquence le script « LuaLaTeX.engine » figurant dans le dossier ~/Library/TeXShop/Engines :
Pour y remédiez, ouvrez ce script dans votre éditeur de texte favori, et ajouter l'option shell-escape à la ligne d'appel de lualatex qui s'y trouve. Comme ceci :
lualatex -file-line-error --shell-escape -synctex=1 "$1"
Et le tour est joué.
Pour plus de précision sur le fonctionnement du paquet auto-pst-pdf, vous pouvez jeter un œil sur son mode d'emploi (en anglais).
Notez pour finir que certaines rumeurs font état d'une possible incorporation d'un interpréteur PostScript dans LuaTeX, ce qui rendrait LuaLaTeX directement compatible avec PSTricks. Mais on n'en est pas encore là…
Pour ceux qui souhaitent en savoir plus sur PSTricks, outre les ouvrages de référence cités en fin d'article il y a sur le web trois adresses incontournables : le site officiel de PSTricks qui liste tous ses paquets et qui en montre bien toute la puissance et la richesse, et la section du site Syracuse consacrée à PSTricks, avec une magnifique galerie de dessins. Enfin, le projet Sarovar propose un excellent tutoriel d'apprentissage de PSTricks par l'exemple, en plusieurs parties à télécharger ici.
Tikz
Tikz est un paquet LaTeX créé par l'Allemand Till Tantau, par ailleurs auteur de Beamer, en 2006. De toutes les solutions graphiques présentées ici, c'est la plus récente. Elle a néanmoins connu très vite un certain succès dans la communauté TeX, et est déjà très riche en fonctionnalités de toutes sortes, même si elle est encore assez loin de PSTricks à ce niveau (privilège de l'âge).
Le nom de ce paquet peut vous sembler particulier : en fait, « Tikz » est un acronyme récursif signifiant Tikz ist kein Zeichenprogramm, allemand pour « Tikz n'est pas un programme de dessin ». C'est un clin d'œil appuyé à l'acronyme également récursif du fameux projet Gnu, qui signifie « Gnu is Not Unix » et dont Tikz reprend la licence Gnu GPL (en plus de la licence LPPL propre à LaTeX). Dans le cas de Tikz, Till Tantau veut signifier avec ce jeux de mots que son programme est destiné à faire des schémas de type scientifique plutôt que l'équivalent de dessins artistiques « à la main ».
Tikz est après l'environnement picture la solution graphique la mieux intégrée à LaTeX, la plus portable. Elle fonctionne en effet avec tous les moteurs TeX et tous leurs dérivés LaTeX. Elle n'est (actuellement) incompatible qu'avec ConTeXt-mkIV, la dernière version de ConTeXt, mais cette incompatibilité est en fait valable pour toutes les solutions graphiques présentées dans cette série d'articles, MetaPost et Asymptote exceptés (MetaPost étant même carrément intégré à ConTeXt).
La grande portabilité de Tikz vient de sa conception en trois couches distinctes : l'interface utilisateur (Tikz proprement dit), le paquet d'instructions graphiques PGF (Portable Graphic Format) dont Tikz est un ensemble de macros plus accessibles à l'utilisateur, et enfin la « couche système » sur laquelle PGF lui-même est basé, un ensemble minimal d'instructions graphiques facilement traduisibles en les différents langages spécifiques à chaque « pilote » (driver) TeX, qu'il s'agisse de dvips, pdfTex et LuaTeX (qui ont tous les deux leur propre pilote), xdvipdfmx (pilote de XeTeX), etc.
Notez qu'il est parfaitement possible de construire sur PGF d'autres interfaces utilisateur que Tikz : en fait, il en existe déjà une autre, PGFpict2e, qui reprend exactement les commandes de l'environnement picture et lui donne les mêmes fonctionnalités que celles que lui octroie le paquet pict2e, dont j'ai brièvement parlé dans l'article précédent. Mais il s'agit plus d'un exercice de style que quelque chose de vraiment utile par rapport à pict2e. Till Tantau rêve de construire également une interface utilisateur à PGF reprenant, au moins en partie, les instructions de PStricks, mais cela reste un vœu pieux à ce jour.
Après cette courte présentation, passons à notre exemple graphique. Voici ce que donne le code de notre représentation de la fonction y = x2 en Tikz :
|
% !TEX encoding = UTF-8
Unicode \documentclass[12pt]{article} % \usepackage{tikz} % \begin{document} % \begin{tikzpicture}[scale = 1.25] % Tracé de la parabole \draw[red, domain = -2.2:2.2, smooth] plot (\x, {(\x)^2}); % Alternative par Gnuplot %\draw[red, domain = -2.2:2.2, smooth] plot function{x**2}; % Lignes tiretées \draw[dashed] (2, 0) -- (2, 4) -- (-2, 4) -- (-2, 0); % Axes et leurs labels \draw[->] (-2.75, 0) -- (2.75, 0) node[below]{$x$}; \draw[->] (0, -0.5) -- (0, 5) node[left]{$y$}; % Marques sur les axes et labels correspondants \draw (2, 2pt) -- (2, -2pt) node[below]{$2$}; \draw (1, 2pt) -- (1, -2pt); \draw (-1,2pt) -- (-1, -2pt); \draw (-2, 2pt) -- (-2, -2pt) node[below]{$-2$}; % Marques tracées en boucle \foreach \y in {1, 2, 3} \draw (2pt, \y) -- (-2pt, \y); % Autres labels \draw (0, 0) node[below left]{$O$}; \draw (0, 4) node[above left]{$4$}; % \end{tikzpicture} % \end{document} |
Notez la syntaxe vraiment particulière des instructions Tikz. Le connaisseur y repère aisément des éléments empruntés à MetaPost, comme dans l'usage du point-virgule pour indiquer la fin de chaque instruction. Et une commande comme
| \draw (-1, 2pt) -- (-1, -2pt); |
serait une pure instruction MetaPost s'il n'y avait pas la contre-oblique « \ » si caractéristique du monde de TeX.
On devine que PSTricks a également inspiré l'auteur, comme dans l'usage permis d'arguments optionnels du style paramètre = valeur. Quant au nom même de l'environnement tikzpicture, il fait clairement référence au pspicture de PSTricks. Le code d'un dessin Tikz se trouve en effet typiquement dans un environnement tikzpicture, comme pour son analogue de PSTricks :
|
\begin{tikzpicture}[scale = 1.25] … \end{tikzpicture} |
Contrairement à PSTricks et sa commande \psset, ce sont les options de cet environnement qui servent de paramétrage global au dessin. Ici l'option scale=1.25 indique que le graphe est à agrandir selon un facteur de 1,25, l'unité par défaut d'un graphe Tikz étant le centimètre. Mais chaque commande de Tikz peut disposer d'arguments optionnels qui outrepassent si nécessaire ce paramétrage général.
Comme d'habitude, pour le reste des explications sur ce que fait chaque commande, voyez les commentaires du programme lui-même. Maintenant, sauvegardez ce programme si ce n'est pas déjà fait, par exemple sous le nom de tikz-parabole.tex, et exécutez-le. Quel que soit le type de LaTeX que vous utilisiez (LaTeX classique, pdfLaTeX, XeLaTeX, LuaLaTeX…), le résultat devrait être le suivant :
Notez la finesse du trait par défaut, par rapport à PSTricks. En fait il est carrément deux fois moins épais, 0,4 pt d'épaisseur contre 0,8 pt.
Cela peut d'ailleurs représenter un problème si on ne dispose que d'un écran ou d'une imprimante à résolution basse : certaines parties du dessin peuvent alors ne pas apparaître du tout, particulièrement à l'écran. Mais avec les périphériques dont on dispose actuellement, c'est très peu probable, et de toutes façons on peut facilement changer l'épaisseur du trait par défaut si vraiment cela est nécessaire. Il suffit de changer la valeur du paramètre line width en option de de l'environnement tikzpicture (on peut aussi l'utiliser en option d'une commande de dessin particulière si on ne souhaite modifier que l'épaisseur du trait que cette commande produit).
Le principal inconvénient de Tikz est ailleurs : il s'agit de ses capacités de calcul assez limitées. En effet, il dépend de TeX pour ses calculs, et TeX n'a pas été initialement prévu pour cela : c'est un formateur de texte et non une calculatrice sophistiquée !
Prenons un exemple concret mettant en évidence ce problème : la gestion par Tikz des courbes de Bézier, souvent utilisées pour la création de courbes d'interpolation (courbes plus ou moins régulières devant passer par plusieurs points donnés). Pour construire une courbe d'interpolation avec la technique des courbes de Bézier, on a naturellement besoin de connaître les coordonnées des points d'interpolation (les points par lesquels cette courbe d'interpolation doit passer), mais on a également besoin de connaître les coordonnées d'autres points, qui a priori ne se trouvent pas sur la courbe et qu'on appelle « points de contrôle ».
Or il y a deux points de contrôle à préciser par point d'interpolation (sauf pour chaque extrémité de la courbe où il n'en faut qu'un). Et tandis que MetaPost et Asymptote (et sans doute PSTricks, je n'ai pas vérifié) calculent eux-mêmes les coordonnées adéquates pour ces points de contrôle, Tikz en est incapable et il revient donc à l'utilisateur de lui fournir ces coordonnées.
Certes, c'est un détail technique, qui n'est pas rédhibitoire et qui est loin de concerner tous les utilisateurs potentiels de Tikz. Si j'en parle, c'est que je fais moi-même un usage intensif des facilités qu'offre MetaPost pour construire des courbes de Bézier, et que l'absence de ces facilités dans Tikz est de loin la principale raison pour laquelle je n'ai pas adopté ce paquet graphique et suis resté fidèle à mfpic/MetaPost.
Un autre inconvénient potentiel de Tikz concerne les courbes de fonctions et les courbes paramétrées. La gamme actuelle de fonctions qu'on peut tracer est déjà relativement étendue (cf. références citées plus bas), mais si la fonction est un tant soit peu « tordue », le manuel de Tikz recommande de passer par un outil externe appelé Gnuplot, lequel est une sorte de calculatrice graphique en ligne de commande très perfectionnée. C'est Gnuplot qui calculera alors les coordonnées des points du graphe de la fonction, et qui les transmettra à Tikz pour tracer le graphe proprement dit.
Or l'installation de Gnuplot sur OS X n'est pas forcément évidente. On peut passer par le site de Gnuplot indiqué plus haut (mais alors il faut compiler les sources) par Fink (ne marche pas chez moi) ou par MacPorts (pas essayé). Ce que j'ai encore trouvé de plus simple, c'est d'utiliser la version de Gnuplot spécialement compilée pour Mac OS X qui est fournie en même temps que l'application de calcul formel (excellente, libre et gratuite) wxMaxima.
Téléchargez donc la version Mac OS X de wxMaxima ici. Un fichier « Maxima 5.25.0.dmg » devrait arriver dans votre dossier « Téléchargements » ou sur votre bureau. Après l'avoir décompressé, vous verrez qu'il contient six éléments, dont notre Gnuplot :
Je suppose que vous n'avez pas besoin d'un logiciel de calcul formel comme Maxima ni de son interface wxMaxima, donc contentez-vous d'installer seulement Gnuplot dans le dossier « Applications ». Le voilà prêt à être utilisé ! Pour ceux qui veulent se servir de cette calculette graphique en dehors de Tikz, il suffit de double-cliquer sur l'icône de Gnuplot pour en ouvrir une session… en ligne de commande, je le rappelle.
Mais dans notre cas, c'est l'utilisation par Tikz qui nous intéresse, via TeXShop. Et il faut donc faire en sorte que Tikz, par le biais de TeXShop, puisse utiliser notre Gnuplot. Mais pour cela, il faut que le chemin d'accès de l'exécutable de Gnuplot, ici
/Applications/Gnuplot.app/Contents/Resources/bin
soit inclus dans le « PATH » interne de recherche d'exécutables de TeXShop, ce qui n'est pas le cas. Le seul moyen de résoudre le problème est de passer par la création d'un engine TeXShop spécifique. Ouvrez votre éditeur de texte favori, et entrez-y le code suivant :
|
#!/bin/tcsh set path = (/Applications/Gnuplot.app/Contents/Resources/bin $path) pdflatex --shell-escape -synctex=1 "$1" |
(j'ai supposé dans ce fichier que vous utilisez pdfLaTeX pour compiler votre graphique). Sauvegardez votre fichier sous un nom avec l'extension .engine, par exemple pdfLaTeX-Gnuplot.engine et placez-le dans le dossier « Engines » du dossier « TeXShop » de votre Bibliothèque personnelle (là où se trouve le script « LuaLaTeX.engine » qu'on a modifié plus haut).
Maintenant, ouvrez le Terminal et chargez le répertoire des engines de TeXShop en entrant l'instruction
cd ~/Library/TeXShop/Engines
Ensuite, entrez la commande
chmod u+x pdfLaTeX-Gnuplot.engine
pour activer le « bit d'exécution » de ce nouvel engine de l'utilisateur courant. Concrètement, cela signifie que Mac OS X vous autorisera à l'exécuter, directement ou via TeXShop.
Une fois ceci effectué, quittez TeXShop et redémarrez-le. Vous aurez alors accès à cet engine et à son exécution en utilisant le menu déroulant de composition de votre fenêtre d'édition.
Vérifiez que cela marche dans notre programme LaTeX en décommentant l'instruction de tracé de la fonction par Gnuplot,
| %\draw[red, domain = -2.2:2.2, smooth] plot function{x**2}; |
(oui Guillôme, c'est bien x**2 et pas x^2 parce qu'ici c'est la syntaxe de Gnuplot qui doit être employée et pas celle de LaTeX !) puis en commentant l'instruction semblable qui n'utilise pas Gnuplot, située deux lignes au-dessus,
| \draw[red, domain = -2.2:2.2, smooth] plot (\x, {(\x)^2}); |
et enfin en exécutant à nouveau le programme avec l'engine pdfLaTeX-Gnuplot. Normalement, la parabole devrait à nouveau apparaître, mais cette fois-ci les points par lesquels passent cette courbe auront été calculés par Gnuplot, et non par TeX. Encore une fois, pour une fonction simple comme celle-ci, ça n'était pas vraiment nécessaire, mais cela aurait pu l'être si la fonction avait été d'expression compliquée.
Ces inconvénients pourraient être levés dans le cas de l'utilisation de Tikz dans LuaLaTeX : on pourrait en effet (théoriquement) faire effectuer les calculs nécessaires par le langage de script Lua qui lui est incorporé. Malheureusement, à l'heure où je rédige cet article cette fonctionnalité n'a pas encore été implémentée.
Si vous avez été alléché par cette présentation de Tikz, vous pouvez allez plus loin en lisant l'excellent livre au format PDF Tikz pour l'impatient de Gérard Tisseau et Jacques Duma, librement distribué. Vous pouvez également (c'est même vivement recommandé) consulter la documentation officielle de Tikz, par Till Tantau lui-même. Celle-ci ne se contente pas d'être un manuel de référence très complet, elle comprend également un excellent tutoriel pour s'initier aux principales commandes et un précieux Guideline pour la création de dessins scientifiques qui peut également être utile à ceux qui n'utilisent pas Tikz. Enfin, n'hésitez pas à fouiller dans l'immense galerie d'exemples de dessins Tikz du site TeXample.net, dont les sources sont téléchargeables.
Voilà pour cette présentation longue, mais cependant succincte au vu de leurs possibilités, des paquets LaTeX de dessin PSTricks et Tikz. Le mois prochain, je terminerai donc cette série d'articles par la présentation d'Asymptote, qui est elle, comme MetaPost, une application externe à LaTeX mais spécialement conçue pour fonctionner de conserve avec lui. Je ferais enfin dans cet article un bilan comparatif des solutions graphiques que je vous aurai présentées.



