summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-01-23 03:00:53 +0000
committerNorbert Preining <norbert@preining.info>2024-01-23 03:00:53 +0000
commit208ecf90e1d5a239ff2a8cd506c077d194d348c0 (patch)
treee505248dddbb616aa6190340ab46f5f8b4b55803 /macros/latex/contrib/profcollege
parent3bb554642b743cd7ca7aef2b3668604343bfe708 (diff)
CTAN sync 202401230300
Diffstat (limited to 'macros/latex/contrib/profcollege')
-rw-r--r--macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdfbin9752363 -> 9742827 bytes
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCBonbon.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex8
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex16
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex88
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCompteBon.tex10
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCConversion.tex6
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCritere.tex5
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex22
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex1
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFactorisation.tex13
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex1
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCGaram.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKakuro.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCKenKen.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCLego.tex1
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMulJap.tex1
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex2
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCReperage.tex3
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex5
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex56
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRondeInfernaleold.tex474
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCRose.tex40
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCSerpent.tex9
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCStatistiques.tex20
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCThales.tex4
-rw-r--r--macros/latex/contrib/profcollege/latex/ProfCollege.sty8
28 files changed, 711 insertions, 101 deletions
diff --git a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
index 62ee043d52..c6903922cf 100644
--- a/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
+++ b/macros/latex/contrib/profcollege/doc/ProfCollege-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profcollege/latex/PfCBonbon.tex b/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
index 37ddec940e..08be71cd4f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCBonbon.tex
@@ -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]%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
index 81464aa744..dbe0adbd3e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculatrice.tex
@@ -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]}}}%
}%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex b/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
index a29f47f9af..d17a6c9f55 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalculsCroises.tex
@@ -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{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex b/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
index cdd853a8fa..336b10651d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCibleQOp.tex
@@ -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%
}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex b/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
index c61d8cf870..1d5339b114 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCompteBon.tex
@@ -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@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@ListeCalculsChoisis[##1,1]}{*}{\times}[\PfCEcritureCalcul]$\PfCEcritureCalcul$}}{}\\
+ \ifboolKV[CompteBon]{Solution}{\Block{1-11}{\footnotesize Une solution : \StrSubstitute[0]{\PfC@ListeCalculsChoisis[##1,1]}{*}{\PfCSymbolTimes}[\PfCEcritureCalcul]$\PfCEcritureCalcul$}}{}\\
}%
\end{NiceTabular}
\end{center}
}%
-}% \ No newline at end of file
+}%
+
+\makeatother \ No newline at end of file
diff --git a/macros/latex/contrib/profcollege/latex/PfCConversion.tex b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
index 670e5ca28f..78fa6d0351 100644
--- a/macros/latex/contrib/profcollege/latex/PfCConversion.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCConversion.tex
@@ -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}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCCritere.tex b/macros/latex/contrib/profcollege/latex/PfCCritere.tex
index 3fd554b0ba..34c96a9b06 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCritere.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCritere.tex
@@ -18,15 +18,16 @@
\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{%
\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}}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex b/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
index 39ec997a29..4f9e7f9cf6 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDecomposerNombrePremier.tex
@@ -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%
diff --git a/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex b/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
index 619220704c..6d850f8012 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDefiCalc.tex
@@ -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}
diff --git a/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex b/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
index 7c227831e1..85274cac81 100644
--- a/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCDessinAlgo.tex
@@ -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}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
index f5c2c573d7..700fb9906b 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFactorisation.tex
@@ -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}\\}{}}
diff --git a/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex b/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
index 08e9936d52..52512fb83e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCFractionNombre.tex
@@ -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%
diff --git a/macros/latex/contrib/profcollege/latex/PfCGaram.tex b/macros/latex/contrib/profcollege/latex/PfCGaram.tex
index 1bcd3ddab3..7e04378a93 100644
--- a/macros/latex/contrib/profcollege/latex/PfCGaram.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCGaram.tex
@@ -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$};
diff --git a/macros/latex/contrib/profcollege/latex/PfCKakuro.tex b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
index bbb99424f6..adf0aba7d2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex
@@ -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%
diff --git a/macros/latex/contrib/profcollege/latex/PfCKenKen.tex b/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
index 8e8daa9f86..e28efc379f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCKenKen.tex
@@ -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]%
diff --git a/macros/latex/contrib/profcollege/latex/PfCLego.tex b/macros/latex/contrib/profcollege/latex/PfCLego.tex
index f4b0fbd65c..86811da4ad 100644
--- a/macros/latex/contrib/profcollege/latex/PfCLego.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCLego.tex
@@ -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]}}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCMulJap.tex b/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
index 3e615aa3e9..e0457471e1 100644
--- a/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCMulJap.tex
@@ -15,6 +15,7 @@
\toksmuljap{}%
\foreachitem\compteur\in\PfCMulJap{\expandafter\UpdatetoksMulJap\compteur\nil}%
\BuildMulJap{\the\toksmuljap}%
+ \reademptyitems
}%
\NewDocumentCommand\BuildMulJap{m}{%
diff --git a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
index 64c196d992..d000fef45b 100644
--- a/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCNotionFonction.tex
@@ -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}%
diff --git a/macros/latex/contrib/profcollege/latex/PfCReperage.tex b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
index 4c116cff67..70bd8b7c7a 100644
--- a/macros/latex/contrib/profcollege/latex/PfCReperage.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCReperage.tex
@@ -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};}]
diff --git a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
index d0d39859ea..6660693348 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRepresenterFraction.tex
@@ -427,12 +427,14 @@
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):
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:
diff --git a/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex b/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
index 7917c5138b..9fc7f3446d 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRondeInfernale.tex
@@ -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;
diff --git a/macros/latex/contrib/profcollege/latex/PfCRondeInfernaleold.tex b/macros/latex/contrib/profcollege/latex/PfCRondeInfernaleold.tex
new file mode 100644
index 0000000000..bf7cc6225f
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCRondeInfernaleold.tex
@@ -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
diff --git a/macros/latex/contrib/profcollege/latex/PfCRose.tex b/macros/latex/contrib/profcollege/latex/PfCRose.tex
index 98363a8a64..d6059cdd7e 100644
--- a/macros/latex/contrib/profcollege/latex/PfCRose.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCRose.tex
@@ -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
diff --git a/macros/latex/contrib/profcollege/latex/PfCSerpent.tex b/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
index b71434dc30..cd38bd90a2 100644
--- a/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCSerpent.tex
@@ -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;
%
diff --git a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
index 0fc78fb757..b45111daf5 100644
--- a/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCStatistiques.tex
@@ -514,6 +514,11 @@ ModeleCouleur=5%
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 @@ ModeleCouleur=5%
endfor;
maxy:=maxy-Depart;
maxx:=n;
+ if DonneesSup:
+ maxAxey:=floor(maxy/10)*10+4*PasGrilley;
+ else:
+ maxAxey:=maxy;
+ fi;
enddef;
}
@@ -649,9 +659,9 @@ ModeleCouleur=5%
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 @@ ModeleCouleur=5%
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
diff --git a/macros/latex/contrib/profcollege/latex/PfCThales.tex b/macros/latex/contrib/profcollege/latex/PfCThales.tex
index 47aabb47da..a0ebd3b36f 100644
--- a/macros/latex/contrib/profcollege/latex/PfCThales.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCThales.tex
@@ -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}}%
diff --git a/macros/latex/contrib/profcollege/latex/ProfCollege.sty b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
index 5b62dc03b7..dd1f5c9237 100644
--- a/macros/latex/contrib/profcollege/latex/ProfCollege.sty
+++ b/macros/latex/contrib/profcollege/latex/ProfCollege.sty
@@ -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}