summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profmaquette/latex/ProfMaquette.sty')
-rw-r--r--macros/latex/contrib/profmaquette/latex/ProfMaquette.sty635
1 files changed, 485 insertions, 150 deletions
diff --git a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
index c18029cbe4..d8fb448c6e 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{2023/06/04}%
+\def\filedate{2023/08/07}%
\let\PfMfiledate\filedate%
-\def\fileversion{0.15}%
+\def\fileversion{0.2}%
\let\PfMfileversion\fileversion%
\ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
@@ -15,33 +15,38 @@
\RequirePackage{xlop}
-\RequirePackage[most]{tcolorbox}
-\RequirePackage{varwidth}
+\RequirePackage{tcolorbox}
+\tcbuselibrary{breakable,external,fitting,hooks,magazine,poster,raster,skins,theorems,listings,listingsutf8}
+
\RequirePackage{xinttools}
\RequirePackage{listofitems}
\RequirePackage{array}
\RequirePackage{datatool}
+\RequirePackage{modulus}
+
%définition des clés
\RequirePackage{simplekv}
-\setKVdefault[Boulot]{Base=false,BaseHTML=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,ParcoursPerso=false,CorrigeApres=false,CorrigeFin=false,Brevet=false,BaremeComplet=false,BaremeGlobal=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é
-\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=Nairobi,Code={},NomExercice=Exercice}
-\setKVdefault[PdT]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe=Nairobi,Code={},NomExercice=Exercice}
-\setKVdefault[Parcours]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe=Nairobi,Code={},NomExercice=Exercice,Vertical=false}
-\setKVdefault[ParcoursPerso]{Fichier={}}
-\setKVdefault[IE]{Nom=\'Evaluation,Sujets=false,Theme={},Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false}
-\defKV[IE]{Sujet=\setKV[IE]{Sujets}}
-\setKVdefault[RecapBrevet]{Theme=Les nombres décimaux,Date=\today,Code={},NomExercice=Exercice}
+\setKVdefault[Boulot]{Cours=false,Base=false,BaseHTML=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,ParcoursPerso=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,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[PdT]{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}%
+\setKVdefault[ParcoursPerso]{Fichier={}}%
+\setKVdefault[IE]{Nom=\'Evaluation,Sujets=false,Theme={},Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false}%
+\defKV[IE]{Sujet=\setKV[IE]{Sujets}}%
+\setKVdefault[RecapBrevet]{Theme=Les nombres décimaux,Date=\today,Code={},NomExercice=Exercice}%
\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[ClesExercices]{PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,TitreExo=Exercice,PasCorrige=false,Direct=false,Pouce=false,Parcours=false}%
+ du Hainaut (Valenciennes),NomEleve=Albert Einstein,CR=false}%
+\setKVdefault[ClesExercices]{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,Background=white,Cadre=gray!50}%
\defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}%
\defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}%
\defKV[ClesExercices]{Competence=\setKV[ClesExercices]{AffichageCompetence}}%
-\defKV[ClesExercices]{Trajet=\setKV[ClesExercices]{Parcours}}
+\defKV[ClesExercices]{Trajet=\setKV[ClesExercices]{Parcours}}%
\setKVdefault[SchemaParcours]{Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=LightSteelBlue,Csv=false}%
% Definition de longueurs
\newlength\PfMLargeurSchemaParcours
@@ -52,6 +57,8 @@
%définition des compteurs
\newcounter{PfMExo}%Numéro des exercices
\setcounter{PfMExo}{0}%
+\newcounter{PfMExoSol}%Pour repérer les valeurs aléatoires construites automatiquement dans la solution
+\setcounter{PfMExoSol}{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
@@ -66,13 +73,15 @@
\setcounter{RetiensInd}{0}%
\newcounter{PfMNbLogo}%Pour décaler les logos sur la ligne haute de tcolorbox
\setcounter{PfMNbLogo}{0}%
-\newcounter{Maquette}%Pour compter le nombres de "travaux"
-\setcounter{Maquette}{0}%
+\newcounter{PfMMaquette}%Pour compter le nombres de "travaux"
+\setcounter{PfMMaquette}{0}%
+\newcounter{PfMSection}%Pour le barème et ne pas faire obstruction à section
+\setcounter{PfMSection}{0}%
\newcount\Orientation%Pour le schéma des parcours
% couleurs
\colorlet{PfMColCpt}{gray!50}
\colorlet{PfMColSrc}{gray!50}
-\colorlet{PfMCadreFiche}{gray!50}
+%\colorlet{PfMCadreFiche}{gray!50}
\colorlet{PfMCadreDM}{gray!85}
\colorlet{PfMCadreParcours}{gray!50}
% Définitions de commandes
@@ -82,14 +91,110 @@
\newcommand\PfMCompNA{NA}
\newcommand\PfMCompECA{ECA}
\newcommand\PfMCompA{A}
+% Pour la gestion de l'aléatoire
+% afin de permettre d'utiliser le même exercice.
+% Extraire des sommets
+\newcounter{PfMSommetcount}%
+\newcommand\ChoixSommet[2]{%
+ % #1 le nombre de sommets
+ % #2 le nom de base des commandes qui sauvegarde les noms
+ \xdef\CANSGFoo{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}%
+ \MelangeListe{\CANSGFoo}{#1}%
+ \ignoreemptyitems
+ \readlist*\PfMSommet{\faa}%
+ \reademptyitems
+ \xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
+ \setcounter{PfMSommetcount}{##1}
+ \expandafter\xdef\csname p\Alph{PfMSommetcount}\endcsname{\PfMSommet[##1]}%
+ \expandafter\xdef\csname #2\Alph{PfMExo}\alph{PfMSommetcount}\endcsname{\PfMSommet[##1]}%
+ }%
+}%
+%%%
+
+\ifdef{\VariableAlea}{%
+ \RenewDocumentCommand\VariableAlea{s m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{#3}}%
+ \expandafter\xdef\csname #2\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \xdef#2{\fpeval{#3}}%
+ }%
+ }%
+}{%
+ \NewDocumentCommand\VariableAlea{s m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{#3}}%
+ \expandafter\xdef\csname #2\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \xdef#2{\fpeval{#3}}%
+ }%
+ }%
+}%
+
+\ifdef{\ChoixAlea}{%
+ \RenewDocumentCommand\ChoixAlea{s o m m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \IfNoValueTF{#2}{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }%
+ }{%
+ \IfNoValueTF{#2}{%
+ \xdef#5{\fpeval{randint(#3,#4)}}%
+ }{%
+ \xdef#5{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ }%
+ }%
+ }%
+}{%
+ \NewDocumentCommand\ChoixAlea{s o m m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \IfNoValueTF{#2}{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }%
+ }{%
+ \IfNoValueTF{#2}{%
+ \xdef#5{\fpeval{randint(#3,#4)}}%
+ }{%
+ \xdef#5{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ }%
+ }%
+ }%
+}%
+
+\NewDocumentCommand\RestoreChoixAlea{m}{%
+ \stepcounter{PfMAlea}%
+ \expandafter\xdef\csname #1\endcsname{\csname valeur\Alph{PfMExoSol}\alph{PfMAlea}\endcsname}
+}%
+
+\NewDocumentCommand\RestoreSommet{mm}{%
+ % #1 le nombre de sommets
+ % #2 le nom de base utilisé lors de la création des sommets
+ \xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
+ \setcounter{PfMSommetcount}{##1}
+ \expandafter\xdef\csname p\Alph{PfMSommetcount}\endcsname{\csname #2\Alph{PfMExoSol}\alph{PfMSommetcount}\endcsname}
+ }%
+}%
+
% Définitions pour les compétences
\NewDocumentCommand\Competences{O{3}m}{%
- \setsepchar[*]{/*§}\ignoreemptyitems%
+ \setsepchar[*]{/}\ignoreemptyitems%
\readlist*\ListeCompetence{#2}
\ifnum#1=3\relax
\buildtabcompetences%
\else
- \Buildtabcompetences{#1}{\listlen\ListeCompetence[1]}%
+ \Buildtabcompetences{#1}{\ListeCompetencelen}%
\fi
}
@@ -106,13 +211,13 @@
\newlength\PfMLargeurComp
\def\Buildtabcompetences#1#2{%
- \setlength{\PfMLargeurComp}{\fpeval{0.85-0.05*#2}\linewidth}%
+ \setlength{\PfMLargeurComp}{\fpeval{0.85-0.05*#1}\linewidth-\fpeval{2*(#1-3)}\tabcolsep}%
\[\begin{tabular}{|p{\PfMLargeurComp}|*{#1}{>{\centering\arraybackslash}p{0.05\linewidth}|}}%
\cline{2-\fpeval{1+#1}}%
\multicolumn{1}{c|}{}\xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
- &\ListeCompetence[1,##1]}\\%
+ &\ListeCompetence[##1]}\\%
\hline%
- \xintFor* ##1 in {\xintSeq {2}{\ListeCompetencelen}}\do{\ListeCompetence[##1]%
+ \xintFor* ##1 in {\xintSeq {\fpeval{#1+1}}{\ListeCompetencelen}}\do{\ListeCompetence[##1]%
\xintFor* ##2 in {\xintSeq{1}{#1}}\do{&}%
\\\hline%
}%
@@ -126,6 +231,7 @@
\newwrite\verbatim@out
\def\SolutionWrite{%
+ \setcounter{PfMAlea}{0}%
\@bsphack
\immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.sol" %
\let\do\@makeother\dospecials
@@ -166,7 +272,7 @@
\def\endIndiceWrite{\immediate\closeout\verbatim@out\@esphack}
\makeatother
-\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak}
+\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}}
\def\endSolutionNow{\par\goodbreak}
\def\ReponseNow{\textbf{Réponse(s) de l'exercice --}\par\nopagebreak}
@@ -180,6 +286,11 @@
\NewDocumentEnvironment{Indice}{}{}{}%
\NewDocumentCommand\PfMChoixAffichageCorrection{}{%
+ \ifboolKV[Boulot]{CorrigeAll}{%
+ \let\Solution\SolutionWrite\let\endSolution\endSolutionWrite
+ \let\Reponse\ReponseWrite\let\endReponse\endReponseWrite
+ \let\Indice\IndiceWrite\let\endIndice\endIndiceWrite
+ }{%
\ifboolKV[Boulot]{ParcoursPerso}{%
\let\Solution\SolutionWritePP\let\endSolution\endSolutionWritePP
}{%
@@ -216,16 +327,23 @@
\fi
\fi
}%
+ }%
}%
\NewDocumentCommand\PfMChoixCorrection{}{%
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{0}
- \setcounter{RetiensInd}{0}
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
\ifboolKV[Boulot]{CorrigeFin}{%
- \setcounter{RetiensSol}{1}%
- \setcounter{RetiensRep}{0}%
- \setcounter{RetiensInd}{0}%
+% \ifboolKV[Boulot]{CorrigeAll}{%
+% \setcounter{RetiensSol}{1}%
+% \setcounter{RetiensRep}{1}%
+% \setcounter{RetiensInd}{1}%
+% }{%
+ \setcounter{RetiensSol}{1}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
+% }%
}{\ifboolKV[Boulot]{CorrigeApres}{%
\setcounter{RetiensSol}{1}%
\setcounter{RetiensRep}{0}%
@@ -233,18 +351,18 @@
}{}%
}%
\ifboolKV[ClesExercices]{PasCorrige}{%
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{0}
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
\setcounter{RetiensInd}{0}%
}{%
\ifboolKV[ClesExercices]{Direct}{%
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{1}
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{1}%
\setcounter{RetiensInd}{0}%
}{%
- \ifboolKV[ClesExercices]{Pouce}{
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{0}
+ \ifboolKV[ClesExercices]{Pouce}{%
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
\setcounter{RetiensInd}{1}%
}{}%
}%
@@ -253,6 +371,8 @@
\NewDocumentCommand\PfMAffichageCorrige{}{%
\xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \setcounter{PfMExoSol}{##1}%
+ \setcounter{PfMAlea}{0}%
\IfFileExists{\jobname-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ex##1.rep}{\textbf{Réponse(s) seule(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{%
\IfFileExists{\jobname-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}
}%
@@ -278,8 +398,8 @@
\ifboolKV[Boulot]{Fiche}{}{%
\immediate\write\@auxout{%
\string\opadd*{#1}%
- {total\the\c@section-\the\c@PfMExo}%
- {total\the\c@section-\the\c@PfMExo}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
\string\opcopy{\thePfMExo}{TotalExo}%
}%
\ifboolKV[ClesExercices]{BaremeDetaille}{%
@@ -405,7 +525,7 @@
font=\bfseries
]
at (frame.north east)
- {\footnotesize\sffamily \total{\the\c@section-\the\c@PfMExo}};
+ {\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};
}{}
}%
}%
@@ -415,7 +535,7 @@
\setcounter{PfMAlea}{0}%
\useKVdefault[ClesExercices]
\setKV[ClesExercices]{#1}
- \refstepcounter{section}
+ \refstepcounter{PfMSection}
\PfMChoixCorrection%
\refstepcounter{PfMExo}
\immediate\write\@auxout{%
@@ -423,12 +543,12 @@
}
\ifboolKV[ClesExercices]{BaremeTotal}{%
\immediate\write\@auxout{%
- \string\opcopy{0}{total\the\c@section-\the\c@PfMExo}%
+ \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}%
}}{}
\tcolorbox[%
BaseDM,
label is label,
- label=page-\theMaquette-\thePfMExo%
+ label=page-\thePfMMaquette-\thePfMExo%
]
}{%
\endtcolorbox%
@@ -448,16 +568,16 @@
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeExercicesPA{\csname Parcours#2\endcsname}
\reademptyitems%
- \xdef\PfCFooTestA{\ListeExercicesPA[1]}%
+ \xdef\PfMFooTestA{\ListeExercicesPA[1]}%
\ifnum\ListeExercicesPAlen>1\relax%
\xintFor* ##1 in{\xintSeq{2}{\ListeExercicesPAlen}}\do{%
- \xdef\PfCFooTestA{\PfCFooTestA,\ListeExercicesPA[##1]}%
+ \xdef\PfMFooTestA{\PfMFooTestA,\ListeExercicesPA[##1]}%
}%
\fi%
\ifboolKV[Parcours]{Vertical}{%
- \BuildParcoursTikzV{\ParcoursTotalExo}{\PfCFooTestA}%
+ \BuildParcoursTikzV{\ParcoursTotalExo}{\PfMFooTestA}%
}{%
- \BuildParcoursTikz{\ParcoursTotalExo}{\PfCFooTestA}%
+ \BuildParcoursTikz{\ParcoursTotalExo}{\PfMFooTestA}%
}%
}%
}%
@@ -479,7 +599,7 @@
\draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
}%
\foreachitem\compteur\in\ListeRetiens{%
- \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\theMaquette-\ListeRetiens[\compteurcnt]}};%
+ \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
}%
\end{tikzpicture}%
}%
@@ -507,7 +627,7 @@
\draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
}%
\foreachitem\compteur\in\ListeRetiens{%
- \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\theMaquette-\ListeRetiens[\compteurcnt]}};%
+ \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
}%
\end{tikzpicture}%
}%
@@ -542,7 +662,7 @@
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{ParcoursTotalExo}}%
@@ -559,7 +679,7 @@
\tcolorbox[%
tikzparcours,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -569,14 +689,16 @@
\setcounter{PfMNbLogo}{1}%
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
+ \colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
+ \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\tcolorbox[%
tikzfiche,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -585,7 +707,7 @@
\setcounter{PfMAlea}{0}%
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\immediate\write\@auxout{%
@@ -593,20 +715,33 @@
}
\ifboolKV[ClesExercices]{BaremeTotal}{%
\immediate\write\@auxout{%
- \string\opcopy{0}{total\the\c@section-\the\c@PfMExo}%
+ \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}%
}}{}
\tcolorbox[%
tikzds,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
\makeatother
%%% Recap Brevet
+%%% Style Brevet
+\tcbset{%
+ userbrevet/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userbrevetcor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
% Fiche Exercice Brevet
\newcommand\TikzRecapBrevet{%
-\begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+\begin{tcolorbox}[userbrevet]%
\Large\sffamily \useKV[RecapBrevet]{Theme}
\par{\tiny\useKV[RecapBrevet]{Code}}\hfill{\scriptsize\useKV[RecapBrevet]{Date}}
\end{tcolorbox}%
@@ -615,7 +750,7 @@
\newcommand\TikzRecapBrevetCor[1]{%
\clearpage
\setKV[RecapBrevet]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userbrevetcor]%
\Large\sffamily \useKV[RecapBrevet]{Theme} (Correction)
\par{\tiny\useKV[RecapBrevet]{Code}}\hfill{\scriptsize\useKV[RecapBrevet]{Date}}
\end{tcolorbox}%
@@ -626,18 +761,18 @@
\setcounter{PfMAlea}{0}%
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\ifboolKV[ClesExercices]{BaremeTotal}{%
\immediate\write\@auxout{%
- \string\opcopy{0}{total\the\c@section-\the\c@PfMExo}%
+ \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}%
}%
}{}%
\tcolorbox[%
tikzrecapbrevet,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -665,7 +800,7 @@
font=\bfseries%
]
at (frame.north east)%
- {\footnotesize\sffamily \total{\the\c@section-\the\c@PfMExo}};%
+ {\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};%
}%
}%
}%
@@ -728,8 +863,20 @@
}%
}%
+\tcbset{%
+ userpdt/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userpdtcor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
\NewDocumentCommand\TikzPdT{}{%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userpdt]%
\Large\sffamily \useKV[PdT]{Theme}\hfill\useKV[PdT]{Niveau} \useKV[PdT]{Classe}%
\par{\tiny\useKV[PdT]{Code}}\hfill{\scriptsize\useKV[PdT]{Date}}%
\end{tcolorbox}%
@@ -738,7 +885,7 @@
\NewDocumentCommand\TikzPdTCor{m}{%
\clearpage
\setKV[PdT]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userpdtcor]%
\Large\sffamily \useKV[PdT]{Theme} (Correction) \hfill\useKV[PdT]{Niveau} \useKV[PdT]{Classe}
\par{\tiny\useKV[PdT]{Code}}\hfill{\scriptsize\useKV[PdT]{Date}}
\end{tcolorbox}%
@@ -750,7 +897,7 @@
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\tcolorbox[%
@@ -845,10 +992,10 @@
]
at (frame.south east)
{\scriptsize\sffamily \useKV[ClesExercices]{Source}};
- }{}
- }
- }
-}
+ }{}%
+ }%
+ }%
+}%
\newenvironment{CRNote}{%
\tcolorbox[colback=white,height=2cm,title=NOTE,fonttitle=\color{black}\bfseries\sffamily,colbacktitle=white,enhanced,%
@@ -893,7 +1040,7 @@
\tcolorbox[%
tikzkholle,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -931,14 +1078,19 @@
%%%%%%%%% STyle Kholle%%%%%%%%%%
% Kholle
-\newcommand\TikzKholle{%
- \clearpage
- \begin{tcolorbox}[frame hidden,colback=white,enhanced,%
+\tcbset{%
+ userkholle/.style={%
+ frame hidden,colback=white,enhanced,%
borderline north={3pt}{0pt}{gray!85},
borderline north={2pt}{0.5pt}{gray!15},
borderline south={3pt}{0pt}{gray!85},
- borderline south={2pt}{0.5pt}{gray!15},
- ]%
+ borderline south={2pt}{0.5pt}{gray!15}
+ }%
+}%
+
+\newcommand\TikzKholle{%
+ \clearpage
+ \begin{tcolorbox}[userkholle]%
\sffamily Interrogation Orale \no\useKV[Kholle]{Numero}\hfill
\ifboolKV[Kholle]{CR}{}{Sujet \useKV[Kholle]{Sujet}\hfill}\useKV[Kholle]{Niveau}%
\par\useKV[Kholle]{Lieu}\hfill Le \useKV[Kholle]{Date}%
@@ -977,14 +1129,25 @@
}
%%%%%%%%%% Style DM%%%%%%%%%%%%%
-\NewDocumentCommand\TikzDM{}{%
- \clearpage%
- \begin{tcolorbox}[frame hidden,colback=white,enhanced,%
+\tcbset{%
+ userdm/.style={%
+ frame hidden,colback=white,enhanced,%
borderline north={3pt}{0pt}{gray!85},%
borderline north={2pt}{0.5pt}{gray!15},%
borderline south={3pt}{0pt}{gray!85},%
- borderline south={2pt}{0.5pt}{gray!15},%
- ]%
+ borderline south={2pt}{0.5pt}{gray!15}%
+ }%
+}%
+
+\tcbset{%
+ userdmcor/.style={%
+ colback=gray!5%
+ }%
+}%
+
+\NewDocumentCommand\TikzDM{}{%
+ \clearpage%
+ \begin{tcolorbox}[userdm]%
\sffamily Devoir en temps libre \useKV[DM]{Numero}\hfill\useKV[DM]{Niveau} \useKV[DM]{Classe}%\no
\par{\tiny\useKV[DM]{Code}}\hfill{\scriptsize Pour le \useKV[DM]{Date}}%
\end{tcolorbox}%
@@ -1012,9 +1175,68 @@
]%
\end{tcolorbox}%
}
-%%%%%%Style Fiche
+%%% Style Cours
+\tcbset{
+ usercours/.style={
+ enhanced,
+ skin=enhancedlast jigsaw,
+ attach boxed title to top left={xshift=-4mm,yshift=-0.5mm},
+ fonttitle=\bfseries\sffamily,
+ colbacktitle=blue!45,
+ colframe=red!50!black,
+ interior style={
+ top color=blue!10,
+ bottom color=red!10
+ },
+ boxed title style={
+ empty,
+ arc=0pt,
+ outer arc=0pt,
+ boxrule=0pt
+ },
+ underlay boxed title={
+ \fill[blue!45!white]
+ (title.north west) --
+ (title.north east) --
+ +(\tcboxedtitleheight-1mm,-\tcboxedtitleheight+1mm) --
+ ([xshift=4mm,yshift=0.5mm]frame.north east) --
+ +(0mm,-1mm) --
+ (title.south west) -- cycle;
+ \fill[blue!45!white!50!black]
+ ([yshift=-0.5mm]frame.north west) --
+ +(-0.4,0) --
+ +(0,-0.3) -- cycle;
+ \fill[blue!45!white!50!black]
+ ([yshift=-0.5mm]frame.north east) --
+ +(0,-0.3) --
+ +(0.4,0) -- cycle;
+ },
+ title={\useKV[Cours]{Theme}},
+}
+}
+
+\NewDocumentCommand\TikzCours{}{%
+ \begin{tcolorbox}[usercours]%
+% \Large\sffamily\bfseries Cours : \useKV[Fiche]{Theme}%
+% \useKV[Fiche]{Niveau}~\useKV[Fiche]{Classe}\hfill{\scriptsize\useKV[Fiche]{Date}}%
+ \end{tcolorbox}%
+}
+
+%%%%%% Style Fiche
+\tcbset{%
+ userfiche/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userfichecor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
\NewDocumentCommand\TikzFiche{}{%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userfiche]%
\Large\sffamily \useKV[Fiche]{Theme}\hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}%
\par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}%
\end{tcolorbox}%
@@ -1023,35 +1245,54 @@
\NewDocumentCommand\TikzFicheCor{m}{%
\clearpage
\setKV[Fiche]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userfichecor]%
\Large\sffamily \useKV[Fiche]{Theme} (Correction) \hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}
\par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}
\end{tcolorbox}%
}
+\NewDocumentCommand\TikzFicheCorRep{m}{%
+ \clearpage
+ \setKV[Fiche]{#1}%
+ \begin{tcolorbox}[userfichecor]%
+ \Large\sffamily \useKV[Fiche]{Theme} (Réponses) \hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}
+ \par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}
+ \end{tcolorbox}%
+}
+
+\NewDocumentCommand\TikzFicheCorInd{m}{%
+ \clearpage
+ \setKV[Fiche]{#1}%
+ \begin{tcolorbox}[userfichecor]%
+ \Large\sffamily \useKV[Fiche]{Theme} (Indices) \hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}
+ \par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}
+ \end{tcolorbox}%
+}
+
+\makeatletter
\tcbset{%
tikzfiche/.style={%
before skip=1em,
enhanced,
breakable,
- colback=white,
+ colback=ColExoFiche,
colframe=PfMCadreFiche,
overlay unbroken and first={%
\node[%
name=A,
- fill=white,
+ fill=ColExoFiche,
anchor=west,
- xshift=10pt,
+ xshift=\kvtcb@leftlower,
] at (frame.north west){\bfseries\sffamily \useKV[Fiche]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
%%
- \ifboolKV[ClesExercices]{Calculatrice}{}{\node[fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\cancel{\faCalculator}};\stepcounter{PfMNbLogo}}
- \ifboolKV[ClesExercices]{Oral}{\node[fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\faBullhorn};\stepcounter{PfMNbLogo}}{}
+ \ifboolKV[ClesExercices]{Calculatrice}{}{\node[fill=ColExoFiche,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\cancel{\faCalculator}};\stepcounter{PfMNbLogo}}
+ \ifboolKV[ClesExercices]{Oral}{\node[fill=ColExoFiche,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\faBullhorn};\stepcounter{PfMNbLogo}}{}
%%
\ifboolKV[ClesExercices]{AffichageCompetence}{%
\node[%
- fill=white,
+ fill=ColExoFiche,
anchor=east,
- xshift=-10pt,
+ xshift=-\kvtcb@rightlower,
text=PfMColCpt,%
]
at (frame.north east)
@@ -1060,9 +1301,9 @@
%%
\ifboolKV[ClesExercices]{AffichageSource}{%
\node[%
- fill=white,
+ fill=ColExoFiche,
anchor=east,
- xshift=-10pt,
+ xshift=-\kvtcb@rightlower,
text=PfMColSrc,
]
at (frame.south east)
@@ -1071,9 +1312,22 @@
}%
}%
}%
+\makeatother
%%% Parcours %%%
+\tcbset{%
+ userparcours/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userparcourscor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
\NewDocumentCommand\TikzParcours{}{%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userparcours]%
\Large\sffamily \useKV[Parcours]{Theme}\hfill\useKV[Parcours]{Niveau} \useKV[Parcours]{Classe}%
\par{\tiny\useKV[Parcours]{Code}}\hfill{\scriptsize\useKV[Parcours]{Date}}%
\end{tcolorbox}%
@@ -1082,7 +1336,7 @@
\NewDocumentCommand\TikzParcoursCor{m}{%
\clearpage
\setKV[Parcours]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userparcourscor]%
\Large\sffamily \useKV[Parcours]{Theme} (Correction) \hfill\useKV[Parcours]{Niveau} \useKV[Parcours]{Classe}
\par{\tiny\useKV[Parcours]{Code}}\hfill{\scriptsize\useKV[Parcours]{Date}}
\end{tcolorbox}%
@@ -1132,14 +1386,26 @@
}%
%% Fin Parcours %%%
%%% DS %%%
-\newcommand\TikzDS{%
- \clearpage
- \begin{tcolorbox}[colback=gray!5,%
+\tcbset{%
+ userds/.style={%
+ colback=gray!5,%
enhanced,%
overlay unbroken and first={%
\node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[DS]{Calculatrice}{autorisée}{interdite} --};
- }
- ]%
+ }%
+ }%
+}%
+
+\tcbset{%
+ userdscor/.style={%
+ colback=gray!5%
+ }%
+}%
+
+
+\newcommand\TikzDS{%
+ \clearpage
+ \begin{tcolorbox}[userds]%
\sffamily Devoir surveillé \no\useKV[DS]{Numero} (Sujet \useKV[DS]{Sujet})\hfill\useKV[DS]{Niveau} \useKV[DS]{Classe}
\par{\tiny\useKV[DS]{Code}}\hfill{\scriptsize\useKV[DS]{Date}}
\end{tcolorbox}%
@@ -1148,7 +1414,7 @@
\newcommand\TikzDSCor[1]{%
\clearpage
\setKV[DS]{#1}
- \begin{tcolorbox}[colback=gray!5]%
+ \begin{tcolorbox}[userdscor]%
\sffamily Devoir surveillé \no\useKV[DS]{Numero} (Sujet \useKV[DS]{Sujet})\hfill\useKV[DS]{Niveau} \useKV[DS]{Classe}%
\par Correction%
\end{tcolorbox}%
@@ -1201,22 +1467,38 @@
font=\bfseries
]
at (frame.north east)
- {\footnotesize\sffamily \total{\the\c@section-\the\c@PfMExo}};
+ {\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};
}{}
}%
}%
}%
\makeatother
-%Interrogations écrites
+% Interrogations écrites
+\tcbset{%
+ userie/.style={%
+ colback=gray!5,
+ enhanced,%
+ overlay unbroken and first={%
+ \node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[IE]{Calculatrice}{autorisée}{interdite} --};
+ }%
+ }%
+}%
+
+\tcbset{%
+ useriecor/.style={%
+ colback=gray!5,
+ enhanced,%
+ overlay unbroken and first={%
+ \node[yshift=1em] at (frame.south) {
+ \scriptsize\sffamily-- Calculatrice \ifboolKV[DS]{Calculatrice}{autorisée}{interdite} --
+ };%
+ }%
+ }%
+}%
\newcommand\TikzIE{%
\clearpage
\begin{minipage}{0.6\linewidth}
- \begin{tcolorbox}[colback=gray!5,
- enhanced,%
- overlay unbroken and first={%
- \node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[IE]{Calculatrice}{autorisée}{interdite} --};
- }
- ]%
+ \begin{tcolorbox}[userie]%
\sffamily \useKV[IE]{Nom} \no\useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{\scriptsize(Sujet \useKV[IE]{Sujet})}{}
\vspace{1em}
\par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[IE]{Date}}
@@ -1224,24 +1506,19 @@
\end{minipage}\hfill\begin{minipage}{0.35\linewidth}
Nom : \PfMIENom\\[0.5em]
Prénom : \PfMIEPrenom\\[0.5em]
- Classe : \PfMIEClasse
- \end{minipage}
- \par\bigskip
-}
+ Classe : \PfMIEClasse%
+ \end{minipage}%
+ \par\bigskip%
+}%
\newcommand\TikzIECor[1]{%
- \clearpage
- \setKV[IE]{#1}
- \begin{tcolorbox}[colback=gray!5,
- enhanced,%
- overlay unbroken and first={%
- \node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[DS]{Calculatrice}{autorisée}{interdite} --};
- }
- ]%
+ \clearpage%
+ \setKV[IE]{#1}%
+ \begin{tcolorbox}[useriecor]%
\sffamily \useKV[IE]{Nom} \no\useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{\scriptsize(Sujet \useKV[IE]{Sujet})}{}\hfill Correction%
- \par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[DS]{Date}}
+ \par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[DS]{Date}}%
\end{tcolorbox}%
-}
+}%
\NewDocumentCommand\Recapitulatif{m}{%
\DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{%
@@ -1250,8 +1527,17 @@
\foreach\i in{1,...,\ListeExerciceslen}{%
\begin{exercice}%
\input{\jobname-PPEx\ListeExercices[\i].tex}%
- \end{exercice}%
+ \end{exercice}%
+ }
+ \ifnum\thePfMCorrigeParcoursPerso=1\relax%
+ % \RecapitulatifCorrection{#2}%
+ \clearpage
+ \TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
+ \readlist*\ListeExercices{\RecapListeExo}%
+ \foreach\i in{1,...,\ListeExerciceslen}{%
+ \textbf{Corrigé de l'exercice \i} : \input{\jobname-PPEx\ListeExercices[\i].sol}\par\goodbreak%
}%
+ \fi
\end{Maquette}%
}%
}%
@@ -1271,11 +1557,15 @@
% Environnement englobant le tout.
%\makeatletter
\NewDocumentEnvironment{Maquette}{om}{%
+ % on remet à zéro les compteurs de solutions : inutile ?
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
% on remet à zéro le compteur des exercices
\setcounter{PfMExo}{0}%
\setcounter{PfMSOS}{0}%
% nouvelles valeurs.
- \stepcounter{Maquette}%
+ \stepcounter{PfMMaquette}%
% options de boulot
\IfHookExistsTF{env/Maquette/after}{\RemoveFromHook{env/Maquette/after}[*]}{}%
\IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]}{}%
@@ -1283,10 +1573,23 @@
\useKVdefault[Boulot]%
\setKV[Boulot]{#1}%
\IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}%
+ \ifboolKV[Boulot]{Cours}{%
+ \setKV[Cours]{#2}%
+ \TikzCours%
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
+ %\let\Exercice\exerciceFiche\let\endExercice\endexerciceFiche%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \TikzFicheCor{#2}%
+ \PfMAffichageCorrige%
+ }%
+ }{}%
+ }{%
\ifboolKV[Boulot]{RecapBrevet}{%
\setKV[RecapBrevet]{#2}%
\TikzRecapBrevet%
\let\exercice\ExerciceRecapBrevet\let\endexercice\endExerciceRecapBrevet%
+ %\let\Exercice\ExerciceRecapBrevet\let\endExercice\endExerciceRecapBrevet%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzRecapBrevetCor{#2}%
@@ -1297,29 +1600,29 @@
\ifboolKV[Boulot]{ParcoursPerso}{%
\setKV[ParcoursPerso]{#2}%
\DTLloaddb[noheader,keys={PrenomEleve,NomEleve,ListeExo}]{dataperso}{\useKV[ParcoursPerso]{Fichier}.csv}%
- \let\exercice\exerciceParcoursPerso%
- \let\endexercice\endexerciceParcoursPerso%
+ \let\exercice\exerciceParcoursPerso\let\endexercice\endexerciceParcoursPerso%
+ %\let\Exercice\exerciceParcoursPerso\let\endExercice\endexerciceParcoursPerso%
\ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}%
\setcounter{PfMExo}{0}%
\AtEndDocument{%
\Recapitulatif{#2}%
- \ifnum\thePfMCorrigeParcoursPerso=1\relax%
- \RecapitulatifCorrection{#2}%
- \fi
}%
}{%
\ifboolKV[Boulot]{Parcours}{%
\setKV[Parcours]{#2}\TikzParcours%
- \let\exercice\exerciceParcours%
- \let\endexercice\endexerciceParcours%
+ \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours%
+ %\let\Exercice\exerciceParcours\let\endExercice\endexerciceParcours%
\ifboolKV[Boulot]{CorrigeFin}{%
- \PfMAffichageCorrige%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \TikzParcoursCor{#2}
+ \PfMAffichageCorrige%
+ }%
}{}%
}{%
\ifboolKV[Boulot]{PdT}{%
\setKV[PdT]{#2}\TikzPdT%
- \let\exercice\exercicePdT
- \let\endexercice\endexercicePdT%
+ \let\exercice\exercicePdT\let\endexercice\endexercicePdT%
+ %\let\Exercice\exercicePdT\let\endExercice\endexercicePdT%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzPdTCor{#2}%
@@ -1329,8 +1632,8 @@
}{
\ifboolKV[Boulot]{DM}{%
\setKV[DM]{#2}\TikzDM%
- \let\exercice\exerciceDM
- \let\endexercice\endexerciceDM%
+ \let\exercice\exerciceDM\let\endexercice\endexerciceDM%
+ %\let\Exercice\exerciceDM\let\endExercice\endexerciceDM%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzDMCor{#2}%
@@ -1339,20 +1642,50 @@
}{}%
}{%
\ifboolKV[Boulot]{Fiche}{%
- \setKV[Fiche]{#2}\TikzFiche%
- \let\exercice\exerciceFiche
- \let\endexercice\endexerciceFiche%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \TikzFicheCor{#2}%
- \PfMAffichageCorrige%
- }%
+ \setKV[Fiche]{#2}%
+ \TikzFiche
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
+ %\let\Exercice\exerciceFiche\let\endExercice\endexerciceFiche%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeAll}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \setKV[Boulot]{#1}%
+ \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \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}{}
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorRep{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ex##1.rep}{\textbf{Réponse(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{}
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorInd{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \setKV[Boulot]{#1}%
+ \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \TikzFicheCor{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \PfMAffichageCorrige%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }%
}{}%
}{%
\ifboolKV[Boulot]{DS}{%
\setKV[DS]{#2}\TikzDS%
- \let\exercice\exerciceDS
- \let\endexercice\endexerciceDS%
+ \let\exercice\exerciceDS\let\endexercice\endexerciceDS%
+% \let\Exercice\exerciceDS\let\endExercice\endexerciceDS%
\ifboolKV[Boulot]{BaremeComplet}{%
\begin{center}
\TableauRecapitulatif
@@ -1368,6 +1701,7 @@
\ifboolKV[Boulot]{IE}{%
\setKV[IE]{#2}\TikzIE%
\let\exercice\exerciceDS\let\endexercice\endexerciceDS%On garde exerciceDS
+ % \let\Exercice\exerciceDS\let\endExercice\endexerciceDS%On garde exerciceDS
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzIECor{#2}%
@@ -1397,12 +1731,13 @@
}%
}%
}%
+ }%
}%
}{}%
%\makeatother
%D'après JCC
-% pour gérer les nombres pseudo-aléatoires
+% Package pour gérer les nombres pseudo-aléatoires
\makeatletter
\input{random}
@@ -1488,7 +1823,7 @@
% Lancement de la lecture récursive de la liste
\expandafter\RL@extract#1,\@nil,%
% On met la valeur extraite dans la macro prévue
- \xdef#3{\RL@return}%cp a remplacé edef par xdef
+ \edef#3{\RL@return}%cp a remplacé edef par xdef
% La liste est celle sans l'élément extrait
\let#1\RL@temp
\fi