code LaTeX dans une figure jsxgraph

Accueil Forums Programmation WIMS Programmation d’exercices OEF code LaTeX dans une figure jsxgraph

Vous lisez 8 fils de discussion
  • Auteur
    Messages
    • #7960
      Wissam
      Participant
      Up
      0
      Down
      ::

      Bonjour bonjour,

      J’essaie actuellement de produire un exercice sur les vecteurs en utilisant jsxgraph.

      Je souhaite indiquer le nom des vecteurs en utilisant la syntaxe LaTeX et cela fonctionne fort bien dans le cas où la figure est purement illustrative, mais pas si on veut récupérer les valeurs modifiées et qu’on utilise «\embed»,

      Le code LaTeX ne semble pas pris en compte et je me retrouve avec deux acolate autour du « AB » (voir les exemples).

      Je n’ai trouvé aucune restriction particulière dans la doc.

      Ai-je manqué quelque chose? Où bien n’est-ce pas possible?

       

      —————————————————————————————————–

      Voici le code qui fonctionne :

      \title{Test}

      \text{fig=slib(geo2D/jsxgraph jsxbox brd, [300 x 300, min=200px max=400px],

      var brd =JXG.JSXGraph.initBoard(‘jsxbox’, {axis:true,originX: 150, boundingbox:[-10, 10, 10, -10]});

      var A = brd.create(‘point’, [5,4],{name:’\(\vec{AB}\)’});)}

      \statement{\fig}

      —————————————————————————————————-

      Et celui pour lequel cela ne fonctionne pas :

       

      \title{Exemple qui ne foncionne pas}

      \text{script= var brd = JXG.JSXGraph.initBoard(‘jxgbox’, {

      axis:true,boundingbox: [-6, 6, 6, -6], grid:true});

      var jxgbox_rep1 = brd.create(‘point’,jxgbox_var1, {name:’\(\vec{AB}\)’} );

      }

      \statement{Test

      \embed{r1,400×400

      jxgbox brd

      \script

      jxgbox_var1=[2,2] ;

      }}

      \answer{}{2,2}{type=jsxgraph}{option=precision=10}

      ——————————————————————————————————

    • #7963
      Julien
      Modérateur
      Up
      0
      Down
      ::

      Bonjour,
      Ce code fonctionne mais ce n’est pas une bonne manière de faire.

      
      \title{wissam2}
      \precision{100}
      \text{script= var brd = JXG.JSXGraph.initBoard('jxgbox', {
       axis:true,boundingbox: [-6, 6, 6, -6], grid:true});
      jxgbox_rep1 = brd.create('point',jxgbox_var1,{name:'$$ \overrightarrow{AB}$$'});}
      \statement{test
       \embed{r1,300x300
      jxgbox brd [responsive center 300 x 300, min=200px max=400px]
      \script
      jxgbox_var1=[2,2]
      }
      }
      \answer{}{2,2;}{type=jsxgraph}{option=precision=10}
      

      Il faut ajouter dans la balise \css{} le lien suivant :

      
      <scri src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js">
      

      A la place de scri <= il faut écrire script mais le tag est bloqué par le site.

      • Cette réponse a été modifiée le il y a 1 année et 5 mois par Julien.
      • Cette réponse a été modifiée le il y a 1 année et 5 mois par Julien.
      • Cette réponse a été modifiée le il y a 1 année et 5 mois par Julien.
    • #7967
      Wissam
      Participant
      Up
      0
      Down
      ::

      Merci pour ce retour.

      J’ai testé le code ci-dessous et on ne voit plus les accolades, mais la flèche ne s’affiche pas sur le « AB ».

      J’ai essayé en ajoutant la balise fermante pour « script » , sans plus d’effet.

      Dans la doc de JSXGraph il est indiqué de faire précéder les commandes LaTeX par deux antislash, mais cela ne semble pas fonctionner non plus.

       

      ——————————– Code ———————————————

      \title{wissam3}
      \precision{100}

      \css{<scri src= »https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js »>}

      \text{script= var brd = JXG.JSXGraph.initBoard(‘jxgbox’, {
      axis:true,boundingbox: [-6, 6, 6, -6], grid:true});
      jxgbox_rep1 = brd.create(‘point’,jxgbox_var1,{name:’$$\overrightarrow{AB} $$’});}
      \statement{test
      \embed{r1,300×300
      jxgbox brd [responsive center 300 x 300, min=200px max=400px]
      \script
      jxgbox_var1=[2,2]
      }
      }
      \answer{}{2,2;}{type=jsxgraph}{option=precision=10}

      ————————————————————————————

       

      PS: j’ai bien utiliser « script » et non pas scri.

       

      PPS : quelle balise utilises-tu pour présenter le code ?

    • #7968
      Julien
      Modérateur
      Up
      0
      Down
      ::

      Exact !
      J’ai oublié de préciser que l’antislash devant overrightarrow doit être écrit en code ascii : & # 9 2 ;
      Il faut bien sur supprimer les espaces.

    • #7969
      Wissam
      Participant
      Up
      0
      Down
      ::

      Je n’y aurais jamais pensé, merci!

      Mais du coup, est-ce nécessaire de faire appelle à mathjax de cette manière pour le cas où la figure n’est pas dans un embed, car cela semble fonctionner.

    • #7970
      Wissam
      Participant
      Up
      0
      Down
      ::

      Une remarque si d’aventure quelqu’un a le même problème : il faut faire de même avec les « underscore » si on veut des indices, et j’imagine les autres caractères de ce genre.

      \overrightarrow{F_2} ——> &#92overrightarrow{F&#95{2}}

      On remarque qu’il faut mettre l’indice entre accolade sinon on obtient le caractère correspondant au code &#952

    • #7971
      Avatar photoGilles Marbeuf
      Modérateur
      Up
      1
      Down
      ::

      Bonjour,

      une autre possibilité, pour éviter l’appel externe à Mathjax via \css{…} :

      1- pas besoin de donner de nom à jxgbox_rep1 au début dans le script de construction de JSXGraph (mettre name: ‘ ‘).

      2- ensuite pour renommer correctement l’objet en LaTeX,  avant la fermeture du bloc statement, mettre entre les balises script et \script la commande javascript suivante :
      jxgbox_rep1.setAttribute({name:'\\(\\overrightarrow{AB}\\)'});

      Attention à bien mettre un \ d’échappement avant chaque \ de l’écriture en LaTeX.

      Gilles

    • #7972
      Wissam
      Participant
      Up
      0
      Down
      ::

      Encore mieux, merci!
      J’ai l’impression qu’on peut même se passer de mettre « name: » » dans la construction de JSXGraph.

      Mais pourquoi cela ne fonctionne-t-il pas avec le « setAttribute » dans variable «\script»? J’aurais pensé que c’est la même chose puisque la variable est de type text.

      Mes excuses, je pose encore des questions alors que vous avez répondu à la question initiale, mais comme je débute, j’essaie de comprendre au maximum comment fonctionne tout cela.
      (Et je profite de vacances car pendant l’année c’est plus compliqué de se plonger dedans)

    • #7973
      Julien
      Modérateur
      Up
      0
      Down
      ::

      Bonjour, le code proposé par Gilles est top !

      Si tu regardes le code source de la page html tu remarqueras que la commande \\overrightarrow a disparu lorsque tu mets le set.Attribute dans le script d’ou le hack proposé par Gilles.

Vous lisez 8 fils de discussion
  • Vous devez être connecté pour répondre à ce sujet.