Asymptote et etoolbox

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Asymptote et etoolbox

Messagepar soleil1 » Lundi 06 Novembre 2017, 03:06

Bonjour je voudrais insérer un graphique à l'intérieur d'un ifbool.
Lorsque je compile ce code j'ai un message d'erreur par contre lorsque j' enlève la partie asymptote du ifbool il se compile.

Voila mon code :
Code: Tout sélectionner
\documentclass[a4paper,11pt]{article}%
\usepackage{multicol}
\usepackage{enumerate}
\usepackage{multirow}
\usepackage{fancybox}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{fancyhdr} % Mise en page
\usepackage{vmargin}% mise en page
\usepackage{pst-eucl}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{tabularx}

\usepackage{asymptote}%


\usepackage{numprint}

\usepackage[utf8x]{inputenc} %latin1 est possible
\usepackage{etoolbox}
\usepackage[T1]{fontenc}
 \begin{document}%

\pagestyle{fancy}%

 \newbool{sujet} %
\booltrue{sujet}%
%\boolfalse{sujet}%
 \newbool{correction} %
%\boolfalse{correction}%
\booltrue{correction}%

\ifbool{correction}{
\begin{asy}
import graph;
unitsize(1mm ,0.025mm);
real ymin=-100,ymax=750;
xaxis(Label("$x$",position=EndPoint,align=NE),
xmin=-1,xmax=55,
Ticks(scale(.7)
*
Label(),NoZero,
begin=true,beginlabel=true,
end=true,endlabel=true,
Step=10,step=5,Size=1mm,size=.5mm),
Arrow);
yaxis(ymin=-1,ymax=750,
Ticks(NoZero,begin=true,beginlabel=true,
end=true,endlabel=true,
 Step=400,Size=1mm),
Arrow);
 real f(real x) {return 1.6*x^2+16*x+64;}
 path p=graph(f,0,50);
draw(p,red);
 ylimits(ymin,ymax,Crop); // on coupe ce qui dépasse
\end{asy}}{}
\end{document}%



Comment faire pour qu'il n'y ait plus de message d'erreur ?
Merci beaucoup par avance
Dernière édition par guiguiche le Lundi 06 Novembre 2017, 21:23, édité 1 fois.
Raison: Balises code
soleil1
Utilisateur
 
Messages: 1
Inscription: Samedi 04 Octobre 2014, 05:08
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Asymptote et etoolbox

Messagepar rebouxo » Lundi 06 Novembre 2017, 23:09

Je pense que cela ne fonctionne pas car le texte entre les balises asy est envoyé en verbatim dans un fichier. Or le verbatim ne peut pas être dans une commande.
Maintenant si le but est de faire des corrections, je te suggère l'extension exercice qui fait cela très bien.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6801
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Asymptote et etoolbox

Messagepar OG » Mercredi 08 Novembre 2017, 14:04

Bonjour

L'extension asymptote.sty est basée sur comments.sty et a donc certains limitations, faire une macro qui ouvre un environnement asy, le test booléen, etc. ne donnent que des erreurs.

Il y a déjà quelques années (presque 10 ans) j'avais traduit un document en ajoutant quelques bricoles comme l'insertion conditionnelle.
Voici les deux solutions et une 3ème qui reprend la 2ème avec etoolbox. L'insertion est conditionnelle/globale.

Code: Tout sélectionner
\documentclass{article}
\usepackage{asymptote,verbatim}
\usepackage{etoolbox}

\begin{document}

Test

\newif\ifsubject
\subjecttrue
%\subjectfalse
\ifsubject
\begin{asy}
size(2cm,2cm);
pair A, B, C;
A=(0,0); B=(1,0); C=(0,1);
draw(A--B--C--cycle);
draw (midpoint(A--B) -- C);
draw (B+0.5*(C-B) -- A);
draw (interp(A,C,0.5) -- B);
\end{asy}
\fi


%%% Booléens %%%%
\newif\ifsujeta
\sujetatrue
\newenvironment{vsujet}{}{}
\ifsujeta\relax\else\renewenvironment{vsujet}{\comment}{\endcomment}\fi
\newenvironment{vcorr}{}{}
\ifsujeta\renewenvironment{vcorr}{\comment}{\endcomment}\fi



\begin{vsujet}
Construire....
\end{vsujet}

\begin{vcorr}
\begin{asy}
size(2cm,2cm);
pair A, B, C;
A=(0,0); B=(1,0); C=(0,1);
draw(A--B--C--cycle);
draw (midpoint(A--B) -- C);
draw (B+0.5*(C-B) -- A);
draw (interp(A,C,0.5) -- B);
\end{asy}
\end{vcorr}

\newbool{test}
\boolfalse{test}
\newenvironment{vsujet1}{}{}
\ifbool{test}{\relax}{\renewenvironment{vsujet1}{\comment}{\endcomment}}
\newenvironment{vcorr1}{}{}
\ifbool{test}{\renewenvironment{vcorr1}{\comment}{\endcomment}}{}



\begin{vsujet1}
Construire....
\end{vsujet1}

\begin{vcorr1}
\begin{asy}
size(2cm,2cm);
pair A, B, C;
A=(0,0); B=(1,0); C=(0,1);
draw(A--B--C--cycle);
draw (midpoint(A--B) -- C);
draw (B+0.5*(C-B) -- A);
draw (interp(A,C,0.5) -- B);
\end{asy}
\end{vcorr1}

\end{document}

Il faudrait aussi regarder du côté de asypictureb
https://ctan.org/tex-archive/graphics/asypictureb
qui propose une alternative avec asymptote.sty

O.G.

OG
Modérateur
 
Messages: 2214
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité