Asymptote
Asymptote
Asymptote
Christophe Caignaert
c.caignaert@free.fr
http://c.caignaert.free.fr
Asymptote est un logiciel de dessin graphique. L’objet de cet article est de guider les premiers pas avec
Asymptote en LATEX, en particulier pour ceux qui sont très peu habitués, voire rétifs, aux lignes de com-
mandes et qui utilisent Windows-MikTeX-TeXnicCenter.
1. Installation d’Asymptote
1.1. Installation
– Si vous avez l’habitude de travailler en LATEX (via dvips) ou en pdfTEX, et si vous ne désirez pas
convertir de figures dans des formats autres que ceux que vous utilisez habituellement, à savoir eps
ou pdf, vous n’avez pas d’autre logiciel à installer qu’Asymptote.
– Téléchargez le logiciel en vous connectant sur http://asymptote.sourceforge.net/
enregistrez le puis installer le logiciel simplement en double-cliquant dessus.
Je suppose que, dans cette installation, vous répondez oui à tout.
Asymptote est installé !
1.2. Problème
Dans la version actuelle (2.03), et en l’utilisant comme on va l’utiliser, il se peut qu’Asymptote ne sup-
porte pas les noms de fichiers contenant un espace ou un accent. Dans ce cas, le mieux est de créer un
dossier C:Asymptote et de travailler vos fichiers LATEX dans ce dossier.
3. Un tracé de courbe
Nous allons ici développer un exemple complet. Vous verrez :
– Le graphe,
– puis le code asymptote,
– et enfin un commentaire ligne par ligne de ce code.
3.2. Le graphe
2π
−2π −π π 2π
−π
−2π
\begin{asy}
// échelle
unitsize(8mm);
// notre fonction
import graph;
real f(real x) {return x*cos(x)-sin(x);}
path p=graph(f,-2*pi-.5,2*pi+.5,operator ..);
// les axes
draw((-2*pi-.5,0)--(2*pi+1,0),Arrow(HookHead));
draw((0,0)--(1,0),Arrow(HookHead));
draw((0,-2*pi-.5)--(0,2*pi+1),Arrow(HookHead));
draw((0,0)--(0,1),Arrow(HookHead));
// les tangentes
draw((-2*pi-.7,-2*pi)--(-2*pi+.7,-2*pi),blue,Arrows(SimpleHead));
draw((-pi-.7,pi)--(-pi+.7,pi),blue,Arrows(SimpleHead));
draw((2*pi-.7,2*pi)--(2*pi+.7,2*pi),blue,Arrows(SimpleHead));
draw((pi-.7,-pi)--(pi+.7,-pi),blue,Arrows(SimpleHead));
draw((-.7,0)--(.7,0),blue,Arrows(SimpleHead));
// la courbe
draw(p,red);
\end{asy}
\end{center}
\end{document}
\documentclass[a4paper,11pt]{article}
\usepackage{asymptote}
\begin{document}
Début classique d’un document LATEX, tous les packages sont utilisables et on a besoin du package
asymptote.
\begin{asy}
...
\end{asy}
unitsize(8mm);
On définit ici l’échelle du graphe, ici une unité pour 8 mm sur les 2 axes. On peut définir des échelles
différentes par unitsize(7mm,1cm);, sur x puis sur y.
Notez le « ; » qui termine la commande, on le retrouvera à chaque fois.
Asympote est très sensible à la syntaxe.
import graph;
Ici, on charge un module supplémentaire pour tracer les graphes de fonctions
draw((-2*pi-.5,0)--(2*pi+1,0),Arrow(HookHead));
draw((0,0)--(1,0),Arrow(HookHead));
draw((0,-2*pi-.5)--(0,2*pi+1),Arrow(HookHead));
draw((0,0)--(0,1),Arrow(HookHead));
draw((-2*pi,.1)--(-2*pi,-.1));label("$-2\pi$",(-2*pi,-.1),S);
...
draw((-.1,-2*pi)--(.1,-2*pi));label("$-2\pi$",(.1,-2*pi),E);
...
Ici, on place le marquage des axes (ticks) et leurs étiquettes. Il existe des instructions plus sophistiquées
pour ce marquage.
Notez que pour les étiquettes, le S et le E signifient south et east. On a bien sûr aussi N et W. Enfin, on
peut combiner comme, par exemple, SW qui va placer l’étiquette sous et à gauche du point de référence.
draw((-2*pi-.7,-2*pi)--(-2*pi+.7,-2*pi),blue,Arrows(SimpleHead));
draw((-pi-.7,pi)--(-pi+.7,pi),blue,Arrows(SimpleHead));
...
Ici, on place les tangentes horizontales en bleu. il existe différents types de flèches paramétrables.
draw(p,red);
On trace la courbe en rouge. Si on zoome, on peut bien voir au niveau des tangentes qu’elle a été tracée
en dernier.
Je suis également l’auteur du package de polices kpfonts utilisé ici avec l’option light :
http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=kpfonts
Dans votre figure, les « 2 » et les « π » seront donc un peu différents. . .