diff options
Diffstat (limited to 'macros/latex/contrib/profmaquette/latex/ProfMaquette.sty')
-rw-r--r-- | macros/latex/contrib/profmaquette/latex/ProfMaquette.sty | 674 |
1 files changed, 473 insertions, 201 deletions
diff --git a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty index da9aafbfe0..9aa462bb76 100644 --- a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty +++ b/macros/latex/contrib/profmaquette/latex/ProfMaquette.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{2024/03/26}% +\def\filedate{2024/05/02}% \let\PfMfiledate\filedate% -\def\fileversion{0.90}% +\def\fileversion{0.94}% \let\PfMfileversion\fileversion% \ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]% @@ -33,20 +33,20 @@ \RequirePackage{modulus}% -% mettre un option Dys \RequirePackage{ragged2e}% \makeatletter \gdef\PfMFontSize{\@ptsize} +%\gdef\PfMFontSize{\f@size} \makeatother %définition des clés \RequirePackage{simplekv}% -\setKVdefault[Boulot]{Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,AllDirect=false,AllPouce=false,VersSolution=false,Small=false,Footnotesize=false,Scriptsize=false}%Les deux derniers pour essayer de mettre tous les exercices d'un même fichier en mode Reponse, en mode Indice. Pas implanté, pas testé +\setKVdefault[Boulot]{Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,OlympiadesAPMEP=false,CorrigeInverse=false,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,VersSolution=false,AvecEntrainement=false,Small=false,Footnotesize=false,Scriptsize=false,AllDirect=false,AllPouce=false}%Les deux derniers pour essayer de mettre tous les exercices d'un même fichier en mode Reponse, en mode Indice. Pas implanté, pas testé \defKV[Boulot]{Colonnes=\setKV[Boulot]{CorrectionColonnes}}% \setKVdefault[Cours]{Couleur=Crimson,Theme=Trace écrite,NomExercice=Exercice}% \setKVdefault[DM]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname}% \setKVdefault[DS]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false,Sujet=A}% -\setKVdefault[Fiche]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}% +\setKVdefault[Fiche]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,}% \setKVdefault[PdT]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}% \setKVdefault[FdR]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}% \setKVdefault[Parcours]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,Vertical=false}% @@ -58,7 +58,7 @@ \setKVdefault[Kholle]{Sujet=1,Numero=1,Date=15,Niveau=TSI-1,Code=\jobname,Lieu=Lycée du Hainaut (Valenciennes),NomEleve=Albert Einstein,CR=false}% \setKVdefault[CAN]{Date=\today,Niveau=6,Duree=9,CoefQ=0.4,CoefR=0.35,CoefJ=0.1}% -\setKVdefault[ClesExercices]{NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Doublespacing=false,Onehalfspacing=false,Cadres=false,TitreSol=false,NonUtilise=false,Profile=false}% +\setKVdefault[ClesExercices]{NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Doublespacing=false,Onehalfspacing=false,Cadres=false,TitreSol=false,NonUtilise=false,Profile=false,PasEntrainement=false}% \defKV[ClesExercices]{TitreSolution=\setKV[ClesExercices]{TitreSol}}% \defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}% \defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}% @@ -86,12 +86,28 @@ \IfNoValueTF{#1}{\PfMDotfill}{\makebox[#1]{\PfMDotfill}}% }% % -\NewDocumentCommand\PfMLignespointilles{m}{% - \xintifboolexpr{\fpeval{#1}>1}{% - \xintFor* ##1 in {\xintSeq {1}{\fpeval{#1}}}\do{% - \PfMpointilles\par% - }% - }{}% +\NewDocumentCommand\PfMNbLignesRestantes{}{% + \edef\measurepage{\dimexpr\pagegoal-\pagetotal\relax}% + \xdef\PfMResteLignes{\fpeval{trunc((\the\measurepage)/(\baselineskip),0)}}% +}% + +\NewDocumentCommand\PfMLignesFinales{}{% + \PfMNbLignesRestantes% + \xintFor* ##1 in {\xintSeq {1}{\PfMResteLignes}}\do{% + \PfMpointilles\par% + }% +}% + +\NewDocumentCommand\PfMLignespointilles{sm}{% + \IfBooleanTF{#1}{% + \par\PfMLignesFinales% + }{% + \xintifboolexpr{\fpeval{#2}>1}{% + \xintFor* ##1 in {\xintSeq {1}{#2}}\do{% + \PfMpointilles\par% + }% + }{}% + }% }% % Definition de longueurs \newlength\PfMLargeurSchemaParcours% @@ -108,12 +124,14 @@ \newlength\PfMEspaceAvantLignes% \newlength\PfMEspaceApresLignes% \newlength\PfMLargeurComp -\newlength\CRRHauteur +\newlength\CRRHauteur% +\newlength\PfMEcartSupInterMots% \setlength{\CRRHauteur}{10cm} \setlength{\PfMHauteurAppreciation}{5cm}% \setlength{\PfMHauteurRemarque}{5cm}% \setlength{\PfMEspaceAvantLignes}{1em} \setlength{\PfMEspaceApresLignes}{1em} +\setlength{\PfMEcartSupInterMots}{1pt}% % définition des compteurs \newcounter{PfMMaquette}%Pour compter le nombres de "travaux" \setcounter{PfMMaquette}{0}% @@ -123,6 +141,8 @@ \setcounter{PfMExo}{0}% \newcounter{PfMExoSol}%Pour repérer les valeurs aléatoires construites automatiquement dans la solution \setcounter{PfMExoSol}{0}% +\newcounter{PfMExoEntrai}%Pour repérer les entrainements +\setcounter{PfMExoEntrai}{0}% \newcounter{PfMCorrigeParcoursPerso}%affichage des solutions ou pas dans le cadre d'un parcours perso \setcounter{PfMCorrigeParcoursPerso}{0}% \newcounter{PfMSOS}%Numéro des SOS dans les parcours fléchés @@ -142,6 +162,8 @@ \newcounter{Nbcolonnes} +\newbox\PfMSauvegardeBox% + \newif\ifPfMDeuxColonnes \newif\ifPfMRectoVerso \makeatletter @@ -196,13 +218,14 @@ } } -\NewDocumentEnvironment{Consignes}{}{% +\NewDocumentEnvironment{Consignes}{b}{% \ifboolKV[Boulot]{CAN}{}{% \begin{tcolorbox}[consignes]% \small\sffamily + #1 }% }{% -\end{tcolorbox}% +\ifboolKV[Boulot]{CAN}{}{\end{tcolorbox}}% }% %% Option french pour les mathématiques @@ -218,6 +241,15 @@ \repeat }% +% On bloque la graine de fabrication des nombres aléatoires. +\ExplSyntaxOn +\cs_new_eq:NN \PfMGraineAlea \sys_gset_rand_seed:n +\ExplSyntaxOff + +\ExplSyntaxOn +\cs_new_eq:NN \PfMChoisisGraineAlea \int_rand:n +\ExplSyntaxOff + %% Gestion de l'affichage ou pas des item (Pour élèves PAP) par exemple % Code by egreg : https://tex.stackexchange.com/questions/627250/hide-specific-item-in-a-list \ExplSyntaxOn @@ -874,7 +906,7 @@ \]% }% % -%%%% +% %%% Définitions des environnements pour la correction \makeatletter \newwrite\verbatim@out @@ -1019,13 +1051,14 @@ }% \def\PfMTexteDuCorrige{Corrigé de l'exercice} +\def\PfMTexteDeLEntrainement{Automatisme(s) lié(s) à l'exercice} \NewDocumentCommand\PfMAffichageCorrige{}{% \ifboolKV[Boulot]{CAN}{% \xintFor* ##1 in{\xintSeq{1}{\PfMCANTotalExo}}\do{% \setcounter{PfMExoSol}{##1}% \setcounter{PfMAlea}{0}% - \IfFileExists{\jobname-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ref{TestCAN-##1}:\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}%page-\thePfMMaquette-##1 + \IfFileExists{\jobname-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{TestCAN-##1}}:\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}%page-\thePfMMaquette-##1 }% }{% \setcounter{PfMExoSol}{0}% @@ -1033,14 +1066,51 @@ \refstepcounter{PfMExoSol}%{##1}% \label{pagesol-\thePfMMaquette-\thePfMExoSol} \setcounter{PfMAlea}{0}% - \IfFileExists{\jobname-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{% - \IfFileExists{\jobname-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}% + \IfFileExists{\jobname-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{\PfMTexteDuCorrige\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ex##1.rep}{\PfMAffichageHideItemSolution\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{% + \IfFileExists{\jobname-Ex##1.cdp}{\PfMAffichageHideItemSolution\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~\ifboolKV[Boulot]{CorrigeSeul}{##1}{\ref{page-\thePfMMaquette-##1}}\fi}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}% }% }% \PfMshowitems% }% }% }% + +\NewDocumentEnvironment{Entrainement}{}{}{}% + +\makeatletter +\def\EntrainementWrite{% + \@bsphack% + \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.qrc"% + \let\do\@makeother\dospecials% + \catcode`\^^M\active% + \def\verbatim@processline{% + \immediate\write\verbatim@out{\the\verbatim@line}}% + \verbatim@start}% +\def\endEntrainementWrite{\immediate\closeout\verbatim@out\@esphack}% + +\let\Entrainement\EntrainementWrite\let\endEntrainement\endEntrainementWrite% +\makeatother + +\NewDocumentCommand\PfMAffichageEntrainement{}{% + \clearpage + \TikzAutomatismes + \setcounter{PfMExoEntrai}{0}% + \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{% + \refstepcounter{PfMExoEntrai}% + \IfFileExists{\jobname-Ex##1.qrc}{% + \begin{center} + \label{pageentrai-\thePfMMaquette-\thePfMExoEntrai}% + \textbf{\PfMTexteDeLEntrainement\ifnum\thePfMExo=1\relax\else~\ref{page-\thePfMMaquette-##1}\fi}\par\nopagebreak\input{\jobname-Ex##1.qrc}\end{center}}{}% + }% +}% + +\NewDocumentCommand\TikzAutomatismes{}{% + \begin{tcolorbox} + \begin{center} + \Large\sffamily Automatismes% + \end{center} + \end{tcolorbox}% +}% %%%%%%%% BAREME %%%%%%%%%%% %% Bareme \newlength{\brouillon} @@ -1174,7 +1244,18 @@ \node[% fill=tcbcolback,% anchor=center,% - ] at (frame.east){\hyperref[pagesol-\thePfMMaquette-\thePfMExo]{\faKey}};% + ] at ($(frame.north east)!0.25!(frame.south east)$){\hyperref[pagesol-\thePfMMaquette-\thePfMExo]{\faKey}};% + }% + }{}% +}% + +\NewDocumentCommand{\PfMLienVersEntrainement}{}{% + \ifboolKV[Boulot]{AvecEntrainement}{% + \ifboolKV[ClesExercices]{PasEntrainement}{}{% + \node[% + fill=tcbcolback,% + anchor=center,rotate=45% + ] at ($(frame.north east)!0.75!(frame.south east)$){\hyperref[pageentrai-\thePfMMaquette-\thePfMExo]{\faDumbbell}};% }% }{}% }% @@ -1207,8 +1288,8 @@ colback=LightSteelBlue, colbacklower=white, frame hidden, - } -} + }% +}% \tcbset{% tikzbasehtml/.style={% @@ -1265,7 +1346,7 @@ }% }% -\NewDocumentEnvironment{exerciceDM}{so}{% +\NewDocumentEnvironment{exerciceDM}{so+b}{% \setcounter{PfMAlea}{0}% \useKVdefault[ClesExercices]% \setKV[ClesExercices]{#2}% @@ -1280,6 +1361,7 @@ \refstepcounter{PfMSection}% \PfMChoixCorrection% \refstepcounter{PfMExo}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \PfMChoixTitreSolution% \immediate\write\@auxout{% \string\opcopy{\thePfMExo}{TotalExo}% @@ -1294,11 +1376,17 @@ label=page-\thePfMMaquette-\thePfMExo,% ]% \ifboolKV[Boulot]{Dys}{\raggedright}{}% - } + #3 +}% +}% }{% + \ifboolKV[ClesExercices]{NonUtilise}{}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{ \end{tcolorbox}% \PfMApresLesExercices% }% +}% +}% %%Contrat @@ -1421,16 +1509,16 @@ }% -\NewDocumentEnvironment{exerciceContrat}{so}{% +\NewDocumentEnvironment{exerciceContrat}{so+b}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% + \setKV[ClesExercices]{#2}% \ifboolKV[ClesExercices]{NonUtilise}{% % Mettre la correction hors-jeu \setKV[ClesExercices]{PasCorrige}% \PfMChoixCorrection% }{% - \setKV[ClesExercices]{#2}% \IfBooleanTF{#1}{% \setKV[ClesExercices]{Numerote=false}% }{}% @@ -1438,6 +1526,7 @@ \refstepcounter{PfMSection}% \PfMChoixCorrection% \refstepcounter{PfMExo}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \PfMChoixTitreSolution% \immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ContratTotalExo}}% % Creation des parcours @@ -1457,10 +1546,16 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% + #3 + }% }% }{% - \end{tcolorbox} - \PfMApresLesExercices% + \ifboolKV[ClesExercices]{NonUtilise}{}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \end{tcolorbox} + \PfMApresLesExercices% + }% + }% }% %%% Contrat %%% @@ -1519,6 +1614,8 @@ \PfMAffichageSource% % \PfMLienVersSolution% + % + \PfMLienVersEntrainement% }% }% }% @@ -1767,7 +1864,7 @@ \immediate\write\@auxout{\noexpand\expandafter\gdef\noexpand\csname \Roman{PfMMaquette}FdR#1\endcsname{\csname \Roman{PfMMaquette}route#1\endcsname}}% }% -\NewDocumentEnvironment{exerciceFdR}{so}{% +\NewDocumentEnvironment{exerciceFdR}{so+b}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% @@ -1784,6 +1881,7 @@ \stepcounter{PfMSection}% \PfMChoixCorrection% \refstepcounter{PfMExo}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \PfMChoixTitreSolution% \immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-FdRTotalExo}}% % Creation des parcours @@ -1816,11 +1914,17 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% + #3 + }% }% }{% + \ifboolKV[ClesExercices]{NonUtilise}{}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \end{tcolorbox} \PfMApresLesExercices% }% +}% +}% %CAN \setsepchar[*]{,*/}% @@ -1830,7 +1934,7 @@ \setsepchar{,}% \readlist*\ListePetitsObjets{bonbons,billes,biscuits,gommes,clous,vis,cahiers,trousses}% \readlist*\ListeFruits{pommes,poires,abricots,cerises,fraises,framboises,noix,pêches,nectarines,myrtilles,oranges,mandarines,kiwis}% -\readlist*\ListeVariables{a,b,c,m,n,p,r,s,t,x,y,z}% +\readlist*\ListeVariables{a,b,c,\ell,m,n,p,r,s,t,x,y,z}% \makeatletter \def\ExoCANWrite{% @@ -1984,13 +2088,14 @@ \PfMAffichageSource% % \PfMLienVersSolution% + % + \PfMLienVersEntrainement% }% }% }% %% Fin FdR %%% - -%%Parcours +%% Parcours %\makeatletter \NewDocumentCommand\AfficheParcours{om}{% @@ -2100,7 +2205,7 @@ \def\endexerciceParcoursPerso{\immediate\write\verbatim@out{\string\end{exercice}}\immediate\closeout\verbatim@out\@esphack}% -\NewDocumentEnvironment{exerciceParcours}{so}{% +\NewDocumentEnvironment{exerciceParcours}{so+b}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% @@ -2117,6 +2222,7 @@ \refstepcounter{PfMSection}% \PfMChoixCorrection% \refstepcounter{PfMExo}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \PfMChoixTitreSolution% \immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ParcoursTotalExo}}% % Creation des parcours @@ -2136,11 +2242,17 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% - } + #3 + }% + }% }{% + \ifboolKV[ClesExercices]{NonUtilise}{}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \end{tcolorbox} \PfMApresLesExercices% }% +}% +}% %%%%%%%%%%%%%%%%%%%%%%% % Pour encart @@ -2232,9 +2344,9 @@ \NewDocumentCommand\PfMChoixHideItemSolution{}{% \ifboolKV[ClesExercices]{Profile}{% - % J'ai un élève à profile Je dois me souvenir que la correction doit être profilée. Le compteur PfMExo vaut \thePfMExo + % J'ai un élève à profil : Je dois me souvenir que la correction doit être profilée. Le compteur PfMExo vaut \thePfMExo \expandafter\xdef\csname PfMHideSol\Roman{PfMExo}\endcsname{A}}{% - %Je n'ai pas d'élève à profile + %Je n'ai pas d'élève à profil \expandafter\xdef\csname PfMHideSol\Roman{PfMExo}\endcsname{}% }% }% @@ -2249,7 +2361,9 @@ \fi% }% -\NewDocumentEnvironment{exerciceFiche}{so}{% +\newbox\PfMBoxSauvegarde% + +\NewDocumentEnvironment{exerciceFiche}{so+b}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% @@ -2278,6 +2392,49 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% + % + #3 + }% + }% + }{% + \ifboolKV[ClesExercices]{NonUtilise}{}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{ + \end{tcolorbox}% + \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}% + \PfMApresLesExercices% + }% + }% +}% + +\NewDocumentEnvironment{exerciceOlympiadesAPMEP}{so}{% + \setcounter{PfMAlea}{0}% + \setcounter{PfMNbLogo}{1}% + \useKVdefault[ClesExercices]% + \setKV[ClesExercices]{#2}% + \ifboolKV[ClesExercices]{NonUtilise}{% + % Mettre la correction hors-jeu + \setKV[ClesExercices]{PasCorrige}% + \PfMChoixCorrection% + }{% + \IfBooleanTF{#1}{% + \setKV[ClesExercices]{Numerote=false}% + }{}% + \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}% + \colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}% + \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}% + \setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}% + \refstepcounter{PfMSection}% + \PfMChoixCorrection% + \refstepcounter{PfMExo}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \PfMChoixTitreSolution% + \PfMChoixHideItemSolution% + \begin{tcolorbox}[% + tikzOlympiadesAPMEP, + label is label, + label=page-\thePfMMaquette-\thePfMExo + ] + \ifboolKV[Boulot]{Dys}{\raggedright}{}% }% }% }{% @@ -2288,7 +2445,7 @@ } }% -\NewDocumentEnvironment{exerciceDS}{so}{% +\NewDocumentEnvironment{exerciceDS}{so+b}{% \setcounter{PfMAlea}{0}% \useKVdefault[ClesExercices]% \setKV[ClesExercices]{#2}% @@ -2297,31 +2454,38 @@ \setKV[ClesExercices]{PasCorrige}% \PfMChoixCorrection% }{% - \IfBooleanTF{#1}{% - \setKV[ClesExercices]{Numerote=false}% - }{}% - \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}% - \refstepcounter{PfMSection}% - \PfMChoixCorrection% - \refstepcounter{PfMExo}% - \PfMChoixTitreSolution% - \immediate\write\@auxout{% - \string\opcopy{\thePfMExo}{TotalExo}% - } - \ifboolKV[ClesExercices]{BaremeTotal}{% - \immediate\write\@auxout{% - \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}% - }}{} - \begin{tcolorbox}[% - tikzds, - label is label, - label=page-\thePfMMaquette-\thePfMExo - ] - \ifboolKV[Boulot]{Dys}{\raggedright}{}% - }% + \IfBooleanTF{#1}{% + \setKV[ClesExercices]{Numerote=false}% + }{}% + \ifboolKV[ClesExercices]{Profile}{\PfMhideitems}{}% + \refstepcounter{PfMSection}% + \PfMChoixCorrection% + \refstepcounter{PfMExo}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \PfMChoixTitreSolution% + \immediate\write\@auxout{% + \string\opcopy{\thePfMExo}{TotalExo}% + } + \ifboolKV[ClesExercices]{BaremeTotal}{% + \immediate\write\@auxout{% + \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}% + }}{} + \begin{tcolorbox}[% + tikzds, + label is label, + label=page-\thePfMMaquette-\thePfMExo + ] + \ifboolKV[Boulot]{Dys}{\raggedright}{}% + #3 + }% + }% }{% - \end{tcolorbox}% - \PfMApresLesExercices% + \ifboolKV[ClesExercices]{NonUtilise}{}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \end{tcolorbox}% + \PfMApresLesExercices% + }% + }% }% \NewDocumentEnvironment{ExerciceRecapBrevet}{so}{% @@ -2371,10 +2535,10 @@ % Fiche Exercice Brevet \newcommand\TikzRecapBrevet{% \begin{tcolorbox}[userbrevet]% - \Large\sffamily \useKV[RecapBrevet]{Theme} - \par{\tiny\useKV[RecapBrevet]{Code}}\hfill{\scriptsize\useKV[RecapBrevet]{Date}} + \Large\sffamily \useKV[RecapBrevet]{Theme}% + \par{\tiny\useKV[RecapBrevet]{Code}}\hfill{\scriptsize\useKV[RecapBrevet]{Date}}% \end{tcolorbox}% -} +}% \newcommand\TikzRecapBrevetCor[1]{% \clearpage @@ -2666,6 +2830,7 @@ %Alias pour tous les exercices. \NewDocumentEnvironment{exercice}{}{}{}% +\NewDocumentEnvironment{Exercice}{}{}{}% %%%%%%%%% STyle Kholle%%%%%%%%%% % Kholle @@ -2899,6 +3064,40 @@ \PfMAffichageSource% % Lien vers la solution \PfMLienVersSolution + % Lien vers les entrainements + \PfMLienVersEntrainement + }% + }% +}% +\makeatother + +\makeatletter +\tcbset{% + tikzOlympiadesAPMEP/.style={% + top=10pt, + left=0mm,right=0mm, + before skip=1em, + enhanced, + breakable, + colback=ColExoFiche, + % colframe=PfMCadreFiche, + frame hidden, + overlay unbroken and first={% + \draw[colLogo,line width=1pt] ([yshift=-10pt]frame.north west)--([yshift=-10pt]frame.north east); + \node[% + name=A, + fill=ColExoFiche, + anchor=west, + xshift=\kvtcb@leftlower, + ] at (frame.north west){\color{colLogo}\resizebox{1em}{!}{\carreEntoure{}}~\Large\bfseries\sffamily\useKV[Fiche]{NomExercice}\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{\ifboolKV[ClesExercices]{Numerote}{.~}{\xdef\PfMTitiLgNE{\useKV[Fiche]{NomExercice}}\IfStrEq{\PfMTitiLgNE}{}{}{.~}}\useKV[ClesExercices]{Titre}}{}}; + %% + \PfMAffichageLogos% + % + \PfMAffichageCompetencesTravaillees% + % + \PfMAffichageSource% + % Lien vers la solution + \PfMLienVersSolution }% }% }% @@ -2958,6 +3157,8 @@ \PfMAffichageSource% % \PfMLienVersSolution% + % + \PfMLienVersEntrainement% }% }% }% @@ -3098,9 +3299,14 @@ \end{tcolorbox}% }% -\NewDocumentCommand\Recapitulatif{m}{% - \DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{% - \begin{Maquette}[Fiche]{#1,Code=\normalsize\Prenom~\Nom}% +\NewDocumentCommand\Recapitulatif{mm}{% + \setKV[Boulot]{#1}% + \DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{% + \ifboolKV[Boulot]{Dys}{% + \begin{Maquette}[Fiche,Dys]{#2,Code=\normalsize\Prenom~\Nom}% + }{% + \begin{Maquette}[Fiche]{#2,Code=\normalsize\Prenom~\Nom}% + }% \readlist*\ListeExercices{\RecapListeExo}% \ifnum\fpeval{\ListeExerciceslen}=1\relax{} \setKVdefault[ClesExercices]{Numerote=false} @@ -3143,27 +3349,34 @@ }% }% +\NewDocumentCommand\PfMFontDys{}{}% +\NewDocumentCommand\PfMFontNonDys{}{}% + \NewDocumentCommand\PfMBasculeDys{}{% \ifboolKV[Boulot]{Dys}{% - % d'après \url{https://culturedys.com/quelle-est-la-meilleure-police-pour-les-dyslexiques/} - \xdef\PfMTaillePointDys{\useKV[Boulot]{Taille}} + % d'après \url{https://culturedys.com/quelle-est-la-meilleure-police-pour-les-dyslexiques/} + \xdef\PfMTaillePointDys{\useKV[Boulot]{Taille}}% \fontsize{\PfMTaillePointDys}{\fpeval{\PfMTaillePointDys*1.2*1.5}}\selectfont% \raggedright% + \setlength{\spaceskip}{\PfMEcartSupInterMots+\fontdimen2\font}% + \PfMFontDys% }{% \ifnum\thePfMMaquette=1\relax% \else% - \ifnum\PfMFontSize=0\relax% - \fontsize{10}{\fpeval{1.2*10}}% - \else\ifnum\PfMFontSize=1\relax% - \fontsize{11}{\fpeval{1.2*11}}% - \else% - \fontsize{12}{\fpeval{1.2*12}}% - \fi% - \fi% + %\ifnum\PfMFontSize=0\relax% + % \fontsize{10}{\fpeval{1.2*10}}% + %\else\ifnum\PfMFontSize=1\relax% + % \fontsize{11}{\fpeval{1.2*11}}% + % \else% + % \fontsize{12}{\fpeval{1.2*12}}% + % \fi% + %\fi% + \fontsize{\fpeval{10+\PfMFontSize}}{\fpeval{1.2*(10+\PfMFontSize)}}% \selectfont% \renewcommand{\JustifyingParindent}{\parindent} \justifying% \fi% + \PfMFontNonDys% }% }% @@ -3181,6 +3394,30 @@ }% }% +%% Pour factoriser l'appel aux corrections dans l'environnement Maquette +\NewDocumentCommand\PfMPrepareCorrection{m}{% + \useKVdefault[Boulot]% + \setKV[Boulot]{#1}% + \if@Dyslexie% + \setKV[Boulot]{Dys}% + \fi% + \PfMBasculeDys% + \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \PfMChangerTailleCorrection% +}% + +\NewDocumentCommand\PfMAffichageCorrectionColonnes{}{% + \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% + \PfMAffichageCorrige% + \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% +}% + +\NewDocumentCommand\PfMAffichageEntrainementColonnes{}{% + \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% + \PfMAffichageEntrainement% + \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% +}% + %%%%%%%%%%%%%%% Debut Maquette %%%%%%% % Environnement englobant le tout. \makeatletter @@ -3196,7 +3433,7 @@ \stepcounter{PfMMaquette}% % options de boulot \IfHookExistsTF{env/Maquette/after}{\RemoveFromHook{env/Maquette/after}[*]}{}% - \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]}{}% + %\IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]}{}% % \AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}% \useKVdefault[Boulot]% \setKV[Boulot]{#1}% @@ -3209,74 +3446,123 @@ % Test \IfHookExistsTF{env/exercice/begin}{\RemoveFromHook{env/exercice/begin}[*]}{}% \IfHookExistsTF{env/Maquette/end}{\RemoveFromHook{env/Maquette/end}[*]}{}% - \ifboolKV[Boulot]{CAN}{% - \setKV[CAN]{#2}% - \ifboolKV[Boulot]{CorrigeSeul}{}{\TikzCAN}% - \PfMChangerTailleCorrection% - \setcounter{PfMCNNumQ}{0}% - \setlength{\PfMLargeurQuestion}{\useKV[CAN]{CoefQ}\linewidth}\setlength{\PfMLargeurReponse}{\useKV[CAN]{CoefR}\linewidth}\setlength{\PfMLargeurJury}{\useKV[CAN]{CoefJ}\linewidth}% - \let\exercice\ExoCANWrite\let\endexercice\endExoCANWrite% - \AddToHook{env/exercice/begin}{\setcounter{PfMAlea}{0}}% - \AddToHook{env/Maquette/end}{% - \xdef\PfMCANTotalExo{\thePfMExo}% - \ifboolKV[Boulot]{CorrigeSeul}{}{ - \setcounter{PfMExo}{0}% - \renewcommand{\arraystretch}{2}% - \begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}% - \hhline{~---}% - \multicolumn{1}{c|}{}&\cellcolor{gray!15}\centering Question&\cellcolor{gray!15}\centering Réponse&\cellcolor{gray!15}\centering\arraybackslash Jury\\% - \hline% - \endhead% - \xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{% - \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\ - \hline% - }% - \end{longtable}% - \renewcommand{\arraystretch}{1}% - }% - }% + \ifboolKV[Boulot]{OlympiadesAPMEP}{% + \setKV[OlympiadesAPMEP]{#2}%\TikzOlympiadesAPMEP% + \let\exercice\exerciceOlympiadesAPMEP\let\endexercice\endexerciceOlympiadesAPMEP% \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% - \TikzCANCor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% - }% - }{}% + \PfMPrepareCorrection{#1}% + \PfMAffichageCorrectionColonnes% + }% + }{}% + }{% + \ifboolKV[Boulot]{CAN}{% + \setKV[CAN]{#2}% + %\ifboolKV[Boulot]{CorrigeSeul}{}{\TikzCAN}% + \setcounter{PfMCNNumQ}{0}% + \setlength{\PfMLargeurQuestion}{\useKV[CAN]{CoefQ}\linewidth}\setlength{\PfMLargeurReponse}{\useKV[CAN]{CoefR}\linewidth}\setlength{\PfMLargeurJury}{\useKV[CAN]{CoefJ}\linewidth}% + \let\exercice\ExoCANWrite\let\endexercice\endExoCANWrite% + \AddToHook{env/exercice/begin}{\setcounter{PfMAlea}{0}}% + \AddToHook{env/Maquette/end}{% + \xdef\PfMAncienneGraine{\PfMChoisisGraineAlea{123456789}} + \xdef\PfMCANTotalExo{\thePfMExo}% + \setbox\PfMSauvegardeBox\vbox{% + \PfMGraineAlea{\thePfMMaquette} + \setcounter{PfMExo}{0}% + \renewcommand{\arraystretch}{2}% + \begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}% + \hhline{~---}% + \multicolumn{1}{c|}{}&\cellcolor{gray!15}\centering Question&\cellcolor{gray!15}\centering Réponse&\cellcolor{gray!15}\centering\arraybackslash Jury\\% + \hline% + \endhead% + \xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{% + \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\ + \hline% + }% + \end{longtable}% + \renewcommand{\arraystretch}{1}% + } + \ifboolKV[Boulot]{CorrigeInverse}{% + \PfMPrepareCorrection{#1}% + \TikzCANCor{#2}% + \PfMAffichageCorrectionColonnes% + \clearpage + \normalsize% + \TikzCAN% + \PfMGraineAlea{\thePfMMaquette}% + \setcounter{PfMCNNumQ}{0}% + \setcounter{PfMExo}{0}% + \renewcommand{\arraystretch}{2}% + \begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}% + \hhline{~---}% + \multicolumn{1}{c|}{}&\cellcolor{gray!15}\centering Question&\cellcolor{gray!15}\centering Réponse&\cellcolor{gray!15}\centering\arraybackslash Jury\\% + \hline% + \endhead% + \xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{% + \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\ + \hline% + }% + \end{longtable}% + \renewcommand{\arraystretch}{1}% + }{% + \PfMGraineAlea{\PfMAncienneGraine}% + \TikzCAN% + \setcounter{PfMCNNumQ}{0}% + \setcounter{PfMExo}{0}% + \renewcommand{\arraystretch}{2}% + \begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}% + \hhline{~---}% + \multicolumn{1}{c|}{}&\cellcolor{gray!15}\centering Question&\cellcolor{gray!15}\centering Réponse&\cellcolor{gray!15}\centering\arraybackslash Jury\\% + \hline% + \endhead% + \xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{% + \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\ + \hline% + }% + \end{longtable}% + \renewcommand{\arraystretch}{1}% + \ifboolKV[Boulot]{CorrigeFin}{\ifboolKV[Boulot]{CorrigeInverse}{}{\clearpage + \PfMPrepareCorrection{#1}% + \TikzCANCor{#2}% + \PfMAffichageCorrectionColonnes% + } + }{} + } + }% }{% - \ifboolKV[Boulot]{FdR}{% - \setKV[FdR]{#2}\TikzFdR% - \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR% + \ifboolKV[Boulot]{FdR}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \setKV[FdR]{#2}\TikzFdR% + } + \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR% + \ifboolKV[Boulot]{AvecEntrainement}{% + \AddToHook{env/Maquette/end}[Haltere]{% + \PfMAffichageEntrainementColonnes% + }% + }{}% \ifboolKV[Boulot]{CorrigeFin}{% - \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \AddToHook{env/Maquette/after}[Correction]{% + \PfMPrepareCorrection{#1}% \TikzFdRCor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMAffichageCorrectionColonnes }% }{}% }{% - \ifboolKV[Boulot]{Contrat}{% - \setKV[Contrat]{#2}\TikzContrat% - \let\exercice\exerciceContrat\let\endexercice\endexerciceContrat% + \ifboolKV[Boulot]{Contrat}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \setKV[Contrat]{#2}\TikzContrat% + } + \let\exercice\exerciceContrat\let\endexercice\endexerciceContrat% + \ifboolKV[Boulot]{AvecEntrainement}{% + \AddToHook{env/Maquette/end}[Haltere]{% + \PfMAffichageEntrainementColonnes% + }% + }{}% \ifboolKV[Boulot]{CorrigeFin}{% - \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% - \TikzContratCor{#2} - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \AddToHook{env/Maquette/after}[Correction]{% + \PfMPrepareCorrection{#1}% + \TikzContratCor{#2}% + \PfMAffichageCorrectionColonnes% }% }{}% }{% @@ -3286,14 +3572,9 @@ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche% \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \PfMPrepareCorrection{#1}% \TikzFicheCor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMAffichageCorrectionColonnes }% }{}% }{% @@ -3303,14 +3584,9 @@ \let\exercice\ExerciceRecapBrevet\let\endexercice\endExerciceRecapBrevet% \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \PfMPrepareCorrection{#1}% \TikzRecapBrevetCor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMAffichageCorrectionColonnes% }% }{}% }{% @@ -3321,54 +3597,50 @@ \ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}% \setcounter{PfMExo}{0}% \AtEndDocument{% - \Recapitulatif{#2}% + \Recapitulatif{#1}{#2}% }% }{% \ifboolKV[Boulot]{Parcours}{% - \setKV[Parcours]{#2}\TikzParcours% - \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \setKV[Parcours]{#2}\TikzParcours% + } + \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours% + \ifboolKV[Boulot]{AvecEntrainement}{% + \AddToHook{env/Maquette/end}[Haltere]{% + \PfMAffichageEntrainementColonnes% + }% + }{}% \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \PfMPrepareCorrection{#1}% \TikzParcoursCor{#2} - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMAffichageCorrectionColonnes }% }{}% }{% \ifboolKV[Boulot]{PdT}{% - \setKV[PdT]{#2}\TikzPdT% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \setKV[PdT]{#2}\TikzPdT% + } \let\exercice\exercicePdT\let\endexercice\endexercicePdT% \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \PfMPrepareCorrection{#1}% \TikzPdTCor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMAffichageCorrectionColonnes% }% }{}% }{% \ifboolKV[Boulot]{DM}{% - \setKV[DM]{#2}\TikzDM{}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \setKV[DM]{#2}\TikzDM% + } \let\exercice\exerciceDM\let\endexercice\endexerciceDM% \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \PfMPrepareCorrection{#1}% \TikzDMCor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMAffichageCorrectionColonnes% }% }{}% }{% @@ -3378,14 +3650,16 @@ \TikzFiche% }% \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche% + \ifboolKV[Boulot]{AvecEntrainement}{% + \AddToHook{env/Maquette/end}[Haltere]{% + \PfMAffichageEntrainementColonnes% + }% + }{}% \ifboolKV[Boulot]{CorrigeFin}{% \ifboolKV[Boulot]{CorrigeAll}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% - \TikzFicheCor{#2}% + \PfMPrepareCorrection{#1}% + \TikzFicheCor{#2}% \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{% \IfFileExists{\jobname-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{}% @@ -3409,6 +3683,9 @@ \useKVdefault[Boulot]% \setKV[Boulot]{#1}% %% + \if@Dyslexie + \setKV[Boulot]{Dys} + \fi \PfMBasculeDys% \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% \TikzFicheCor{#2}% @@ -3421,7 +3698,9 @@ }{}% }{% \ifboolKV[Boulot]{DS}{% - \setKV[DS]{#2}\TikzDS% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \setKV[DS]{#2}\TikzDS% + }% \let\exercice\exerciceDS\let\endexercice\endexerciceDS% \ifboolKV[Boulot]{BaremeComplet}{% \begin{center} @@ -3430,30 +3709,22 @@ }{}% \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% - \TikzDSCor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMPrepareCorrection{#1} + \TikzDSCor{#2}% + \PfMAffichageCorrectionColonnes% }% }{}% }{% \ifboolKV[Boulot]{IE}{% - \setKV[IE]{#2}\TikzIE% + \ifboolKV[Boulot]{CorrigeSeul}{}{% + \setKV[IE]{#2}\TikzIE% + } \let\exercice\exerciceDS\let\endexercice\endexerciceDS%On garde exerciceDS \ifboolKV[Boulot]{CorrigeFin}{% \AddToHook{env/Maquette/after}[Correction]{% - \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys% - \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \PfMPrepareCorrection{#1} \TikzIECor{#2}% - \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - \PfMAffichageCorrige% - \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + \PfMAffichageCorrectionColonnes }% }{}% }{% @@ -3480,7 +3751,8 @@ }% }% }% - }% +}% +}% }% }% }% |