texlive[72585] Master/texmf-dist: profmaquette (18oct24)
commits+karl at tug.org
commits+karl at tug.org
Fri Oct 18 23:19:51 CEST 2024
Revision: 72585
https://tug.org/svn/texlive?view=revision&revision=72585
Author: karl
Date: 2024-10-18 23:19:51 +0200 (Fri, 18 Oct 2024)
Log Message:
-----------
profmaquette (18oct24)
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-10-18 21:19:41 UTC (rev 72584)
+++ trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty 2024-10-18 21:19:51 UTC (rev 72585)
@@ -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/10/16}%
+\def\filedate{2024/10/17}%
\let\PfMfiledate\filedate%
-\def\fileversion{0.99-g}%
+\def\fileversion{0.99-h}%
\let\PfMfileversion\fileversion%
\ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
@@ -70,7 +70,7 @@
\setKVdefault[FdR]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
\setKVdefault[Parcours]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,Vertical=false,Plan=false,Court=false}%
\setKVdefault[Contrat]{Theme=Les nombres d\'ecimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
-\setKVdefault[OlympiadesAPMEP]{Theme=Les nombres d\'ecimaux}%
+\setKVdefault[OlympiadesAPMEP]{Theme=Les nombres d\'ecimaux,Bandeau=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}}%
@@ -1222,7 +1222,7 @@
%\stepcounter{PfMExoSolAlea}%
\label{pagesol-\thePfMMaquette-\thePfMExoSol}%
\setcounter{PfMAlea}{0}%
- \def\PfMTexteDuCorrige{\csname PfMTNomSol\Roman{PfMExoSol}\endcsname}
+ \def\PfMTexteDuCorrige{\csname PfMTNomSol\Roman{PfMExoSol}\endcsname}%
\IfFileExists{\jobname-Ma\thePfMMaquette-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-Ma\thePfMMaquette-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ma\thePfMMaquette-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-Ma\thePfMMaquette-Ex##1.rep}\par\goodbreak}{%
\IfFileExists{\jobname-Ma\thePfMMaquette-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-Ma\thePfMMaquette-Ex##1.cdp}\par\goodbreak}{}%
}%
@@ -2859,7 +2859,21 @@
}%
}%
-%\makeatletter
+% \makeatletter
+\NewDocumentCommand\TikzOlympiadesAPMEP{m}{%
+ \ifPfMRectoVerso%
+ \cleardoublepage%
+ \else%
+ \clearpage%
+ \fi%
+ \setKV[OlympiadesAPMEP]{#1}%
+ \begin{tcolorbox}[colback=colLogo]
+ \begin{Dispo}*{\normalsize\logoapmep{\scale at logo}}
+ \Large\sffamily \useKV[OlympiadesAPMEP]{Theme}
+ \end{Dispo}
+ \end{tcolorbox}%
+}%
+
\NewDocumentCommand\TikzOlympiadesAPMEPCor{m}{%
\ifPfMRectoVerso%
\cleardoublepage%
@@ -2896,8 +2910,7 @@
}{}%
\colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
\PfMAvantLesExercices%
- \refstepcounter{PfMSection}%
- \PfMChoixCorrection%
+% \refstepcounter{PfMSection}%
\ifboolKV[Boulot]{CorrigeSeul}{}{%
\PfMChoixTitreSolution%
\PfMChoixHideItemSolution%
@@ -2911,11 +2924,12 @@
}%
}{%
\ifboolKV[ClesExercices]{NonUtilise}{\end{PfMHide}}{%
- \PfMJusteAvantLaFinDesExercices%
- \end{tcolorbox}%
- %\ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
- \PfMApresLesExercices%
- }%
+ \ifboolKV[Boulot]{CorrigeSeul}{}{%
+ \PfMJusteAvantLaFinDesExercices%
+ \end{tcolorbox}%
+ \PfMApresLesExercices%
+ }%
+ }%
}%
\NewDocumentEnvironment{exerciceDS}{so}{%
@@ -3595,7 +3609,7 @@
fill=ColExoFiche,
anchor=west,
xshift=\kvtcb at leftlower,
- ] at (frame.north west){\color{colLogo}\resizebox{1em}{!}{\carreEntoure{}}~\thePfMExo\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}}{}};
+ ] 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}}{}};
%%
\useKV[ClesExercices]{Ajout}%
%%
@@ -4070,36 +4084,140 @@
\par\bigskip%
}%
-\NewDocumentCommand\ListeReponses{sm}{%
+\newlength\PfMAMCBarreFraction
+\makeatletter
+
+
+\setKVdefault[ListeReponses]{Lettre=x,Unites=false}
+\defKV[ListeReponses]{Unite=\setKV[ListeReponses]{Unites}\DeclareSIUnit{\TempoAMC}{#1}}
+
+\NewDocumentCommand\ListeReponses{som}{%
\ifboolKV[Boulot]{AMC}{%
+ \useKVdefault[ListeReponses]%
+ \setKV[ListeReponses]{#2}%
\setsepchar{,}\ignoreemptyitems%
- \readlist*\ListeAMCRep{#2}%
+ \readlist*\ListeAMCRep{#3}%
\reademptyitems%
+% \showitems\ListeAMCRep[]
\setcounter{PfMAMCOpen}{1}%
\stepcounter{PfMNbListeReponsesAMC}%
\par
\ifnum\fpeval{\ListeAMCReplen}=1\relax%
- \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}
- \IfInteger{\ListeAMCRep[1]}{%
+ % On teste la présence de ! pour les fractions, de : pour l'écriture ax+b, de ! pour une écriture du style $a^p$ et de | pour les écritures scientifiques.
+ \StrCount{\ListeAMCRep[1]}{/}[\PfMAMCPresenceFraction]%
+ \StrCount{\ListeAMCRep[1]}{:}[\PfMAMCPresenceLitteral]%
+ \StrCount{\ListeAMCRep[1]}{!}[\PfMAMCPresencePuissances]%
+ \StrCount{\ListeAMCRep[1]}{|}[\PfMAMCPresencePuissancesDix]%
+ \ifnum\fpeval{\PfMAMCPresenceFraction+\PfMAMCPresenceLitteral+\PfMAMCPresencePuissances+\PfMAMCPresencePuissancesDix}=0\relax
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}
+ \IfInteger{\ListeAMCRep[1]}{%
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrLen{\fpeval{abs(\Toto)}}[\PfMLongueurCaseAMC]%
+ \IfBooleanTF{#1}{%
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\PfMLongueurCaseAMC,sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ }{%
+ \begin{minipage}{\PfMAMCBarreFraction}
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\PfMLongueurCaseAMC,sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}
+ \end{minipage}\ifboolKV[ListeReponses]{Unites}{~~~\si[per-mode=symbol]{\TempoAMC}}{}%
+ }%
+ }{%
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{.}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCAv]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCAp]%
+ \IfBooleanTF{#1}{%
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\fpeval{\PfMLongueurCaseAMCAv+\PfMLongueurCaseAMCAp},decimals=\PfMLongueurCaseAMCAp,sign,Tpoint={,},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ }{%
+ \begin{minipage}{\PfMAMCBarreFraction}
+ \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\fpeval{\PfMLongueurCaseAMCAv+\PfMLongueurCaseAMCAp},decimals=\PfMLongueurCaseAMCAp,sign=false,Tpoint={,},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \end{minipage}\ifboolKV[ListeReponses]{Unites}{~~~\si[per-mode=symbol]{\TempoAMC}}{}%
+ }%
+ }%
+ \end{questionmultx}
+ \else
+ %Fraction
+ \ifnum\PfMAMCPresenceFraction=1\relax%
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}
\itemtomacro\ListeAMCRep[1]\Toto%
- \StrLen{\fpeval{abs(\Toto)}}[\PfMLongueurCaseAMC]%
+ \StrCut{\Toto}{/}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCNum]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCDeno]%
\IfBooleanTF{#1}{%
- \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\PfMLongueurCaseAMC,sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \AMCnumericChoices{\TotoAv.\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCNum+\PfMLongueurCaseAMCDeno},decimals=\PfMLongueurCaseAMCDeno,sign,Tpoint={\raisebox{0.25\AMC at boxedheight}{\rule{\PfMAMCBarreFraction}{1pt}}},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
}{%
- \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\PfMLongueurCaseAMC,sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \AMCnumericChoices{\TotoAv.\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCNum+\PfMLongueurCaseAMCDeno},decimals=\PfMLongueurCaseAMCDeno,sign=false,Tpoint={\raisebox{0.25\AMC at boxedheight}{\rule{\PfMAMCBarreFraction}{1pt}}},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
}%
- }{%
+ \end{questionmultx}
+ \fi
+ % Puissances
+ \ifnum\PfMAMCPresencePuissances=1\relax%
\itemtomacro\ListeAMCRep[1]\Toto%
- \StrCut{\Toto}{.}{\TotoAv}{\TotoAp}%
- \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCAv]%
- \StrLen{\TotoAp}[\PfMLongueurCaseAMCAp]%
+ \StrCut{\Toto}{!}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCMant]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCPuis]%
\IfBooleanTF{#1}{%
- \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\fpeval{\PfMLongueurCaseAMCAv+\PfMLongueurCaseAMCAp},decimals=\PfMLongueurCaseAMCAp,sign,Tpoint={,},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCMant},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCPuis},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}$
}{%
- \AMCnumericChoices{\fpeval{\ListeAMCRep[1]}}{digits=\fpeval{\PfMLongueurCaseAMCAv+\PfMLongueurCaseAMCAp},decimals=\PfMLongueurCaseAMCAp,sign=false,Tpoint={,},borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCMant},sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCPuis},sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}$
}%
- }%
- \end{questionmultx}
+ \fi
+ % PuissancesDix
+ \ifnum\PfMAMCPresencePuissancesDix=1\relax%
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{|}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCMant]%
+ \StrLen{\TotoAp}[\PfMLongueurCaseAMCPuis]%
+ \StrCut{\TotoAv}{.}{\TotoAva}{\TotoApa}%
+ \StrLen{\fpeval{abs(\TotoAva)}}[\PfMLongueurCaseAMCManta]%
+ \StrLen{\fpeval{abs(\TotoApa)}}[\PfMLongueurCaseAMCMantb]%
+ \IfBooleanTF{#1}{%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCManta+\PfMLongueurCaseAMCMantb},Tpoint={,},decimals=\PfMLongueurCaseAMCMantb,sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}
+ \end{questionmultx}
+ \end{minipage}\quad\times10^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\PfMLongueurCaseAMCPuis,sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}
+ $
+ }{%
+ $\begin{minipage}{\PfMAMCBarreFraction}
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCManta+\PfMLongueurCaseAMCMantb},Tpoint={,},decimals=\PfMLongueurCaseAMCMantb,sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}
+ \end{questionmultx}
+ \end{minipage}\quad\times10^{~\begin{minipage}{\PfMAMCBarreFraction}
+ \scriptsize\stepcounter{PfMNbListeReponsesAMC}\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}\AMCnumericChoices{\TotoAp}{digits=\PfMLongueurCaseAMCPuis,sign=false,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}\end{questionmultx}
+ \end{minipage}}
+ $
+ }%
+ \fi
+ % Litteral
+ \ifnum\PfMAMCPresenceLitteral=1
+ \itemtomacro\ListeAMCRep[1]\Toto%
+ \StrCut{\Toto}{:}{\TotoAv}{\TotoAp}%
+ \StrLen{\fpeval{abs(\TotoAv)}}[\PfMLongueurCaseAMCMono]%
+ \StrLen{\fpeval{abs(\TotoAp)}}[\PfMLongueurCaseAMCConst]%
+ $
+ \begin{minipage}{\PfMAMCBarreFraction}
+ \footnotesize%
+ \begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}%
+ \AMCnumericChoices{\TotoAv}{digits=\fpeval{\PfMLongueurCaseAMCMono},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \end{questionmultx}%
+ \end{minipage}
+ \qquad\useKV[ListeReponses]{Lettre}\quad
+ \begin{minipage}{\PfMAMCBarreFraction}%
+ \stepcounter{PfMNbListeReponsesAMC}\footnotesize\begin{questionmultx}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}%
+ \AMCnumericChoices{\TotoAp}{digits=\fpeval{\PfMLongueurCaseAMCConst},sign,borderwidth=0pt,backgroundcol=gray!20,scoreexact=1,hspace=0.25em,vspace=0ex}%
+ \end{questionmultx}%
+ \end{minipage}
+ $
+ \fi
+ \fi
\else%
\begin{question}{\Roman{PfMExo}\roman{PfMNbListeReponsesAMC}}
\ifPfMDeuxColonnes
@@ -4121,6 +4239,7 @@
\fi
}{}%
}%
+\makeatother
\makeatletter
\tcbset{%
@@ -4366,10 +4485,10 @@
\ifboolKV[Boulot]{PixelArt}{%
\stepcounter{PfMLettresPixelArt}%
\ifboolKV[PixelArt]{Aleatoire}{%
- \hfill\textbf{Lettre \ListePourLesItems[\fpeval{\thePfMLettresPixelArt+1}]}%
+ \hfill\textbf{Lettre~\ListePourLesItems[\fpeval{\thePfMLettresPixelArt+1}]}%
%Num Lettre = \thePfMLettresPixelArt
}{%
- \hfill\textbf{Lettre \Alph{PfMLettresPixelArt}}%
+ \hfill\textbf{Lettre~\Alph{PfMLettresPixelArt}}%
}%
\ifdef{\ListeSolAv}{%
\xdef\ListeSolAv{\ListeSolAv,#1}%
@@ -4495,6 +4614,13 @@
\ifboolKV[Boulot]{OlympiadesAPMEP}{%
\setKV[OlympiadesAPMEP]{#2}%\TikzOlympiadesAPMEP%
\let\exercice\exerciceOlympiadesAPMEP\let\endexercice\endexerciceOlympiadesAPMEP%
+ \ifboolKV[OlympiadesAPMEP]{Bandeau}{%
+ \TikzOlympiadesAPMEP{#2}%
+ \bigskip
+ }{%
+ \xdef\PfMTitreAPMEP{\useKV[OlympiadesAPMEP]{Theme}}
+ \chapter{\PfMTitreAPMEP}
+ }
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\PfMPrepareCorrection{#1}%
More information about the tex-live-commits
mailing list.