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/