asymptote – debutant - brocante

Transcription

asymptote – debutant - brocante
ASYMPTOTE – DEBUTANT
Par curiosité vous avez parcouru …
Le site officiel : http://asymptote.sourceforge.net/gallery/,,,
La Galerie de G.Marris http://marris.org/asymptote/index.html
Le de Ph.Ivaldi : http://www.piprime.fr/developpement-open-source/
Le poly de Ch Grospellier : http://cgmaths.fr/cgFiles/Dem_Rapide.pdf
Le site de C.Caignaert : http://c.caignaert.free.fr/Debuter-Avec-Asymptote.pdf
Vous aimeriez bien récupérer un histogramme par ci…un arbre de probabilité par
là… une courbe …un tableau de variation .. que vous pourriez initialiser rapidement
avec vos données , pour les inclure dans vos corrigés ou éditions diverses en PDF..
C’est facile ! Finalement : OUI et NON!!
•
Si vous n'avez jamais programmé : « laissez tomber ! » dans un premier temps
En effet, il vaudra mieux utiliser votre temps à apprendre un langage classique
genre C,C++, Python .. suivant votre orientation et sans doute en plus les bases
d'un logiciel de calcul formel.. Vous pourrez ensuite revenir si nécessaire..
•
Vous êtes étudiant , vous ne disposez pas de beaucoup de temps et vous n'êtes
pas un « super rapide » en programmation. On exigera sans doute une
présentation Latex de qualité.. Un éditeur Latex simple pour commencer,
pstricks et Tikz seront amplement suffisants. Là encore, vous verrez par la
suite en fonction de vos besoins..
•
Vous avez eu l'occasion de programmer un peu en Pascal ou autres..
Absolument aucune difficulté pour apprendre ce langage.
•
Si ce qui est proposé dans la galerie de G. Marris vous motive...Tout dépend
du temps hebdomadaire que vous pourrez consacrer à ce langage....
Mais un bémol tout de même !!
Si votre activité Latex consiste essentiellement à rédiger des corrigés et compte
tenu du temps à investir dans l'apprentissage de ce langage, renseignez pour savoir si
les associations du genre Asymptote/Xcas sont vraiment des associations d'avenir..
ou s'il ne vaut pas mieux vous orienter vers Sage/Python et les xxx.tex...
Au fait ! .. Asymptote pour faire quoi ?!..
Sur son site G.Marris précise :Asymptote : l'un des langages vectoriels
possibles pour intégrer des figures dans ses documents.
Très utile donc si l'on veut faire du graphique vectoriel ou éditer de la 3D.
Mais pas seulement !..
• Avant de se lancer dans l'apprentissage, il faut donc avoir du temps à y
consacrer !
La connaissance du langage Latex n'est pas indispensable au départ car on peut
apprendre rapidement (si on est motivé !) les bases de l'écriture courante sous
Notepad++, pratiquement en direct avec la fonction label(texte,position) et en
ayant formulaire Latex (3 / 4 pages) sous la main ! Vous pouvez également
charger: « Latex pour les profs de maths » qui vous donnera une vue d'ensemble
sur ce langage,
• En édition graphique, vous pouvez facilement programmer des sorties
approchant (plus ou moins !..) celles de Pstricks , Tikz , R, Xcas. Mapple..
(d'autant qu'il est simple d'échanger avec ces derniers logiciels des données par
« copiés/collés » ou fichier .txt) avec l' avantage de pouvoir construire du « sur
mesure .» et de disposer facilement des courbes .
• Mais sans motivation pour la programmation en général, inutile d'aller plus
loin !..
Pour débuter tout est bien expliqué sur le site de G.Marris mais au cas où vous auriez
malgré tout quelques difficultés.. Ci-joint un petit complément,
Pour commencer ,il est indispensable d’avoir sous la main :
La documentation Asymptote ! sur le site officiel .(en anglais) ;
Imprimez la partie programmation (page 24 à 81) car vous serez souvent
obligé de la consulter (même si vous ne programmez pas ) et le reste au fur et à mesure
des besoins !
C’est « en gros ! » compréhensible d’autant qu’il est facile avec Google d’avoir
une traduction immédiate des paragraphes qui vous intéressent.
Ne vous laissez pas impressionner par les nouveautés sur le plan graphique (entre
autre !..) Commencez par tester les programmes de la Galerie G,M ou ceux du poly
de Ch, Grospellier.. Tout y est clairement expliqué, ne donnant qu'une envie : celle
d'aller plus loin !
Si vous avez pratiqué le Pascal ou C objet le champ des applications devient très
vaste..
Les questions classiques !...

Latex or not Latex ?
LATEX OBLIGATOIRE !
En effet , pour écrire les textes Asymptote utilise latex !
Doit-on être une « flèche » en latex pour commencer ?...Absolument pas !
Vous pouvez commencer sans rien connaître de latex , l’apprentissage se fera
pratiquement en direct au fur et à mesure des besoins.
 Asymptote : Vous voulez compiler un programme Asymptote
sans devoir entrer dans le détail de la programmation C’est possible
Asymptote propose beaucoup de fonctions permettant les éditions de base :
écrire à un endroit déterminé, tracer des droites, des graphiques ,les figures
géométriques classiques etc..etc..Mais pas d'illusion ! pour adapter , corriger
vos erreurs.. vous serez obligés de vous lancer dans la programmation
Comme vous pourrez le constater !.. le but de ces pages n’est sûrement pas de vous
proposer un cours de « Bonne Programmation en Asymptote ! ».
Destinées plutôt à ceux qui ont de « vagues souvenirs .» de l’utilisation des fonctions
dans les langages classiques en passant en revue quelques outils indispensables
(fonctions..labels.. frames et pictures …) permettant d'intégrer des figures dans ses
rédactions Latex ou d’éditer des .pdf depuis Notepad++.
 Chap 0 :
Notepad++ Nppexec …Utilisations…
 Chap I :
Eléments de langages !.. Fonctions … Applications
 Chap. II :
Labels & Latex
(Les incontournables !..)
 Chap III : Frames et Pictures (Les indispensables !..)
Pour aller vite … Groupez vous si vous êtes étudiants ou communiquez avec vos
collègues . Toutes ces pages peuvent être expliquées très rapidement !
Elles s’adressent donc essentiellement à ceux qui, isolés sur la planète, ayant quelques
connaissances en programmation s’intéresseraient au langage Asymptote
Les logiciels indispensables :
1. Si ce n’est déjà fait il faut charger une distribution latex .
Au moins deux classiques :
 MikTeX
 TeXLive
Laquelle choisir ? Les deux sont sans doute équivalentes ?....
Vous allez voir sur les sites concernant Asymptote ou dans un moteur de recherche
comment les installer.
Le hasard a voulu que je charge Texlive. (il existe une version 2012)..
(Charger la dernière versions proposée pour avoir une version récente d'Asymptote!)
Un conseil :Même si le chargement vous paraît long… surveillez le ! surtout si vous
avez pare-feu et antivirus car on vous demandera de valider des choix.
Pour l’ installation :
http://www.xm1math.net/doculatex/install_miktex.html
http://www.xm1math.net/doculatex/install_texlive_windows.html
http://c.caignaert.free.fr/Premiers-pas-avec-Asymptote.pdf
2. NOTEPAD++ , NPPEXEC
Asymptote comme Latex ne sont pas des logiciels Wysiwyg.
En effet contrairement à Open Office, Word…etc.. on ne voit pas en direct à l’écran le
résultat de ce que l’on tape au clavier .Il faut compiler avant de constater !
Mais avec Notepad++ et NppExec on pourrait dire qu’Asymptote devient un
« Pseudo Wysiwyg », car le texte à peine tapé, il suffit d’appuyer sur les touches
F6+ RETURN pour voir s’afficher immédiatement le résultat à l’écran !
 Notepad++ est un petit éditeur de programmes avec beaucoup de
fonctionnalités permettant d’écrire , de modifier et de vérifier un programme.
très facilement.
 NppExec : Le grand Plus ! Ce compilateur associé à Notepad++ permet
de tester immédiatement le programme en cours , de voir le résultat à
l’écran dans un dans un fichier .PDF avec en prime
: le genre et le numéro de ligne de la 1ère erreur !! (S’il y en a !!...)
Rq. Votre programme mis au point sous Notepad++peut être intégré dans un
éditeur Latex par copier/coller s’il doit faire partie d’une chaîne d’édition.
Rq. : Important !! si on édite en .PDF Il faudra effacer ce fichier avant
d'effectuer une nouvelle compilation suite à une modification du programme
par exemple, sinon une erreur apparaîtra en bas à gauche de l'écran
CHARGEMENT des LOGICIELS
1. NOTPAD++
http://notepad-plus-plus.org/fr/
Vous suivez les instructions
2. NPPEXEC
Une fois Notepad++ installé et en restant sous internet vous allez dans
complément puis Plugin manager ,vous attendez que la liste s’affiche , vous
cochez la case de Nppexec et vous lancez le chargement.
Vous retournez dans complément et vous vérifiez que Nppexec est bien dans la
fenêtre déroulante ;la souris dessus vous faîtes apparaître la fenêtre déroulante
de NppExec ; il faut cocher les cases 3,5,8,9 (la 3 et la 5 le seront peut-être déjà)
Si problèmes..Tout est très bien expliqué sur le site de G.Marris :
http://asy.gmaths.net/forum/installation-asymptote-f21/
Rubriques :
Notepad++ : l'éditeur qu'il faut sous Windows pour Asymptote
En dessous :
Notepad++ coloration syntaxique pour Asymptote
(Ce n’est pas indispensable mais ça simplifie la lecture des programmes)
3. Un Editeur Latex ? . ..
Il y a TexnicCenter mais je vous conseille Texmaker bien adapté à
l’utilisation d’Asymptote et qui est vraiment réussi tant sur le plan esthétique
que fonctionnel. http://www.xm1math.net/texmaker/index_fr.html
Tout est donc prêt pour tester votre 1er programme !...
Que vous pouvez taper à la main
Mais avant !: Savoir utiliser les commentaires
 Un signes à connaître : // (double slash)
Tout ce qui suit // n’est pas pris en compte dans la ligne
 2 autres signes : /* (début des commentaires ) et */ fin des commentaires
Si vous avez 20 lignes à neutraliser inutile de taper 20 // Vous encadrez
/*……….Les 20 lignes………
*/
Par exemple :En tête de programme vous écrivez :
settings.outformat="pdf";
//edition .PDF
…………. Suite des instructions……..
Alors votre sortie s’effectuera en .pdf
// settings.outformat="pdf"; // edition .PDF
…………. Suite des instructions……..
Votre sortie ne sera pas en . pdf , les // de début de ligne neutralisent le texte qui suit
Commencez par créer un répertoire de travail dans lequel vous sauvegarderez vos
programmes.
Concernant l’utilisation de Notepad++
Pour ouvrir une page blanche sur laquelle vous mettrez souvent un programme par
copier/coller ; aller en haut à gauche et clic sur : fichier/nouveau
Vous voulez changer la taille des caractères à l’écran
Paramétrage/coloration syntaxique et à droite :taille Mais attention ! il utilisera aussi
cette taille pour imprimer. Il faudra donc changer puis rechanger à la fin d’impression.
Beaucoup d’options à choisir dans Paramétrage/préférence ………
dans zone édition, vous pouvez cocher : num. des lignes ou pas pour avoir les
numéros (très pratique)
dans impression, vous pouvez choisir numéros des lignes ou pas.
…etc…etc…
Votre premier programme !
Je détaille mais (comme déjà indiqué !) si vous en avez la possibilité , demandez
à un proche !…ça tient en 30s. d’explication mais pas en 30s. pour l’écrire !!..
 édition
Sous notepad++ : Fichier/Nouveau Ouvre une page blanche
et donne automatiquement un nom du genre new 1
Vous tapez votre 1er programme :
Une ligne seulement !
label ( "LUNDI" , ( 5cm, -2cm) ,
red ) ;
label(…) permet d’écrire le texte entre " " à l’écran ; le centre du texte à la
position (5cm,-2cm) .Le point Haut Gauche de la feuille ayant la coordonnée
(0,0) ;(choix perso !) (Si on descend… y<0) et red pour l’écriture en rouge !
Ensuite Il faut commencer par sauvegarder son programme en .asy
 clic droit sur le nom new 1 dans la ligne au dessus du texte et liste déroulante
 choisir : « enregistrer sous »
 Dans la fenêtre qui s’ouvre , vous donnez un nom ex. : prg1
MAIS ça ne suffit pas ! Il faut tjs ajouter l’extension .asy
donc, nom du fichier : prg1.asy

Finalement vous avez en bas de la fenêtre
Nom du fichier :
Type :
Prg1.asy
All Types
En haut de la fenêtre vous choisissez de l’enregistrer dans votre répertoire de travail
Et vous cliquez :
enregistrer
 Compilation
Vous appuyez sur la touche F6 +RT
(A la souris vous pourriez utiliser :Complements/Nppexec/exécuter)
Apparaît la petite fenêtre : Execute au milieu de l’écran
Si elle est vide vous écrivez à l’intérieur les 2 lignes suivantes (il y a beaucoup de
possibilités)
cd $(CURRENT_DIRECTORY)
asy.exe $(FILE_NAME)
Puis : OK
Logiquement?!...Après un petit temps de compilation..
Vous devriez voir apparaître …une petite fenêtre de GSview !
Vous cliquez sur OK
Et enfin ! votre texte s’affiche:
LUNDI
C’est un bon début mais ça ne convient pas car vous voulez du .pdf
Pas compliqué !
En tête du programme vous ajoutez la ligne suivante :
settings.outformat="pdf";
Ce qui nous donne le programme :
settings.outformat="pdf";
label("programme 1", (5cm,- 2cm), red ) ;
Vous cliquez immédiatement sur F6
et …votre texte en rouge apparaît dans un .pdf mais entouré de noir !
C’est un bon début mais ça ne convient pas ! car vous voulez prendre un
instantané de votre .pdf et ce noir autour est gênant.
Vous ajoutez en dernière ligne : shipout(bbox(3mm,white));
votre programme devient :
settings.outformat="pdf";
label("programme 1",(5cm,- 2cm),red ) ;
shipout(bbox(3mm,white)); //Vous pouvez prendre plus de marge si besoin
Vous appuyez sur F6 et.. Message d’erreur en bas à gauche dans la console !!!
GPL Ghostscript 9.05: **** Could not open the file prg1.pdf .
**** Unable to open the initial device, quitting.
C:/texlive/2012\texmf\asymptote/plain_shipout.asy: 82.10: runtime: shipout failed
C:\texlive\2012\bin\win32\runscript.tlu:591: command failed with exit code 1:
asy prg1.asy
Normal !: On ne peut pas (en fait on pourrait !) afficher un .PDF s’il y a encore
celui du programme précédent !
.
Donc ..On supprime le .pdf précédent , et…. on tape sur F6
Le texte apparaît sur fond blanc ;on prend facilement un instantané de LUNDI
N’imaginez pas que ça va « être la galère » d’enlever à chaque fois le .PDF ! pour la
simple raison qu’il suffit de travailler en sortie gsview (par défaut) et vous n’utilisez la
sortie.PDF que pour l’exécution finale du programme.
En définitive vous laissez la 1ère ligne avec un // en tête
// settings.outformat="pdf";
Et vous enlèverez le commentaire (// ) quand vous voudrez la sortie en .PDF
ENFIN mes premiers programmes Asymptote ?!!
Pas tout à fait !... Car il reste le problème de l’utilisation de latex !
Les textes à écrire dans label doivent être en latex ;
Si on écrit " simplifier : " , " f(x) " ou "LUNDI " pas de soucis car c’est la même
écriture en latex
Mais SI au lieu de f(x) vous voulez f(theta) avec un theta qui en a la forme il
faudra utiliser l’écriture Latex de theta soit : « $\theta$ » (mode math)
Avant de commencer !:
Il vaut mieux ajouter des packages permettant d’écrire facilement du latex
Votre programme devient :
settings.outformat="pdf";
usepackage("amsmath");
usepackage("fourier");
usepackage("mathrsfs");
usepackage("color");
//pour les math en latex
//Pour éviter d'écrire les accents en latex
//des lettres majuscules en latex
//pour colorer les textes
label("$f(\theta)$" , (5cm,-2cm) , red ) ;
shipout(bbox(3mm,white));
Compilation :
On clique sur F6 et vous voyez apparaître sur l’écran :
C’est parfait !
Il ne reste plus qu’à tester "le savoir faire " en allant par exemple chercher quelques
programmes dans la galerie G.M : http://marris.org/asymptote/index.html
Remarque :
Vous avez chargé un programme Asymptote dans un de vos répertoires. ;pour le
transférer dans Notepad ++ la façon la plus commode est le double clic dessus !
Mais…Si c’est la 1ère fois que Windows rencontre ce genre de fichier (en .asy)
il vous demandera avec quel logiciel le lire ? (Vous utilisez parcourir dans la fenêtre
et vous lui donnez le chemin c:\programmefile (ou programme )suivant windows
Xp,vista..) puis vous recherchez le dossier Notepad++ et à l’intérieur double clic sur
notepad++.
(Maintenant chaque fois que Windows rencontrera un fichier en .asy il le chargera
dans notepad++)
Il est important de bien lire les messages d’erreur dans la console
Si tout va bien vous aurez un message du genre :
CD: C:\br
Current directory: C:\br
asy.exe courbe1.asy
Process started >>>
<<< Process finished.================ READY ================
Vous y repérez : le répertoire ou vous êtes ; ici c:\br
Le nom du programme compilé : ici courbe1.asy
Un exemple d’erreur :
Process started >>>
testeval1.asy: 23.1: no matching variable 'llabel'
C:\texlive\2012\bin\win32\runscript.tlu:591: command failed with exit code 1:
asy testeval1.asy
<<< Process finished.
================ READY ================
On voit que ça se passe à la ligne 23… au début avec le 1
Effectivement je regarde la ligne 23… : il y avait : llabel (s3,(5,0));
au lieu de label(…) au début , il ne reconnaît pas la fonction llabel (qui n’existe pas
en Asymptote ) et le signale.
Un autre exemple :
asy.exe new3.asy
Process started >>>
new3.asy: 24.1: string not terminated
error: could not load module 'new3.asy'
string not terminated
On a sûrement oublié de terminer un texte avec une quote…
Un autre exemple: On tape : label("f(\theta)",(0,0), red);
au lieu de : label("$f(\theta)$" , (0,0) , red ) ;
Le programme s’arrête ,o n lit en console le message d’erreur :
CD: C:\SITES\SITE_BROCtoweb3\page_DEBUTANT
Current directory: C:\SITES\SITE_BROCtoweb3\page_DEBUTANT
asy.exe TESTCHAP4_PictFrame.asy
Process started >>>
C:/texlive/2012\texmf\asymptote/plain_Label.asy: 315.15: runtime: ! Missing $ inserted.
<inserted text>
$
<*> \setbox\ASYbox=\hbox{f(\theta
)}
! Extra }, or forgotten $.
<*> \setbox\ASYbox=\hbox{f(\theta)}
*! Missing $ inserted.
<inserted text>
$<*> ……..
On retrouve au début le répertoire du programme . Pour ce genre d’erreur la ligne
n’est pas indiquée mais la cause de l’erreur est signélée :
! Extra }, or forgotten $.
<*> \setbox\ASYbox=\hbox{f(\theta)}
Missing $ inserted…….
On comprend que c’est un problème avec des $ qui manquent !...
==ZZZ==
Le contenu de la console d'erreur peut être tranféré dans un fichier par copier/coller.
Vous pouvez déplacer la console par drag et drop sur sa barre.
Vous pouvez utiliser CTRF F dans la console (Return pour avancer)
SAVOIR CHARGER un MODULE
Ex. Vous ouvrez un nouveau fichier sous Notepad++ … vous le sauvegardez sous le
nom par ex. moduleperso1.asy (Ne pas oublier l’extension .asy )
Le sauvegarder où ?? …
Dans le répertoire où seront les programmes qui l’utiliseront où mieux encore :
dans le répertoire dédié aux modules :
Avec texlive : c:\texlive\2012\texmf\asymptote (2010 Si c’est laversion 2010)
Avec MikTex chercher sur Google…
Comment le charger ?
CLIC sur le nom : gm.asy
Le listing apparaît sur l’écran ….
(Si vous chargez en .txt il faudra les renommer en .asy sinon il ne pas reconnu,)
Méthode 1
 clic droit + Enregistrez sous Avec Firefox
(il doit y avoir l’équivalent sous IE)
 Vous sélectionnez le chemin : répertoire des modules ou répertoire de travail
 Au nom du fichier gm

vous ajoutez :
.asy (ne pas oublier le point !)
Puis CLIC sur Enregistrer en choisissant
Vous avez donc enregistré : gm.asy
Méthode 2
 Fichier/Nouveau sous Notepad++
 Vous sélectionnez TOUT le texte par « sélectionner tout »
(pour éviter dans oublier !)
 Vous le tranférez par copier/coller dans votre nouveau fichier
 Vous sauvegarder (comme vous savez faire) en choisissant
Le chemin
Nom du fichier : gm.asy
Type : All types(*. *)
Pour utiliser les fonctions de ce module ,
En tête de programme vous mettrez : import gm ; (sans faire figurer le .asy)
RECAPITULATIF!
Actuellement vous savez :










Installer Notepad++ et NppEXEC
Créer ou copier/coller un programme dans Notepad++
Sauvegarder ce fichier .
Charger des modules dans votre répertoire dédié (Texlive ou Miktex)
ou votre répertoire de travail.
Choisir le mode d’édition du programme : Gsview ou .PDF
Enlever/ Ajouter des commentaires ( // et le couple : /* …. */ )
Lancer la compilation par F6+RT
Sous Notepad++ , Nppexec vous pouvez donc
Rédiger texte+figures et l’éditer en .PDF pour le transférer ou l’imprimer.
Si vous travaillez sous Traitement de texte ..Open Office, Word.. etc :
Transférez textes et graphiques en .PDF à l’aide d’un instantané
Si vous avez l’habitude de travailler sous Texmaker ou autres éditeurs Latex. .
Pas de difficulté : Vous faîtes la mise au point sous Notepad++ et une fois le
programme testé , il vous suffira de faire un simple copier/coller dans
Texmaker et de le lancer . La marche à suivre est expliquée à
http://www.xm1math.net/texmaker/index_fr.html
STOP ou ENCORE ?!!...
Si la programmation n’est pas votre tasse de thé !...
Latex Pstricks et Tikz suffiront amplement.
A vous d’évaluer s’il est bien utile de poursuivre ?...
Difficile d'estimer si « l’investissement est rentable ?» Tout dépend du temps dont
vous disposez et de ce que vous voulez faire !
Pour aller vite, il faut avoir le gros des fonctions Asymptote du chap 6 ! et des pages
signalées ...en tête ce qui ne peut s’acquérir qu’en y consacrant du temps au
départ !!... (C’est vrai aussi, qu’à partir d’un certain niveau de connaissance, cela va
très vite !….)
Chapitre suivant :
http://broc-asy.franceserv.com/SITE_BROCtoweb3/page_DEBUTANT/CHAP1_FonctionsAsymptote.pdf
Page d’accueil : http://broc-asy.franceserv.com/