texlive[69526] Master/texmf-dist: profmaquette (21jan24)

commits+karl at tug.org commits+karl at tug.org
Sun Jan 21 22:16:33 CET 2024


Revision: 69526
          https://tug.org/svn/texlive?view=revision&revision=69526
Author:   karl
Date:     2024-01-21 22:16:33 +0100 (Sun, 21 Jan 2024)
Log Message:
-----------
profmaquette (21jan24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.pdf
    trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.tex
    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.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.tex	2024-01-21 21:16:22 UTC (rev 69525)
+++ trunk/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.tex	2024-01-21 21:16:33 UTC (rev 69526)
@@ -3,7 +3,7 @@
 \usepackage[nonamssymb]{ProfCollege}
 \usepackage{ProfMaquette}
 \usepackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math}
-\usepackage{fourier-otf}
+\usepackage[math-style=french]{fourier-otf}
 
 \newfontfamily\myfontDys{FiraMath-Regular.otf}
 
@@ -125,16 +125,16 @@
     texcsstyle=*\color{black},%pour colorer la contre-oblique
     classoffset=5,
     texcsstyle=*\color{blue},%pour colorer la contre-oblique
-    moretexcs={brm,TikzDM,TikzDMCor,TikzDS,TikzDSCor,TikzIE,TikzIECor,TikzFiche,TikzFicheCor,TikzCours,Competences,TikzParcours,TikzParcoursCor,TikzPdT,TikzPdTCor,PfMCompNA,PfMCompECA,PfMCompA,AfficheParcours,CheminVrai,CheminFaux,TikzContrat,TikzContratCor,TikzFdR,TikzFdRCor,AfficheContrat,AfficheFdR,TikzCAN,TikzCANCor,Complement,PfMTexteEncart,PfMEspaceAvantLignes,PfMEspaceApresLignes},
+    moretexcs={brm,TikzDM,TikzDMCor,TikzDS,TikzDSCor,TikzIE,TikzIECor,TikzFiche,TikzFicheCor,TikzCours,Competences,TikzParcours,TikzParcoursCor,TikzPdT,TikzPdTCor,PfMCompNA,PfMCompECA,PfMCompA,AfficheParcours,CheminVrai,CheminFaux,TikzContrat,TikzContratCor,TikzFdR,TikzFdRCor,AfficheContrat,AfficheFdR,TikzCAN,TikzCANCor,Complement,PfMTexteEncart,PfMEspaceAvantLignes,PfMEspaceApresLignes,cacheitem},
     emph={Maquette,exercice,Solution,Reponse,Indice},%
     classoffset=1,
-    keywords={DM,DS,IE,Fiche,CorrigeFin,CorrigeApres,PdT,Parcours,ParcoursPerso,Cours,FdR,Contrat,CAN,Dys},
+    keywords={DM,DS,IE,Fiche,CorrigeFin,CorrigeApres,PdT,Parcours,ParcoursPerso,Cours,FdR,Contrat,CAN,Dys,Taille,VersSolution},
     keywordstyle=\color{OliveDrab},
     classoffset=2,
     keywords={Theme,Niveau,Classe,Date,Calculatrice,Code,Numero,Sujet,Nom,NumSujet,Fichier,Type,CoefQ,CoefR,CoefJ},
     keywordstyle=\color{BlueViolet},%DarkMagenta},
     classoffset=3,
-    keywords={Pouce,Direct,PasCorrige,BaremeDetaille,BaremeTotal,Source,Titre,Oral,Calculatrice,Competence,Trajet,Confiance,Route,Stop,Lignes,Encart,TitreSolution},
+    keywords={Pouce,Direct,PasCorrige,BaremeDetaille,BaremeTotal,Source,Titre,Oral,Calculatrice,Competence,Trajet,Confiance,Route,Stop,Lignes,Encart,TitreSolution,NonUtilise,Profile},
     keywordstyle=\color{DarkGreen},
     classoffset=4,
     keywords={userfiche,userfichecor,userdm,userdmcor,userie,useriecor,userds,userdscor,userparcours,userparcourscor,userpdt,userpdtcor,usercours,usercontrat,usercontratcor,userfdr,userfdrcor,usercan,usercancor},
@@ -508,7 +508,7 @@
   On considère un triangle $ABC$\dots
 \end{Maquette}
 \clearpage
-\subsection*{Contrat de confiance\footnote{Basé sur une idée de Thomas {\sc Castanet}.}}
+\subsection*{Le contrat de confiance\footnote{Basé sur une idée de Thomas {\sc Castanet}.}}
 \begin{CadreMP}
   \begin{Description}
 \item[La clé \Cle{Contrat}]\Defaut{false}
@@ -528,7 +528,7 @@
   On considère un triangle $ABC$\dots
 \end{Maquette}
 \clearpage
-\subsection*{Feuille de route\footnote{Basé sur une idée de Thomas {\sc Castanet}.}}
+\subsection*{La feuille de route\footnote{Basé sur une idée de Thomas {\sc Castanet}.}}
 \begin{CadreMP}
   \begin{Description}
 \item[La clé \Cle{FdR}]\Defaut{false}
@@ -548,7 +548,7 @@
   On considère un triangle $ABC$\dots
 \end{Maquette}
 \clearpage
-\subsection*{Course aux nombres}
+\subsection*{La Course aux nombres}
 \begin{CadreMP}
   \begin{Description}
 \item[La clé \Cle{CAN}]\Defaut{false}
@@ -577,17 +577,22 @@
 \clearpage
 \includepdf[nup=1x2,pages=-,landscape]{TestCAN.pdf}
 \clearpage
-\subsection*{Focus sur la clé \Cle{Dys}}
-Lorsque cette clé est activée, le package \lstinline!ProfMaquette! modifie plusieurs paramètres :
+\subsection*{Focus sur la clé \Cle{Dys}}\label{PageDys}
+Lorsque cette clé est activée, le package \lstinline!ProfMaquette! agit sur plusieurs paramètres :
 \begin{itemize}
-\item il modifie l'interligne en passant sa valeur à \num{1.5};
+\item il modifie l'interligne en passant sa valeur à \num{1.8};
 \item il force la non-justification des lignes;
-\item il impose la taille de la fonte en la passant à {\ttfamily 14pt}, que la taille demandée par défaut soit {\ttfamily 10pt}, {\ttfamily 11pt} ou {\ttfamily 12pt}.
+\item il impose, par défaut, la taille de la fonte en la passant à {\ttfamily 14pt}, que la taille demandée par défaut soit {\ttfamily 10pt}, {\ttfamily 11pt} ou {\ttfamily 12pt}.
+\begin{CadreMP}
+  \begin{Description}
+\item[La clé \Cle{Taille}] modifie la taille de la fonte utilisée avec la clé \Cle{Dys}.\par\hfill\Defaut{14}
+\end{Description}
+\end{CadreMP}
 \end{itemize}
 \begin{tcolorbox}
   Le choix d'une police étant personnel et les études contradictoires, le package \lstinline!ProfMaquette! ne propose aucune fonte particulière. Dans une distribution \TeX{}Live, la police {\ttfamily Fira Sans}\footnotemark{} peut convenir, tant pour le texte que pour les mathématiques.
 \end{tcolorbox}
-Le code suivant montre, à la page suivante, les effets de cette clé \Cle{Dys}.
+Le code ci-dessous montre, à la page suivante, les effets de cette clé \Cle{Dys}.
 \begin{Codes}[listing only]{0.4}{}
 \begin{Maquette}[Fiche,Dys]{Theme=Théorème de Pythagore}
   \myfontDys%Définie dans le préambule sous la forme
@@ -632,7 +637,7 @@
   \end{exercice}
 \end{Maquette}
 \clearpage
-Comme on peut le voir, chaque type de travail est associé à une présentation. Ces présentations sont créées par les commandes associées à des styles prédéfinis.\footnote{Qu'on peut donc redéfinir. Par exemple, c'est ce que j'ai fait dans ce document pour la commande \lstinline!\\TikzFiche! : elle ne commence plus une nouvelle page.} \lstinline!tcolorbox! :
+Comme on peut le voir, chaque type de travail est associé à une présentation. Ces présentations sont créées par les commandes associées à des styles  \lstinline!tcolorbox! prédéfinis\footnote{Qu'on peut donc redéfinir.} :
 \begin{itemize}[label=\textbullet]
 \item \lstinline!userdm / userdmcor! pour la clé \Cle{DM};
 \item \lstinline!userds / userdscor! pour la clé \Cle{DS};%
@@ -682,7 +687,7 @@
   }%
 }%
 
-Pour modifier {\em plus finement} les entêtes des différentes maquettes, on dispose des commandes :
+Pour modifier {\em plus finement} les entêtes des différentes maquettes, on dispose des commandes\footnote{Qu'on peut donc redéfinir. Par exemple, c'est ce que j'ai fait dans ce document pour la commande \lstinline!\\TikzFiche! : elle ne commence plus une nouvelle page.} :
 \begin{itemize}[label=\textbullet]
 \item \lstinline!\TikzDM / \TikzDMCor! pour la clé \Cle{DM};
 \item \lstinline!\TikzDS / \TikzDSCor! pour la clé \Cle{DS};%
@@ -871,7 +876,7 @@
 \item[La clé \Cle{Encart}] indique l'espace à laisser {\em après} la fin de l'exercice.\Defaut{-}\\La valeur attendue est une longueur.
 \end{Description}
 \begin{Codes}[]{0.4}{}
-\begin{Maquette}[Fiche]{Theme=Nombres entiers}
+\begin{Maquette}[Fiche]{Theme=Les triangles}
   \begin{exercice}[Lignes=5]
     On considère un triangle $ABC$ tel que \dots
   \end{exercice}
@@ -887,6 +892,50 @@
 \item le texte d'introduction de l'encart par {\em la commande} \lstinline!\PfMTexteEncart!.
 \end{itemize}
 \clearpage
+\subsection*{Gestion de profils particuliers d'élèves}
+Certains enfants présentent des troubles des apprentissages et ont donc besoin d'aménagements pédagogiques particuliers. Couplées ou pas à la clé \Cle{Dys} (page \pageref{PageDys}), on dispose des clés suivantes.
+\begin{Description}
+  \item[La clé \Cle{NonUtilise}] indique  que l'exercice {\em et} sa solution ne seront pas utilisés pour la confection du document.\Defaut{false}
+  \end{Description}
+  \begin{Codes}[]{0.4}{}
+\begin{Maquette}[Fiche]{Theme=Les fractions,Code=423FicheFraction}
+  \begin{exercice}
+    Calculer $A=\frac{1}{2}+\frac{1}{2}$.
+  \end{exercice}
+  \begin{exercice}[NonUtilise]
+    Calculer $B=\frac{1}{3}+\frac{1}{6}$.
+  \end{exercice}
+  \begin{exercice}
+    Calculer $C=\frac{1}{5}+\frac{1}{7}$.
+  \end{exercice}
+\end{Maquette}
+\end{Codes}
+\begin{Description}
+  \item[La clé \Cle{Profile}] indique  que l'exercice {\em et} sa solution sont profilés et peuvent disposer de moins de questions. Cette clé sera utilisée conjointement avec la commande \lstinline!\cacheitem! permettant de cacher un item complet d'une liste.\Defaut{false}
+  \end{Description}
+\begin{Codes}[]{0.4}{}
+\begin{Maquette}[Fiche]{Theme=Calcul littéral,Code=323FicheDevelopper}
+  \begin{exercice}[Profile]
+    \begin{enumerate}
+    \item Développer et réduire $A=2x(3+7x)$.
+    \item Développer et réduire $B=(x+3)(x+4)$.
+    \cacheitem\item Développer et réduire $C=(2x+3)(7x-1)$.
+    \cacheitem\item Développer et réduire $D=(4-3x)(x-2)$.
+    \item Calculer les valeurs des expressions précédentes lorsque $x=2$.
+    \end{enumerate}
+  \end{exercice}
+  \begin{exercice}[]
+    \begin{enumerate}
+    \item Développer et réduire $A=2x(3+7x)$.
+    \item Développer et réduire $B=(x+3)(x+4)$.
+    \cacheitem\item Développer et réduire $C=(2x+3)(7x-1)$.
+    \cacheitem\item Développer et réduire $D=(4-3x)(x-2)$.
+    \item Calculer les valeurs des expressions précédentes lorsque $x=2$.
+    \end{enumerate}
+  \end{exercice}
+\end{Maquette}
+\end{Codes}
+\clearpage
 \subsection*{Des logos ?}
 Les clés décrites dans cette partie ne sont disponibles que pour les maquettes
 \lstinline!Fiche! / \lstinline!Parcours!.
@@ -1148,7 +1197,10 @@
 %\setcounter{}{0}
 Dans le cas de cette maquette, l'environnement \lstinline!exercice! dispose des clés \Cle{Route} et \Cle{Stop} permettant de construire automatiquement une feuille de route. La commande \lstinline!\AfficheFdR{}! représente un schéma associé à la feuille de route construite par l'enseignant : l'élève réalise les exercices de la ligne du bas puis demande la validation de l'enseignant. Une fois la validation acquise, l'enseignant peut lui proposer de faire les exercices de la ligne du haut ou de poursuivre la feuille de route.
 \\Ce schéma se construit seul, automatiquement, après que l'enseignant ait utilisé les clés \Cle{Route} et \Cle{Stop} dans la création de ses exercices. Il faudra néanmoins deux compilations et vérifier que chaque \og morceau\fg{} de route soit non vide (La ligne haute, quant à elle, pouvant être vide). \`A noter que ce schéma, avec l'utilisation du package \lstinline!hyperref!, dispose de liens cliquables sur les exercices sélectionnés pour le parcours.
-\begin{Codes}[listing only,listing options={frame=,escapechar=!}]{0.4}{\scriptsize}
+\begin{multicols}{2}
+  \begin{Codes}[enhanced,listing only,listing options={frame=,escapechar=!},overlay unbroken and first={%
+      \node[text=black,fill=white,anchor=east,xshift=-10pt] at (frame.south east) {\scriptsize Suite\dots};
+    }]{0.4}{}
 \begin{Maquette}[FdR]{Theme=Calcul mental}
   \begin{center}
     \AfficheFdR%
@@ -1171,6 +1223,8 @@
   \begin{exercice}[Route]
     
   \end{exercice}
+\end{Codes}
+\begin{Codes}[listing only,listing options={frame=,escapechar=!}]{0.4}{}
   \begin{exercice}[]
     
   \end{exercice}
@@ -1197,6 +1251,7 @@
   \end{exercice}
 \end{Maquette}
 \end{Codes}
+\end{multicols}
 \clearpage
 \begin{Maquette}[FdR]{Theme=Calcul mental}
   \begin{center}
@@ -1290,7 +1345,8 @@
 \item[la clé \Cle{CorrigeFin}]\Defaut{false}\par qui affiche les corrigés, {\em s'ils existent}, à la fin du document.
   \begin{quote}
     \begin{description}
-      \item[la clé \Cle{CorrigeAll}]\Defaut{false}\par est {\em uniquement} valable avec la clé \Cle{Fiche}. Elle affiche une feuille avec tous les corrigés détaillés (environnement \lstinline!Solution!); une feuille avec toutes les réponses brutes (environnement \lstinline!Reponse!) et une feuille avec tous les indices (environnement \lstinline!Indice!).
+    \item[la clé \Cle{CorrigeAll}]\Defaut{false}\par est {\em uniquement} valable avec la clé \Cle{Fiche}. Elle affiche une feuille avec tous les corrigés détaillés (environnement \lstinline!Solution!); une feuille avec toutes les réponses brutes (environnement \lstinline!Reponse!) et une feuille avec tous les indices (environnement \lstinline!Indice!).
+      \item[La clé \Cle{VersSolution}] permet de se déplacer directement à la solution des exercices en cliquant sur le symbole \faKey. {\em Il est impératif de charger le package} \lstinline!hyperref!.
 \item[la clé \Cle{Colonnes}]\Defaut{1}\par définit le nombre de colonnes utilisé pour afficher les corrigés.
 \item[la clé \Cle{Epaisseur}]\Defaut{0pt}\par modifie l'épaisseur de la barre de séparation des colonnes.
   \end{description}
@@ -1347,7 +1403,7 @@
 \end{Description}
 Cela engendre, si nécessaire, la création de fichier \lstinline!*.sol! pour les solutions, \lstinline!*.rep! pour les réponses et \lstinline!*.cdp! pour les indices. Il conviendra de les effacer à chaque changement de clé (\Cle{PasCorrige}, \Cle{Pouce}, \Cle{Direct}) ou ajout d'exercice(s). En effet, la priorité d'affichage est donnée aux fichiers \lstinline!*.sol! puis \lstinline!*.rep! et enfin \lstinline!*.cdp!.
 \begin{Codes}[listing only]{0.4}{\scriptsize}
-\begin{Maquette}[DS,CorrigeFin]{Numero=3}
+\begin{Maquette}[DS,CorrigeFin,VersSolution]{Numero=3}
   \begin{exercice}[TitreSolution= : Nombre décimal]
     $1+\dfrac2{10}=$
   \end{exercice}
@@ -1398,7 +1454,7 @@
   \end{Reponse}
 \end{Maquette}
 \end{Codes}
-\begin{Maquette}[DS,CorrigeFin]{Numero=3}
+\begin{Maquette}[DS,CorrigeFin,VersSolution]{Numero=3}
    % La clé CorrigeFin utilise le contenu de l'environnement Solution
   \begin{exercice}[TitreSolution= : Nombre décimal]
     $1+\dfrac2{10}=$
@@ -1452,7 +1508,8 @@
 \clearpage
 \section*{Historique}
 \begin{description}
-\item[\PfMfiledate{}--v \PfMfileversion] Ajout de la clé \Cle{TitreSolution} à l'environnement \lstinline!exercice!. Amélioration de la documentation.
+\item[\PfMfiledate{}--v \PfMfileversion] Ajout des clés \Cle{NonUtilise} et \Cle{Profile} à l'environnement \lstinline!exercice!. Ajout des clés \Cle{Taille} et \Cle{VersSolution} à l'environnement \lstinline!Maquette!.
+  %0.86 Ajout de la clé \Cle{TitreSolution} à l'environnement \lstinline!exercice!. Amélioration de la documentation.
   %0.85 Ajout des clés \lstinline!Lignes! et \lstinline!Encart! à l'environnement \lstinline!exercice!. Amélioration de la documentation.
   %0.82 Correction de bugs.
   %0.80 Ajout d'une clé \Cle{Dys} pour les élèves à profil particulier.

Modified: trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty	2024-01-21 21:16:22 UTC (rev 69525)
+++ trunk/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty	2024-01-21 21:16:33 UTC (rev 69526)
@@ -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/01/13}%
+\def\filedate{2024/01/21}%
 \let\PfMfiledate\filedate%
-\def\fileversion{0.86}%
+\def\fileversion{0.87}%
 \let\PfMfileversion\fileversion%
 \ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
 
@@ -30,19 +30,13 @@
 
 % mettre un option Dys
 \RequirePackage{ragged2e}%
-%\RequirePackage{scalefnt}%
-% Define our simple macro \getfontsize
-%\bgroup%
-%\catcode`@=11%
-%\gdef\getfontsize{\f at size}%
-%\egroup%
+
 \makeatletter
-%\def\GetPointSize{\@ptsize}
 \gdef\PfMFontSize{\@ptsize}
 \makeatother
 %définition des clés
 \RequirePackage{simplekv}%
-\setKVdefault[Boulot]{Dys=false,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,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é
+\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,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,AllDirect=false,AllPouce=false,VersSolution=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}%
@@ -59,7 +53,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,Cadres=false,TitreSol=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,Cadres=false,TitreSol=false,NonUtilise=false,Profile=false}%
 \defKV[ClesExercices]{TitreSolution=\setKV[ClesExercices]{TitreSol}}%
 \defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}%
 \defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}%
@@ -108,6 +102,9 @@
 \newlength\PfMLargeurJury%
 \newlength\PfMEspaceAvantLignes%
 \newlength\PfMEspaceApresLignes%
+\newlength\PfMLargeurComp
+\newlength\CRRHauteur
+\setlength{\CRRHauteur}{10cm}
 \setlength{\PfMHauteurAppreciation}{5cm}%
 \setlength{\PfMHauteurRemarque}{5cm}%
 \setlength{\PfMEspaceAvantLignes}{1em}
@@ -177,9 +174,99 @@
   }%
 }{}%
 
+%% 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
+
+\NewDocumentCommand{\cacheitem}{}
+ {
+  \PfMitem_hide:
+ }
+
+\NewDocumentCommand{\PfMhideitems}{}
+ {
+  \bool_set_true:N \l_PfMitem_hide_bool
+ }
+\NewDocumentCommand{\PfMshowitems}{}
+ {
+  \bool_set_false:N \l_PfMitem_hide_bool
+ }
+
+\bool_new:N \l_PfMitem_hide_bool
+
+\cs_new_protected:Nn \PfMitem_hide:
+ {
+  \bool_if:NT \l_PfMitem_hide_bool
+   {
+    \peek_regex_replace_once:nn
+     % search \item followed by anything until finding
+     % \item or \hideit or \end{<current environment>}
+     { \c{item}.*?(\c{item}|\c{cacheitem}|\c{end}\{\u{@currenvir}\}) }
+     % replace by the matching item
+     { \1 }
+   }
+ }
+
+\ExplSyntaxOff
+
 \definecolor{SLCP}{HTML}{00B51A}%
 \colorlet{Evidence}{SLCP}%
 
+\NewDocumentCommand\RepartirEffectifTotal{mmm}{%
+  % #1 valeur de l'effectif total
+  % #2 nombre de valeurs à obtenir
+  % #3 écart acceptable :) autour de la moyenen
+  \xdef\PfCSLEffectifs{}%
+  \xdef\PfCValeurMoyenneTemp{\fpeval{floor(#1/#2)}}%
+  \xdef\PfCRetiensRETSomme{}%
+  \xdef\PfCRetiensRETSommeTotale{0}%
+  \xintFor* ##1 in {\xintSeq{1}{\fpeval{#2-1}}}\do{%
+    \xdef\PfCSLDelta{\fpeval{randint(0,#3)}}%
+    \ifodd##1\relax%
+      \xdef\PfCSLEffectifs{\PfCSLEffectifs \fpeval{\PfCValeurMoyenneTemp+\PfCSLDelta},}%
+      \xdef\PfCRetiensRETSomme{\PfCRetiensRETSomme-\fpeval{\PfCValeurMoyenneTemp+\PfCSLDelta}}%
+      \xdef\PfCRetiensRETSommeTotale{\PfCRetiensRETSommeTotale+\fpeval{\PfCValeurMoyenneTemp+\PfCSLDelta}}%
+    \else%
+      \xdef\PfCSLEffectifs{\PfCSLEffectifs \fpeval{\PfCValeurMoyenneTemp-\PfCSLDelta},}%
+      \xdef\PfCRetiensRETSomme{\PfCRetiensRETSomme-\fpeval{\PfCValeurMoyenneTemp-\PfCSLDelta}}%
+      \xdef\PfCRetiensRETSommeTotale{\PfCRetiensRETSommeTotale+\fpeval{\PfCValeurMoyenneTemp-\PfCSLDelta}}%
+    \fi%
+  }%
+  % On rectifie sur la dernière valeur :)
+  \xdef\PfCSLEffectifs{\PfCSLEffectifs \fpeval{#1+\PfCRetiensRETSomme}}%
+  \xdef\PfCRetiensRETSommeTotale{\PfCRetiensRETSommeTotale+\fpeval{#1+\PfCRetiensRETSomme}}%
+%  On voulait un effectif fixe à #1 en #2 valeurs avec un écart de #3 par rapport à la moyenne.\\
+  %Les choix : \PfCSLEffectifs.\\
+  % Somme totale : \fpeval{\PfCRetiensRETSommeTotale}\\
+}
+
+\NewDocumentCommand\RepartirEffectifTotalB{mmm}{%
+  % #1 valeur de l'effectif total
+  % #2 nombre de valeurs à obtenir
+  % #3 le scale de la valeur de base pour calculer le delta
+  \xdef\PfCCPEffectifs{}%
+  \xdef\PfCValeurMoyenneTemp{\fpeval{floor(#1/#2)}}%
+  \xdef\PfCRetiensRETSomme{#1}%
+  \xdef\PfCRetiensRETSommeTotale{0}%
+  \xintFor* ##1 in {\xintSeq{1}{\fpeval{#2-1}}}\do{%
+    %La valeur moyenne ##1 est \PfCValeurMoyenneTemp\\
+    %On cherche entre \fpeval{-\PfCValeurMoyenneTemp+1} et \fpeval{\PfCValeurMoyenneTemp-1}\\
+    \xdef\PfCCPDelta{\fpeval{randint(-floor(#3*\PfCValeurMoyenneTemp)+1,floor(#3*\PfCValeurMoyenneTemp)-1)}}%
+    %Le delta ##1 est \PfCCPDelta\\
+    \xdef\PfCCPValeurRetenue{\fpeval{\PfCValeurMoyenneTemp+\PfCCPDelta}}%
+    %La valeur retenue ##1 est \PfCCPValeurRetenue\\
+    \xdef\PfCCPEffectifs{\PfCCPEffectifs \PfCCPValeurRetenue,}%
+    \xdef\PfCRetiensRETSomme{\fpeval{\PfCRetiensRETSomme-\PfCCPValeurRetenue}}%
+    \xdef\PfCValeurMoyenneTemp{\fpeval{floor(\PfCRetiensRETSomme/(#2-##1))}}%
+    \xdef\PfCRetiensRETSommeTotale{\PfCRetiensRETSommeTotale+\PfCCPValeurRetenue}%
+    %La somme totale ##1 est \fpeval{\PfCRetiensRETSommeTotale}\\
+  }%
+%  % On rectifie sur la dernière valeur :)
+  \xdef\PfCCPEffectifs{\PfCCPEffectifs \fpeval{#1-\fpeval{\PfCRetiensRETSommeTotale}}}%
+  Les choix : \PfCCPEffectifs.\\
+  %% Somme totale : \fpeval{\PfCRetiensRETSommeTotale}\\
+}
+
 % Pour la gestion de l'aléatoire
 % afin de permettre d'utiliser le même exercice.
 % Extraire des sommets
@@ -534,6 +621,45 @@
   \end{enumerate}
 }{}%
 
+\newcount\PfManp%
+\newcount\PfMbnp%
+\newcount\PfMcnp%
+\newcount\PfMdnp%
+
+\NewDocumentCommand\DeterminerNonPremiersEntreEuxInf{m}{%#1 : le nombre entier \`a tester
+  \xdef\RetiensNonPremiersEntreEuxInf{}%
+  \xdef\RetiensPremiersEntreEuxInf{}%
+  \PfManp=#1%
+  \PfMbnp=2%
+  \PfMcnp=0%
+  \PfMdnp=0%
+  \whiledo{\PfMbnp<\PfManp}{%
+    \PGCD{\the\PfManp}{\the\PfMbnp}{}%
+    \ifnum\pgcd>1\relax
+      \PfMcnp=\numexpr\PfMcnp+1\relax
+      \ifnum\PfMcnp=1\relax
+        \xdef\RetiensNonPremiersEntreEuxInf{\the\PfMbnp}%
+      \else%
+        \xdef\RetiensNonPremiersEntreEuxInf{\RetiensNonPremiersEntreEuxInf,\the\PfMbnp}%
+      \fi%
+    \else
+      \PfMdnp=\numexpr\PfMdnp+1\relax
+      \ifnum\PfMdnp=1\relax
+        \xdef\RetiensPremiersEntreEuxInf{\the\PfMbnp}%
+      \else%
+        \xdef\RetiensPremiersEntreEuxInf{\RetiensPremiersEntreEuxInf,\the\PfMbnp}%
+      \fi%
+    \fi%
+    \PfMbnp=\numexpr\PfMbnp+1%
+  }%
+  \ifnum\PfMcnp=0\relax%
+    \xdef\RetiensNonPremiersEntreEuxInf{1}%
+  \fi%
+  \ifnum\PfMdnp=0\relax%
+    \xdef\RetiensPremiersEntreEuxInf{1}%
+  \fi%
+}%
+
 % Définitions pour les compétences
 \NewDocumentCommand\Competences{O{3}m}{%
   \setsepchar[*]{/}\ignoreemptyitems%
@@ -555,8 +681,6 @@
   \]
 }%
 
-\newlength\PfMLargeurComp
-
 \def\Buildtabcompetences#1#2{%
   \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}|}}%
@@ -619,14 +743,14 @@
 \def\endIndiceWrite{\immediate\closeout\verbatim at out\@esphack}
 \makeatother
 
-\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}}
-\def\endSolutionNow{\par\goodbreak}
+\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}\PfMAffichageHideItemSolution}
+\def\endSolutionNow{\par\goodbreak\PfMshowitems}
 
-\def\ReponseNow{\textbf{Réponse(s) de l'exercice --}\par\nopagebreak}
-\def\endReponseNow{\par\goodbreak}
+\def\ReponseNow{\textbf{Réponse(s) de l'exercice --}\par\nopagebreak\PfMAffichageHideItemSolution}
+\def\endReponseNow{\par\goodbreak\PfMshowitems}
 
-\def\IndiceNow{\textbf{Indice(s) --}\par\nopagebreak}
-\def\endIndiceNow{\par\goodbreak}
+\def\IndiceNow{\textbf{Indice(s) --}\par\nopagebreak\PfMAffichageHideItemSolution}
+\def\endIndiceNow{\par\goodbreak\PfMshowitems}
 
 \NewDocumentEnvironment{Solution}{}{}{}%
 \NewDocumentEnvironment{Reponse}{}{}{}%
@@ -721,18 +845,21 @@
     \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~##1 :\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}%
+      \IfFileExists{\jobname-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ref{page-\thePfMMaquette-##1} :\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}%
     }%
   }{%
-  \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
-    \setcounter{PfMExoSol}{##1}%
-    \setcounter{PfMAlea}{0}%
-    \IfFileExists{\jobname-Ex##1.sol}{\textbf{Corrigé de l'exercice\ifnum\thePfMExo=1\relax\else~##1\fi\PfMAffichageTitreSolution}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ex##1.rep}{\textbf{Réponse(s) seule(s) de l'exercice\ifnum\thePfMExo=1\relax\else~##1\fi}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{%
-        \IfFileExists{\jobname-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice\ifnum\thePfMExo=1\relax\else~##1\fi}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}
+    \setcounter{PfMExoSol}{0}%
+    \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+      \refstepcounter{PfMExoSol}%{##1}%
+      \label{pagesol-\thePfMMaquette-\thePfMExoSol}
+      \setcounter{PfMAlea}{0}%
+      \IfFileExists{\jobname-Ex##1.sol}{\PfMAffichageHideItemSolution\textbf{Corrigé de l'exercice\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}{}%
+        }%
       }%
+      \PfMshowitems%
     }%
   }%
-  }%
 }%
 %%%%%%%% BAREME %%%%%%%%%%%
 %% Bareme
@@ -822,6 +949,8 @@
   }%
 }%
 
+\def\TexteDevantPointParExercice{}%
+
 \newcommand\TableauRecapitulatif{%
   \@ifundefined{Op at TotalExo}{Recompilez}%
   {%
@@ -831,7 +960,7 @@
       \multicolumn{2}{|c|}{Barème récapitulatif}\\
       \hline
       \xintFor* ##1 in {\xintSeq{1}{\TotalExo}}\do{
-      Exercice ##1&\total{##1-##1}\\
+      Exercice ##1&\TexteDevantPointParExercice\total{##1-##1}\\
       }
       \hline
     \end{tabular}
@@ -839,6 +968,49 @@
 }%
 \makeatother
 %%%%%%%% FIN BAREME %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Commandes pour les affichages optionnels dans les cadre
+\NewDocumentCommand{\PfMAffichageCompetencesTravaillees}{}{%
+  \ifboolKV[ClesExercices]{AffichageCompetence}{%
+     \node[%
+     fill=white,%
+     anchor=east,%
+     xshift=-10pt,%
+     text=PfMColCpt,%
+     ]
+     at (frame.north east)
+     {\itshape\scriptsize\sffamily Compétence(s) dominante(s) : \useKV[ClesExercices]{Competence}};
+   }{}%
+}
+\NewDocumentCommand{\PfMLienVersSolution}{}{%
+  \ifboolKV[Boulot]{VersSolution}{%
+    \ifboolKV[ClesExercices]{PasCorrige}{}{%
+      \node[%
+      fill=tcbcolback,%
+      anchor=center,%
+      ] at (frame.east){\hyperref[pagesol-\thePfMMaquette-\thePfMExo]{\faKey}};%
+    }%
+  }{}%
+}%
+
+\makeatletter
+\NewDocumentCommand{\PfMAffichageSource}{}{%
+  \ifboolKV[ClesExercices]{AffichageSource}{%
+    \node[%
+    fill=tcbcolback,
+    anchor=east,
+    yshift=0.5pt,
+    xshift=-\kvtcb at rightlower,%-10pt,
+    text=PfMColSrc,
+    ]
+    at (frame.south east)
+    {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
+  }{}%
+}%
+\makeatother
+%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
 %%%Style des différents documents
 \tcbset{%
   tikzbase/.style={%
@@ -888,16 +1060,9 @@
       (title.south east)--++(90:\tcboxedtitleheight)--++(183:\tcboxedtitlewidth)--++(-90:\tcboxedtitleheight)|-cycle;
     },%
     overlay unbroken and first={%
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=gray!50,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}%
+      %
+      \PfMAffichageSource%
+      %
       \ifboolKV[ClesExercices]{BaremeTotal}{%
         \node[
         fill=white,
@@ -908,7 +1073,8 @@
         ]
         at (frame.north east)
         {\footnotesize\sffamily \total{\the\c at PfMSection-\the\c at PfMExo}};
-      }{}
+      }{}%
+      \PfMLienVersSolution%
     }%
   }%
 }%
@@ -934,7 +1100,7 @@
   \begin{tcolorbox}[%
   tikzdm,%
   label is label,%
-  label=page-\thePfMMaquette-\thePfMExo%
+  label=page-\thePfMMaquette-\thePfMExo,%
   ]%
   \ifboolKV[Boulot]{Dys}{\raggedright}{}%
   #3
@@ -1150,27 +1316,11 @@
       \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]{AffichageCompetence}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColCpt,%
-        ]
-        at (frame.north east)
-        {\itshape\scriptsize\sffamily Compétence(s) dominante(s) : \useKV[ClesExercices]{Competence}};
-      }{}%
+      \PfMAffichageCompetencesTravaillees%
       %%
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColSrc,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}%
+      \PfMAffichageSource%
+      %
+      \PfMLienVersSolution%
     }%
   }%
 }%
@@ -1617,27 +1767,11 @@
       \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]{AffichageCompetence}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColCpt,%
-        ]
-        at (frame.north east)
-        {\itshape\scriptsize\sffamily Compétence(s) dominante(s) : \useKV[ClesExercices]{Competence}};
-      }{}%
+      \PfMAffichageCompetencesTravaillees%
       %%
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColSrc,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}%
+      \PfMAffichageSource%
+      %
+      \PfMLienVersSolution%
     }%
   }%
 }%
@@ -1848,30 +1982,58 @@
   }%
 }%
 
+\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
+    \expandafter\xdef\csname PfMHideSol\Roman{PfMExo}\endcsname{A}}{%
+    %Je n'ai pas d'élève à profile
+    \expandafter\xdef\csname PfMHideSol\Roman{PfMExo}\endcsname{}%
+  }%
+}%
+
+\NewDocumentCommand\PfMAffichageHideItemSolution{}{%
+  \expandafter\xdef\csname PfMEcrireHideItemSol\endcsname{\csname PfMHideSol\Roman{PfMExoSol}\endcsname}%
+  \ifx\bla\PfMEcrireHideItemSol\bla%
+%    \textcolor{blue}{Normalement, pas de hide car clé profile pas active.}
+  \else
+%    \textcolor{red}{Hide Item dans les solutions}
+    \PfMhideitems%
+  \fi%
+}%
+
 \NewDocumentEnvironment{exerciceFiche}{so+b}{%
   \setcounter{PfMAlea}{0}%
   \setcounter{PfMNbLogo}{1}%
   \useKVdefault[ClesExercices]%
   \setKV[ClesExercices]{#2}%
-  \IfBooleanTF{#1}{%
-    \setKV[ClesExercices]{Numerote=false}%
-  }{}%
-  \colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}%
-  \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}%
-  \setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
-  \refstepcounter{PfMSection}%
-  \PfMChoixCorrection%
-  \refstepcounter{PfMExo}%
-  \PfMChoixTitreSolution%
-  \begin{tcolorbox}[%
-  tikzfiche,
-  label is label,
-  label=page-\thePfMMaquette-\thePfMExo
-  ]
-  \ifboolKV[Boulot]{Dys}{\raggedright}{}%
-  #3
-  \end{tcolorbox}%
-  \PfMApresLesExercices%
+  \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}%
+    \PfMChoixTitreSolution%
+    \PfMChoixHideItemSolution%
+    \begin{tcolorbox}[%
+      tikzfiche,
+      label is label,
+      label=page-\thePfMMaquette-\thePfMExo
+      ]
+      \ifboolKV[Boulot]{Dys}{\raggedright}{}%
+      #3
+    \end{tcolorbox}%
+    \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}%
+    \PfMApresLesExercices%
+  }%
 }{}
 
 \NewDocumentEnvironment{exerciceDS}{so+b}{%
@@ -2026,28 +2188,12 @@
       %% 
       \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]{AffichageCompetence}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColCpt,%
-        ]
-        at (frame.north east)
-        {\itshape\scriptsize\sffamily Compétence(s) dominante(s) : \useKV[ClesExercices]{Competence}};
-      }{}%
-      %%
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColSrc,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}%
+      %
+      \PfMAffichageCompetencesTravaillees%
+      %
+      \PfMAffichageSource%
+      %
+      \PfMLienVersSolution%
     }%
   }%
 }%
@@ -2091,7 +2237,9 @@
   \refstepcounter{PfMExo}%
   \PfMChoixTitreSolution%
   \tcolorbox[%
-  tikzpdt
+  tikzpdt,
+  label is label,
+  label=page-\thePfMMaquette-\thePfMExo
   ]%
   \ifboolKV[Boulot]{Dys}{\raggedright}{}%
 }{\endtcolorbox%
@@ -2173,17 +2321,8 @@
         }
       }
       ;
-      %% 
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=gray!50,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}%
+      %%
+      \PfMAffichageSource%
     }%
   }%
 }%
@@ -2212,9 +2351,6 @@
   \endtcolorbox%
 }
 
-\newlength{\CRRHauteur}
-\setlength{\CRRHauteur}{10cm}
-
 \newenvironment{CRRemarque}{%
   \tcolorbox[colback=white,height=\CRRHauteur,title=REMARQUE(S),fonttitle=\color{black}\bfseries\sffamily,colbacktitle=white%
   ]}
@@ -2480,28 +2616,12 @@
       %% 
       \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=ColExoFiche,
-        anchor=east,
-        xshift=-\kvtcb at rightlower,
-        text=PfMColCpt,%
-        ]
-        at (frame.north east)
-        {\itshape\scriptsize\sffamily Compétence(s) dominante(s) : \useKV[ClesExercices]{Competence}};
-      }{}%
-      %%
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[%
-        fill=ColExoFiche,
-        anchor=east,
-        xshift=-\kvtcb at rightlower,
-        text=PfMColSrc,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}%
+      %
+      \PfMAffichageCompetencesTravaillees%
+      %
+      \PfMAffichageSource%
+      % Lien vers la solution
+      \PfMLienVersSolution
     }%
   }%
 }%
@@ -2553,27 +2673,11 @@
       \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]{AffichageCompetence}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColCpt,%
-        ]
-        at (frame.north east)
-        {\itshape\scriptsize\sffamily Compétence(s) dominante(s) : \useKV[ClesExercices]{Competence}};
-      }{}%
+      \PfMAffichageCompetencesTravaillees%
       %%
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[%
-        fill=white,
-        anchor=east,
-        xshift=-10pt,
-        text=PfMColSrc,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}%
+      \PfMAffichageSource%
+      %
+      \PfMLienVersSolution%
     }%
   }%
 }%
@@ -2640,17 +2744,9 @@
     fonttitle=\bfseries\sffamily,
     title=Exercice\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{},
     overlay unbroken and first={%
-      \ifboolKV[ClesExercices]{AffichageSource}{%
-        \node[
-        fill=white,
-        anchor=east,
-        yshift=0.5pt,
-        xshift=-10pt,
-        text=gray!85,
-        ]
-        at (frame.south east)
-        {\scriptsize\sffamily \useKV[ClesExercices]{Source}};
-      }{}
+      %
+      \PfMAffichageSource%
+      %
       \ifboolKV[ClesExercices]{BaremeTotal}{%
         \node[
         fill=white,
@@ -2662,6 +2758,7 @@
         at (frame.north east)
         {\footnotesize\sffamily \total{\the\c at PfMSection-\the\c at PfMExo}};
       }{}
+      \PfMLienVersSolution%
     }%
   }%
 }%
@@ -2761,17 +2858,18 @@
 \NewDocumentCommand\PfMBasculeDys{}{%
   \ifboolKV[Boulot]{Dys}{%
     % d'après \url{https://culturedys.com/quelle-est-la-meilleure-police-pour-les-dyslexiques/}
-    \fontsize{14}{\fpeval{16.8*1.5}}\selectfont%
+    \xdef\PfMTaillePointDys{\useKV[Boulot]{Taille}}
+    \fontsize{\PfMTaillePointDys}{\fpeval{\PfMTaillePointDys*1.2*1.5}}\selectfont%
     \raggedright%
   }{%
     \ifnum\thePfMMaquette=1\relax%
     \else%
       \ifnum\PfMFontSize=0\relax%
-        \fontsize{\fpeval{10}}{\fpeval{1.2*10}}%
+        \fontsize{10}{\fpeval{1.2*10}}%
       \else\ifnum\PfMFontSize=1\relax%
-          \fontsize{\fpeval{11}}{\fpeval{1.2*11}}%
+          \fontsize{11}{\fpeval{1.2*11}}%
         \else%
-          \fontsize{\fpeval{12}}{\fpeval{1.2*12}}%
+          \fontsize{12}{\fpeval{1.2*12}}%
         \fi%
       \fi%
       \selectfont%



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