texlive[71018] Master/texmf-dist: profcollege (20apr24)

commits+karl at tug.org commits+karl at tug.org
Sat Apr 20 21:26:57 CEST 2024


Revision: 71018
          https://tug.org/svn/texlive?view=revision&revision=71018
Author:   karl
Date:     2024-04-20 21:26:56 +0200 (Sat, 20 Apr 2024)
Log Message:
-----------
profcollege (20apr24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf
    trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip
    trunk/Master/texmf-dist/metapost/profcollege/PfCObjets.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPythagore.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrigonometrie.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrio.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex

Modified: trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/metapost/profcollege/PfCObjets.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCObjets.mp	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCObjets.mp	2024-04-20 19:26:56 UTC (rev 71018)
@@ -42,6 +42,263 @@
 boolean couleurz;%pour g\xE9rer l'affichage "des lignes" de niveaux
 couleurz:=false;
 
+      vardef AffichageObjetCylindre[]=
+      save _affi;
+  picture _affi;
+  color Fc[][];color cou[];
+  tapj:=0;
+  for k=0 upto apj.@:
+    cpt[tapj]:=tapj;
+    Fc[tapj].nb:=OTFc.@[k].nb;
+    for l=1 upto Fc[tapj].nb:
+      Fc[tapj][l]:=OTFc.@[k][l];
+    endfor;
+    Fc[tapj].iso:=OTFc.@[k].iso;
+    cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi;
+    ALT[tapj]:=ALT.@[k];
+    Vue[tapj]:=Vue.@[k];
+    tapj:=tapj+1;
+  endfor;
+  tapj:=tapj-1;
+  QS(0,tapj);
+    for k=0 step 1 until tapj:
+    if Vue[cpt[k]]=false:
+      draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25;
+      draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25;
+    fi;
+    endfor;
+    n:=0;
+    for k=0 step 1 until tapj:
+    if Vue[cpt[k]]:
+%    label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso));
+      n:=n+1;
+      if n<3:
+      if cpt[k]>1:
+      vala[n]=cpt[k];
+%      label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0));
+      else:
+      n:=n-1;
+      fi;
+      fi;
+      if cpt[k]<1:
+      draw for l=1 upto Fc[cpt[k]].nb:
+        Projette(Fc[cpt[k]][l])--
+        endfor
+        cycle;% withpen pencircle scaled0.25;
+        fi;
+        if cpt[k]>1:  
+      draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]);% withpen pencircle scaled0.25;
+        fi;
+      fi;
+      endfor;
+      if vala[1]<vala[2]:
+      draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25;
+      else:
+      draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25;
+      fi;
+enddef;
+
+      vardef AffichageObjetCylindreSansBase[]=
+      save _affi;
+  picture _affi;
+  color Fc[][];color cou[];
+  tapj:=0;
+  for k=0 upto apj.@:
+    cpt[tapj]:=tapj;
+    Fc[tapj].nb:=OTFc.@[k].nb;
+    for l=1 upto Fc[tapj].nb:
+      Fc[tapj][l]:=OTFc.@[k][l];
+    endfor;
+    Fc[tapj].iso:=OTFc.@[k].iso;
+    cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi;
+    ALT[tapj]:=ALT.@[k];
+    Vue[tapj]:=Vue.@[k];
+    tapj:=tapj+1;
+  endfor;
+  tapj:=tapj-1;
+  QS(0,tapj);
+    for k=0 step 1 until tapj:
+    if Vue[cpt[k]]=false:
+      draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25;
+      draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25;
+    fi;
+    endfor;
+    n:=0;
+    for k=0 step 1 until tapj:
+    if Vue[cpt[k]]:
+%    label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso));
+      n:=n+1;
+      if n<3:
+      if cpt[k]>1:
+      vala[n]=cpt[k];
+%      label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0));
+      else:
+      n:=n-1;
+      fi;
+      fi;
+      %if cpt[k]<1:
+      %draw for l=1 upto Fc[cpt[k]].nb:
+      %  Projette(Fc[cpt[k]][l])--
+      %  endfor
+      %  cycle withpen pencircle scaled0.25;
+      %  fi;
+        if cpt[k]>1:  
+      draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]);% withpen pencircle scaled0.25;
+        fi;
+      fi;
+      endfor;
+      if vala[1]<vala[2]:
+      draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25;
+      else:
+      draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25;
+      fi;
+enddef;
+
+vardef AffichageObjetCone[]=
+  save _affi;
+  picture _affi;
+  color Fc[][];color cou[];
+  tapj:=0;
+  for k=0 upto apj.@:
+    cpt[tapj]:=tapj;
+    Fc[tapj].nb:=OTFc.@[k].nb;
+    for l=1 upto Fc[tapj].nb:
+      Fc[tapj][l]:=OTFc.@[k][l];
+    endfor;
+    Fc[tapj].iso:=OTFc.@[k].iso;
+    cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi;
+    ALT[tapj]:=ALT.@[k];
+    Vue[tapj]:=Vue.@[k];
+    tapj:=tapj+1;
+  endfor;
+  tapj:=tapj-1;
+  QS(0,tapj);
+  n:=0;
+    for k=0 upto tapj:
+    if Vue[cpt[k]]:
+    %label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso));
+    if cpt[k]>0:
+    n:=n+1;
+    if n<3:
+      if cpt[k]>1:
+      vala[n]:=cpt[k];
+%      label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0));
+      else:
+      n:=n-1;
+      fi;
+      fi;
+      draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);%withpen pencircle scaled0.25bp;
+          fi;
+      fi;
+      endfor;
+      if vala[1]<vala[2]:
+      draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25;
+      else:
+      draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25;
+      fi;
+    enddef;
+
+    vardef AffichageObjetConeAvecBase[]=
+  save _affi;
+  picture _affi;
+  color Fc[][];color cou[];
+  tapj:=0;
+  for k=0 upto apj.@:
+    cpt[tapj]:=tapj;
+    Fc[tapj].nb:=OTFc.@[k].nb;
+    for l=1 upto Fc[tapj].nb:
+      Fc[tapj][l]:=OTFc.@[k][l];
+    endfor;
+    Fc[tapj].iso:=OTFc.@[k].iso;
+    cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi;
+    ALT[tapj]:=ALT.@[k];
+    Vue[tapj]:=Vue.@[k];
+    tapj:=tapj+1;
+  endfor;
+  tapj:=tapj-1;
+  QS(0,tapj);
+  for k=0 upto tapj:
+    if Vue[cpt[k]]=false:
+      draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2])
+	dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25bp;
+    fi;
+  endfor;
+  n:=0;
+    for k=0 upto tapj:
+    if Vue[cpt[k]]:
+    %label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso));
+    if cpt[k]>0:
+    n:=n+1;
+    if n<3:
+      if cpt[k]>1:
+      vala[n]:=cpt[k];
+%      label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0));
+      else:
+      n:=n-1;
+      fi;
+      fi;
+      draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);%withpen pencircle scaled0.25bp;
+          fi;
+      fi;
+      endfor;
+      if vala[1]<vala[2]:
+      draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25;
+      else:
+      draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25;
+      draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25;
+      fi;
+enddef;
+
+            vardef AffichageObjetCalotte[]=
+      save _affi;
+  picture _affi;
+  color Fc[][];color cou[];
+  tapj:=0;
+  for k=0 upto apj.@:
+    cpt[tapj]:=tapj;
+    Fc[tapj].nb:=OTFc.@[k].nb;
+    for l=1 upto Fc[tapj].nb:
+      Fc[tapj][l]:=OTFc.@[k][l];
+    endfor;
+    Fc[tapj].iso:=OTFc.@[k].iso;
+    cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi;
+    ALT[tapj]:=ALT.@[k];
+    Vue[tapj]:=Vue.@[k];
+    tapj:=tapj+1;
+  endfor;
+  tapj:=tapj-1;
+  QS(0,tapj);
+  minvue:=4000;
+    for k=1 step 1 until tapj:
+    if cpt[k]>1:
+    if Vue[cpt[k]]:
+    if cpt[k]<minvue:
+    minvue:=cpt[k];
+    fi;
+          fi;
+          fi;
+          endfor;
+          for k=0 upto 11:
+          draw for l=1 upto 2:%Fc[minvue+k*72].nb:
+	    Projette(Fc[minvue+k*72][l])--
+	  endfor
+	  cycle;% withpen pencircle scaled0.25bp;
+          draw for l=3 upto 4:%Fc[minvue+k*72].nb:
+	    Projette(Fc[minvue+35+k*72][l])--
+	  endfor
+	  cycle;% withpen pencircle scaled0.25bp;
+          endfor;
+enddef;
+
 vardef AffichagePfC[]=
   save _affi;
   picture _affi;

Modified: trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp	2024-04-20 19:26:56 UTC (rev 71018)
@@ -1689,8 +1689,11 @@
     fill cadre withcolor if print : coefprint*White else : if unknown colControle : LightOrange else : colControle fi fi;
   draw cadre withcolor if print : coefprint*White else : if unknown colControle : LightOrange else : colControle fi fi;
   AA:=ahangle;
-  ahangle:=90;
-  drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled2bp if print=false : withcolor white fi;
+  BB:=ahlength;
+  ahangle:=90;%90
+  ahlength:=ahlength/2;
+%  drawarrow (lrcorner texto+(-0.625cm,0.15cm)){dir-15}..{dir90}(urcorner texto+(-0.25cm,-0.1cm)) withpen pencircle scaled1.5 if print=false : withcolor white fi;
+  drawarrow (lrcorner texto+(-0.25cm,0.15cm)){dir-30}..{dir90}(urcorner texto+(-0.125cm,-0.1cm)) withpen pencircle scaled1 if print=false : withcolor white fi;
   ahangle:=AA;
   draw (coindebutbloc[numblocrep]+(0.0625+0.5cm+eb,0.125)){dir180}..
     {dir-90}(coindebutbloc[numblocrep]+(0.5cm,-eb))--

Added: trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -0,0 +1,497 @@
+%%%
+% Assemblages solides
+%%%
+\setKVdefault[Assemblage]{Phi=30,Theta=20,Distance=50,Anglez=0,Anglex=0,Largeur=1.5,Profondeur=0.75,Hauteur=1,RayonBoule=1,RayonCone=1,RayonCylindre=1,HauteurPrisme=1,HauteurPyramideA=1,HauteurPyramideB=1,HauteurConeA=1,HauteurConeB=1,HauteurCylindre=1,Cotes=3,Trace=false,Type=Pyramides}%
+\defKV[Assemblage]{Traces=\setKV[Assemblage]{Trace}}%
+
+\NewDocumentCommand\AssemblageSolides{o}{%
+  \useKVdefault[Assemblage]%
+  \setKV[Assemblage]{#1}%
+  \IfStrEqCase{\useKV[Assemblage]{Type}}{%
+    {Pyramides}{\MPAssemblagePyramides{\useKV[Assemblage]{Cotes}}}%
+    {PavePyramide}{\MPAssemblagePavePyramide}%
+    {PyramidePave}{\MPAssemblagePavePyramide}%
+    {PavePyramides}{\MPAssemblagePavePyramides}%
+    {PyramidesPave}{\MPAssemblagePavePyramides}%
+    {PrismePyramide}{\MPAssemblagePrismePyramide{\useKV[Assemblage]{Cotes}}}%
+    {PyramidePrisme}{\MPAssemblagePrismePyramide{\useKV[Assemblage]{Cotes}}}%
+    {CylindreCone}{\MPAssemblageCylindreCone}%
+    {ConeCylindre}{\MPAssemblageCylindreCone}%
+    {CylindreCones}{\MPAssemblageCylindreCones}%
+    {ConesCylindre}{\MPAssemblageCylindreCones}%
+    {CylindreConeBoule}{\MPAssemblageCylindreConeBoule}%
+    {CylindreBouleCone}{\MPAssemblageCylindreConeBoule}%
+    {ConeCylindreBoule}{\MPAssemblageCylindreConeBoule}%
+    {ConeBouleCylindre}{\MPAssemblageCylindreConeBoule}%
+    {BouleCylindreCone}{\MPAssemblageCylindreConeBoule}%
+    {BouleConeCylindre}{\MPAssemblageCylindreConeBoule}%
+    {CylindreBoule}{\MPAssemblageCylindreBoule}%
+    {BouleCylindre}{\MPAssemblageCylindreBoule}%
+    {CylindreBoules}{\MPAssemblageCylindreBoules}%
+    {BoulesCylindre}{\MPAssemblageCylindreBoules}%
+    {ConeBoule}{\MPAssemblageConeBoule}%
+    {BouleCone}{\MPAssemblageConeBoule}%
+  }%
+}%
+
+\NewDocumentCommand\MPAssemblagePyramides{m}{%
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      HautA=\useKV[Assemblage]{HauteurPyramideA};
+      HautB=\useKV[Assemblage]{HauteurPyramideB};
+
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      color Sommet[];
+      
+      NbS:=#1+2;
+      angbase=360/#1;
+      
+      for k=0 upto #1-1:
+      Sommet[k]:=(cosd(k*angbase),sind(k*angbase),0);
+      endfor;
+      Sommet[NbS-1]:=(0,0,HautA);
+      Sommet[NbS]:=(0,0,-HautB);
+      for k=0 upto NbS:
+      Sommet[k]:=Image(Sommet[k]);
+      endfor;
+      %% Faces
+      NF:=2*#1;
+      for k=1 upto #1:
+      Fc[k*100]:=3;Fc[k*100+1]:=(k+1) mod #1;Fc[k*100+3]:=k mod #1;Fc[k*100+2]:=NbS-1;
+      endfor;
+      for k=#1+1 upto 2*#1:
+      Fc[k*100]:=3;Fc[k*100+1]:=k mod #1;Fc[k*100+3]:=(k+1) mod #1;Fc[k*100+2]:=NbS;
+      endfor;
+      %
+      DessineObjet;
+      %
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblagePavePyramide{}{%
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      Larg=\useKV[Assemblage]{Hauteur};
+      Long=\useKV[Assemblage]{Largeur};
+      Prof=\useKV[Assemblage]{Profondeur};
+      HautA=\useKV[Assemblage]{HauteurPyramideA};
+      
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      color Sommet[];
+      NbS:=9;
+
+      Sommet1:=(Long,0,0);
+      Sommet2:=(Long,Prof,0);
+      Sommet3:=(0,Prof,0);
+      Sommet4:=(0,0,0);
+      Sommet5:=(0,0,Larg);
+      Sommet6:=(Long,0,Larg);
+      Sommet7:=(Long,Prof,Larg);
+      Sommet8:=(0,Prof,Larg);
+      Sommet9:=(Sommet5+Sommet6+Sommet7+Sommet8)/4+(0,0,HautA);
+      for k=1 upto 9:
+      Sommet[k]:=Image(Sommet[k]);
+      endfor;
+      %% Faces
+      NF:=9;
+      Fc[100]:=4;Fc[101]:=1;Fc[102]:=4;Fc[103]:=3;Fc[104]:=2;
+      Fc[200]:=4;Fc[201]:=4;Fc[202]:=5;Fc[203]:=8;Fc[204]:=3;
+      Fc[300]:=4;Fc[301]:=1;Fc[302]:=6;Fc[303]:=5;Fc[304]:=4;
+      Fc[400]:=4;Fc[401]:=2;Fc[402]:=3;Fc[403]:=8;Fc[404]:=7;
+      Fc[500]:=4;Fc[501]:=1;Fc[502]:=2;Fc[503]:=7;Fc[504]:=6;
+      Fc[600]:=3;Fc[601]:=8;Fc[602]:=5;Fc[603]:=9;
+      Fc[700]:=3;Fc[701]:=5;Fc[702]:=6;Fc[703]:=9;
+      Fc[800]:=3;Fc[801]:=6;Fc[802]:=7;Fc[803]:=9;
+      Fc[900]:=3;Fc[901]:=7;Fc[902]:=8;Fc[903]:=9;
+      %
+      DessineObjet;
+      %
+      %
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblagePavePyramides{}{%
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      Larg=\useKV[Assemblage]{Hauteur};
+      Long=\useKV[Assemblage]{Largeur};
+      Prof=\useKV[Assemblage]{Profondeur};
+      HautA=\useKV[Assemblage]{HauteurPyramideA};
+      HautB=\useKV[Assemblage]{HauteurPyramideB};
+      
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      color Sommet[];
+      NbS:=10;
+      
+      Sommet1:=(Long,0,0);
+      Sommet2:=(Long,Prof,0);
+      Sommet3:=(0,Prof,0);
+      Sommet4:=(0,0,0);
+      Sommet5:=(0,0,Larg);
+      Sommet6:=(Long,0,Larg);
+      Sommet7:=(Long,Prof,Larg);
+      Sommet8:=(0,Prof,Larg);
+      Sommet9:=(Sommet5+Sommet6+Sommet7+Sommet8)/4+(0,0,HautA);
+      Sommet10:=(Sommet1+Sommet2+Sommet3+Sommet4)/4+(0,0,-HautB);
+      for k=1 upto 10:
+      Sommet[k]:=Image(Sommet[k]);
+      endfor;
+      %% Faces
+      NF:=12;
+      Fc[100]:=4;Fc[101]:=4;Fc[102]:=5;Fc[103]:=8;Fc[104]:=3;
+      Fc[200]:=4;Fc[201]:=1;Fc[202]:=6;Fc[203]:=5;Fc[204]:=4;
+      Fc[300]:=4;Fc[301]:=2;Fc[302]:=3;Fc[303]:=8;Fc[304]:=7;
+      Fc[400]:=4;Fc[401]:=1;Fc[402]:=2;Fc[403]:=7;Fc[404]:=6;
+      %
+      Fc[500]:=3;Fc[501]:=8;Fc[502]:=5;Fc[503]:=9;
+      Fc[600]:=3;Fc[601]:=5;Fc[602]:=6;Fc[603]:=9;
+      Fc[700]:=3;Fc[701]:=6;Fc[702]:=7;Fc[703]:=9;
+      Fc[800]:=3;Fc[801]:=7;Fc[802]:=8;Fc[803]:=9;
+      %
+      Fc[900]:=3;Fc[901]:=4;Fc[902]:=3;Fc[903]:=10;
+      Fc[1000]:=3;Fc[1001]:=1;Fc[1002]:=4;Fc[1003]:=10;
+      Fc[1100]:=3;Fc[1101]:=2;Fc[1102]:=1;Fc[1103]:=10;
+      Fc[1200]:=3;Fc[1201]:=3;Fc[1202]:=2;Fc[1203]:=10;
+      %
+      DessineObjet;
+      %
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblagePrismePyramide{m}{%
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      HautP=\useKV[Assemblage]{HauteurPrisme};
+      HautA=\useKV[Assemblage]{HauteurPyramideA};
+      
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      color Sommet[];
+      
+      NbS:=2*#1+1;
+      angbase=360/#1;
+      
+      for k=0 upto #1-1:
+      Sommet[k]:=(cosd(k*angbase),sind(k*angbase),0);
+      endfor;
+
+      for k=#1 upto 2*#1-1:
+      Sommet[k]:=Sommet[k-#1]+(0,0,-HautP);
+      endfor;
+      Sommet[NbS-1]:=(0,0,HautA);
+      for k=0 upto NbS-1:
+      Sommet[k]:=Image(Sommet[k]);
+      endfor;
+      %% Faces
+      NF:=2*#1+1;
+      %latérale pyramide
+      for k=1 upto #1:
+      Fc[k*100]:=3;Fc[k*100+1]:=k mod #1;Fc[k*100+2]:=(k+1) mod #1;Fc[k*100+3]:=NbS-1;
+      endfor;
+      % face latérales prisme
+      for k=1 upto #1:
+      rang:=k+#1;
+      Fc[rang*100]:=4;Fc[rang*100+1]:=(k mod #1)+#1;Fc[rang*100+2]:=((k+1) mod #1)+#1;Fc[rang*100+3]:=(k+1) mod #1;Fc[rang*100+4]:=(k) mod #1;
+      endfor;
+      %face base du prisme
+      Fc[(2*#1+1)*100]:=#1;
+      for k=1 upto #1:
+      Fc[(2*#1+1)*100+k]:=((#1-k) mod #1)+#1;
+      endfor;
+      %
+      DessineObjet;
+      % 
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblageCylindreCone{}{%
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      Rayon=\useKV[Assemblage]{RayonCylindre};
+      HautC=\useKV[Assemblage]{HauteurCylindre};
+      HautCo=\useKV[Assemblage]{HauteurConeA};
+      
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      nb:=36;
+      subh:=1;
+      incolor:=white;
+      outcolor:=0.8white;
+      Ferme1:=true;
+      Objetcylindre1("r="&"Rayon","h="&"HautC");
+      TR:=(0,-HautC*sind(angx),HautC*cosd(angx));
+      nb:=72;
+      Objetcone2("r="&"Rayon","h="&"HautCo");
+      AffichageObjetCylindre1;
+      AffichageObjetCone2;
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblageCylindreCones{}{%
+  % à faire
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      Rayon=\useKV[Assemblage]{RayonCylindre};
+      HautC=\useKV[Assemblage]{HauteurCylindre};
+      HautCo=\useKV[Assemblage]{HauteurConeA};
+      HautCob=\useKV[Assemblage]{HauteurConeB};
+
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      nb:=36;
+      subh:=1;
+      incolor:=white;
+      outcolor:=0.8white;
+      Ferme1:=true;
+      Objetcylindre1("r="&"Rayon","h="&"HautC");
+      nb:=72;
+      TR:=(0,-HautC*sind(angx),HautC*cosd(angx));
+      Objetcone2("r="&"Rayon","h="&"HautCo");
+      TR:=(0,0,0);
+      angx:=180+angx;
+      Objetcone3("r="&"Rayon","h="&"HautCob");
+      angx:=0;
+      AffichageObjetCylindreSansBase1;
+      AffichageObjetCone2;
+      AffichageObjetCone3;
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblageCylindreConeBoule{}{%
+  % à faire
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      Rayon=\useKV[Assemblage]{RayonCylindre};
+      HautC=\useKV[Assemblage]{HauteurCylindre};
+      HautCo=\useKV[Assemblage]{HauteurConeA};
+
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      nb:=36;%36
+      subh:=1;%
+      incolor:=white;
+      outcolor:=0.8white;
+      Ferme1:=true;
+      Objetcylindre1("r="&"Rayon","h="&"HautC");
+      TR:=(0,-HautC*sind(angx),HautC*cosd(angx));
+      Objetcone2("r="&"Rayon","h="&"HautCo");
+      TR:=(0,0,0);
+      nb:=12;
+      subh:=72;
+      angx:=180+angx;
+      Objetcalotte3("R="&"Rayon","phib="&"-pi/36","phih="&"pi/2");
+      angx:=0;
+      AffichageObjetCylindreSansBase1;
+      AffichageObjetCone2;
+      AffichageObjetCalotte3;
+      %
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblageCylindreBoule{}{%
+  % à faire
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+
+      Rayon=\useKV[Assemblage]{RayonCylindre};
+      HautC=\useKV[Assemblage]{HauteurCylindre};
+
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      nb:=36;%36
+      subh:=1;%
+      incolor:=white;
+      outcolor:=0.8white;
+      Ferme1:=true;
+      Objetcylindre1("r="&"Rayon","h="&"HautC");
+      TR:=(0,-HautC*sind(angx),HautC*cosd(angx));
+      nb:=12;
+      subh:=72;%
+      Objetcalotte2("R="&"Rayon","phib="&"-pi/36","phih="&"pi/2");
+      TR:=(0,0,0);
+      AffichageObjetCylindreSansBase1;
+      AffichageObjetCalotte2;
+      % 
+      if Trace:
+      \useKV[Assemblage]{Traces};
+      fi;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblageCylindreBoules{}{%
+  % à faire
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+      
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+      
+      Rayon=\useKV[Assemblage]{RayonCylindre};
+      HautC=\useKV[Assemblage]{HauteurCylindre};
+      
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      Initialisation(1500,22,20,50);
+
+      nb:=36;
+      subh:=1;
+      incolor:=white;
+      outcolor:=0.8white;
+      Ferme1:=true;
+      Objetcylindre1("r="&"Rayon","h="&"HautC");
+      TR:=(0,-HautC*sind(angx),HautC*cosd(angx));
+      nb:=12;
+      subh:=72;%
+      Objetcalotte2("R="&"Rayon","phib="&"0","phih="&"pi/2");
+      TR:=(0,0,0);
+      angx:=180+angx;
+      TR:=(0,0,0);
+      Objetcalotte3("R="&"Rayon","phib="&"0","phih="&"pi/2");
+      TR:=(0,0,0);
+      AffichageObjetCylindreSansBase1;
+      AffichageObjetCalotte2;
+      AffichageObjetCalotte3;
+    \end{mplibcode}
+  \fi
+}%
+
+\NewDocumentCommand\MPAssemblageConeBoule{}{%
+  % à faire
+  \ifluatex
+    \mplibforcehmode
+    \begin{mplibcode}
+      input PfCSolid;
+
+      Initialisation(1500,\useKV[Assemblage]{Phi},\useKV[Assemblage]{Theta},\useKV[Assemblage]{Distance});
+      
+      angx:=\useKV[Assemblage]{Anglex};
+      angz:=\useKV[Assemblage]{Anglez};
+      
+      Rayon=\useKV[Assemblage]{RayonCone};
+      HautCa=\useKV[Assemblage]{HauteurConeA};
+      
+      boolean Trace;
+      Trace=\useKV[Assemblage]{Trace};
+      
+      Initialisation(1500,22,20,50);
+      
+      nb:=72;%36
+      subh:=1;%
+      incolor:=white;
+      outcolor:=0.8white;
+      Ferme1:=true;
+      Objetcone1("r="&"Rayon","h="&"HautCa");
+      angx:=180+angx;
+      nb:=12;
+      subh:=72;%
+      Objetcalotte2("R="&"Rayon","phib="&"0","phih="&"pi/2");
+      TR:=(0,0,0);
+      AffichageObjetConeAvecBase1;
+      AffichageObjetCalotte2;%Cone3;
+    \end{mplibcode}
+  \fi
+}%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -222,6 +222,9 @@
 %    \mplibforcehmode
     \begin{mplibcode}
       input PfCMonde;
+
+      Allegee:=\useKV[Cartographie]{Allegee};
+      
       defaultcolormodel:=\useKV[Cartographie]{ModeleCouleur};
       string arborescence;
       arborescence:=\useKV[Cartographie]{Arborescence};

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -1,7 +1,10 @@
-\setKVdefault[ClesConversion]{Longueur,Aire=false,Vol=false,Masses=false,Capas=false,Sans=false,Complete=40pt}%
+\setKVdefault[ClesConversion]{Longueur,Aire=false,Vol=false,Masses=false,Capas=false,Sans=false,Completes=false}%
+\defKV[ClesConversion]{Complete=\setKV[ClesConversion]{Completes}}%
 \defKV[ClesConversion]{Masse=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Masses}}%
 \defKV[ClesConversion]{Capa=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Capas}}%
 
+\newlength{\PfCConversionLongueur}%
+
 \NewDocumentCommand\ChoixUniteD{m}{%
   \IfStrEqCase{#1}{%
     {G}{\DeclareSIUnit{\TempoPrefixeD}{\giga}\xdef\ExposantD{9}}%
@@ -41,21 +44,21 @@
 \NewDocumentCommand\Convertir{somm}{%
   \useKVdefault[ClesConversion]%
   \setKV[ClesConversion]{#2}%
-  \StrBefore{#3}{>}[\PrefixeDepart]
-  \StrBehind{#3}{>}[\PrefixeArrivee]
+  \StrBefore{#3}{>}[\PrefixeDepart]%
+  \StrBehind{#3}{>}[\PrefixeArrivee]%
   \ChoixUniteD{\PrefixeDepart}%
   \ChoixUniteA{\PrefixeArrivee}%
   \ifboolKV[ClesConversion]{Aire}{%
     \DeclareSIUnit{\TempoAvant}{\square}%
     \DeclareSIUnit{\TempoBase}{\meter}
-    \xdef\PfCConvExposant{2}
+    \xdef\PfCConvExposant{2}%
   }{\ifboolKV[ClesConversion]{Vol}{%
       \DeclareSIUnit{\TempoAvant}{\cubic}%
       \DeclareSIUnit{\TempoBase}{\meter}
-      \xdef\PfCConvExposant{3}
+      \xdef\PfCConvExposant{3}%
     }{%
       \DeclareSIUnit{\TempoAvant}{}%
-      \xdef\PfCConvExposant{1}
+      \xdef\PfCConvExposant{1}%
     }%
   }%
   \ifboolKV[ClesConversion]{Masses}{%
@@ -67,7 +70,7 @@
   \ifboolKV[ClesConversion]{Capas}{%
     \DeclareSIUnit{\TempoBase}{\liter}%
   }{}%
-  \ensuremath{
+  \ensuremath{%
     \IfBooleanTF{#1}{%
       \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
       \SI{#4}{\TempoAvant\TempoPrefixeD\TempoBase}
@@ -74,7 +77,7 @@
       \IfStrEq{\PrefixeDepart}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeDepart}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
       =
       \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\relax}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\relax}}{}
-      \PointsSuspension{\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}}~\si{\TempoAvant\TempoPrefixeA\TempoBase}
+      \ifboolKV[ClesConversion]{Completes}{\setlength{\PfCConversionLongueur}{\useKV[ClesConversion]{Complete}}\pointilles[\PfCConversionLongueur]}{\PointsSuspension{\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}\fpeval{#4*(10**((\ExposantD-(\ExposantA))*\PfCConvExposant))}}}~\si{\TempoAvant\TempoPrefixeA\TempoBase}
       \IfStrEq{\PrefixeArrivee}{t}{\DeclareSIUnit{\TempoBase}{\gram}}{}\IfStrEq{\PrefixeArrivee}{q}{\DeclareSIUnit{\TempoBase}{\gram}}{}
     }{%
       \ifboolKV[ClesConversion]{Sans}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -43,7 +43,7 @@
     Ancre0:=(0,0);
     racine:=#1;
 
-    label(btex \num{#1} etex,(0,0));
+    label(TEX("\num{#1}"),(0,0));
     forever:
     PremierSimple(racine);
     exitif racine=1;
@@ -829,10 +829,12 @@
   \end{tabular}%
   \else%
     \begin{tabular}{c|c}
-    1&\num{#1}\\
+      1&\num{#1}
+      \ifnum\cnpT>2\relax\\
     \xintFor* ##1 in {\xintSeq {1}{\fpeval{\cnpT/2}}}\do{%
     \DiviseurNumero{#1}{##1}\num{\fpeval{\dnpT}}\uppercase{&}\DiviseurNumero{#1}{##1}\num{\fpeval{#1/\dnpT}}\\
-    }
+      }
+      \fi
   \end{tabular}%
   \fi%
 }%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -105,7 +105,7 @@
   \fi
   \opmul[decimalsepsymbol={,},lineheight=2em,columnwidth=1.5em,voperator=bottom,intermediarystyle=\stepcounter{divxlop}\color{PfCSolOp}\PfCchiffre{A\thedivxlop},resultstyle=\stepcounter{divxlop}\color{PfCSolOp}\PfCchiffre{A\thedivxlop},resultstyle.d=\color{PfCCouleurVirgule}]{#2}{#3}%
   \foreach \i in {1,...,\thedivxlop}{%
-    \PfCentoure{A\i}{A\i}%
+     \PfCentoure{A\i}{A\i}%
   }%
   \endgroup
   }
@@ -168,4 +168,228 @@
   \foreach \i in {1,...,\thedivxlop}{%
     \PfCentoure{A\i}{A\i}%
   }%
+}%
+
+%%%%%%%%%%%%%%%%%%%%% Colorees %%%%%%%%%%%%%%%%%%%
+% Merci JCC
+%%% Seule ligne à modifier selon la convenance %%%
+\newcommand\couleurs{blue,red,green,blue,red,green,blue,red,green,blue,red,green}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcount\numint%
+\newcount\indint%
+\newcount\ind%
+\def\nnil{\nil}%
+\def\ExtraitCouleurs{%
+   \ind=0%
+   \expandafter\ExtraitCouleursAux\couleurs,\nil,%
+}%
+\def\ExtraitCouleursAux#1,{%
+  \def\arg{#1}%
+  \ifx\arg\nnil%
+     \edef\cmax{\the\ind}%
+   \else%
+     \def\couleur{#1}%
+     \stepcounter{coulxlop}%
+     \stepcounter{coulxlopa}%
+     \stepcounter{coulxlopd}%
+     \expandafter\edef\csname PfCOpCouleurs\Roman{coulxlop}\endcsname{\couleur}%
+     \expandafter\edef
+     \csname op at operandstyle.1.\the\numexpr\ind+1\endcsname{%
+       \noexpand\PfCchiffre{CA\thecoulxlop}%
+     }%
+     \expandafter\edef
+     \csname op at operandstyle.2.\the\numexpr\ind+1\endcsname{%
+       \noexpand\PfCchiffre{CB\thecoulxlopa}%
+     }%
+     \expandafter\edef
+     \csname op at resultstyle.\the\numexpr\ind+1\endcsname{%
+       \noexpand\PfCchiffre{CC\thecoulxlopd}%
+     }%
+     \numint = \numexpr\ind+1
+     \indint = 1
+     \ConstruitIntermediaire
+     \advance\ind by 1
+     \expandafter\ExtraitCouleursAux
+   \fi
+}
+\def\ConstruitIntermediaire{%
+  \ifnum\numint>0
+    \stepcounter{coulxlopi}%
+    \expandafter\edef\csname PfCOpCouleursi\Roman{coulxlopi}\endcsname{\couleur}%
+     \expandafter\edef
+     \csname op at intermediarystyle.\the\numint.\the\indint\endcsname{%
+       \noexpand\PfCchiffre{CD\thecoulxlopi}%
+     }%
+     \advance\indint by 1
+     \advance\numint by -1
+     \expandafter\ConstruitIntermediaire
+   \fi
+ }
+ \def\ConstruitRemainder{%
+  \ifnum\numint>0
+    \stepcounter{coulxlopidiv}%
+    \expandafter\edef\csname PfCOpCouleursid\Roman{coulxlopidiv}\endcsname{\couleur}%
+     \expandafter\edef
+     \csname op at remainderystyle.\the\numint.\the\indint\endcsname{%
+       \noexpand\PfCchiffre{CE\thecoulxlopidiv}%
+     }%
+     \advance\indint by 1
+     \advance\numint by -1
+     \expandafter\ConstruitRemainder
+   \fi
+ }
+
+\newcounter{coulxlop}%
+\newcounter{coulxlopi}%
+\newcounter{coulxlopa}%
+\newcounter{coulxlopd}%
+\newcounter{coulxlopidiv}%
+\newcounter{coulxlopcoul}%
+
+\newcommand\PfCentoureColor[2]{%
+  \expandafter\edef\csname RetiensCouleur\endcsname{\csname PfCOpCouleurs\Roman{coulxlopcoul}\endcsname}\colorlet{CouleurCadre}{\RetiensCouleur}%
+  \tikz[remember picture,overlay] \node[preaction={draw={CouleurCadre},ultra thick,opacity=1,
+    transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick,inner sep=.55em,fit=(#1.center)(#2.center)]{};}
+
+\newcommand\PfCentoureColorR[3]{%
+  \expandafter\edef\csname RetiensCouleur\endcsname{\csname PfCOpCouleurs\Roman{coulxlopcoul}\endcsname}\colorlet{CouleurCadre}{\RetiensCouleur}%
+  \tikz[remember picture,overlay] \node[preaction={draw={CouleurCadre},ultra thick,opacity=1,
+    transform canvas={xshift=0em,yshift=0em}},rectangle,fill=PfCSolOp,rounded corners,ultra thick,inner sep=.55em,fit=(#1.center)(#2.center)]{};}
+
+\newcommand\PfCentoureColorI[2]{%
+  \expandafter\edef\csname RetiensCouleur\endcsname{\csname PfCOpCouleursi\Roman{coulxlopcoul}\endcsname}\colorlet{CouleurCadre}{\RetiensCouleur}%
+  \tikz[remember picture,overlay] \node[preaction={draw={CouleurCadre},ultra thick,opacity=1,
+    transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick,inner sep=.55em,fit=(#1.center)(#2.center)]{};}
+
+\newcommand\PfCentoureColorIR[2]{%
+  \expandafter\edef\csname RetiensCouleur\endcsname{\csname PfCOpCouleursi\Roman{coulxlopcoul}\endcsname}\colorlet{CouleurCadre}{\RetiensCouleur}%
+  \tikz[remember picture,overlay] \node[preaction={draw={CouleurCadre},ultra thick,opacity=1,
+    transform canvas={xshift=0em,yshift=0em}},rectangle,fill=PfCSolOp,rounded corners,ultra thick,inner sep=.55em,fit=(#1.center)(#2.center)]{};}
+
+\newcommand\PfCentoureColorIdiv[2]{%
+  \expandafter\edef\csname RetiensCouleur\endcsname{\csname PfCOpCouleursid\Roman{coulxlopcoul}\endcsname}\colorlet{CouleurCadre}{\RetiensCouleur}%
+  \tikz[remember picture,overlay] \node[preaction={draw={CouleurCadre},ultra thick,opacity=1,
+transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick,inner sep=.55em,fit=(#1.center)(#2.center)]{};}
+
+\makeatletter
+\long\def\ifnodedefined#1#2#3{%
+    \@ifundefined{pgf at sh@ns@#1}{#3}{#2}%
+}
+\makeatother
+
+\NewDocumentCommand\MultiplicationColore{omm}{%
+  \useKVdefault[ClesOperations]%
+  \setKV[ClesOperations]{#1}%
+  \setcounter{coulxlop}{0}%
+  \setcounter{coulxlopa}{0}%
+  \setcounter{coulxlopd}{0}%
+  \setcounter{coulxlopi}{0}%
+  \setcounter{coulxlopcoul}{0}%
+  \ifboolKV[ClesOperations]{Solution}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurSolution}}}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurFond}}}%
+  \ExtraitCouleurs%
+  \begingroup%
+  \setlength{\baselineskip}{1.75em}%
+  \StrLen{#3}[\PfCLongueurFacteurDeux]%
+  \ifnum\PfCLongueurFacteurDeux=1\relax%
+  \opset{lineheight=\baselineskip} % nécessaire
+  \else%
+    \opset{lineheight=\baselineskip,displayintermediary=all,displayshiftintermediary=all} % nécessaire
+  \fi%
+  \opmul[decimalsepsymbol={,},lineheight=1.75em,columnwidth=1.5em,voperator=bottom]{#2}{#3}%
+  \endgroup%
+  \foreach \i in {1,...,\thecoulxlop}{%
+    \stepcounter{coulxlopcoul}%
+        \ifnodedefined{CA\i}{%
+            \PfCentoureColor{CA\i}{CA\i}%
+            }{}
+  }%
+  \setcounter{coulxlopcoul}{0}%
+    \foreach \i in {1,...,\thecoulxlopa}{%
+    \stepcounter{coulxlopcoul}%
+        \ifnodedefined{CB\i}{%
+            \PfCentoureColor{CB\i}{CB\i}%
+            }{}
+          }%
+          \setcounter{coulxlopcoul}{0}%
+    \foreach \i in {1,...,\thecoulxlopd}{%
+    \stepcounter{coulxlopcoul}%
+        \ifnodedefined{CC\i}{%
+      \ifboolKV[ClesOperations]{Solution}{\PfCentoureColor{CC\i}{CC\i}}{\PfCentoureColorR{CC\i}{CC\i}}%
+            }{}
+  }%
+  \setcounter{coulxlopcoul}{0}%
+  \foreach \i in {1,...,\thecoulxlopi}{%
+    \stepcounter{coulxlopcoul}%
+%    La couleur est 
+    \ifnodedefined{CD\i}{%
+        \ifboolKV[ClesOperations]{Solution}{\PfCentoureColorI{CD\i}{CD\i}}{\PfCentoureColorIR{CD\i}{CD\i}}%
+    }{}%
+  }%
+}%
+
+\newcommand\AdditionColore[3][]{%
+  \useKVdefault[ClesOperations]%
+  \setKV[ClesOperations]{#1}%
+    \ifboolKV[ClesOperations]{Solution}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurSolution}}}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurFond}}}%
+    \setcounter{coulxlop}{0}%
+  \setcounter{coulxlopa}{0}%
+  \setcounter{coulxlopd}{0}%
+  \setcounter{coulxlopi}{0}%
+  \setcounter{coulxlopcoul}{0}%
+  \ExtraitCouleurs%
+  \opadd[decimalsepsymbol={,},lineheight=1.75em,columnwidth=1.5em,voperator=bottom]{#2}{#3}%
+  \foreach \i in {1,...,\thecoulxlop}{%
+    \stepcounter{coulxlopcoul}%
+    \ifnodedefined{CA\i}{%
+      \PfCentoureColor{CA\i}{CA\i}%
+    }{}%
+  }%
+  \setcounter{coulxlopcoul}{0}%
+  \foreach \i in {1,...,\thecoulxlopa}{%
+    \stepcounter{coulxlopcoul}%
+    \ifnodedefined{CB\i}{%
+      \PfCentoureColor{CB\i}{CB\i}%
+    }{}%
+  }%
+  \setcounter{coulxlopcoul}{0}%
+  \foreach \i in {1,...,\thecoulxlopd}{%
+    \stepcounter{coulxlopcoul}%
+    \ifnodedefined{CC\i}{%
+      \ifboolKV[ClesOperations]{Solution}{\PfCentoureColor{CC\i}{CC\i}}{\PfCentoureColorR{CC\i}{CC\i}}%
+    }{}%
+  }%
+}%
+
+\newcommand\SoustractionColore[3][]{%
+  \useKVdefault[ClesOperations]%
+  \setKV[ClesOperations]{#1}%
+    \ifboolKV[ClesOperations]{Solution}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurSolution}}}{\colorlet{PfCSolOp}{\useKV[ClesOperations]{CouleurFond}}}%
+    \setcounter{coulxlop}{0}%
+  \setcounter{coulxlopa}{0}%
+  \setcounter{coulxlopd}{0}%
+  \setcounter{coulxlopi}{0}%
+  \setcounter{coulxlopcoul}{0}%
+  \ExtraitCouleurs%
+  \opsub[decimalsepsymbol={,},lineheight=1.75em,columnwidth=1.5em,voperator=bottom]{#2}{#3}%
+\foreach \i in {1,...,\thecoulxlop}{%
+    \stepcounter{coulxlopcoul}%
+        \ifnodedefined{CA\i}{%
+            \PfCentoureColor{CA\i}{CA\i}%
+            }{}
+  }%
+  \setcounter{coulxlopcoul}{0}%
+    \foreach \i in {1,...,\thecoulxlopa}{%
+    \stepcounter{coulxlopcoul}%
+        \ifnodedefined{CB\i}{%
+            \PfCentoureColor{CB\i}{CB\i}%
+            }{}
+          }%
+          \setcounter{coulxlopcoul}{0}%
+    \foreach \i in {1,...,\thecoulxlopd}{%
+    \stepcounter{coulxlopcoul}%
+        \ifnodedefined{CC\i}{%
+      \ifboolKV[ClesOperations]{Solution}{\PfCentoureColor{CC\i}{CC\i}}{\PfCentoureColorR{CC\i}{CC\i}}%
+      }{}
+  }%
 }%
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -4,8 +4,8 @@
 \newtoks\toklistePANombre%
 \def\UpdatetoksPANombre#1\nil{\addtotok\toklistePANombre{"#1",}}%
 
-\setKVdefault[ClesPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={Orange,Red,LightGray,Maroon,Purple,black,black,Plum,Orange,White,White},Unite=5mm}
-\defKV[ClesPixelArt]{ListeNombres=\setKV[ClesPixelArt]{Nombres}}
+\setKVdefault[ClesPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={Orange,Red,LightGray,Maroon,Purple,black,black,Plum,Orange,White,White},Unite=5mm,Geant=false,HauteurD=1,LargeurD=1,Complet=false,Numero=1,Separations=false}%
+\defKV[ClesPixelArt]{ListeNombres=\setKV[ClesPixelArt]{Nombres}}%
 
 \NewDocumentCommand\PixelArt{o m}{%
   \toklistePANombre{}%
@@ -16,7 +16,24 @@
   \setsepchar{,}%
   \readlist*\ListePANombre{\ListeAvantNombres}%
   \foreachitem\compteur\in\ListePANombre{\expandafter\UpdatetoksPANombre\compteur\nil}%
-  \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+  \ifboolKV[ClesPixelArt]{Geant}{%
+    % Découpe en hauteur : \fpeval{\useKV[ClesPixelArt]{Hauteur}/\useKV[ClesPixelArt]{HauteurD}}\\
+    % Découpe en largeur : \fpeval{\useKV[ClesPixelArt]{Largeur}/\useKV[ClesPixelArt]{LargeurD}-1}}\par
+    \ifboolKV[ClesPixelArt]{Complet}{%
+      \xintFor* ##1 in{\xintSeq{0}{\fpeval{\useKV[ClesPixelArt]{Hauteur}/\useKV[ClesPixelArt]{HauteurD}-1}}}\do{%
+        \xintFor* ##2 in{\xintSeq{0}{\fpeval{\useKV[ClesPixelArt]{Largeur}/\useKV[ClesPixelArt]{LargeurD}-1}}}\do{%
+          \fpeval{##1*\useKV[ClesPixelArt]{Hauteur}/\useKV[ClesPixelArt]{HauteurD}+##2} : \BuildPixelArtGeant{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}{##1}{##2}\\%
+        }%
+      }%
+    }{%
+      \quotient{\fpeval{\useKV[ClesPixelArt]{Numero}-1}}{\fpeval{\useKV[ClesPixelArt]{Hauteur}/\useKV[ClesPixelArt]{HauteurD}}}%
+      \modulo{\fpeval{\useKV[ClesPixelArt]{Numero}-1}}{\fpeval{\useKV[ClesPixelArt]{Hauteur}/\useKV[ClesPixelArt]{HauteurD}}}%
+%      quotient = \the\intquotient -- remainder = \the\remainder :
+      \BuildPixelArtGeant{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}{\the\intquotient}{\the\remainder}%
+    }%
+  }{%
+    \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+  }%
 }%
 
 \NewDocumentCommand\BuildPixelArt{m m m m}{%
@@ -25,10 +42,15 @@
   \begin{mplibcode}
     largeur:=\useKV[ClesPixelArt]{Largeur};
     hauteur:=\useKV[ClesPixelArt]{Hauteur};
+    largeurd:=\useKV[ClesPixelArt]{LargeurD};
+    hauteurd:=\useKV[ClesPixelArt]{HauteurD};
     Unite:=\useKV[ClesPixelArt]{Unite};
-    boolean Solution,Nombres;
+
+    boolean Solution,Nombres,Separations;
     Solution:=\useKV[ClesPixelArt]{Solution};
     Nombres:=\useKV[ClesPixelArt]{Nombres};
+    Separations:=\useKV[ClesPixelArt]{Separations};
+    
     string BaseLettres;
     BaseLettres=str #2;
     numeric EchelleScale;
@@ -84,6 +106,16 @@
     enddef;
     
     Lecturecsv("#1");
+    if Separations:
+    drawoptions(withcolor Purple);
+    for k=hauteur step -hauteurd until 0:
+    draw (Unite*(-1,k-0.5)--Unite*(largeur,k-0.5)) withpen pencircle scaled 1.25;
+    endfor;
+    for k=0 step largeurd until largeur:
+    draw (Unite*(k-0.5,hauteur+0.125)--Unite*(k-0.5,-0.875)) withpen pencircle scaled 1.25;
+    endfor;
+    drawoptions();
+    fi;
   \end{mplibcode}
   \else
   \begin{mpost}[mpsettings={largeur:=\useKV[ClesPixelArt]{Largeur}; hauteur:=\useKV[ClesPixelArt]{Hauteur}; Unite:=\useKV[ClesPixelArt]{Unite}; boolean Solution,Nombres; Solution:=\useKV[ClesPixelArt]{Solution}; Nombres:=\useKV[ClesPixelArt]{Nombres};}]
@@ -142,4 +174,82 @@
     Lecturecsv("#1");
   \end{mpost}
   \fi
+}
+
+\NewDocumentCommand\BuildPixelArtGeant{m m m m m m}{%
+  \ifluatex
+  \mplibforcehmode
+  \begin{mplibcode}
+    largeur:=\useKV[ClesPixelArt]{Largeur};
+    hauteur:=\useKV[ClesPixelArt]{Hauteur};
+    largeurd:=\useKV[ClesPixelArt]{LargeurD};
+    hauteurd:=\useKV[ClesPixelArt]{HauteurD};
+    
+    Unite:=\useKV[ClesPixelArt]{Unite};
+
+    boolean Solution,Nombres;
+    Solution:=\useKV[ClesPixelArt]{Solution};
+    Nombres:=\useKV[ClesPixelArt]{Nombres};
+    
+    string BaseLettres;
+    BaseLettres=str #2;
+
+    numeric EchelleScale;
+    EchelleScale=Unite/5mm;
+    
+    color ColorEntier[],ColFond;
+    n:=0;
+    for p_=#3:
+    n:=n+1;
+    ColorEntier[n]:=p_;
+    endfor;
+
+    string RetiensNombres[];
+    if Nombres:
+    n:=0;
+    for p_=#4:
+    n:=n+1;
+    RetiensNombres[n]=p_;
+    endfor;
+    fi;
+        
+    vardef Lecturecsv(expr nomfichier)=
+    % for h=hauteur-#5*hauteurd downto hauteur-(#5+1)*hauteurd:
+    for h=hauteur downto 1:
+    string p_;
+    p_=readfrom nomfichier;
+    l:=0;
+    if (h>hauteur-(#5+1)*hauteurd) and (h<hauteur-#5*hauteurd+1):
+    for p=2*#6*largeurd step 2 until 2*(#6+1)*largeurd-2:
+    l:=l+1;
+    if (substring(p,p+1) of p_)="-":
+    else:
+    if Nombres:
+    for m=0 upto (length BaseLettres-1):
+    if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+    label(TEX(RetiensNombres[m+1]) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+    fi;
+    endfor;
+    else:
+    label(TEX(substring(p,p+1) of p_) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+    fi;
+    if Solution:
+    for m=0 upto (length BaseLettres-1):
+    if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+    ColFond:=ColorEntier[m+1];
+    fi;
+    endfor;
+    if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi;
+    fi;
+    trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite);
+   fi;
+   endfor;
+   fi;
+    endfor;
+    closefrom nomfichier;
+    enddef;
+    
+    Lecturecsv("#1");
+  \end{mplibcode}
+  \fi
 }
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPythagore.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPythagore.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPythagore.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -284,7 +284,7 @@
       \NomA\NomC^2&=\ifboolKV[ClesPythagore]{EnchaineA}{\opexport{a1}{\Aun}\num{\Aun}}{\opmul*{A1}{A1}{a1}\opexport{a1}{\Aun}\num{\Aun}}+\ifboolKV[ClesPythagore]{EnchaineB}{\opexport{a2}{\Adeux}\num{\Adeux}}{\opmul*{A2}{A2}{a2}\opexport{a2}{\Adeux}\num{\Adeux}}\\
       \NomA\NomC^2&=\opadd*{a1}{a2}{a3}\opexport{a3}{\Atrois}\num{\Atrois}%\\
       \ifboolKV[ClesPythagore]{AvantRacine}{}{%
-         \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}}
+         \ifboolKV[ClesPythagore]{Entier}{}{\\\NomA\NomC&=\sqrt{\opexport{a3}{\Atrois}\num{\Atrois}}\ifboolKV[ClesPythagore]{Racine}{~\si{\PfCPythaUnit}}{}}
          \ifboolKV[ClesPythagore]{Racine}{}{\\\NomA\NomC&\IfStrEq{\ResultatApproche}{\ResultatAttendu}{=}{\approx}\opsqrt[maxdivstep=5]{a3}{a4}\opround{a4}{pres}{a4}\opunzero{a4}\opexport{a4}{\Aquatre}\SI{\Aquatre}{\PfCPythaUnit}}%\\
       }
     \end{align*}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -1313,12 +1313,12 @@
     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 maxx<pasx:
+%    maxx:=pasx+1;
+%    fi;
+%    if minx>-pasx:
+%    minx:=-pasx-1;
+%    fi;
     %
     if DemiDroite:
     minx:=0;

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -20,7 +20,7 @@
 % Pour les diags batons
 EpaisseurBatons=1,ListeCouleursB={a},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,AngleRotationAbscisse=0,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Depart=0,CouleurDefaut=black,Date=false,GrandNombrey=false,GrandNombrex=false,PasGrillex=1,PasGrilley=1,%
 % Pour les diags circulaires
-Rayon=3cm,AffichageAngle=false,AffichageDonnee=false,ListeCouleurs={white},Hachures=false,ListeHachures={60},LectureInverse=false,EcartHachures=0.25,EpaisseurHachures=1,Legende,LegendeVide=false,ACompleter=false,DebutAngle=0,%
+Rayon=3cm,AffichageAngle=false,AffichageDonnee=false,ListeCouleurs={white},Hachures=false,ListeHachures={60},LectureInverse=false,EcartHachures=0.25,EpaisseurHachures=1,Legende,LegendeVide=false,ACompleter=false,DebutAngle=0,%on utilisera également la clé CouleurDefaut
 %Pour les représentations
 Representation=false,%
 %Pour les barres horizontales
@@ -856,6 +856,8 @@
   Retour=false;
   ACompleter=\useKV[ClesStat]{ACompleter};
   DebutAngle=\useKV[ClesStat]{DebutAngle};
+  color CoulDefaut;
+  CoulDefaut=\useKV[ClesStat]{CouleurDefaut};
   % 
   pair A[],O,B[],C[],D[];
   O=(0,0);
@@ -965,7 +967,12 @@
     n:=0;
     for p_=#3:
     n:=n+1;
+    % Col[n]=p_;
+    if color p_:
     Col[n]=p_;
+    else:
+    Col[n]=CoulDefaut;
+    fi;
     endfor;
     % on r\'ecup\`ere les angles d'hachures
     numeric anglehach[];

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -175,10 +175,10 @@
     % #4 point sur le segment #1#2
     % #5 point sur le segment #1#3
   \ifluatex
-  \mplibcodeinherit{enable}
+%  \mplibcodeinherit{enable}
   \mplibforcehmode
   \begin{mplibcode}
-        defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
+    defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
     u:=\useKV[ClesThales]{Echelle};
     pair A,B,C,M,N,O;%
     %On place les points A,B,C sur le cercle de mani\`ere \`a faciliter la rotation de la figure
@@ -213,7 +213,7 @@
     fill (fullcircle scaled 0.75mm) shifted (cotes1 intersectionpoint cotes4);
     fill (fullcircle scaled 0.75mm) shifted (cotes3 intersectionpoint cotes4);
   \end{mplibcode}
-  \mplibcodeinherit{disable}
+%  \mplibcodeinherit{disable}
   \else
   \begin{mpost}[mpsettings={u:=\useKV[ClesThales]{Echelle};}]
     pair A,B,C,M,N,O;%
@@ -261,7 +261,7 @@
     % #5 point sur la droite #1#3
   \ifluatex
   \mplibforcehmode
-  \mplibcodeinherit{enable}
+%  \mplibcodeinherit{enable}
   \begin{mplibcode}
         defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
     u:=\useKV[ClesThales]{Echelle};
@@ -343,7 +343,7 @@
     label(btex $//$ etex ,K);
     drawoptions();
   \end{mplibcode}
-  \mplibcodeinherit{disable}
+%  \mplibcodeinherit{disable}
   \else
   \begin{mpost}[mpsettings={u:=\useKV[ClesThales]{Echelle};boolean CouleursNum,CouleursDen;
     CouleursNum=\useKV[ClesThales]{CouleursNum};
@@ -435,7 +435,7 @@
     % #5 point sur la droite #1#3
   \ifluatex
   \mplibforcehmode
-  \mplibcodeinherit{enable}
+%  \mplibcodeinherit{enable}
   \begin{mplibcode}
     defaultcolormodel := \useKV[ClesThales]{ModeleCouleur};
     u:=\useKV[ClesThales]{Echelle};
@@ -479,7 +479,7 @@
     fill (fullcircle scaled 0.75mm) shifted (cotes1 intersectionpoint cotes2);
     fill (fullcircle scaled 0.75mm) shifted (cotes3 intersectionpoint cotes2);
   \end{mplibcode}
-  \mplibcodeinherit{disable}
+%  \mplibcodeinherit{disable}
   \else
   \begin{mpost}[mpsettings={u:=\useKV[ClesThales]{Echelle};}]
     pair A,B,C,M,N,O;%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrigonometrie.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrigonometrie.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrigonometrie.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -209,7 +209,7 @@
   % #6 hyp
   % #7 angle de rotation
   \ifluatex
-  \mplibcodeinherit{enable}
+%  \mplibcodeinherit{enable}
    \mplibforcehmode
    \begin{mplibcode}
      defaultcolormodel := \useKV[ClesTrigo]{ModeleCouleur};
@@ -278,7 +278,7 @@
   fi;
   fi;
 \end{mplibcode}
-\mplibcodeinherit{disable}
+%\mplibcodeinherit{disable}
   \else
   \begin{mpost}[mpsettings={u:=\useKV[ClesTrigo]{Echelle};}]
       u:=1cm;

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrio.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrio.tex	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrio.tex	2024-04-20 19:26:56 UTC (rev 71018)
@@ -1,7 +1,7 @@
 \newlength\PfCTrioHauteur%
 \newcounter{PfCTrioLettre}%
 
-\setKVdefault[Trio]{Largeur=15pt,Graines=false,Repere=false,Cibles=false,Ligne=1,Colonne=1,Vide=false,VideRepere=false,Relatifs=false,Ecole=false,Horizontal=false,Vertical=false,DiagonaleM=false,DiagonaleD=false,NonAlea=false,NbSolutions=false}%
+\setKVdefault[Trio]{Largeur=15pt,Graines=false,Repere=false,Cibles=false,Ligne=1,Colonne=1,Vide=false,VideRepere=false,Relatifs=false,Ecole=false,Horizontal=false,Vertical=false,DiagonaleM=false,DiagonaleD=false,NonAlea=false,NbSolutions=false,IntroRelatifs=false}%
 \defKV[Trio]{Graine=\setKV[Trio]{Graines}}%
 \defKV[Trio]{Cible=\setKV[Trio]{Cibles}}%
 \defKV[Trio]{Liste=\setKV[Trio]{NonAlea}}%
@@ -20,18 +20,29 @@
 }%
 
 \NewDocumentCommand\TrioTestCible{O{\useKV[Trio]{Cible}}mmm}{%
-  \xintifboolexpr{%
-    \fpeval{#2*#3+#4}==#1%
-    || \fpeval{#2*#3-#4}==#1%
-    || \fpeval{#3*#4+#2}==#1%
-    || \fpeval{#3*#4-#2}==#1%
-    || \fpeval{#4*#2+#3}==#1%
-    || \fpeval{#4*#2-#3}==#1%
-    % ajout pour une cible négative
-    || \fpeval{#3-#4*#2}==#1%
-    || \fpeval{#4-#2*#3}==#1%
-    || \fpeval{#2-#3*#4}==#1%
-  }{\xdef\PfCRetourTestCible{1}}{\xdef\PfCRetourTestCible{0}}%
+  \ifboolKV[Trio]{IntroRelatifs}{%
+    \xintifboolexpr{%
+      \fpeval{#2*#3+#4}==#1%
+      || \fpeval{#2*#3-#4}==#1%
+      || \fpeval{#3*#4+#2}==#1%
+      || \fpeval{#3*#4-#2}==#1%
+      || \fpeval{#4*#2+#3}==#1%
+      || \fpeval{#4*#2-#3}==#1%
+      % ajout pour une cible négative
+      || \fpeval{#3-#4*#2}==#1%
+      || \fpeval{#4-#2*#3}==#1%
+      || \fpeval{#2-#3*#4}==#1%
+    }{\xdef\PfCRetourTestCible{1}}{\xdef\PfCRetourTestCible{0}}%
+  }{%
+    \xintifboolexpr{%
+      \fpeval{#2*#3+#4}==#1%
+      || \fpeval{#2*#3-#4}==#1%
+      || \fpeval{#3*#4+#2}==#1%
+      || \fpeval{#3*#4-#2}==#1%
+      || \fpeval{#4*#2+#3}==#1%
+      || \fpeval{#4*#2-#3}==#1%
+    }{\xdef\PfCRetourTestCible{1}}{\xdef\PfCRetourTestCible{0}}%
+  }%
 }%
 
 \NewDocumentCommand\Trio{o}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-04-20 19:26:32 UTC (rev 71017)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-04-20 19:26:56 UTC (rev 71018)
@@ -2,9 +2,9 @@
 % licence    : Released under the LaTeX Project Public License v1.3c
 % or later, see http://www.latex-project.org/lppl.txtf
 \NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2024/03/24}%
+\def\filedate{2024/04/20}%
 \let\PfCfiledate\filedate%
-\def\fileversion{0.99-A-b}%
+\def\fileversion{0.99-A-c}%
 \let\PfCfileversion\fileversion%
 \ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
 
@@ -39,7 +39,7 @@
 % mathématiques
 \RequirePackage{siunitx}%
 \sisetup{%
-  locale=FR,%mode = match,
+  locale=FR,mode = match,
   propagate-math-font = true,%
   reset-math-version = false, reset-text-family = false,%
   reset-text-series = false, reset-text-shape = false,%
@@ -326,12 +326,40 @@
   \IfNoValueTF{#1}{\Dotfill}{\makebox[#1]{\Dotfill}}%
 }%
 
+%\NewDocumentCommand\Lignespointilles{m}{%
+%  \xintifboolexpr{\fpeval{#1}>1}{%
+%    \xintFor* ##1 in {\xintSeq {1}{\fpeval{#1}}}\do{%
+%      \pointilles\par%
+%    }%
+%  }{}%
+%}%
+
+\NewDocumentCommand\PfCNbLignesRestantes{}{%
+  \edef\measurepage{\dimexpr\pagegoal-\pagetotal\relax}%
+  \xintifboolexpr{\fpeval{\the\measurepage}>\fpeval{\the\textheight}}{
+%    Toto
+     \edef\measurepage{\dimexpr\textheight\relax}
+    }{}
+  \xdef\PfCResteLignes{\fpeval{trunc((\the\measurepage)/(\baselineskip),0)}}%
+}%
+
+\NewDocumentCommand\PfCLignesFinales{}{%
+  \PfCNbLignesRestantes%
+  \xintFor* ##1 in {\xintSeq {1}{\PfCResteLignes}}\do{%
+    \pointilles\par%
+  }%
+}%
+
 \NewDocumentCommand\Lignespointilles{m}{%
-  \xintifboolexpr{\fpeval{#1}>1}{%
-    \xintFor* ##1 in {\xintSeq {1}{\fpeval{#1}}}\do{%
-      \pointilles\par%
-    }%
-  }{}%
+  \ifx\bla#1\bla%
+    \par\PfCLignesFinales%
+  \else%
+    \xintifboolexpr{\fpeval{#1}>1}{%
+      \xintFor* ##1 in {\xintSeq {1}{#1}}\do{%
+        \pointilles\par%
+      }%
+    }{}%
+  \fi
 }%
 
 %https://tex.stackexchange.com/questions/128991/frac-or-inference-rule-with-dotted-line
@@ -759,6 +787,7 @@
 \def\PfCSymbolTimes{\times}%
 \def\PfCSymbolDiv{\div}%
 
+\input{PfCAssemblagesSolides}
 \input{PfCTicketCaisse}
 \input{PfCRecyclage}
 \input{PfCDontCountDots}



More information about the tex-live-commits mailing list.