diff options
author | Karl Berry <karl@freefriends.org> | 2022-08-17 20:59:59 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-08-17 20:59:59 +0000 |
commit | bd560fa1edb324d9a828837571656c9598280fa9 (patch) | |
tree | ce98496f18427b8cc122cbcc69eec093f5e4f757 /Master | |
parent | 0615878c2213d71454065177016d25579de3a692 (diff) |
profcollege (17aug22)
git-svn-id: svn://tug.org/texlive/trunk@64137 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf | bin | 8684452 -> 8817716 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip | bin | 2214355 -> 2218015 bytes | |||
-rw-r--r-- | Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp | 195 | ||||
-rw-r--r-- | Master/texmf-dist/metapost/profcollege/PfCArithmetiquePDF.mp | 237 | ||||
-rw-r--r-- | Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp | 21 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty | 1521 |
6 files changed, 1380 insertions, 594 deletions
diff --git a/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf b/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf Binary files differindex c78ed2b3b42..c58be2a0995 100644 --- a/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf +++ b/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.pdf diff --git a/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip b/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip Binary files differindex 1d69bcbb09b..03d5c23e356 100644 --- a/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip +++ b/Master/texmf-dist/doc/latex/profcollege/ProfCollege-doc.zip diff --git a/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp b/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp deleted file mode 100644 index 0140e24b4df..00000000000 --- a/Master/texmf-dist/metapost/profcollege/PfC-Calculatriceold.mp +++ /dev/null @@ -1,195 +0,0 @@ -prologues:=3; - -path carre[]; - -u:=0.5mm; - -vardef BlocAffichage= - for k=0 upto 34: - carre[k]:=(unitsquare scaled u) shifted(u*(k mod 5,5-(k div 5))); - endfor; -enddef; - -vardef Affichage(expr decomp)= - save $; - picture $; - drawoptions(withpen pensquare scaled0.1); - $=image(% - for k=0 upto 34: - if (substring(k,k+1) of decomp)="1": - fill carre[k]; - fi; - endfor; - ); - drawoptions(); - $ -enddef; - -nblignes:=0; - -boolean print; -print:=false; - -color CouleurEcran; -CouleurEcran=(107/255,148/255,107/255); - -boolean Math; -Math=true; - -decahoriz:=0; - -vardef Test(expr cptk,cptnt)= - pair decalage; - if nblignes mod 2=0: - decalage:=u*((20-length(cptnt)+cptk)*6,-8*(nblignes-1)); - else: - decalage:=u*(decahoriz,-8*(nblignes-1)); - decahoriz:=decahoriz+6; - fi; - if substring(cptk,cptk+1) of cptnt="A":draw Affichage("01110100011000110001111111000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="B":draw Affichage("11110100011000111110100011000111110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="C":draw Affichage("01110100011000010000100001000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="D":draw Affichage("11100100101000110001100011001011100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="E":draw Affichage("11111100001000011111100001000011111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="F":draw Affichage("11111100001000011111100001000010000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="G":draw Affichage("01110100011000010111100011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="H":draw Affichage("10001100011000111111100011000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="I":draw Affichage("01110001000010000100001000010001110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="J":draw Affichage("00111000100001000010000101001001100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="K":draw Affichage("10001100101010011000101001001010001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="L":draw Affichage("10000100001000010000100001000011111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="M":draw Affichage("10001110111010110101100011000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="N":draw Affichage("10001100011100110101100111000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="O":draw Affichage("01110100011000110001100011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="P":draw Affichage("11110100011000111110100001000010000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="Q":draw Affichage("01110100011000110001101011001001101") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="R":draw Affichage("11110100011000111110101001001010001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="S":draw Affichage("01111100001000001110000010000111110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="T":draw Affichage("11111001000010000100001000010000100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="U":draw Affichage("10001100011000110001100011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="V":draw Affichage("10001100011000110001100010101000100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="W":draw Affichage("10101101011010110101101011010101010") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="X":draw Affichage("10001100010101000100010101000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="Y":draw Affichage("10001100011000101010001000010000100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="Z":draw Affichage("11111000010001000100010001000011111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="a":draw Affichage("00000000000111100001011111000101111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="b":draw Affichage("10000100001011011001100011000111110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="c":draw Affichage("00000000000111010000100001000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="d":draw Affichage("00001000010110110011100011000101111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="e":if Math: - draw Affichage("00000000000000000001101000100010100") shifted(decalage); - decalage:=u*(decahoriz-1,-8*(nblignes-1)); - draw Affichage("00000000001001010101101011010110010") shifted(decalage); - decahoriz:=decahoriz+6; - else: - draw Affichage("00000000000111010001111111000001110") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt="@":draw Affichage("00010001000111010001111111000001110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="f":draw Affichage("00110010010100011100010000100001000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="g":draw Affichage("00000011111000110001011110000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="h":draw Affichage("10000100001011011001100011000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="i":draw Affichage("00100000000110000100001000010001110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="j":if Math=true: - draw Affichage("00011000011110100001000000000000000") shifted(decalage); - else: - draw Affichage("00010000000011000010000101001001100") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt="k":if Math=true: - draw Affichage("11100001000100011100000000000000000") shifted(decalage); - else: - draw Affichage("10000100001001010100110001010010010") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt="l":if Math=true: - draw Affichage("11100010000010011100000000000000000") shifted(decalage); - else: - draw Affichage("01100001000010000100001000010001110") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt="m":draw Affichage("00000000001101010101101011000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="n":draw Affichage("00000000001011011001100011000110001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="o":draw Affichage("00000000000111010001100011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="p":draw Affichage("00000000001111010001111101000010000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="q":if Math=true: - draw Affichage("00000000001111101010010100101010001") shifted(decalage); - else: - draw Affichage("00000000000110110011011110000100001") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt="r":draw Affichage("00000000001011011001100001000010000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="s":draw Affichage("00000000000111010000011100000111110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="t":draw Affichage("01000010001110001000010000100100110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="u":draw Affichage("00000000001000110001100011001101101") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="v":if Math=true: - draw Affichage("00111001000010000100101000110000100") shifted(decalage); - else: - draw Affichage("00000000001000110001100010111000100") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt="w":draw Affichage("00000000001010110101101011010101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="x":draw Affichage("00000000001000101010001000101010001") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="y":draw Affichage("00000000001000110001011110000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="z":draw Affichage("00000000001111100010001000100011111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="0":draw Affichage("01110100011001110101110011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="1":draw Affichage("00100011000010000100001000010001110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="2":draw Affichage("01110100010000100010001000100011111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="3":draw Affichage("11111000100010000010000011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="4":draw Affichage("00010001100101010010111110001000010") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="5":draw Affichage("11111100001111000001000011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="6":draw Affichage("00110010001000011110100011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="7":draw Affichage("11111000010001000100010000100001000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="8":draw Affichage("01110100011000101110100011000101110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="9":draw Affichage("01110100011000101111000010001001100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="!":draw Affichage("00100001000010000100000000000000100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="'":draw Affichage("01100001000100000000000000000000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="(":draw Affichage("00010001000100001000010000010000010") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt=")":draw Affichage("01000001000001000010000100010001000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="*":draw Affichage("00000001001010101110101010010000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="+":draw Affichage("00000001000010011111001000010000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt=",":draw Affichage("00000000000000000000011000010001000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="-":draw Affichage("00000000000000011111000000000000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt=".":draw Affichage("00000000000000000000000000110001100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="/":draw Affichage("00000000010001000100010001000000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt=":":if Math=true: - draw Affichage("00000000000000000000000000000000000") shifted(decalage); - else: - draw Affichage("00000011000110000000011000110000000") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt=";":if Math=true: - draw Affichage("00000001000000011111000000010000000") shifted(decalage); - else: - draw Affichage("00000011000110000000011000010001000") shifted(decalage); - fi; - elseif substring(cptk,cptk+1) of cptnt="<":draw Affichage("00010001000100010000010000010000010") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="=":draw Affichage("00000000001111100000111110000000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt=">":draw Affichage("10000010000010000010001000100010000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="?":draw Affichage("01110100010000100010001000000000100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="[":draw Affichage("01110010000100001000010000100001110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="]":draw Affichage("01110000100001000010000100001001110") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="`":draw Affichage("01000001000001000000000000000000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="|":draw Affichage("00100001000010000100001000010000100") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt=" ":draw Affichage("00000100010101000100010101000100000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="&":draw Affichage("00000100001100011100110001000000000") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="$":draw Affichage("00000000000000100001000010000111111") shifted(decalage); - elseif substring(cptk,cptk+1) of cptnt="^":draw Affichage("00100010101000100000000000000000000") shifted(decalage); - fi; -enddef; - -vardef LCD(text nt)(text rep)= - decahoriz:=0; - nblignes:=nblignes+1; - path Ecran; - Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1))); - fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi; - draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi; - for k=0 upto length(nt)-1: - BlocAffichage; - Test(k,nt); - endfor; - nblignes:=nblignes+1; - Ecran:=(u*(0,-1)--u*(120,-1)--u*(120,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1))); - fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi; - draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi; - for k=0 upto length(rep)-1: - BlocAffichage; - Test(k,rep); - endfor; -enddef; - -endinput; diff --git a/Master/texmf-dist/metapost/profcollege/PfCArithmetiquePDF.mp b/Master/texmf-dist/metapost/profcollege/PfCArithmetiquePDF.mp new file mode 100644 index 00000000000..8772c93b49b --- /dev/null +++ b/Master/texmf-dist/metapost/profcollege/PfCArithmetiquePDF.mp @@ -0,0 +1,237 @@ +% Fichier regroupant les macros pour les schémas des nombres premiers + +numeric retenirnb[]; + +vardef Estcepremier(expr NBa)= + boolean $; + c:=2; + departa:=NBa; + test:=1; + $=true; + if departa=1: + $:=false; + else: + forever: + if (departa mod c)=0: + departa:=departa div c; + test:=test+1; + else: + c:=c+1; + fi; + exitif departa=1; + endfor; + fi; + if test=2: + $:=true + else: + $:=false; + fi; + $ +enddef; + +vardef PremierSimple(expr NB)= + b:=2; + depart:=NB; + if Estcepremier(depart)=false: + forever: + if (depart mod b)=0: + Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage); + Ancre[k+2]-Ancre[k+1]=(decalage,0); + depart:=depart div b; + retenirnb[k+1]=b; + retenirnb[k+2]=depart; + label(LATEX("\num{"&decimal(b)&"}"),Ancre[k+1]); + label(LATEX("\num{"&decimal(depart)&"}"),Ancre[k+2]); + draw 1/5[Ancre[k],Ancre[k+1]]--4/5[Ancre[k],Ancre[k+1]]; + draw 1/5[Ancre[k],Ancre[k+2]]--4/5[Ancre[k],Ancre[k+2]]; + k:=k+2; + racine:=depart; + depart:=1; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + else: + racine:=1; + fi; +enddef; + +vardef PremierSimplePdf(expr NB)= + b:=2; + depart:=NB; + if Estcepremier(depart)=false: + forever: + if (depart mod b)=0: + Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage); + Ancre[k+2]-Ancre[k+1]=(decalage,0); + depart:=depart div b; + retenirnb[k+1]=b; + retenirnb[k+2]=depart; + label(LATEX("\num{"&decimal(b)&"}"),Ancre[k+1]); + label(LATEX("\num{"&decimal(depart)&"}"),Ancre[k+2]); + draw 1/5[Ancre[k],Ancre[k+1]]--4/5[Ancre[k],Ancre[k+1]]; + draw 1/5[Ancre[k],Ancre[k+2]]--4/5[Ancre[k],Ancre[k+2]]; + k:=k+2; + racine:=depart; + depart:=1; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + else: + racine:=1; + fi; +enddef; + +vardef PremierSimpleArbre(expr NB)= + b:=2; + depart:=NB; + if Estcepremier(depart)=false: + forever: + if (depart mod b)=0: + Ancre[k+1]-Ancre[k]=(-decalage*0.5,-decalage); + Ancre[k+2]-Ancre[k+1]=(decalage,0); + depart:=depart div b; + retenirnb[k+1]=b; + retenirnb[k+2]=depart; + draw Branche(Ancre[k],Ancre[k+1]); + draw Branche(Ancre[k],Ancre[k+2]); + k:=k+2; + racine:=depart; + depart:=1; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + else: + racine:=1; + fi; +enddef; + +vardef NbEtape(expr nb)= + b:=2; + depart:=nb; + etape:=0; + Stock[0][0]=depart; + forever: + if (depart mod b)=0: + etape:=etape+1; + if etape=1: + Stock[etape][0]=b; + Stock[etape][etape]:=depart div b; + else: + for k=0 upto etape-2: + Stock[etape][k]:=Stock[etape-1][k]; + endfor; + Stock[etape][etape-1]:=b; + Stock[etape][etape]:=depart div b; + fi; + depart:=depart div b; + else: + b:=b+1; + fi; + exitif depart=1; + endfor; + etape +enddef; + +vardef Positions(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + label(LATEX("\num{"&decimal(Stock[k][l])&"}"),N[k][l]); + endfor; + for l=0 upto k-1: + label(LATEX("$\times$"),1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; +enddef; + +vardef PositionsPdf(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + label(LATEX("\num{"&decimal(Stock[k][l])&"}"),N[k][l]); + endfor; + for l=0 upto k-1: + label(LATEX("$\times$"),1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; +enddef; + +vardef PositionsVide(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + endfor; + for l=0 upto k-1: + label(LATEX("$\times$"),1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; + label(LATEX("\num{"&decimal(Stock[0][0])&"}"),N[0][0]); +enddef; + +vardef PositionsVidePdf(expr Step)= + for k=0 upto (Step-1): + for l=0 upto k: + N[k][l]=(-k*dx+(l+k*.5)*dx,-k*dy); + endfor; + for l=0 upto k-1: + label(LATEX("$\times$"),1/2[N[k][l],N[k][l+1]]); + endfor; + endfor; + for k=0 upto (Step-1): + for l=0 upto (k-1): + draw 1/5[N[k][l],N[k-1][l]]--4/5[N[k][l],N[k-1][l]]; + endfor; + if k>0: + draw 1/5[N[k][k],N[k-1][k-1]]--4/5[N[k][k],N[k-1][k-1]]; + fi; + endfor; + label(LATEX("\num{"&decimal(Stock[0][0])&"}"),N[0][0]); +enddef; + +vardef Branche(expr nbd,nba)= + save $; + picture $; + pair UnitVector; + numeric AngleVector; + UnitVector=unitvector(nba-nbd) rotated 90; + AngleVector=angle(nba-nbd)+(-10+uniformdeviate(20)); + path branche; + branche=(nbd+UnitVector){dir AngleVector}..(nba+UnitVector)--reverse((nbd-UnitVector){dir AngleVector}..(nba-UnitVector))--cycle; + $=image( + fill branche withcolor gris; + draw branche; + ); + $ +enddef; + +endinput; diff --git a/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp b/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp index abfe21bc107..76bd2732948 100644 --- a/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp +++ b/Master/texmf-dist/metapost/profcollege/PfCLaTeX.mp @@ -2,13 +2,32 @@ vardef LATEX primary s = write "verbatimtex" to "mptextmp.mp"; write "%&latex" to "mptextmp.mp"; write "\documentclass[]{article}" to "mptextmp.mp"; + write "\usepackage{mathtools,amssymb}" to "mptextmp.mp"; + write "\usepackage{siunitx}" to "mptextmp.mp"; + write "\sisetup{locale=FR,mode = match, propagate-math-font = true,reset-math-version = false, reset-text-family = false,reset-text-series = false, reset-text-shape = false,text-family-to-math = true, text-series-to-math = true, output-decimal-marker={,},group-minimum-digits=4}" to "mptextmp.mp"; + write "\usepackage[utf8]{inputenc}" to "mptextmp.mp"; + write "\usepackage[T1]{fontenc}" to "mptextmp.mp"; + write "\usepackage{fourier}" to "mptextmp.mp"; + write "\usepackage[french]{babel}" to "mptextmp.mp"; + write "\begin{document}" to "mptextmp.mp"; + %write "\UseRawInputEncoding" to "mptextmp.mp"; + write "etex" to "mptextmp.mp"; + write "btex "&s&" etex" to "mptextmp.mp"; + write EOF to "mptextmp.mp"; + scantokens "input mptextmp" +enddef; + +vardef LATEXProf primary s = + write "verbatimtex" to "mptextmp.mp"; + write "%&latex" to "mptextmp.mp"; + write "\documentclass[]{article}" to "mptextmp.mp"; write "\usepackage{ProfCollege}" to "mptextmp.mp"; write "\usepackage[utf8]{inputenc}" to "mptextmp.mp"; write "\usepackage[T1]{fontenc}" to "mptextmp.mp"; write "\usepackage{fourier}" to "mptextmp.mp"; write "\usepackage[french]{babel}" to "mptextmp.mp"; write "\begin{document}" to "mptextmp.mp"; - write "\UseRawInputEncoding" to "mptextmp.mp"; + %write "\UseRawInputEncoding" to "mptextmp.mp"; write "etex" to "mptextmp.mp"; write "btex "&s&" etex" to "mptextmp.mp"; write EOF to "mptextmp.mp"; diff --git a/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty b/Master/texmf-dist/tex/latex/profcollege/ProfCollege.sty index f027170b16d..3cdb5e4ccf9 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{2022/08/01}% +\def\filedate{2022/08/17}% \let\PfCfiledate\filedate% -\def\fileversion{0.99-t}% +\def\fileversion{0.99-v}% \let\PfCfileversion\fileversion% \ProvidesPackage{ProfCollege}[\filedate\space v\fileversion\space Aide pour utiliser LaTeX au college] @@ -59,7 +59,7 @@ \RequirePackage[shellescape,latex]{gmp}%inclusion de figures metapost "à la volée"% \gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}} \usempxclass{article} -\usempxpackage{ProfCollege} +\usempxpackage[locale=FR,mode = match, propagate-math-font = true,reset-math-version = false, reset-text-family = false,reset-text-series = false, reset-text-shape = false,text-family-to-math = true, text-series-to-math = true, output-decimal-marker={,},group-minimum-digits=4]{siunitx} \usempxpackage[utf8]{inputenc} \usempxpackage[T1]{fontenc} \usempxpackage{fourier} @@ -69,7 +69,7 @@ \RequirePackage[latex]{gmp}%inclusion de figures metapost "à la volée"% \gmpoptions{everymp={prologues:=3; input PfCLaTeX; input PfCSvgnames; input PfCConstantes; input PfCGeometrie; input PfCAfficheur;}} \usempxclass{article} -\usempxpackage{ProfCollege} +\usempxpackage[locale=FR,mode = match, propagate-math-font = true,reset-math-version = false, reset-text-family = false,reset-text-series = false, reset-text-shape = false,text-family-to-math = true, text-series-to-math = true, output-decimal-marker={,},group-minimum-digits=4]{siunitx} \usempxpackage[utf8]{inputenc} \usempxpackage[T1]{fontenc} \usempxpackage{fourier} @@ -105,6 +105,7 @@ \RequirePackage{fontawesome5}%Pour l'environnement Twitter \RequirePackage{pifont}%Pour la commande \Autonomie \RequirePackage{nicematrix}% +\NiceMatrixOptions{allow-duplicate-names} \let\myoldmulticolumn\multicolumn \AtBeginEnvironment{tabular}{\let\multicolumn\myoldmulticolumn} @@ -346,6 +347,548 @@ } %%% +% PixelArt +%%% +\newtoks\toklistePANombre% +\def\UpdatetoksPANombre#1\nil{\addtotok\toklistePANombre{"#1",}}% + +\setKVdefault[ClesPixelArt]{Largeur=29,Hauteur=29,Solution=false,Lettres=ABCDEFGHIJK,Nombres=false,ListeCouleurs={Orange,Red,LightGray,Maroon,Purple,black,black,Plum,Orange,White,White},Unite=5mm} +\defKV[ClesPixelArt]{ListeNombres=\setKV[ClesPixelArt]{Nombres}} + +\NewDocumentCommand\PixelArt{o m}{% + \toklistePANombre{}% + \useKVdefault[ClesPixelArt]% + \setKV[ClesPixelArt]{#1}% + \xdef\ListeAvantCouleurs{\useKV[ClesPixelArt]{ListeCouleurs}}% + \xdef\ListeAvantNombres{\useKV[ClesPixelArt]{ListeNombres}}% + \readlist*\ListePANombre{\ListeAvantNombres}% + \foreachitem\compteur\in\ListePANombre{\expandafter\UpdatetoksPANombre\compteur\nil}% + \BuildPixelArt{#2}{\useKV[ClesPixelArt]{Lettres}}{\ListeAvantCouleurs}{\the\toklistePANombre}% +}% + +\NewDocumentCommand\BuildPixelArt{m m m m}{% + \ifluatex + \mplibforcehmode + \begin{mplibcode} + largeur:=\useKV[ClesPixelArt]{Largeur}; + hauteur:=\useKV[ClesPixelArt]{Hauteur}; + Unite:=\useKV[ClesPixelArt]{Unite}; + boolean Solution,Nombres; + Solution:=\useKV[ClesPixelArt]{Solution}; + Nombres:=\useKV[ClesPixelArt]{Nombres}; + string BaseLettres; + BaseLettres=str #2; + + color ColorEntier[],ColFond; + n:=0; + for p_=#3: + n:=n+1; + ColorEntier[n]:=p_; + endfor; + + string RetiensNombres[]; + if Nombres: + n:=0; + for p_=#4: + n:=n+1; + RetiensNombres[n]=p_; + endfor; + fi; + + vardef Lecturecsv(expr nomfichier)= + for h=hauteur downto 1: + string p_; + p_=readfrom nomfichier; + l:=0; + for p=0 step 2 until 2*largeur-2: + l:=l+1; + if (substring(p,p+1) of p_)="-": + else: + if Nombres: + for m=0 upto (length BaseLettres-1): + if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres: + label(TEX(RetiensNombres[m+1]),((l-1)*Unite,(h-1)*Unite)); + fi; + endfor; + else: + label(TEX(substring(p,p+1) of p_),((l-1)*Unite,(h-1)*Unite)); + fi; + if Solution: + for m=0 upto (length BaseLettres-1): + if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres: + ColFond:=ColorEntier[m+1]; + fi; + endfor; + if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi; + fi; + trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite); + fi; + endfor; + endfor; + closefrom nomfichier; + enddef; + + Lecturecsv("#1"); + \end{mplibcode} + \else + \begin{mpost}[mpsettings={largeur:=\useKV[ClesPixelArt]{Largeur}; hauteur:=\useKV[ClesPixelArt]{Hauteur}; Unite:=\useKV[ClesPixelArt]{Unite}; boolean Solution,Nombres; Solution:=\useKV[ClesPixelArt]{Solution}; Nombres:=\useKV[ClesPixelArt]{Nombres};}] + string BaseLettres; + BaseLettres=str #2; + + color ColorEntier[],ColFond; + n:=0; + for p_=#3: + n:=n+1; + ColorEntier[n]:=p_; + endfor; + + string RetiensNombres[]; + if Nombres: + n:=0; + for p_=#4: + n:=n+1; + RetiensNombres[n]=p_; + endfor; + fi; + + vardef Lecturecsv(expr nomfichier)= + for h=hauteur downto 1: + string p_; + p_=readfrom nomfichier; + l:=0; + for p=0 step 2 until 2*largeur-2: + l:=l+1; + if (substring(p,p+1) of p_)="-": + else: + if Nombres: + for m=0 upto (length BaseLettres-1): + if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres: + label(LATEX(RetiensNombres[m+1]),((l-1)*Unite,(h-1)*Unite)); + fi; + endfor; + else: + label(LATEX(substring(p,p+1) of p_),((l-1)*Unite,(h-1)*Unite)); + fi; + if Solution: + for m=0 upto (length BaseLettres-1): + if (substring(p,p+1) of p_)=substring(m,m+1) of BaseLettres: + ColFond:=ColorEntier[m+1]; + fi; + endfor; + if unknown ColFond: else: fill (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite) withcolor ColFond fi; + fi; + trace (unitsquare scaled Unite) shifted ((l-1)*Unite-0.5*Unite,(h-1)*Unite-0.5*Unite); + fi; + endfor; + endfor; + closefrom nomfichier; + enddef; + + Lecturecsv("#1"); + \end{mpost} + \fi +} + +%%% +% Yohaku +%%% +\setKVdefault[Yohaku]{Taille=2,Largeur=1cm,Hauteur=1cm,Addition,Multiplication=false,Perso=false,Limite=50,Pair=false,Impair=false,Premier=false,Solution=false,Visible=false,Bordure=false,CouleurResultat=gray!15,Ligne=0,Colonne=0,PasL=0,PasC=0,CouleurZone=gray!25}% +\defKV[Yohaku]{Case=\setKV[Yohaku]{Visible}}% + +\newlength\PfCYohaku% + +\xdef\PfCYHKpremier{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47}% + +\NewDocumentCommand\Yohaku{o m}{% + \useKVdefault[Yohaku]% + \setKV[Yohaku]{#1}% + \xdef\PfCYHKlast{\fpeval{\useKV[Yohaku]{Taille}+1}}% + \xdef\PfCYHKnombre{1}% + \xdef\PfCYHKpair{2}% + \xdef\PfCYHKimpair{1}% + \xintFor* ##1 in{\xintSeq{2}{\fpeval{\useKV[Yohaku]{Limite}}}}\do{% + \xdef\PfCYHKnombre{\PfCYHKnombre,##1}% + }% + \xintFor* ##1 in{\xintSeq{2}{\fpeval{\useKV[Yohaku]{Limite}}}}\do{% + \xdef\PfCYHKpair{\PfCYHKpair,\fpeval{##1*2}}% + }% + \xintFor* ##1 in{\xintSeq{1}{\fpeval{\useKV[Yohaku]{Limite}}}}\do{% + \xdef\PfCYHKimpair{\PfCYHKimpair,\fpeval{##1*2+1}}% + }% + % + \ifboolKV[Yohaku]{Perso}{% + \setsepchar[*]{,*/}% + \readlist*\PfCYHKListe{#2}% + \setsepchar{,}% + \xdef\PfCYHKListeFoo{}% + \foreachitem\compteur\in\PfCYHKListe[1]{ + \xdef\PfCYHKListeFoo{\PfCYHKListeFoo \PfCYHKListe[1,\compteurcnt],}% + }% + \ignoreemptyitems\readlist*\PfCYHKListeNA{\PfCYHKListeFoo}% + \xdef\PfCYHKListeFoo{}% + \foreachitem\compteur\in\PfCYHKListe[2]{ + \xdef\PfCYHKListeFoo{\PfCYHKListeFoo \PfCYHKListe[2,\compteurcnt],}% + }% + \ignoreemptyitems\readlist*\PfCYHKListeP{\PfCYHKListeFoo}% + }{% + \ifboolKV[Yohaku]{Premier}{% + \xdef\PfCYHKListe{\PfCYHKpremier}% + }{% + \ifboolKV[Yohaku]{Impair}{% + \xdef\PfCYHKListe{\PfCYHKimpair}% + }{% + \ifboolKV[Yohaku]{Pair}{% + \xdef\PfCYHKListe{\PfCYHKpair}% + }{% + \xdef\PfCYHKListe{\PfCYHKnombre}% + }% + }% + }% + % \xintifboolexpr{\useKV[Yohaku]{Taille}==2}{\MelangeListe{\PfCYHKListe}{4}}{\MelangeListe{\PfCYHKListe}{9}}% + \MelangeListe{\PfCYHKListe}{\fpeval{\useKV[Yohaku]{Taille}**2}}% + \readlist*\PfCYHKListeNA{\faa}% + %Sommes/Produits + \xdef\PfCYHKListeProduit{} + %verticaux + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \ifboolKV[Yohaku]{Multiplication}{% + \xdef\PfCYHKTampon{1}% + \xintFor* ##1 in {\xintSeq{0}{\fpeval{\useKV[Yohaku]{Taille}-1}}}\do{% + \xdef\PfCYHKTampon{\fpeval{\PfCYHKTampon*\PfCYHKListeNA[\fpeval{##2+##1*\useKV[Yohaku]{Taille}}]}} + }% + }{% + \xdef\PfCYHKTampon{0}% + \xintFor* ##1 in {\xintSeq{0}{\fpeval{\useKV[Yohaku]{Taille}-1}}}\do{% + \xdef\PfCYHKTampon{\fpeval{\PfCYHKTampon+\PfCYHKListeNA[\fpeval{##2+##1*\useKV[Yohaku]{Taille}}]}} + }% + } + \xdef\PfCYHKListeProduit{\PfCYHKListeProduit,\PfCYHKTampon}% + }% + % horizontaux + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \ifboolKV[Yohaku]{Multiplication}{% + \xdef\PfCYHKTampon{1}% + \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \xdef\PfCYHKTampon{\fpeval{\PfCYHKTampon*\PfCYHKListeNA[\fpeval{(\useKV[Yohaku]{Taille}-##2)*\useKV[Yohaku]{Taille}+##1}]}} + }% + }{% + \xdef\PfCYHKTampon{0}% + \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \xdef\PfCYHKTampon{\fpeval{\PfCYHKTampon+\PfCYHKListeNA[\fpeval{(\useKV[Yohaku]{Taille}-##2)*\useKV[Yohaku]{Taille}+##1}]}} + }% + }% + \xdef\PfCYHKListeProduit{\PfCYHKListeProduit,\PfCYHKTampon}% + }% + \readlist*\PfCYHKListeP{\PfCYHKListeProduit} + }% + \setlength{\PfCYohaku}{\useKV[Yohaku]{Largeur}-\tabcolsep}% + \colorlet{PfCFondYohaku}{\useKV[Yohaku]{CouleurResultat}} + \colorlet{PfCZoneYohaku}{\useKV[Yohaku]{CouleurZone}} + \begin{NiceTabular}{*{\fpeval{\useKV[Yohaku]{Taille}+1}}{m{\PfCYohaku}}}[hvlines-except-borders] + \CodeBefore + \xintifboolexpr{\useKV[Yohaku]{Ligne}==0 || \useKV[Yohaku]{Colonne}==0}{}{% + \tikz\draw[fill=PfCZoneYohaku](row-\fpeval{\useKV[Yohaku]{Ligne}}-|col-\fpeval{\useKV[Yohaku]{Colonne}}) rectangle (row-\fpeval{\useKV[Yohaku]{Ligne}+\useKV[Yohaku]{PasL}}-|col-\fpeval{\useKV[Yohaku]{Colonne}+\useKV[Yohaku]{PasC}});% + }% + \ifboolKV[Yohaku]{Bordure}{% + \tikz\fill[PfCFondYohaku] (last-|1)--(last-|last)--(1-|last)--(1-|\fpeval{\useKV[Yohaku]{Taille}+1})--(\fpeval{\useKV[Yohaku]{Taille}+1}-|\fpeval{\useKV[Yohaku]{Taille}+1})--(\fpeval{\useKV[Yohaku]{Taille}+1}-|1)--cycle; + }{} + \Body + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}+1}}}\do{% + \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}+1}}}\do{% + \xintifForFirst{\rule{0pt}{\useKV[Yohaku]{Hauteur}}}{&} + }\\% + }% + \CodeAfter + \ifboolKV[Yohaku]{Bordure}{% + \tikz\draw (last-|1)--(last-|last)--(1-|last); + }{}% + \tikz\draw (1-|1)--(1-|last); + \tikz\draw (1-|1)--(last-|1); + \tikz\draw[line width=2pt] (1-|1)--(\fpeval{\useKV[Yohaku]{Taille}+1}-|1)--(\fpeval{\useKV[Yohaku]{Taille}+1}-|\fpeval{\useKV[Yohaku]{Taille}+1})--(1-|\fpeval{\useKV[Yohaku]{Taille}+1})--cycle; + \tikz\node at (\fpeval{\PfCYHKlast+0.5}-|\fpeval{\PfCYHKlast+0.5}) {\Huge\ifboolKV[Yohaku]{Multiplication}{$\times$}{$+$}}; + % Affichage des termes/facteurs + \ifboolKV[Yohaku]{Solution}{% + \ifboolKV[Yohaku]{Perso}{% + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \tikz\node at (\fpeval{##2+0.5}-|\fpeval{##1+0.5}) {\PfCYHKListeNA[\fpeval{(##2-1)*\useKV[Yohaku]{Taille}+##1}]}; + }% + }% + }{% + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{ + \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{ + \tikz\node at (\fpeval{##2+0.5}-|\fpeval{##1+0.5}) {\num{\PfCYHKListeNA[\fpeval{(##2-1)*\useKV[Yohaku]{Taille}+##1}]}}; + }% + }% + }% + }{}% + % Affichage d'un terme/facteur + \ifboolKV[Yohaku]{Visible}{% + \xdef\PfCYohakuCaseAFL{\fpeval{floor((\useKV[Yohaku]{Case}-1)/\useKV[Yohaku]{Taille})}}% + \xdef\PfCYohakuCaseAFC{\fpeval{\useKV[Yohaku]{Case}-\useKV[Yohaku]{Taille}*\PfCYohakuCaseAFL}}% + \ifboolKV[Yohaku]{Perso}{% + \tikz\node at (\fpeval{\PfCYohakuCaseAFL+1+0.5}-|\fpeval{\PfCYohakuCaseAFC+0.5}) {\PfCYHKListeNA[\fpeval{\useKV[Yohaku]{Case}}]}; + }{% + \tikz\node at (\fpeval{\PfCYohakuCaseAFL+1+0.5}-|\fpeval{\PfCYohakuCaseAFC+0.5}) {\num{\PfCYHKListeNA[\fpeval{\useKV[Yohaku]{Case}}]}}; + }% + }{}% + %% Affichage des sommes/produits horizontalement + \ifboolKV[Yohaku]{Perso}{% + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \tikz\node at (\fpeval{\PfCYHKlast+0.5}-|\fpeval{##2+0.5}) {\PfCYHKListeP[##2]}; + }% + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \tikz\node at (\fpeval{\useKV[Yohaku]{Taille}+1-##2+0.5}-|\fpeval{\PfCYHKlast+0.5}) {\PfCYHKListeP[\fpeval{\useKV[Yohaku]{Taille}+##2}]}; + }% + }{% + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \tikz\node at (\fpeval{\PfCYHKlast+0.5}-|\fpeval{##2+0.5}) {\num{\PfCYHKListeP[##2]}}; + }% + \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Yohaku]{Taille}}}}\do{% + \tikz\node at (\fpeval{\useKV[Yohaku]{Taille}+1-##2+0.5}-|\fpeval{\PfCYHKlast+0.5}) {\num{\PfCYHKListeP[\fpeval{\useKV[Yohaku]{Taille}+##2}]}}; + }% + }% + \end{NiceTabular} +}% + +%%% +% 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}% + +\NewDocumentCommand\RoseMul{o}{% + \useKVdefault[ClesRose]% + \setKV[ClesRose]{#1}% + \DessineRoseMul% +}% + +\newcommand\DessineRoseMul{% + \ifluatex% + \mplibforcehmode% + \begin{mplibcode} + vardef ExtraireListe(expr nbmin,nbmax,nbfacteurs)= + numeric ElementE[],ElementS[]; + %% éléments d'entrée + nbe=1; + for k=nbmin upto nbmax: + ElementE[nbe]=k; + nbe:=nbe+1; + endfor; + totalE=(nbmax-nbmin)+1; + numeric rec; + for k=1 upto nbfacteurs: + rec:=ceiling(uniformdeviate(totalE+1-k)); + ElementS[k]=ElementE[rec]; + numeric ElementI[]; + p:=0; + for l=1 upto totalE+1-k: + if l<>rec: + p:=p+1; + ElementI[p]=ElementE[l]; + fi; + endfor; + numeric ElementE[]; + for l=1 upto p: + ElementE[l]=ElementI[l]; + endfor; + endfor; + enddef; + pair A[],B[],O; + Rayon:=\useKV[ClesRose]{Rayon}; + boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone; + Aide:=\useKV[ClesRose]{Aide}; + Vide:=\useKV[ClesRose]{Vide}; + Solution:=\useKV[ClesRose]{Solution}; + Produits:=\useKV[ClesRose]{Produits}; + ProduitVide:=\useKV[ClesRose]{ProduitVide}; + CaseVide:=\useKV[ClesRose]{CaseVide}; + if ProduitVide:Solution:=true fi; + if CaseVide:Solution:=true fi; + Polygone:=\useKV[ClesRose]{Polygone}; + Petales:=\useKV[ClesRose]{Petales}; + FacteurMin:=\useKV[ClesRose]{FacteurMin}; + FacteurMax:=\useKV[ClesRose]{FacteurMax}; + color Fond; + Fond:=\useKV[ClesRose]{Couleur}; + O=(0,0); + ExtraireListe(FacteurMin,FacteurMax,Petales); + path cc; + cc=cercles(O,Rayon); + for k=0 upto Petales: + A[k]=pointarc(cc,(360/Petales)*k); + endfor; + for k=0 upto Petales-1: + B[k]=iso(A[k],A[k+1]); + endfor; + path BoiteRec; + if Polygone: + BoiteRec=(pointarc(fullcircle,0) for k=1 upto Petales:--pointarc(fullcircle,k*(360/Petales)) endfor --cycle) scaled 1u; + else: + BoiteRec=((-0.4,-0.5)--(0.4,-0.5){dir0}..{dir90}(0.5,-0.4)--(0.5,0.4){dir90}..{dir180}(0.4,0.5)--(-0.4,0.5){dir180}..{dir-90}(-0.5,0.4)--(-0.5,-0.4){dir-90}..cycle) scaled 1u; + fi; + %On détermine les facteurs et produits + for k=0 upto Petales-1: + Facteur[k]=ElementS[k+1]; + endfor; + Facteur[Petales]=Facteur[0]; + for k=0 upto Petales-1: + Produit[k]=Facteur[k]*Facteur[k+1]; + endfor; + %on labelise + if Vide=false: + if Produits: + else: + for k=0 upto Petales-1: + label(TEX("\num{"&decimal(Facteur[k])&"}"),(0.5[O,A[k]]-center BoiteRec)); + endfor; + fi; + if Produits or Solution: + for k=0 upto Petales-1: + label(TEX("\num{"&decimal(Produit[k])&"}"),(B[k]+0.5*Rayon*unitvector(B[k]))); + endfor; + fi; + fi; + % On trace et on affiche...éventuellement :) + if Aide: + for k=0 upto Petales-1: + drawarrow (0.5[O,A[k]]--1.75[O,B[k]]) cutbefore segment(A[k],A[k+1]) cutafter BoiteRec shifted (B[k]+0.5*Rayon*unitvector(B[k])) dashed evenly scaled 0.5; + drawarrow (0.5[O,A[k+1]]--1.75[O,B[k]]) cutbefore segment(A[k],A[k+1]) cutafter BoiteRec shifted (B[k]+0.5*Rayon*unitvector(B[k])) dashed evenly scaled 0.5; + endfor; + fi; + if ProduitVide: + choix=floor(uniformdeviate(Petales-1)); + fill (BoiteRec shifted (1.75[O,B[choix]]-center BoiteRec)) withcolor Fond; + fill rotation(polygone(O,B0,A1,B1),O,(choix-1)*(360/Petales)) withcolor Fond; + fill rotation(polygone(O,B0,A1,B1),O,choix*(360/Petales)) withcolor Fond; + fi; + if CaseVide: + choix:=floor(uniformdeviate(Petales-1)); + for k=0 upto Petales-1: + if k<>choix: + fill rotation(polygone(O,B0,A1,B1),O,k*(360/Petales)) withcolor Fond; + fi; + endfor; + fi; + trace A0 for k=1 upto Petales:--A[k] endfor --cycle; + for k=0 upto Petales-1: + trace segment(O,B[k]) dashed withdots scaled 0.25; + draw BoiteRec shifted (B[k]+0.5*Rayon*unitvector(B[k])) dashed evenly scaled 0.5; + endfor; + \end{mplibcode} + \else + \begin{mpost}[mpsettings={Rayon:=\useKV[ClesRose]{Rayon}; + boolean Aide,Produits,Solution,Vide,ProduitVide,CaseVide,Polygone; + Aide:=\useKV[ClesRose]{Aide}; + Vide:=\useKV[ClesRose]{Vide}; + Solution:=\useKV[ClesRose]{Solution}; + Produits:=\useKV[ClesRose]{Produits}; + ProduitVide:=\useKV[ClesRose]{ProduitVide}; + CaseVide:=\useKV[ClesRose]{CaseVide}; + if ProduitVide:Solution:=true fi; + if CaseVide:Solution:=true fi; + Polygone:=\useKV[ClesRose]{Polygone}; + Petales:=\useKV[ClesRose]{Petales}; + FacteurMin:=\useKV[ClesRose]{FacteurMin}; + FacteurMax:=\useKV[ClesRose]{FacteurMax}; + color Fond; + Fond:=\useKV[ClesRose]{Couleur};}] + vardef ExtraireListe(expr nbmin,nbmax,nbfacteurs)= + numeric ElementE[],ElementS[]; + %% éléments d'entrée + nbe=1; + for k=nbmin upto nbmax: + ElementE[nbe]=k; + nbe:=nbe+1; + endfor; + totalE=(nbmax-nbmin)+1; + numeric rec; + for k=1 upto nbfacteurs: + rec:=ceiling(uniformdeviate(totalE+1-k)); + ElementS[k]=ElementE[rec]; + numeric ElementI[]; + p:=0; + for l=1 upto totalE+1-k: + if l<>rec: + p:=p+1; + ElementI[p]=ElementE[l]; + fi; + endfor; + numeric ElementE[]; + for l=1 upto p: + ElementE[l]=ElementI[l]; + endfor; + endfor; + enddef; + pair A[],B[],O; + O=(0,0); + ExtraireListe(FacteurMin,FacteurMax,Petales); + path cc; + cc=cercles(O,Rayon); + for k=0 upto Petales: + A[k]=pointarc(cc,(360/Petales)*k); + endfor; + for k=0 upto Petales-1: + B[k]=iso(A[k],A[k+1]); + endfor; + path BoiteRec; + if Polygone: + BoiteRec=(pointarc(fullcircle,0) for k=1 upto Petales:--pointarc(fullcircle,k*(360/Petales)) endfor --cycle) scaled 1u; + else: + BoiteRec=((-0.4,-0.5)--(0.4,-0.5){dir0}..{dir90}(0.5,-0.4)--(0.5,0.4){dir90}..{dir180}(0.4,0.5)--(-0.4,0.5){dir180}..{dir-90}(-0.5,0.4)--(-0.5,-0.4){dir-90}..cycle) scaled 1u; + fi; + %On détermine les facteurs et produits + for k=0 upto Petales-1: + Facteur[k]=ElementS[k+1]; + endfor; + Facteur[Petales]=Facteur[0]; + for k=0 upto Petales-1: + Produit[k]=Facteur[k]*Facteur[k+1]; + endfor; + %on labelise + if Vide=false: + if Produits: + else: + for k=0 upto Petales-1: + label(TEX("\num{"&decimal(Facteur[k])&"}"),(0.5[O,A[k]]-center BoiteRec)); + endfor; + fi; + if Produits or Solution: + for k=0 upto Petales-1: + label(TEX("\num{"&decimal(Produit[k])&"}"),(B[k]+0.5*Rayon*unitvector(B[k]))); + endfor; + fi; + fi; + % On trace et on affiche...éventuellement :) + if Aide: + for k=0 upto Petales-1: + drawarrow (0.5[O,A[k]]--1.75[O,B[k]]) cutbefore segment(A[k],A[k+1]) cutafter BoiteRec shifted (B[k]+0.5*Rayon*unitvector(B[k])) dashed evenly scaled 0.5; + drawarrow (0.5[O,A[k+1]]--1.75[O,B[k]]) cutbefore segment(A[k],A[k+1]) cutafter BoiteRec shifted (B[k]+0.5*Rayon*unitvector(B[k])) dashed evenly scaled 0.5; + endfor; + fi; + if ProduitVide: + choix=floor(uniformdeviate(Petales-1)); + fill (BoiteRec shifted (1.75[O,B[choix]]-center BoiteRec)) withcolor Fond; + fill rotation(polygone(O,B0,A1,B1),O,(choix-1)*(360/Petales)) withcolor Fond; + fill rotation(polygone(O,B0,A1,B1),O,choix*(360/Petales)) withcolor Fond; + fi; + if CaseVide: + choix:=floor(uniformdeviate(Petales-1)); + for k=0 upto Petales-1: + if k<>choix: + fill rotation(polygone(O,B0,A1,B1),O,k*(360/Petales)) withcolor Fond; + fi; + endfor; + fi; + trace A0 for k=1 upto Petales:--A[k] endfor --cycle; + for k=0 upto Petales-1: + trace segment(O,B[k]) dashed withdots scaled 0.25; + draw BoiteRec shifted (B[k]+0.5*Rayon*unitvector(B[k])) dashed evenly scaled 0.5; + endfor; + \end{mpost} + \fi +}% + +%%% % Puissances 4 %%% \setKVdefault[ClesPQuatre]{Couleur=Gray,Largeur=2cm,Multiplication,Entier,Nombre,Exposant=false}% @@ -505,25 +1048,25 @@ }% %%% -% Billiard +% Billard %%% -\setKVdefault[ClesBilliard]{Longueur=8cm,Largeur=5cm,Solution=false,Angle=70,Depart=0.5,Vrai=false} +\setKVdefault[ClesBillard]{Longueur=8cm,Largeur=5cm,Solution=false,Angle=70,Depart=0.5,Vrai=false} -\NewDocumentCommand\Billiard{o m}{% - \useKVdefault[ClesBilliard]% - \setKV[ClesBilliard]{#1}% - \ifboolKV[ClesBilliard]{Solution}{% - \MPBilliardSolution{#2}{\useKV[ClesBilliard]{Depart}}{\useKV[ClesBilliard]{Angle}}% +\NewDocumentCommand\Billard{o m}{% + \useKVdefault[ClesBillard]% + \setKV[ClesBillard]{#1}% + \ifboolKV[ClesBillard]{Solution}{% + \MPBillardSolution{#2}{\useKV[ClesBillard]{Depart}}{\useKV[ClesBillard]{Angle}}% }{% - \MPBilliard{#2}{\useKV[ClesBilliard]{Depart}}{\useKV[ClesBilliard]{Angle}}% + \MPBillard{#2}{\useKV[ClesBillard]{Depart}}{\useKV[ClesBillard]{Angle}}% }% }% -\def\MPBilliard#1#2#3{% +\def\MPBillard#1#2#3{% \mplibcodeinherit{disable}% - \begin{Geometrie}[CoinHD={(\useKV[ClesBilliard]{Longueur}+2cm,\useKV[ClesBilliard]{Largeur}+3cm)}] + \begin{Geometrie}[CoinHD={(\useKV[ClesBillard]{Longueur}+2cm,\useKV[ClesBillard]{Largeur}+3cm)}] boolean Vrai; - Vrai:=\useKV[ClesBilliard]{Vrai}; + Vrai:=\useKV[ClesBillard]{Vrai}; % On définit la liste des 25 lettres alphabétiques dans laquelle on choisit autant de lettres que la longueur du mot % On a retiré la lettre Q pour des questions d'alignements esthétiques. vardef ChoixLettre= @@ -607,8 +1150,8 @@ % On définit le rectangle pair M[],Co,Intermed; M1=u*(1,2); - M2-M1=(\useKV[ClesBilliard]{Longueur},0); - M3-M2=(0,\useKV[ClesBilliard]{Largeur}); + M2-M1=(\useKV[ClesBillard]{Longueur},0); + M3-M2=(0,\useKV[ClesBillard]{Largeur}); M4-M3=M1-M2; Co=iso(M1,M3); path rec,cote[]; @@ -719,10 +1262,10 @@ \end{Geometrie}% }% -\def\MPBilliardSolution#1#2#3{% +\def\MPBillardSolution#1#2#3{% \mplibcodeinherit{enable}% \begin{mplibcode}% - Figure(0,0,\useKV[ClesBilliard]{Longueur}+2cm,\useKV[ClesBilliard]{Largeur}+3cm); + Figure(0,0,\useKV[ClesBillard]{Longueur}+2cm,\useKV[ClesBillard]{Largeur}+3cm); trace rec; % Tracés drawarrow Pt[1]--(Pt[1]+1.5cm*unitvector(Pt[2]-Pt[1])) withpen pencircle scaled 1.25; @@ -2162,9 +2705,9 @@ draw polygone((0,0),(u*abs(nbfois),0),(u*abs(nbfois),Hauteur),(0,Hauteur)); fi; if nbfois>0: - label(LATEX(t),iso((0,0),(u*abs(nbfois),Hauteur))); + label(LATEXProf(t),iso((0,0),(u*abs(nbfois),Hauteur))); else: - label.bot(LATEX(t),iso((0,0),(u*abs(nbfois),-Hauteur))); + label.bot(LATEXProf(t),iso((0,0),(u*abs(nbfois),-Hauteur))); drawdblarrow (0,-0.5*Hauteur)--(u*abs(nbfois),-0.5*Hauteur); fi; u:=1cm; @@ -4061,7 +4604,7 @@ transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick, %%% % Labyrinthe Nombre %%% -\setKVdefault[ClesLabyNombre]{Multiple=5,XDepart=0,YDepart=0,Longueur=7,Largeur=4,XArrivee=6,YArrivee=3,Solution=false,Echelle=1,Angle=0,Couleur=red,Murs=false} +\setKVdefault[ClesLabyNombre]{Multiple=5,XDepart=0,YDepart=0,Longueur=7,Largeur=4,XArrivee=6,YArrivee=3,Solution=false,Echelle=1,Angle=0,Couleur=red,Murs=false,Nom=Ex1} \newcommand\LabyNombre[1][]{% \useKVdefault[ClesLabyNombre]% @@ -4075,7 +4618,8 @@ transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick, \newcommand\TraceLabyNombre[6]{% \mplibforcehmode% - \begin{mplibcode} + \xdef\PfCNomLabyrinthe{\useKV[ClesLabyNombre]{Nom}}% + \begin{mplibcode}[\PfCNomLabyrinthe] input PfCLabyNombre; boolean Murs; @@ -4157,7 +4701,117 @@ transform canvas={xshift=0em,yshift=0em}},rectangle,rounded corners,ultra thick, \newcommand\TraceSolution[6]{% \mplibforcehmode% - \mplibcodeinherit{enable}%\xintifboolexpr{#6==false}{\mplibcodeinherit{enable}}{} + % \mplibcodeinherit{enable} + \xdef\PfCNomLabyrinthe{\useKV[ClesLabyNombre]{Nom}}% + \begin{mplibcode}[\PfCNomLabyrinthe] + picture CorpsSolution; + CorpsSolution=image( + nbaffiche:=0; + for k=0 upto #3-1: + for l=0 upto #2-1: + nbaffiche:=nbaffiche+1; + label(TEX("\num{"&decimal(NbAffiche[nbaffiche])&"}"),M[k][l]); + endfor; + endfor; + remplis ((unitsquare scaled 10mm) shifted N[choixligneD][choixcolonneD]) withcolor \useKV[ClesLabyNombre]{Couleur}; + remplis ((unitsquare scaled 10mm) shifted Arrivee) withcolor \useKV[ClesLabyNombre]{Couleur}; + for k=2 upto indiceChemin-1: + remplis ((unitsquare scaled 10mm) shifted N[xpart(PileChemin[k])][ypart(PileChemin[k])]) withcolor 0.5white; + label(TEX("\num{"&decimal(NbSol[k])&"}"),M[xpart(PileChemin[k])][ypart(PileChemin[k])]); + endfor; + trace TraceLabyrinthe; + ); + CorpsSolution:=(CorpsSolution scaled \useKV[ClesLabyNombre]{Echelle}) rotated \useKV[ClesLabyNombre]{Angle}; + trace CorpsSolution; + \end{mplibcode} + %\mplibcodeinherit{disable} +}% + +\newcommand\TraceLabyNombreold[6]{% + \mplibforcehmode% + \begin{mplibcode} + input PfCLabyNombre; + + boolean Murs; + Murs=\useKV[ClesLabyNombre]{Murs}; + + numeric Multiple; + Multiple=#1; + % Initialisation du labyrinthe + InitialisationLabyrinthe(#2,#3); + % On initialise les paramètres du parcours + numeric choixligneD,choixligneA,choixcolonneD,choixcolonneA; + choixligneD=xpart(#4); + choixcolonneD=ypart(#4); + choixligneA=xpart(#5); + choixcolonneA=ypart(#5);% + pair Depart; + Depart=N[choixligneD][choixcolonneD]; + pair Arrivee; + Arrivee=N[choixligneA][choixcolonneA]; + pair Mobile; + Mobile=Depart; + RAZPileChemin; + % Exploration du labyrinthe + PushChemin((choixligneD,choixcolonneD)); + CaseExploree[choixligneD][choixcolonneD]:=true; + VoisinDispo(choixligneD,choixcolonneD); + forever: exitif Mobile=Arrivee;%nb=0; + nb:=ceiling(uniformdeviate(nbvoisin)); + if nb>0: + for k=1 upto nbvoisin: + CaseExploree[xpart(PileVoisin[k])][ypart(PileVoisin[k])]:=true; + endfor; + PushChemin((xpart(PileVoisin[nb]),ypart(PileVoisin[nb]))); + Mobile:=N[xpart(PileChemin[indiceChemin])][ypart(PileChemin[indiceChemin])]; + VoisinDispo(xpart(PileChemin[indiceChemin]),ypart(PileChemin[indiceChemin])); + else: + PopChemin; + fi; + endfor; + % Affichagefinal + % on sauvegarde les nombres aléatoires + numeric NbAffiche[]; + numeric NbSol[]; + % on écrit des nombres au hasard, mais sans être multiple du nombre choisi + numeric nbaffiche; + nbaffiche=0; + for k=0 upto LargeurLaby-1: + for l=0 upto LongueurLaby-1: + nbaffiche:=nbaffiche+1; + NbAffiche[nbaffiche]:=(50+ceiling(uniformdeviate(100)))*Multiple+ceiling(uniformdeviate(Multiple-1)); + endfor; + endfor; + % On crée des multiples du nombre choisi + for k=2 upto indiceChemin-1: + NbSol[k]=(50+ceiling(uniformdeviate(100)))*Multiple; + endfor; + % On affiche + picture Corps; + Corps=image( + nbaffiche:=0; + for k=0 upto LargeurLaby-1: + for l=0 upto LongueurLaby-1: + nbaffiche:=nbaffiche+1; + label(TEX("\num{"&decimal(NbAffiche[nbaffiche])&"}"),M[k][l]); + endfor; + endfor; + remplis ((unitsquare scaled 10mm) shifted N[choixligneD][choixcolonneD]) withcolor \useKV[ClesLabyNombre]{Couleur}; + remplis ((unitsquare scaled 10mm) shifted Arrivee) withcolor \useKV[ClesLabyNombre]{Couleur}; + for k=2 upto indiceChemin-1: + remplis ((unitsquare scaled 10mm) shifted N[xpart(PileChemin[k])][ypart(PileChemin[k])]) withcolor white; + label(TEX("\num{"&decimal(NbSol[k])&"}"),M[xpart(PileChemin[k])][ypart(PileChemin[k])]); + endfor; + trace TraceLabyrinthe; + ); + Corps:=(Corps scaled \useKV[ClesLabyNombre]{Echelle}) rotated \useKV[ClesLabyNombre]{Angle}; + trace Corps; + \end{mplibcode} +} + +\newcommand\TraceSolutionold[6]{% + \mplibforcehmode% + \mplibcodeinherit{enable} \begin{mplibcode} picture CorpsSolution; CorpsSolution=image( @@ -6039,20 +6693,18 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul. toptitle=1mm, bottomtitle=1mm, bottom=1mm, - title={Rapido n°\thetcbcounter\hfill Date :\hspace*{2.5cm}}, + title={\useKV[ClesRapido]{Titre}}, %% Cadre principal enhanced, - %nobeforeafter, width=\WidthRapido, colback=white, valign=top, - drop lifted shadow%, - %grow to left by=5mm + drop lifted shadow } \newtcolorbox{QuestionBox}{enhanced,nobeforeafter,size=small,sidebyside adapt=left} \newtcolorbox{QuestionReponse}{enhanced,nobeforeafter,upperbox=invisible,colback=white,width=1.5cm,grow to left by=3mm,grow to right by=3mm,height=10mm} -\setKVdefault[ClesRapido]{Debut=false,Largeur=0.9\linewidth}% +\setKVdefault[ClesRapido]{Debut=false,Largeur=0.9\linewidth,Titre={Rapido n°\thetcbcounter\hfill Date :\hspace*{2.5cm}}}% \defKV[ClesRapido]{Numero=\setKV[ClesRapido]{Debut=true}} \newlength{\WidthRapido} @@ -6069,32 +6721,32 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul. \setsepchar[*]{§*/}% \readlist*\ListeRapido{#2}% \begin{RapidoBox} - \xintFor* ##1 in {\xintSeq {1}{\ListeRapidolen}}\do{% - \tcbsidebyside[ - sidebyside adapt=right, - bicolor, - colback=white,colbacklower=yellow!10!white, - nobeforeafter, - top=0mm,left=1mm, - grow to left by=3mm, - grow to right by=3mm, - bottom=0mm, - ]{% - \ListeRapido[##1,1] + \xintFor* ##1 in {\xintSeq {1}{\ListeRapidolen}}\do{% + \tcbsidebyside[% + sidebyside adapt=right, + bicolor, + colback=white,colbacklower=yellow!10!white, + nobeforeafter, + top=0mm,left=1mm, + grow to left by=3mm, + grow to right by=3mm, + bottom=0mm + ]{% + \ListeRapido[##1,1] }{% \ListeRapido[##1,2] } -} + }% \end{RapidoBox} -} +}% \newcommand\BoiteRapido[1]{% \ifx\bla#1\bla% \tcbox[BoiteExpression]{\phantom{100000}}% - \else + \else% \tcbox[BoiteExpression]{#1}% \fi -} +}% %%% % Fractions @@ -7071,7 +7723,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul. %%% % R\'eponses \`a relier %%% -\setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm} +\setKVdefault[ClesRelie]{Solution=false,LargeurG=5cm,LargeurD=2cm,Stretch=1.5,Ecart=2cm,Couleur=black} \newcommand\Relie[2][]{% \useKVdefault[ClesRelie]% @@ -7080,11 +7732,12 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul. \readlist*\ListeRelie{#2}% \buildtabrelie% \ifboolKV[ClesRelie]{Solution}{% + \colorlet{PfCRelieCouleurTrace}{\useKV[ClesRelie]{Couleur}}% \xintFor* ##1 in {\xintSeq {1}{\ListeRelielen}}\do{% \itemtomacro\ListeRelie[##1,1]\untest \ifx\bla\untest\bla% \else - \tikz[remember picture,overlay]{\draw (RelieG-##1) -- (RelieD-\ListeRelie[##1,3]);}% + \tikz[remember picture,overlay]{\draw[PfCRelieCouleurTrace] (RelieG-##1) -- (RelieD-\ListeRelie[##1,3]);}% \fi }% }{% @@ -7276,17 +7929,17 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul. %%% \setKVdefault[ClesSommeAngle]{Detail=true,Isocele=false,Rectangle=false,Figure=false,FigureSeule=false,Angle=0,Perso=false,Echelle=1cm}% -\def\MPFigureSommeAngle#1#2#3#4#5{ +\def\MPFigureSommeAngle#1#2#3#4#5{% % #1 Premier sommet % #2 Deuxi\`eme sommet % #3 Troisi\`eme sommet % #4 1er angle % #5 2eme angle \ifluatex - \mplibcodeinherit{enable} + %\mplibcodeinherit{enable} \mplibforcehmode \begin{mplibcode} - pair A,B,C,O,I;% + pair A,B,C,O,I;% u:=\useKV[ClesSommeAngle]{Echelle}; Angle:=\useKV[ClesSommeAngle]{Angle}; boolean Rectangle,Isocele; @@ -7387,7 +8040,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul. label(btex ? etex,A+0.95u*unitvector(I-A)); fi; \end{mplibcode} - \mplibcodeinherit{disable} + %\mplibcodeinherit{disable} \else \begin{mpost}[mpsettings={u:=\useKV[ClesSommeAngle]{Echelle};boolean Rectangle,Isocele; Rectangle=\useKV[ClesSommeAngle]{Rectangle};Isocele=\useKV[ClesSommeAngle]{Isocele};Angle:=\useKV[ClesSommeAngle]{Angle};}] @@ -9291,7 +9944,7 @@ couleur indiquée, le nombre de cases donné par le résultat du calcul. \end{mplibcode} \else \begin{mpost}[mpsettings={numeric decalage;decalage=\useKV[ClesNombrePremier]{Decalage}*1mm;color CouleurTronc,CouleurFeuillage,CouleurFruits,CouleurTexte;CouleurTronc=\useKV[ClesNombrePremier]{CouleurTronc};CouleurFeuillage=\useKV[ClesNombrePremier]{CouleurFeuillage};CouleurFruits=\useKV[ClesNombrePremier]{CouleurFruits}; CouleurTexte=\useKV[ClesNombrePremier]{CouleurTexte}; boolean Vide; Vide=\useKV[ClesNombrePremier]{Vide};}] - input PfCArithmetique; + input PfCArithmetiquePDF; numeric depart; pair Ancre[]; rayonfruits:=3mm; @@ -11921,9 +12574,9 @@ Tableau=false,Stretch=1,Frequence=false,EffectifTotal=false,% Etendue=false,Moyenne=false,SET=false,ValeurExacte=false,Mediane=false,QuartileUn=false,QuartileTrois=false,Total=false,Concret=false,% Unite={},Largeur=1cm,Precision=2,PrecisionF=0,Donnee=Valeurs,Effectif=Effectif,Grille=false,Origine=0,Angle=false,SemiAngle=false,Qualitatif=false,TableauVide=false,ECC=false,Coupure=10,CouleurTab=gray!15,Graphique=false,Batons=true,% % Pour les diags batons -EpaisseurBatons=1,ListeCouleursB={black},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,AngleRotationAbscisse=0,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Depart=0,% +EpaisseurBatons=1,ListeCouleursB={a},Lecture=false,LectureFine=false,AideLecture=false,Reponses=false,DonneesSup=false,AbscisseRotation=false,Tiret=false,AngleRotationAbscisse=0,Pasx=1,Pasy=1,Unitex=0.5,Unitey=0.5,Depart=0,CouleurDefaut=black,% % Pour les diags circulaires -Rayon=3cm,AffichageAngle=false,AffichageDonnee=false,ListeCouleurs={white},Hachures=false,LectureInverse=false,EcartHachures=0.25,EpaisseurHachures=1,Legende,LegendeVide=false,% +Rayon=3cm,AffichageAngle=false,AffichageDonnee=false,ListeCouleurs={white},Hachures=false,LectureInverse=false,EcartHachures=0.25,EpaisseurHachures=1,Legende,LegendeVide=false,ACompleter=false,% %Pour les représentations Representation=false,% %Pour les barres horizontales @@ -12056,7 +12709,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xdef\ListeAvantCouleurs{\useKV[ClesStat]{ListeCouleurs}}% \readlist*\ListeCouleur{\ListeAvantCouleurs}% \foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}% - \[\NewMPDiagBarreHor{\the\toklistenomhor}{\the\toklistedonhor}{\the\toklisteaffhor}{\the\toklistecouleur}\]% + \NewMPDiagBarreHor{\the\toklistenomhor}{\the\toklistedonhor}{\the\toklisteaffhor}{\the\toklistecouleur}% }% % Pour construire le diagramme en bâtons @@ -12068,7 +12721,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xdef\ListeAvantCouleurs{\useKV[ClesStat]{ListeCouleursB}}% \readlist*\ListeCouleur{\ListeAvantCouleurs}% \foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}% - \[\MPStatNew{\the\toklistepoint}{\the\toklistecouleur}\]% + \MPStatNew{\the\toklistepoint}{\the\toklistecouleur}% }% % Pour construire le diagramme en bâtons qualitatif @@ -12080,7 +12733,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xdef\ListeAvantCouleurs{\useKV[ClesStat]{ListeCouleursB}}% \readlist*\ListeCouleur{\ListeAvantCouleurs}% \foreachitem\couleur\in\ListeCouleur{\expandafter\UpdateCoul\couleur\nil}% - \[\MPStatNew{\the\toklistepointq}{\the\toklistecouleur}\]% + \MPStatNew{\the\toklistepointq}{\the\toklistecouleur}% }% \def\UpdateCoul#1\nil{\addtotok\toklistecouleur{#1,}}% @@ -12274,8 +12927,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis AffichageDonnee=\useKV[ClesStat]{AffichageDonnee}; boolean LegendeVide; LegendeVide=\useKV[ClesStat]{LegendeVide}; - }] - vardef CalculNombreDonneesEtDonneeMax(text t)= + }] + vardef CalculNombreDonneesEtDonneeMax(text t)= nbdon:=0;%nombre de données DonneeMax:=0;%donnée DonneeMaximale for p_=t: @@ -12318,15 +12971,15 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis fi; if ExposantDivMax=0: for k=1 upto (DonneeMax+1): - label.bot(TEX("\num{"&decimal(k)&"}"),Zz0+k*(Zz1-Zz0)); + label.bot(LATEX("\num{"&decimal(k)&"}"),Zz0+k*(Zz1-Zz0)); endfor; else: if ExposantDivMax<5: for k=1 upto (floor(DonneeMax*10+2)): - label.bot(TEX("\num{\noexpand\fpeval{"&decimal(k)&"*(10**"&decimal(ExposantDivMax-1)&")}}"),Zz0+(k/10)*(Zz1-Zz0)); + label.bot(LATEX("\num{\noexpand\fpeval{"&decimal(k)&"*(10**"&decimal(ExposantDivMax-1)&")}}"),Zz0+(k/10)*(Zz1-Zz0)); endfor; else: - dotlabel.bot(TEX("\num{\noexpand\fpeval{10**"&decimal(ExposantDivMax)&"}}"),Zz1); + dotlabel.bot(LATEX("\num{\noexpand\fpeval{10**"&decimal(ExposantDivMax)&"}}"),Zz1); fi; fi; fi; @@ -12351,14 +13004,14 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis vardef AffichageNom(text t)= k:=0; for p_=t: - label.lft(TEX(p_),0.5[(0,0),(0,Hauteur)] shifted (0,-k*(Hauteur+Ecart))); + label.lft(LATEX(p_),0.5[(0,0),(0,Hauteur)] shifted (0,-k*(Hauteur+Ecart))); k:=k+1; endfor; enddef; vardef AffichageDonnees(text t)= k:=0; for p_=t: - label.rt(TEX("\num{"&p_&"}"),0.5[(0,0),(0,Hauteur)] shifted (((Donnees[k+1]/DonneeMax)*Longueur),-k*(Hauteur+Ecart))); + label.rt(LATEX("\num{"&p_&"}"),0.5[(0,0),(0,Hauteur)] shifted (((Donnees[k+1]/DonneeMax)*Longueur),-k*(Hauteur+Ecart))); k:=k+1; endfor; enddef; @@ -12404,7 +13057,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis Qualitatif=\useKV[ClesStat]{Qualitatif}; boolean Tiret; Tiret=\useKV[ClesStat]{Tiret}; - %% ajout + color CoulDefaut; + CoulDefaut=\useKV[ClesStat]{CouleurDefaut}; Depart=\useKV[ClesStat]{Depart}; % on r\'ecup\`ere les couleurs color Col[]; @@ -12414,7 +13068,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis if color p_: Col[n]=p_; else: - Col[n]=black; + Col[n]=CoulDefaut; fi; endfor; % @@ -12475,6 +13129,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis fi; fi; fi; + fi; endfor; enddef; vardef titi(text t)=%affichage qualitatif @@ -12526,12 +13181,14 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis endfor; drawoptions(); fi; + if epaisseurbatons<>0: for k=1 upto n: - fill polygone(A[k]-(epaisseurbatons*1pt,0),A[k]+(epaisseurbatons*1pt,0),P[k]+(epaisseurbatons*1pt,0),P[k]-(epaisseurbatons*1pt,0)) withcolor if unknown Col[k]: black else:Col[k] fi; + fill polygone(A[k]-(epaisseurbatons*1pt,0),A[k]+(epaisseurbatons*1pt,0),P[k]+(epaisseurbatons*1pt,0),P[k]-(epaisseurbatons*1pt,0)) withcolor if unknown Col[k]: CoulDefaut else:Col[k] fi; if AideLecture: draw B[k]--P[k] dashed evenly; fi; endfor; + fi; if LectureFine: for k=0 step Pasy until ((maxy+1*Pasy)): if Tiret: @@ -12580,8 +13237,13 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis boolean Qualitatif; Qualitatif=\useKV[ClesStat]{Qualitatif}; boolean Tiret; - Tiret=\useKV[ClesStat]{Tiret};} + Tiret=\useKV[ClesStat]{Tiret}; + color CoulDefaut; + CoulDefaut=\useKV[ClesStat]{CouleurDefaut};} + Depart=\useKV[ClesStat]{Depart}; ] + maxx:=0; + maxy:=0; % on r\'ecup\`ere les couleurs color Col[]; n:=0; @@ -12590,7 +13252,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis if color p_: Col[n]=p_; else: - Col[n]=black; + Col[n]=CoulDefaut; fi; endfor; % @@ -12618,19 +13280,20 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis if pair p_: l:=l+1; if Rotation: - label.bot(TEX("\num{"&decimal(xpart(p_))&"}") rotated AngleRotation,A[l]); + label.bot(LATEX("\num{"&decimal(xpart(p_))&"}") rotated AngleRotation,A[l]); else : - label.bot(TEX("\num{"&decimal(xpart(p_))&"}"),A[l]); + label.bot(LATEX("\num{"&decimal(xpart(p_))&"}"),A[l]); fi; if Reponses: if DonneesSup: - label.top(TEX("\num{"&decimal(ypart(p_))&"}"),P[l]); + label.top(LATEX("\num{"&decimal(ypart(p_))&"}"),P[l]); else: if Tiret: trace (B[l]+(-1pt,0))--(B[l]+(1pt,0)); - label.lft(TEX("\num{"&decimal(p_)&"}"),B[l]); + label.lft(LATEX("\num{"&decimal(p_)&"}"),B[l]); else: - dotlabel.lft(TEX("\num{"&decimal(ypart(p_))&"}"),B[l]); + dotlabel.lft(LATEX("\num{"&decimal(ypart(p_))&"}"),B[l]); + fi; fi; fi; fi; @@ -12658,13 +13321,13 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis if numeric p_: if Reponses: if DonneesSup: - label.top(TEX("\num{"&decimal(p_)&"}"),P[l]); + label.top(LATEX("\num{"&decimal(p_)&"}"),P[l]); else: if Tiret: trace (B[l]+(-1pt,0))--(B[l]+(1pt,0)); - label.lft(TEX("\num{"&decimal(p_)&"}"),B[l]); + label.lft(LATEX("\num{"&decimal(p_)&"}"),B[l]); else: - dotlabel.lft(TEX("\num{"&decimal(p_)&"}"),B[l]); + dotlabel.lft(LATEX("\num{"&decimal(p_)&"}"),B[l]); fi; fi; fi; @@ -12675,12 +13338,12 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis picture TEXTELABEL; TEXTELABEL=image( labeloffset:=labeloffset*2; - label.lft(TEX(p_),A[l]); + label.lft(LATEX(p_),A[l]); labeloffset:=labeloffset/2; ); trace rotation(TEXTELABEL,A[l],AngleRotation); else : - label.bot(TEX(p_),A[l]); + label.bot(LATEX(p_),A[l]); fi; fi; fi; @@ -12701,19 +13364,21 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis endfor; drawoptions(); fi; + if epaisseurbatons<>0: for k=1 upto n: - fill polygone(A[k]-(epaisseurbatons*1pt,0),A[k]+(epaisseurbatons*1pt,0),P[k]+(epaisseurbatons*1pt,0),P[k]-(epaisseurbatons*1pt,0)) withcolor if unknown Col[k]: black else:Col[k] fi; + fill polygone(A[k]-(epaisseurbatons*1pt,0),A[k]+(epaisseurbatons*1pt,0),P[k]+(epaisseurbatons*1pt,0),P[k]-(epaisseurbatons*1pt,0)) withcolor if unknown Col[k]: CoulDefaut else:Col[k] fi; if AideLecture: draw B[k]--P[k] dashed evenly; fi; endfor; + fi; if LectureFine: for k=0 step Pasy until ((maxy+1*Pasy)): if Tiret: trace (1pt,k*unitey)--(-1pt,k*unitey); - label.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey)); + label.lft(LATEX("\num{"&decimal(k)&"}"),(0,k*unitey)); else: - dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey)); + dotlabel.lft(LATEX("\num{"&decimal(k)&"}"),(0,k*unitey)); fi; endfor; fi; @@ -12721,9 +13386,9 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis for k=0 step Pasy until Pasy: if Tiret: trace (1pt,k*unitey)--(-1pt,k*unitey); - label.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey)); + label.lft(LATEX("\num{"&decimal(k)&"}"),(0,k*unitey)); else: - dotlabel.lft(TEX("\num{"&decimal(k)&"}"),(0,k*unitey)); + dotlabel.lft(LATEX("\num{"&decimal(k)&"}"),(0,k*unitey)); fi; endfor; fi; @@ -12762,6 +13427,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis LegendeVide=\useKV[ClesStat]{LegendeVide}; boolean Retour; Retour=false; + boolean ACompleter; + ACompleter=\useKV[ClesStat]{ACompleter}; pair A[],O,B[],C[],D[]; O=(0,0); n:=0; @@ -12814,7 +13481,9 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis (n mod 2)=0: +90 else: -90 fi,ecarthachures,if (n mod 2)=0 : 0 else: 1 fi) withpen pencircle scaled epaisseurhachures if AffichageAngle: withcolor 0.5white fi; fi; + if ACompleter=false: draw A[n-1]--O--A[n] if Hachures: withpen pencircle scaled2 fi; + fi; % Affichage des angles associ\'es if AffichageAngle: if round(p_*(#2/total[N]))>15: @@ -12927,21 +13596,23 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \end{mplibcode} \else \begin{mpost}[mpsettings={% - Rayon:=\useKV[ClesStat]{Rayon}; - ecarthachures=\useKV[ClesStat]{EcartHachures}; - epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures}; - boolean AffichageAngle; - AffichageAngle=\useKV[ClesStat]{AffichageAngle}; - boolean AffichageDonnee; - AffichageDonnee=\useKV[ClesStat]{AffichageDonnee}; - boolean Hachures; - Hachures=\useKV[ClesStat]{Hachures}; - boolean Inverse; - Inverse=\useKV[ClesStat]{LectureInverse}; - boolean Legende; - Legende=\useKV[ClesStat]{Legende}; - boolean LegendeVide; - LegendeVide=\useKV[ClesStat]{LegendeVide}; + Rayon:=\useKV[ClesStat]{Rayon}; + ecarthachures=\useKV[ClesStat]{EcartHachures}; + epaisseurhachures=\useKV[ClesStat]{EpaisseurHachures}; + boolean AffichageAngle; + AffichageAngle=\useKV[ClesStat]{AffichageAngle}; + boolean AffichageDonnee; + AffichageDonnee=\useKV[ClesStat]{AffichageDonnee}; + boolean Hachures; + Hachures=\useKV[ClesStat]{Hachures}; + boolean Inverse; + Inverse=\useKV[ClesStat]{LectureInverse}; + boolean Legende; + Legende=\useKV[ClesStat]{Legende}; + boolean LegendeVide; + LegendeVide=\useKV[ClesStat]{LegendeVide}; + boolean ACompleter; + ACompleter=\useKV[ClesStat]{ACompleter}; }] boolean Retour; Retour=false; @@ -12997,7 +13668,9 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis (n mod 2)=0: +90 else: -90 fi,ecarthachures,if (n mod 2)=0 : 0 else: 1 fi) withpen pencircle scaled epaisseurhachures if AffichageAngle: withcolor 0.5white fi; fi; + if ACompleter=false: draw A[n-1]--O--A[n] if Hachures: withpen pencircle scaled2 fi; + fi; % Affichage des angles associ\'es if AffichageAngle: if round(p_*(#2/total[N]))>15: @@ -14490,6 +15163,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \end{mplibcode} \else \mpxcommands{% + \usepackage{ProfCollege} \setKVdefault[ClesRatio]{TexteTotal=quantit\'e,TextePart=part} \setKV[ClesRatio]{#1} } @@ -14545,16 +15219,14 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis labeloffset:=labeloffset*3; label.top(\btex \useKV[ClesRatio]{TexteTotal} etex,iso(D,C)); if #3>1: - label.bot(btex #3\unexpanded{~\useKV[ClesRatio]{TextePart}}s - etex,iso(A,(N[1]/somme)[A,B])); + label.bot(btex #3\unexpanded{~\useKV[ClesRatio]{TextePart}}s etex,iso(A,(N[1]/somme)[A,B])); else: label.bot(btex #3\unexpanded{~\useKV[ClesRatio]{TextePart}} etex,iso(A,(N[1]/somme)[A,B])); fi; if #4>1: label.bot(btex #4\unexpanded{~\useKV[ClesRatio]{TextePart}}s etex,iso(((N[1]+N[2])/somme)[A,B],(N[1]/somme)[A,B])); else: - label.bot(btex #4\unexpanded{~\useKV[ClesRatio]{TextePart}} - etex,iso(((N[1]+N[2])/somme)[A,B],(N[1]/somme)[A,B])); + label.bot(btex #4\unexpanded{~\useKV[ClesRatio]{TextePart}} etex,iso(((N[1]+N[2])/somme)[A,B],(N[1]/somme)[A,B])); fi; if n>2: if #5>1: @@ -14565,7 +15237,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis fi; \end{mpost} \fi -} +}% \newcommand\MPTestCours[9][]{% % #2 : Longueur de la barre unit\'e @@ -16025,6 +16697,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \end{mplibcode} \else \mpxcommands{% + \usepackage{ProfCollege} \setKV[TraceG]{#1} } \begin{mpost}[mpsettings={xmin=\useKV[TraceG]{Xmin};xmax=\useKV[TraceG]{Xmax};ymin=\useKV[TraceG]{Ymin};ymax=\useKV[TraceG]{Ymax};pasx=\useKV[TraceG]{Xstep};pasy=\useKV[TraceG]{Ystep};xu=1cm/\useKV[TraceG]{Xstep};yu=1cm/\useKV[TraceG]{Ystep};grillex=\useKV[TraceG]{PasGrilleX};grilley=\useKV[TraceG]{PasGrilleY};pos=\useKV[TraceG]{LabelC};color colorpoint,colortrace;colorpoint=\useKV[TraceG]{CouleurPoint};colortrace=\useKV[TraceG]{CouleurTrace};boolean Grille;Grille=\useKV[TraceG]{Grille};boolean Graduations;Graduations=\useKV[TraceG]{Graduations};boolean Relie;Relie=\useKV[TraceG]{Relie};boolean RelieSegment;RelieSegment=\useKV[TraceG]{RelieSegment};boolean Invisible;Invisible=\useKV[TraceG]{Invisible};}] @@ -16215,7 +16888,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis label.top(btex \useKV[TraceG]{LabelY} etex,u*(xpart(Origine),ymax)); \end{mplibcode} \else - \mpxcommands{% + \mpxcommands{% + \usepackage{ProfCollege} \setKV[TraceG]{#1} } \begin{mpost}[mpsettings={borneinf=\useKV[TraceG]{Bornea};bornesup=\useKV[TraceG]{Borneb};xmin=\useKV[TraceG]{Xmin};xmax=\useKV[TraceG]{Xmax};ymin=\useKV[TraceG]{Ymin};ymax=\useKV[TraceG]{Ymax};pasx=\useKV[TraceG]{Xstep};pasy=\useKV[TraceG]{Ystep};xu=1cm/\useKV[TraceG]{Xstep};yu=1cm/\useKV[TraceG]{Ystep};grillex=\useKV[TraceG]{PasGrilleX};grilley=\useKV[TraceG]{PasGrilleY};pos=\useKV[TraceG]{LabelC};color colortrace;colortrace=\useKV[TraceG]{CouleurTrace};boolean Grille;Grille=\useKV[TraceG]{Grille};boolean Graduations;Graduations=\useKV[TraceG]{Graduations};}] @@ -17337,6 +18011,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \setKVdefault[ClesProba]{Echelle=false,Arbre=false,Branche=2,Angle=60,Rayon=0.25,LongueurEchelle=5,Affichage=0,Grille=1,Incline} \def\Updatetoksproba#1/#2\nil{\addtotok\toklistepointproba{"#1","\footnotesize #2",}} +\def\Updatetoksprobapdf#1/#2\nil{\addtotok\toklistepointproba{"#1","\noexpand\footnotesize #2",}} \def\Updatetoksprobaechelle#1/#2/#3\nil{\addtotok\toklistepointproba{#1,#2,"#3",}} \newtoks\toklistepointproba @@ -17344,9 +18019,13 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis % Pour construire l'arbre de probabilit\'e \def\buildarbreproba{% \toklistepointproba{}% + \ifluatex \foreachitem\compteur\in\ListeProba{\expandafter\Updatetoksproba\compteur\nil}% + \else + \foreachitem\compteur\in\ListeProba{\expandafter\Updatetoksprobapdf\compteur\nil}% + \fi \MPArbreProba{\useKV[ClesProba]{Branche}}{\useKV[ClesProba]{Angle}}{\the\toklistepointproba}{\useKV[ClesProba]{Rayon}}% -} +}% % Pour construire l'\'echelle de probabilit\'e \def\buildechelleproba{% @@ -17363,7 +18042,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \ifluatex \begin{mplibcode} pair A,B,C[],D[];%les noeuds de l'arbre - Figure(-10u,-10u,10u,10u); + %Figure(-10u,-10u,10u,10u); A=u*(1,1); B-A=u*(#1,0); draw segment(A,B); @@ -17490,7 +18169,6 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis boolean Incline; Incline=\useKV[ClesProba]{Incline}; pair A[],B[];%les noeuds de l'arbre - Figure(-10u,-10u,10u,10u); A0=u*(1,1); B0-A0=u*(#1,0); A1=rotation(B0,A0,#2/2); @@ -17543,9 +18221,10 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis toto(#3); \end{mplibcode} \else - \begin{mpost}[mpsettings={input PfCGeometrie; boolean Incline; Incline=\useKV[ClesProba]{Incline};}] + \begin{mpost}[mpsettings={%input PfCGeometrie; + boolean Incline; Incline=\useKV[ClesProba]{Incline};}] pair A[],B[];%les noeuds de l'arbre - Figure(-10u,-10u,10u,10u); + %Figure(-10u,-10u,10u,10u); A0=u*(1,1); B0-A0=u*(#1,0); A1=rotation(B0,A0,#2/2); @@ -17605,19 +18284,20 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \setKV[ClesProba]{#1}% % On liste les diff\'erents \'el\'ements sous la forme Ev\`enement/proba \setsepchar[*]{,*/}\ignoreemptyitems% - \readlist*\ListeProba{#2} + \readlist*\ListeProba{#2}% \ifboolKV[ClesProba]{Echelle}{% \buildechelleproba% }{\ifboolKV[ClesProba]{Arbre}{% \buildarbreproba% - }{} - } -} + }{}% + }% + \setsepchar{,}% +}% %%% % Reperage %%% -\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,ValeurMin=-4000,ValeurMax=4000,Etages=4} +\setKVdefault[ClesReperage]{Unitex=1,Pasx=1,Unitey=1,Pasy=1,Unitez=1,Pasz=1,DemiDroite=false,Droite=false,Plan=false,Trace=false,ListeSegment={},Espace=false,Sphere=false,AnglePhi=30,CouleurLa=white,CouleurLon=Tomato,AffichageNom=false,AffichageGrad=false,AffichageAbs=0,AffichageCoord=false,LectureCoord=false,ValeurUnitex=1,ValeurUnitey=1,ValeurOrigine=0,NomOrigine=O,EchelleEspace=50,CouleurCoord=black,Thermometre=false,Mercure=false,CouleurMercure=black,ValeurMin=-4000,ValeurMax=4000,Etages=4} % ValeurOrigine permet de faire des morceaux de demi-droite gradu\'ee en passant par droite :) \def\Updatetoksdroite#1/#2\nil{\addtotok\toklistepointdroite{#1,"#2",}} @@ -17809,16 +18489,16 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis picture CodageUn,CodageDeux; CodageUn=image( if k>0: - label.bot(LATEX("\noexpand\scriptsize\ang{"&decimal(k)&"} E"),(0,0)); + label.bot(LATEX("\noexpand\scriptsize\noexpand\ang{"&decimal(k)&"} E"),(0,0)); else: - label.bot(LATEX("\noexpand\scriptsize\ang{"&decimal(abs(k))&"} O"),(0,0)); + label.bot(LATEX("\noexpand\scriptsize\noexpand\ang{"&decimal(abs(k))&"} O"),(0,0)); fi; ); CodageDeux=image( if k>0: - label.rt(LATEX("\noexpand\scriptsize\ang{"&decimal(l)&"} N"),(0,0)); + label.rt(LATEX("\noexpand\scriptsize\noexpand\ang{"&decimal(l)&"} N"),(0,0)); else: - label.lft(LATEX("\noexpand\scriptsize\ang{"&decimal(abs(l))&"} S"),(0,0)); + label.lft(LATEX("\noexpand\scriptsize\noexpand\ang{"&decimal(abs(l))&"} S"),(0,0)); fi; ); fill (polygone(llcorner CodageUn,lrcorner CodageUn,urcorner CodageUn,ulcorner CodageUn) shifted(point(0.5*length Codageun) of Codageun)) withcolor blanc; @@ -17840,7 +18520,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis endfor; enddef; toto(#1); - label.llft(btex \noexpand\tiny \ang{0} etex,Projette(C)); + label.llft(LATEX("\noexpand\tiny\noexpand\ang{0}"),Projette(C)); \end{mpost} \fi } @@ -19313,6 +19993,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis AffichageGrad:=\AffichageGrad; AffichageCoord:=\useKV[ClesReperage]{AffichageAbs}; AffichageNom:=\AffichageNom; + color ColMercure; + ColMercure:=\useKV[ClesReperage]{CouleurMercure}; boolean Mercure; Mercure=\useKV[ClesReperage]{Mercure}; numeric valeur[]; @@ -19390,17 +20072,18 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis cc1=cercles(Tc[0],2.5mm); Tc1=pointarc(cc1,75); Tc4=pointarc(cc1,105); - trace arccercle(Tc4,Tc1,Tc0); Tc2=(xpart(Tc1),ypart(B+unitp*(0,0.75))); Tc3=(xpart(Tc4),ypart(B+unitp*(0,0.75))); - trace Tc1--Tc2--arccercle(Tc2,Tc3,iso(Tc2,Tc3))--Tc4; Tc5=(xpart(Tc1),ypart(unitp*(0,valeur[1]))); Tc6=(xpart(Tc4),ypart(unitp*(0,valeur[1]))); path temp; temp=Tc1--Tc5--Tc6--Tc4--arccercle(Tc4,Tc1,Tc0)--cycle; if nbt>0: - fill temp; + fill temp withcolor ColMercure; fi; + trace Tc5--Tc6; + trace arccercle(Tc4,Tc1,Tc0); + trace Tc1--Tc2--arccercle(Tc2,Tc3,iso(Tc2,Tc3))--Tc4; enddef; if Mercure:Thermo(1) else : Thermo(0) fi; @@ -19463,6 +20146,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis AffichageGrad:=\AffichageGrad; AffichageCoord:=\useKV[ClesReperage]{AffichageAbs}; AffichageNom:=\AffichageNom; + color ColMercure; + ColMercure:=\useKV[ClesReperage]{CouleurMercure}; boolean Mercure; Mercure=\useKV[ClesReperage]{Mercure};}] maxx:=0; @@ -19525,12 +20210,12 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis m_c:=m_c*3; marque_p:="croix"; labeloffset:=labeloffset*2; - label.lft(TEX("\footnotesize\Temp{"&decimal(ValeurUnitex)&"}"),unitex*(0,1)); - label.lft(TEX("\footnotesize\Temp{"&decimal(ValeurOrigine)&"}"),A); + label.lft(LATEX("\noexpand\footnotesize\noexpand\SI{"&decimal(ValeurUnitex)&"}{\celsius}"),unitex*(0,1)); + label.lft(LATEX("\noexpand\footnotesize\noexpand\SI{"&decimal(ValeurOrigine)&"}{\celsius}"),A); if AffichageGrad>0: for k=((minx+(minx mod pasx)) div pasx) upto (maxx div pasx): if (k<0) or (k>1): - label.lft(TEX("\footnotesize\Temp{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-ValeurOrigine)&"*"&decimal(k)&"}}"),unitex*(0,k));%%% + label.lft(LATEX("\noexpand\footnotesize\noexpand\SI{\noexpand\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-ValeurOrigine)&"*"&decimal(k)&"}}{\celsius}"),unitex*(0,k));%%% fi; endfor; fi; @@ -19542,10 +20227,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis cc1=cercles(Tc[0],2.5mm); Tc1=pointarc(cc1,75); Tc4=pointarc(cc1,105); - trace arccercle(Tc4,Tc1,Tc0); Tc2=(xpart(Tc1),ypart(B+unitp*(0,0.75))); Tc3=(xpart(Tc4),ypart(B+unitp*(0,0.75))); - trace Tc1--Tc2--arccercle(Tc2,Tc3,iso(Tc2,Tc3))--Tc4; Tc5=(xpart(Tc1),ypart(unitp*(0,valeur[1]))); Tc6=(xpart(Tc4),ypart(unitp*(0,valeur[1]))); path temp; @@ -19553,6 +20236,9 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis if nbt>0: fill temp; fi; + trace arccercle(Tc4,Tc1,Tc0); + trace Tc1--Tc2--arccercle(Tc2,Tc3,iso(Tc2,Tc3))--Tc4; + trace Tc5--Tc6; enddef; if Mercure:Thermo(1) else : Thermo(0) fi; @@ -19562,7 +20248,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis n:=0; for p_=t: n:=n+1; - label.rt(TEX(p_),unitp*(0,valeur[n])); + label.rt(LATEX(p_),unitp*(0,valeur[n])); if p_<>"": pointe(unitp*(0,valeur[n])); fi; @@ -19574,7 +20260,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis n:=n+1; if p_<>"": drawarrow (unitp*(-1,valeur[n]))--(unitp*(-0.3,valeur[n])); - label.rt(btex \hbox to2em{\dotfill} etex,(unitp*(-1,valeur[n]))); + label.rt(\btex \hbox to2em{\dotfill} etex,(unitp*(-1,valeur[n]))); pointe(unitp*(0,valeur[n]-ValeurOrigine)); fi; endfor; @@ -19584,9 +20270,9 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis n:=n+1; if p_<>"": if ((ValeurUnitex*valeur[n]) mod pasx)<>0: - label.rt(TEX("\footnotesize$\frac{\num{\fpeval{"&decimal(ValeurUnitex)&"*"&decimal(valeur[n])&"}}}{\num{"&decimal(pasx)&"}}$"),unitp*(0,valeur[n])); + label.rt(LATEX("\noexpand\footnotesize$\noexpand\frac{\noexpand\num{\noexpand\fpeval{"&decimal(ValeurUnitex)&"*"&decimal(valeur[n])&"}}}{\num{"&decimal(pasx)&"}}$"),unitp*(0,valeur[n])); else: - label.rt(TEX("\footnotesize\num{\fpeval{"&decimal(ValeurUnitex)&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(0,valeur[n])); + label.rt(LATEX("\noexpand\footnotesize\noexpand\num{\noexpand\fpeval{"&decimal(ValeurUnitex)&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),unitp*(0,valeur[n])); fi; pointe(unitp*(0,valeur[n]-ValeurOrigine)); fi; @@ -19596,7 +20282,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis for p_=t: n:=n+1; if p_<>"": - label.rt(TEX("\footnotesize\Temp{\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}"),(5mm,unitp*valeur[n])); + label.rt(LATEX("\noexpand\footnotesize\noexpand\SI{\noexpand\fpeval{"&decimal(ValeurOrigine)&"+"&decimal(ValeurUnitex-(ValeurOrigine))&"*"&decimal(valeur[n])&"/"&decimal(pasx)&"}}{\celsius}"),(5mm,unitp*valeur[n])); pointe(unitp*(0,valeur[n])); draw (unitp*(0,valeur[n]))--(7.5mm,unitp*valeur[n]) dashed evenly; fi; @@ -20096,7 +20782,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis %%% % Tableaux d'unit\'es %%% -\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,Taille=5,Largeur=4.75em} +\setKVdefault[ClesTableaux]{Virgule=true,Incline=false,Entiers=false,Decimaux=false,Milliards=false,Millions=false,Micro=false,Nano=false,Partie=false,CouleurG=gray!15,CouleurM=gray!15,Couleurm=gray!15,Couleuru=gray!15,Couleurd=gray!15,Classes=false,Nombres=false,Puissances=false,NbLignes=2,Metre=false,Are=false,Capacite=false,Carre=false,Cube=false,Litre=false,Gramme=false,Fleches=false,FlechesB=false,FlechesH=false,Colonnes=false,Prefixes=false,Escalier=false,Taille=5,Largeur=4.75em,Nom=PfCTableau,CodeAfter={}} \newcommand\PfCTBstrut{\rule[-1.2ex]{0pt}{3.8ex}} % Top and Bottom strut \newcommand\PfCTstrut{\rule{0pt}{3.8ex}} % Top strut @@ -20123,7 +20809,7 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xdef\PfCCoefConversion{10}% }{}% \PfCTableauIncline% - }{% + }{% % %%% Cl\'e Prefixes % @@ -20368,50 +21054,51 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xdef\TailleFonte{\useKV[ClesTableaux]{Taille}}% \setlength{\tabcolsep}{0.01\tabcolsep}% \begin{center}% - % + % %%% Definition du tableau - % + % \ifboolKV[ClesTableaux]{Milliards}{\xdef\PfCDerniereColonne{13}}{\ifboolKV[ClesTableaux]{Millions}{\xdef\PfCDerniereColonne{10}}{\xdef\PfCDerniereColonne{7}}}% - \begin{NiceTabular}{*{% - \ifboolKV[ClesTableaux]{Milliards}{12}{% - \ifboolKV[ClesTableaux]{Millions}{9}{6}% - }% - }{m{\useKV[ClesTableaux]{Largeur}}}}% - \ifboolKV[ClesTableaux]{Classes}{% - \hline - \xdef\DecalageLigne{\fpeval{\DecalageLigne+1}}\ifboolKV[ClesTableaux]{Milliards}{\Block[draw,fill={\useKV[ClesTableaux]{CouleurG}}]{1-3}{Classe des milliards}&&&\Block[draw,fill={\useKV[ClesTableaux]{CouleurM}}]{1-3}{Classe des millions}&&&}{} - \ifboolKV[ClesTableaux]{Millions}{\Block[draw,fill={\useKV[ClesTableaux]{CouleurM}}]{1-3}{Classe des millions}&&&}{} - \Block[draw,fill={\useKV[ClesTableaux]{Couleurm}}]{1-3}{Classe des milliers}&&% - &\Block[draw,fill={\useKV[ClesTableaux]{Couleuru}}]{1-3}{Classe des unités}&&\\}{% - \xdef\DecalageLigne{\fpeval{\DecalageLigne+1}}% - \ifboolKV[ClesTableaux]{Milliards}{% - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (L);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (K);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (J);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (I);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (H);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (G);}}&}{}% - \ifboolKV[ClesTableaux]{Millions}{% - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (I);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (H);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (G);}}&}{}% - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (F);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (E);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (D);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (C);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (B);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (A);}}\\ - }% + \begin{NiceTabular}{*{% + \ifboolKV[ClesTableaux]{Milliards}{12}{% + \ifboolKV[ClesTableaux]{Millions}{9}{6}% + }% + }{m{\useKV[ClesTableaux]{Largeur}}}}% + \ifboolKV[ClesTableaux]{Classes}{% + \hline + \xdef\DecalageLigne{\fpeval{\DecalageLigne+1}}\ifboolKV[ClesTableaux]{Milliards}{\Block[draw,fill={\useKV[ClesTableaux]{CouleurG}}]{1-3}{Classe des milliards}&&&\Block[draw,fill={\useKV[ClesTableaux]{CouleurM}}]{1-3}{Classe des millions}&&&% + }{} + \ifboolKV[ClesTableaux]{Millions}{\Block[draw,fill={\useKV[ClesTableaux]{CouleurM}}]{1-3}{Classe des millions}&&&}{} + \Block[draw,fill={\useKV[ClesTableaux]{Couleurm}}]{1-3}{Classe des milliers}&&% + &\Block[draw,fill={\useKV[ClesTableaux]{Couleuru}}]{1-3}{Classe des unités}&&\\}{% + \xdef\DecalageLigne{\fpeval{\DecalageLigne+1}}% + \ifboolKV[ClesTableaux]{Milliards}{% + \Block[]{}{}&\Block[]{}{}&\Block[]{}{}&\Block[]{}{}&\Block[]{}{}&\Block[]{}{}&}{}% + \ifboolKV[ClesTableaux]{Millions}{% + \Block[]{}{}&\Block[]{}{}&\Block[]{}{}&}{}% + \Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{}\\ + }%ok \hline \ifboolKV[ClesTableaux]{Milliards}{% - \Block[draw]{}{\fontsize{\TailleFonte}{\TailleFonte}\selectfont centaines de milliards}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont dizaines de milliards}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es de milliards}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont centaines de millions}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont dizaines de millions}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es de millions}% - & + \Block[draw]{}{\fontsize{\TailleFonte}{\TailleFonte}\selectfont centaines de milliards}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont dizaines de milliards}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es de milliards}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont centaines de millions}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont dizaines de millions}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es de millions}% + & }{} \ifboolKV[ClesTableaux]{Millions}{% - \Block[draw]{}{\fontsize{5}{5}\selectfont centaines de millions}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont dizaines de millions}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es de millions}% - & + \Block[draw]{}{\fontsize{5}{5}\selectfont centaines de millions}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont dizaines de millions}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es de millions}% + & }{} - \Block[draw]{}{\fontsize{5}{5}\selectfont centaines de milliers}% + \Block[draw]{}{\fontsize{5}{5}\selectfont centaines de milliers}% &\Block[draw]{}{\fontsize{5}{5}\selectfont dizaines de milliers}% &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es de milliers}% &\Block[draw]{}{\fontsize{5}{5}\selectfont centaines}% @@ -20419,137 +21106,133 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis &\Block[draw]{}{\fontsize{5}{5}\selectfont unit\'es}\\% \ifboolKV[ClesTableaux]{Nombres}{% \xdef\DecalageLigne{\fpeval{\DecalageLigne+1}}% - \ifboolKV[ClesTableaux]{Milliards}{% - \Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000000000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000000000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000000000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000000}}% - &% - }{}% - \ifboolKV[ClesTableaux]{Millions}{% - \Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000000}}% - &% - }{}% - \Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{100}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10}}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1}}% - \\ + \ifboolKV[ClesTableaux]{Milliards}{% + \Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000000000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000000000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000000000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000000}}% + &% + }{}% + \ifboolKV[ClesTableaux]{Millions}{% + \Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000000}}% + &% + }{}% + \Block[draw]{}{\fontsize{5}{5}\selectfont\num{100000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1000}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{100}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{10}}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont\num{1}}% + \\ }{}% - % - %%% Prise en compte de la cl\'e Puissances - % + % + %%% Prise en compte de la cl\'e Puissances + % \ifboolKV[ClesTableaux]{Puissances}{% \xdef\DecalageLigne{\fpeval{\DecalageLigne+1}}% - \ifboolKV[ClesTableaux]{Milliards}{% - &% - &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^{9}$}% - &% - &% - &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^{6}$}% - &% - }{% - \ifboolKV[ClesTableaux]{Millions}{% - &% - &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^{6}$}% - &% - }{% - }}% - &% - &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^3$}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times\num{10}^2$}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times\num{10}^1$}% - &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times\num{1}$}% - \\% + \ifboolKV[ClesTableaux]{Milliards}{% + &% + &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^{9}$}% + &% + &% + &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^{6}$}% + &% + }{% + \ifboolKV[ClesTableaux]{Millions}{% + &% + &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^{6}$}% + &% + }{% + }}% + &% + &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times10^3$}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times\num{10}^2$}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times\num{10}^1$}% + &\Block[draw]{}{\fontsize{5}{5}\selectfont $\times\num{1}$}% + \\% }{}% - % - %%% Lignes vierges - % + % + %%% Lignes vierges + % \hline% \xintFor* ##1 in {\xintSeq{1}{\useKV[ClesTableaux]{NbLignes}}}\do{% + \ifboolKV[ClesTableaux]{Milliards}{% + &&&&&&}{}% + \ifboolKV[ClesTableaux]{Millions}{% + &&&}{}% + &&&&&\\}% \ifboolKV[ClesTableaux]{Milliards}{% - &&&&&&}{}% + \Block[]{}{\tikz[remember picture,overlay]{\coordinate (L1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (K1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (J1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (I1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (H1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (G1);}}&}{}% \ifboolKV[ClesTableaux]{Millions}{% - &&&}{}% - &&&&&\\}% - \ifboolKV[ClesTableaux]{Milliards}{% - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (L1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (K1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (J1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (I1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (H1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (G1);}}&}{}% - \ifboolKV[ClesTableaux]{Millions}{% - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (I1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (H1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (G1);}}&}{}% - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (F1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (E1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (D1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (C1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (B1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (A1);}}\\ - \CodeAfter% - % on trace les lignes verticales - \xintFor* ##1 in {\xintSeq{1}{\PfCDerniereColonne}}\do{% - \tikz\draw (2-|##1)--(\fpeval{2+\useKV[ClesTableaux]{NbLignes}+1}-|##1);% - }% - %% On place le nombre éventuel - \ifx\bla#2\bla% - \else% - \setsepchar{,}% - \readlist*\ListeNombreAPlacer{#2}% - \xintFor* ##2 in{\xintSeq {1}{\ListeNombreAPlacerlen}}\do{% - \StrLen{\ListeNombreAPlacer[##2]}[\TabLongueurNombre]% - \xintFor* ##1 in{\xintSeq {\TabLongueurNombre}{1}}\do{% - \tikz\node at (\fpeval{\DecalageLigne+##2+1.5}-|\fpeval{\PfCDerniereColonne-0.5-\TabLongueurNombre+##1}) {\PfCTBstrut\StrMid{\ListeNombreAPlacer[##2]}{##1}{##1}};% - }% - }% - \fi% - \end{NiceTabular}% - \end{center}% - % On trace les éventuelles fleches - \ifboolKV[ClesTableaux]{Classes}{}{% - \ifboolKV[ClesTableaux]{FlechesB}{% - \ifboolKV[ClesTableaux]{Milliards}{% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (K1) to node[below, midway]{\small$\div\num{10}$}(L1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (J1) to node[below, midway]{\small$\div\num{10}$}(K1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (I1) to node[below, midway]{\small$\div\num{10}$}(J1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (H1) to node[below, midway]{\small$\div\num{10}$}(I1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (G1) to node[below, midway]{\small$\div\num{10}$}(H1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (F1) to node[below, midway]{\small$\div\num{10}$}(G1);}% - }{}% - \ifboolKV[ClesTableaux]{Millions}{% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (H1) to node[below, midway]{\small$\div\num{10}$}(I1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (G1) to node[below, midway]{\small$\div\num{10}$}(H1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (F1) to node[below, midway]{\small$\div\num{10}$}(G1);}% - }{}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (E1) to node[below, midway]{\small$\div\num{10}$}(F1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (D1) to node[below, midway]{\small$\div\num{10}$}(E1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (C1) to node[below, midway]{\small$\div\num{10}$}(D1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (B1) to node[below, midway]{\small$\div\num{10}$}(C1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (A1) to node[below, midway]{\small$\div\num{10}$}(B1);}% - }{}% - \ifboolKV[ClesTableaux]{FlechesH}{% - \ifboolKV[ClesTableaux]{Milliards}{% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (L) to node[above, midway]{\small$\times\num{10}$}(K);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (K) to node[above, midway]{\small$\times\num{10}$}(J);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (J) to node[above, midway]{\small$\times\num{10}$}(I);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (I) to node[above, midway]{\small$\times\num{10}$}(H);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (H) to node[above, midway]{\small$\times\num{10}$}(G);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (G) to node[above, midway]{\small$\times\num{10}$}(F);}% - }{}% - \ifboolKV[ClesTableaux]{Millions}{% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (I) to node[above, midway]{\small$\times\num{10}$}(H);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (H) to node[above, midway]{\small$\times\num{10}$}(G);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (G) to node[above, midway]{\small$\times\num{10}$}(F);}% - }{}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (B) to node[above, midway]{\small$\times\num{10}$}(A);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (C) to node[above, midway]{\small$\times\num{10}$}(B);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (D) to node[above, midway]{\small$\times\num{10}$}(C);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (E) to node[above, midway]{\small$\times\num{10}$}(D);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (F) to node[above, midway]{\small$\times\num{10}$}(E);}% - }{}% - } + \Block[]{}{\tikz[remember picture,overlay]{\coordinate (I1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (H1);}}&\Block[]{}{\tikz[remember picture,overlay]{\coordinate (G1);}}&}{}% + \Block[]{}{\tikz[remember picture,overlay]{\coordinate (F1);}} + &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (E1);}} + &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (D1);}} + &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (C1);}} + &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (B1);}} + &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (A1);}}\\ + \CodeAfter% + % on trace les lignes verticales + \xintFor* ##1 in {\xintSeq{1}{\PfCDerniereColonne}}\do{% + \tikz\draw (2-|##1)--(\fpeval{2+\useKV[ClesTableaux]{NbLignes}+1}-|##1);% + }% + %% On place le nombre éventuel + \ifx\bla#2\bla% + \else% + \setsepchar{,}% + \readlist*\ListeNombreAPlacer{#2}% + \xintFor* ##2 in{\xintSeq {1}{\ListeNombreAPlacerlen}}\do{% + \StrLen{\ListeNombreAPlacer[##2]}[\TabLongueurNombre]% + \xintFor* ##1 in{\xintSeq {\TabLongueurNombre}{1}}\do{% + \tikz\node at (\fpeval{\DecalageLigne+##2+1.5}-|\fpeval{\PfCDerniereColonne-0.5-\TabLongueurNombre+##1}) {\PfCTBstrut\StrMid{\ListeNombreAPlacer[##2]}{##1}{##1}};% + }% + }% + \fi% + % On trace les éventuelles fleches + \ifboolKV[ClesTableaux]{Fleches}{\setKV[ClesTableaux]{FlechesH,FlechesB}}{}%% + \ifboolKV[ClesTableaux]{Classes}{}{% + \ifboolKV[ClesTableaux]{FlechesB}{% + \ifboolKV[ClesTableaux]{Milliards}{% + \xintFor* ##1 in {\xintSeq{1}{11}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{3+\useKV[ClesTableaux]{NbLignes}}-|\fpeval{1.5+##1}) to node[below, midway]{\small$\div\num{10}$}(\fpeval{3+\useKV[ClesTableaux]{NbLignes}}-|\fpeval{0.5+##1});% + }% + }{% + \ifboolKV[ClesTableaux]{Millions}{% + \xintFor* ##1 in {\xintSeq{1}{8}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{3+\useKV[ClesTableaux]{NbLignes}}-|\fpeval{1.5+##1}) to node[below, midway]{\small$\div\num{10}$}(\fpeval{3+\useKV[ClesTableaux]{NbLignes}}-|\fpeval{0.5+##1});% + }% + }{% + \xintFor* ##1 in {\xintSeq{1}{5}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{3+\useKV[ClesTableaux]{NbLignes}}-|\fpeval{1.5+##1}) to node[below, midway]{\small$\div\num{10}$}(\fpeval{3+\useKV[ClesTableaux]{NbLignes}}-|\fpeval{0.5+##1});% + }% + }% + }% + }{}% + \ifboolKV[ClesTableaux]{FlechesH}{% + \ifboolKV[ClesTableaux]{Milliards}{% + \xintFor* ##1 in {\xintSeq{1}{11}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{0.5+##1}) to node[above, midway]{\small$\times\num{10}$}(1.5-|\fpeval{1.5+##1});% + }% + }{% + \ifboolKV[ClesTableaux]{Millions}{% + \xintFor* ##1 in {\xintSeq{1}{8}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{0.5+##1}) to node[above, midway]{\small$\times\num{10}$}(1.5-|\fpeval{1.5+##1});% + }% + }{% + \xintFor* ##1 in {\xintSeq{1}{5}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{0.5+##1}) to node[above, midway]{\small$\times\num{10}$}(1.5-|\fpeval{1.5+##1});% + }% + }% + }% + }{}% + }% + \useKV[ClesTableaux]{CodeAfter}% + \end{NiceTabular}% + \end{center}% \setlength{\tabcolsep}{100\tabcolsep}% }{}% % @@ -20890,24 +21573,24 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \ifboolKV[ClesTableaux]{Metre}{% \[\renewcommand{\arraystretch}{1.15}% \begin{NiceTabular}{*{7}{p{7.5mm}}}% - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (A);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (B);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (C);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (D);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (E);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (F);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (G);}}\\ + \Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{}\\ \Block[draw]{}{km\PfCTBstrut}&\Block[draw]{1-1}{hm\PfCTBstrut}&\Block[draw]{1-1}{dam\PfCTBstrut}&\Block[draw]{1-1}{m\PfCTBstrut}&\Block[draw]{1-1}{dm\PfCTBstrut}&\Block[draw]{1-1}{cm\PfCTBstrut}&\Block[draw]{1-1}{mm\PfCTBstrut}\\ \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesTableaux]{NbLignes}}}\do{% &&&&&&\\ - } - \Block[]{}{\tikz[remember picture,overlay]{\coordinate (G1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (F1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (E1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (D1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (C1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (B1);}} - &\Block[]{}{\tikz[remember picture,overlay]{\coordinate (A1);}}\\ + }% + \Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{}\\ \CodeAfter % on trace les lignes verticales \xintFor* ##1 in {\xintSeq{1}{8}}\do{% @@ -20925,24 +21608,37 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis }% } \fi% + % on trace les flèches + \ifboolKV[ClesTableaux]{Fleches}{\setKV[ClesTableaux]{FlechesH,FlechesB}}{}% + \ifboolKV[ClesTableaux]{FlechesH}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{0.5+##1}) to node[above, midway]{\small$\times\num{10}$}(1.5-|\fpeval{1.5+##1});% + }% + }{}% + \ifboolKV[ClesTableaux]{FlechesB}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{3+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{1.5+##1}) to node[below,midway]{\small$\div\num{10}$}(\fpeval{3+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{0.5+##1});% + }% + }{}% + \useKV[ClesTableaux]{CodeAfter}% \end{NiceTabular}% \]% - \Conversion{10}% }% {}% - % + + % %%% Prise en compte de la cl\'e Carre % \ifboolKV[ClesTableaux]{Carre}{% \[\renewcommand{\arraystretch}{1.15}% \begin{NiceTabular}{*{7}{p{3.5mm}p{3.5mm}}}% - \Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (A);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (B);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (C);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (D);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (E);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (F);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (G);}}\\ + \Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{}\\ \Block[borders={left,top,right}]{1-2}{km$^2$\PfCTBstrut}&&\Block[borders={left,top,right}]{1-2}{hm$^2$\PfCTBstrut}&&\Block[borders={left,top,right}]{1-2}{dam$^2$\PfCTBstrut}&&\Block[borders={left,top,right}]{1-2}{m$^2$\PfCTBstrut}&&\Block[borders={left,top,right}]{1-2}{dm$^2$\PfCTBstrut}&&\Block[borders={left,top,right}]{1-2}{cm$^2$\PfCTBstrut}&&\Block[borders={left,top,right}]{1-2}{mm$^2$\PfCTBstrut}&\\ \ifboolKV[ClesTableaux]{Are}{% \Block[borders={left,right,bottom}]{1-2}{}&&\Block[draw=gray!50,borders={left,top,bottom}]{1-1}{}&\Block[borders={top,right,bottom}]{1-1}{\scriptsize ha}&\Block[draw=gray!50,borders={left,top,bottom}]{1-1}{}&\Block[borders={top,right,bottom}]{1-1}{\scriptsize a}&\Block[borders={left,right,bottom}]{1-2}{}&&\Block[borders={left,right,bottom}]{1-2}{}&&\Block[borders={left,right,bottom}]{1-2}{}&&\Block[borders={left,right,bottom}]{1-2}{}&\\ @@ -20950,13 +21646,13 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesTableaux]{NbLignes}}}\do{% &&&&&&&&&&&&&\\ }% - \Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (G1);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (F1);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (E1);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (D1);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (C1);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (B1);}} - &&\Block[]{1-2}{\tikz[remember picture,overlay]{\coordinate (A1);}}\\ + \Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{} + &&\Block[]{1-2}{}\\ \CodeAfter % on trace les lignes verticales \xintifboolexpr{\useKV[ClesTableaux]{Are}}{% @@ -20988,24 +21684,37 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis }% } \fi% + % on trace les flèches + \ifboolKV[ClesTableaux]{Fleches}{\setKV[ClesTableaux]{FlechesH,FlechesB}}{}% + \ifboolKV[ClesTableaux]{Are}{\xdef\PfCTableauDepart{4}}{\xdef\PfCTableauDepart{3}}% + \ifboolKV[ClesTableaux]{FlechesH}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{2*##1}) to node[above, midway]{\small$\times\num{100}$}(1.5-|\fpeval{2*(##1+1)});% + }% + }{}% + \ifboolKV[ClesTableaux]{FlechesB}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{\PfCTableauDepart+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{2*(##1+1)}) to node[below,midway]{\small$\div\num{100}$}(\fpeval{\PfCTableauDepart+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{2*##1});% + }% + }{}% + \useKV[ClesTableaux]{CodeAfter}% \end{NiceTabular} \]% - \Conversion{100}% }{}% % %%% Prise en compte de la cl\'e Cube % \ifboolKV[ClesTableaux]{Cube}{% - \setlength{\tabcolsep}{0.625\tabcolsep}% \[\renewcommand{\arraystretch}{1.15}% + \setlength{\tabcolsep}{0.625\tabcolsep}% \begin{NiceTabular}{*{7}{p{3.5mm}p{3.5mm}p{3.5mm}}} - \Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (A);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (B);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (C);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (D);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (E);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (F);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (G);}}\\ + \Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{}\\ \Block[borders={left,top,right}]{1-3}{km$^3$\PfCTBstrut}&&&\Block[borders={left,top,right}]{1-3}{hm$^3$\PfCTBstrut}&&&\Block[borders={left,top,right}]{1-3}{dam$^3$\PfCTBstrut}&&&\Block[borders={left,top,right}]{1-3}{m$^3$\PfCTBstrut}&&&\Block[borders={left,top,right}]{1-3}{dm$^3$\PfCTBstrut}&&&\Block[borders={left,top,right}]{1-3}{cm$^3$\PfCTBstrut}&&&\Block[borders={left,top,right}]{1-3}{mm$^3$\PfCTBstrut}&&\\ \ifboolKV[ClesTableaux]{Capacite}{% \Block[borders={left,right,bottom}]{1-3}{}&&&\Block[borders={left,right,bottom}]{1-3}{}&&&\Block[borders={left,right,bottom}]{1-3}{}&&&\Block[borders={left,right,bottom}]{1-3}{}&&&\Block[draw=gray!50,borders={top,left,bottom}]{}{\scriptsize hL}&\Block[draw=gray!50,borders={top,bottom},l]{}{\scriptsize daL}&\Block[draw=gray!50,borders={top,right,bottom}]{}{\scriptsize L}&\Block[draw=gray!50,borders={top,left,bottom}]{}{\scriptsize dL}&\Block[draw=gray!50,borders={top,bottom}]{}{\scriptsize cL}&\Block[draw=gray!50,borders={top,right,bottom}]{}{\scriptsize mL}&\Block[borders={left,right,bottom}]{1-3}{}&&\\ @@ -21013,13 +21722,13 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xintFor* ##1 in {\xintSeq{1}{\useKV[ClesTableaux]{NbLignes}}}\do{% &&&&&&&&&&&&&&&&&&&&\\ }% - \Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (G1);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (F1);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (E1);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (D1);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (C1);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (B1);}} - &&&\Block[]{1-3}{\tikz[remember picture,overlay]{\coordinate (A1);}}\\ + \Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{} + &&&\Block[]{1-3}{}\\ \CodeAfter % on trace les lignes verticales \xintifboolexpr{\useKV[ClesTableaux]{Capacite}}{% @@ -21053,10 +21762,23 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis }% } \fi% + % on trace les flèches + \ifboolKV[ClesTableaux]{Fleches}{\setKV[ClesTableaux]{FlechesH,FlechesB}}{}% + \ifboolKV[ClesTableaux]{Capacite}{\xdef\PfCTableauDepart{4}}{\xdef\PfCTableauDepart{3}}% + \ifboolKV[ClesTableaux]{FlechesH}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{2.5+3*(##1-1)}) to node[above, midway]{\small$\times\num{1000}$}(1.5-|\fpeval{2.5+3*##1});% + }% + }{}% + \ifboolKV[ClesTableaux]{FlechesB}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{\PfCTableauDepart+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{2.5+3*##1}) to node[below,midway]{\small$\div\num{1000}$}(\fpeval{\PfCTableauDepart+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{2.5+3*(##1-1)});% + }% + }{}% + \useKV[ClesTableaux]{CodeAfter}% \end{NiceTabular} \]% - \setlength{\tabcolsep}{1.6\tabcolsep}% - \Conversion{1000}% +% \setlength{\tabcolsep}{1.6\tabcolsep}% }{}% % %%% Prise en compte de la cl\'e Litre @@ -21064,22 +21786,22 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \ifboolKV[ClesTableaux]{Litre}{% \[\renewcommand{\arraystretch}{1.15}% \begin{NiceTabular}{*{6}{p{7.5mm}}}% - \Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (A);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (B);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (C);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (D);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (E);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (F);}}\\ + \Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{}\\ \Block[draw]{}{hL\PfCTBstrut}&\Block[draw]{}{daL\PfCTBstrut}&\Block[draw]{}{L\PfCTBstrut}&\Block[draw]{}{dL\PfCTBstrut}&\Block[draw]{}{cL\PfCTBstrut}&\Block[draw]{}{mL\PfCTBstrut}\\ \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesTableaux]{NbLignes}}}\do{% &&&&&\\ } - \Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (F1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (E1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (D1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (C1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (B1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (A1);}}\\ + \Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{} + &\Block[]{1-1}{}\\ \CodeAfter % on trace les lignes verticales \xintFor* ##1 in {\xintSeq{1}{7}}\do{% @@ -21097,9 +21819,21 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis }% }% \fi% + % on trace les flèches + \ifboolKV[ClesTableaux]{Fleches}{\setKV[ClesTableaux]{FlechesH,FlechesB}}{}% + \ifboolKV[ClesTableaux]{FlechesH}{% + \xintFor* ##1 in {\xintSeq{1}{5}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{0.5+##1}) to node[above, midway]{\small$\times\num{10}$}(1.5-|\fpeval{1.5+##1});% + }% + }{}% + \ifboolKV[ClesTableaux]{FlechesB}{% + \xintFor* ##1 in {\xintSeq{1}{5}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{3+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{1.5+##1}) to node[below,midway]{\small$\div\num{10}$}(\fpeval{3+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{0.5+##1});% + }% + }{}% + \useKV[ClesTableaux]{CodeAfter}% \end{NiceTabular}% \]% - \Conversion{10}% }{}% % %%% Prise en compte de la cl\'e Gramme @@ -21107,24 +21841,24 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \ifboolKV[ClesTableaux]{Gramme}{% \[\renewcommand{\arraystretch}{1.15}% \begin{NiceTabular}{*{7}{p{7.5mm}}}% - \Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (A);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (B);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (C);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (D);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (E);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (F);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (G);}}\\ - \Block[draw]{}{kg\PfCTBstrut}&\Block[draw]{}{hg\PfCTBstrut}&\Block[draw]{}{dag\PfCTBstrut}&\Block[draw]{}{g\PfCTBstrut}&\Block[draw]{}{dg\PfCTBstrut}&\Block[draw]{}{cg\PfCTBstrut}&\Block[draw]{}{mg\PfCTBstrut}\\ + \Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{}\\ + \Block[draw]{}{kg\PfCTBstrut}&\Block[draw]{1-1}{hg\PfCTBstrut}&\Block[draw]{1-1}{dag\PfCTBstrut}&\Block[draw]{1-1}{g\PfCTBstrut}&\Block[draw]{1-1}{dg\PfCTBstrut}&\Block[draw]{1-1}{cg\PfCTBstrut}&\Block[draw]{1-1}{mg\PfCTBstrut}\\ \xintFor* ##1 in {\xintSeq {1}{\useKV[ClesTableaux]{NbLignes}}}\do{% &&&&&&\\ - } - \Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (G1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (F1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (E1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (D1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (C1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (B1);}} - &\Block[]{1-1}{\tikz[remember picture,overlay]{\coordinate (A1);}}\\ + }% + \Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{} + &\Block[]{}{}\\ \CodeAfter % on trace les lignes verticales \xintFor* ##1 in {\xintSeq{1}{8}}\do{% @@ -21140,34 +21874,25 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \xintFor* ##1 in{\xintSeq {1}{\TabLongueurNombre}}\do{% \tikz\node at (\fpeval{##2+2.5}-|\fpeval{\ListeNombreAPlacer[##2,2]-0.5+##1}) {\PfCTBstrut\StrMid{\ListeNombreAPlacer[##2,1]}{##1}{##1}}; }% - }% + } \fi% + % on trace les flèches + \ifboolKV[ClesTableaux]{Fleches}{\setKV[ClesTableaux]{FlechesH,FlechesB}}{}% + \ifboolKV[ClesTableaux]{FlechesH}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=30,in=150] (1.5-|\fpeval{0.5+##1}) to node[above, midway]{\small$\times\num{10}$}(1.5-|\fpeval{1.5+##1});% + }% + }{}% + \ifboolKV[ClesTableaux]{FlechesB}{% + \xintFor* ##1 in {\xintSeq{1}{6}}\do{% + \tikz\draw[gray,->,>=latex,out=-150,in=-30] (\fpeval{3+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{1.5+##1}) to node[below,midway]{\small$\div\num{10}$}(\fpeval{3+\useKV[ClesTableaux]{NbLignes}+0.5}-|\fpeval{0.5+##1});% + }% + }{}% + \useKV[ClesTableaux]{CodeAfter}% \end{NiceTabular}% \]% - \Conversion{10}% }{}% - } }% - -\newcommand\Conversion[1]{% - \ifboolKV[ClesTableaux]{Fleches}{\setKV[ClesTableaux]{FlechesH,FlechesB}}{}% - \ifboolKV[ClesTableaux]{FlechesH}{% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (A) to node[above, midway]{\small$\times\num{#1}$}(B);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (B) to node[above, midway]{\small$\times\num{#1}$}(C);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (C) to node[above, midway]{\small$\times\num{#1}$}(D);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (D) to node[above, midway]{\small$\times\num{#1}$}(E);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (E) to node[above, midway]{\small$\times\num{#1}$}(F);}% - \ifboolKV[ClesTableaux]{Litre}{}{\tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=30,in=150] (F) to node[above, midway]{\small$\times\num{#1}$}(G);}% - }% - }{}% - \ifboolKV[ClesTableaux]{FlechesB}{% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (A1) to node[below, midway]{\small$\div\num{#1}$}(B1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (B1) to node[below, midway]{\small$\div\num{#1}$}(C1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (C1) to node[below, midway]{\small$\div\num{#1}$}(D1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (D1) to node[below, midway]{\small$\div\num{#1}$}(E1);}% - \tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (E1) to node[below, midway]{\small$\div\num{#1}$}(F1);}% - \ifboolKV[ClesTableaux]{Litre}{}{\tikz[remember picture, overlay]{\draw[gray,->,>=latex,out=-150,in=-30] (F1) to node[below, midway]{\small$\div\num{#1}$}(G1);}}% - }{}% }% \newcommand\PfCTableauIncline{% @@ -21201,8 +21926,8 @@ Barre=false,Longueur=10cm,Hauteur=5mm,Bicolore=false,EcartBarre=0%Grille est dis \tikz\draw[out=215,in=-90,-stealth,gray,transform canvas={yshift=-2mm}] (9-|4.5) to node[midway,left]{\footnotesize$\div{\PfCCoefConversion}$}(7-|3.5); \tikz\draw[out=215,in=-90,-stealth,gray,transform canvas={yshift=-2mm}] (7-|3.5) to node[midway,left]{\footnotesize$\div{\PfCCoefConversion}$}(5-|2.5); \tikz\draw[out=215,in=-90,-stealth,gray,transform canvas={yshift=-2mm}] (5-|2.5) to node[midway,left]{\footnotesize$\div{\PfCCoefConversion}$}(3-|1.5); -\end{NiceTabular} -} +\end{NiceTabular}% +}% %%% % Cards |