texlive[72129] Master/texmf-dist: profcollege (28aug24)

commits+karl at tug.org commits+karl at tug.org
Wed Aug 28 23:07:19 CEST 2024


Revision: 72129
          https://tug.org/svn/texlive?view=revision&revision=72129
Author:   karl
Date:     2024-08-28 23:07:18 +0200 (Wed, 28 Aug 2024)
Log Message:
-----------
profcollege (28aug24)

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/PfCGeometrie.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
    trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCAllumettes.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreCalcul.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreChiffre.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutomatismes.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutonomie.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarreNiveaux.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarresCalculs.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCBillard.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonSortie.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCAN.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsFractions.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalisson.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesJeux.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesMentales.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCible.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCColorilude.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCryptarithme.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecDeci.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecompFracDeci.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiTables.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinGradue.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinerRatio.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDiagrammeRadar.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDistributivite.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDobble.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDomino.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDontCountDots.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcrireunQCM.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureLettres.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureUnites.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCEngrenagesBase.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnigmeAire.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnquete.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCEratosthene.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFicheMemo.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFonctionAffine.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionAireCarre.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFrise.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFubuki.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFutoshiki.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrades.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrimuku.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCHiddenMessage.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCHorloge.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeton.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeuRangement.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakurasu.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheJeu.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheNombre.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMentalo.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMidpoint.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCModeleBarre.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMosaique.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCodes.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCroises.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsEmpiles.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulArt.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJal.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulPiecesPuzzle.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCNombreAstral.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCNonogramme.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumberHive.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumerationsAnciennes.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPapiers.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPatronPaves.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPattern.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPavage.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPourcentage.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbaFrequence.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbabilites.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCProgrammeCalcul.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPropor.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCProprietesDroites.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuissanceQuatre.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuzzleSommePyramide.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyraVoca.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyramideCalculs.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCPythagore.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsFlash.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsRelier.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuiSuisJe.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRLE.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRangementNombres.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRapido.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRappelsFormules.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRecyclage.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresentationGraphique.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterEntier.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterTableur.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCReseauxSociaux.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCResoudreEquation.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCScratch.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCShikaku.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCSimplifierFraction.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCSolides.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCSommeAngles.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCSquaro.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauxUnites.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTablesOperations.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTectonic.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTicketCaisse.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTortueBase.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/PfCTriominos.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCUrneProba.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCVisualisationMulDeci.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCYohaku.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/metapost/profcollege/PfCSketch.mp
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsDetailles.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauDoubleEntree.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/PfCGeometrie.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCGeometrie.mp	2024-08-28 21:07:18 UTC (rev 72129)
@@ -526,6 +526,8 @@
 vardef marque_para(expr dd,ee,pa)=
   save im;
   picture im;
+  string totem;
+  totem="//";
   pair kk,ll,mn,mo;
   kk=point(pa*length dd) of dd;
   ll=projection(kk,point(0.25*length ee) of ee,point(0.5*length ee) of ee);
@@ -534,7 +536,8 @@
   im=image(
     drawarrow mo--kk;
     drawarrow symetrie(mo,mn)--ll;
-    label(btex // etex,mn);
+%    label(btex $//$ etex,mn);
+    label(totem,mn);
     );
   im
 enddef;
@@ -551,13 +554,14 @@
       drawarrow (mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm);
     drawarrow symetrie((mn{dir(210+angle(mn-mo))}..{dir(150+angle(mn-mo))}kk) cutbefore cercles(mn,3mm),mn);
     trace cercles(mn,3mm);
-    for p_=totem:
-    if p_="":
-      label(btex // etex ,mn);
-    else:
-      label(btex ? etex,mn);
-    fi;
-    endfor;
+%    for p_=totem:
+%    if p_="":
+%      label(btex $//$ etex ,mn);
+%    else:
+%      label(btex ? etex,mn);
+    label(totem,mn);
+%    fi;
+%    endfor;
     );
   im
 enddef;

Modified: trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCScratch.mp	2024-08-28 21:07:18 UTC (rev 72129)
@@ -2596,12 +2596,11 @@
   picture Dem,texto;
   if string nbpas:
     texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
-    ColBloc:=CapteurTrois;
-    Dem=Affichage(texto);
   else:
-    message("La commande -- Demander -- admet un argument de type string.");
-    Dem=nullpicture;
+    texto=ColleBoxNew("demander",nbpas,"et attendre");
   fi;
+  ColBloc:=CapteurTrois;
+  Dem=Affichage(texto);
   Dem
 enddef;
 

Modified: trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCScratchpdf.mp	2024-08-28 21:07:18 UTC (rev 72129)
@@ -2595,12 +2595,11 @@
   picture Dem,texto;
   if string nbpas:
     texto=ColleBoxNew("demander",OvalNb(nbpas),"et attendre");
-    ColBloc:=CapteurTrois;
-    Dem=Affichage(texto);
   else:
-    message("La commande -- Demander -- admet un argument de type string.");
-    Dem=nullpicture;
+    texto=ColleBoxNew("demander",nbpas,"et attendre");
   fi;
+  ColBloc:=CapteurTrois;
+  Dem=Affichage(texto);
   Dem
 enddef;
 

Added: trunk/Master/texmf-dist/metapost/profcollege/PfCSketch.mp
===================================================================
--- trunk/Master/texmf-dist/metapost/profcollege/PfCSketch.mp	                        (rev 0)
+++ trunk/Master/texmf-dist/metapost/profcollege/PfCSketch.mp	2024-08-28 21:07:18 UTC (rev 72129)
@@ -0,0 +1,195 @@
+%D'après https://tex.stackexchange.com/questions/39296/simulating-hand-drawn-lines
+
+let normaldraw = draw ;
+let normalfill = fill ;
+let normaldrawarrow = drawarrow ;
+let normaldbldrawarrow = drawdblarrow ;
+let normalarrowhead = normalarrowhead;
+
+path fullsquare;
+fullsquare := unitsquare shifted - center unitsquare ;
+
+%D The variable \type{sketch_amount} determines the amount of randomness in the
+%D drawing
+numeric sketch_amount; sketch_amount := 3;
+numeric old_sketch_amount;
+%D The macro \type{sketchdraw} randomized the path before drawing it. The 
+%D \type{expr} ... \type{text} trick is copied from the definition of 
+%D \type{drawarrow}
+
+def sketchdraw expr p =
+  do_sketchdraw(p if (path p): randomized sketch_amount fi)
+enddef;
+
+def do_sketchdraw(expr p) text t =
+    normaldraw p t ;
+enddef;
+
+%cp
+%%%%%%%%%%%%%%%%%%
+vardef sketcharrowhead expr p =
+  save q,e; path q; pair e;
+  e = point length p of p;
+  q = gobble(p shifted -e cutafter makepath(pencircle scaled 2ahlength))
+    cuttings;
+  ((q rotated .5ahangle & reverse q rotated -.5ahangle -- cycle)  shifted e) randomized (sketch_amount/3)
+enddef;
+
+path _apth;
+def sketchdrawarrow expr p = _apth:=p randomized sketch_amount; _sketchfinarr enddef;
+def sketchdrawdblarrow expr p = _apth:=p; _sketchfindarr enddef;
+
+def _sketchfinarr text t =
+  old_sketch_amount:=sketch_amount;
+  sketch_amount:=0;
+  draw _apth t;
+  sketch_amount:=old_sketch_amount;
+  filldraw sketcharrowhead _apth  t
+enddef;
+
+def _sketchfindarr text t =
+  old_sketch_amount:=sketch_amount;
+  sketch_amount:=0;
+  draw _apth t;
+    sketch_amount:=old_sketch_amount;
+  filldraw sketcharrowhead _apth withpen currentpen  t;
+  filldraw sketcharrowhead  reverse _apth  withpen currentpen  t
+enddef;
+%%%%%%%%%%%%%%%%%%
+
+%D The macro \type{sketchfill} randomizes the path before filling it.
+path _sketch_path_;
+
+def sketchfill expr p =
+  _sketch_path_ := p randomized sketch_amount;
+   do_sketchfill  
+enddef ;
+
+def do_sketchfill text t =
+    normalfill _sketch_path_ t ;
+enddef ;
+
+%D The macro \type{sketchypaths} is modeled after \type{visualizepaths} from
+%D \filename{mp-tool}.
+
+def sketchypaths =
+  let draw = sketchdraw ;
+  let fill = sketchfill ;
+  %cp
+  let drawarrow = sketchdrawarrow ;
+  let drawdblarrow = sketchdrawdblarrow ;
+  let arrowhead = sketcharrowhead ;
+  %fin cp
+enddef ;
+
+%cp
+def normalpaths =
+  let draw = normaldraw ;
+  let fill = normalfill ;
+  let drawarrow = normaldrawarrow ;
+  let drawdblarrow = normaldrawdblarrow ;
+  let arrowhead = normalarrowhead;
+enddef ;
+ %fincp
+
+%By metafun
+vardef mfun_randomized_picture(expr p,s)(text rnd) =
+    save currentpicture ;
+    picture currentpicture ;
+    currentpicture := nullpicture ;
+    for i within p :
+        addto currentpicture
+            if stroked i :
+                doublepath pathpart i rnd s
+                dashed dashpart i
+                withpen penpart i
+                withcolor colorpart i
+                withprescript prescriptpart i
+                withpostscript postscriptpart i
+            elseif filled i :
+                contour pathpart i rnd s
+                withpen penpart i
+                withcolor colorpart i
+                withprescript prescriptpart i
+                withpostscript postscriptpart i
+            else :
+                also i
+            fi
+        ;
+    endfor ;
+    currentpicture
+enddef ;
+
+primarydef p randomized s = (
+    if path p :
+      for i=0 upto length(p)-1 :
+	((point       i    of p) randomshifted s) .. controls
+	  ((postcontrol i    of p) randomshifted s) and
+	  ((precontrol (i+1) of p) randomshifted s) ..
+      endfor
+      if cycle p :
+	cycle
+      else :
+	((point length(p) of p) randomshifted s)
+      fi
+    elseif pair p :
+      p randomshifted s
+    elseif cmykcolor p :
+      if cmykcolor s :
+	((uniformdeviate cyanpart    s) * cyanpart    p,
+            (uniformdeviate magentapart s) * magentapart p,
+            (uniformdeviate yellowpart  s) * yellowpart  p,
+            (uniformdeviate blackpart   s) * blackpart   p)
+      elseif pair s :
+	((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+      else :
+	((uniformdeviate s) * p)
+      fi
+    elseif rgbcolor p :
+      if rgbcolor s :
+	((uniformdeviate redpart   s) * redpart   p,
+            (uniformdeviate greenpart s) * greenpart p,
+            (uniformdeviate bluepart  s) * bluepart  p)
+      elseif pair s :
+	((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+      else :
+	((uniformdeviate s) * p)
+      fi
+    elseif color p :
+      if color s :
+	((uniformdeviate greypart s) * greypart p)
+      elseif pair s :
+	((xpart s + (uniformdeviate (ypart s - xpart s))) * p)
+      else :
+	((uniformdeviate s) * p)
+      fi
+    elseif string p :
+      (resolvedcolor(p)) randomized s
+    elseif picture p :
+      mfun_randomized_picture(p,s)(randomized)
+    else :
+      % p - s/2 + uniformdeviate s % would have been better but we want to be positive
+      p + uniformdeviate s
+    fi
+    )
+enddef ;
+  
+primarydef p randomshifted s =
+  begingroup ;
+    save ss ; pair ss ;
+    ss := paired(s) ;
+    p shifted (-.5xpart ss + uniformdeviate xpart ss,-.5ypart ss + uniformdeviate ypart ss)
+  endgroup
+enddef ;
+
+def resolvedcolor(expr s) =
+    .5white
+enddef ;
+
+vardef paired primary d =
+  if pair d : d else : (d,d) fi
+enddef ;
+
+  extra_endfig := "picture retiens; retiens=currentpicture; draw (retiens randomized 1) withpen pencircle scaled 0.5 withcolor 0.25white;" & extra_endfig;
+
+endinput


Property changes on: trunk/Master/texmf-dist/metapost/profcollege/PfCSketch.mp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCAllumettes.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCAllumettes.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCAllumettes.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Allumettes
 %%%
+\def\filedateAllu{2024/08/04}%
+\def\fileversionAllu{0.1}%
+\message{-- \filedateAllu\space v\fileversionAllu}
+%
 \setKVdefault[Allumettes]{Impression=false,Echelles=false}%
 \defKV[Allumettes]{Echelle=\setKV[Allumettes]{Echelles}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreCalcul.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreCalcul.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreCalcul.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,9 @@
 %%%
 % Arbre de calculs
 %%%
+\def\filedateArbreC{2024/08/04}%
+\def\fileversionArbreC{0.1}%
+\message{-- \filedateArbreC\space v\fileversionArbreC}%
 \newtoks\toklistearbre%
 \newtoks\toklistearbrefractions%
 \newtoks\toklistearbreexpressions%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreChiffre.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreChiffre.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCArbreChiffre.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -2,6 +2,9 @@
 % ArbreChiffre
 %%%
 % https://tex.stackexchange.com/questions/112975/how-to-print-the-permutation-of-s-u-v-a-t-with-latex
+\def\filedateArbreCh{2024/08/04}%
+\def\fileversionArbreCh{0.1}%
+\message{-- \filedateArbreCh\space v\fileversionArbreCh}%
 
 \def\recurse#1#2#3#4\endmarker{%
   \dopermute{#1#3}#2#4\endmarker

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCAssemblagesSolides.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Assemblages solides
 %%%
+\def\filedateAssemblageS{2024/08/04}%
+\def\fileversionAssemblageS{0.1}%
+\message{-- \filedateAssemblageS\space v\fileversionAssemblageS}%
+%
 \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}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutomatismes.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutomatismes.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutomatismes.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%% 
 % Automatismes
 %%%
+\def\filedateAutomatismes{2024/08/04}%
+\def\fileversionAutomatismes{0.1}%
+\message{-- \filedateAutomatismes\space v\fileversionAutomatismes}%
+%
 \NewDocumentCommand\ChoixAleaMixold{mmmm}{%
   \ChoixAlea{1}{2}{\Autograine}%
   \ifnum\Autograine=1\relax%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutonomie.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutonomie.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCAutonomie.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,4 +1,10 @@
-%%% Autonomie %%%
+%%%
+%Autonomie
+%%%
+\def\filedateAutonomie{2024/08/04}%
+\def\fileversionAutonomie{0.1}%
+\message{-- \filedateAutonomie\space v\fileversionAutonomie}%
+%
 \setKVdefault[Autonomie]{AfficheMarge=false,TitreEnigme=Enigme,TitreAtoi=\`A toi,Enigme=false,TexteCorrection=\bfseries Correction,ARemplir=false,Deux=false,Landscape=false}%
 
 \newcommand\Autonomie[3][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarreNiveaux.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarreNiveaux.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarreNiveaux.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Barres de niveaux
 %%%
+\def\filedateBarreNiveaux{2024/08/04}%
+\def\fileversionBarreNiveaux{0.1}%
+\message{-- \filedateBarreNiveaux\space v\fileversionBarreNiveaux}%
+%
 \setKVdefault[ClesBarre]{Niveau=false,LimiteI=25,LimiteF=50,LimiteS=75,TexteOrigine=0,TexteReference=100,CouleurGraduation=white,CouleurFond=gray!50,CouleurBarre=black,Graduation=false,Nom=D\'efaut,Pas=10,CouleurI=red,CouleurF=orange,CouleurS=yellow,CouleurM=green}
 
 \newlength{\barrewidth}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarresCalculs.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarresCalculs.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCBarresCalculs.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,9 @@
 %%%
 % Barres de calculs
 %%%
+\def\filedateBarresCalculs{2024/08/04}%
+\def\fileversionBarresCalculs{0.1}%
+\message{-- \filedateBarresCalculs\space v\fileversionBarresCalculs}%
 \setKVdefault[SuiteBarre]{Litteral=false,Perso=false,Decimaux=false}
 
 \NewDocumentCommand\BarresCalculs{o m m}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCBillard.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCBillard.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCBillard.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Billard
 %%%
+\def\filedateBillard{2024/08/04}%
+\def\fileversionBillard{0.1}%
+\message{-- \filedateBillard\space v\fileversionBillard}%
+%
 \newtoks\tokPfCMotBillard{}%
 
 \def\UpdateTokBillard#1\nil{\addtotok\tokPfCMotBillard{"#1"}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonSortie.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonSortie.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonSortie.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Bon de sortie
 %%%
+\def\filedateBonSortie{2024/08/04}%
+\def\fileversionBonSortie{0.1}%
+\message{-- \filedateBonSortie\space v\fileversionBonSortie}%
+%
 \newcommand\BonSortieBandeau{%
   Nom : \hfill Date : \hspace*{3cm}
 }

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,9 +1,13 @@
 %%%
 % Bonbon
 %%%
+\def\filedateBonbon{2024/08/04}%
+\def\fileversionBonbon{0.1}%
+\message{-- \filedateBonbon\space v\fileversionBonbon}%
+%
 \setKVdefault[Bonbon]{CouleurUn=red,Bicolore=false,Echelle=1}%
 \defKV[Bonbon]{CouleurDeux=\setKV[Bonbon]{Bicolore}}%
-
+%
 \NewDocumentCommand\Bonbon{o}{%
   \useKVdefault[Bonbon]%
   \setKV[Bonbon]{#1}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCAN.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCAN.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCAN.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% CAN
+%
+\def\filedateCAN{2024/08/04}%
+\def\fileversionCAN{0.1}%
+\message{-- \filedateCAN\space v\fileversionCAN}%
+%
 % Gestion de l'aléatoire (pour la CAN)
 \newcommand\ChoixAlea[4][]{%
   \ifx\bla#1\bla%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,9 @@
 %%%
 % Calculatrice
 %%%
+\def\filedateCalculatrice{2024/08/04}%
+\def\fileversionCalculatrice{0.1}%
+\message{-- \filedateCalculatrice\space v\fileversionCalculatrice}%
 %https://tex.stackexchange.com/questions/290321/mimicking-a-calculator-inputs-and-screen
 \definecolor{lightorange}{rgb}{0.9,0.4,0}%
 \definecolor{lightestorange}{rgb}{1,0.8,0.5}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Calculs Croises
 %%%
+\def\filedateCalculsCroises{2024/08/04}%
+\def\fileversionCalculsCroises{0.1}%
+\message{-- \filedateCalculsCroises\space v\fileversionCalculsCroises}%
+%
 \setKVdefault[CalculsCroises]{Largeur=20pt,Solution=false,Inverse=false,Creation=false,Graines=false,Vide=false,Couleur=LightGray,Negatifs=false,Aide=false,CouleurS=blue}
 \defKV[CalculsCroises]{Graine=\setKV[CalculsCroises]{Graines}}%
 \defKV[CalculsCroises]{ListeNombres=\setKV[CalculsCroises]{Aide}}%

Added: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsDetailles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsDetailles.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsDetailles.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -0,0 +1,147 @@
+%%%
+% Calculs détaillés
+%%%
+\def\filedateCDetailles{2024/08/24}%
+\def\fileversionCDetailles{0.1}%
+\message{-- \filedateCDetailles\space v\fileversionCDetailles}
+%
+\setKVdefault[CalculAuto]{Under=false,OverB=false,OverC=false,UnderB=false,UnderC=false,Cadre=false,Fluo=false,Evidence=false,Lettres={A,B,C,D,E},Couleur=Purple}
+
+\newcounter{PfCNbCalculs}
+\newcounter{PfCNbSousCalculs}
+\newcounter{PfCNbMarque}
+
+\NewDocumentCommand\PfCMarquePriorite{m}{%
+  \ifboolKV[CalculAuto]{OverB}{%
+    \Overbrace{#1}%
+  }{%
+    \ifboolKV[CalculAuto]{OverC}{%
+      \Overcrochet{#1}%
+    }{%
+      \ifboolKV[CalculAuto]{UnderC}{%
+        \Undercrochet{#1}%
+      }{%
+        \ifboolKV[CalculAuto]{UnderB}{%
+          \Underbrace{#1}%
+        }{%
+          \ifboolKV[CalculAuto]{Cadre}{%
+            \PfCFbox{CCalculAuto}{#1}
+          }{%
+            \ifboolKV[CalculAuto]{Fluo}{%
+              \Surligner[CCalculAuto]{#1}
+            }{%
+              \ifboolKV[CalculAuto]{Under}{%
+                \mathunderline{CCalculAuto}{#1}%
+              }{%
+                \ifboolKV[CalculAuto]{Evidence}{%
+                  \mathcolor{CCalculAuto}{#1}%
+                }{%
+                  #1%
+                }%
+              }%
+            }%
+          }%
+        }%
+      }%
+    }%
+  }%
+}%
+          
+\NewDocumentCommand\CalculDetaille{om}{%
+  \useKVdefault[CalculAuto]%
+  \setKV[CalculAuto]{#1}%
+  \colorlet{CCalculAuto}{\useKV[CalculAuto]{Couleur}}%
+  \setcounter{PfCNbCalculs}{0}%
+  \setsepchar{§}\ignoreemptyitems%
+  \readlist*\ListeNombresCalculs{#2}%
+  \reademptyitems%
+  \xdef\PfCFooListeLettres{\useKV[CalculAuto]{Lettres}}%
+  \setsepchar{,}\ignoreemptyitems%
+  \readlist*\ListeLettres{\PfCFooListeLettres}%
+  \reademptyitems%
+  \xdef\PfCNbMaxLignesCalculs{0}%
+  \foreachitem\compteur\in\ListeNombresCalculs{%
+    \stepcounter{PfCNbCalculs}%
+    \itemtomacro\ListeNombresCalculs[\compteurcnt]\Titi%
+    \setsepchar{,}\ignoreemptyitems%
+    \readlist*\ListeNombresCalculsDetails{\Titi}%
+    \reademptyitems%
+    \expandafter\xdef\csname NbLignesCalculs\Alph{PfCNbCalculs}\endcsname{\ListeNombresCalculsDetailslen}%
+    \xdef\PfCNbMaxLignesCalculs{\fpeval{max(\PfCNbMaxLignesCalculs,\ListeNombresCalculsDetailslen)}}%
+    \setcounter{PfCNbSousCalculs}{0}%
+    \foreachitem\compteura\in\ListeNombresCalculsDetails{%
+      \stepcounter{PfCNbSousCalculs}%
+      \StrSubstitute{\compteura}{*}{\times}[\PfCCalculAutoUn]%
+      \StrSubstitute{\PfCCalculAutoUn}{:}{\div}[\PfCCalculAutoDeux]%
+      \StrCount{\PfCCalculAutoDeux}{<}[\NbInf]%
+      \ifnum\fpeval{\NbInf}=0\relax%
+        \expandafter\xdef\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname{1}%
+        \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}A\endcsname{\PfCCalculAutoDeux}%
+      \else%
+        \xdef\PfCExpressionDepart{\PfCCalculAutoDeux}%
+        \setcounter{PfCNbMarque}{0}%
+        \foreach\xx in{1,...,\NbInf}{%
+          \StrBefore{\PfCExpressionDepart}{<}[\PfCDevant]%
+          \StrBetween{\PfCExpressionDepart}{<}{>}[\PfCAEncadrer]%
+          \stepcounter{PfCNbMarque}%
+          \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{\PfCDevant}%
+          \stepcounter{PfCNbMarque}%
+          \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{<\PfCAEncadrer}%
+           \StrBehind{\PfCExpressionDepart}{>}[\PfCExpressionDepartA]%
+           \xdef\PfCExpressionDepart{\PfCExpressionDepartA}%
+         }%
+         \stepcounter{PfCNbMarque}%
+         \expandafter\xdef\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname{\PfCExpressionDepart}%
+         \expandafter\xdef\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname{\thePfCNbMarque}%
+      \fi
+    }%
+  }%
+  %%%%%%%%%
+  \setcounter{PfCNbSousCalculs}{0}%
+  \[%
+    \begin{aligned}
+      \xintFor* ##2 in{\xintSeq{1}{\PfCNbMaxLignesCalculs}}\do{%
+      \stepcounter{PfCNbSousCalculs}%
+      \setcounter{PfCNbCalculs}{0}%
+      \xintFor* ##1 in{\xintSeq{1}{\ListeNombresCalculslen}}\do{%
+      \stepcounter{PfCNbCalculs}%
+      \ifnum##2>\fpeval{\csname NbLignesCalculs\Alph{PfCNbCalculs}\endcsname}\relax%
+      \uppercase{&}
+      \else
+                   \ListeLettres[\thePfCNbCalculs]\uppercase{&}=\xdef\Tata{\csname NbMarqueLigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\endcsname}\setcounter{PfCNbMarque}{0}\xintFor*##3 in{\xintSeq{1}{\Tata}}\do{%
+                                                               \stepcounter{PfCNbMarque}
+                                                               \xdef\Toto{\csname LigneCalcul\Alph{PfCNbCalculs}\Alph{PfCNbSousCalculs}\Alph{PfCNbMarque}\endcsname}\StrChar{\Toto}{1}[\PfCATester]
+                                                               \IfStrEq{\PfCATester}{<}{\StrBehind{\Toto}{<}[\PfCAEncadrer]\PfCMarquePriorite{\PfCAEncadrer}}{\Toto}
+                                                               }
+      \fi\xintifForLast{&}{}
+      }\\
+      }
+    \end{aligned}
+  \]
+}%
+
+\def\Underbrace#1{%
+  \ifx#1\bla\bla\else\color{CCalculAuto}\underbrace{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Undercrochet#1{%
+  \ifx#1\bla\bla\else\color{CCalculAuto}\underbracket{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Overbrace#1{%
+  \ifx#1\bla\bla\else\color{CCalculAuto}\overbrace{{\color{black}#1}}\color{black}\fi%
+}%
+\def\Overcrochet#1{%
+  \ifx#1\bla\bla\else\color{CCalculAuto}\overbracket{{\color{black}#1}}\color{black}\fi%
+}%
+\def\PfCFbox#1#2{%
+  \ifx#2\bla\bla\else\setlength{\fboxrule}{1pt}\fcolorbox{#1}{white}{$\displaystyle#2$}\fi%
+}%
+
+\NewDocumentCommand{\Surligner}{O{yellow}m}{%
+  \ifx#2\bla\bla\else
+    \ifmmode%
+      \colorbox{#1}{$\displaystyle#2$}%
+    \else%
+      \colorbox{#1}{#2}%
+    \fi%
+  \fi
+}%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsDetailles.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsFractions.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsFractions.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsFractions.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Calculs fractions
+%
+\def\filedateCalculsFractions{2024/08/04}%
+\def\fileversionCalculsFractions{0.1}%
+\message{-- \filedateCalculsFractions\space v\fileversionCalculsFractions}%
+%
 \setKVdefault[CalculsFractions]{Couleurs=false,Negatif=false,Seul=false}%
 \defKV[CalculsFractions]{Couleur=\setKV[CalculsFractions]{Couleurs}\setKV[ClesSimplification]{Couleur=#1}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalisson.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalisson.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalisson.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Calisson
 %%%
+\def\filedateCalisson{2024/08/04}%
+\def\fileversionCalisson{0.1}%
+\message{-- \filedateCalisson\space v\fileversionCalisson}%
+%
 \setKVdefault[Calisson]{Taille=3,Solution=false,Rayon=5cm,Couleur=red,CouleurTrace=black}%
 
 \def\UpdatetoksCalissong#1\nil{\addtotok\tokcalissonlistetracesg{,"#1"}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesJeux.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesJeux.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesJeux.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Cards
 %%%
+\def\filedateCartesJeux{2024/08/04}%
+\def\fileversionCartesJeux{0.1}%
+\message{-- \filedateCartesJeux\space v\fileversionCartesJeux}%
+%
 \setKVdefault[Cards]{Formats=false,Largeur=165,Hauteur=250,HauteurTheme=40,Marge=12,Landscape=false,Couleur=Cornsilk,CouleurAr=Cornsilk,Theme=Th\'eor\`eme\\de
   Pythagore,ThemeSol=Solution,AfficheTheme=false,Trame=false,Jointes=false,TrameVisible=false,RayonArc=5pt,Titre=false,NomTitre=Jeu 1,Loop,JaiQuia=false,Eleve=false,BackgroundAv=false,BackgroundAr=false,%ImageAv=4813762.jpg,ImageAr=4813762.jpg,
   AffichageSolution=true,SolutionSeule=false,%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesMentales.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesMentales.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartesMentales.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Cartes Mentales
 %%%
+\def\filedateCarteMentale{2024/08/04}%
+\def\fileversionCarteMentale{0.1}%
+\message{-- \filedateCarteMentale\space v\fileversionCarteMentale}%
+%
 \setKVdefault[ClesMentales]{Nom={Bulle}, Largeur=5cm, Ancre={0,0},Pointilles=false,CTrace=black,CFond=white,Epaisseur=1pt,Rayon=1}%
 \newenvironment{Mind}{\begin{tikzpicture}}{\end{tikzpicture}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCartographie.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,11 @@
 %%%
 % Cartographie
 %%%
-\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,VillesSupI=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2023/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur=5,Boussole=false,Allegee=1,Maillage=false}
+\def\filedateCartographie{2024/08/04}%
+\def\fileversionCartographie{0.1}%
+\message{-- \filedateCartographie\space v\fileversionCartographie}%
+%
+\setKVdefault[Cartographie]{Echelle=1,Carte=false,All=false,Europe=false,Asie=false,Amsud=false,Amnord=false,Amcentre=false,Caraibes=false,Afrique=false,AfficheEchelle=false,PaysSeul=false,VillesSup=false,VillesSupI=false,Capitales=false,Impression=false,Fleuves=false,CouleurFond=ciel,Largeur=12,Hauteur=12,Arborescence="/usr/local/texlive/2024/texmf-dist/metapost/profcollege/",Projection=false,TypeProjection="mercator",CouleurPays=Cornsilk,Pasl=2,PasL=2,Codes=false,Epaisseur=2,ModeleCouleur=5,Boussole=false,Allegee=1,Maillage=false}
 \defKV[Cartographie]{EchelleCarte=\setKV[Cartographie]{Carte}}
 \defKV[Cartographie]{Pays=\setKV[Cartographie]{PaysSeul}}
 \defKV[Cartographie]{Villes=\setKV[Cartographie]{VillesSup}}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCible.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCible.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCible.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Cibles
 %%%
+\def\filedateCible{2024/08/04}%
+\def\fileversionCible{0.1}%
+\message{-- \filedateCible\space v\fileversionCible}%
+%
 \newtoks\toklisteciblea%
 
 \def\UpdatetoksCibleA#1\nil{\addtotok\toklisteciblea{"#1",}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Cible 4 opérations
+%%%
+\def\filedateCibleQOp{2024/08/04}%
+\def\fileversionCibleQOp{0.1}%
+\message{-- \filedateCibleQOp\space v\fileversionCibleQOp}%
+
 \newcount\anpcqo\newcount\bnpcqo\newcount\cnpcqo%
 
 \NewDocumentCommand\PfCCQODiviseurs{m}{%#1 : le nombre entier \`a tester

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCColorilude.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCColorilude.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCColorilude.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,4 +1,10 @@
-%%% Colorilude %%%
+%%%
+% Colorilude
+%%%
+\def\filedateColorilude{2024/08/04}%
+\def\fileversionColorilude{0.1}%
+\message{-- \filedateColorilude\space v\fileversionColorilude}%
+%
 \setKVdefault[Colorilude]{Largeur=10,Lignes=10,Legende=false,Coef=0.6,Solution=false,CartonReponse=false,Resultats=false}
 
 \newcommand\dispogpfc[3][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Le compte est bon
 %%%
+\def\filedateCompteBon{2024/08/04}%
+\def\fileversionCompteBon{0.1}%
+\message{-- \filedateCompteBon\space v\fileversionCompteBon}%
+%
 \setKVdefault[CompteBon]{NombreCalculs=5,NombrePlaques=4,Solution=false,Relatifs=false,Original=false,Graines=false,Plaques=6,CDot=false}
 \defKV[CompteBon]{Graine=\setKV[CompteBon]{Graines}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Conversion
+%%%
+\def\filedateConversion{2024/08/04}%
+\def\fileversionConversion{0.1}%
+\message{-- \filedateConversion\space v\fileversionConversion}%
+
 \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}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Criteres de divisibilite
 %%%
+\def\filedateCritere{2024/08/04}%
+\def\fileversionCritere{0.1}%
+\message{-- \filedateCritere\space v\fileversionCritere}%
+%
 \setKVdefault[Critere]{Div=2,Remarque=false,All=false,RemarqueAll=false}
 
 \NewDocumentCommand\Critere{om}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCryptarithme.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCryptarithme.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCryptarithme.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Cryptarithmes
 %%%
+\def\filedateCrypta{2024/08/04}%
+\def\fileversionCrypta{0.1}%
+\message{-- \filedateCrypta\space v\fileversionCrypta}%
+%
 \setKVdefault[Crypta]{Solution=false,ListeLettres={A,B,C,D,E,F,G,H,I,J},Tableau=false}%
 \defKV[Crypta]{Indices=\setKV[Crypta]{Tableau}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecDeci.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecDeci.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecDeci.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Décomposition décimale
 %%
+\def\filedateDecDeci{2024/08/04}%
+\def\fileversionDecDeci{0.1}%
+\message{-- \filedateDecDeci\space v\fileversionDecDeci}%
+%
 \setKVdefault[DecompDeci]{Parentheses,Colore=false,CouleurU=Blue,CouleurD=Red,CouleurC=Green,Fleches=false,Details=false,ResultatSeul=false,SansMul=false}
 
 \newcounter{PfCNbDecDeci}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecompFracDeci.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecompFracDeci.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecompFracDeci.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,12 @@
 %%%
 % D\'ecomposition de fractions d\'ecimales
 %%%
-\setKVdefault[ClesFracDeci]{Complete=false,SansZero=false,Remediation=false,Longueur=1cm}
+\def\filedateDecompFracDeci{2024/08/13}%
+\def\fileversionDecompFracDeci{0.1a}%
+\message{-- \filedateDecompFracDeci\space v\fileversionDecompFracDeci}%
+%
+\setKVdefault[ClesFracDeci]{Complete=false,SansZero=false,Remediation=false,Longueur=1cm,Vides=false}%
+\defKV[ClesFracDeci]{Vide=\setKV[ClesFracDeci]{Remediation}\setKV[ClesFracDeci]{Vides}}%
 \newlength{\PfCLongueurP}%
 
 \newcommand\FractionDecimale[2][]{%
@@ -26,7 +31,7 @@
         \xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}%
         \xintFor* ##1 in {\xintSeq{1}{\LongueurPartieDecimale}}\do{%
           \StrMid{\PartieDecimaleFractionDeci}{##1}{##1}[\ChiffrePartieDecimale]%
-          \xintifForFirst{}{\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{+}}\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}%
+          \xintifForFirst{}{\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{+}}\xintifboolexpr{\ChiffrePartieDecimale == 0}{}{\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}}%
         }%
       }%
     }{%
@@ -38,7 +43,7 @@
             \StrGobbleLeft{\FractionDeciNum}{\fpeval{\LongueurPartieEntiere}}[\DecompositionFracDeciComplete]%
             % on affiche la partie décimale.
             \xintFor* ##1 in {\xintSeq{1}{\fpeval{\LongueurFracDeciNum-\LongueurPartieEntiere}}}\do{%
-              \xintifForFirst{}{+}\StrMid{\DecompositionFracDeciComplete}{##1}{##1}[\ChiffrePartieDecimale]\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**##1}}}%
+              \xintifForFirst{}{+}\StrMid{\DecompositionFracDeciComplete}{##1}{##1}[\ChiffrePartieDecimale]\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**##1}}}}%
             }%
           }%
         }{%
@@ -45,13 +50,13 @@
           \ensuremath{%
             \xintFor* ##1 in {\xintSeq{1}{\LongueurPartieDecimale}}\do{%
               \StrMid{\PartieDecimaleFractionDeci}{##1}{##1}[\ChiffrePartieDecimale]%
-              \xintifForFirst{}{+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}%
+              \xintifForFirst{}{+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\ChiffrePartieDecimale}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\fpeval{10**(\LongueurFracDeciDeno-1-\LongueurPartieDecimale+##1)}}}}%
             }%
           }%
         }%
       }{%
         \ensuremath{%
-          \xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieDecimaleFractionDeci}}}{\num{\FractionDeciDeno}}%
+          \xintifboolexpr{\PartieEntiereFractionDeci == 0}{}{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieEntiereFractionDeci}}+}\frac{\ifboolKV[ClesFracDeci]{Remediation}{\pointilles[\PfCLongueurP]}{\num{\PartieDecimaleFractionDeci}}}{\ifboolKV[ClesFracDeci]{Vides}{\pointilles[\PfCLongueurP]}{\num{\FractionDeciDeno}}}%
         }%
       }%
     }%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,11 +1,20 @@
 %%%
 % Nombre Premier
 %%%
-\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVide=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white}%
+\def\filedateDecompNbPremier{2024/08/04}%
+\def\fileversionDecompNbPremier{0.1}%
+\message{-- \filedateDecompNbPremier\space v\fileversionDecompNbPremier}%
+%
+\setKVdefault[ClesNombrePremier]{Tableau=false,TableauVide=false,TableauVertical=false,TableauVerticalVide=false,Exposant=false,Longue=false,All=false,Arbre=false,ArbreVide=false,ArbreComplet=false,ArbreDessine=false,ArbreDessineVide=false,Entoure=false,Entourefin=false,Diviseurs=false,DiviseursT=false,Dot=\dotfill,Impose=false,ImposeAll=false,Potence=false,Decalage=10,Vide=false,CouleurFeuillage=ForestGreen,CouleurTronc=BurlyWood,CouleurFruits=Red,CouleurTexte=white,Poisson=false,Echelle=1cm,AngleArete=45,CouleurPoisson=white,Visible=false,Solution=false}%
 \defKV[ClesNombrePremier]{Nombre=\ifboolKV[ClesNombrePremier]{ArbreDessine}{}{\ifboolKV[ClesNombrePremier]{ArbreDessineVide}{}{\setKV[ClesNombrePremier]{Impose}}}}%
 \defKV[ClesNombrePremier]{AllNombre=\setKV[ClesNombrePremier]{ImposeAll}}%
-\defKV[ClesNombrePremier]{Impression=\setKV[ClesNombrePremier]{CouleurFeuillage=white,CouleurTronc=white,CouleurFruits=gris,CouleurTexte=black}}
+\defKV[ClesNombrePremier]{Impression=\setKV[ClesNombrePremier]{CouleurFeuillage=white,CouleurTronc=white,CouleurFruits=gris,CouleurTexte=black}}%
+\defKV[ClesNombrePremier]{ElementsVisibles=\setKV[ClesNombrePremier]{Visible}\setKV[ClesNombrePremier]{Vide}}%
+\defKV[ClesNombrePremier]{CouleurSolution=\setKV[ClesNombrePremier]{Solution}}%
 
+\newtoks\tokNPElementsVisibles%
+\def\UpdatetoksElementAfficher#1\nil{\addtotok\tokNPElementsVisibles{#1,}}%
+
 \newcommand\Decomposition[2][]{%
   \useKVdefault[ClesNombrePremier]%
   \setKV[ClesNombrePremier]{#1}%
@@ -26,8 +35,138 @@
   \ifboolKV[ClesNombrePremier]{ArbreDessineVide}{\setKV[ClesNombrePremier]{Vide=true}\MPArbreDessine{#2}{\useKV[ClesNombrePremier]{Nombre}}}{}%
   \ifboolKV[ClesNombrePremier]{Diviseurs}{\ListeDiviseur{#2}}{}%
   \ifboolKV[ClesNombrePremier]{DiviseursT}{\ListeDiviseurT{#2}}{}%
+  \ifboolKV[ClesNombrePremier]{Poisson}{%
+    \tokNPElementsVisibles{}%
+    \PfCTousLesDiviseurs{#2}%
+    \ifboolKV[ClesNombrePremier]{Visible}{%
+      \xdef\foo{\useKV[ClesNombrePremier]{ElementsVisibles}}%
+      \readlist*\ListeElementsAAfficher{\foo}%
+    }{%
+      \xdef\foo{-1}\readlist*\ListeElementsAAfficher{\foo}%
+    }%
+    \foreachitem\compteur\in\ListeElementsAAfficher{\expandafter\UpdatetoksElementAfficher\compteur\nil}%
+    \MPFish{\PfCPileDiviseurs}{#2}{\the\tokNPElementsVisibles}%
+  }{}%
 }%
 
+\newcommand\PfCTousLesDiviseurs[1]{%
+  %#1 : le nombre entier \`a tester
+  \xdef\anpl{#1}%\relax%
+  \xdef\bnpl{2}%\relax%
+  \xdef\pilebl{2}%\relax%
+  \xdef\PfCPileDiviseurs{1}%
+  \loop
+  \ifnum\fpeval{\bnpl}<\fpeval{\anpl}\relax
+    \modulo{\fpeval{\anpl}}{\fpeval{\bnpl}}
+    \ifnum\remainder=0\relax
+      \xdef\PfCPileDiviseurs{\PfCPileDiviseurs,\fpeval{\bnpl}}%
+    \fi
+    \xdef\bnpl{\fpeval{\bnpl+1}}%
+    \repeat
+    \xdef\PfCPileDiviseurs{\PfCPileDiviseurs,#1}%
+}%%
+
+\def\MPFish#1#2#3{
+  \ifluatex
+    \mplibforcehmode%
+    \mplibnumbersystem{double}%
+    \begin{mplibcode}
+      Echelle=\useKV[ClesNombrePremier]{Echelle};
+      AngleArete=\useKV[ClesNombrePremier]{AngleArete};
+
+      boolean Vide,Visible,Solution;
+      Vide=\useKV[ClesNombrePremier]{Vide};
+      Visible=\useKV[ClesNombrePremier]{Visible};
+      Solution=\useKV[ClesNombrePremier]{Solution};
+
+      color CoulTete,CoulSol;
+      CoulTete=\useKV[ClesNombrePremier]{CouleurPoisson};
+      if Solution:
+      CoulSol=\useKV[ClesNombrePremier]{CouleurSolution};
+      fi;
+      
+      numeric Diviseurs[];
+      vardef LectureDiviseurs(text t)=
+      n:=0;
+      for p_=t:
+        n:=n+1;
+        Diviseurs[n]=p_;
+      endfor;
+      enddef;
+
+      LectureDiviseurs(#1);
+      TotalDiviseurs:=n;
+
+      boolean RETOUR;
+      RETOUR=false;
+      
+      vardef TestVisible(expr nrt)=
+        RETOUR:=false;
+        for p_=#3:
+          if p_=nrt:
+            RETOUR:=true;
+          fi;
+        endfor;
+      enddef;   
+      
+      
+      pair Ah[],Ab[],O[],Ac;
+      O0=(0,0);
+      O[-1]=O0+Echelle*(0,1);
+      O[-2]=O0+Echelle*(0,-1);
+      fill (arccercle(O[-1],O[-2],O0)--cycle) withcolor CoulTete;
+      trace arccercle(O[-1],O[-2],O0)--cycle;
+      label.lft(TEX("\num{"&decimal(#2)&"}"),O0);
+      % 
+      for k=1 upto (TotalDiviseurs div 2):
+      if k=1:Echelle:=Echelle/2;fi;
+      O[k]-O[k-1]=Echelle*(1,0);
+      if k=1:Echelle:=Echelle*2;fi;
+      Ah[k]-O[k]=Echelle*(cosd(AngleArete),sind(AngleArete));
+      Ab[k]-O[k]=Echelle*(cosd(AngleArete),-sind(AngleArete));
+      draw O[k-1]--O[k];
+      draw Ah[k]--O[k]--Ab[k];
+      if Vide=false:
+        label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+        label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+      else:
+        if Visible:
+          TestVisible(Diviseurs[k]);
+          if RETOUR:
+            label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+          else:
+            if Solution:
+              drawoptions(withcolor CoulSol);
+              label.top(TEX("\num{"&decimal(Diviseurs[k])&"}"),Ah[k]);
+              drawoptions();
+            fi;
+          fi;
+          TestVisible(Diviseurs[TotalDiviseurs+1-k]);
+          if RETOUR:
+            label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+          else:
+            if Solution:
+              drawoptions(withcolor CoulSol);
+              label.bot(TEX("\num{"&decimal(Diviseurs[TotalDiviseurs+1-k])&"}"),Ab[k]);
+              drawoptions();
+            fi;
+          fi;
+        fi;
+      fi;
+      endfor;
+      if (TotalDiviseurs mod 2)<>0:
+      Ac-O[TotalDiviseurs div 2]=Echelle*(1,0);
+      draw Ac--O[TotalDiviseurs div 2];
+      if Vide=false:
+      label.rt(TEX("\num{"&decimal(Diviseurs[(TotalDiviseurs+1) div 2])&"}"),Ac);
+      fi;
+      fi;      
+    \end{mplibcode}
+  \else
+    %
+  \fi
+}%
+
 \def\MPArbre#1{%
   \ifluatex
     \mplibforcehmode

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Defi Calculatrice
 %%%
+\def\filedateDefiCalc{2024/08/04}%
+\def\fileversionDefiCalc{0.1}%
+\message{-- \filedateDefiCalc\space v\fileversionDefiCalc}%
+%
 \setKVdefault[DefiCalculatrice]{NbCasesNoires=6,ListeTouches={!},Impression=false}%
 
 \newtoks\toktexteecran{}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiTables.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiTables.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiTables.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,10 @@
 %%%
 % Defi Table
 %%%
-
+\def\filedateDefiTables{2024/08/04}%
+\def\fileversionDefiTables{0.1}%
+\message{-- \filedateDefiTables\space v\fileversionDefiTables}%
+%
 \setKVdefault[DefiTable]{Solution=false,Math=false,LargeurT=5mm,Graines=false,Creation=false,ValeurMin=1,ValeurMax=10,Restreint=false}
 \defKV[DefiTable]{Graine=\setKV[DefiTable]{Graines}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Dessin Algo
 %%%
+\def\filedateDessinAlgo{2024/08/04}%
+\def\fileversionDessinAlgo{0.1}%
+\message{-- \filedateDessinAlgo\space v\fileversionDessinAlgo}%
+%
 \newtoks\tokDessinAlgo%
 \def\UpdatetoksDA#1\nil{\addtotok\tokDessinAlgo{#1,}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinGradue.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinGradue.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinGradue.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Dessin Gradue
 %%%
+\def\filedateDessinGradue{2024/08/04}%
+\def\fileversionDessinGradue{0.1}%
+\message{-- \filedateDessinGradue\space v\fileversionDessinGradue}%
+%
 \setKVdefault[DessinGradue]{Lignes=10,Debut=-5,Fin=5,Pas=10,Solution=false,EcartVertical=1.5,LignesIdentiques,Longueur=10,Echelle=1,Droites=false,DemiDroites=false,OrigineVariable=false,Code=false}
 \defKV[DessinGradue]{Traces=\setKV[DessinGradue]{Code}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinerRatio.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinerRatio.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinerRatio.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Lien : ratio
 %%%
+\def\filedateDessinRatio{2024/08/04}%
+\def\fileversionDessinRatio{0.1}%
+\message{-- \filedateDessinRatio\space v\fileversionDessinRatio}%
+%
 \setKVdefault[ClesRatio]{FigureCours=false,Figure=false,Longueur=5cm,TexteTotal=quantit\'e,TextePart=part,Tableau=false,GrandeurA=Grandeur A,GrandeurB=Part(s),Largeur=1cm,Stretch=1,Nom=false,CouleurUn=gris,CouleurDeux=0.5gris+0.5blanc,CouleurTrois=white,CouleurTab=gray!15,ModeleCouleur=5}
 
 \newcommand\MPTest[9][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDiagrammeRadar.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDiagrammeRadar.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDiagrammeRadar.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Radar
 %%%
+\def\filedateRadar{2024/08/04}%
+\def\fileversionRadar{0.1}%
+\message{-- \filedateRadar\space v\fileversionRadar}%
+%
 \setKVdefault[ClesRadar]{Rayon=3cm,Reference=20,MoyenneClasse=false,Disciplines=false,Pas=5}
 
 \newtoks\toklisteradara%pour la moyenne de l'\'el\`eve

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDistributivite.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDistributivite.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDistributivite.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,9 @@
 %%%
 % Distributivit\'e
 %%%
+\def\filedateDistributivite{2024/08/04}%
+\def\fileversionDistributivite{0.1}%
+\message{-- \filedateDistributivite\space v\fileversionDistributivite}%
 % https://tex.stackexchange.com/questions/168972/draw-arrows-to-show-multiplication-pattern-distributive-property/169278?noredirect=1 
 \newcommand\Tikzmark[1]{%
   \tikz[remember picture,baseline,inner sep=0pt]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDobble.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDobble.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDobble.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,8 +1,10 @@
 %%%
 % dobble
 %%%
+\def\filedateDobble{2024/08/04}%
+\def\fileversionDobble{0.1}%
+\message{-- \filedateDobble\space v\fileversionDobble}%
 % by Maxime Chupin
-
 \NewDocumentCommand\dobble{m}{%
   \directlua{
     require('PfCdobble.lua')

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDomino.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDomino.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDomino.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Domino
 %%%
+\def\filedateDomino{2024/08/04}%
+\def\fileversionDomino{0.1}%
+\message{-- \filedateDomino\space v\fileversionDomino}%
+%
 \newtcolorbox{MyDominoMini}[1][]{%
   enhanced,
   nobeforeafter,

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDontCountDots.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDontCountDots.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDontCountDots.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,9 @@
+%%%
+% Ne compte pas
+%%%
+\def\filedateDontCount{2024/08/04}%
+\def\fileversionDontCount{0.1}%
+\message{-- \filedateDontCount\space v\fileversionDontCount}%
 % D'après twitter : https://twitter.com/DavidKButlerUoA/status/1700612346258002030/photo/1
 \setKVdefault[NCPP]{Largeur=5,Longueur=7,Unite=5mm,Rayon=1mm,Multiple=3,Couleur=black,Solution=false,Graines=false}%
 \defKV[NCPP]{Graine=\setKV[NCPP]{Graines}\PfCGraineAlea{#1}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcrireunQCM.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcrireunQCM.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcrireunQCM.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,11 @@
 %%%
 % QCM
 %%%
-\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=60pt,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false,Parties={Yeux,Nez,Bouche},CouleurAlt=gray!15,Seul=false,ACompleter=false}%
+\def\filedateQCM{2024/08/04}%
+\def\fileversionQCM{0.1}%
+\message{-- \filedateQCM\space v\fileversionQCM}%
+%
+\setKVdefault[ClesQCM]{Reponses=3,Solution=false,Stretch=1,Largeur=60pt,Couleur=gray!15,Titre=false,Nom=R\'eponse,NomV=Vrai,NomF=Faux,Alph=false,AlphT=false,VF=false,Depart=1,Alterne=false,Noms={A/B/C},Multiple=false,Parties={Yeux,Nez,Bouche},CouleurAlt=gray!15,Seul=false,ACompleter=false,AllSeul=false}%
 \newlength{\LargeurQCM}%
 \newlength{\PfCLargeurQCM}%
 \newcounter{QuestionQCM}%
@@ -34,6 +38,23 @@
   \fi%
 }%
 
+\NewDocumentCommand\PfCQCMSMultiChoixLabelSol{mm}{%
+  \xdef\PfCFooChoixLabel{\ListeQCM[#1,\fpeval{\NumeroReponse}]}%
+  \setsepchar{-}%
+  \readlist*\PfCSolListeReponses{\PfCFooChoixLabel}%
+  \xdef\RetiensSiSol{0}%
+  \xintFor* ##3 in{\xintSeq{1}{\PfCSolListeReponseslen}}\do{%
+    \ifnum#2=\PfCSolListeReponses[##3]\relax%
+      \xdef\RetiensSiSol{\fpeval{\RetiensSiSol+1}}%
+    \fi%
+  }%
+  \ifnum\RetiensSiSol>0\relax%
+    $\blacksquare$%
+  \else%
+    $\square$%
+  \fi%
+}%
+
 \NewDocumentCommand\QCMSeul{om}{%
   \useKVdefault[QCMSeul]%
   \setKV[QCMSeul]{#1}%
@@ -173,6 +194,36 @@
 \newcommand\QCM[2][]{%
   \useKVdefault[ClesQCM]%
   \setKV[ClesQCM]{#1}%
+  \ifboolKV[ClesQCM]{AllSeul}{%
+    \setKV[QCMSeul]{#1}
+    \setsepchar[*]{,*&}\ignoreemptyitems%
+    \readlist*\ListeQCM{#2}%
+    \reademptyitems%
+    \setcounter{QuestionQCM}{\fpeval{\useKV[ClesQCM]{Depart}-1}}%
+    \xdef\NumeroReponse{\fpeval{\useKV[ClesQCM]{Reponses}+2}}%
+    \begin{enumerate}
+      \xintFor* ##1 in {\xintSeq {1}{\ListeQCMlen}}\do{%
+      \item\ListeQCM[##1,1]%
+        \ifboolKV[QCMSeul]{EnColonne}{\begin{multicols}{\useKV[QCMSeul]{Colonnes}}}{}%
+        \ifboolKV[QCMSeul]{LabelLettre}{
+          \begin{enumerate}[label=\Alph{*}/]
+        }{%
+          \begin{enumerate}[label=$\square$]
+        }%
+         \xintFor* ##2 in{\xintSeq{1}{\fpeval{\NumeroReponse-2}}}\do{%
+           \xdef\Titi{##2}
+           \ifboolKV[QCMSeul]{Solution}{%
+             \item[\PfCQCMSMultiChoixLabelSol{##1}{##2}]%
+             }{%
+            \item% 
+            }%
+            \ListeQCM[##1,\fpeval{##2+1}]
+          }%
+          \end{enumerate}
+          \ifboolKV[QCMSeul]{EnColonne}{\end{multicols}}{}%
+    }%
+  \end{enumerate}
+  }{%
   \ifboolKV[ClesQCM]{Seul}{%
     \QCMSeul[#1]{#2}%
   }{%
@@ -248,6 +299,7 @@
   }%
 }%
 }%
+}%
 
 \NewDocumentCommand\PfCSolCellColor{mm}{%
   \xdef\PfCFooSolColor{\ListeQCM[#1,\NumeroReponse]}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureLettres.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureLettres.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureLettres.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Ecriture des nombres en lettres
 %%%
+\def\filedateEcrireLettres{2024/08/04}%
+\def\fileversionEcrireLettres{0.1}%
+\message{-- \filedateEcrireLettres\space v\fileversionEcrireLettres}%
+%
 \setKVdefault[ClesEcriture]{Math=false,Majuscule=false,E=false,Tradition=false,Zero=false}%
 
 \newcommand\EcriturePluriel[1]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureUnites.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureUnites.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCEcritureUnites.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Ecritures d'unit\'es
 %%%
+\def\filedateEcrireUnites{2024/08/04}%
+\def\fileversionEcrireUnites{0.1}%
+\message{-- \filedateEcrireUnites\space v\fileversionEcrireUnites}%
+%
 \setKVdefault[Unites]{m=false,km=false,hm=false,ha=false,dam=false,a=false,dm=false,cm=true,mm=false,um=false,nm=false,g=true,t=false,q=false,kg=false,hg=false,dag=false,dg=false,cg=false,mg=false,ug=false,ng=false,mmin=false,kmh=true,kms=false,ms=false,mh=false,kgm=false,gcm=true,L=true,kL=false,hL=false,daL=false,dL=false,cL=false,mL=false,l=true,kl=false,hl=false,dal=false,dl=false,cl=false,ml=false,Go=true,Mo=false,ko=false,To=false,o=false,kWh=true,C=true,K=false,F=false,Nombre,US=false,UK=false,CFA=false,CFP=false,CHF=false,Euro=false,Precision=2}%
 \defKV[Unites]{Dots=\setKV[Unites]{Nombre=false}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCEngrenagesBase.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCEngrenagesBase.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCEngrenagesBase.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,11 +1,14 @@
 %%%
 % Engrenages
 %%%
+\def\filedateEngrenages{2024/08/04}%
+\def\fileversionEngrenages{0.1}%
+\message{-- \filedateEngrenages\space v\fileversionEngrenages}%
+%
 \newtoks\tokPfCEngrenages%
 \def\UpdatetoksEngrenages#1/#2\nil{\addtotok\tokPfCEngrenages{#1,#2,}}%
 
 \setKVdefault[Engrenages]{Couleur=LightSteelBlue,Unite=3mm,ListeCouleurs={?}}%
-%\defKV[Engrenages]{Couleur=\setKV[Engrenages]{ListeCouleurs=#1}}%
 
 \NewDocumentCommand\Engrenages{o m}{%
   \newtoks\toklistecouleur%
@@ -24,7 +27,6 @@
   \xdef\ListeAvantCouleurs{\useKV[Engrenages]{ListeCouleurs}}%
   \readlist*\ListeCouleur{\ListeAvantCouleurs}%
   \foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}%
-  %\setKV[Engrenages]{Couleurs=\ListeCouleur[1]}%
   \BuildEngrenages{\PfCFooEngrenages}{\the\toklistecouleur}%
 }%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnigmeAire.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnigmeAire.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnigmeAire.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Enigme Aire
 %%%
+\def\filedateEnigmeAire{2024/08/04}%
+\def\fileversionEnigmeAire{0.1}%
+\message{-- \filedateEnigmeAire\space v\fileversionEnigmeAire}%
+%
 \setKVdefault[EnigmeAire]{Modele=A,Couleur=LightSteelBlue,Echelle=7mm,Etape=1,Solution=false,Graines=false}
 \defKV[EnigmeAire]{Graine=\setKV[EnigmeAire]{Graines}}
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnquete.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnquete.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCEnquete.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Enquête
 %%%
+\def\filedateEnquete{2024/08/04}%
+\def\fileversionEnquete{0.1}%
+\message{-- \filedateEnquete\space v\fileversionEnquete}%
+%
 \setKVdefault[ClesEnquete]{Perso=Qui ?,Objet=Quoi ?,Lieu=Où ?,Largeur=4.5cm}
 
 \newcommand\Enquete[1][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCEratosthene.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCEratosthene.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCEratosthene.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Crible Eratostene
+%%%
+\def\filedateEratos{2024/08/04}%
+\def\fileversionEratos{0.1}%
+\message{-- \filedateEratos\space v\fileversionEratos}%
+%
 \setKVdefault[ClesEra]{Premier=false,Nombre=1,CouleurP=Cornsilk!50,CouleurNP=Crimson!15,Colonnes=10,Lignes=10,Hauteur=24pt}%
 
 \NewDocumentCommand\TestPremier{m}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Factorisation
+%%%
+\def\filedateFactorisation{2024/08/04}%
+\def\fileversionFactorisation{0.1}%
+\message{-- \filedateFactorisation\space v\fileversionFactorisation}%
+%
 \setKVdefault[Facto]{Aide=false,AideMul=false,Couleur=Crimson,NomExpression=A,Lettre=x,Details,Formel=false,VariableSup=false,ParenthesesFin=false,Finale=false,Type=0}
 \defKV[Facto]{Litteral=\setKV[Facto]{Details=false}}
 \defKV[Facto]{AutreVariable=\setKV[Facto]{VariableSup}}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFicheMemo.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFicheMemo.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFicheMemo.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Fiche m\'emorisation active
 %%%
+\def\filedateFicheMemo{2024/08/04}%
+\def\fileversionFicheMemo{0.1}%
+\message{-- \filedateFicheMemo\space v\fileversionFicheMemo}%
+%
 \setKVdefault[ClesFicheMemo]{TexteReponses=Réponses,TexteQuestions=Questions,Solution=false,Largeur=\linewidth}
 
 \newcommand\FicheMemo[3][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFonctionAffine.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFonctionAffine.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFonctionAffine.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Fonction Affine
 %%%
+\def\filedateAffine{2024/08/04}%
+\def\fileversionAffine{0.1}%
+\message{-- \filedateAffine\space v\fileversionAffine}%
+%
 \setKVdefault[ClesAffine]{Nom=f,Variable=x,CoefDir=a,OrdoOrig=b,Ligne=false,Image=false,Antecedent=false,Graphique=false,Retrouve=false,ProgCalcul=false,Unitex=1,Unitey=1,VoirCoef=false,ACoef=0,Redaction=false,Ecriture=false,Definition=false,Centre=false}%ACoefficient=false%: inutile ?
 
 \newcommand\FonctionAffine[5][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionAireCarre.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionAireCarre.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionAireCarre.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Fraction d'aire d'un carré
 %%%
+\def\filedateFractionCarre{2024/08/04}%
+\def\fileversionFractionCarre{0.1}%
+\message{-- \filedateFractionCarre\space v\fileversionFractionCarre}%
+%
 \setKVdefault[JeuAireCarre]{Couleur=LightSteelBlue,CouleurFond=Cornsilk,Perso=false,Graines=false,Parts=3,Longueur=4,NbPoints=2,Angle=0}%
 \defKV[JeuAireCarre]{Graine=\setKV[JeuAireCarre]{Graines}\PfCGraineAlea{#1}}%
 \defKV[JeuAireCarre]{ListeParts=\setKV[JeuAireCarre]{Perso}\xdef\PfCFooJeuAireCarre{#1}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Fraction Nombre
 %%%
+\def\filedateFractionNombre{2024/08/04}%
+\def\fileversionFractionNombre{0.1}%
+\message{-- \filedateFractionNombre\space v\fileversionFractionNombre}%
+%
 \newtoks\tokFractionNombrePerso%
 \def\UpdatetoksFN#1\nil{\addtotok\tokFractionNombrePerso{"#1",}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFrise.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFrise.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFrise.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Frise temporelle
 %%%
+\def\filedateFrise{2024/08/04}%
+\def\fileversionFrise{0.1}%
+\message{-- \filedateFrise\space v\fileversionFrise}%
+%
 \setKVdefault[ClesFrise]{Longueur=8cm,Fleches=false,Ecart=5mm,Sup=false}%
 
 \newtoks\toklistefrise%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFubuki.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFubuki.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFubuki.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Fubuki
+%%%
+\def\filedateFubuki{2024/08/04}%
+\def\fileversionFubuki{0.1}%
+\message{-- \filedateFubuki\space v\fileversionFubuki}%
+%
 \setKVdefault[Fubuki]{Largeur=20pt,Solution=false,Indice=false,Sommes=false,Couleur=LightSteelBlue,Perso=false,Vierge=false}%
 \defKV[Fubuki]{Graine=\PfCGraineAlea{#1}}%
 \defKV[Fubuki]{Indices=\setKV[Fubuki]{Indice}\xdef\PfCFooListeIndices{#1}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFutoshiki.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFutoshiki.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFutoshiki.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Futoshiki
 %%%
+\def\filedateFutoshiki{2024/08/04}%
+\def\fileversionFutoshiki{0.1}%
+\message{-- \filedateFutoshiki\space v\fileversionFutoshiki}%
+%
 \setKVdefault[Futo]{Largeur=15pt,Solution=false,CouleurSolution=Black,CouleurCase=Cornsilk,StyleTexte={}}
 
 \newlength\PfCFutoHeight

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,17 +1,21 @@
 %%%
 % Garam
 %%%
-\setKVdefault[Garam]{Taille=7,Largeur=15pt,Solution=false,CouleurSolution=Black}
+\def\filedateGaram{2024/08/04}%
+\def\fileversionGaram{0.1}%
+\message{-- \filedateGaram\space v\fileversionGaram}%
+%
+\setKVdefault[Garam]{Taille=7,Largeur=15pt,Solution=false}%
+\defKV[Garam]{CouleurSolution=\setKV[Garam]{Solution}\colorlet{PfCGaramCoulSol}{#1}}%
 \newlength\PfCGaramHeight
 
 \NewDocumentCommand\Garam{o m}{%
-  \useKVdefault[Garam]
+  \useKVdefault[Garam]%
   \setKV[Garam]{#1}%
   \setlength{\PfCGaramHeight}{\useKV[Garam]{Largeur}+\tabcolsep}%
   \reademptyitems%
   \setsepchar[*]{§*,*/}%
   \readlist*\PfCListeGaram{#2}%
-  \colorlet{PfCGaramCoulSol}{\useKV[Garam]{CouleurSolution}}%
   \begin{NiceTabular}{*{\useKV[Garam]{Taille}}{m{\useKV[Garam]{Largeur}}}}
     \CodeBefore
     \xintFor* ##1 in{\xintSeq{2}{\fpeval{\useKV[Garam]{Taille}}}}\do{%
@@ -26,7 +30,7 @@
       \rule{0pt}{\PfCGaramHeight}\xintFor* ##2 in {\xintSeq{1}{\useKV[Garam]{Taille}}}\do{%
         \xintifForFirst{}{&}\StrChar{\PfCListeGaram[##1,##2,1]}{1}[\PfCCaracGaram]%
         \IfStrEq{\PfCCaracGaram}{*}{\Block[draw,fill=black]{1-1}{}}{%
-          \IfStrEq{\PfCCaracGaram}{!}{\Block{}{\ifboolKV[Garam]{Solution}{\StrGobbleLeft{\PfCListeGaram[##1,##2,1]}{1}}{}}}{\Block{}{\color{PfCGaramCoulSol}\PfCListeGaram[##1,##2,1]}}%
+          \IfStrEq{\PfCCaracGaram}{!}{\Block{}{\ifboolKV[Garam]{Solution}{\color{PfCGaramCoulSol}\StrGobbleLeft{\PfCListeGaram[##1,##2,1]}{1}}{}}}{\Block{}{\PfCListeGaram[##1,##2,1]}}%
         }%
       }\\
     }%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCGeometrie.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Geometrie
 %%%
+\def\filedateGeometrie{2024/08/04}%
+\def\fileversionGeometrie{0.1}%
+\message{-- \filedateGeometrie\space v\fileversionGeometrie}%
+%
 \setKVdefault[Geometrie]{CoinBG={(0,0)},CoinHD={(10u,10u)},TypeTrace="Instruments",Clip,Cadres=false,Epaisseur=1,Pointilles=false,Ombre=false,Couleur=black,Ecart=2,ModeleCouleur=5}%
 \defKV[Geometrie]{Cadre=\setKV[Geometrie]{Cadres}\setKV[Geometrie]{Clip=false}}%
 
@@ -42,6 +46,9 @@
     elseif \useKV[Geometrie]{TypeTrace}="Espace":
     typetrace:="3D";
     typerepre:="persp";
+    elseif \useKV[Geometrie]{TypeTrace}="Schema":
+    input PfCSketch;
+    sketchypaths;
     fi;
     xa:=xpart(Coinbg);
     xb:=xpart(Coinhd);
@@ -120,6 +127,9 @@
       elseif \useKV[Geometrie]{TypeTrace}="Espace":
       typetrace:="3D";
       typerepre:="persp";
+      elseif \useKV[Geometrie]{TypeTrace}="Schema":
+      input PfCSketch;
+      sketchypaths;
       fi;}
     ]%
     xa:=xpart(Coinbg);

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrades.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrades.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrades.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,8 +1,12 @@
 %%%
 % Grades
 %%%
-\setKVdefault[Grades]{Solution=false,Longueur=9,Largeur=9,Echelle=8mm,Graines=false}
-\defKV[Grades]{Graine=\setKV[Grades]{Graines}}
+\def\filedateGrades{2024/08/04}%
+\def\fileversionGrades{0.1}%
+\message{-- \filedateGrades\space v\fileversionGrades}%
+%
+\setKVdefault[Grades]{Solution=false,Longueur=9,Largeur=9,Echelle=8mm,Graines=false}%
+\defKV[Grades]{Graine=\setKV[Grades]{Graines}}%
 
 \NewDocumentCommand\Grades{o}{%
   \useKVdefault[Grades]%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrimuku.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrimuku.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCGrimuku.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Grimuku
 %%%
+\def\filedateGrimuku{2024/08/04}%
+\def\fileversionGrimuku{0.1}%
+\message{-- \filedateGrimuku\space v\fileversionGrimuku}%
+%
 \setKVdefault[Grimuku]{TLargeur=7,Solution=false,Largeur=30pt,CouleurCase=0.7white}%
 \defKV[Grimuku]{CouleurSolution=\setKV[Grimuku]{Solution}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCHiddenMessage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCHiddenMessage.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCHiddenMessage.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Message caché
 %%%
+\def\filedateHidden{2024/08/04}%
+\def\fileversionHidden{0.1}%
+\message{-- \filedateHidden\space v\fileversionHidden}%
+%
 \setKVdefault[Hidden]{TLargeur=5,THauteur=3,Solution=false,Hauteur=70pt,Largeur=120pt,Jeu=false,Solution}
 \defKV[Hidden]{Plateau=\setKV[Hidden]{Jeu}\setKV[Hidden]{Solution=false}}
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCHorloge.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCHorloge.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCHorloge.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,11 @@
 %%%
 % Horloges
 %%%
-\setKVdefault[ClesHorloge]{Aiguilles,Numerique=false,Secondes,Cadre,Rayon=1,Impression=false}
+\def\filedateHorloge{2024/08/12}%
+\def\fileversionHorloge{0.1a}%
+\message{-- \filedateHorloge\space v\fileversionHorloge}%
+%
+\setKVdefault[ClesHorloge]{Aiguilles,Numerique=false,Secondes,Cadre,Rayon=1,Impression=false,Sombre=false}
 
 \NewDocumentCommand\Horloge{ }{%On désactive les :
   \begingroup
@@ -62,13 +66,19 @@
   \ifluatex
   \mplibforcehmode
   \begin{mplibcode}
-    boolean Secondes,Impression;
+    boolean Secondes,Impression,Sombre;
     Secondes=\useKV[ClesHorloge]{Secondes};
     Impression=\useKV[ClesHorloge]{Impression};
+    Sombre=\useKV[ClesHorloge]{Sombre};
     if Impression:
+    if Sombre:
+    LightSteelBlue:=0.8*white;
+    Crimson:=black;
+    else:
     LightSteelBlue:=0.9*white;
     Crimson:=0.5*white;
     fi;
+    fi;
     u:=0.5u;
     draw Afficheur(#1 div10,0);
     draw Afficheur(#1 mod10,0) shifted(u*(1,0));
@@ -80,9 +90,21 @@
     draw Afficheur(#3 div10,0) shifted(u*(6,0));
     draw Afficheur(#3 mod10,0) shifted(u*(7,0));
     fi;
+    if Sombre:
+    draw bbox currentpicture;
+    fi;
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={boolean Secondes;Secondes=\useKV[ClesHorloge]{Secondes};}]
+  \begin{mpost}[mpsettings={boolean Secondes,Impression,Sombre;Secondes=\useKV[ClesHorloge]{Secondes};Impression=\useKV[ClesHorloge]{Impression};Sombre=\useKV[ClesHorloge]{Sombre};}]
+    if Impression:
+    if Sombre:
+    LightSteelBlue:=0.8*white;
+    Crimson:=black;
+    else:
+    LightSteelBlue:=0.9*white;
+    Crimson:=0.5*white;
+    fi;
+    fi;
     u:=0.5u;
     draw Afficheur(#1 div10,0);
     draw Afficheur(#1 mod10,0) shifted(u*(1,0));
@@ -94,6 +116,9 @@
     draw Afficheur(#3 div10,0) shifted(u*(6,0));
     draw Afficheur(#3 mod10,0) shifted(u*(7,0));
     fi;
+    if Sombre:
+    draw bbox currentpicture;
+    fi;
   \end{mpost}
   \fi
 }

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeton.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeton.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeton.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Jeton
 %%%
+\def\filedateJeton{2024/08/04}%
+\def\fileversionJeton{0.1}%
+\message{-- \filedateJeton\space v\fileversionJeton}%
+%
 \setKVdefault[Jeton]{Diametre=5mm,Impression=false}%
 
 \NewDocumentCommand\Jeton{om}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeuRangement.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeuRangement.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCJeuRangement.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Jeu Rangement
+%%%
+\def\filedateJeuRangement{2024/08/04}%
+\def\fileversionJeuRangement{0.1}%
+\message{-- \filedateJeuRangement\space v\fileversionJeuRangement}%
+%
 \setKVdefault[JeuRgt]{Creation=false,Deno=12,Graines=false,Largeur=15pt,Hauteur=20pt,Negatif=false,Decimaux=false,Solution=false,ValeurMin=2,ValeurMax=50,Exposants=false}
 \defKV[JeuRgt]{Graine=\setKV[JeuRgt]{Graines}}%
 \defKV[JeuRgt]{Exposant=\setKV[JeuRgt]{Exposants}\setKV[JeuRgt]{Deno=1}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakurasu.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakurasu.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakurasu.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Kakurasu
 %%%
+\def\filedateKakurasu{2024/08/04}%
+\def\fileversionKakurasu{0.1}%
+\message{-- \filedateKakurasu\space v\fileversionKakurasu}%
+%
 \setKVdefault[Kakurasu]{Solution=false,Longueur=6,Largeur=6,Echelle=8mm,Graines=false,Trace=false}
 \defKV[Kakurasu]{Graine=\setKV[Kakurasu]{Graines}}
 \defKV[Kakurasu]{Traces=\setKV[Kakurasu]{Trace}}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Kakuro
 %%%
+\def\filedateKakuro{2024/08/04}%
+\def\fileversionKakuro{0.1}%
+\message{-- \filedateKakuro\space v\fileversionKakuro}%
+%
 \setKVdefault[Kakuro]{CouleurCase=LightGray,TLargeur=5,THauteur=5,Solution=false,Largeur=2em,Aide=false,CouleurSolution=Black,Tailles=false}%,Taille=5
 \defKV[Kakuro]{ListeNombres=\setKV[Kakuro]{Aide}}%
 \defKV[Kakuro]{Taille=\setKV[Kakuro]{Tailles}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % KenKen
 %%%
+\def\filedateKenken{2024/08/04}%
+\def\fileversionKenken{0.1}%
+\message{-- \filedateKenken\space v\fileversionKenken}%
+%
 \setKVdefault[ClesKK]{Solution=false,Taille=3,Largeur=2em,Aide=false}%
 \defKV[ClesKK]{Nombre=\setKV[ClesKK]{Aide}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheJeu.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheJeu.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheJeu.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,8 +1,12 @@
 %%%
 % Labyrinthe
 %%%
-\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false,Slop}
-
+\def\filedateLabyJeu{2024/08/04}%
+\def\fileversionLabyJeu{0.1}%
+\message{-- \filedateLabyJeu\space v\fileversionLabyJeu}%
+%
+\setKVdefault[Labyrinthe]{Lignes=6,Colonnes=3,Longueur=4,Hauteur=2,Passages=false,EcartH=1,EcartV=1,CouleurF=gray!50,Texte=\color{black},SensImpose=false,Slop}%
+%
 \tikzset{FDirect/.style={-stealth}}
 \tikzset{FIndirect/.style={stealth-}}
 \tikzset{FBidirect/.style={stealth-stealth}}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheNombre.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheNombre.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCLabyrintheNombre.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Labyrinthe Nombre
 %%%
+\def\filedateLabyNombre{2024/08/04}%
+\def\fileversionLabyNombre{0.1}%
+\message{-- \filedateLabyNombre\space v\fileversionLabyNombre}%
+%
 \setKVdefault[ClesLabyNb]{Multiple=5,XDepart=0,YDepart=0,Longueur=7,Largeur=4,Solution=false,Echelle=1,Angle=0,Couleur=red,Murs=false,Nom=Ex1,CouleurChemin=LightSteelBlue,DoubleOperation=false,Multiplication=false,Chemin=false,EntreeSortie=false,Entree="Nord",Sortie="Sud",SortieUnique=true,Graines=false,XArrivees=false,YArrivees=false,ArriveeX=5,ArriveeY=5}
 \defKV[ClesLabyNb]{Graine=\setKV[ClesLabyNb]{Graines}}
 \defKV[ClesLabyNb]{XArrivee=\setKV[ClesLabyNb]{XArrivees}\setKV[ClesLabyNb]{ArriveeX=#1}}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Lego
 %%%
+\def\filedateLego{2024/08/04}%
+\def\fileversionLego{0.1}%
+\message{-- \filedateLego\space v\fileversionLego}%
+%
 \setKVdefault[Lego]{Echelle=1,Couleur=LightSteelBlue,Unite=8,Diviseur=2,Perso=false,Plaque=false,Largeura=2,Largeurb=2,Unique=false}%
 \defKV[Lego]{ListePerso=\setKV[Lego]{Perso}\xdef\PfCFooLegoListePerso{#1}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMentalo.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMentalo.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMentalo.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Mentalo
 %%%
+\def\filedateMentalo{2024/08/04}%
+\def\fileversionMentalo{0.1}%
+\message{-- \filedateMentalo\space v\fileversionMentalo}%
+%
 \NewDocumentCommand\PfCNumold{m}{%
   \xintifboolexpr{#1<0}{(\num{#1})}{\num{#1}}%
 }%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMidpoint.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMidpoint.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMidpoint.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Midpoint
 %%%
+\def\filedateMidpoint{2024/08/04}%
+\def\fileversionMidpoint{0.1}%
+\message{-- \filedateMidpoint\space v\fileversionMidpoint}%
+%
 \setKVdefault[MidPoint]{Solution=false,Graines=false,Hard=false}
 \defKV[MidPoint]{Graine=\setKV[MidPoint]{Graines}}
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCModeleBarre.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCModeleBarre.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCModeleBarre.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Modele en barre
 %%%
+\def\filedateModeleBarre{2024/08/04}%
+\def\fileversionModeleBarre{0.1}%
+\message{-- \filedateModeleBarre\space v\fileversionModeleBarre}%
+%
 \setKVdefault[ClesModeleBarre]{Hauteur=0.5cm,Largeur=1cm,Separation={0},Homogene=false,Multiplicatif=false,MultiplicatifH=false,MultiplicatifB=false}%Separation pour conserver le lien avec les équations.
 \defKV[ClesModeleBarre]{Longueur=\setKV[ClesModeleBarre]{Homogene}}%
 \defKV[ClesModeleBarre]{AccoladesH=\setKV[ClesModeleBarre]{MultiplicatifH}\setKV[ClesModeleBarre]{Multiplicatif}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMosaique.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMosaique.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMosaique.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Mosaique
 %%%
+\def\filedateMosaique{2024/08/04}%
+\def\fileversionMosaique{0.1}%
+\message{-- \filedateMosaique\space v\fileversionMosaique}%
+%
 \setKVdefault[ClesMosaique]{Largeur=2,Hauteur=2,Solution=false,Type=1,Label,Echelle=1cm}
 
 \newcommand\DessineMosaique[2][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCodes.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCodes.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCodes.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Mots Cod\'es
 %%%
+\def\filedateMotsCodes{2024/08/04}%
+\def\fileversionMotsCodes{0.1}%
+\message{-- \filedateMotsCodes\space v\fileversionMotsCodes}%
+%
 \setKVdefault[MotsCodes]{LargeurT=1cm,Colonnes=5,Largeur=3cm,Solution=false,Math=false}%
 
 \newcommand\MotsCodes[2][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCroises.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCroises.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsCroises.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Mots croisés
 %%%
+\def\filedateMotsCroises{2024/08/04}%
+\def\fileversionMotsCroises{0.1}%
+\message{-- \filedateMotsCroises\space v\fileversionMotsCroises}%
+%
 \setKVdefault[ClesCroises]{Lignes=6,Colonnes=8,Solution=false,Croises=false,Couleur=gray,Largeur=1em}
 
 \newcounter{PfCLettreHorizontal}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsEmpiles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsEmpiles.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMotsEmpiles.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Mots empilés
 %%%
+\def\filedateMotsEmpiles{2024/08/04}%
+\def\fileversionMotsEmpiles{0.1}%
+\message{-- \filedateMotsEmpiles\space v\fileversionMotsEmpiles}%
+%
 \setKVdefault[ClesMotEmpile]{Colonne=4,Solution=false,Couleur=black}
 
 \newcounter{CompteurMotEmpile}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulArt.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulArt.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulArt.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Mulart
 %%%
+\def\filedateMulArt{2024/08/04}%
+\def\fileversionMulArt{0.1}%
+\message{-- \filedateMulArt\space v\fileversionMulArt}%
+%
 \setKVdefault[TabMul]{Multiple=2,Cibles=false,Largeur=20pt,Couleurs=false,Graines=false,Operations=false,Enonce=false,SchemaEnonce=false}
 \defKV[TabMul]{Couleur=\setKV[TabMul]{Couleurs}}
 \defKV[TabMul]{Graine=\setKV[TabMul]{Graines}\PfCGraineAlea{#1}}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJal.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJal.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJal.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Multiplication par jalousie
 %%%
+\def\filedateMulJal{2024/08/04}%
+\def\fileversionMulJal{0.1}%
+\message{-- \filedateMulJal\space v\fileversionMulJal}%
+%
 \setKVdefault[MulJal]{Solution=false,CouleurTab=gray!15}%
 \defKV[MulJal]{CouleurSolution=\setKV[MulJal]{Solution}}%
 %

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Multiplication Japonaise
 %%%
+\def\filedateMulJap{2024/08/04}%
+\def\fileversionMulJap{0.1}%
+\message{-- \filedateMulJap\space v\fileversionMulJap}%
+%
 \setKVdefault[MulJap]{Couleur=Orange,Bloc=false,DessinSeul=false}
 \defKV[MulJap]{CouleurBloc=\setKV[MulJap]{Bloc}}
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulPiecesPuzzle.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulPiecesPuzzle.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulPiecesPuzzle.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Pièces de puzzle pour multiplication
 %%%
+\def\filedateMulPiecesPuzzle{2024/08/04}%
+\def\fileversionMulPiecesPuzzle{0.1}%
+\message{-- \filedateMulPiecesPuzzle\space v\fileversionMulPiecesPuzzle}%
+%
 %https://mirror.gutenberg-asso.fr/tex.loria.fr/prod-graph/metafun.pdf
 \newtoks\toklistepuzzlea%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCNombreAstral.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCNombreAstral.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCNombreAstral.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Nombre Astral
 %%%
+\def\filedateNombreAstral{2024/08/04}%
+\def\fileversionNombreAstral{0.1}%
+\message{-- \filedateNombreAstral\space v\fileversionNombreAstral}%
+%
 \setKVdefault[NombreAstral]{Solution=false,Graines=false,Echelle=1,Couleur=LightSteelBlue,Horizontal=false}
 \defKV[NombreAstral]{Graine=\setKV[NombreAstral]{Graines}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCNonogramme.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCNonogramme.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCNonogramme.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Nonogramme
+%%%
+\def\filedateNonogramme{2024/08/04}%
+\def\fileversionNonogramme{0.1}%
+\message{-- \filedateNonogramme\space v\fileversionNonogramme}%
+%
 \setKVdefault[Nono]{Largeur=10pt,Taille=5,Unite=1cm,Solution=false,Enonce=true}
 
 \newtoks\toklistenonoa%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Fonction
 %%%
+\def\filedateFonction{2024/08/04}%
+\def\fileversionFonction{0.1}%
+\message{-- \filedateFonction\space v\fileversionFonction}%
+%
 \setKVdefault[ClesFonction]{Nom=f,Variable=x,Calcul=x,Tableau=false,Largeur=5mm,Ecriture=false,Definition=false,Points=false,Tangentes=false,PasX=1,PasY=1,UniteX=1,UniteY=1,Prolonge=false,Trace=false,Catmull=false,Splines=false,Lagrange=false,Epaisseur=1,Couleur=black,CouleurTrace=black,PointsCourbe=true,Codes=false,Origine={(0,0)},Vide=false}
 \defKV[ClesFonction]{Traces=\setKV[ClesFonction]{Codes}}%
 
@@ -1249,6 +1253,17 @@
   % 
   RetiensCouleur(\useKV[TraceG]{CouleurTrace});
   %
+  numeric styletrace[];
+  vardef RetiensStyle(text t)=
+  n:=0;
+  for p_=t:
+  n:=n+1;
+  styletrace[n]=p_;
+  endfor;
+  enddef;
+  %
+  RetiensStyle(\useKV[TraceG]{StyleTrace});
+  %
   pair Origine,DecalageOrigine;
   Origine=(xmin,ymin)+\useKV[TraceG]{Origine};
   DecalageOrigine=\useKV[TraceG]{Origine};
@@ -1305,6 +1320,19 @@
   n:=0;
   for p_=texto:
   n:=n+1;
+  if unknown styletrace[n]:
+  drawoptions();
+  else:
+  if styletrace[n]=1:
+  drawoptions(dashed evenly);
+  elseif styletrace[n]=2:
+  drawoptions(dashed withdots);
+  elseif styletrace[n]=3:
+  drawoptions(dashed dashpattern(on6 off3 on1.5 off3));
+  else:
+  drawoptions();
+  fi;
+  fi;
   draw courbe[n](borneinf[n],bornesup[n],100)(scantokens p_) withpen (pencircle scaled Epaisseur) withcolor if unknown colortrace[n]:black else: colortrace[n] fi;
   endfor;
   enddef;
@@ -1419,6 +1447,9 @@
     trace u*(xmin-grillex,k)--u*(xmax+grillex,k);
     endfor;
     drawoptions();
+    else:
+    grillex:=0;
+    grilley:=0;
     fi;
     if Graduations:
     for k=gradx step gradx until (((xmax-xmin)-xpart(DecalageOrigine))*pasx):
@@ -1470,11 +1501,12 @@
     else:
     DessineCourbes(#1);
     NommeCourbes(#2);
+    clip currentpicture to polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley));
     if Grille:
-    clip currentpicture to polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley));
+    %clip currentpicture to polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley));
     draw polygone(u*(xmin-grillex,ymin-grilley),u*(xmax+grillex,ymin-grilley),u*(xmax+grillex,ymax+grilley),u*(xmin-grillex,ymax+grilley)) withcolor 0.75white;
     else:
-    clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax));
+    %clip currentpicture to polygone(u*(xmin,ymin),u*(xmax,ymin),u*(xmax,ymax),u*(xmin,ymax));
     fi;
     % 
     if Code:

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumberHive.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumberHive.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumberHive.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Number Hive
 %%%
+\def\filedateNumberHive{2024/08/04}%
+\def\fileversionNumberHive{0.1}%
+\message{-- \filedateNumberHive\space v\fileversionNumberHive}%
+%
 \setKVdefault[NumberHive]{Negatif=false,Produit=false,Niveau=8,Double=false,ListeCouleurs={Cornsilk,LightSteelBlue},CouleurCase=false,Jeton=false,Graines=false,Aide=false,UniteHexa=6mm}%
 \defKV[NumberHive]{Cases=\setKV[NumberHive]{CouleurCase}}%
 \defKV[NumberHive]{Jetons=\setKV[NumberHive]{Jeton}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumerationsAnciennes.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumerationsAnciennes.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCNumerationsAnciennes.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+% Numerations anciennes
+%%%
+\def\filedateNumAnciennes{2024/08/04}%
+\def\fileversionNumAnciennes{0.1}%
+\message{-- \filedateNumAnciennes\space v\fileversionNumAnciennes}%
+%
 \setKVdefault[NumerationAncienne]{Couleur=black}%
 
 \NewDocumentCommand\Chinoise{om}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCOperationsTrou.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,12 +1,12 @@
 %%%
 % Op\'erations pos\'es à trou
 %%%
+\def\filedateOpTrou{2024/08/04}%
+\def\fileversionOpTrou{0.1}%
+\message{-- \filedateOpTrou\space v\fileversionOpTrou}%
+%
 %% D'après https://tex.stackexchange.com/questions/277246/drawing-a-circle-around-the-numbers-in-xlop-package
 
-%\begin{document}%
-%
-%\end{document}
-
 \newcommand\PfCchiffre[2]{\tikz[remember picture] \node[inner sep=0pt](#1){#2};}
 
 \newcommand\PfCentoure[2]{\tikz[remember picture,overlay] \node[preaction={draw={\useKV[ClesOperations]{CouleurCadre}},ultra thick,opacity=1,

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPapiers.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPapiers.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPapiers.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Papiers
 %%%
+\def\filedatePapiers{2024/08/04}%
+\def\fileversionPapiers{0.1}%
+\message{-- \filedatePapiers\space v\fileversionPapiers}%
+%
 \setKVdefault[Papiers]{Cinq=true,Seyes=false,Echelle=8,Isometrique=false,IsometriquePointe=false,Millimetre=false,Triangle=false,Largeur=5,Hauteur=4,Couleur=black,Grille=-1,GrillePointe=-1,PageEntiere=false,ZoneTexte=false,Baseline=false,CodeAfter=false}%
 \defKV[Papiers]{Traces=\setKV[Papiers]{CodeAfter}}
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPatronPaves.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPatronPaves.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPatronPaves.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Patrons de pavés droits et cubes
 %%%
+\def\filedatePatronspaves{2024/08/04}%
+\def\fileversionPatronspaves{0.1}%
+\message{-- \filedatePatronspaves\space v\fileversionPatronspaves}%
+%
 \setKVdefault[ClesPatron]{Cube,Arete=1cm,ListeCouleurs={white},Pave=false,Largeur=2cm,Hauteur=1.5cm,Profondeur=1cm,Codes=false,AColorier=false}%
 %EcartColorier est en nombre de parts pour le cube, en mm pour le pavé.
 \defKV[ClesPatron]{EcartColorier=\setKV[ClesPatron]{AColorier}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPattern.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPattern.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPattern.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Visual Pattern
 %%%
+\def\filedatePattern{2024/08/04}%
+\def\fileversionPattern{0.1}%
+\message{-- \filedatePattern\space v\fileversionPattern}%
+%
 \setKVdefault[Pattern]{Type=1,Etape=3}
 
 \NewDocumentCommand\VisualPattern{o}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPavage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPavage.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPavage.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Pavage
 %%%
+\def\filedatePavage{2024/08/04}%
+\def\fileversionPavage{0.1}%
+\message{-- \filedatePavage\space v\fileversionPavage}%
+%
 \setKVdefault[Pavage]{%
   Before=false,
   Niveau=3,

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPixelArt.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,11 +1,16 @@
 %%%
 % PixelArt
 %%%
+\def\filedatePixelArt{2024/08/04}%
+\def\fileversionPixelArt{0.1}%
+\message{-- \filedatePixelArt\space v\fileversionPixelArt}%
+%
 \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,Geant=false,HauteurD=1,LargeurD=1,Complet=false,Numero=1,Separations=false}%
+\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,Deforme=false,Coefx=0.25,Coefy=0.25,Borne=false,Graines=false}%
 \defKV[ClesPixelArt]{ListeNombres=\setKV[ClesPixelArt]{Nombres}}%
+\defKV[ClesPixelArt]{Graine=\setKV[ClesPixelArt]{Graines}}%
 
 \NewDocumentCommand\PixelArt{o m}{%
   \toklistePANombre{}%
@@ -34,11 +39,15 @@
       \BuildPixelArtGeant{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}{\the\intquotient}{\the\remainder}%
     }%
   }{%
-    \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+    \ifboolKV[ClesPixelArt]{Deforme}{%
+        \BuildPixelArtDeforme{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+    }{%
+      \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}%
+    }%
   }%
 }%
 
-\NewDocumentCommand\BuildPixelArt{m m m m}{%
+\NewDocumentCommand\BuildPixelArtDeforme{m m m m}{%
   \ifluatex
   \mplibforcehmode
   \begin{mplibcode}
@@ -48,6 +57,39 @@
     hauteurd:=\useKV[ClesPixelArt]{HauteurD};
     Unite:=\useKV[ClesPixelArt]{Unite};
 
+    %Deformation
+    Coefx=\useKV[ClesPixelArt]{Coefx};
+    Coefy=\useKV[ClesPixelArt]{Coefy};
+    boolean Borne,Graines;
+    Borne=\useKV[ClesPixelArt]{Borne};
+    Graines=\useKV[ClesPixelArt]{Graines};
+    if Graines:
+    randomseed:=\useKV[ClesPixelArt]{Graine};
+    fi;
+    %
+    pair M[][];
+    for l=1 upto hauteur+1:
+      for c=1 upto largeur+1:
+      if Borne:
+      if (l=1) or (l=hauteur+1):
+      M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),0);
+      if (c=1) or (c=largeur+1):
+      M[l][c]:=Unite*(c,l);
+      fi;
+      else:
+      if (c=1) or (c=largeur+1):
+      M[l][c]=Unite*(c,l-1)+Unite*(0,uniformdeviate(Coefy));
+      else:
+      M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+      fi;
+      fi;
+      else:
+      M[l][c]=Unite*(c,l)+Unite*(-Coefx+uniformdeviate(2*Coefx),-Coefy+uniformdeviate(2*Coefy));
+      fi;
+      %dotlabel("",M[l][c]);
+      endfor;
+    endfor;
+    
     boolean Solution,Nombres,Separations;
     Solution:=\useKV[ClesPixelArt]{Solution};
     Nombres:=\useKV[ClesPixelArt]{Nombres};
@@ -56,7 +98,7 @@
     string BaseLettres;
     BaseLettres=str #2;
     numeric EchelleScale;
-    EchelleScale=Unite/5mm;
+    EchelleScale=Unite/10mm;
     
     color ColorEntier[],ColFond;
     n:=0;
@@ -86,11 +128,11 @@
     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));
+    label(TEX(RetiensNombres[m+1]) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
     fi;
     endfor;
     else:
-    label(TEX(substring(p,p+1) of p_) scaled EchelleScale,((l-1)*Unite,(h-1)*Unite));
+    label(TEX(substring(p,p+1) of p_) scaled EchelleScale,iso(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]));
     fi;
     if Solution:
     for m=0 upto (length BaseLettres-1):
@@ -98,10 +140,105 @@
     ColFond:=ColorEntier[m+1];
     fi;
     endfor;
+    if unknown ColFond: else: fill polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]) withcolor ColFond fi;
+    fi;
+    trace polygone(M[h+1][l],M[h][l],M[h][l+1],M[h+1][l+1]);
+   fi;
+    endfor;
+    endfor;
+    closefrom nomfichier;
+    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}
+\fi
+}%
+
+\NewDocumentCommand\BuildPixelArt{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,Separations;
+    Solution:=\useKV[ClesPixelArt]{Solution};
+    Nombres:=\useKV[ClesPixelArt]{Nombres};
+    Separations:=\useKV[ClesPixelArt]{Separations};
+    
+    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:
+    k:=0;
+    for p_=#4:
+    k:=k+1;
+    RetiensNombres[k]=p_;
+    endfor;
+    else:
+    m:=0;
+    for p_=0 upto n-1:
+    m:=m+1;
+    RetiensNombres[m]=substring(p_,p_+1) of BaseLettres;
+    endfor;
+    fi;
+
+    picture Etiquette[];
+    for k=1 upto n:
+    Etiquette[k]=image(
+    label(TEX(RetiensNombres[k]) scaled EchelleScale,(0,0));
+    );
+    endfor;
+    
+    vardef Lecturecsv(expr nomfichier)=
+    for h=hauteur downto 1:
+    string p_;
+    p_=readfrom nomfichier;
+    l:=0;
+    for p=0 step 2 until 2*largeur-2:
+    l:=l+1;
+    if Solution=false:
+    if (substring(p,p+1) of p_)="-":
+    else:
+    for m=0 upto (length BaseLettres-1):
+    if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
+    draw Etiquette[m+1] shifted((l-1)*Unite,(h-1)*Unite);
+    fi;
+    endfor;
+    fi;
+    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;
     endfor;
     closefrom nomfichier;
@@ -120,10 +257,12 @@
     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};}]
+  \begin{mpost}[mpsettings={largeur:=\useKV[ClesPixelArt]{Largeur}; hauteur:=\useKV[ClesPixelArt]{Hauteur}; Unite:=\useKV[ClesPixelArt]{Unite}; boolean Solution,Nombres,Separations; Solution:=\useKV[ClesPixelArt]{Solution}; Nombres:=\useKV[ClesPixelArt]{Nombres}; Separations:=\useKV[ClesPixelArt]{Separations};}]
     string BaseLettres;
     BaseLettres=str #2;
-
+    numeric EchelleScale;
+    EchelleScale=Unite/5mm;
+    
     color ColorEntier[],ColFond;
     n:=0;
     for p_=#3:
@@ -133,13 +272,26 @@
 
     string RetiensNombres[];
     if Nombres:
-    n:=0;
+    k:=0;
     for p_=#4:
-    n:=n+1;
-    RetiensNombres[n]=p_;
+    k:=k+1;
+    RetiensNombres[k]=p_;
     endfor;
+    else:
+    m:=0;
+    for p_=0 upto n-1:
+    m:=m+1;
+    RetiensNombres[m]=substring(p_,p_+1) of BaseLettres;
+    endfor;
     fi;
-        
+
+    picture Etiquette[];
+    for k=1 upto n:
+    Etiquette[k]=image(
+    label(LATEX(RetiensNombres[k]) scaled EchelleScale,(0,0));
+    );
+    endfor;
+    
     vardef Lecturecsv(expr nomfichier)=
     for h=hauteur downto 1:
     string p_;
@@ -147,17 +299,16 @@
     l:=0;
     for p=0 step 2 until 2*largeur-2:
     l:=l+1;
+    if Solution=false:
     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(LATEX(RetiensNombres[m+1]),((l-1)*Unite,(h-1)*Unite));
+    draw Etiquette[m+1] shifted((l-1)*Unite,(h-1)*Unite);
     fi;
     endfor;
-    else:
-    label(LATEX(substring(p,p+1) of p_),((l-1)*Unite,(h-1)*Unite));
     fi;
+    fi;
     if Solution:
     for m=0 upto (length BaseLettres-1):
     if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres:
@@ -167,7 +318,6 @@
     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;
     endfor;
     closefrom nomfichier;
@@ -174,14 +324,24 @@
     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{mpost}
   \fi
-}
+}%
 
 \NewDocumentCommand\BuildPixelArtGeant{m m m m m m}{%
-  \ifluatex
-  \mplibforcehmode
-  \begin{mplibcode}
+  \ifluatex%
+  \mplibforcehmode%
+  \begin{mplibcode}%
     largeur:=\useKV[ClesPixelArt]{Largeur};
     hauteur:=\useKV[ClesPixelArt]{Hauteur};
     largeurd:=\useKV[ClesPixelArt]{LargeurD};
@@ -253,5 +413,5 @@
     
     Lecturecsv("#1");
   \end{mplibcode}
-  \fi
-}
\ No newline at end of file
+  \fi%
+}%
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPourcentage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPourcentage.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPourcentage.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Application : pourcentage
 %%%
+\def\filedatePourcentage{2024/08/04}%
+\def\fileversionPourcentage{0.1}%
+\message{-- \filedatePourcentage\space v\fileversionPourcentage}%
+%
 \setKVdefault[ClesPourcentage]{Appliquer,Calculer=false,Augmenter=false,Reduire=false,Fractionnaire=false,Decimal,Formule=false,Concret=false,GrandeurA=Grandeur A,GrandeurB=Total,Largeur=1cm,MotReduction=diminution,AideTableau=false,ColorFill=white,CouleurTab=gray!15}
 \defKV[ClesPourcentage]{Unite=\setKV[ClesPourcentage]{Concret}}
 \newcommand\Pourcentage[3][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbaFrequence.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbaFrequence.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbaFrequence.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Probabilité et fréquence
 %%%
+\def\filedateProbaFrequence{2024/08/04}%
+\def\fileversionProbaFrequence{0.1}%
+\message{-- \filedateProbaFrequence\space v\fileversionProbaFrequence}%
+%
 \setKVdefault[PfCFrequence]{Couleur=false,Lancers=1,Legende=false}%
 \defKV[PfCFrequence]{ListeCouleurs=\setKV[PfCFrequence]{Couleur}}%
 \defKV[PfCFrequence]{Legendes=\setKV[PfCFrequence]{Legende}\setsepchar{,}\reademptyitems\readlist*\PfMListeLegendes{#1}\reademptyitems}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbabilites.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbabilites.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCProbabilites.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,11 @@
 %%%
 % Proba
 %%%
-\setKVdefault[ClesProba]{Echelle=false,Arbre=false,Branche=2,Angle=60,Rayon=0.25,LongueurEchelle=5,Affichage=0,Grille=1,Incline}
+\def\filedateProba{2024/08/15}%
+\def\fileversionProba{0.1a}%
+\message{-- \filedateProba\space v\fileversionProba}%
+%
+\setKVdefault[ClesProba]{Echelle=false,Arbre=false,Branche=2,Angle=60,Rayon=0.25,LongueurEchelle=5,Affichage=0,Grille=1,Incline,SansProba=false}
 
 \def\Updatetoksproba#1/#2\nil{\addtotok\toklistepointproba{"#1","\footnotesize #2",}}
 \def\Updatetoksprobapdf#1/#2\nil{\addtotok\toklistepointproba{"#1","\noexpand\footnotesize #2",}}
@@ -35,6 +39,8 @@
   \ifluatex
   \mplibforcehmode
   \begin{mplibcode}
+    boolean SansProba;
+    SansProba=\useKV[ClesProba]{SansProba};
     pair A,B,C[],D[];%les noeuds de l'arbre
     %Figure(-10u,-10u,10u,10u);
     A=u*(1,1);
@@ -58,8 +64,10 @@
     fi;
     marque_s:=marque_s*2;
     labeloffset:=labeloffset*3;
+    if SansProba=false:
     label.bot(btex 0 etex,A);
     label.bot(btex 1 etex,B);
+    fi;
     labeloffset:=labeloffset/3;
     n:=1;%compter les informations
     k:=1;% compter les informations noeud pour les placer
@@ -93,7 +101,7 @@
     toto(#2);
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={input PfCGeometrie;}]
+  \begin{mpost}[mpsettings={input PfCGeometrie;boolean SansProba;SansProba=\useKV[ClesProba]{SansProba};}]
     pair A,B,C[],D[];%les noeuds de l'arbre
     Figure(-10u,-10u,10u,10u);
     A=u*(1,1);
@@ -117,8 +125,10 @@
     fi;
     marque_s:=marque_s*2;
     labeloffset:=labeloffset*3;
+    if SansProba=false:
     label.bot(btex 0 etex,A);
     label.bot(btex 1 etex,B);
+    fi;
     labeloffset:=labeloffset/3;
     n:=1;%compter les informations
     k:=1;% compter les informations noeud pour les placer

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCProgrammeCalcul.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCProgrammeCalcul.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCProgrammeCalcul.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%%
 % Prog de calculs "simples"
 %%%%
+\def\filedateProgCalcul{2024/08/04}%
+\def\fileversionProgCalcul{0.1}%
+\message{-- \filedateProgCalcul\space v\fileversionProgCalcul}%
+%
 \setKVdefault[ClesProg]{%
   Ecart=2em,%
   Direct,%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPropor.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPropor.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPropor.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Proportionnalit\'e
 %%%
+\def\filedatePropor{2024/08/04}%
+\def\fileversionPropor{0.1}%
+\message{-- \filedatePropor\space v\fileversionPropor}%
+%
 \setKVdefault[ClesPropor]{GrandeurA=Grandeur A,GrandeurB=Grandeur B,Largeur=1cm,Math=false,Stretch=1,ColorFill=white,CouleurTab=gray!15,Vertical=false,Simple=false,Condense=false}%
 
 \tikzstyle{FlechePropor}=[-stealth]

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCProprietesDroites.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCProprietesDroites.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCProprietesDroites.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Ppt\'es des droites (6eme)
 %%%
+\def\filedatePptesDroites{2024/08/04}%
+\def\fileversionPptesDroites{0.1}%
+\message{-- \filedatePptesDroites\space v\fileversionPptesDroites}%
+%
 \setKVdefault[ClesDroites]{Brouillon=false,CitePropriete=false,Num=1,Figure=false,Remediation=false,FigureSeule=false}
 
 \newcommand\Redaction[4][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuissanceQuatre.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuissanceQuatre.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuissanceQuatre.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,30 +1,40 @@
 %%%
 % Puissances 4
 %%%
-\setKVdefault[ClesPQuatre]{Couleur=Gray,Largeur=2cm,LargeurUn=2cm,Multiplication,Entier,Nombre,Exposant=false,Libre=false,Texte=false,Echelle=2}%
+\def\filedatePquatre{2024/08/04}%
+\def\fileversionPquatre{0.1}%
+\message{-- \filedatePquatre\space v\fileversionPquatre}%
+%
+\setKVdefault[ClesPQuatre]{Couleur=Gray,Largeur=2cm,LargeurUn=2cm,Multiplication,Entier,Nombre,Exposant=false,Libre=false,Texte=false,Echelle=2,Correction=false}%
 \defKV[ClesPQuatre]{Addition=\setKV[ClesPQuatre]{Multiplication=false}}%
 \defKV[ClesPQuatre]{Relatif=\setKV[ClesPQuatre]{Entier=false}}%
 \defKV[ClesPQuatre]{Puissance=\setKV[ClesPQuatre]{Exposant}}%
 \defKV[ClesPQuatre]{Autre=\setKV[ClesPQuatre]{Nombre=false}\setKV[ClesPQuatre]{Libre}}%
 \defKV[ClesPQuatre]{Consignes=\setKV[ClesPQuatre]{Texte}}%
+\defKV[ClesPQuatre]{Solution=\setKV[ClesPQuatre]{Correction}\setsepchar{,}\ignoreemptyitems\readlist*\PQuatreListeS{#1}\reademptyitems}%
+\defKV[ClesPQuatre]{Graine=\PfCGraineAlea{#1}}%
 
 \newtoks\toklistePQuatreh%
 \newtoks\toklistePQuatrev%
+\newtoks\toklistePQuatres%
 \def\UpdatetoksPQuatreh#1\nil{\addtotok\toklistePQuatreh{"#1",}}%
 \def\UpdatetoksPQuatrev#1\nil{\addtotok\toklistePQuatrev{"#1",}}%
+\def\UpdatetoksPQuatres#1\nil{\addtotok\toklistePQuatres{"#1",}}%
 
 \NewDocumentCommand\PQuatre{o +m}{%
   \useKVdefault[ClesPQuatre]%
   \toklistePQuatreh{}%
   \toklistePQuatrev{}%
+  \toklistePQuatres{}%
   \setKV[ClesPQuatre]{#1}%
   \ifboolKV[ClesPQuatre]{Nombre}{%
     \ifboolKV[ClesPQuatre]{Exposant}{%
-      \def\PQuatreListe{$10^{-10}$,$10^{-9}$,$10^{-8}$,$10^{-7}$,$10^{-6}$,$10^{-5}$,$10^{-4}$,$10^{-3}$,$10^{-2}$,$10^{2}$,$10^{3}$,$10^{4}$,$10^{5}$,$10^{6}$,$10^{7}$,$10^{8}$,$10^{9}$,$10^{10}$}%
+      \def\PQuatreListe{-10,-9,-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8,9,10}%
       \MelangeListe{\PQuatreListe}{7}%
-      \readlist*\PQuatreListeH{\faa}%
+      \ignoreemptyitems\readlist*\PQuatreListeH{\faa}%
       \MelangeListe{\PQuatreListe}{7}%
-      \readlist*\PQuatreListeV{\faa}%
+      \ignoreemptyitems\readlist*\PQuatreListeV{\faa}%
+      \reademptyitems
       \foreachitem\compteur\in\PQuatreListeH{\expandafter\UpdatetoksPQuatreh\compteur\nil}%
       \foreachitem\compteur\in\PQuatreListeV{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
     }{%
@@ -39,7 +49,7 @@
         \foreachitem\compteur\in\PQuatreListeV{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
       }{%
         % On choisit aléatoirement les listes de nombres de -10 à -2 union 2 à 10 en faisant deux listes : horizontale et verticale
-        \def\PQuatreListe{$-10$,$-9$,$-8$,$-7$,$-6$,$-5$,$-4$,$-3$,$-2$,2,3,4,5,6,7,8,9,10}%
+        \def\PQuatreListe{-10,-9,-8,-7,-6,-5,-4,-3,-2,2,3,4,5,6,7,8,9,10}%
         \MelangeListe{\PQuatreListe}{7}%
         \readlist*\PQuatreListeH{\faa}%
         \MelangeListe{\PQuatreListe}{7}%
@@ -55,6 +65,10 @@
     \setsepchar{,}%
     \foreachitem\compteur\in\PQuatreListes[1]{\expandafter\UpdatetoksPQuatrev\compteur\nil}%
     \foreachitem\compteur\in\PQuatreListes[2]{\expandafter\UpdatetoksPQuatreh\compteur\nil}%
+    % On crée éventuellement la liste des solutions
+    \ifboolKV[ClesPQuatre]{Correction}{%
+      \foreachitem\compteur\in\PQuatreListeS{\expandafter\UpdatetoksPQuatres\compteur\nil}%
+    }{}%
   }%
   % Une fois les listes construites, on dessine et on place les listes.
   \PQuatreGrille{\the\toklistePQuatrev}{\the\toklistePQuatreh}%
@@ -69,10 +83,12 @@
     PQEchelle=\useKV[ClesPQuatre]{Echelle};
     color PQfond;
     PQfond=\useKV[ClesPQuatre]{Couleur};
-    boolean PQLibre,PQMultiplication,PQTexte;
+    boolean PQLibre,PQMultiplication,PQTexte,Correction,Exposant;
     PQLibre:=\useKV[ClesPQuatre]{Libre};
     PQMultiplication=\useKV[ClesPQuatre]{Multiplication};
     PQTexte:=\useKV[ClesPQuatre]{Texte};
+    Correction=\useKV[ClesPQuatre]{Correction};
+    Exposant=\useKV[ClesPQuatre]{Exposant};
 
     if PQTexte:
     string PQConsignes;
@@ -111,7 +127,13 @@
     if PQLibre:
     if PQTexte:
     label.llft(TEX("\begin{minipage}{"&decimal(PQLargeurUn)&"pt}"&PQConsignes&"\end{minipage}") scaled PQEchelle,A);
+    else:
+    if PQMultiplication:
+    label.llft(TEX("$\times$") scaled PQEchelle,A);
+    else:
+    label.llft(TEX("$+$") scaled PQEchelle,A);
     fi;
+    fi;
     else:
     if PQMultiplication:
     label.llft(TEX("$\times$") scaled PQEchelle,A);
@@ -119,11 +141,23 @@
     label.llft(TEX("$+$") scaled PQEchelle,A);
     fi;
     fi;
+    %
+    string Textev[];
+    string Texteh[];
     labeloffset:=labeloffset/2;
     vardef Vertical(text t)=
     n:=0;
     for p_=t:
+    if PQLibre:
     label.lft(TEX(p_) scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+    else:
+    if Exposant:
+    label.lft(TEX("$10^{"&p_&"}$") scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+    else:
+    label.lft(TEX("\num{"&p_&"}") scaled PQEchelle,A+(0,n*PQLargeur+PQLargeur/2));
+    fi;
+    Textev[n]=p_;
+    fi;
     n:=n+1;
     endfor;
     enddef;
@@ -130,7 +164,16 @@
     vardef Horizontal(text t)=
     n:=0;
     for p_=t:
+    if PQLibre:
     label.bot(TEX(p_) scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+    else:
+    if Exposant:
+    label.bot(TEX("$10^{"&p_&"}$") scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+    else:
+    label.bot(TEX("\num{"&p_&"}") scaled PQEchelle,A+(n*PQLargeur+PQLargeur/2,0));
+    fi;
+    Texteh[n]=p_;
+    fi;
     n:=n+1;
     endfor;
     enddef;
@@ -137,6 +180,33 @@
     labeloffset:=labeloffset*4;
     Vertical(#1);
     Horizontal(#2);
+    % on affiche la solution
+    vardef AfficheSolution(text t)=
+    n:=0;
+    for p_=t:
+    label(TEX(p_),M[n mod nclargeur][n div nchauteur]);
+    n:=n+1;
+    endfor;
+    enddef;
+    if Correction:
+    if PQLibre=false:
+    for k=0 upto (nclargeur-1):
+    for l=0 upto (nchauteur-1):
+    if Exposant:
+    label(TEX("\Large$10^{\fpeval{"&Texteh[k]&"+"&Textev[l]&"}}$"),M[k][l]);
+    else:
+    if PQMultiplication:
+    label(TEX("\Huge\num{\fpeval{"&Texteh[k]&"*"&Textev[l]&"}}"),M[k][l]);
+    else:
+    label(TEX("\Huge\num{\fpeval{"&Texteh[k]&"+"&Textev[l]&"}}"),M[k][l]);
+    fi;
+    fi;
+    endfor;
+    endfor;
+    else:
+    AfficheSolution(\the\toklistePQuatres);
+    fi;
+    fi;
   \end{mplibcode}
   \else%
   \begin{mpost}[mpsettings={Largeur=\useKV[ClesPQuatre]{Largeur};Largeur=\useKV[ClesPQuatre]{Largeur};LargeurUn=\useKV[ClesPQuatre]{LargeurUn};Echelle=\useKV[ClesPQuatre]{Echelle};color fond;fond=\useKV[ClesPQuatre]{Couleur};boolean Libre,Multiplication,Texte;Libre:=\useKV[ClesPQuatre]{Libre};Multiplication=\useKV[ClesPQuatre]{Multiplication};Texte:=\useKV[ClesPQuatre]{Texte};if Texte:string Consignes;Consignes=\useKV[ClesPQuatre]{Consignes};fi;}]

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuzzleSommePyramide.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuzzleSommePyramide.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPuzzleSommePyramide.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Puzzle Somme Pyramide
 %%%
+\def\filedatePuzzleSommePyramide{2024/08/04}%
+\def\fileversionPuzzleSommePyramide{0.1}%
+\message{-- \filedatePuzzleSommePyramide\space v\fileversionPuzzleSommePyramide}%
+%
 \setKVdefault[ClesPuzzleP]{Largeur=40pt,Etages=4,Graines=false,Solutions=false,Jeu,EnonceQuestion=false,NbLignes=7}
 \defKV[ClesPuzzleP]{Graine=\setKV[ClesPuzzleP]{Graines}}%
 \defKV[ClesPuzzleP]{Solution=\setKV[ClesPuzzleP]{Solutions}\setKV[ClesPuzzleP]{Jeu=false}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyraVoca.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyraVoca.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyraVoca.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % PyraVoca
 %%%
+\def\filedatePyraVoca{2024/08/04}%
+\def\fileversionPyraVoca{0.1}%
+\message{-- \filedatePyraVoca\space v\fileversionPyraVoca}%
+%
 \newlength{\PfCPyraVocaHauteur}
 
 \setKVdefault[PyraVoca]{Solution=false,Largeur=15pt}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyramideCalculs.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyramideCalculs.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPyramideCalculs.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Pyramide de calculs
 %%%
+\def\filedatePyraCalc{2024/08/04}%
+\def\fileversionPyraCalc{0.1}%
+\message{-- \filedatePyraCalc\space v\fileversionPyraCalc}%
+%
 \newcommand\DessinePyramideNombreMul[1]{%
   \ifluatex
   \mplibforcehmode
@@ -241,7 +245,7 @@
   \fi
 }%
 
-\setKVdefault[ClesPyramide]{Etages=5,Largeur=2cm,Hauteur=1cm,Vide=false,Inverse=false,Double=false,Couleur=Crimson,Multiplication=false,CouleurNombre=blue,Produit=false,Solution=false,Aide=false,Cote=4cm}%
+\setKVdefault[ClesPyramide]{ToutesOperations=false,Etages=5,Largeur=2cm,Hauteur=1cm,Vide=false,Inverse=false,Double=false,Couleur=Crimson,Multiplication=false,CouleurNombre=blue,Produit=false,Solution=false,Aide=false,Cote=4cm}%
 
 \newtoks\toklistecaseP%
 \def\UpdatetoksPyramide#1\nil{\addtotok\toklistecaseP{"#1",}}%
@@ -250,6 +254,9 @@
 \NewDocumentCommand\PyramideNombre{o m}{%
   \useKVdefault[ClesPyramide]%
   \setKV[ClesPyramide]{#1}%
+  \ifboolKV[ClesPyramide]{ToutesOperations}{%
+    \PyramideOp[#1]{#2}%
+  }{%
   \ifboolKV[ClesPyramide]{Multiplication}{%
     \ifx\bla#2\bla%
     \setKV[ClesPyramide]{Vide=true}%
@@ -278,4 +285,302 @@
     }{Le nombre d'éléments dans la liste des propositions n'est pas compatible avec le nombre d'étages choisi.}%
     \fi%
   }%
+}%
+}%
+
+\setKVdefault[PyramideOp]{Rayon=5mm,Graines=false,Etages=5,Solution=false,Relatifs=false,Case=-1}
+\defKV[PyramideOp]{Graine=\setKV[PyramideOp]{Graines}}
+\defKV[PyramideOp]{CouleurSolution=\setKV[PyramideOp]{Solution}}
+
+\NewDocumentCommand\PyramideOp{om}{%
+  \useKVdefault[PyramideOp]%
+  \setKV[PyramideOp]{#1}%
+  \ifboolKV[PyramideOp]{Relatifs}{%
+    \BuildPyramideOpRelatifs{#2}%
+  }{%
+    \BuildPyramideOp{#2}%
+  }%
+}%
+
+\NewDocumentCommand\BuildPyramideOp{m}{%
+  \ifluatex
+    \mplibforcehmode
+    \mplibnumbersystem{double}
+    \begin{mplibcode}
+      Etages=\useKV[PyramideOp]{Etages};
+      Rayon=\useKV[PyramideOp]{Rayon};
+      Case=\useKV[PyramideOp]{Case};
+      
+      boolean Graines,Solution,Allume[][];
+      
+      Graines=\useKV[PyramideOp]{Graines};
+      if Graines:
+      randomseed:=\useKV[PyramideOp]{Graine};
+      fi;
+
+      Solution=\useKV[PyramideOp]{Solution};
+      if Solution:
+      color CouleurSolution;
+      CouleurSolution=\useKV[PyramideOp]{CouleurSolution};
+      fi;
+      
+      vardef ChoixOperation(expr Nba,Nbb)=
+      if (Nba<Nbb) or (Nba=Nbb):
+      if Nba*Nbb>200:
+      ChoixOp:=ceiling(uniformdeviate(1));
+      else:
+      ChoixOp:=ceiling(uniformdeviate(2));
+      fi;
+      else:
+      if (Nba mod Nbb)<>0:
+      if Nba*Nbb>200:
+      ChoixAlea:=uniformdeviate(1);
+      if ChoixAlea<0.5:
+      ChoixOp:=1;
+      else:
+      ChoixOp:=3;
+      fi;
+      else:
+      ChoixOp:=ceiling(uniformdeviate(3));
+      fi;
+      else:
+      if Nba*Nbb>200:
+      ChoixAlea:=uniformdeviate(1);
+      if ChoixAlea<0.5:
+      ChoixOp:=1;
+      else:
+      ChoixOp:=ceiling(2+uniformdeviate(2));
+      fi;
+      else:
+      ChoixOp:=ceiling(uniformdeviate(4));
+      fi;
+      fi;
+      fi;
+      enddef;
+      
+      numeric Nb[][],ChoixOp[][];
+      
+      pair M[][],N[][];
+      
+      for k=0 upto Etages-1:
+      for l=0 upto Etages-1-k:
+      M[k][l]=Rayon*(1,1)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+      Allume[k][l]=false;
+      endfor;
+      endfor;
+      for k=0 upto Etages-2:
+      for l=0 upto Etages-2-k:
+      N[k][l]=Rayon*(1,1)+(Rayon,0)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+      endfor;
+      endfor;
+
+      n:=0;
+      
+      for p_=#1:
+      Nb[0][n]=p_;
+      if n=Case:
+      if n<Etages-1:
+      Allume[1][n]:=true;
+      else:
+      Allume[1][n-1]:=true;
+      fi;
+      else:
+      Allume[0][n]:=true;
+      fi;
+      n:=n+1;
+      endfor;
+
+      string Op[][];
+      
+      % Détermination des opérations et des valeurs à indiquer.
+      for k=0 upto Etages-1:
+      for l=0 upto Etages-2-k:
+      ChoixOperation(Nb[k][l],Nb[k][l+1]);
+      if ChoixOp=1:
+      Op[k][l]="$+$";
+      Nb[k+1][l]=Nb[k][l]+Nb[k][l+1];
+      elseif ChoixOp=2:
+      Op[k][l]="$\times$";
+      Nb[k+1][l]=Nb[k][l]*Nb[k][l+1];
+      elseif ChoixOp=3:
+      Op[k][l]="$\_$";
+      Nb[k+1][l]=Nb[k][l]-Nb[k][l+1];
+      elseif ChoixOp=4:
+      Op[k][l]="$\div$";
+      Nb[k+1][l]=Nb[k][l]/Nb[k][l+1];
+      fi;
+      endfor;
+      endfor;
+      %Affichage
+      for k=0 upto Etages-1:
+      for l=0 upto Etages-1-k:
+      if Allume[k][l]=false:
+      if Solution:
+      fill cercles(M[k][l],Rayon) withcolor CouleurSolution;
+      label(decimal(Nb[k][l]),M[k][l]);
+      fi;
+      else:
+      label(decimal(Nb[k][l]),M[k][l]);
+      fi;
+      trace cercles(M[k][l],Rayon);
+      endfor;
+      endfor;
+      for k=0 upto Etages-2:
+      for l=0 upto Etages-2-k:
+      fill cercles(N[k][l],2mm) withcolor 0.8white;
+      trace cercles(N[k][l],2mm);
+      label(TEX(Op[k][l]),N[k][l]);
+      endfor;
+      endfor;
+    \end{mplibcode}
+    \mplibnumbersystem{scaled}
+  \fi
+}
+
+\NewDocumentCommand\BuildPyramideOpRelatifs{m}{%
+  \ifluatex
+    \mplibforcehmode
+    \mplibnumbersystem{double}
+    \begin{mplibcode}
+      Etages=\useKV[PyramideOp]{Etages};
+      Rayon=\useKV[PyramideOp]{Rayon};
+      Case=\useKV[PyramideOp]{Case};
+      
+      boolean Graines,Solution,Allume[][];
+      
+      Graines=\useKV[PyramideOp]{Graines};
+      if Graines:
+      randomseed:=\useKV[PyramideOp]{Graine};
+      fi;
+
+      Solution=\useKV[PyramideOp]{Solution};
+      if Solution:
+      color CouleurSolution;
+      CouleurSolution=\useKV[PyramideOp]{CouleurSolution};
+      fi;
+      
+      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+      vardef ChoixOperation(expr Nba,Nbb)=
+      if (Nba=Nbb):
+      if Nba*Nbb>200:
+      ChoixOp:=ceiling(uniformdeviate(1));
+      else:
+      ChoixOp:=ceiling(uniformdeviate(2));
+      fi;
+      elseif (Nba+Nbb=0):
+      if abs(Nba*Nbb)>200:
+      ChoixOp:=3;
+      else:
+      ChoixAlea:=uniformdeviate(1);
+      if ChoixAlea<0.5:
+      ChoixOp:=2;
+      else:
+      ChoixOp:=3;
+      fi;
+      fi;
+      else:
+      if (abs(Nba) mod abs(Nbb))<>0:
+      if abs(Nba*Nbb)>200:
+      ChoixAlea:=uniformdeviate(1);
+      if ChoixAlea<0.5:
+      ChoixOp:=1;
+      else:
+      ChoixOp:=3;
+      fi;
+      else:
+      ChoixOp:=ceiling(uniformdeviate(3));
+      fi;
+      else:
+      if abs(Nba*Nbb)>200:
+      ChoixAlea:=uniformdeviate(1);
+      if ChoixAlea<0.5:
+      ChoixOp:=1;
+      else:
+      ChoixOp:=ceiling(2+uniformdeviate(2));
+      fi;
+      else:
+      ChoixOp:=ceiling(uniformdeviate(4));
+      fi;
+      fi;
+      fi;
+      enddef;
+      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+      
+      numeric Nb[][],ChoixOp[][];
+      
+      pair M[][],N[][];
+      
+      for k=0 upto Etages-1:
+      for l=0 upto Etages-1-k:
+      M[k][l]=Rayon*(1,1)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+      Allume[k][l]=false;
+      endfor;
+      endfor;
+      for k=0 upto Etages-2:
+      for l=0 upto Etages-2-k:
+      N[k][l]=Rayon*(1,1)+(Rayon,0)+2*Rayon*(l,k)+k*2*Rayon*(0.5,-1+cosd(30));
+      endfor;
+      endfor;
+
+      n:=0;
+      
+      for p_=#1:
+      Nb[0][n]=p_;
+      if n=Case:
+      if n<Etages-1:
+      Allume[1][n]:=true;
+      else:
+      Allume[1][n-1]:=true;
+      fi;
+      else:
+      Allume[0][n]:=true;
+      fi;
+      n:=n+1;
+      endfor;
+
+      string Op[][];
+      
+      % Détermination des opérations et des valeurs à indiquer.
+      for k=0 upto Etages-1:
+      for l=0 upto Etages-2-k:
+      ChoixOperation(Nb[k][l],Nb[k][l+1]);
+      if ChoixOp=1:
+      Op[k][l]="$+$";
+      Nb[k+1][l]=Nb[k][l]+Nb[k][l+1];
+      elseif ChoixOp=2:
+      Op[k][l]="$\times$";
+      Nb[k+1][l]=Nb[k][l]*Nb[k][l+1];
+      elseif ChoixOp=3:
+      Op[k][l]="$\_$";
+      Nb[k+1][l]=Nb[k][l]-Nb[k][l+1];
+      elseif ChoixOp=4:
+      Op[k][l]="$\div$";
+      Nb[k+1][l]=Nb[k][l]/Nb[k][l+1];
+      fi;
+      endfor;
+      endfor;
+      %Affichage
+      for k=0 upto Etages-1:
+      for l=0 upto Etages-1-k:
+      if Allume[k][l]=false:
+      if Solution:
+      fill cercles(M[k][l],Rayon) withcolor CouleurSolution;
+      label(TEX("\num{"&decimal(Nb[k][l])&"}"),M[k][l]);
+      fi;
+      else:
+      label(TEX("\num{"&decimal(Nb[k][l])&"}"),M[k][l]);
+      fi;
+      trace cercles(M[k][l],Rayon);
+      endfor;
+      endfor;
+      for k=0 upto Etages-2:
+      for l=0 upto Etages-2-k:
+      fill cercles(N[k][l],2mm) withcolor 0.8white;
+      trace cercles(N[k][l],2mm);
+      label(TEX(Op[k][l]),N[k][l]);
+      endfor;
+      endfor;
+    \end{mplibcode}
+    \mplibnumbersystem{scaled}
+  \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-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCPythagore.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Le th\'eor\`eme de Pythagore
 %%%
+\def\filedatePythagore{2024/08/04}%
+\def\fileversionPythagore{0.1}%
+\message{-- \filedatePythagore\space v\fileversionPythagore}%
+%
 \setKVdefault[ClesPythagore]{Exact=false,AvantRacine=false,Racine=false,Entier=false,Egalite=false,Precision=2,Soustraction=false,Figure=false,FigureSeule=false,Angle=0,Echelle=1cm,Reciproque=false,ReciColonnes=false,Faible=false,Unite=cm,EnchaineA=false,EnchaineB=false,EnchaineC=false,Perso=false,AllPerso=false,SansMots=false,Decalage=5mm,ModeleCouleur=5}%
 \defKV[ClesPythagore]{ValeurA=\setKV[ClesPythagore]{EnchaineA}}%
 \defKV[ClesPythagore]{ValeurB=\setKV[ClesPythagore]{EnchaineB}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsFlash.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsFlash.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsFlash.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Questions Flash
 %%%
+\def\filedateQFlash{2024/08/04}%
+\def\fileversionQFlash{0.1}%
+\message{-- \filedateQFlash\space v\fileversionQFlash}%
+%
 \tcbset{Expression/.style={colback=white,valign=center,left=0mm,right=0mm,top=1mm,bottom=1mm,colframe=white}}%
 \tcbset{ExpressionSerie1/.style={colback=\useKV[ClesFlash]{Couleur1},left=0mm,right=0mm,top=1mm,bottom=1mm}}%
 \tcbset{ExpressionSerie2/.style={colback=\useKV[ClesFlash]{Couleur2},left=0mm,right=0mm,top=1mm,bottom=1mm}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsRelier.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsRelier.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuestionsRelier.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % R\'eponses \`a relier
 %%%
+\def\filedateQRelier{2024/08/04}%
+\def\fileversionQRelier{0.1}%
+\message{-- \filedateQRelier\space v\fileversionQRelier}%
+%
 \setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm,Couleur=black}%
 \defKV[ClesRelie]{Graine=\PfCGraineAlea{#1}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuiSuisJe.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuiSuisJe.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCQuiSuisJe.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Qui suis-je
 %%%
+\def\filedateQsuisuisje{2024/08/04}%
+\def\fileversionQsuisuisje{0.1}%
+\message{-- \filedateQsuisuisje\space v\fileversionQsuisuisje}%
+%
 \setKVdefault[Quisuisje]{Solution=false,Largeur=5mm,Colonnes=5,CodePerso=false,TexteA=Lettre,TexteB=R\'esultat du calcul}%
 
 \newcommand\QuisuisjeEnonce{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRLE.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRLE.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRLE.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Codage RLE
 %%%
+\def\filedateRLE{2024/08/04}%
+\def\fileversionRLE{0.1}%
+\message{-- \filedateRLE\space v\fileversionRLE}%
+%
 \setKVdefault[RLE]{Largeur=10pt,Taille=5,Unite=1cm,Solution=false,Enonce=true}
 
 \newtoks\toklisterle

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRangementNombres.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRangementNombres.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRangementNombres.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Rangement des nombres
 %%%
+\def\filedateRgtNb{2024/08/04}%
+\def\fileversionRgtNb{0.1}%
+\message{-- \filedateRgtNb\space v\fileversionRgtNb}%
+%
 \setKVdefault[ClesRgt]{Croissant,Decroissant=false,Strict,Fraction=false,Details=false,Seul=false}%
 
 \dtlexpandnewvalue%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRapido.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRapido.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRapido.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Rapido
 %%%
+\def\filedateRapido{2024/08/04}%
+\def\fileversionRapido{0.1}%
+\message{-- \filedateRapido\space v\fileversionRapido}%
+%
 %% D'après https://www.facebook.com/groups/994675223903586/user/100017057226847
 %% et une programmation de Laurent Lassale-Carrere
 \newcounter{PfCnexo}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRappelsFormules.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRappelsFormules.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRappelsFormules.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Formules
 %%%
+\def\filedateRapFormules{2024/08/04}%
+\def\fileversionRapFormules{0.1}%
+\message{-- \filedateRapFormules\space v\fileversionRapFormules}%
+%
 \setKVdefault[ClesFormule]{Perimetre=false,Aire=false,Volume=false,Surface=carr\'e,Solide=pav\'e,Angle=0,Ancre={(0,0)},Largeur=5cm,Couleur=white,EchelleEspace=70,Echelle=1cm}
 
 \def\MPFigureCarreCode{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRecyclage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRecyclage.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRecyclage.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Logos Recyclage
 %%%
+\def\filedateRecyclage{2024/08/04}%
+\def\fileversionRecyclage{0.1}%
+\message{-- \filedateRecyclage\space v\fileversionRecyclage}%
+%
 \setKVdefault[Recyclage]{Ticket,Papier=false,Verre=false,Bouteille=false,Carton=false,Couleurs}%
 \defKV[Recyclage]{Couleur=\setKV[Recyclage]{Couleurs=false}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Reperage
 %%%
+\def\filedateReperage{2024/08/04}%
+\def\fileversionReperage{0.1}%
+\message{-- \filedateReperage\space v\fileversionReperage}%
+%
 \setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageUnites=true,MarquePrimaire=true,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,Celsius,Kelvin=false,Farenheit=false,ValeurMin=-4000,ValeurMax=4000,ValeurMiny=-4000,ValeurMaxy=4000,Etages=4,Code=false,Globe=false,Rho=1500,Phi=22,Theta=10,CouleurE=orange,CouleurG=green,Axes=false,TypeProj="persp",Niveaux=false,Decale=false,Tiret=false,Cadre=false,ModeleCouleur=5,EchelleCroix=1,CouleurCroix=black}
 \defKV[ClesReperage]{Traces=\setKV[ClesReperage]{Code}}%
 \defKV[ClesReperage]{Niveau=\setKV[ClesReperage]{Etages=#1}\setKV[ClesReperage]{Niveaux}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresentationGraphique.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresentationGraphique.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresentationGraphique.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,11 @@
 %%%
 % Diff\'erentes représentations graphiques
 %%%
-\setKVdefault[TraceG]{Millimetre=false,Grille=false,Graduations=false,PasGradX=1,PasGradY=1,PasGrilleX=1,PasGrilleY=1,Xmin=-5.5,Xmax=5.5,Xstep=1,Ymin=-5.5,Ymax=5.5,Ystep=1,Bornea=-5.5,Borneb=5.5,LabelX={},LabelY={},LegendeX=false,LegendeY=false,LabelC=0.5,NomCourbe={},Origine={(5.5,5.5)},Fonction=false,Points=false,Invisible=false,CouleurPoint=red,CouleurTrace=black,Epaisseur=1,Relie=false,RelieSegment=false,Marque=dot,Code=false,Vide=false,NbPointsCourbe=100,Tiret=false}%
+\def\filedateRepGraph{2024/08/20}%
+\def\fileversionRepGraph{0.1a}%
+\message{-- \filedateRepGraph\space v\fileversionRepGraph}%
+%
+\setKVdefault[TraceG]{Millimetre=false,Grille=false,Graduations=false,PasGradX=1,PasGradY=1,PasGrilleX=1,PasGrilleY=1,Xmin=-5.5,Xmax=5.5,Xstep=1,Ymin=-5.5,Ymax=5.5,Ystep=1,Bornea=-5.5,Borneb=5.5,LabelX={},LabelY={},LegendeX=false,LegendeY=false,LabelC=0.5,NomCourbe={},Origine={(5.5,5.5)},Fonction=false,Points=false,Invisible=false,CouleurPoint=red,CouleurTrace=black,Epaisseur=1,Relie=false,RelieSegment=false,Marque=dot,Code=false,Vide=false,NbPointsCourbe=100,Tiret=false,StyleTrace=0,Date=false}%
 \defKV[TraceG]{Traces=\setKV[TraceG]{Code}}%
 \defKV[TraceG]{LabelX=\setKV[TraceG]{LegendeX}}%
 \defKV[TraceG]{LabelY=\setKV[TraceG]{LegendeY}}%
@@ -35,6 +39,8 @@
     y.u=1cm/\useKV[TraceG]{Ystep};
     grillex=\useKV[TraceG]{PasGrilleX};
     grilley=\useKV[TraceG]{PasGrilleY};
+    pasgradx=\useKV[TraceG]{PasGradX};
+    pasgrady=\useKV[TraceG]{PasGradY};
     pos=\useKV[TraceG]{LabelC};
 
     marque_p:=str \useKV[TraceG]{Marque};
@@ -49,6 +55,9 @@
     LegendeX:=\useKV[TraceG]{LegendeX};
     LegendeY:=\useKV[TraceG]{LegendeY};
 
+    boolean Date;
+    Date=\useKV[TraceG]{Date};
+    
     boolean Relie;
     Relie=\useKV[TraceG]{Relie};
 
@@ -73,12 +82,16 @@
     fi;
     
     if Graduations:
-    for k=0 step grillex until (xmax-xmin):
+    for k=0 step pasgradx until (xmax-xmin):
     trace ((0,-0.5mm)--(0,0.5mm)) shifted ((k*x.u,0) shifted Origine) withpen pencircle scaled1.25;
+    if Date:
+    label.bot(TEX(decimal(xmin+k)),(k*x.u,0) shifted Origine);
+    else:
     label.bot(TEX("\num{"&decimal(xmin+k)&"}"),(k*x.u,0) shifted Origine);
+    fi;
     endfor;
     label.ulft(TEX("\num{"&decimal(ymin)&"}"),(0,0) shifted Origine);
-    for k=grilley step grilley until (ymax-ymin):
+    for k=1 step pasgrady until (ymax-ymin):
     trace ((-0.5mm,0)--(0.5mm,0)) shifted ((0,k*y.u) shifted Origine) withpen pencircle scaled1.25;
     label.lft(TEX("\num{"&decimal(ymin+k)&"}"),(0,k*y.u) shifted Origine);
     endfor;

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterEntier.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterEntier.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterEntier.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Représenter un entier dans une base
 %%%
+\def\filedateRepEntier{2024/08/04}%
+\def\fileversionRepEntier{0.1}%
+\message{-- \filedateRepEntier\space v\fileversionRepEntier}%
+%
 \setKVdefault[ClesRBase]{Base=10,Echelle=1,Unite=false,Compact=false,Impression=false,ListeCouleurs={Tomato,LightSteelBlue,LightGreen,Cornsilk}}%
 
 \newcommand\RepresenterEntier[2][]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Fractions
 %%%
+\def\filedateRepFrac{2024/08/04}%
+\def\fileversionRepFrac{0.1}%
+\message{-- \filedateRepFrac\space v\fileversionRepFrac}%
+%
 \setKVdefault[ClesFraction]{Rayon=2cm,Disque,Regulier=false,Segment=false,Rectangle=false,Longueur=5cm,Largeur=2cm,Cotes=5,Triangle=false,Parts=3,Eprouvette=false,Couleur=green,Reponse=false,Multiple=1,Hachures=false,Epaisseur=1}
 
 \def\MPFractionEprouvetteCode{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterTableur.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterTableur.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterTableur.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,9 +1,15 @@
 %%%
 % Tableur
 %%%
-\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false,DebutColonnes=0,DebutLignes=0,LargeurNombre=10pt}%
+\def\filedateRepTab{2024/08/21}%
+\def\fileversionRepTab{0.1a}%
+\message{-- \filedateRepTab\space v\fileversionRepTab}%
+%
+\setKVdefault[Tableur]{Colonnes=4,Largeur=30pt,LargeurUn=30pt,Bandeau=true,Formule={},Cellule=A1,Ligne=0,Colonne=0,PasL=1,PasC=1,Selection=false,DebutColonnes=0,DebutLignes=0,LargeurNombre=10pt,Apres=false,ApresBandeau=false}%
 %Idee de P. Nuns
 \defKV[Tableur]{Couleur=\setKV[Tableur]{Selection}}%
+\defKV[Tableur]{CodeAfter=\setKV[Tableur]{Apres}}%
+\defKV[Tableur]{CodeAfterBandeau=\setKV[Tableur]{ApresBandeau}}%
 %
 
 %Bas\'e sur un code de Christian T\'ell\'ech\'ea.
@@ -20,6 +26,9 @@
   \ifremain at lines#2\\\@nil{\addtot at b&\subst at eol#2\@nil}{\addtot at b{#2\CodeAfter\xintifboolexpr{\useKV[Tableur]{Ligne}==0 || \useKV[Tableur]{Colonne}==0}{}{%
         \tikz\node at (row-\fpeval{\useKV[Tableur]{Ligne}+1+\useKV[Tableur]{PasL}}-|col-\fpeval{\useKV[Tableur]{Colonne}+1+\useKV[Tableur]{PasC}}) {\tiny$\blacksquare$};%
       }%
+      \ifboolKV[Tableur]{Apres}{%
+        \useKV[Tableur]{CodeAfter}%
+      }{}%
     \end{NiceTabular}}}}%
 \long\def\collectcp at body#1\end{\subst at eol#1\@nil\end}%
 
@@ -103,6 +112,10 @@
   \ifboolKV[Tableur]{Bandeau}{%
     \begin{NiceTabular}{p{\PfCTableurLargeur}p{10pt}p{50pt}p{\PfCLongInter}}%
       \Block[draw,l]{}{\useKV[Tableur]{Cellule}}&\Block[draw]{}{\scriptsize$\blacktriangledown$}&\Block{}{$f_x$\hfill$\sum$~\scriptsize$\blacktriangledown$\hfill$=$}&\Block[draw]{}{\useKV[Tableur]{Formule}\hfill\scriptsize$\blacktriangledown$}\\
+      \CodeAfter
+      \ifboolKV[Tableur]{ApresBandeau}{%
+        \useKV[Tableur]{CodeAfterBandeau}%
+      }{}%
     \end{NiceTabular}%
     \nopagebreak%
     \\%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCReseauxSociaux.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCReseauxSociaux.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCReseauxSociaux.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Twitter
 %%%
+\def\filedateReseaux{2024/08/04}%
+\def\fileversionReseaux{0.1}%
+\message{-- \filedateReseaux\space v\fileversionReseaux}%
+%
 \setKVdefault[Twitter]{Largeur=0.95\linewidth,Auteur=Christophe,Date=\today,Url=ViveLaTeX,EchelleLogo=0.035,Logo=DrStrange,Publie=false}%
 
 \NewDocumentEnvironment{Twitter}{o+b}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCResoudreEquation.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCResoudreEquation.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCResoudreEquation.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Equations
 %%%
+\def\filedateEquation{2024/08/04}%
+\def\fileversionEquation{0.1}%
+\message{-- \filedateEquation\space v\fileversionEquation}%
+%
 \setKVdefault[ClesEquation]{Ecart=0.5,Fleches=false,FlecheDiv=false,Laurent=false,Decomposition=false,Terme=false,Composition=false,Symbole=false,ModeleBarre=false,Decimal=false,Entier=false,Lettre=x,Solution=false,LettreSol=true,Bloc=false,Simplification=false,CouleurTerme=black,CouleurCompo=black,CouleurSous=red,CouleurSymbole=orange,Verification=false,Nombre=0,Egalite=false,Produit=false,Facteurs=false,Carre=false,Exact=false,Pose=false,Equivalence=false}
 
 \newcommand\rightcomment[4]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Ronde infernale
 %%%
+\def\filedateRondeI{2024/08/04}%
+\def\fileversionRondeI{0.1}%
+\message{-- \filedateRondeI\space v\fileversionRondeI}%
+%
 \newcommand\TestNombrePremier[1]{%
   % #1 le nombre \`a tester
   \newcount\anp\newcount\bnp\newcount\cnp%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Rose
 %%%
+\def\filedateRose{2024/08/04}%
+\def\fileversionRose{0.1}%
+\message{-- \filedateRose\space v\fileversionRose}%
+%
 \setKVdefault[ClesRose]{Vide=false,Couleur=white,Produits=false,Solution=false,Rayon=2cm,Petales=7,Aide=false,FacteurMin=2,FacteurMax=10,ProduitVide=false,CaseVide=false,Polygone=false,Nom=Rose1,Creation=false,Addition=false,Melange=false,CDot=false}%
 \defKV[ClesRose]{LesNombres=\setKV[ClesRose]{Creation}}%
 \defKV[ClesRose]{LesProduits=\setKV[ClesRose]{Creation}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCScratch.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCScratch.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCScratch.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%%
 % Scratch
 %%%%
+\def\filedateScratch{2024/08/04}%
+\def\fileversionScratch{0.1}%
+\message{-- \filedateScratch\space v\fileversionScratch}%
+%
 \newlength{\longbarreheight}
 \setlength{\longbarreheight}{2.1ex+3pt}
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,10 +1,14 @@
 %%%
 % Serpent
 %%%
+\def\filedateSerpent{2024/08/04}%
+\def\fileversionSerpent{0.1}%
+\message{-- \filedateSerpent\space v\fileversionSerpent}%
+%
 \newtoks\tokListeSerpentPerso{}%
 \def\UpdatetoksSerpent#1\nil{\addtotok\tokListeSerpentPerso{"#1"}}%
 
-\setKVdefault[Serpent]{Cases=9,Case=1,Solution=false,PasQuad=7mm,ValeurMin=2,ValeurMax=10,Creation=false,Graines=false}
+\setKVdefault[Serpent]{Cases=9,Case=1,Solution=false,PasQuad=7mm,ValeurMin=2,ValeurMax=10,Creation=false,Graines=false,Direct=false,Disque=false,Spirale=false}
 \defKV[Serpent]{CouleurSolution=\setKV[Serpent]{Solution}}%
 \defKV[Serpent]{Perso=\setKV[Serpent]{Creation}\xdef\PfCFooCheminSerpent{#1}}%+Liste des déplacements
 \defKV[Serpent]{Graine=\setKV[Serpent]{Graines}}%
@@ -19,7 +23,14 @@
     \BuildSerpent{\the\tokListeSerpentPerso}%
     \reademptyitems%
   }{%
-    \BuildSerpent{}%
+    \ifboolKV[Serpent]{Direct}{%
+        \BuildSerpentDirect{}%
+    }{\ifboolKV[Serpent]{Spirale}{%
+        %\BuildSerpentSpirale{}%
+      }{%
+        \BuildSerpent{}%
+      }%
+    }%
   }%
 }%
 
@@ -29,10 +40,11 @@
     \mplibnumbersystem{double}%
     \begin{mplibcode}
       %
-      boolean Solution,Perso,Graines;
+      boolean Solution,Perso,Graines,Disque;
       Solution=\useKV[Serpent]{Solution};
       Perso=\useKV[Serpent]{Creation};
       Graines=\useKV[Serpent]{Graines};
+      Disque=\useKV[Serpent]{Disque};
       %
       if Graines:
       randomseed:=\useKV[Serpent]{Graine};
@@ -210,7 +222,11 @@
       fi;
       fi;
       for k=1 upto LongueurChemin:
+      if Disque:
+      trace (fullcircle scaled (2*PasQuad)) shifted (N[k]+PasQuad*(1,1));
+      else:
       trace (unitsquare scaled (2*PasQuad)) shifted N[k];
+      fi;
       endfor;
       for k=1 upto LongueurChemin-1:
       drawarrow (center (unitsquare scaled (2*PasQuad)) shifted N[k])--(center (unitsquare scaled (2*PasQuad)) shifted N[k+1]) cutbefore ((unitsquare scaled (2*PasQuad)) shifted N[k]) cutafter ((unitsquare scaled (2*PasQuad)) shifted N[k+1]);
@@ -345,6 +361,195 @@
       elseif alea=2:
       EcrireDifference(k);
       elseif alea=3:
+      EcrireProduit(k);
+      elseif alea=4:
+      EcrireQuotient(k);
+      fi;
+      fi;
+      fi;
+      fi;
+      if k=CaseDepart:
+      label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1)));
+      else:
+      if Solution:
+      label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+      fi;
+      fi;
+      endfor;
+    \end{mplibcode}
+    \mplibnumbersystem{scaled}%
+  \fi
+}%
+
+\NewDocumentCommand\BuildSerpentDirect{m}{%
+  \ifluatex%
+    \mplibforcehmode%
+    \mplibnumbersystem{double}%
+    \begin{mplibcode}
+      %
+      boolean Solution,Graines,Disque;
+      Solution=\useKV[Serpent]{Solution};
+      Graines=\useKV[Serpent]{Graines};
+      Disque=\useKV[Serpent]{Disque};
+      %
+      if Graines:
+      randomseed:=\useKV[Serpent]{Graine};
+      fi;
+      %
+      color CoulSolution;
+      if Solution:
+      CoulSolution=\useKV[Serpent]{CouleurSolution};
+      fi;
+      %
+      numeric LongueurChemin,Depart;
+      LongueurChemin=\useKV[Serpent]{Cases};
+      ValeurMin=\useKV[Serpent]{ValeurMin};
+      ValeurMax=\useKV[Serpent]{ValeurMax};
+      CaseDepart=\useKV[Serpent]{Case};
+      Depart=ValeurMin+floor(uniformdeviate(ValeurMax-ValeurMin+1));
+      %
+      PasQuad=5mm;%\useKV[Serpent]{PasQuad};
+      %
+      pair N[];
+      N[1]:=4*PasQuad*(0,0);
+      for k=2 upto LongueurChemin:
+      N[k]=N[k-1]+4*PasQuad*(1,0);
+      endfor;
+      % Tracage
+      if CaseDepart=1:
+      label(TEX("\Large"&decimal(Depart)),N[1] shifted(PasQuad*(1,1)));
+      else:
+      if Solution:
+      label(TEX("\Large"&decimal(Depart)),N[1] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+      fi;
+      fi;
+      for k=1 upto LongueurChemin:
+      if Disque:
+      trace (fullcircle scaled (2*PasQuad)) shifted (N[k]+PasQuad*(1,1));
+      else:
+      trace (unitsquare scaled (2*PasQuad)) shifted N[k];
+      fi;
+      endfor;
+      %
+      path cheminfleche[];
+      path CheminFlecheBase;
+      CheminFlecheBase=(0,2*PasQuad){dir45}..(4*PasQuad,2*PasQuad);
+      for k=1 upto LongueurChemin-1:
+      cheminfleche[k]=CheminFlecheBase shifted (N[k]+(PasQuad,0));
+      %cheminfleche[k]=(center (unitsquare scaled (2*PasQuad)) shifted N[k]){dir45}..(center (unitsquare scaled (2*PasQuad)) shifted N[k+1]) cutbefore ((unitsquare scaled (2*PasQuad)) shifted N[k]) cutafter ((unitsquare scaled (2*PasQuad)) shifted N[k+1]);
+      drawarrow cheminfleche[k];
+      endfor;
+      %%drawoptions();
+      boolean PremierChiffre;
+      PremierChiffre=true;
+      %% Test Premier
+      vardef TestPremier(expr nombre)=
+      nbdiviseur:=0;
+      nbdiv:=0;
+      for k=2 upto nombre:
+      if (nombre mod k)=0:
+      nbdiviseur:=nbdiviseur+1;
+      if k<11:
+      nbdiv:=nbdiv+1;
+      Diviseur[nbdiv]:=k;
+      fi;
+      fi;
+      endfor;
+      if nbdiviseur>1:
+      PremierChiffre:=false;
+      else:
+      PremierChiffre:=true;
+      fi;
+      enddef;
+      % Les opérations
+      numeric Chiffre[];
+      pair St[];
+      Chiffre[1]=Depart;
+      %
+      vardef EcrireSomme(expr tt)=
+      Somme:=5+ceiling(uniformdeviate(10));
+      Chiffre[tt]=Chiffre[tt-1]+Somme;
+      St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+      label.top(TEX("$+"&decimal(Somme)&"$"),St[tt]);
+      enddef;
+      %
+      vardef EcrireProduit(expr tt)=
+      Multiple:=1+ceiling(uniformdeviate(8));
+      Chiffre[tt]=Chiffre[tt-1]*Multiple;
+      St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+      label.top(TEX("$\PfCSymbolTimes"&decimal(Multiple)&"$"),St[tt]);
+      enddef;
+      %
+      vardef EcrireDifferenceCent(expr tt)=
+      Difference:=ceiling(Chiffre[tt-1]-15+uniformdeviate(10));
+      Chiffre[tt]=Chiffre[tt-1]-Difference;
+      St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+      label.top(TEX("$-"&decimal(Difference)&"$"),St[tt]);
+      enddef;
+      %
+      vardef EcrireDifference(expr tt)=
+      Difference:=if Chiffre[tt-1]<20:1+floor(uniformdeviate(Chiffre[tt-1]-1)) else: 5+ceiling(uniformdeviate(10)) fi;
+      Chiffre[tt]=Chiffre[tt-1]-Difference;
+      St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+      label.top(TEX("$-"&decimal(Difference)&"$"),St[tt]);
+      enddef;
+      %
+      vardef EcrireQuotient(expr tt)=
+      choixdiv:=ceiling(nbdiv);
+      Quotient:=Diviseur[choixdiv];
+      Chiffre[tt]=Chiffre[tt-1] div Quotient;
+      St[tt]=point(0.5*length cheminfleche[tt-1]) of cheminfleche[tt-1];
+      label.top(TEX("$\PfCSymbolDiv"&decimal(Quotient)&"$"),St[tt]);
+      enddef;
+      %
+      for k=2 upto LongueurChemin:
+      if (Chiffre[k-1]=1) or (Chiffre[k-1]=0):
+      % On additionne ou on multiplie si c'est un
+      if Chiffre[k-1]=1:
+      alea:=ceiling(uniformdeviate(2));
+      if alea=1:
+      EcrireSomme(k);
+      else:
+      EcrireProduit(k);
+      fi;
+      else:
+      EcrireSomme(k);
+      fi;
+      else:
+      TestPremier(Chiffre[k-1]);
+      if PremierChiffre:
+      if Chiffre[k-1]>100:
+      EcrireDifferenceCent(k);
+      else:
+      alea:=ceiling(uniformdeviate(3));
+      if alea=1:
+      EcrireSomme(k);
+      elseif alea=2:
+      EcrireDifference(k);
+      elseif alea=3:
+      EcrireProduit(k);      
+      fi;
+      fi;
+      if k=CaseDepart:
+      label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1)));
+      elseif Solution:
+      label(TEX("\Large"&decimal(Chiffre[k])),N[k] shifted(PasQuad*(1,1))) withcolor CoulSolution;
+      fi;
+      else:
+      if Chiffre[k-1]>100:
+      alea:=ceiling(uniformdeviate(2));
+      if alea=1:
+      EcrireDifferenceCent(k);
+      else:
+      EcrireQuotient(k);
+      fi;
+      else:
+      alea:=ceiling(uniformdeviate(4));
+      if alea=1:
+      EcrireSomme(k);
+      elseif alea=2:
+      EcrireDifference(k);
+      elseif alea=3:
       EcrireProduit(k);
       elseif alea=4:
       EcrireQuotient(k);

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCShikaku.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCShikaku.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCShikaku.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Shikaku
 %%%
+\def\filedateShikaku{2024/08/04}%
+\def\fileversionShikaku{0.1}%
+\message{-- \filedateShikaku\space v\fileversionShikaku}%
+%
 \newcounter{PfCShikakuNom}
 \setcounter{PfCShikakuNom}{0}
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCSimplifierFraction.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCSimplifierFraction.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCSimplifierFraction.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Simplification
 %%%
+\def\filedateSimpFraction{2024/08/13}%
+\def\fileversionSimpFraction{0.1a}%
+\message{-- \filedateSimpFraction\space v\fileversionSimpFraction}%
+%
 \makeatletter%by christian Tellechea
 % Calcul du PGCD de #1 et #2
 \newcount\cnt at a\newcount\cnt at b\newcount\pgcd
@@ -160,7 +164,7 @@
   \ifboolKV[ClesSimplification]{Debut}{%
     \ensuremath{%
       \whiledo{\PfCDivCom>1}{%
-        \frac{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}=\frac{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}%
+        \frac{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}}{\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}\times\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}}=\frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}}%
         \xdef\PfCNumerateurDiv{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}%
         \xdef\PfCDenominateurDiv{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}%
         \DiviseurCommun{\PfCNumerateurDiv}{\PfCDenominateurDiv}%
@@ -170,7 +174,7 @@
   }{%
     \ensuremath{%
       \whiledo{\PfCDivCom>1}{%
-        \frac{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}=\frac{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}%
+        \frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\the\PfCDivCom}}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\the\PfCDivCom}}}\times\mathcolor{PfCSimpliCol}{\num{\the\PfCDivCom}}}=\frac{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}}}{\ifboolKV[ClesSimplification]{ACompleter}{\pointilles[20pt]}{\num{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}}}%
         \xdef\PfCNumerateurDiv{\fpeval{\PfCNumerateurDiv/\PfCDivCom}}%
         \xdef\PfCDenominateurDiv{\fpeval{\PfCDenominateurDiv/\PfCDivCom}}%
         \DiviseurCommun{\PfCNumerateurDiv}{\PfCDenominateurDiv}%
@@ -180,7 +184,7 @@
   }%
 }%
 
-\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0,Couleur=black,Debut=false,Impose=false,Decomposition=false,DecompositionSeule=false}%
+\setKVdefault[ClesSimplification]{Details=false,All=false,Longue=false,Fleches=false,Contraire=0,Couleur=black,Debut=false,Impose=false,Decomposition=false,DecompositionSeule=false,ACompleter=false}%
 \defKV[ClesSimplification]{Nombre=\setKV[ClesSimplification]{Impose}}%
 
 \newcounter{NbFrac}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCSolides.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCSolides.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCSolides.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Solide et sections
 %%%
+\def\filedateSolides{2024/08/20}%
+\def\fileversionSolides{0.1a}%
+\message{-- \filedateSolides\space v\fileversionSolides}%
+%
 \setKVdefault[ClesSolides]{Nom=cube,Aretes,Sommets,Pointilles,Largeur=1.5,Hauteur=1,Profondeur=0.75,ListeSommets={A,B,C,D,E,F,G,H},Rho=1500,Phi=30,Theta=20,Distance=50,Code=false,Couleur=white,Anglex=0,Arete=1,RayonCone=1,HauteurCone=2,HauteurPrisme=2,SommetsPrisme=6,HauteurPyramide=2,SommetsPyramide=5,Reguliere=false,DecalageSommet={(0,0,0)},RayonCylindre=1,HauteurCylindre=2,RayonSphere=1,AutoLabel=true,Sections=false,CoefSection=0.3,Axes=false,PointsSection={M,N,O,P},RemplisSection=false,ObjetSection={0.5,E,H,0.25,F,G,G,B}}%
 \defKV[ClesSolides]{Traces=\setKV[ClesSolides]{Code}}%
 \defKV[ClesSolides]{Section=\setKV[ClesSolides]{Sections}}%
@@ -101,6 +105,7 @@
     %Fc[101]:=1;Fc[102]:=2;Fc[103]:=6;Fc[104]:=5;
     %endfor;
     endfor;
+    DefinirSommets(#1);
     DessineObjet;
 %    picture Depart;
 %    Depart=currentpicture;
@@ -108,6 +113,10 @@
 %    for k=1 upto 8:
 %    dotlabel.top(decimal(k),Projette(TS[k]));
 %    endfor;
+    u:=1cm;
+    if Code:
+    \useKV[ClesSolides]{Traces};
+    fi;
   \end{mplibcode}
   \mplibnumbersystem{scaled}
   \fi
@@ -487,7 +496,6 @@
     if Code:
     \useKV[ClesSolides]{Traces};
     fi;
-
   \end{mplibcode}
   \mplibnumbersystem{scaled}
   \fi
@@ -729,7 +737,7 @@
 %    trace polygone(MSection1,MSection2,MSection3,MSection4);
     color dcer,ccer;
     % 1er cote -> ok
-    DotLabel("",RetiensDefSection[4]);
+    %DotLabel("",RetiensDefSection[4]);
     dcer:=Oeil-RetiensDefSection[4];
     ccer:=Normal(RetiensDefSection[4],RetiensDefSection[2],RetiensDefSection[1]);
     draw chemin(MSection1,MSection2) if (ProduitScalaire(dcer,ccer)<0):dashed evenly fi;

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCSommeAngles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCSommeAngles.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCSommeAngles.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Somme des angles
 %%%
+\def\filedateSommeAngles{2024/08/04}%
+\def\fileversionSommeAngles{0.1}%
+\message{-- \filedateSommeAngles\space v\fileversionSommeAngles}%
+%
 \setKVdefault[ClesSommeAngle]{Detail=true,Isocele=false,Rectangle=false,Figure=false,FigureSeule=false,Angle=0,Perso=false,Echelle=1cm}%
 
 \def\MPFigureSommeAngle#1#2#3#4#5{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCSquaro.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCSquaro.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCSquaro.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,10 +1,21 @@
 %%%
 % Squaro
 %%%
-\setKVdefault[Squaro]{Solution=false,Longueur=8,Largeur=8,Echelle=8mm,Nom=Jeu1,Graines=false}
+\def\filedateSquarO{2024/08/04}%
+\def\fileversionSquarO{0.1}%
+\message{-- \filedateSquarO\space v\fileversionSquarO}%
+%
+\newtoks\tokPfCSquaro%
+\def\UpdatetoksSquaro#1\nil{\addtotok\tokPfCSquaro{#1,}}%
+
+\setKVdefault[Squaro]{Solution=false,Longueur=8,Largeur=8,Echelle=8mm,Nom=Jeu1,Graines=false,Persos=false}
 \defKV[Squaro]{Graine=\setKV[Squaro]{Graines}}%
+\defKV[Squaro]{Perso=\setKV[Squaro]{Persos}\setsepchar{,}\ignoreemptyitems\readlist*\ListeSquaroPerso{#1}\reademptyitems%
+  \foreachitem\compteur\in\ListeSquaroPerso{\expandafter\UpdatetoksSquaro\compteur\nil}%
+}%
 
 \NewDocumentCommand\SquarO{o}{%
+  \tokPfCSquaro{}%
   \useKVdefault[Squaro]%
   \setKV[Squaro]{#1}%
   \BuildSquaro%
@@ -14,9 +25,10 @@
   numeric Longueur,Largeur;
   Longueur=\useKV[Squaro]{Longueur};
   Largeur=\useKV[Squaro]{Largeur};
-  boolean Solution,Graines;
+  boolean Solution,Graines,Persos;
   Solution=\useKV[Squaro]{Solution};
   Graines=\useKV[Squaro]{Graines};
+  Persos=\useKV[Squaro]{Persos};
   if Graines:
   randomseed:=\useKV[Squaro]{Graine};
   fi;
@@ -26,7 +38,28 @@
   p:=0;
   pair A[];%centre des carrés.
   boolean Allume[][];
-}
+  %
+  if Persos:
+    n:=0;
+    for p_=\the\tokPfCSquaro:
+    n:=n+1;
+    ligne:=(n-1) div (Largeur+2);
+    colonne:=(n-1) mod (Longueur+1);
+    Allume[ligne][colonne]=if p_=1:true else:false fi;
+    endfor;
+  else:
+    for k=0 upto Largeur:
+    for l=0 upto Longueur:
+    m:=uniformdeviate(1);
+    if m<0.5:
+    Allume[k][l]=true;
+    else:
+    Allume[k][l]=false;
+    fi;
+    endfor;
+    endfor;
+  fi;
+}%
 
 \NewDocumentCommand\BuildSquaro{}{%
   \ifluatex
@@ -33,6 +66,7 @@
   \mplibforcehmode
   \begin{mplibcode}
     \BuildSquarobase
+    % 
     for k=0 upto Longueur-1:
     for l=0 upto Largeur-1:
     p:=p+1;
@@ -40,21 +74,18 @@
     trace (unitsquare scaled u) shifted A[p];
     endfor;
     endfor;
-
+    % 
     for k=0 upto Largeur:
     for l=0 upto Longueur:
-    m:=uniformdeviate(1);
-    if m<0.5:
-    Allume[k][l]=true;
+    if Allume[k][l]:
     fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
     else:
-    Allume[k][l]=false;
     fill cercles(u*(l,-k+1),1mm) withcolor white;
     fi;
     trace cercles(u*(l,-k+1),1mm);
     endfor;
     endfor;
-
+    % 
     for k=0 upto Largeur-1:
     for l=0 upto Longueur-1:
     Retiens:=0;
@@ -67,29 +98,28 @@
     endfor;
   \end{mplibcode}
   \else
-  \begin{mpost}[mpsettings={\BuildSquarobase}]
-    for k=0 upto Longueur-1:
+    \begin{mpost}[mpsettings={\BuildSquarobase}]
+      %
+      %
+  for k=0 upto Longueur-1:
     for l=0 upto Largeur-1:
     p:=p+1;
     A[p]=u*(k,-l);
     trace (unitsquare scaled u) shifted A[p];
-    endfor;
-    endfor;
-
-    for k=0 upto Largeur:
-    for l=0 upto Longueur:
-    m:=uniformdeviate(1);
-    if m<0.5:
-    Allume[k][l]=true;
+   endfor;
+  endfor;
+    %
+  for k=0 upto Largeur:
+   for l=0 upto Longueur:
+    if Allume[k][l]:
     fill cercles(u*(l,-k+1),1mm) if Solution=false:withcolor white fi;
     else:
-    Allume[k][l]=false;
     fill cercles(u*(l,-k+1),1mm) withcolor white;
     fi;
     trace cercles(u*(l,-k+1),1mm);
-    endfor;
-    endfor;
-
+   endfor;
+   endfor;
+   %
     for k=0 upto Largeur-1:
     for l=0 upto Longueur-1:
     Retiens:=0;

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Statistiques
 %%%
+\def\filedateStat{2024/08/04}%
+\def\fileversionStat{0.1}%
+\message{-- \filedateStat\space v\fileversionStat}%
+%
 \newcommand\NbDonnees{}%
 \newcommand\SommeDonnees{}%
 \newcommand\EffectifTotal{}%
@@ -18,7 +22,7 @@
 Etendue=false,Moyenne=false,SET=false,ValeurExacte=false,MoyenneA,Somme,Mediane=false,DetailsMediane=false,UneMediane=false,QuartileUn=false,QuartileTrois=false,Total=false,Concret=false,%
 Largeur=1cm,Precision=2,PrecisionF=0,Donnee=Valeurs,Effectif=Effectif,Grille=false,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,Classes=false,TableauVide=false,ECC=false,Coupure=10,CouleurTab=gray!15,Graphique=false,Batons=true,Centre=false,CentreVide=false,Crochets=false,%
 % 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,%
+EpaisseurBatons=1,ListeCouleursB={a},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,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,%on utilisera également la clé CouleurDefaut
 %Pour les représentations
@@ -466,7 +470,6 @@
   unitex:=\useKV[ClesStat]{Unitex}*cm;
   unitey:=\useKV[ClesStat]{Unitey}*cm;
   xpartorigine:=\useKV[ClesStat]{Origine};
-  AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
   boolean Rotation,Lecture,LectureFine,AideLecture,DonneesSup,Reponses,Qualitatif,Tiret,LegendeVide,Retour,GrandNombrex,GrandNombrey,Date,Grille;
   GrandNombrex=\useKV[ClesStat]{GrandNombrex};
   GrandNombrey=\useKV[ClesStat]{GrandNombrey};
@@ -478,6 +481,11 @@
   fi;
   Date:=\useKV[ClesStat]{Date};
   Rotation=\useKV[ClesStat]{AbscisseRotation};
+  if Rotation:
+  AngleRotation=\useKV[ClesStat]{AngleRotationAbscisse};
+  else:
+  AngleRotation=0;
+  fi;
   Lecture:=\useKV[ClesStat]{Lecture};
   LectureFine:=\useKV[ClesStat]{LectureFine};
   AideLecture:=\useKV[ClesStat]{AideLecture};

Added: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauDoubleEntree.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauDoubleEntree.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauDoubleEntree.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -0,0 +1,62 @@
+%%%
+% Tableau Double Entree
+%%%
+\def\filedateTDE{2024/08/15}%
+\def\fileversionTDE{0.1a}%
+\message{-- \filedateTDE\space v\fileversionTDE}%
+
+\setKVdefault[TDE]{Colonnes=5,Lignes=4,Legende={},LegendesH={B,C,D,Total},LegendesV={1,2,Total},Couleur=Cornsilk,Vide=false,Totaux,Questions=false,Stretch=1}%
+
+\NewDocumentCommand\TableauDoubleEntree{om}{%
+  \useKVdefault[TDE]%
+  \setKV[TDE]{#1}%
+  \xdef\PfCFooH{\useKV[TDE]{LegendesH}}%
+  \xdef\PfCFooV{\useKV[TDE]{LegendesV}}%
+  \setsepchar{,}\reademptyitems%
+  \readlist*\ListeH{\PfCFooH}%
+  \readlist*\ListeV{\PfCFooV}%
+  \readlist*\ListeDonnees{#2}%
+  \ifboolKV[TDE]{Totaux}{}{%
+    % Vider les lignes du total
+    \xintFor* ##1 in{\xintSeq{1}{\fpeval{\ListeVlen-1}}}\do{%
+      \xintFor* ##2 in{\xintSeq{1}{\fpeval{\ListeHlen-0}}}\do{%
+        \modulo{\fpeval{##2+(##1-1)*(\ListeHlen-0)}}{\fpeval{\ListeHlen-0}}%
+        \ifnum\remainder=0\relax%
+          \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,}%
+        \else%
+          \ifnum\fpeval{##2+(##1-1)*(\ListeHlen-0)}=1\relax%
+            \xdef\ListeDonneesSansTotauxAv{\ListeDonnees[\fpeval{##2+(##1-1)*(\ListeHlen-0)}]}%
+          \else%
+            \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,\ListeDonnees[\fpeval{##2+(##1-1)*(\ListeHlen-0)}]}%
+          \fi%
+        \fi%
+      }%
+    }%
+    % On ajoute la dernière ligne qui est vide
+    \xintFor* ##2 in{\xintSeq{1}{\fpeval{\ListeHlen-0}}}\do{%
+      \xdef\ListeDonneesSansTotauxAv{\ListeDonneesSansTotauxAv,}%
+    }%
+    % On relit la liste des données.
+    \setsepchar{,}\reademptyitems%
+    \readlist*\ListeDonnees{\ListeDonneesSansTotauxAv}%
+    \reademptyitems%
+  }%
+  %
+  % Pour vider le tableau, on utilise la clé <Vide>.
+  % On choisit quelques éléments ^^ à écrire
+  \ifboolKV[TDE]{Questions}{%
+    %en réflexion (voir v5)
+  }{}%
+  %
+  \colorlet{PfCColorTDE}{\useKV[TDE]{Couleur}}%
+  \renewcommand{\arraystretch}{\useKV[TDE]{Stretch}}%
+  \begin{tabular}{|*{\fpeval{\ListeHlen+1}}{c|}}
+    \hline
+    \cellcolor{PfCColorTDE}\useKV[TDE]{Legende}\xintFor*##1 in{\xintSeq{1}{\ListeHlen}}\do{\uppercase{&}\cellcolor{PfCColorTDE}\ListeH[##1]}\\
+    \hline
+    \xintFor* ##1 in{\xintSeq{1}{\ListeVlen}}\do{
+    \cellcolor{PfCColorTDE}\ListeV[##1]\xintFor*##2 in{\xintSeq{1}{\ListeHlen}}\do{\uppercase{&}\ifboolKV[TDE]{Vide}{}{\ListeDonnees[\fpeval{(##2-0)+(##1-1)*(\ListeHlen-0)}]}}\\
+    \hline
+    }
+  \end{tabular}
+}%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauDoubleEntree.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauxUnites.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauxUnites.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTableauxUnites.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,7 +1,11 @@
 %%%
 % Tableaux d'unit\'es
 %%%
-\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,CarreA=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,CubeA=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false,CouleurGN=white,CadreGN=black,Tabcolsep=0.275\tabcolsep,Exterieur=false,Condense=false}%
+\def\filedateTableaux{2024/08/15}%
+\def\fileversionTableaux{0.1a}%
+\message{-- \filedateTableaux\space v\fileversionTableaux}%
+\message{`PfCTableauxUnites.tex' v\fileversionTableaux\space (\filedateTableaux)}
+\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,CarreA=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,CubeA=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={},PuissancesSeules=false,Colonne=-1,Octet=false,CouleurGN=white,CadreGN=black,Tabcolsep=0.275\tabcolsep,Exterieur=false,Condense=false,DoubleEntree=false}%
 \defKV[ClesTableaux]{ColonnesSup=\setKV[ClesTableaux]{Exterieur}}%
 %
 \newcommand\PfCTBstrut{\rule[-1.2ex]{0pt}{3.8ex}}% Top and Bottom strut
@@ -52,7 +56,10 @@
       \xdef\PfCCoefConversion{10}%
     }{}%
     \PfCTableauIncline%
-  }{%
+  }{%Fin Escalier
+    \ifboolKV[ClesTableaux]{DoubleEntree}{%
+      \TableauDoubleEntree[#1]{#2}%
+    }{}%
     %
     %%% Clé Octet
     %

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTablesOperations.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTablesOperations.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTablesOperations.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Tables Addition-Multiplication
 %%%
+\def\filedateTableOp{2024/08/04}%
+\def\fileversionTableOp{0.1}%
+\message{-- \filedateTableOp\space v\fileversionTableOp}%
+%
 \setKVdefault[Tables]{Addition=false,Soustraction=false,Multiplication,Seul=false,Debut=0,Fin=10,Couleur=white,Inverse=false}
 
 % pour m\'emoire

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTectonic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTectonic.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTectonic.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Tectonic
 %%%
+\def\filedateTectonic{2024/08/04}%
+\def\fileversionTectonic{0.1}%
+\message{-- \filedateTectonic\space v\fileversionTectonic}%
+%
 \setKVdefault[ClesTectonic]{CouleurCase=LightGray,TLargeur=5,THauteur=5,Solution=false,Largeur=25pt,CouleurSolution=black,Tailles=false,Aide=false}%
 \defKV[ClesTectonic]{Taille=\setKV[ClesTectonic]{Tailles}}%
 \defKV[ClesTectonic]{ListeNombres=\setKV[ClesTectonic]{Aide}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Thales
 %%%
+\def\filedateThales{2024/08/04}%
+\def\fileversionThales{0.1}%
+\message{-- \filedateThales\space v\fileversionThales}%
+%
 \newcount\ppcm%
 
 \newcommand\PPCM[2]{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTicketCaisse.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTicketCaisse.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTicketCaisse.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,8 +1,16 @@
 %%%
 % Ticket de caisse
 %%%
+\def\filedateTicketCaisse{2024/08/04}%
+\def\fileversionTicketCaisse{0.1}%
+\message{-- \filedateTicketCaisse\space v\fileversionTicketCaisse}%
+%
 \newcounter{PfCNbInsulte}%
+\newcounter{PfCChoixService}%
 \setcounter{PfCNbInsulte}{0}%
+\setcounter{PfCChoixService}{0}%
+%
+\newlength\PfCTicketLarg
 
 \NewDocumentCommand\PfCPrixInsulte{sm}{%
   \setsepchar{,}\ignoreemptyitems%
@@ -67,15 +75,17 @@
 }%
 \makeatother
 
-\setKVdefault[TicketCaisse]{Largeur=222,Especes=50,Enseigne=Au comptoir des maths,DateAchat=\today,HeureAchat=15:13:34,Taches=false,Rendu,Total,UK=false,US=false,CFA=false,CFP=false,CHF=false,Euro=false,Solution=false}
+\setKVdefault[TicketCaisse]{Largeur=222pt,Especes=50,Simple=false,Taxes=false,SansRendu=false,Enseigne=Au comptoir des maths,DateAchat=\today,HeureAchat=15:13:34,Taches=false,Rendu,Total,SousTotal=false,UK=false,US=false,CFA=false,CFP=false,CHF=false,Euro=false,Solution=false}
 \defKV[TicketCaisse]{Couleur=\colorlet{PfCTicketCouleurSolution}{#1}\setKV[TicketCaisse]{Solution}}
+\defKV[TicketCaisse]{Service=\setKV[TicketCaisse]{Taxes}}
 
-\NewDocumentCommand\TicketCaisse{om}{%
+\NewDocumentCommand\TicketCaisse{som}{%
   \setcounter{PfCNbInsulte}{0}%
   \useKVdefault[TicketCaisse]%
-  \setKV[TicketCaisse]{#1}%
+  \setKV[TicketCaisse]{#2}%
+  \setlength{\PfCTicketLarg}{\useKV[TicketCaisse]{Largeur}}%
   \setsepchar[*]{,*/}%
-  \readlist*\ListeAchats{#2}%
+  \readlist*\ListeAchats{#3}%
   % On fait trois listes pour les retenir
   % Liste Quantités
   \xdef\PfCFooQuantites{}%
@@ -122,9 +132,123 @@
   \xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
     \xdef\PfCTCTotal{\fpeval{\PfCTCTotal+\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
   }%
-%  Le coût total est \PfCTCTotal\\
+  \ifboolKV[TicketCaisse]{Taxes}{%
+    % On décompose la clé
+    \StrChar{\useKV[TicketCaisse]{Service}}{1}[\MyLetter]%
+    % Si le premier caractère est !, il faut regarder si le deuxième caractère est une étoile
+    \IfStrEq{\MyLetter}{!}{%
+      \StrChar{\useKV[TicketCaisse]{Service}}{2}[\MyLettera]%
+      \IfStrEq{\MyLettera}{*}{%
+        \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{2}[\PfCTCValeurService]
+        \setcounter{PfCChoixService}{3}%
+      }{%
+        \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{1}[\PfCTCValeurService]
+        \setcounter{PfCChoixService}{1}%
+      }%
+    }{%il faut regarder si c'est une étoile
+      \StrChar{\useKV[TicketCaisse]{Service}}{1}[\MyLettera]%
+      \IfStrEq{\MyLettera}{*}{%
+        \StrGobbleLeft{\useKV[TicketCaisse]{Service}}{1}[\PfCTCValeurService]
+        \setcounter{PfCChoixService}{2}
+      }{%
+        \xdef\PfCTCValeurService{\useKV[TicketCaisse]{Service}}%
+        \setcounter{PfCChoixService}{0}
+      }%
+    }%
+    % On fait les calculs associés à la clé.
+    \xdef\PfCTCSousTotal{\PfCTCTotal}%
+    \xdef\PfCTCService{\fpeval{\PfCTCValeurService*\PfCTCSousTotal/100}}%
+    \xdef\PfCTCTotal{\fpeval{\PfCTCSousTotal+\PfCTCService}}%
+  }{}%
+  % Le coût total est \PfCTCTotal\\
+  \IfBooleanTF{#1}{%
+    \ttfamily
+    \begin{tabular}{|m{0.48\PfCTicketLarg}m{0.13\PfCTicketLarg}m{0.165\PfCTicketLarg}m{0.225\PfCTicketLarg}|}%
+      \hline
+      &&&\\%
+    \multicolumn{4}{|c|}{\Large\bfseries\useKV[TicketCaisse]{Enseigne}}\\%
+    &&&\\%
+    \hline%
+    &&&\\%
+    \footnotesize\sc Description&\centering \footnotesize\sc Qte.&\centering\footnotesize\sc P.u.&\hfill\footnotesize\sc Prix \ifboolKV[TicketCaisse]{Taxes}{H.T.}{Net}\\%
+    &&&\\%
+    \xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
+      \ListeElements[##1]&%
+      \centering
+        \footnotesize%
+        \StrChar{\ListeAchats[##1,1]}{1}[\MyLetter]%
+        \IfStrEq{\MyLetter}{!}{\PfCPrixInsulte*{\ListeQuantites[##1]}}{\xintifboolexpr{\fpeval{\ListeQuantites[##1]}==1}{}{\num{\ListeQuantites[##1]}}}%
+      &
+      \hfill
+        \footnotesize
+        %Savoir si le nombre d'articles est affiché
+        \StrChar{\ListeAchats[##1,1]}{1}[\MyLetter]%
+        % Si le nombre d'articles n'est pas affiché, il faut impérativement afficher le prix unitaire
+        \IfStrEq{\MyLetter}{!}{%
+          \PrixTicket{\ListePUnitaires[##1]}%
+        }{%
+          % On regarde si on affiche le prix unitaire
+          \StrChar{\ListeAchats[##1,3]}{1}[\MyLettera]%
+          % Si c'est un !, on affiche pas
+          % Sinon, on affiche
+          \IfStrEq{\MyLettera}{!}{%
+            \PfCPrixInsulte*{\PrixTicket{\ListePUnitaires[##1]}}%
+          }{%
+            \xintifboolexpr{\fpeval{\ListeQuantites[##1]}==1}{}{%
+              \PrixTicket{\ListePUnitaires[##1]}%
+            }%
+          }%
+        }%
+      &\hfill
+        \StrChar{\ListeAchats[##1,3]}{1}[\MyLetter]%
+        % Si le premier caractère est !, il faut regarder si le deuxième caractère est une étoile
+        \IfStrEq{\MyLetter}{!}{%
+          \StrChar{\ListeAchats[##1,3]}{2}[\MyLettera]%
+          \IfStrEq{\MyLettera}{*}{%
+            \PfCPrixInsulte*{\PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}}%
+          }{%
+            \PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
+          }%
+        }{%il faut regarder si c'est une étoile
+          \StrChar{\ListeAchats[##1,3]}{1}[\MyLettera]%
+          \IfStrEq{\MyLettera}{*}{%
+            \PfCPrixInsulte{\PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}}%
+          }{%
+            \PrixTicket{\fpeval{\ListeQuantites[##1]*\ListePUnitaires[##1]}}%
+          }%
+        }%
+      \\
+    }%
+    &&&\\%
+      \hline%
+      &&&\\
+    % Partie Service
+    \ifboolKV[TicketCaisse]{Taxes}{%
+      Total H.T.\uppercase{&}\uppercase{&}\uppercase{&}\hfill\ifboolKV[TicketCaisse]{SousTotal}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCSousTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}}
+      \\%
+      Service %
+      \ifodd\thePfCChoixService\relax \PfCPrixInsulte{\num{\PfCTCValeurService}}\else\num{\PfCTCValeurService}\fi~\si{\percent}%
+      &&&\hfill
+        \ifnum\thePfCChoixService>1\relax \PfCPrixInsulte{\PrixTicket{\PfCTCService}}\else\PrixTicket{\PfCTCService}\fi%
+      \\
+      &&&\\
+      \hline
+      &&&\\
+    }{}%
+    \ifboolKV[TicketCaisse]{Simple}{}{%
+      Total\ifboolKV[TicketCaisse]{Taxes}{ T.T.C.}{}&&&\hfill\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}\\%
+      \ifboolKV[TicketCaisse]{SansRendu}{}{%
+        Espèces&&&\hfill\PrixTicket{\useKV[TicketCaisse]{Especes}}\\%
+        Rendu&&&\hfill\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}\\%
+      }
+      &&&\\%
+    }%
+      \multicolumn{4}{|c|}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}\\%
+      \hline
+    \end{tabular}
+  }{%
   {\ttfamily%
-    \begin{NiceTabular}{m{107pt}m{29pt}m{36pt}m{50pt}}%
+    \begin{NiceTabular}{m{0.48\PfCTicketLarg}m{0.13\PfCTicketLarg}m{0.165\PfCTicketLarg}m{0.225\PfCTicketLarg}}%
       \CodeBefore
       \tikz\node[opacity=0.2,yshift=-1.5cm] at ($(1-|1)!0.5!(1-|last)$) {\Large\bfseries\reflectbox{
           \begin{tabular}{c}
@@ -148,7 +272,7 @@
     \\%
     \Cdots\\%
     \\%
-    \Block[l]{}{\footnotesize\sc Description}&\Block{}{\footnotesize\sc Qte.}&\Block{}{\footnotesize\sc P.u.}&\Block[r]{}{\footnotesize\sc Prix Net}\\%
+    \Block[l]{}{\footnotesize\sc Description}&\Block{}{\footnotesize\sc Qte.}&\Block{}{\footnotesize\sc P.u.}&\Block[r]{}{\footnotesize\sc Prix \ifboolKV[TicketCaisse]{Taxes}{H.T.}{Net}}\\%
     \\%
     \xintFor* ##1 in{\xintSeq{1}{\ListeAchatslen}}\do{%
       \ListeElements[##1]&%
@@ -200,11 +324,28 @@
     }%
     \\%
     \Cdots\\%
-    Total&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}}\\%
-    Espèces&&&\Block[r]{}{\PrixTicket{\useKV[TicketCaisse]{Especes}}}\\%
-    Rendu&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}}\\%
+    % Partie Service
+    \ifboolKV[TicketCaisse]{Taxes}{%
+      Total H.T.&&&\Block[r]{}{\ifboolKV[TicketCaisse]{SousTotal}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCSousTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCSousTotal}}}
+      }\\%
+      Service %
+      \ifodd\thePfCChoixService\relax \PfCPrixInsulte{\num{\PfCTCValeurService}}\else\num{\PfCTCValeurService}\fi~\si{\percent}%
+      &&&\Block[r]{}{%
+        \ifnum\thePfCChoixService>1\relax \PfCPrixInsulte{\PrixTicket{\PfCTCService}}\else\PrixTicket{\PfCTCService}\fi%
+      }\\
+      \Cdots\\
+      \\
+    }{}%
+    \ifboolKV[TicketCaisse]{Simple}{}{%
+      Total\ifboolKV[TicketCaisse]{Taxes}{ T.T.C.}{}&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Total}{\ifnum\thePfCNbInsulte=0\relax\PrixTicket{\PfCTCTotal}\else\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}\fi}{\PfCPrixInsulte*{\PrixTicket{\PfCTCTotal}}}}\\%
+      \ifboolKV[TicketCaisse]{SansRendu}{}{%
+        Espèces&&&\Block[r]{}{\PrixTicket{\useKV[TicketCaisse]{Especes}}}\\%
+        Rendu&&&\Block[r]{}{\ifboolKV[TicketCaisse]{Rendu}{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}{\PfCPrixInsulte*{\PrixTicket{\fpeval{\useKV[TicketCaisse]{Especes}-\PfCTCTotal}}}}}\\%
+      }
       \\%
-      \Block{1-4}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}&&&\\%
+    }%
+    \Block{1-4}{\footnotesize\useKV[TicketCaisse]{DateAchat}\qquad\useKV[TicketCaisse]{HeureAchat}}&&&\\%
     \end{NiceTabular}
   }%
+  }
 }%
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTortueBase.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTortueBase.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTortueBase.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Tortue
 %%%
+\def\filedateTortue{2024/08/04}%
+\def\fileversionTortue{0.1}%
+\message{-- \filedateTortue\space v\fileversionTortue}%
+%
 \setKVdefault[Tortue]{%
   Pas=0.2mm,%Déplacement,
   Etapes=false,%Pour arrêter la construction à une étape particulière

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrigonometrie.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrigonometrie.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrigonometrie.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Trigonom\'etrie
 %%%
+\def\filedateTrigo{2024/08/04}%
+\def\fileversionTrigo{0.1}%
+\message{-- \filedateTrigo\space v\fileversionTrigo}%
+%
 \def\MPFigTrigo#1#2#3#4#5#6#7#8{%
   \ifluatex
 %  \mplibcodeinherit{enable}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrio.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrio.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTrio.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,3 +1,10 @@
+%%%
+%Trio
+%%%
+\def\filedateTrio{2024/08/04}%
+\def\fileversionTrio{0.1}%
+\message{-- \filedateTrio\space v\fileversionTrio}%
+%
 \newlength\PfCTrioHauteur%
 \newcounter{PfCTrioLettre}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCTriominos.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCTriominos.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCTriominos.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Triominos
 %%%
+\def\filedateTriominos{2024/08/04}%
+\def\fileversionTriominos{0.1}%
+\message{-- \filedateTriominos\space v\fileversionTriominos}%
+%
 \setKVdefault[ClesTriomino]{Longueur=5cm,Etages=3,Ecart=0.6,AffichagePiece=false,Hexagone=false,Recapitulatif=false,Colonnes=2}%
 \defKV[ClesTriomino]{Piece=\setKV[ClesTriomino]{AffichagePiece=true}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCUrneProba.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCUrneProba.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCUrneProba.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Urne et probabilités
 %%%
+\def\filedateUrneProba{2024/08/04}%
+\def\fileversionUrneProba{0.1}%
+\message{-- \filedateUrneProba\space v\fileversionUrneProba}%
+%
 \newtoks\tokUrneListeCouleurs%
 \newtoks\tokUrneListeColonnes%
 \newtoks\tokUrneListeNombres%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCVisualisationMulDeci.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCVisualisationMulDeci.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCVisualisationMulDeci.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Visualisation Multiplication Décimaux
 %%%
+\def\filedateVisuMulDeci{2024/08/04}%
+\def\fileversionVisuMulDeci{0.1}%
+\message{-- \filedateVisuMulDeci\space v\fileversionVisuMulDeci}%
+%
 \setKVdefault[VisMulDec]{Couleur=Orange,CouleurUnite=DarkGreen,Dixiemes=false,Unite=2}%
 
 \newtoks\toksvismuldec%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCVueCubes.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Vue Cubes
 %%%
+\def\filedateVueCubes{2024/08/26}%
+\def\fileversionVueCubes{0.1a}%
+\message{-- \filedateVueCubes\space v\fileversionVueCubes}%
+%
 \setKVdefault[VueCubes]{Solution=false,Hauteur=5,Profondeur=4,Largeur=3,Angle=60,Nom=Ex1,Trou=false,Echelle=0.25,CouleurCube=LightSteelBlue,CouleurFleche=LightGray,Face=false,Creation=false,Grilles=false,Seul=false,Perso=false,EclateX=0,EclateZ=0,EclateY=0}
 
 \newtoks\toklisteVueCube%
@@ -30,9 +34,9 @@
         \readlist*\PfCListeHauteursCubes{#2}%
         \reademptyitems%
         \foreachitem\compteur\in\PfCListeHauteursCubes{\expandafter\UpdatetoksVueCube\compteur\nil}%
-        \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}%
+        \BuildVueCubes{\useKV[VueCubes]{Angle}}{\the\toklisteVueCube}{\useKV[VueCubes]{Nom}}%
       }{%
-        \BuildVueCubes{\useKV[VueCubes]{Angle}}{}%
+        \BuildVueCubes{\useKV[VueCubes]{Angle}}{}{\useKV[VueCubes]{Nom}}%
       }%
     }%
   }%
@@ -100,11 +104,13 @@
   \fi
 }
 
-\NewDocumentCommand\BuildVueCubes{m m}{%
+\NewDocumentCommand\BuildVueCubes{m m m}{%
   \ifluatex
   \mplibforcehmode
   \xdef\PfCVueCubeNom{\useKV[VueCubes]{Nom}}%
   \begin{mplibcode}[\PfCVueCubeNom]
+    string NomRetenu;
+    NomRetenu=str #3;
     input PfCSolid;
 
     intensite:=1.5;
@@ -176,6 +182,9 @@
     endfor;
     fi;
 
+    write  decimal(TotalObj) to "PfCNombreCubes"&NomRetenu&".tex";%
+    write EOF to "PfCNombreCubes"&NomRetenu&".tex";%
+    
     % Pour la fleche
     path Fleche;
     color A[];

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCYohaku.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCYohaku.tex	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCYohaku.tex	2024-08-28 21:07:18 UTC (rev 72129)
@@ -1,6 +1,10 @@
 %%%
 % Yohaku
 %%%
+\def\filedateYohaku{2024/08/04}%
+\def\fileversionYohaku{0.1}%
+\message{-- \filedateYohaku\space v\fileversionYohaku}%
+%
 \setKVdefault[Yohaku]{Taille=2,Largeur=1cm,Hauteur=1cm,Addition,Multiplication=false,Perso=false,Limite=50,Relatif=false,Negatif=false,Pair=false,Impair=false,Premier=false,Solution=false,Visible=false,Bordure=false,CouleurResultat=gray!15,Ligne=0,Colonne=0,PasL=0,PasC=0,CouleurZone=gray!25}%
 \defKV[Yohaku]{Case=\setKV[Yohaku]{Visible}}%
 

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-08-28 21:06:42 UTC (rev 72128)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-08-28 21:07:18 UTC (rev 72129)
@@ -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/07/03}%
+\def\filedate{2024/08/27}%
 \let\PfCfiledate\filedate%
-\def\fileversion{0.99-A-g}%
+\def\fileversion{0.99-A-h}%
 \let\PfCfileversion\fileversion%
 \ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
 
@@ -340,6 +340,37 @@
   \fi
 }%
 
+\newlength{\PfCLongueurBarreHor}
+\setKVdefault[PfCLigneCompleter]{Ecart=20pt,Couleurs=false}%
+\defKV[PfCLigneCompleter]{Couleur=\setKV[PfCLigneCompleter]{Couleurs}}%
+
+\NewDocumentCommand\ListeACompleter{som}{%
+  \useKVdefault[PfCLigneCompleter]%
+  \setKV[PfCLigneCompleter]{#2}%
+  \ifboolKV[PfCLigneCompleter]{Couleurs}{\colorlet{PfCLC}{\useKV[PfCLigneCompleter]{Couleur}}}{}%
+  \setlength{\PfCLongueurBarreHor}{\useKV[PfCLigneCompleter]{Ecart}}%
+  \setsepchar{,}\reademptyitems%
+  \readlist*\ListeTiti{#3}%
+  \foreachitem\compteur\in\ListeTiti{%
+    \itemtomacro\ListeTiti[\compteurcnt]\PfCCaractere%
+    \StrChar{\PfCCaractere}{1}[\RetiensElmt]%
+    \IfStrEq{\RetiensElmt}{!}{%
+      \IfBooleanTF{#1}{%
+        \ifboolKV[PfCLigneCompleter]{Couleurs}{\colorlet{saved}{.}\color{PfCLC}}{}\StrGobbleLeft{\PfCCaractere}{1}\ifboolKV[PfCLigneCompleter]{Couleurs}{\color{saved}}{}%
+      }{%
+        \hbox to \PfCLongueurBarreHor{\hrulefill}%
+      }
+    }{%
+      \ListeTiti[\compteurcnt]%
+    }%
+    \ifnum\compteurcnt=\ListeTitilen\relax%
+      .%
+    \else%
+      ,
+    \fi%
+  }%
+}%
+
 %https://tex.stackexchange.com/questions/128991/frac-or-inference-rule-with-dotted-line
 \newcommand\PfCfrac[2]{%
 \ooalign{$\genfrac{}{}{0pt}{0}{#1}{#2}$\cr\PfCdotover\cr}%
@@ -825,6 +856,8 @@
 \def\PfCSymbolTimes{\times}%
 \def\PfCSymbolDiv{\div}%
 
+\input{PfCCalculsDetailles}
+\input{PfCTableauDoubleEntree}
 \input{PfCUrneProba}
 \input{PfCProbaFrequence}
 \input{PfCVisualisationMulDeci}
@@ -975,8 +1008,5 @@
 \input{PfCScratch}
 
 \RequirePackage{PfCInfixRPN}
-%\makeatletter
-%\let\@nil\@empty
-%\makeatother
 
 \input{PfCArbreCalcul}
\ No newline at end of file



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