diff options
author | Karl Berry <karl@freefriends.org> | 2024-01-22 20:36:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-01-22 20:36:25 +0000 |
commit | 634042f04953fe7309025eec37eaa025dc10afd3 (patch) | |
tree | 424f500eb928d6d31b971ae6deae4db903ffb7c8 /Master/texmf-dist/tex/latex | |
parent | f3ce0fbe0e030cc77cf969cbdc946dbcdd867f79 (diff) |
profcollege (22jan24)
git-svn-id: svn://tug.org/texlive/trunk@69539 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
27 files changed, 711 insertions, 101 deletions
diff --git a/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex b/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex index 37ddec940ed..08be71cd4f0 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCBonbon.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex b/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex index 81464aa744c..dbe0adbd3e6 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCCalculatrice.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex b/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex index a29f47f9af0..d17a6c9f556 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCCalculsCroises.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex b/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex index cdd853a8fad..336b10651d0 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCCibleQOp.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex b/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex index c61d8cf8701..1d5339b114c 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCCompteBon.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex b/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex index 670e5ca28fb..78fa6d03517 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCConversion.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex b/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex index 3fd554b0baa..34c96a9b069 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCCritere.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex b/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex index 39ec997a292..4f9e7f9cf65 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCDecomposerNombrePremier.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex b/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex index 619220704cb..6d850f80126 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCDefiCalc.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex b/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex index 7c227831e14..85274cac81c 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCDessinAlgo.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex b/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex index f5c2c573d79..700fb9906b3 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCFactorisation.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex b/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex index 08e9936d529..52512fb83ef 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCFractionNombre.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex b/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex index 1bcd3ddab34..7e04378a93b 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCGaram.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex b/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex index bbb99424f65..adf0aba7d21 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCKakuro.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex b/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex index 8e8daa9f861..e28efc379f5 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCKenKen.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex b/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex index f4b0fbd65c3..86811da4ad8 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCLego.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex b/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex index 3e615aa3e9d..e0457471e18 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCMulJap.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex b/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex index 64c196d9926..d000fef45b3 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCNotionFonction.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex b/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex index 4c116cff671..70bd8b7c7a0 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCReperage.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex b/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex index d0d39859ea8..6660693348a 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCRepresenterFraction.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex b/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex index 7917c5138bd..9fc7f3446d6 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernale.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernaleold.tex b/Master/texmf-dist/tex/latex/profcollege/PfCRondeInfernaleold.tex new file mode 100644 index 00000000000..bf7cc6225f0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex b/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex index 98363a8a640..d6059cdd7ec 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCRose.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex b/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex index b71434dc305..cd38bd90a25 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCSerpent.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex b/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex index 0fc78fb7579..b45111daf58 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCStatistiques.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex b/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex index 47aabb47da2..a0ebd3b36f0 100644 --- a/Master/texmf-dist/tex/latex/profcollege/PfCThales.tex +++ b/Master/texmf-dist/tex/latex/profcollege/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/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty b/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty index 5b62dc03b76..dd1f5c9237f 100644 --- a/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty +++ b/Master/texmf-dist/tex/latex/profcollege/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} |