texlive[70945] Master/texmf-dist: profmaquette (14apr24)

commits+karl at tug.org commits+karl at tug.org
Sun Apr 14 21:46:05 CEST 2024


Revision: 70945
          https://tug.org/svn/texlive?view=revision&revision=70945
Author:   karl
Date:     2024-04-14 21:46:05 +0200 (Sun, 14 Apr 2024)
Log Message:
-----------
profmaquette (14apr24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.pdf
    trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.zip
    trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty

Modified: trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.zip
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty	2024-04-14 19:45:52 UTC (rev 70944)
+++ trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty	2024-04-14 19:46:05 UTC (rev 70945)
@@ -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/04/13}%
 \let\PfMfiledate\filedate%
-\def\fileversion{0.90}%
+\def\fileversion{0.91}%
 \let\PfMfileversion\fileversion%
 
 \ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
@@ -33,7 +33,6 @@
 
 \RequirePackage{modulus}%
 
-% mettre un option Dys
 \RequirePackage{ragged2e}%
 
 \makeatletter
@@ -41,7 +40,7 @@
 \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,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,VersSolution=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}%
@@ -108,12 +107,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}%
@@ -196,13 +197,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
@@ -1025,7 +1027,7 @@
     \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,8 +1035,8 @@
       \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%
@@ -1207,8 +1209,8 @@
     colback=LightSteelBlue,
     colbacklower=white,
     frame hidden,
-  }
-}
+  }%
+}%
 
 \tcbset{%
   tikzbasehtml/.style={%
@@ -1265,7 +1267,7 @@
   }%
 }%
 
-\NewDocumentEnvironment{exerciceDM}{so}{%
+\NewDocumentEnvironment{exerciceDM}{so+b}{%
   \setcounter{PfMAlea}{0}%
   \useKVdefault[ClesExercices]%
   \setKV[ClesExercices]{#2}%
@@ -1280,6 +1282,7 @@
   \refstepcounter{PfMSection}%
   \PfMChoixCorrection%
   \refstepcounter{PfMExo}%
+  \ifboolKV[Boulot]{CorrigeSeul}{}{%
   \PfMChoixTitreSolution%
   \immediate\write\@auxout{%
     \string\opcopy{\thePfMExo}{TotalExo}%
@@ -1294,11 +1297,17 @@
   label=page-\thePfMMaquette-\thePfMExo,%
   ]%
   \ifboolKV[Boulot]{Dys}{\raggedright}{}%
-  }
+  #3
+}%
+}%
 }{%
+  \ifboolKV[ClesExercices]{NonUtilise}{}{%
+            \ifboolKV[Boulot]{CorrigeSeul}{}{
   \end{tcolorbox}%
   \PfMApresLesExercices%
 }%
+}%
+}%
 
 %%Contrat
 
@@ -1421,16 +1430,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 +1447,7 @@
   \refstepcounter{PfMSection}%
   \PfMChoixCorrection%
   \refstepcounter{PfMExo}%
+  \ifboolKV[Boulot]{CorrigeSeul}{}{%
   \PfMChoixTitreSolution%
   \immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ContratTotalExo}}%
   % Creation des parcours
@@ -1457,10 +1467,16 @@
     label=page-\thePfMMaquette-\thePfMExo
     ]
     \ifboolKV[Boulot]{Dys}{\raggedright}{}%
+    #3
   }%
+  }%
 }{%
-  \end{tcolorbox}
-  \PfMApresLesExercices%
+  \ifboolKV[ClesExercices]{NonUtilise}{}{%
+      \ifboolKV[Boulot]{CorrigeSeul}{}{%
+    \end{tcolorbox}
+    \PfMApresLesExercices%
+  }%
+  }%
 }%
 
 %%% Contrat %%%
@@ -1767,7 +1783,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 +1800,7 @@
   \stepcounter{PfMSection}%
   \PfMChoixCorrection%
   \refstepcounter{PfMExo}%
+  \ifboolKV[Boulot]{CorrigeSeul}{}{%
   \PfMChoixTitreSolution%
   \immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-FdRTotalExo}}%
   % Creation des parcours
@@ -1816,11 +1833,17 @@
     label=page-\thePfMMaquette-\thePfMExo
     ]
     \ifboolKV[Boulot]{Dys}{\raggedright}{}%
+    #3
   }%
+  }%
 }{%
+  \ifboolKV[ClesExercices]{NonUtilise}{}{%
+      \ifboolKV[Boulot]{CorrigeSeul}{}{%
   \end{tcolorbox}
   \PfMApresLesExercices%
 }%
+}%
+}%
 
 %CAN
 \setsepchar[*]{,*/}%
@@ -1989,9 +2012,8 @@
 }%
 %% Fin FdR %%%
 
+%% Parcours
 
-%%Parcours
-
 %\makeatletter
 \NewDocumentCommand\AfficheParcours{om}{%
   \useKVdefault[SchemaParcours]%
@@ -2100,7 +2122,7 @@
 
 \def\endexerciceParcoursPerso{\immediate\write\verbatim at out{\string\end{exercice}}\immediate\closeout\verbatim at out\@esphack}%
   
-\NewDocumentEnvironment{exerciceParcours}{so}{%
+\NewDocumentEnvironment{exerciceParcours}{so+b}{%
   \setcounter{PfMAlea}{0}%
   \setcounter{PfMNbLogo}{1}%
   \useKVdefault[ClesExercices]%
@@ -2117,6 +2139,7 @@
   \refstepcounter{PfMSection}%
   \PfMChoixCorrection%
   \refstepcounter{PfMExo}%
+  \ifboolKV[Boulot]{CorrigeSeul}{}{%
   \PfMChoixTitreSolution%
   \immediate\write\@auxout{\string\opcopy{\thePfMExo}{\Roman{PfMMaquette}-ParcoursTotalExo}}%
   % Creation des parcours
@@ -2136,11 +2159,17 @@
     label=page-\thePfMMaquette-\thePfMExo
     ]
     \ifboolKV[Boulot]{Dys}{\raggedright}{}%
-  }
+    #3
+  }%
+  }%
 }{%
+  \ifboolKV[ClesExercices]{NonUtilise}{}{%
+        \ifboolKV[Boulot]{CorrigeSeul}{}{%
   \end{tcolorbox}
   \PfMApresLesExercices%
 }%
+}%
+}%
 
 %%%%%%%%%%%%%%%%%%%%%%%
 % Pour encart
@@ -2232,9 +2261,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 +2278,7 @@
   \fi%
 }%
 
-\NewDocumentEnvironment{exerciceFiche}{so}{%
+\NewDocumentEnvironment{exerciceFiche}{so+b}{%
   \setcounter{PfMAlea}{0}%
   \setcounter{PfMNbLogo}{1}%
   \useKVdefault[ClesExercices]%
@@ -2278,10 +2307,53 @@
       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}{}%
+      }%
+    }%
+  }{%
+    \ifboolKV[ClesExercices]{NonUtilise}{}{%
   \end{tcolorbox}%
   \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
   \PfMApresLesExercices%
@@ -2288,7 +2360,7 @@
   }
 }%
 
-\NewDocumentEnvironment{exerciceDS}{so}{%
+\NewDocumentEnvironment{exerciceDS}{so+b}{%
   \setcounter{PfMAlea}{0}%
   \useKVdefault[ClesExercices]%
   \setKV[ClesExercices]{#2}%
@@ -2297,31 +2369,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 at PfMSection-\the\c at 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 at PfMSection-\the\c at PfMExo}%
+        }}{}
+      \begin{tcolorbox}[%
+        tikzds,
+        label is label,
+        label=page-\thePfMMaquette-\thePfMExo
+        ]
+        \ifboolKV[Boulot]{Dys}{\raggedright}{}%
+        #3
+      }%
+    }%
+}{%
+  \ifboolKV[ClesExercices]{NonUtilise}{}{%
+    \ifboolKV[Boulot]{CorrigeSeul}{}{%
+      \end{tcolorbox}%
+      \PfMApresLesExercices%
+    }%
   }%
-}{%
-  \end{tcolorbox}%
-  \PfMApresLesExercices%
 }%
 
 \NewDocumentEnvironment{ExerciceRecapBrevet}{so}{%
@@ -2371,10 +2450,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 +2745,7 @@
 
 %Alias pour tous les exercices.
 \NewDocumentEnvironment{exercice}{}{}{}%
+\NewDocumentEnvironment{Exercice}{}{}{}%
 
 %%%%%%%%% STyle Kholle%%%%%%%%%%
 % Kholle
@@ -2903,6 +2983,38 @@
   }%
 }%
 \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 at 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
+    }%
+  }%
+}%
+\makeatother
 %%% Parcours %%%
 \tcbset{%
   userparcours/.style={%
@@ -3098,9 +3210,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,12 +3260,17 @@
   }%
 }%
 
+\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%
@@ -3164,6 +3286,7 @@
       \renewcommand{\JustifyingParindent}{\parindent}
       \justifying%
     \fi%
+    \PfMFontNonDys%
   }%
 }%
 
@@ -3181,6 +3304,23 @@
   }%
 }%
 
+%% Pour factoriser l'appel aux corrections dans l'environnement Maquette
+\NewDocumentCommand\PfMPrepareCorrection{m}{%
+  \useKVdefault[Boulot]%
+  \setKV[Boulot]{#1}%
+  \if at Dyslexie%
+    \setKV[Boulot]{Dys}%
+  \fi%
+  \PfMBasculeDys%
+  \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+}%
+
+\NewDocumentCommand\PfMAffichageCorrectionColonnes{}{%
+  \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+  \PfMAffichageCorrige%
+  \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+}%
+
 %%%%%%%%%%%%%%% Debut Maquette %%%%%%%
 % Environnement englobant le tout.
 \makeatletter
@@ -3209,6 +3349,28 @@
   % Test
   \IfHookExistsTF{env/exercice/begin}{\RemoveFromHook{env/exercice/begin}[*]}{}%
   \IfHookExistsTF{env/Maquette/end}{\RemoveFromHook{env/Maquette/end}[*]}{}%
+  \ifboolKV[Boulot]{OlympiadesAPMEP}{%
+      \setKV[OlympiadesAPMEP]{#2}%\TikzOlympiadesAPMEP%
+      \let\exercice\exerciceOlympiadesAPMEP\let\endexercice\endexerciceOlympiadesAPMEP%
+      \ifboolKV[Boulot]{CorrigeFin}{%
+          \AddToHook{env/Maquette/after}[Correction]{%
+            \PfMPrepareCorrection{#1}%
+%            \useKVdefault[Boulot]%
+%            \setKV[Boulot]{#1}%
+%            \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%            \PfMBasculeDys%
+%            \clearpage
+%            \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+%            \TikzOlympiadesAPMEPCor{#2}%
+%            \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%            \PfMAffichageCorrige%
+%            \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+            \PfMAffichageCorrectionColonnes%
+          }%
+        }{}%
+      }{%
   \ifboolKV[Boulot]{CAN}{%
       \setKV[CAN]{#2}%
       \ifboolKV[Boulot]{CorrigeSeul}{}{\TikzCAN}%
@@ -3237,46 +3399,65 @@
     }%
       \ifboolKV[Boulot]{CorrigeFin}{%
           \AddToHook{env/Maquette/after}[Correction]{%
-            \useKVdefault[Boulot]%
-            \setKV[Boulot]{#1}%
-            \PfMBasculeDys%
-            \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+            \PfMPrepareCorrection{#1}%
+%            \useKVdefault[Boulot]%
+%            \setKV[Boulot]{#1}%
+%            \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%            \PfMBasculeDys%
+%            \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
             \TikzCANCor{#2}%
-            \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-            \PfMAffichageCorrige%
-            \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+%            \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%            \PfMAffichageCorrige%
+%            \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+            \PfMAffichageCorrectionColonnes%
         }%
       }{}%
     }{%
-  \ifboolKV[Boulot]{FdR}{%
-      \setKV[FdR]{#2}\TikzFdR%
+      \ifboolKV[Boulot]{FdR}{%
+                          \ifboolKV[Boulot]{CorrigeSeul}{}{%
+                              \setKV[FdR]{#2}\TikzFdR%
+                            }
       \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR%
       \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}%
+%          \useKVdefault[Boulot]%
+%          \setKV[Boulot]{#1}%
+%          \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%          \PfMBasculeDys%
+%          \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
           \TikzFdRCor{#2}%
-          \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-          \PfMAffichageCorrige%
-          \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+%          \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%          \PfMAffichageCorrige%
+%          \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+          \PfMAffichageCorrectionColonnes
         }%
       }{}%
    }{%
-  \ifboolKV[Boulot]{Contrat}{%
-      \setKV[Contrat]{#2}\TikzContrat%
+     \ifboolKV[Boulot]{Contrat}{%
+                         \ifboolKV[Boulot]{CorrigeSeul}{}{%
+                             \setKV[Contrat]{#2}\TikzContrat%
+                             }
       \let\exercice\exerciceContrat\let\endexercice\endexerciceContrat%
       \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}%
+%          \useKVdefault[Boulot]%
+%          \setKV[Boulot]{#1}%
+%          \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%          \PfMBasculeDys%
+%          \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+          \TikzContratCor{#2}%
+%          \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%          \PfMAffichageCorrige%
+%          \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+          \PfMAffichageCorrectionColonnes%
         }%
       }{}%
    }{%
@@ -3286,14 +3467,19 @@
     \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}%
+%          \useKVdefault[Boulot]%
+%          \setKV[Boulot]{#1}%
+%          \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%        \PfMBasculeDys%
+%        \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
         \TikzFicheCor{#2}%
-        \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-          \PfMAffichageCorrige%
-          \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+%        \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%          \PfMAffichageCorrige%
+%          \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+        \PfMAffichageCorrectionColonnes
         }%
       }{}%
     }{%
@@ -3303,14 +3489,19 @@
     \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}%
+%          \useKVdefault[Boulot]%
+%          \setKV[Boulot]{#1}%
+%          \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%          \PfMBasculeDys%
+%          \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
           \TikzRecapBrevetCor{#2}%
-          \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-          \PfMAffichageCorrige%
-          \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+%          \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%          \PfMAffichageCorrige%
+%          \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+          \PfMAffichageCorrectionColonnes%
       }%
     }{}%
   }{%
@@ -3321,54 +3512,73 @@
       \ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}%
       \setcounter{PfMExo}{0}%
       \AtEndDocument{%
-        \Recapitulatif{#2}%
+        \Recapitulatif{#1}{#2}%
       }%
     }{%
       \ifboolKV[Boulot]{Parcours}{%
-        \setKV[Parcours]{#2}\TikzParcours%
+                          \ifboolKV[Boulot]{CorrigeSeul}{}{%
+                              \setKV[Parcours]{#2}\TikzParcours%
+                              }
         \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours%
         \ifboolKV[Boulot]{CorrigeFin}{%
             \AddToHook{env/Maquette/after}[Correction]{%
-              \useKVdefault[Boulot]%
-              \setKV[Boulot]{#1}%
-              \PfMBasculeDys%
-              \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+              \PfMPrepareCorrection{#1}%
+%              \useKVdefault[Boulot]%
+%              \setKV[Boulot]{#1}%
+%              \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%              \PfMBasculeDys%
+%              \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
               \TikzParcoursCor{#2}
-              \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-              \PfMAffichageCorrige%
-              \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+%              \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}%
+%                \useKVdefault[Boulot]%
+%                \setKV[Boulot]{#1}%
+%                \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%                \PfMBasculeDys%
+%                \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
                 \TikzPdTCor{#2}%
-                \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-                \PfMAffichageCorrige%
-                \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+%                \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%
+%            \let\Exercice\exercice\let\endExercice\endexercice%
             \ifboolKV[Boulot]{CorrigeFin}{%
                 \AddToHook{env/Maquette/after}[Correction]{%
-                  \useKVdefault[Boulot]%
-                  \setKV[Boulot]{#1}%
-                  \PfMBasculeDys%
-                  \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+                  \PfMPrepareCorrection{#1}%
+%                  \useKVdefault[Boulot]%
+%                  \setKV[Boulot]{#1}%
+%                  \if at Dyslexie
+%                    \setKV[Boulot]{Dys}
+%                  \fi
+%                  \PfMBasculeDys%
+%                  \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
                   \TikzDMCor{#2}%
-                  \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-                  \PfMAffichageCorrige%
-                  \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+                  \PfMAffichageCorrectionColonnes%
               }%
             }{}%
           }{%
@@ -3378,14 +3588,19 @@
                 \TikzFiche%
                 }%
                 \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
+                %\let\Exercice\exercice\let\endExercice\endexercice
                 \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}%
+%                          \useKVdefault[Boulot]%
+%                          \setKV[Boulot]{#1}%
+%                          \if at Dyslexie
+%                            \setKV[Boulot]{Dys}
+%                          \fi
+%                          \PfMBasculeDys%
+%                          \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}{}%
@@ -3409,6 +3624,9 @@
                        \useKVdefault[Boulot]%
                        \setKV[Boulot]{#1}%
                        %%
+                       \if at Dyslexie
+              \setKV[Boulot]{Dys}
+            \fi
                        \PfMBasculeDys%
                      \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
                      \TikzFicheCor{#2}%
@@ -3421,7 +3639,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 +3650,42 @@
                 }{}%
                 \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}
+%                      \useKVdefault[Boulot]%
+%                      \setKV[Boulot]{#1}%
+%                      \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%                      \PfMBasculeDys%
+%                      \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+                      \TikzDSCor{#2}%
+%                    \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%                       \PfMAffichageCorrige%
+%                       \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+                      \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}
+%                        \useKVdefault[Boulot]%
+%                        \setKV[Boulot]{#1}%
+%                        \if at Dyslexie
+%              \setKV[Boulot]{Dys}
+%            \fi
+%                        \PfMBasculeDys%
+%                      \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
                       \TikzIECor{#2}%
-                      \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
-                       \PfMAffichageCorrige%
-                     \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+%                      \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+%                       \PfMAffichageCorrige%
+%                       \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+                      \PfMAffichageCorrectionColonnes
                     }%
                   }{}%
                 }{%
@@ -3480,10 +3712,11 @@
       }%
     }%
   }%
-  }%
 }%
 }%
 }%
+}%
+}%
 }{}%
 \makeatother
 %D'après JCC



More information about the tex-live-commits mailing list.