diff options
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCReperage.tex')
-rw-r--r-- | macros/latex/contrib/profcollege/latex/PfCReperage.tex | 48 |
1 files changed, 39 insertions, 9 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCReperage.tex b/macros/latex/contrib/profcollege/latex/PfCReperage.tex index 70bd8b7c7a..e363b35e8d 100644 --- a/macros/latex/contrib/profcollege/latex/PfCReperage.tex +++ b/macros/latex/contrib/profcollege/latex/PfCReperage.tex @@ -737,6 +737,7 @@ % #4 : la liste courte des noms des points. % #5 : liste des points pour les string \ifluatex + \mplibforcehmode \begin{mplibcode} defaultcolormodel := \useKV[ClesReperage]{ModeleCouleur}; boolean Tiret,Code,AffichageGrad,Cadre; @@ -1305,15 +1306,23 @@ if minx>(-pasx-1): minx:=-2*pasx-1; fi; - if DemiDroite: - minx:=0; - fi; if minx<\useKV[ClesReperage]{ValeurMin}: minx:=\useKV[ClesReperage]{ValeurMin}; fi; if maxx>\useKV[ClesReperage]{ValeurMax}: maxx:=\useKV[ClesReperage]{ValeurMax}; fi; + % Pour gérer les cas des droites où toutes les valeurs sont soit positives soit négatives + if maxx<pasx: + maxx:=pasx+1; + fi; + if minx>-pasx: + minx:=-pasx-1; + fi; + % + if DemiDroite: + minx:=0; + fi; % ----- pair A,B,C; A=(0,0); @@ -1424,7 +1433,15 @@ pointe(unitp*(valeur[n],0)); drawoptions(); elseif ACoord=1: + % + if Decale: + drawarrow (unitp*valeur[n],-7mm if (n mod 2)=0:-5mm fi)--(unitp*valeur[n],-3mm); + label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],-7mm if (n mod 2)=0:-5mm fi)); + else: + %drawarrow (unitp*valeur[n],-7mm)--(unitp*valeur[n],-3mm); + %label.bot(TEX("\pointilles[1cm]"),(unitp*valeur[n],-7mm)); label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0)); + fi; drawoptions(withcolor CouleurCroix); pointe(unitp*(valeur[n],0)); drawoptions(); @@ -1464,16 +1481,29 @@ else: label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-ValeurOrigine)&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0)); fi; - drawoptions(withcolor CouleurCroix); - pointe(unitp*(valeur[n],0)); - drawoptions(); + drawoptions(withcolor CouleurCroix); + pointe(unitp*(valeur[n],0)); + drawoptions(); fi; elseif AffichageCoord=1: if p_<>"": + if Decale: + Labeloffset:=labeloffset; + labeloffset:=2pt; + if (valeur[n]<>0) and (valeur[n]<>pasx): + drawarrow (unitp*valeur[n],-7mm if (n mod 2)=0:-5mm fi)--(unitp*valeur[n],-3mm); + label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),(unitp*valeur[n],-7mm if (n mod 2)=0:-5mm fi)); + fi; + labeloffset:=Labeloffset; + else: + %drawarrow (unitp*valeur[n],-7mm)--(unitp*valeur[n],-3mm); + %label.bot(TEX("\pointilles[1cm]"),(unitp*valeur[n],-7mm)); label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0)); - drawoptions(withcolor CouleurCroix); - pointe(unitp*(valeur[n],0)); - drawoptions(); + fi; + %label.bot(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(valeur[n],0)); + drawoptions(withcolor CouleurCroix); + pointe(unitp*(valeur[n],0)); + drawoptions(); fi; fi; fi; |