texlive[69539] Master/texmf-dist: profcollege (22jan24)

commits+karl at tug.org commits+karl at tug.org
Mon Jan 22 21:36:25 CET 2024


Revision: 69539
          https://tug.org/svn/texlive?view=revision&revision=69539
Author:   karl
Date:     2024-01-22 21:36:25 +0100 (Mon, 22 Jan 2024)
Log Message:
-----------
profcollege (22jan24)

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/tex/latex/profcollege/PfCBonbon.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/PfCCibleQOp.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/PfCDecomposerNombrePremier.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.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/PfCLego.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.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/PfCSerpent.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex
    trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernaleold.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/tex/latex/profcollege/PfCBonbon.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -1,8 +1,8 @@
 %%%
 % Bonbon
 %%%
-\setKVdefault[Bonbon]{CouleurUn=red,Bicolore=false,Echelle=1}
-\defKV[Bonbon]{CouleurDeux=\setKV[Bonbon]{Bicolore}}
+\setKVdefault[Bonbon]{CouleurUn=red,Bicolore=false,Echelle=1}%
+\defKV[Bonbon]{CouleurDeux=\setKV[Bonbon]{Bicolore}}%
 
 \NewDocumentCommand\Bonbon{o}{%
   \useKVdefault[Bonbon]%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -141,16 +141,18 @@
   \setKV[ClesCalculatrice]{#1}%
   \ifboolKV[ClesCalculatrice]{Ecran}{%
     \ifboolKV[ClesCalculatrice]{Calcul}{%
-      \setsepchar[*]{,*§}%
+      \setsepchar[*]{,*§}\reademptyitems%
       \readlist\ListeCalc{#2}%
     }{%
-      \setsepchar[*]{,*/}%
+      \setsepchar[*]{,*/}\reademptyitems%
       \readlist\ListeCalc{#2}%
     }%
+    \ignoreemptyitems
     \MPCalculatrice{\ListeCalc[1,1]}{\ListeCalc[1,2]}{\useKV[ClesCalculatrice]{NbLignes}}%
   }{%
-    \setsepchar[*]{,*/}%
+    \setsepchar[*]{,*/}\reademptyitems%
     \readlist\ListeCalc{#2}%
+    \ignoreemptyitems
     \foreachitem\compteur\in\ListeCalc{\xintifboolexpr{\listlen\ListeCalc[\compteurcnt]==2}{\Longstack{{\tiny\ListeCalc[\compteurcnt,1]} \KN{\ListeCalc[\compteurcnt,2]}}}{\Longstack{{\tiny\ListeCalc[\compteurcnt,2]} \KY{\ListeCalc[\compteurcnt,3]}}}%
     }%
   }%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -71,7 +71,7 @@
             \color{PfCCouleurCCS}\num{\PfCListeCCOp[1]}%
           }{}%
         }%
-      }&\StrCompare{\PfCListeCCOp[2]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[2]$}}&\Block{}{%
+      }&\StrCompare{\PfCListeCCOp[2]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[2]$}}&\Block{}{%
         \ifboolKV[CalculsCroises]{Aide}{%
           \setcounter{CCRetiensAide}{0}%
           \xintFor* ##1 in{\xintSeq{1}{\PfCListeCCAidelen}}\do{%
@@ -82,7 +82,7 @@
             \color{PfCCouleurCCS}\num{\PfCListeCCOp[3]}%
           }{}%
         }%
-      }&\StrCompare{\PfCListeCCOp[4]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[4]$}}&\Block{}{%
+      }&\StrCompare{\PfCListeCCOp[4]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[4]$}}&\Block{}{%
         \ifboolKV[CalculsCroises]{Aide}{%
           \setcounter{CCRetiensAide}{0}
           \xintFor* ##1 in{\xintSeq{1}{\PfCListeCCAidelen}}\do{%
@@ -94,7 +94,7 @@
           }{}%
         }%
       }&\Block[borders={bottom,right,top},fill=PfCCouleurCC]{}{\ifboolKV[CalculsCroises]{Inverse}{}{\num{\fpeval{\PfCListeCCOp[1]\PfCListeCCOp[2]\PfCListeCCOp[3]\PfCListeCCOp[4]\PfCListeCCOp[5]}}}}\\
-        \rule{0pt}{\PfCCalculsCroises}\StrCompare{\PfCListeCCOp[6]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[6]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[7]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[7]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[8]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[8]$}}\\
+        \rule{0pt}{\PfCCalculsCroises}\StrCompare{\PfCListeCCOp[6]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[6]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[7]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[7]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[8]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[8]$}}\\
         \rule{0pt}{\PfCCalculsCroises}\Block{}{%
           \setcounter{CCRetiensAide}{0}%
           \ifboolKV[CalculsCroises]{Aide}{%
@@ -106,7 +106,7 @@
             \color{PfCCouleurCCS}\num{\PfCListeCCOp[9]}%
           }{}%
         }%
-      }&\StrCompare{\PfCListeCCOp[10]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[10]$}}&\Block{}{%
+      }&\StrCompare{\PfCListeCCOp[10]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[10]$}}&\Block{}{%
         \ifboolKV[CalculsCroises]{Aide}{%
           \setcounter{CCRetiensAide}{0}%
           \xintFor* ##1 in{\xintSeq{1}{\PfCListeCCAidelen}}\do{%
@@ -117,7 +117,7 @@
             \color{PfCCouleurCCS}\num{\PfCListeCCOp[11]}%
           }{}%
         }%
-      }&\StrCompare{\PfCListeCCOp[12]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[12]$}}&\Block{}{%
+      }&\StrCompare{\PfCListeCCOp[12]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[12]$}}&\Block{}{%
         \ifboolKV[CalculsCroises]{Aide}{%
           \setcounter{CCRetiensAide}{0}%
           \xintFor* ##1 in{\xintSeq{1}{\PfCListeCCAidelen}}\do{%
@@ -129,7 +129,7 @@
           }{}%
         }%
         }&\Block[borders={bottom,right,top},fill=PfCCouleurCC]{}{\ifboolKV[CalculsCroises]{Inverse}{}{\num{\fpeval{\PfCListeCCOp[9]\PfCListeCCOp[10]\PfCListeCCOp[11]\PfCListeCCOp[12]\PfCListeCCOp[13]}}}}\\
-        \rule{0pt}{\PfCCalculsCroises}\StrCompare{\PfCListeCCOp[14]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[14]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[15]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[15]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[16]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[16]$}}\\
+        \rule{0pt}{\PfCCalculsCroises}\StrCompare{\PfCListeCCOp[14]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[14]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[15]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[15]$}}&\Block[fill=black]{}{~}&\StrCompare{\PfCListeCCOp[16]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[16]$}}\\
         \rule{0pt}{\PfCCalculsCroises}\Block{}{%
           \ifboolKV[CalculsCroises]{Aide}{%
             \setcounter{CCRetiensAide}{0}%
@@ -141,7 +141,7 @@
               \color{PfCCouleurCCS}\num{\PfCListeCCOp[17]}%
             }{}%
           }%
-        }&\StrCompare{\PfCListeCCOp[18]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[18]$}}&\Block{}{%
+        }&\StrCompare{\PfCListeCCOp[18]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[18]$}}&\Block{}{%
           \ifboolKV[CalculsCroises]{Aide}{%
             \setcounter{CCRetiensAide}{0}%
           \xintFor* ##1 in{\xintSeq{1}{\PfCListeCCAidelen}}\do{%
@@ -152,7 +152,7 @@
             \color{PfCCouleurCCS}\num{\PfCListeCCOp[19]}%
           }{}%
         }%
-      }&\StrCompare{\PfCListeCCOp[20]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{$\times$}{$\PfCListeCCOp[20]$}}&\Block{}{%
+      }&\StrCompare{\PfCListeCCOp[20]}{*}[\PfCTestEtoile]\Block{}{\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolTimes}{$\PfCListeCCOp[20]$}}&\Block{}{%
         \ifboolKV[CalculsCroises]{Aide}{%
             \setcounter{CCRetiensAide}{0}%
           \xintFor* ##1 in{\xintSeq{1}{\PfCListeCCAidelen}}\do{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -106,6 +106,7 @@
   \readlist*\PfCOrdreOperations{\faa}%
   \readlist*\PfCListeCibleNombres{\PfCFooNombres}%
   \readlist*\PfCListeCibleOperations{\PfCCQOListeOperations}%
+  \reademptyitems%
   % On détermine les solutions
   \xdef\PfCListeSolution{\fpeval{\PfCCibleQO-\PfCListeCibleNombres[1]}}%
   \xdef\PfCListeSolution{\PfCListeSolution,\fpeval{\PfCCibleQO-\PfCListeCibleNombres[2]}}%
@@ -130,16 +131,17 @@
     \StrCompare{\PfCListeCibleOperations[\PfCCibleRang]}{/}[\PfCTestSlash]%
     \StrCompare{\PfCListeCibleOperations[\PfCCibleRang]}{d}[\PfCTestDE]%
     \xintifboolexpr{\PfCTestDE==0}{%
-      \xdef\PfCFooRetiensTout{\PfCFooRetiensTout,$\pointilles[5mm]\times\num{\PfCListeCibleNombres[9]}+\num{\PfCListeCibleSolutions[9]}$}%
-      \xdef\PfCFooRetiensToutAvecSol{\PfCFooRetiensToutAvecSol,$\mathcolor{CouleurCibleQO}{\num{\PfCListeCibleSolutions[8]}}\times\num{\PfCListeCibleNombres[9]}+\num{\PfCListeCibleSolutions[9]}$}%
+      \xdef\PfCFooRetiensTout{\PfCFooRetiensTout,$\pointilles[5mm]\PfCSymbolTimes\num{\PfCListeCibleNombres[9]}+\num{\PfCListeCibleSolutions[9]}$}%
+      \xdef\PfCFooRetiensToutAvecSol{\PfCFooRetiensToutAvecSol,$\mathcolor{CouleurCibleQO}{\num{\PfCListeCibleSolutions[8]}}\PfCSymbolTimes\num{\PfCListeCibleNombres[9]}+\num{\PfCListeCibleSolutions[9]}$}%
     }{%
-    \xdef\PfCFooRetiensTout{\PfCFooRetiensTout,$\pointilles[5mm]\xintifboolexpr{\PfCTestEtoile==0}{\div}{\xintifboolexpr{\PfCTestSlash==0}{\times}{\PfCListeCibleOperations[\PfCCibleRang]}}\num{\PfCListeCibleNombres[\PfCCibleRang]}$}%
-    \xdef\PfCFooRetiensToutAvecSol{\PfCFooRetiensToutAvecSol,$\mathcolor{CouleurCibleQO}{\num{\PfCListeCibleSolutions[\PfCCibleRang]}}\xintifboolexpr{\PfCTestEtoile==0}{\div}{\xintifboolexpr{\PfCTestSlash==0}{\times}{\PfCListeCibleOperations[\PfCCibleRang]}}\num{\PfCListeCibleNombres[\PfCCibleRang]}$}%
+    \xdef\PfCFooRetiensTout{\PfCFooRetiensTout,$\pointilles[5mm]\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolDiv}{\xintifboolexpr{\PfCTestSlash==0}{\PfCSymbolTimes}{\PfCListeCibleOperations[\PfCCibleRang]}}\num{\PfCListeCibleNombres[\PfCCibleRang]}$}%
+    \xdef\PfCFooRetiensToutAvecSol{\PfCFooRetiensToutAvecSol,$\mathcolor{CouleurCibleQO}{\num{\PfCListeCibleSolutions[\PfCCibleRang]}}\xintifboolexpr{\PfCTestEtoile==0}{\PfCSymbolDiv}{\xintifboolexpr{\PfCTestSlash==0}{\PfCSymbolTimes}{\PfCListeCibleOperations[\PfCCibleRang]}}\num{\PfCListeCibleNombres[\PfCCibleRang]}$}%
     }%
   }%
   \setsepchar{,}\ignoreemptyitems%
   \readlist*\PfCCibleQOListeEnonce{\PfCFooRetiensTout}%
   \readlist*\PfCCibleQOListeSolution{\PfCFooRetiensToutAvecSol}%
+  \reademptyitems
   \foreachitem\compteur\in\PfCCibleQOListeEnonce{\expandafter\UpdatetoksCibleQO\compteur\nil}%
   \foreachitem\compteur\in\PfCCibleQOListeSolution{\expandafter\UpdatetoksCibleQOO\compteur\nil}%
   \BuildCibleQuatreOperations{\PfCCibleQO}{\the\toklistecibleA}{\the\toklistecibleab}{\useKV[CibleQO]{Style}}%
@@ -232,44 +234,44 @@
       trace Op[k] shifted A[k];
       endfor;
     \end{mplibcode}
-  \else
-    \begin{mpost}[mpsettings={\BuildCibleQOCode;Rayon:=\useKV[CibleQO]{Rayon};boolean Solution;Solution=\useKV[CibleQO]{Solution};}]
-      string Style;
-      Style=#4;
-      Cible=#1;
-
-      picture Op[];
-
-      if Solution:
-      LectureOperationsPDF(#3)
-      else:
-      LectureOperationsPDF(#2)
-      fi;
-      
-      path cc;
-      pair O,A[];
-      O=(0,0);
-      picture CIBLE;
-      CIBLE=image(label(LATEX("\Huge\bfseries"&decimal(Cible)),O));
-      draw CIBLE;
-      cc=cercles(O,Rayon);
-      path Fleche;
-      for k=0 upto 7:
-      A[k]=1.1[O,pointarc(cc,k*45)];
-      Fleche:=((0,0)--(center Op[k] shifted A[k])) cutbefore cercles(O,0.45*Rayon) cutafter (polygone(llcorner Op[k],lrcorner Op[k],urcorner Op[k],ulcorner Op[k]) shifted A[k]);
-      if Style="<->": 
-      drawdblarrow (point(0.75*length Fleche) of Fleche)--(point(0) of Fleche);
-      elseif Style="<-":
-      drawarrow (point(0.75*length Fleche) of Fleche)--(point(0) of Fleche);
-      elseif Style="->":
-      drawarrow (point(0) of Fleche)--(point(0.75*length Fleche) of Fleche);
-      elseif Style="-":
-      draw (point(0) of Fleche)--(point(0.75*length Fleche) of Fleche);
-      elseif Style="--":
-      label(LATEX("$=$") rotated (k*45) ,point(0.5*length Fleche) of Fleche);
-      fi;
-      trace Op[k] shifted A[k];
-      endfor;
-    \end{mpost}
+%  \else
+%    \begin{mpost}[mpsettings={\BuildCibleQOCode;Rayon:=\useKV[CibleQO]{Rayon};boolean Solution;Solution=\useKV[CibleQO]{Solution};}]
+%      string Style;
+%      Style=#4;
+%      Cible=#1;
+%
+%      picture Op[];
+%
+%      if Solution:
+%      LectureOperationsPDF(#3)
+%      else:
+%      LectureOperationsPDF(#2)
+%      fi;
+%      
+%      path cc;
+%      pair O,A[];
+%      O=(0,0);
+%      picture CIBLE;
+%      CIBLE=image(label(LATEX("\noexpand\Huge\noexpand\bfseries"&decimal(Cible)),O));
+%      draw CIBLE;
+%      cc=cercles(O,Rayon);
+%      path Fleche;
+%      for k=0 upto 7:
+%      A[k]=1.1[O,pointarc(cc,k*45)];
+%      Fleche:=((0,0)--(center Op[k] shifted A[k])) cutbefore cercles(O,0.45*Rayon) cutafter (polygone(llcorner Op[k],lrcorner Op[k],urcorner Op[k],ulcorner Op[k]) shifted A[k]);
+%      if Style="<->": 
+%      drawdblarrow (point(0.75*length Fleche) of Fleche)--(point(0) of Fleche);
+%      elseif Style="<-":
+%      drawarrow (point(0.75*length Fleche) of Fleche)--(point(0) of Fleche);
+%      elseif Style="->":
+%      drawarrow (point(0) of Fleche)--(point(0.75*length Fleche) of Fleche);
+%      elseif Style="-":
+%      draw (point(0) of Fleche)--(point(0.75*length Fleche) of Fleche);
+%      elseif Style="--":
+%      label(LATEX("$=$") rotated (k*45) ,point(0.5*length Fleche) of Fleche);
+%      fi;
+%      trace Op[k] shifted A[k];
+%      endfor;
+%    \end{mpost}
   \fi%
 }%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -1,7 +1,7 @@
 %%%
 % Le compte est bon
 %%%
-\setKVdefault[CompteBon]{NombreCalculs=5,NombrePlaques=4,Solution=false,Relatifs=false,Original=false,Graines=false,Plaques=6}
+\setKVdefault[CompteBon]{NombreCalculs=5,NombrePlaques=4,Solution=false,Relatifs=false,Original=false,Graines=false,Plaques=6,CDot=false}
 \defKV[CompteBon]{Graine=\setKV[CompteBon]{Graines}}%
 
 \makeatletter
@@ -173,7 +173,7 @@
   \ifboolKV[CompteBon]{Solution}{%
     \begin{align*}
       \xintFor* ##1 in{\xintSeq{1}{\fpeval{\useKV[CompteBon]{Plaques}-1}}}\do{
-      \StrSubstitute{\PfCCBDecompositionEtapes[##1,1]}{*}{\times}[\PfCCBAffiche]\PfCCBAffiche&=\PfCCBDecompositionEtapes[##1,2]\xintifForLast{\\}{}
+      \StrSubstitute{\PfCCBDecompositionEtapes[##1,1]}{*}{\PfCSymbolTimes}[\PfCCBAffiche]\PfCCBAffiche&=\PfCCBDecompositionEtapes[##1,2]\xintifForLast{\\}{}
       }%
     \end{align*}
   }{}%
@@ -230,9 +230,11 @@
       \begin{NiceTabular}{m{30pt}cccm{20pt}m{10pt}m{20pt}m{10pt}m{20pt}m{10pt}m{20pt}}
         \xintFor* ##1 in{\xintSeq{1}{\useKV[CompteBon]{NombreCalculs}}}\do{%
           \Block[draw]{}{\num{\fpeval{\PfC at ListeCalculsChoisis[##1,1]}}}&&$=$&&\Block[draw]{}{~}&\Block{}{~}&\Block[draw]{}{~}&\Block{}{~}&\Block[draw]{}{~}&\Block{}{~}&\Block[draw]{}{~}\\
-          \ifboolKV[CompteBon]{Solution}{\Block{1-11}{\footnotesize Une solution : \StrSubstitute[0]{\PfC at ListeCalculsChoisis[##1,1]}{*}{\times}[\PfCEcritureCalcul]$\PfCEcritureCalcul$}}{}\\
+          \ifboolKV[CompteBon]{Solution}{\Block{1-11}{\footnotesize Une solution : \StrSubstitute[0]{\PfC at ListeCalculsChoisis[##1,1]}{*}{\PfCSymbolTimes}[\PfCEcritureCalcul]$\PfCEcritureCalcul$}}{}\\
         }%
       \end{NiceTabular}
     \end{center}
   }%
-}%
\ No newline at end of file
+}%
+
+\makeatother
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -1,6 +1,6 @@
-\setKVdefault[ClesConversion]{Longueur,Aire=false,Vol=false,Masses=false,Capas=false,Sans=false,Complete=40pt}
-\defKV[ClesConversion]{Masse=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Masses}}
-\defKV[ClesConversion]{Capa=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Capas}}
+\setKVdefault[ClesConversion]{Longueur,Aire=false,Vol=false,Masses=false,Capas=false,Sans=false,Complete=40pt}%
+\defKV[ClesConversion]{Masse=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Masses}}%
+\defKV[ClesConversion]{Capa=\setKV[ClesConversion]{Longueur=false}\setKV[ClesConversion]{Capas}}%
 
 \NewDocumentCommand\ChoixUniteD{m}{%
   \IfStrEqCase{#1}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -18,8 +18,9 @@
       \end{itemize}
     \ifx\bla\PfCListeARetenirCriteres\bla%
     \else
-      \setsepchar{,}\ignoreemptyitems
+      \setsepchar{,}\ignoreemptyitems%
       \readlist*\PfCAfficheDivCriteres{\PfCListeARetenirCriteres}%
+      \reademptyitems%
       \xdef\PfCNumListe{}%
       En appliquant les critères de divisibilité connus, \num{#2} est donc divisible par \num{\PfCAfficheDivCriteres[1]}%
       \xintifboolexpr{\PfCAfficheDivCritereslen>1}{\xintFor* ##1 in{\xintSeq{2}{\PfCAfficheDivCritereslen}}\do{%
@@ -26,7 +27,7 @@
           \xintifForLast{ et }{ ; }\num{\PfCAfficheDivCriteres[##1]}%
         }%
       }{}.%
-      \ifboolKV[Critere]{RemarqueAll}{\\\textbf{Remarque} : La liste des diviseurs de \num{#2} est \ListeDiviseur{#2}.}{}
+      \ifboolKV[Critere]{RemarqueAll}{\\\textbf{Remarque} : La liste des diviseurs de \num{#2} est \ListeDiviseur{#2}.}{}%
     \fi%
   }{%
     \IfStrEqCase{\useKV[Critere]{Div}}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -765,6 +765,28 @@
   }%
 }%
 
+\newcommand\LesFacteursPremiers[1]{%
+  %#1 : le nombre entier \`a tester
+%  \newcount\anpl\newcount\bnpl\newcount\cnpl%
+ % \newcount\pilebl%
+  \xdef\anpl{#1}%\relax%
+  \xdef\bnpl{2}%\relax%
+  \xdef\pilebl{2}%\relax%
+  \xdef\PfCPileFacteurs{}%
+  \whiledo{\fpeval{\anpl} > 1}{%
+    \modulo{\fpeval{\anpl}}{\fpeval{\bnpl}}
+    \ifnum\remainder=0\relax
+      \xdef\cnpl{\fpeval{\anpl/\bnpl}}%
+      \xdef\PfCPileFacteurs{\PfCPileFacteurs,\fpeval{\bnpl}}%
+      % \num{\the\bnpl}\ifnum\anpl>\bnpl,\fi%
+      \xdef\anpl{\cnpl}%\relax
+    \else%
+      \xdef\bnpl{\fpeval{\bnpl+1}}%
+      \xdef\pilebl{\bnpl}%\relax%
+    \fi%
+  }%
+}%%
+
 \newcommand\ListeDiviseur[1]{%#1 : le nombre entier \`a tester
   \newcount\anp\newcount\bnp%
   \anp=#1%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -34,8 +34,8 @@
   \setlength{\tabcolsep}{0.01\tabcolsep}
   \begin{tabular}{*{4}{c}}%m{20pt}}}
     \ifboolKV[DefiCalculatrice]{Impression}{\multicolumn{4}{c}{\Calculatrice[Ecran,Largeur=\mpdim{\Adaptationbis}/0.5mm,Impression]{\the\toktexteecran/\the\tokcibleecran}}}{\multicolumn{4}{c}{\Calculatrice[Ecran,Largeur=\mpdim{\Adaptationbis}/0.5mm]{\the\toktexteecran/\the\tokcibleecran}}}\\
-    \multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{7}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/7}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{8}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/8}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{9}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/9}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{/}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/$\div$}}}\\
-    \multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{4}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/4}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{5}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/5}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{6}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/6}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{*}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/$\times$}}}\\
+    \multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{7}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/7}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{8}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/8}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{9}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/9}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{/}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/$\PfCSymbolDiv$}}}\\
+    \multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{4}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/4}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{5}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/5}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{6}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/6}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{*}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/$\PfCSymbolTimes$}}}\\
     \multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{1}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/1}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{2}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/2}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{3}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/3}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{-}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/$-$}}}\\
     \multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{0}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/0}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{.}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/.}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{=}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/$=$}}}&\multicolumn{1}{c}{\IfSubStr{\useKV[DefiCalculatrice]{ListeTouches}}{+}{\Calculatrice{/\faScrewdriver}}{\Calculatrice{/$+$}}}\\
   \end{tabular}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -14,6 +14,7 @@
   \setKV[DessinAlgo]{#1}%
   \setsepchar[*]{/}\ignoreemptyitems%
   \readlist*\PfCListeDessinAlgo{#2}%
+  \reademptyitems%
   \foreachitem\compteur\in\PfCListeDessinAlgo{\expandafter\UpdatetoksDA\compteur\nil}%
   \ifboolKV[DessinAlgo]{Relatif}{%
     \BuildDessinAlgoRelatif{\the\tokDessinAlgo}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -21,9 +21,9 @@
         }{%
           \print{#2}%
         }%
-      }{
+      }{%
         (\print{#2})%
-      }
+      }%
     }%
   }%
 }%
@@ -85,7 +85,8 @@
                    \ifboolKV[Facto]{Finale}{\\\PfCFactoNE&=\useKV[Facto]{Resultat}}{\ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ke:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Kf:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}}{}}%
     \end{align*}
   }
-  \else%k*a+-k*b=k(a+-b)
+\else%k*a+-k*b=k(a+-b)
+  \#3 #3 -- \#4 #4 -- \#5 #5
   \begin{CAS}
     % La variable
     vars('\useKV[Facto]{Lettre}'\ifboolKV[Facto]{VariableSup}{%
@@ -118,12 +119,13 @@
                    \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\print{Kk}(\print{Ka\PfCFactoSymbole Kb})}{}%
     \end{align*}
   }{%Avec au moins un des facteurs polynomes
-    \StrCompare{\PfCFactoSymbole}{-}[\PfCRetiensSigneFacteurDeux]
+    \StrCompare{\PfCFactoSymbole}{-}[\PfCRetiensSigneFacteurDeux]%
+    \StrChar{#5}{1}[\RetiensPremierCaractere]%en cas de deuxième terme écrit b-ax
     \begin{align*}
       \ifboolKV[Facto]{Aide}{\PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#4}{Ka}\PfCFactoSymbole\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#5}{Kb}\\\setKV[Facto]{Aide}}{}%
       \PfCFactoNE&=\ifboolKV[Facto]{Aide}{\underbrace{\Fdash{\PfCEcrireFacteur{#3}{Kk}}}_{k}\times\underbrace{\Fdash{\PfCEcrireFacteur{#4}{Ka}}}_{a}\PfCFactoSymbole\underbrace{\Fdash{\PfCEcrireFacteur{#3}{Kk}}}_{k}\times\underbrace{\Fdash{\PfCEcrireFacteur{#5}{Kb}}}_{b}}{\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#4}{Ka}\PfCFactoSymbole\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{AideMul}{\times}{}\PfCEcrireFacteur{#5}{Kb}}\setKV[Facto]{Aide=false}\\
       \PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\times\left[\PfCEcrireFacteur{#4}{Ka}\PfCFactoSymbole\PfCEcrireFacteur{#5}{Kb}\right]\\
-      \PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ka}\xintifboolexpr{\PfCRetiensSigneFacteurDeux==1}{\xintifboolexpr{\TestCASB<0}{}{+}\print{Kb}}{\xintifboolexpr{\TestCASB<0}{+}{}\print{Ko}}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}\\
+      \PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ka}\xintifboolexpr{\PfCRetiensSigneFacteurDeux==1}{\xintifboolexpr{\TestCASB<0}{\IfDecimal{\RetiensPremierCaractere}{+}{}}{+}\print{Kb}}{\xintifboolexpr{\TestCASB<0}{+}{}\print{Ko}}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}\\
       \PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\times\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ke:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}%
                    \ifboolKV[Facto]{Finale}{\\\PfCFactoNE&=\useKV[Facto]{Resultat}}{\ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=\setKV[Facto]{Aide=false}\PfCEcrireFacteur{#3}{Kk}\ifboolKV[Facto]{ParenthesesFin}{\left(}{\left[}\print{Ke:expand():topolynomial()}\ifboolKV[Facto]{ParenthesesFin}{\right)}{\right]}}{}}%
     \end{align*}
@@ -175,7 +177,6 @@
                    \ifboolKV[Facto]{Formel}{\\\PfCFactoNE&=(\print{e})(\print{f})}{}%
     \end{align*}
   }{%Avec au moins un des facteurs polynomes
-    Ici
     \begin{align*}
       \ifboolKV[Facto]{Aide}{\IfDecimal{#3}{\PfCFactoNE&=\print{c}-\print{d}}{\IfDecimal{#4}{\PfCFactoNE&=\print{c}-\print{d}}{\PfCFactoNE&={\underbrace{\Fdash{$(\print{a})$}}_{A}}^{\,2}-{\underbrace{\Fdash{$(\print{b})$}}_{B}}^{\,2}}}}{\PfCFactoNE&=\print{c}-\print{d}}\\
       \IfDecimal{#3}{\PfCFactoNE\uppercase{&}=\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$\phantom{(}\print{a}\phantom{)}$}}_{A}}^{\,2}}{\print{a}^2}-\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$(\print{b})$}}_{B}}^{\,2}}{\print{d}}\\}{\IfDecimal{#4}{\PfCFactoNE\uppercase{&}=\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$(\print{a})$}}_{A}}^{\,2}}{\print{c}}-\ifboolKV[Facto]{Aide}{{\underbrace{\Fdash{$\phantom{(}\print{b}\phantom{)}$}}_{B}}^{\,2}}{\print{b}^2}\\}{}}

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -14,6 +14,7 @@
   \ifboolKV[ClesFN]{Creation}{%
     \setsepchar{,}\ignoreemptyitems%
     \readlist*\PfCListeDeplacements{\PfCFooCheminFN}%
+    \reademptyitems%
     \foreachitem\compteur\in\PfCListeDeplacements{\expandafter\UpdatetoksFN\compteur\nil}%
   }{}%
   \StrCut{#2}{/}\PfCNumA\PfCNumB%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -37,9 +37,9 @@
         \StrChar{\PfCListeGaram[##1,##2,1]}{1}[\PfCCaracGaram]%
         \IfStrEq{\PfCCaracGaram}{*}{}{%
           \tikz{%
-            \StrSubstitute{\PfCListeGaram[##1,##2,2]}{x}{\times}[\PfCGaramUn]%
+            \StrSubstitute{\PfCListeGaram[##1,##2,2]}{x}{\PfCSymbolTimes}[\PfCGaramUn]%
             \StrSubstitute{\PfCGaramUn}{:}{\div}[\PfCGaramUn]%
-            \StrSubstitute{\PfCListeGaram[##1,##2,3]}{x}{\times}[\PfCGaramDeux]%
+            \StrSubstitute{\PfCListeGaram[##1,##2,3]}{x}{\PfCSymbolTimes}[\PfCGaramDeux]%
             \StrSubstitute{\PfCGaramDeux}{:}{\div}[\PfCGaramDeux]%
             \xintifForLast{}{\node at (\fpeval{##1+0.5}-|\fpeval{##2+1}) {$\PfCGaramUn$};}
             \node at (\fpeval{##1+1}-|\fpeval{##2+0.5}) {$\PfCGaramDeux$};

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -15,9 +15,9 @@
     \setKV[Kakuro]{TLargeur=\useKV[Kakuro]{Taille}}%
   }{}%
   \setlength{\PfCKakuro}{\useKV[Kakuro]{Largeur}+\tabcolsep}%
-  \setsepchar[*]{,*/}%
+  \setsepchar[*]{,*/}\reademptyitems%
   \readlist*\ListeCasesKK{#2}%
-  \setsepchar{,}%
+  \setsepchar{,}\reademptyitems%
   \xdef\ListeAvantNombres{\useKV[Kakuro]{ListeNombres}}%
   \readlist*\ListeKakuroNombres{\ListeAvantNombres}%
   \savecomparemode%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -10,8 +10,9 @@
   \useKVdefault[ClesKK]%
   \setKV[ClesKK]{#1}%
   \setlength{\PfCKenKen}{\useKV[ClesKK]{Largeur}+\tabcolsep}%
-  \setsepchar[*]{,*/}%
+  \setsepchar[*]{,*/}\reademptyitems%
   \readlist*\ListeCasesKK{#2}%
+  \ignoreemptyitems
   \savecomparemode%
   \comparestrict%
   \begin{NiceTabular}{*{\useKV[ClesKK]{Taille}}{m{\useKV[ClesKK]{Largeur}}}}[color-inside]%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -11,6 +11,7 @@
     \MelangeListe{1,2,3,4,5,6,7,8,9,10}{\fpeval{#1+1}}%
     \setsepchar{,}\ignoreemptyitems%
     \readlist*\ListeRotation{\faa}%
+    \reademptyitems%
     \xintFor* ##2 in{\xintSeq{1}{#1}}\do{%
       \xdef\RetiensCouleur{\ListeRotation[##2]}%
       \xintifForFirst{\xdef\FooCouleur{\PfCListeCouleurs[\RetiensCouleur]}}{\xdef\FooCouleur{\FooCouleur,\PfCListeCouleurs[\RetiensCouleur]}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -15,6 +15,7 @@
   \toksmuljap{}%
   \foreachitem\compteur\in\PfCMulJap{\expandafter\UpdatetoksMulJap\compteur\nil}%
   \BuildMulJap{\the\toksmuljap}%
+  \reademptyitems
 }%
 
 \NewDocumentCommand\BuildMulJap{m}{%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -34,6 +34,8 @@
     \readlist*\ListeDesNomsFonctions{\PfCFooNomFn}
     \foreachitem\compteur\in\ListeDesNomsFonctions{\expandafter\UpdatePfCListeDesNomsFonctions\compteur\nil}%
   \fi
+  \tokPfCLabelX{}%
+  \tokPfCLabelY{}%
   \addtotok\tokPfCLabelX{"\useKV[TraceG]{LabelX}"}%
   \addtotok\tokPfCLabelY{"\useKV[TraceG]{LabelY}"}%
   \TraceMultiGraphique{\the\tokPfCListeDesFonctions}{\the\tokPfCListeDesNomsFonctions}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -1482,6 +1482,9 @@
     enddef;
     %%%
     tata(#2);
+    if \useKV[ClesReperage]{Code}:
+    \useKV[ClesReperage]{Traces}
+    fi;
   \end{mplibcode}
   \else
   \begin{mpost}[mpsettings={unitex:=\useKV[ClesReperage]{Unitex}*cm; pasx:=\useKV[ClesReperage]{Pasx}; unitp:=unitex/pasx; ValeurUnitex:=\useKV[ClesReperage]{ValeurUnitex}; ValeurOrigine:=\useKV[ClesReperage]{ValeurOrigine}; AffichageGrad:=\AffichageGrad; AffichageCoord:=\useKV[ClesReperage]{AffichageAbs}; AffichageNom:=\AffichageNom; ValeurMin=\useKV[ClesReperage]{ValeurMin}; ValeurMax=\useKV[ClesReperage]{ValeurMax};boolean DemiDroite;DemiDroite=\useKV[ClesReperage]{DemiDroite};}]

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -427,6 +427,7 @@
   fill ((A--B0--arccercle(B[0],B[nume mod deno],A)--cycle) shifted (m*(2*Rayon+1cm,0))) withcolor ColDisque;
   fi;
   fi;
+  drawoptions(withpen pencircle scaled Epaisseur);
   for l=0 upto m:
   draw cc shifted(l*(2*Rayon+1cm,0));
   for k=0 upto (deno-1):
@@ -433,6 +434,7 @@
   draw segment(A,B[k]) shifted(l*(2*Rayon+1cm,0));
   endfor;
   endfor;
+  drawoptions();
   );
   RetourFraction
   enddef;
@@ -497,9 +499,12 @@
   draw segment(A,C) shifted(m*(Longueur+1cm,0));
   fi;
   fi;
+  if Hachures:drawoptions(withpen pencircle scaled Epaisseur);fi;
   draw (segment(B[0],B[nume mod deno]) shifted(m*(Longueur+1cm,0)));
   draw segment(A,C) shifted(m*(Longueur+1cm,0));
+  %drawoptions();
   fi;
+  if Hachures:drawoptions(withpen pencircle scaled Epaisseur);fi;
   marque_p:="tiretv";
   for l=0 upto m-1:
   for k=0 upto deno:

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -44,9 +44,9 @@
   \xdef\PfCRIRetiensListeDiviseurs{\PfCRIRetiensListeDiviseurs \the\anp,-\the\anp}
   \fi
   \fi
-}
+}%
 
-\setKVdefault[RondeInfernale]{Solution=false,Relatifs=false,Etapes=4,Perso=false,Cles=false,Vide,Rayon=2.5cm,Rectangle=false}%
+\setKVdefault[RondeInfernale]{Solution=false,Relatifs=false,Etapes=4,Perso=false,Cles=false,Vide,Rayon=2.5cm,Rectangle=false,Div=false,CDot=false}%
 \defKV[RondeInfernale]{Graine=\PfCGraineAlea{#1}}
 \defKV[RondeInfernale]{Cle=\setKV[RondeInfernale]{Cles}\setKV[RondeInfernale]{Vide=false}}%
 \defKV[RondeInfernale]{ListeOperations=\setKV[RondeInfernale]{Perso}}%
@@ -232,8 +232,10 @@
   \ifluatex
   \mplibforcehmode
   \begin{mplibcode}
-    boolean Vide,Rectangle,Perso;
+    boolean Vide,Rectangle,Perso,Div,CDot;
     Vide=\useKV[RondeInfernale]{Vide};
+    Div=\useKV[RondeInfernale]{Div};
+    CDot=\useKV[RondeInfernale]{CDot};
     Rectangle=\useKV[RondeInfernale]{Rectangle};
     Perso=\useKV[RondeInfernale]{Perso};
     if Perso:
@@ -265,9 +267,17 @@
     for p_=t:
     n:=n+1;
     if p_="*":
+    if CDot:
+    label(TEX("$\cdot"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    else:
     label(TEX("$\times"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    fi;
     elseif p_="/":
+    if Div:
+    label(TEX("$:"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    else:
     label(TEX("$\div"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    fi;
     else:
     label(TEX("$"&p_&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
         fi;
@@ -280,17 +290,33 @@
     n:=n+1;
     if n=nbcase:
     if p_="*":
+    if CDot:
+    label.bot(TEX("$\cdot"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    else:
     label.bot(TEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    fi;
     elseif p_="/":
+    if Div:
+    label.bot(TEX("$:"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    else:
     label.bot(TEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    fi;
     else:
     label.bot(TEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
     fi;
     else:
     if p_="*":
+    if CDot:
+    label.top(TEX("$\cdot"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    else:
     label.top(TEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    fi;
     elseif p_="/":
+    if Div:
+    label.top(TEX("$:"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    else:
     label.top(TEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    fi;
     else:
     label.top(TEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
     fi;
@@ -378,9 +404,17 @@
     for p_=t:
     n:=n+1;
     if p_="*":
+    if CDot:
+    label(LATEX("$\cdot"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    else:
     label(LATEX("$\times"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    fi;
     elseif p_="/":
+    if Div:
+    label(LATEX("$:"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    else:
     label(LATEX("$\div"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    fi;
     else:
     label(LATEX("$"&p_&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
     fi;
@@ -393,17 +427,33 @@
     n:=n+1;
     if n=nbcase:
     if p_="*":
+    if CDot:
+    label.bot(LATEX("$\cdot"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    else:
     label.bot(LATEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    fi;
     elseif p_="/":
+    if Div:
+    label.bot(LATEX("$:"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    else:
     label.bot(LATEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    fi;
     else:
     label.bot(LATEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
     fi;
     else:
     if p_="*":
+    if CDot:
+    label.top(LATEX("$\cdot"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    else:
     label.top(LATEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    fi;
     elseif p_="/":
+    if Div:
+    label.top(LATEX("$:"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    else:
     label.top(LATEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    fi;
     else:
     label.top(LATEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
     fi;

Added: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernaleold.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernaleold.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernaleold.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -0,0 +1,474 @@
+%%%
+% Ronde infernale
+%%%
+\newcommand\TestNombrePremier[1]{%
+  % #1 le nombre \`a tester
+  \newcount\anp\newcount\bnp\newcount\cnp%
+  \anp=#1\relax
+  \bnp=2\relax
+  \premier=-1\relax
+  \whiledo{\anp > 1}{%
+    \modulo{\the\anp}{\the\bnp}
+    \ifnum\remainder=0\relax%
+      \global\premier=\numexpr\premier+1\relax%
+      \cnp=\numexpr\anp/\bnp\relax%
+      \anp=\cnp\relax%
+    \else%
+      \bnp=\numexpr\bnp+1\relax%
+    \fi%
+  }%
+}%
+
+\newcommand\PfCRIListeDiviseur[1]{%#1 : nombre entier
+  \newcount\anp\newcount\bnp%
+  \anp=\fpeval{abs(#1)}%
+  \bnp=2\relax%
+  \xdef\PfCRIRetiensListeDiviseurs{}%
+  \ifnum#1=0%
+  \xdef\PfCRIRetiensListeDiviseurs{\fpeval{randint(2,5)},\fpeval{randint(6,9)}}%
+  \else
+  \whiledo{\bnp<\anp}{%
+    \modulo{\the\anp}{\the\bnp}{}%
+    \ifnum\remainder=0%
+    \ifnum#1>0
+    \xdef\PfCRIRetiensListeDiviseurs{\PfCRIRetiensListeDiviseurs \the\bnp,}%
+    \else
+    \xdef\PfCRIRetiensListeDiviseurs{\PfCRIRetiensListeDiviseurs \the\bnp,-\the\bnp,}%
+    \fi
+    \fi%
+    \bnp=\numexpr\bnp+1%
+  }%
+  \ifnum#1>0
+  \xdef\PfCRIRetiensListeDiviseurs{\PfCRIRetiensListeDiviseurs \the\anp,1}
+  \else
+  \xdef\PfCRIRetiensListeDiviseurs{\PfCRIRetiensListeDiviseurs \the\anp,-\the\anp}
+  \fi
+  \fi
+}%
+
+\setKVdefault[RondeInfernale]{Solution=false,Relatifs=false,Etapes=4,Perso=false,Cles=false,Vide,Rayon=2.5cm,Rectangle=false,Div=false,Cdot=false}%
+\defKV[RondeInfernale]{Graine=\PfCGraineAlea{#1}}
+\defKV[RondeInfernale]{Cle=\setKV[RondeInfernale]{Cles}\setKV[RondeInfernale]{Vide=false}}%
+\defKV[RondeInfernale]{ListeOperations=\setKV[RondeInfernale]{Perso}}%
+\defKV[RondeInfernale]{ListeNombres=\setKV[RondeInfernale]{Perso}}%
+%
+
+\NewDocumentCommand\RondeInfernale{ }{%Mise en place pour les germanistes : le " est actif :(
+  \begingroup
+  \catcode`\"12
+  \RondeInfernaleaux
+}%
+
+\NewDocumentCommand\RondeInfernaleaux{o}{%
+  \endgroup
+  \useKVdefault[RondeInfernale]%
+  \setKV[RondeInfernale]{#1}%
+  % Graine
+%  \ifboolKV[RondeInfernale]{Graines}{\PfCGraineAlea{\useKV[RondeInfernale]{Graine}}}{}%
+  % Nombre clé
+  \ifboolKV[RondeInfernale]{Cles}{%
+    \xdef\PfCRINombreCle{\useKV[RondeInfernale]{Cle}}%
+  }{%
+    \ifboolKV[RondeInfernale]{Relatifs}{%
+      \xdef\PfCRIListeNegatifs{-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8,9,10}
+      \MelangeListe{\PfCRIListeNegatifs}{1}
+      \readlist*\PfCRIListeCle{\faa}
+      \xdef\PfCRINombreCle{\PfCRIListeCle[1]}%
+    }{%
+      \xdef\PfCRINombreCle{\fpeval{randint(2,9)}}%
+    }%
+  }%
+  \ifboolKV[RondeInfernale]{Perso}{%
+    \xdef\PfCRIRecupOperations{\useKV[RondeInfernale]{ListeOperations}}%
+    \xdef\PfCRIRecupNombres{\useKV[RondeInfernale]{ListeNombres}}%
+  }{%
+    % On définit les éléments nécessaires
+    \xdef\PfCRIListeToutesOperations{+,-,*,/}%
+    \xdef\PfCRIListeOperationsSansDiv{+,-,*}%
+    \xdef\PfCRIListeOperationsSansMul{+,-,/}%
+    \xdef\PfCRIListeOperationsSimple{+,-}%
+    \xdef\PfCRIRecupOperations{}%
+    \xdef\PfCRIRecupNombres{}%
+    \xdef\PfCRIRecupResultats{}%
+    \xdef\PfCRINombreATester{\PfCRINombreCle}%
+    \xdef\PfCRIRetiensNbEtapes{\useKV[RondeInfernale]{Etapes}}%
+    \setsepchar{,}\ignoreemptyitems%
+    % Liste des opérations jusqu'à l'étape n-1
+    \xintFor* ##1 in{\xintSeq{1}{\fpeval{\useKV[RondeInfernale]{Etapes}-1}}}\do{%
+      \TestNombrePremier{\PfCRINombreATester}\relax%
+      \xintifboolexpr{\premier==0}{%
+        % Définition des opérations
+        \MelangeListe{\PfCRIListeOperationsSansDiv}{1}%
+        \readlist*\PfCRIRetiensLoperation{\faa}%
+        \xdef\PfCRIRecupOperations{\PfCRIRecupOperations \faa}%
+        \xdef\PfCRIOperateur{\fpeval{randint(2,9)}}%
+        \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRIOperateur,}%
+        \xdef\PfCRIResultat{\fpeval{\PfCRINombreATester\PfCRIRetiensLoperation[1]\PfCRIOperateur}}%
+        \xdef\PfCRIRecupResultats{\PfCRIRecupResultats \PfCRIResultat,}%
+        \xdef\PfCRINombreATester{\PfCRIResultat}%
+      }{%
+        \MelangeListe{\PfCRIListeToutesOperations}{1}%
+        \readlist*\PfCRIRetiensLoperation{\faa}%
+        \xdef\PfCRIRecupOperations{\PfCRIRecupOperations \faa}%
+        \IfStrEq{\PfCRIRetiensLoperation[1]}{/}{%
+          \PfCRIListeDiviseur{\PfCRINombreATester}%
+          \MelangeListe{\PfCRIRetiensListeDiviseurs}{1}%
+          \readlist*\PfCRIRetiensLeDiviseur{\faa}%
+          \xdef\PfCRIOperateur{\PfCRIRetiensLeDiviseur[1]}%
+        }{%
+          \xdef\PfCRIOperateur{\fpeval{randint(2,9)}}%
+        }%
+        \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRIOperateur,}%
+        \xdef\PfCRIResultat{\fpeval{\PfCRINombreATester\PfCRIRetiensLoperation[1]\PfCRIOperateur}}%
+        \xdef\PfCRIRecupResultats{\PfCRIRecupResultats \PfCRIResultat,}%
+        \xdef\PfCRINombreATester{\PfCRIResultat}%
+      }%
+    }%
+    % Dernière opération
+    \xintifboolexpr{\fpeval{abs(\PfCRINombreATester)-abs(\PfCRINombreCle)}>0}{%
+      \modulo{\PfCRINombreATester}{\PfCRINombreCle}{}%
+      \xintifboolexpr{\remainder==0}{%
+        \MelangeListe{\PfCRIListeOperationsSansMul}{1}%
+        \xdef\PfCRIRecupOperations{\PfCRIRecupOperations \faa}%
+        \ignoreemptyitems%
+        \readlist*\PfCRIRetiensLoperation{\faa}%
+        \IfStrEq{\PfCRIRetiensLoperation[1]}{/}{%
+          \xdef\PfCRINombreATester{\fpeval{\PfCRINombreATester/\PfCRINombreCle}}%
+        }{%
+          \IfStrEq{\PfCRIRetiensLoperation[1]}{-}{%
+            \xdef\PfCRINombreATester{\fpeval{\PfCRINombreATester-\PfCRINombreCle}}%
+          }{%
+            \xdef\PfCRINombreATester{\fpeval{\PfCRINombreCle-\PfCRINombreATester}}%
+          }%
+        }%
+        \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRINombreATester}%
+      }{%
+        \MelangeListe{\PfCRIListeOperationsSimple}{1}%
+        \xdef\PfCRIRecupOperations{\PfCRIRecupOperations \faa}%
+        \ignoreemptyitems%
+        \readlist*\PfCRIRetiensLoperation{\faa}%
+        \IfStrEq{\PfCRIRetiensLoperation[1]}{-}{%
+          \xdef\PfCRINombreATester{\fpeval{\PfCRINombreATester-\PfCRINombreCle}}%
+        }{%
+          \xdef\PfCRINombreATester{\fpeval{\PfCRINombreCle-\PfCRINombreATester}}%
+        }%
+        \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRINombreATester}%
+      }%
+    }{%
+      \xintifboolexpr{\fpeval{abs(\PfCRINombreATester)-abs(\PfCRINombreCle)}==0}{%
+        \xdef\PfCRIRecupOperations{\PfCRIRecupOperations *}%
+        \ignoreemptyitems%
+        \readlist*\PfCRIRIListeOperations{\PfCRIRecupOperations}%
+        \xdef\PfCRIRecupNombres{\PfCRIRecupNombres 1}%
+      }{%
+        \xintifboolexpr{\PfCRINombreATester==0}{%
+          \MelangeListe{\PfCRIListeOperationsSimple}{1}%
+          \xdef\PfCRIRecupOperations{\PfCRIRecupOperations \faa}%
+          \ignoreemptyitems%
+          \readlist*\PfCRIRetiensLoperation{\faa}%
+          \IfStrEq{\PfCRIRetiensLoperation[1]}{-}{%
+            \xdef\PfCRINombreATester{\fpeval{\PfCRINombreATester-\PfCRINombreCle}}%
+          }{%
+            \xdef\PfCRINombreATester{\fpeval{\PfCRINombreCle-\PfCRINombreATester}}%
+          }%
+          \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRINombreATester}%
+        }{%
+          \modulo{\PfCRINombreCle}{\PfCRINombreATester}{}%
+          \xintifboolexpr{\remainder==0}{%-1
+            \MelangeListe{\PfCRIListeToutesOperations}{1}%
+            \xdef\PfCRIRecupOperations{\PfCRIRecupOperations \faa}%
+            \readlist*\PfCRIRetiensLoperation{\faa}%
+            \ignoreemptyitems%
+            \readlist*\PfCRIRIListeOperations{\PfCRIRecupOperations}%
+            \IfStrEq{\PfCRIRetiensLoperation[1]}{*}{%
+              \xdef\PfCRINombreATester{\fpeval{\PfCRINombreCle/\PfCRINombreATester}}%
+              \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRINombreATester}%
+            }{
+              \IfStrEq{\PfCRIRetiensLoperation[1]}{-}{%
+                \xdef\PfCRINombreATester{\fpeval{\PfCRINombreATester-\PfCRINombreCle}}%
+              }{%
+                \xdef\PfCRINombreATester{\fpeval{\PfCRINombreCle-\PfCRINombreATester}}%
+              }%
+              \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRINombreATester}%
+            }%
+          }{%
+            \MelangeListe{\PfCRIListeOperationsSimple}{1}%
+            \xdef\PfCRIRecupOperations{\PfCRIRecupOperations \faa}%
+            \ignoreemptyitems%
+            \readlist*\PfCRIRIListeOperations{\PfCRIRecupOperations}%
+            \IfStrEq{\PfCRIRIListeOperations[\PfCRIRetiensNbEtapes]}{-}{%
+              \xdef\PfCRINombreATester{\fpeval{\PfCRINombreATester-\PfCRINombreCle}}%
+            }{%
+              \xdef\PfCRINombreATester{\fpeval{\PfCRINombreCle-\PfCRINombreATester}}%
+            }%
+            \xdef\PfCRIRecupNombres{\PfCRIRecupNombres \PfCRINombreATester}%
+          }%
+        }%
+      }%
+    }%
+  }%
+  \ignoreemptyitems%
+  \readlist*\PfCRIRIOperations{\PfCRIRecupOperations}%
+  \readlist*\PfCRIRINombres{\PfCRIRecupNombres}%
+  \reademptyitems%
+  % On prépare le dessin
+  \xdef\PfCRINombresDessin{}%
+  \xdef\PfCRIOperationsDessin{}%
+  \foreachitem\compteur\in\PfCRIRINombres{%
+    \xintifboolexpr{\PfCRIRINombres[\compteurcnt]<0}{%
+      \xdef\PfCRINombresDessin{\PfCRINombresDessin "(\num{\PfCRIRINombres[\compteurcnt]})",}%
+    }{%
+      \xdef\PfCRINombresDessin{\PfCRINombresDessin "\num{\PfCRIRINombres[\compteurcnt]}",}%
+    }%
+  }%
+  \foreachitem\compteur\in\PfCRIRIOperations{%
+    \xdef\PfCRIOperationsDessin{\PfCRIOperationsDessin "\PfCRIRIOperations[\compteurcnt]",}%
+  }%
+  % On dessine
+  \BuildRondeInfernale{\PfCRINombresDessin}{\PfCRIOperationsDessin}%
+}%
+
+\NewDocumentCommand\BuildRondeInfernale{m m}{%
+  \ifluatex
+  \mplibforcehmode
+  \begin{mplibcode}
+    boolean Vide,Rectangle,Perso;
+    Vide=\useKV[RondeInfernale]{Vide};
+    Rectangle=\useKV[RondeInfernale]{Rectangle};
+    Perso=\useKV[RondeInfernale]{Perso};
+    if Perso:
+    string Depart;
+    Depart=\useKV[RondeInfernale]{Cle};
+    else:
+    numeric Depart;
+    Depart=\PfCRINombreCle;
+    fi;
+
+    numeric Rayon;
+    Rayon=\useKV[RondeInfernale]{Rayon};
+
+    string Nombre[];
+    
+    vardef Compte(text t)=%On compte le nb d'étapes et on retient les nombres
+    nbcase:=0;
+    for p_=t:
+    nbcase:=nbcase+1;
+    Nombre[nbcase]=p_;
+    endfor;
+    enddef;
+
+    vardef AfficheRonde(text t)=%On fait l'affichage des opérations
+    n:=0;
+    for k=1 upto nbcase:
+    fill cercles(rotation(A[k],O,0.5*(360/nbcase)),5mm) withcolor white;
+    endfor;
+    for p_=t:
+    n:=n+1;
+    if p_="*":
+    label(TEX("$\times"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    elseif p_="/":
+    label(TEX("$\div"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    else:
+    label(TEX("$"&p_&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+        fi;
+    endfor;
+    enddef;
+
+    vardef AfficheRectangle(text t)=%On fait l'affichage des opérations
+    n:=0;
+    for p_=t:
+    n:=n+1;
+    if n=nbcase:
+    if p_="*":
+    label.bot(TEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    elseif p_="/":
+    label.bot(TEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    else:
+    label.bot(TEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    fi;
+    else:
+    if p_="*":
+    label.top(TEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    elseif p_="/":
+    label.top(TEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    else:
+    label.top(TEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    fi;
+    fi;
+    endfor;
+    enddef;
+
+    vardef BaseRonde=
+    pair O,A[];
+    O=(0,0);
+    path cc;
+    cc=cercles(O,Rayon);
+    A[0]=pointarc(cc,0);
+    A[nbcase+1]=A[0];
+    for k=1 upto nbcase:
+    A[k]=rotation(A[0],O,k*(360/nbcase));
+    endfor;
+    for k=0 upto nbcase:
+    drawarrow reverse(arccercle(A[k],A[k+1],O) cutbefore cercles(A[k],5mm) cutafter cercles(A[k+1],5mm)) withpen pencircle scaled 1.5;
+    endfor;
+    for k=0 upto nbcase:
+    fill cercles(A[k],5mm) withcolor white;
+    trace cercles(A[k],5mm) withpen pencircle scaled 1.5;
+    endfor;
+    enddef;
+
+    vardef BoiteRectangle=
+    save $;
+    path $;
+    $=u*(0.9,-0.5){dir 0}..{dir 90}(u*(1,-0.4))--(u*(1,0.4)){dir 90}..{dir180}(u*(0.9,0.5))--u*(-0.9,0.5){dir 180}..{dir-90}(u*(-1,0.4))--(u*(-1,-0.4)){dir-90}..{dir0}(u*(-0.9,-0.5))--cycle;
+    $
+    enddef;
+    
+    vardef BaseRectangle=
+    pair O,A[];
+    O=(0,0);
+    A[0]=O;
+    for k=1 upto nbcase:
+    A[k]-A[k-1]=(Rayon+2cm,0);
+    endfor;
+    for k=0 upto nbcase-2:
+    drawarrow (A[k]--A[k+1]) cutbefore (BoiteRectangle shifted A[k]) cutafter (BoiteRectangle shifted A[k+1]) withpen pencircle scaled 1.5;
+    endfor;
+    drawarrow (A[nbcase-1]--(A[nbcase-1]+u*(0,-1))--(A[0]+u*(0,-1))--A[0]) cutbefore (BoiteRectangle shifted A[nbcase-1]) cutafter (BoiteRectangle shifted A[0]) withpen pencircle scaled 1.5;
+    for k=0 upto nbcase-1:
+    trace (BoiteRectangle shifted A[k]) withpen pencircle scaled 1.5;
+    endfor;
+    enddef;
+    
+    Compte(#1);
+    
+    if Rectangle:
+    BaseRectangle;
+    AfficheRectangle(#2);
+    else:
+    BaseRonde;
+    AfficheRonde(#2);
+    fi;
+    if Vide=false:
+    if Perso:
+    label(TEX("$"&Depart&"$"),A[0]);
+    else:
+    label(TEX("$"&decimal(Depart)&"$"),A[0]);
+    fi;
+    fi;
+  \end{mplibcode}
+  \else
+  \begin{mpost}[mpsettings={%
+      boolean Vide,Rectangle,Perso;Vide=\useKV[RondeInfernale]{Vide};Rectangle=\useKV[RondeInfernale]{Rectangle};Perso=\useKV[RondeInfernale]{Perso};if Perso:string Depart;Depart=\useKV[RondeInfernale]{Cle};else:numeric Depart;Depart=\PfCRINombreCle;fi;numeric Rayon;Rayon=\useKV[RondeInfernale]{Rayon};}]
+    string Nombre[];
+    
+    vardef Compte(text t)=%On compte le nb d'étapes et on retient les nombres
+    nbcase:=0;
+    for p_=t:
+    nbcase:=nbcase+1;
+    Nombre[nbcase]=p_;
+    endfor;
+    enddef;
+
+    vardef AfficheRonde(text t)=%On fait l'affichage des opérations
+    n:=0;
+    for k=1 upto nbcase:
+    fill cercles(rotation(A[k],O,0.5*(360/nbcase)),5mm) withcolor white;
+    endfor;
+    for p_=t:
+    n:=n+1;
+    if p_="*":
+    label(LATEX("$\times"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    elseif p_="/":
+    label(LATEX("$\div"&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    else:
+    label(LATEX("$"&p_&Nombre[n]&"$"),rotation(A[nbcase-n],O,0.5*(360/nbcase)));
+    fi;
+    endfor;
+    enddef;
+
+    vardef AfficheRectangle(text t)=%On fait l'affichage des opérations
+    n:=0;
+    for p_=t:
+    n:=n+1;
+    if n=nbcase:
+    if p_="*":
+    label.bot(LATEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    elseif p_="/":
+    label.bot(LATEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    else:
+    label.bot(LATEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[0]]+u*(0,-1));
+    fi;
+    else:
+    if p_="*":
+    label.top(LATEX("$\times"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    elseif p_="/":
+    label.top(LATEX("$\div"&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    else:
+    label.top(LATEX("$"&p_&Nombre[n]&"$"),1/2[A[n-1],A[n]]);
+    fi;
+    fi;
+    endfor;
+    enddef;
+
+    vardef BaseRonde=
+    pair O,A[];
+    O=(0,0);
+    path cc;
+    cc=cercles(O,Rayon);
+    A[0]=pointarc(cc,0);
+    A[nbcase+1]=A[0];
+    for k=1 upto nbcase:
+    A[k]=rotation(A[0],O,k*(360/nbcase));
+    endfor;
+    for k=0 upto nbcase:
+    drawarrow reverse(arccercle(A[k],A[k+1],O) cutbefore cercles(A[k],5mm) cutafter cercles(A[k+1],5mm)) withpen pencircle scaled 1.5;
+    endfor;
+    for k=0 upto nbcase:
+    fill cercles(A[k],5mm) withcolor white;
+    trace cercles(A[k],5mm) withpen pencircle scaled 1.5;
+    endfor;
+    enddef;
+
+    vardef BoiteRectangle=
+    save $;
+    path $;
+    $=u*(0.9,-0.5){dir 0}..{dir 90}(u*(1,-0.4))--(u*(1,0.4)){dir 90}..{dir180}(u*(0.9,0.5))--u*(-0.9,0.5){dir 180}..{dir-90}(u*(-1,0.4))--(u*(-1,-0.4)){dir-90}..{dir0}(u*(-0.9,-0.5))--cycle;
+    $
+    enddef;
+    
+    vardef BaseRectangle=
+    pair O,A[];
+    O=(0,0);
+    A[0]=O;
+    for k=1 upto nbcase:
+    A[k]-A[k-1]=(Rayon+2cm,0);
+    endfor;
+    for k=0 upto nbcase-2:
+    drawarrow (A[k]--A[k+1]) cutbefore (BoiteRectangle shifted A[k]) cutafter (BoiteRectangle shifted A[k+1]) withpen pencircle scaled 1.5;
+    endfor;
+    drawarrow (A[nbcase-1]--(A[nbcase-1]+u*(0,-1))--(A[0]+u*(0,-1))--A[0]) cutbefore (BoiteRectangle shifted A[nbcase-1]) cutafter (BoiteRectangle shifted A[0]) withpen pencircle scaled 1.5;
+    for k=0 upto nbcase-1:
+    trace (BoiteRectangle shifted A[k]) withpen pencircle scaled 1.5;
+    endfor;
+    enddef;
+    
+    Compte(#1);
+    
+    if Rectangle:
+    BaseRectangle;
+    AfficheRectangle(#2);
+    else:
+    BaseRonde;
+    AfficheRonde(#2);
+    fi;
+    if Vide=false:
+    if Perso:
+    label(LATEX("$"&Depart&"$"),A[0]);
+    else:
+    label(LATEX("$"&decimal(Depart)&"$"),A[0]);
+    fi;
+    fi;
+  \end{mpost}
+  \fi
+}%
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernaleold.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -1,7 +1,7 @@
 %%%
 % Rose
 %%%
-\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}%
+\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}}%
 \defKV[ClesRose]{LesSommes=\setKV[ClesRose]{Addition}}%
@@ -19,8 +19,9 @@
     }{%
       \xdef\PfCFooRoseMul{\PfCFooRoseMul,\useKV[ClesRose]{LesProduits}}%
     }%
-    \setsepchar{,}%
+    \setsepchar{,}\reademptyitems%
     \readlist*\ListeCompleteRoseMul{\PfCFooRoseMul}%
+    \ignoreemptyitems
     \foreachitem\compteur\in\ListeCompleteRoseMul{\expandafter\UpdatetoksRM\compteur\nil}%
     \xdef\PfCRetiensLesFacteurs{}%
     \foreachitem\compteur\in\ListeCompleteRoseMul{%
@@ -216,7 +217,8 @@
     \mplibforcehmode%
     \begin{mplibcode}
       Rayon=\useKV[ClesRose]{Rayon};
-      boolean Aide,Solution,Polygone,Addition;
+      boolean Aide,Solution,Polygone,Addition,CDot;
+      CDot=\useKV[ClesRose]{CDot};
       Aide=\useKV[ClesRose]{Aide};
       Solution=\useKV[ClesRose]{Solution};
       Addition=\useKV[ClesRose]{Addition};
@@ -248,12 +250,17 @@
       if Addition:
       label(TEX("\Large$+$"),O);
       else:
+      if CDot:
+      label(TEX("\Large$\cdot$"),O);
+      else:
       label(TEX("\Large$\times$"),O);
       fi;
+      fi;
     \end{mplibcode}
   \else
     \begin{mpost}[mpsettings={Rayon:=\useKV[ClesRose]{Rayon};
-        boolean Aide,Solution,Polygone;
+        boolean Aide,Solution,Polygone,CDot;
+        CDot=\useKV[CleSRose]{Aide};
         Aide:=\useKV[ClesRose]{Aide};
         Solution:=\useKV[ClesRose]{Solution};
         Polygone:=\useKV[ClesRose]{Polygone};
@@ -281,8 +288,12 @@
       if Addition:
       label(LATEX("\Huge$+$"),O);
       else:
+      if CDot:
+      label(LATEX("\Huge$\cdot$"),O);
+      else:
       label(LATEX("\Huge$\times$"),O);
       fi;
+      fi;
     \end{mpost}
   \fi
 }%
@@ -292,7 +303,8 @@
   \mplibforcehmode%
   \xdef\PfCNomRose{\useKV[ClesRose]{Nom}}%
   \begin{mplibcode}[\PfCNomRose]
-    boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone,Addition;
+    boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone,Addition,CDot;
+    CDot=\useKV[ClesRose]{CDot};
     Addition=\useKV[ClesRose]{Addition};
     Aide:=\useKV[ClesRose]{Aide};
     Vide:=\useKV[ClesRose]{Vide};
@@ -326,8 +338,12 @@
     if Addition:
     label(TEX("\Large$+$"),O);
     else:
+    if CDot:
+    label(TEX("\Large$\cdot$"),O);
+    else:
     label(TEX("\Large$\times$"),O);
     fi;
+    fi;
   \end{mplibcode}
   \fi
 }
@@ -368,7 +384,8 @@
     enddef;
     pair A[],B[],O;
     Rayon:=\useKV[ClesRose]{Rayon};
-    boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone,Addition,Melange;
+    boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone,Addition,Melange,CDot;
+    CDot=\useKV[ClesRose]{CDot};
     Melange:=\useKV[ClesRose]{Melange};
     Addition=\useKV[ClesRose]{Addition};
     Aide:=\useKV[ClesRose]{Aide};
@@ -490,12 +507,17 @@
     if Addition:
     label(TEX("\Large$+$"),O);
     else:
+    if CDot:
+    label(TEX("\Large$\cdot$"),O);
+    else:
     label(TEX("\Large$\times$"),O);
     fi;
+    fi;
   \end{mplibcode}
   \else
   \begin{mpost}[mpsettings={Rayon:=\useKV[ClesRose]{Rayon};
-    boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone;
+      boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone,CDot;
+      CDot:=useKV[ClesRose]{CDot};
     Aide:=\useKV[ClesRose]{Aide};
     Vide:=\useKV[ClesRose]{Vide};
     Solution:=\useKV[ClesRose]{Solution};
@@ -607,8 +629,12 @@
     if Addition:
     label(LATEX("\noexpand\Large$+$"),O);
     else:
+    if CDot:
+    label(LATEX("\noexpand\Large$\cdot$"),O);
+    else:
     label(LATEX("\noexpand\Large$\times$"),O);
     fi;
+    fi;
   \end{mpost}
   \fi
 }%
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -17,6 +17,7 @@
     \setsepchar{,}\ignoreemptyitems%
     \expandafter\UpdatetoksSerpent\PfCFooCheminSerpent\nil%
     \BuildSerpent{\the\tokListeSerpentPerso}%
+    \reademptyitems%
   }{%
     \BuildSerpent{}%
   }%
@@ -253,9 +254,9 @@
       Chiffre[tt]=Chiffre[tt-1]*Multiple;
       St[tt]=iso(N[tt-1]+PasQuad*(1,1),N[tt]+PasQuad*(1,1));
       if xpart(N[tt])-xpart(N[tt-1])=0:
-      label.rt(TEX("$\times"&decimal(Multiple)&"$"),St[tt]);
+      label.rt(TEX("$\PfCSymbolTimes"&decimal(Multiple)&"$"),St[tt]);
       else:
-      label.bot(TEX("$\times"&decimal(Multiple)&"$"),St[tt]);
+      label.bot(TEX("$\PfCSymbolTimes"&decimal(Multiple)&"$"),St[tt]);
       fi;
       enddef;
       numeric Chiffre[];
@@ -290,9 +291,9 @@
       Chiffre[tt]=Chiffre[tt-1] div Quotient;
       St[tt]=iso(N[tt-1]+PasQuad*(1,1),N[tt]+PasQuad*(1,1));
       if xpart(N[tt])-xpart(N[tt-1])=0:
-      label.rt(TEX("$\div"&decimal(Quotient)&"$"),St[tt]);
+      label.rt(TEX("$\PfCSymbolDiv"&decimal(Quotient)&"$"),St[tt]);
       else:
-      label.bot(TEX("$\div"&decimal(Quotient)&"$"),St[tt]);
+      label.bot(TEX("$\PfCSymbolDiv"&decimal(Quotient)&"$"),St[tt]);
       fi;
       enddef;
       %

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -514,6 +514,11 @@
   B[n]=unitey*(0,ypart(p_));
   fi;
   endfor;
+  if DonneesSup:
+  maxAxey:=floor(maxy/10)*10+4*PasGrilley;
+  else:
+  maxAxey:=maxy;
+  fi;
   enddef;
   vardef tutu(text t)=%points qualitatif
   n:=0;
@@ -531,6 +536,11 @@
   endfor;
   maxy:=maxy-Depart;
   maxx:=n;
+  if DonneesSup:
+  maxAxey:=floor(maxy/10)*10+4*PasGrilley;
+  else:
+  maxAxey:=maxy;
+  fi;
   enddef;
 }
 
@@ -649,9 +659,9 @@
     if Grille:
     drawoptions(withcolor 0.75white);
     for k=0 step PasGrillex until ((maxx+1)):
-    trace (k*unitex,0)--(k*unitex,unitey*((floor(maxy/Pasy)+1)*Pasy));
+    trace (k*unitex,0)--(k*unitex,unitey*((floor(maxAxey/Pasy)+1)*Pasy));
     endfor;
-    for k=0 step PasGrilley until (floor(maxy/Pasy)+1)*Pasy:%((maxy+2*Pasy)):
+    for k=0 step PasGrilley until (floor(maxAxey/Pasy)+1)*Pasy:%((maxy+2*Pasy)):
     trace (0,k*unitey)--(unitex*(maxx+1),k*unitey);
     endfor;
     drawoptions();
@@ -701,9 +711,9 @@
     endfor;
     fi;
     drawarrow (0,0)--unitex*(maxx+1,0);
-    drawarrow (0,0)--unitey*(0,(floor(maxy/Pasy)+1)*Pasy);
-    label.lrt(btex \useKV[ClesStat]{Donnee} etex,unitex*(maxx+1,0));
-    label.urt(btex \useKV[ClesStat]{Effectif} etex,unitey*(0,(floor(maxy/Pasy)+1)*Pasy));
+    drawarrow (0,0)--unitey*(0,(floor(maxAxey/Pasy)+1)*Pasy);
+    label.lrt(TEX("\useKV[ClesStat]{Donnee}"),unitex*(maxx+1,0));
+    label.urt(TEX("\useKV[ClesStat]{Effectif}"),unitey*(0,(floor(maxAxey/Pasy)+1)*Pasy));
     if Qualitatif: titi(#1); else:tata(#1); fi;
   \end{mplibcode}
   \else

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex	2024-01-22 20:36:25 UTC (rev 69539)
@@ -554,7 +554,7 @@
       est un tableau de proportionnalit\'e\ifboolKV[ClesThales]{Segment}{.}{ d'apr\`es le th\'eor\`eme de Thal\`es.}%
     }{%
       \ifboolKV[ClesThales]{Segment}{on a :}{le th\'eor\`eme de Thal\`es permet d'\'ecrire :}%
-      \[\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursNum}{\mathcolor{\useKV[ClesThales]{CouleurNum}}{#2#5}}{#2#5}}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursDen}{\mathcolor{\useKV[ClesThales]{CouleurDen}}{#2#3}}{#2#3}}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursNum}{\mathcolor{\useKV[ClesThales]{CouleurNum}}{#2#6}}{#2#6}}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursDen}{\mathcolor{\useKV[ClesThales]{CouleurDen}}{#2#4}}{#2#4}}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursNum}{\mathcolor{\useKV[ClesThales]{CouleurNum}}{#5#6}}{#5#6}}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursDen}{\mathcolor{\useKV[ClesThales]{CouleurDen}}{#3#4}}{#3#4}}}\]%
+      \[\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursNum}{\mathcolor{\useKV[ClesThales]{CouleurNum}}{#2#5}}{#2#5}}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursDen}{\mathcolor{\useKV[ClesThales]{CouleurDen}}{#2#3}}{#2#3}}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursNum}{\mathcolor{\useKV[ClesThales]{CouleurNum}}{#2#6}}{#2#6}}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursDen}{\mathcolor{\useKV[ClesThales]{CouleurDen}}{#2#4}}{#2#4}}}=\frac{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursNum}{\mathcolor{\useKV[ClesThales]{CouleurNum}}{#5#6}}{#5#6}}}{\ifboolKV[ClesThales]{Remediation}{\pointilles[1cm]}{\ifboolKV[ClesThales]{CouleursDen}{\mathcolor{\useKV[ClesThales]{CouleurDen}}{#3#4}}{#3#4}}}.\]%
     }%
   }%
 }%
@@ -923,7 +923,7 @@
       \end{array}
     \]
   }{%
-    \[\frac{\IfDecimal{#3}{\num{#3}}{#3}}{\IfDecimal{#6}{\num{#6}}{#6}}=\frac{\IfDecimal{#4}{\num{#4}}{#4}}{\IfDecimal{#7}{\num{#7}}{#7}}=\frac{\IfDecimal{#5}{\num{#5}}{#5}}{\IfDecimal{#8}{\num{#8}}{#8}}\]
+    \[\frac{\IfDecimal{#3}{\num{#3}}{#3}}{\IfDecimal{#6}{\num{#6}}{#6}}=\frac{\IfDecimal{#4}{\num{#4}}{#4}}{\IfDecimal{#7}{\num{#7}}{#7}}=\frac{\IfDecimal{#5}{\num{#5}}{#5}}{\IfDecimal{#8}{\num{#8}}{#8}}.\]
   }%
   % On choisit \'eventuellement le calcul \`a faire s'il y en a plusieurs.
   \xdef\CompteurCalcul{\useKV[ClesThales]{ChoixCalcul}}%

Modified: trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-01-22 20:36:01 UTC (rev 69538)
+++ trunk/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty	2024-01-22 20:36:25 UTC (rev 69539)
@@ -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{2023/12/01}%
+\def\filedate{2024/01/22}%
 \let\PfCfiledate\filedate%
-\def\fileversion{0.99-z-y}%
+\def\fileversion{0.99-z-z}%
 \let\PfCfileversion\fileversion%
 \ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college]%
 
@@ -710,6 +710,10 @@
 \readlist*\ListeMateriaux{aluminium/'/2.7,chêne/e~/0.69,bouleau/e~/0.65,sapin/e~/0.45,polystyrène/e~/1.04,porcelaine/la/2.5,acier/'/7.85,cuivre/e~/8.92,fer/e~/7.86,or/'/19.3,argent/'/10.5,bronze/e~/8.4,plomb/e~/11.35,marbre/e~/2.75,laiton/e~/7.3,titane/e~/4.5,PVC/e~/1.38}
 \setsepchar{,}
 
+%Internationalisation
+\def\PfCSymbolTimes{\times}%
+\def\PfCSymbolDiv{\div}%
+
 \input{PfCConversion}
 \input{PfCCritere}
 \input{PfCLego}



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