Superposition de points...

Utilisation de code texgraph dans LateX avec l'environnement \\begin{texgraph}...\\end{texgraph} et le paquet texgraph.sty.

Superposition de points...

Messagepar Karine Brunel » 18 Mars 2018 17:44

Bonjour,

Voilà bien longtemps que je n'avais rien posté sur ce forum, ce qui ne m'empêchait pas d'utiliser TeXgraph! Aujourd'hui, je tente une nouvelle utilisation et j'ai qq problèmes.

J'essaie d'écrire un code réutilisable pour dessiner une règle du gamma utilisée en chimie pour visualiser une réaction entre 2 réactifs placés de part et d'autre d'un axe vertical (gradué en potentiel) et formant ainsi une lettre gamma minuscule.
Je joins le code utilisé et un aperçu du résultat :
Code: Tout sélectionner
\begin{texgraph}[name=X_Chimie/ImagesTD_chimie/GammaSnZn,export=pgf,auto=false,file,call]
Cmd
   Window(-0.5+3*i, 0.5-1.5*i, 12.6666666666667+6.33333333333333*i);
   Margin(1, 0.5, 0.5, 1);
   Border(0);
   [OriginalCoord(1), IdMatrix()];
   [theta:=0.5236, phi:=1.0472, IdMatrix3D(), ModelView(ortho)];
   GrayScale(0);

Cmd   [tMin:=-3,tMax:=3.2,DotScale:=1+i];
Graph Gamma = [view(-1.5,1,tMin,tMax),size(7,2.5), Width:=8, Arrows:=1,
                   LabelSize:=large,
                   LabelAxe(y,3*i,"$E(\text{V})$"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 1
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel le plus bas = 1
                   E1:=-0.76,DotStyle:=cross,LabelSize:=small,LabelDot(E1*i,"$-0,76$","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 1
                   Ox1:=-0.35+E1*i,LabelSize:=large,
                   LabelDot(Ox1,"\ce{Zn^2+}","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 1 : il est encadré car fait partie des espèces présentes en sol
                   Red1:=+0.35+E1*i,
                   LabelDot(Red1,"$\uuline{\ce{Zn}}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 2
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel le plus haut = 2
                   E2:=-0.14,LabelSize:=small,LabelDot(E2*i,"$-0,14$","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 2 : il est souligné car fait partie des espèces présentes en sol
                   Ox2:=-0.35+E2*i,
                   LabelSize:=large,LabelDot(Ox2,"$\uuline{\ce{Sn^2+}}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 2
                   Red2:=+0.35+E2*i,
                   LabelDot(Red2,"$\ce{Sn}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 3
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel 3 : couple de l'eau oxydant
                   E3:=0.00,LabelSize:=small,LabelDot(E3*i,"$0,00$","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 3 : il est souligné car fait partie des espèces présentes en sol
                   Ox3:=-0.35+E3*i,
                   LabelSize:=large,LabelDot(Ox3,"$\uuline{\ce{H2O}}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 3
                   Red3:=+0.35+E3*i,
                   LabelDot(Red3,"$\ce{H2}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 4
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel 4 : couple de l'eau réducteur
                   E4:=1,23,LabelSize:=small,LabelDot(E4*i,"$1,23$","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 4
                   Ox4:=-0.35+E4*i,
                   LabelSize:=large,LabelDot(Ox4,"$\ce{O2}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 4 : il est souligné car fait partie des espèces présentes en sol
                   Red4:=+0.35+E4*i,
                   LabelDot(Red4,"$\uuline{\ce{H2O}}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 5
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel 5 : couple de dichlore
                   E5:=1,36,LabelSize:=small,LabelDot(E5*i,"$1,36$","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 5
                   Ox5:=-0.35+E5*i,
                   LabelSize:=large,LabelDot(Ox5,"$\ce{Cl2}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 5 : il est souligné car fait partie des espèces présentes en sol
                   Red5:=+0.35+E5*i,
                   LabelDot(Red5,"$\uuline{\ce{Cl^-}}$","E"),
//%%%%%%%%%%%%%%%%%%%%%%%%Tracé du gamma entre E1 et E2
                   bd:=0.05-0.05*i,//%%% décalage départ de flèche/gamma
                   hd:=0.05+0.05*i,//%%% décalage arrivée de flèche/gamma
                   Width:=20,Arrows:=0,Color:=red,
         Bezier(Red1 -bd,E1*i -i,Ox1+hd),
                   Ligne([Ox2+bd,Red1 -bd],0),
                   Arrows:=1,Ligne([Ox1+hd,Red2 -hd],0),
//%%%%%%%%%%%%%%%%%%%%%%%%Tracé axe vertical seul (sans graduation régulière)
              Color:=black, Width:=5,Ligne([tMin*i,tMax*i],0),
                ];
\end{texgraph}


L'idée étant ensuite de pouvoir le réutiliser en modifiant les valeurs notés E1, E2...

Voici mes questions et pb :
1- Les valeurs de E4 et E5 sont différentes, pourtant les LabelDot associés apparaissent au même endroit et se superposent complètement ??? je ne comprends vraiment pas pourquoi!!!
2- J'aimerais pouvoir appliquer un facteur d'échelle verticale (en gros un facteur 2) afin d'étirer l'image donnée verticalement et séparer les différents couples. J'ai essayé pour cela de jouer avec la commande size(7,2.5), (idéalement, il faudrait qqch du genre size (20,1)), mais alors les Labels deviennent minuscules et changer LabelSize en Huge, ne change rien (sinon agrandir le label de l'axe E(V),mais pas les "légendes" les points Zn, H2O....)!
Une idée ?
3- Mais ce serait juste la cerise sur le gâteau :idea: Y aurait-il un moyen simple de dessiner ce gamma plus joliment, sachant que je préfère conserver le caractère réutilisable de mon code, plutôt qu'il soit beau juste sur cet exemple! Dans mon code, j'ai simplement utiliser 2 segments (dont le second fléché) et une courbe de Bezier
4- Cette dernière question est la seule peut-être qui est bien associée à la rubrique choisie! Pouvez-vous me confirmer qu'en plaçant des %%% dans le code TeXgraph (bien qu'au sein d'un fichier .tex), cela ne permet pas de réaliser les commandes TeXgraph, en gros cela fait planter même la compilation Latex, ou bien y a-t-il qqch à déclarer que je n'ai pas fait ?

D'avance merci pour vos réponses.

Karine

PS1 : le code latex \ce{}, utilise le package mhchem (il permet en l'ocurrence d'écrire les formules de chimie en mode "text", ici c'est équivalent à \mathrm{})
PS2 : j'ai utilisé TeXgraph 1.98 avec Kubuntu 16.04
PS3 : le titre du sujet n'est pas terrible, j'en suis désolée!
Pièces jointes
apercu2.pdf
Aperçu avec size(20,1) qui donne une forme plus "jolie au gamma et rend les couples plus lisibles, mais label trop petits (lorsqu'utilisé dans latex).
(54.34 Kio) Téléchargé 637 fois
apercu.pdf
(52 Kio) Téléchargé 628 fois
Karine Brunel
 
Messages: 137
Inscription: 25 Sep 2009 21:28

Re: Superposition de points...

Messagepar P.Fradin » 18 Mars 2018 18:51

Bonjour Karine,

Content de te voir de retour sur le forum ! Voici une proposition de code (quelques modifications) :
Code: Tout sélectionner
\begin{texgraph}[...]
Cmd
   Window(-0.5+3*i, 0.5-1.5*i, 12.6666666666667+6.33333333333333*i);
   Margin(1, 0.5, 0.5, 1);
   Border(0);
   [OriginalCoord(1), IdMatrix()];
   [theta:=0.5236, phi:=1.0472, IdMatrix3D(), ModelView(ortho)];
   GrayScale(0);

Cmd   [tMin:=-1.5,tMax:=1.5,DotScale:=1+i];
Graph Gamma = [view(-1.5,1,tMin,tMax), Margin(1, 0.5, 0.5, 1), size(7+i*10,0), Width:=8, Arrows:=1,
                   LabelSize:=large,
                   LabelAxe(y,tMax*i,"$E(\text{V})$"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 1
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel le plus bas = 1
                   E1:=-0.76,DotStyle:=cross,LabelSize:=small,LabelDot(E1*i,"$-0,76$ {\large $\uuline{\ce{Zn}}$}","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 1
                   Ox1:=-0.35+E1*i,LabelSize:=large,
                   LabelDot(Ox1,"\ce{Zn^2+}","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 1 : il est encadré car fait partie des espèces présentes en sol
                   Red1:=+0.35+E1*i,
                   //LabelDot(Red1,"$\uuline{\ce{Zn}}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 2
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel le plus haut = 2
                   E2:=-0.14,LabelSize:=small,LabelDot(E2*i,"$-0,14$ {\large $\ce{Sn}$}","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 2 : il est souligné car fait partie des espèces présentes en sol
                   Ox2:=-0.35+E2*i,
                   LabelSize:=large,LabelDot(Ox2,"$\uuline{\ce{Sn^2+}}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 2
                   Red2:=+0.35+E2*i,
                   //LabelDot(Red2,"$\ce{Sn}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 3
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel 3 : couple de l'eau oxydant
                   E3:=0.00,LabelSize:=small,LabelDot(E3*i,"$0,00$ {\large $\ce{H2}$}","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 3 : il est souligné car fait partie des espèces présentes en sol
                   Ox3:=-0.35+E3*i,
                   LabelSize:=large,LabelDot(Ox3,"$\uuline{\ce{H2O}}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 3
                   Red3:=+0.35+E3*i,
                   //LabelDot(Red3,"$\ce{H2}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 4
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel 4 : couple de l'eau réducteur
                   E4:=1.23,LabelSize:=small,LabelDot(E4*i,"$1,23$","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 4
                   Ox4:=-0.35+E4*i,
                   LabelSize:=large,LabelDot(Ox4,"$\ce{O2}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 4 : il est souligné car fait partie des espèces présentes en sol
                   Red4:=+0.35+E4*i,
                   LabelDot(Red4,"$\uuline{\ce{H2O}}$","E"),
//%%%%%%%%%%%%%%%%%%%%COUPLE 5
//%%%%%%%%%%%%%%%%%%%%%%%%Définition potentiel 5 : couple de dichlore
                   E5:=1.36,LabelSize:=small,LabelDot(E5*i,"$1,36$","E",1),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition oxydant couple 5
                   Ox5:=-0.35+E5*i,
                   LabelSize:=large,LabelDot(Ox5,"$\ce{Cl2}$","O"),
//%%%%%%%%%%%%%%%%%%%%%%%%Définition réducteur couple 5 : il est souligné car fait partie des espèces présentes en sol
                   Red5:=+0.35+E5*i,
                   LabelDot(Red5,"$\uuline{\ce{Cl^-}}$","E"),
//%%%%%%%%%%%%%%%%%%%%%%%%Tracé du gamma entre E1 et E2
                   bd:=0.05-0.05*i,//%%% décalage départ de flèche/gamma
                   hd:=0.05+0.05*i,//%%% décalage arrivée de flèche/gamma
                   Width:=20,Arrows:=1,Color:=red,
                   Path([Ox2+bd,Red1-0.2,(E1-0.5)*i,Ox1+0.2,Red2 -hd,curve],0),
//%%%%%%%%%%%%%%%%%%%%%%%%Tracé axe vertical seul (sans graduation régulière)
              Color:=black, Width:=5,Ligne([tMin*i,tMax*i],0),
                ];
\end{texgraph}

gamma.png
gamma.png (12.1 Kio) Consulté 5212 fois


Je n'ai pas le paquet uline (absent de TeXlive) mais j'ai testé sans et le code fonctionne normalement.
Pour l'échelle c'était l'utilisation de la macro size() qui n'allait pas, j'ai mis size(7+10*i,0) c'est à dire largeur = 7, hauteur=10, repère non orthonormé.
Pour les labels au même endroit c'est parce que tu avais mis E5:=1,36 au lieu de E5:=1.36 (texgraph comprenait E5=1), idem pour E4.
Pour les labels Sn et Zn qui chevauchaient les nombres j'ai modifié l'affichage (nombre suivi du label) comme tu peux le constater.
J'ai essayé de dessiner un gamma avec l'instruction Path (chemin) et une courbe spline.
Pour terminer, les % dans du code texgraph c'est ce qui précède les arguments dans une macro (%1, %2, ...), ils ont donc un sens dans TeXgraph, pour commenter une ligne dans le langage texgraph c'est // comme tu as fait (il y peut y avoir alors des % ensuite ils sont ignorés).
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04

Re: Superposition de points...

Messagepar Karine Brunel » 18 Mars 2018 21:19

Comme toujours, rapide et efficace!
Merci Patrick!

Même si je n'ai pas participé au forum, j'ai continué à utiliser TeXgraph et essayé de le faire connaître autour de moi. Bref!

Quelle bêtise le . au lieu de la virgule!! J'ai honte! C'est tout moi, ça!

effectivement, il me fallait un repère non orthonormé, j'ai cherché plus compliqué! Si j'ai bine compris, c'est le 0 (argument de size()) qui indique le repère n'est plus orthonormé ?

Bien sûr, ton gamma est super! path... je n'y avais pas pensé! Merci

A bientôt
Karine Brunel
 
Messages: 137
Inscription: 25 Sep 2009 21:28

Re: Superposition de points...

Messagepar P.Fradin » 18 Mars 2018 21:30

Oui c'est bien le 0, dernier argument de size, qui signifie repère non orthonormé (par défaut c'est 1).

A bientôt
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1835
Inscription: 29 Oct 2008 15:04


Revenir vers TeXgraph dans LaTeX

Qui est en ligne ?

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

cron