diff options
author | Karl Berry <karl@freefriends.org> | 2023-11-10 21:40:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-11-10 21:40:05 +0000 |
commit | ae3c0785bae804df93c6d5c0ecf0904bc3022da7 (patch) | |
tree | c0d5c4e0a67455934511af6dc8ad2a636abbc29f /Master | |
parent | 92a1f8b13b8d8579f843de4b763bdfb64109843f (diff) |
profmaquette (10nov23)
git-svn-id: svn://tug.org/texlive/trunk@68803 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.pdf (renamed from Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.pdf) | bin | 241332 -> 243076 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.tex (renamed from Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.tex) | 11 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty | 456 |
3 files changed, 260 insertions, 207 deletions
diff --git a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.pdf b/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.pdf Binary files differindex 684fb60cce5..d32a7eedee4 100644 --- a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.pdf +++ b/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.pdf diff --git a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.tex b/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.tex index deb64e3d34e..3b007e28f36 100644 --- a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.tex +++ b/Master/texmf-dist/doc/latex/profmaquette/ProfMaquette-doc.tex @@ -734,7 +734,7 @@ Si on souhaite citer la source d'un exercice ou lui donner un titre, on dispose \begin{Maquette}[Fiche]{Theme=Algorithmique} \colorlet{PfMColCpt}{Crimson} \colorlet{PfMColSrc}{NavyBlue} - \begin{exercice}[Source=Olympiades 2019,Titre=Modifier des mots,Competence=Raisonner] + \begin{exercice}[Source=Olympiades 2019,Titre= : Modifier des mots,Competence=Raisonner] Dans ce problème, on appellera {\em mot} toute suite de lettres formée des lettres A, D et G. Par exemple : ADD, A, AAADG sont des {\em mots}. \\Astrid possède un logiciel qui fonctionne de la manière suivante : un utilisateur entre un {\em mot} et, après un clic sur EXÉCUTER, chaque lettre A du {\em mot} (s'il y en a) est remplacée par le {\em mot} AGADADAGA. Ceci donne un nouveau {\em mot}.\\Par exemple, si l'utilisateur rentre le {\em mot} AGA, on obtient le {\em mot} AGADADAGAGAGADADAGA. Un deuxième clic sur EXÉCUTER réitère la transformation décrite ci-dessus au nouveau {\em mot}, et ainsi de suite. \begin{enumerate} @@ -747,7 +747,7 @@ Si on souhaite citer la source d'un exercice ou lui donner un titre, on dispose \begin{Maquette}[Fiche]{Theme=Algorithmique} \colorlet{PfMColCpt}{Crimson} \colorlet{PfMColSrc}{NavyBlue} - \begin{exercice}[Source=Olympiades 2019,Titre=Modifier des mots,Competence=Raisonner] + \begin{exercice}[Source=Olympiades 2019,Titre= : Modifier des mots,Competence=Raisonner] Dans ce problème, on appellera {\em mot} toute suite de lettres formée des lettres A, D et G. Par exemple : ADD, A, AAADG sont des {\em mots}. \\Astrid possède un logiciel qui fonctionne de la manière suivante : un utilisateur entre un {\em mot} et, après un clic sur EXÉCUTER, chaque lettre A du {\em mot} (s'il y en a) est remplacée par le {\em mot} AGADADAGA. Ceci donne un nouveau {\em mot}.\\Par exemple, si l'utilisateur rentre le {\em mot} AGA, on obtient le {\em mot} AGADADAGAGAGADADAGA. Un deuxième clic sur EXÉCUTER réitère la transformation décrite ci-dessus au nouveau {\em mot}, et ainsi de suite. \begin{enumerate} @@ -1016,7 +1016,7 @@ Dans le cas de cette maquette, l'environnement \lstinline!exercice! dispose de l \clearpage \subsection*{Focus sur la maquette \lstinline!FdR!} 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. \`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. +\\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{Maquette}[FdR]{Theme=Calcul mental} \begin{center} @@ -1116,7 +1116,7 @@ Dans le cas de cette maquette, l'environnement \lstinline!exercice! dispose des \end{Maquette} \clearpage \subsection*{Focus sur la maquette \lstinline!CAN!} -Dans le cas de cette maquette, l'environnement \lstinline!exercice! n'admet aucune clé. La création de la page de garde et du tableau est automatique mais nécessite {\em au moins} deux compilations pour adapter au mieux les dimensions du tableau. +Dans le cas de cette maquette, l'environnement \lstinline!exercice! n'admet aucune clé. La création de la page de garde et du tableau est automatique mais nécessite {\em au moins} deux compilations pour adapter au mieux les dimensions du tableau. De plus, la compilation crée (dans le répertoire courant) des fichiers \lstinline!*.can! (et éventuellement \lstinline!*.sol!) : ils peuvent être supprimés après l'obtention du document final. La commande \lstinline!\Complement{}! permet d'ajouter du contenu à la colonne \og Réponse\fg. @@ -1321,7 +1321,8 @@ Cela engendre, si nécessaire, la création de fichier \lstinline!*.sol! pour le \clearpage \section*{Historique} \begin{description} -\item[\PfMfiledate{}--v \PfMfileversion] Création du format CAN (Course aux nombres). +\item[\PfMfiledate{}--v \PfMfileversion] Exercices {\em éventuellement} non numérotés. Correction de bugs (Feuille de route). + %0.65 Création du format CAN (Course aux nombres). \end{description} \end{document} %%% Local Variables: diff --git a/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty b/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty index 714e745a63a..e69c5c8b3e3 100644 --- a/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty +++ b/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty @@ -2,9 +2,9 @@ % licence : Released under the LaTeX Project Public License v1.3c % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e}% -\def\filedate{2023/11/01}% +\def\filedate{2023/11/09}% \let\PfMfiledate\filedate% -\def\fileversion{0.65}% +\def\fileversion{0.75}% \let\PfMfileversion\fileversion% \ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]% @@ -275,51 +275,51 @@ }% %% -%\newcounter{Melquestions}% -%\newcounter{Comptequestions}% +\newcounter{Melquestions}% +\newcounter{Comptequestions}% % -%\NewDocumentEnvironment{Enumelange}{o+b}{% -% \setcounter{Melquestions}{0}% -% \setsepchar{\item}% -% \readlist*\ListeTest{#2}% -% \IfNoValueTF{#1}{% -% \ChoixAleaMultiMix{\ListeTestlen}{1}{\ListeTestlen}{0}{\ListeShuffleA}% -% \xdef\MelangeValeurTotale{\ListeTestlen}% -% }{% -% \ChoixAleaMultiMix{#1}{1}{\ListeTestlen}{0}{\ListeShuffleA}% -% \xdef\MelangeValeurTotale{#1}% -% }% -% \ExporteListe{ListeShuffle}{\ListeShuffleA}% -% \setsepchar{,}\ignoreemptyitems% -% \readlist*\ListeNumQ{\ListeShuffleA}% -% \setcounter{Comptequestions}{1}% -% \begin{enumerate} -% \loop% -% \setcounter{Melquestions}{\ListeNumQ[\theComptequestions]}% -% \item \ListeTest[\theMelquestions]% -% \stepcounter{Comptequestions}% -% \ifnum\theComptequestions<\numexpr\MelangeValeurTotale+1% -% \repeat% -% \end{enumerate} -%}{}% - -%\NewDocumentEnvironment{Enumelangesol}{b}{% -% \setcounter{Melquestions}{0}% -% \setsepchar{\item}% -% \readlist*\ListeTest{#1}% -% \RestoreListe{ListeShuffle}% -% \setsepchar{,}\ignoreemptyitems% -% \readlist*\ListeNumQ{\ListeShuffle}% -% \setcounter{Comptequestions}{1}% -% \begin{enumerate} -% \loop% -% \setcounter{Melquestions}{\ListeNumQ[\theComptequestions]}% -% \item \ListeTest[\theMelquestions]% -% \stepcounter{Comptequestions}% -% \ifnum\theComptequestions<\numexpr\ListeNumQlen+1% -% \repeat% -% \end{enumerate} -%}{}% +\NewDocumentEnvironment{Enumelange}{o+b}{% + \setcounter{Melquestions}{0}% + \setsepchar{\item}% + \readlist*\ListeTest{#2}% + \IfNoValueTF{#1}{% + \ChoixAleaMultiMix{\ListeTestlen}{1}{\ListeTestlen}{0}{\ListeShuffleA}% + \xdef\MelangeValeurTotale{\ListeTestlen}% + }{% + \ChoixAleaMultiMix{#1}{1}{\ListeTestlen}{0}{\ListeShuffleA}% + \xdef\MelangeValeurTotale{#1}% + }% + \ExporteListe{ListeShuffle}{\ListeShuffleA}% + \setsepchar{,}\ignoreemptyitems% + \readlist*\ListeNumQ{\ListeShuffleA}% + \setcounter{Comptequestions}{1}% + \begin{enumerate} + \loop% + \setcounter{Melquestions}{\ListeNumQ[\theComptequestions]}% + \item \ListeTest[\theMelquestions]% + \stepcounter{Comptequestions}% + \ifnum\theComptequestions<\numexpr\MelangeValeurTotale+1% + \repeat% + \end{enumerate} +}{}% + + \NewDocumentEnvironment{Enumelangesol}{b}{% + \setcounter{Melquestions}{0}% + \setsepchar{\item}% + \readlist*\ListeTest{#1}% + \RestoreListe{ListeShuffle}% + \setsepchar{,}\ignoreemptyitems% + \readlist*\ListeNumQ{\ListeShuffle}% + \setcounter{Comptequestions}{1}% + \begin{enumerate} + \loop% + \setcounter{Melquestions}{\ListeNumQ[\theComptequestions]}% + \item \ListeTest[\theMelquestions]% + \stepcounter{Comptequestions}% + \ifnum\theComptequestions<\numexpr\ListeNumQlen+1% + \repeat% + \end{enumerate} +}{}% % Définitions pour les compétences \NewDocumentCommand\Competences{O{3}m}{% @@ -931,13 +931,13 @@ \xdef\PfMListeExerciceFdR{\csname \Alph{PfMMaquette}FdRtrue\endcsname}% \ifcsname \Alph{PfMMaquette}FdRstop\endcsname \xdef\PfMListeExerciceFdRStop{\csname \Alph{PfMMaquette}FdRstop\endcsname}% - \else - \xdef\PfMListeExerciceFdRStop{} - \fi + \else% + \xdef\PfMListeExerciceFdRStop{}% + \fi% % On ajoute un stop au dernier exercice \xdef\PfMListeExerciceFdRStop{\PfMListeExerciceFdRStop,\FdRTotalExo}% -% Liste Exos : \PfMListeExerciceFdR\\ -% Liste Stop : \PfMListeExerciceFdRStop\\ + %Liste Exos : \PfMListeExerciceFdR\\ + %Liste Stop : \PfMListeExerciceFdRStop\\ \BuildRouteTikz{\FdRTotalExo}{\PfMListeExerciceFdR}{\PfMListeExerciceFdRStop}% }% }% @@ -947,12 +947,12 @@ \setsepchar{,}\ignoreemptyitems% \readlist*\ListeRetiensExo{#2}% \readlist*\ListeRetiensStop{#3}% - \reademptyitems -% Les exos retenus : \showitems\ListeRetiensExo[]\\ -% Les exos stop : \showitems\ListeRetiensStop[]\\ + \reademptyitems% + %Les exos retenus : \showitems\ListeRetiensExo[]\\ + %Les exos stop : \showitems\ListeRetiensStop[]\\ \xdef\LongueurA{\ListeRetiensExolen}% \xdef\LongueurB{\fpeval{\ListeRetiensStoplen-1}}% - \xdef\PfMFooExoIncrustes{} + \xdef\PfMFooExoIncrustes{}% \xintFor* ##1 in{\xintSeq{1}{#1}}\do{% \xdef\RetiensExclus{0}% \xintFor* ##2 in {\xintSeq{1}{\LongueurA}}\do{% @@ -960,11 +960,18 @@ }% \xintifboolexpr{\RetiensExclus>0}{}{\xdef\PfMFooExoIncrustes{\PfMFooExoIncrustes,##1}}% }% - \setsepchar{,}\ignoreemptyitems% - \readlist*\ListeRetiensExclus{\PfMFooExoIncrustes}% - \xdef\LongueurC{\ListeRetiensExcluslen}% + %%%%%%%%%% + %PfMFooExoIncrustes : \PfMFooExoIncrustes\\% + \ifx\bla\PfMFooExoIncrustes\bla% + \xdef\LongueurC{0}% + \else% + \setsepchar{,}\ignoreemptyitems% + \readlist*\ListeRetiensExclus{\PfMFooExoIncrustes}% + \xdef\LongueurC{\ListeRetiensExcluslen}% + \fi% + %%%%%%%%%%%%%%%%%%%% % portion 1 -% Portion 1 :\\ + % Portion 1 :\\ \xdef\ListeRoute{}% \xdef\ListeRouteExclus{}% \xdef\NBExo{0}\xdef\NBExoSup{0}% @@ -975,9 +982,12 @@ \xdef\NBExo{\fpeval{\NBExo+1}}\xdef\ListeRoute{\ListeRoute,\ListeRetiensExo[##1]}% }% }% - \xintFor* ##1 in{\xintSeq{1}{\LongueurC}}\do{% - \xintifboolexpr{\ListeRetiensExclus[##1]>\ListeRetiensStop[1]}{}{\xdef\NBExoSup{\fpeval{\NBExoSup+1}}\xdef\ListeRouteExclus{\ListeRouteExclus,\ListeRetiensExclus[##1]}}% - }% + \ifnum\LongueurC=0\relax + \else + \xintFor* ##1 in{\xintSeq{1}{\LongueurC}}\do{% + \xintifboolexpr{\ListeRetiensExclus[##1]>\ListeRetiensStop[1]}{}{\xdef\NBExoSup{\fpeval{\NBExoSup+1}}\xdef\ListeRouteExclus{\ListeRouteExclus,\ListeRetiensExclus[##1]}}% + }% + \fi \xintifboolexpr{\NBExoSup==\NBExo}{}{% \xintifboolexpr{\NBExoSup>\NBExo}{% \xintFor* ##1 in{\xintSeq{1}{\fpeval{\NBExoSup-\NBExo}}}\do{% @@ -991,21 +1001,24 @@ }% \xdef\ListeRoute{\ListeRoute,0}%0 pour le symbole stop \xdef\ListeRouteExclus{\ListeRouteExclus,0}%0 pour le symbole stop -% Route Basse : \ListeRoute\\ -% Route Haute : \ListeRouteExclus\\ + %Route Basse P1 : \ListeRoute\\ + %Route Haute P1 : \ListeRouteExclus\\ % portions centrales -% Portions centrales :\\ - \xintifboolexpr{\ListeRetiensStoplen>2}{% - \xintFor* ##1 in{\xintSeq{1}{\fpeval{\LongueurB-1}}}\do{% - \xdef\NBExo{0}\xdef\NBExoSup{0} - \xintFor* ##2 in{\xintSeq{1}{\LongueurA}}\do{% - \xintifboolexpr{\ListeRetiensExo[##2]<\fpeval{\ListeRetiensStop[##1]+1} || \ListeRetiensExo[##2]>\ListeRetiensStop[\fpeval{##1+1}]}{}{\xdef\NBExo{\fpeval{\NBExo+1}}\xdef\ListeRoute{\ListeRoute,\ListeRetiensExo[##2]}% - }% - }% - \xintFor* ##2 in{\xintSeq{1}{\LongueurC}}\do{% - \xintifboolexpr{\ListeRetiensExclus[##2]<\fpeval{\ListeRetiensStop[##1]+1} || \ListeRetiensExclus[##2]>\ListeRetiensStop[\fpeval{##1+1}]}{}{\xdef\NBExoSup{\fpeval{\NBExoSup+1}}\xdef\ListeRouteExclus{\ListeRouteExclus,\ListeRetiensExclus[##2]}% - }%% - }% + % Portions centrales :\\ + \xintifboolexpr{\ListeRetiensStoplen>2}{% + \xintFor* ##1 in{\xintSeq{1}{\fpeval{\LongueurB-1}}}\do{% + \xdef\NBExo{0}\xdef\NBExoSup{0}% + \xintFor* ##2 in{\xintSeq{1}{\LongueurA}}\do{% + \xintifboolexpr{\ListeRetiensExo[##2]<\fpeval{\ListeRetiensStop[##1]+1} || \ListeRetiensExo[##2]>\ListeRetiensStop[\fpeval{##1+1}]}{}{\xdef\NBExo{\fpeval{\NBExo+1}}\xdef\ListeRoute{\ListeRoute,\ListeRetiensExo[##2]}% + }% + }% + \ifnum\LongueurC=0\relax + \else + \xintFor* ##2 in{\xintSeq{1}{\LongueurC}}\do{% + \xintifboolexpr{\ListeRetiensExclus[##2]<\fpeval{\ListeRetiensStop[##1]+1} || \ListeRetiensExclus[##2]>\ListeRetiensStop[\fpeval{##1+1}]}{}{\xdef\NBExoSup{\fpeval{\NBExoSup+1}}\xdef\ListeRouteExclus{\ListeRouteExclus,\ListeRetiensExclus[##2]}% + }%% + }% + \fi \xintifboolexpr{\NBExoSup==\NBExo}{}{% \xintifboolexpr{\NBExoSup>\NBExo}{% \xintFor* ##3 in{\xintSeq{1}{\fpeval{\NBExoSup-\NBExo}}}\do{% @@ -1019,38 +1032,43 @@ }% \xdef\ListeRoute{\ListeRoute,0}\xdef\ListeRouteExclus{\ListeRouteExclus,0}% }% - }{}% + }{}% + %Route Basse P2 : \ListeRoute\\ + %Route Haute P2 : \ListeRouteExclus\\ % portion finale -% Portion fin \\ - \xintifboolexpr{\ListeRetiensStoplen>1}{% - \xdef\NBExo{0}\xdef\NBExoSup{0}% - \xintFor* ##1 in{\xintSeq{1}{\LongueurA}}\do{% - \xintifboolexpr{\ListeRetiensExo[##1]>\fpeval{\ListeRetiensStop[\ListeRetiensStoplen-1]}}{\xdef\NBExo{\fpeval{\NBExo+1}}\xdef\ListeRoute{\ListeRoute,\ListeRetiensExo[##1]}{}% - }% - }% - \xintFor* ##1 in{\xintSeq{1}{\LongueurC}}\do{% - \xintifboolexpr{\ListeRetiensExclus[##1]>\fpeval{\ListeRetiensStop[\ListeRetiensStoplen-1]}}{\xdef\NBExoSup{\fpeval{\NBExoSup+1}}\xdef\ListeRouteExclus{\ListeRouteExclus,\ListeRetiensExclus[##1]}{}% - }% - }% - \xintifboolexpr{\NBExoSup==\NBExo}{}{ - \xintifboolexpr{\NBExoSup>\NBExo}{% - \xintFor* ##1 in{\xintSeq{1}{\fpeval{\NBExoSup-\NBExo}}}\do{% - \xdef\ListeRoute{\ListeRoute,-1}%0 pour l'écart - }% - }{% - \xintFor* ##1 in{\xintSeq{1}{\fpeval{\NBExo-\NBExoSup}}}\do{% - \xdef\ListeRouteExclus{\ListeRouteExclus,-1}%0 pour l'écart - }% - }% - }% - \xdef\ListeRoute{\ListeRoute,0}%0 pour le symbole stop - \xdef\ListeRouteExclus{\ListeRouteExclus,0}%0 pour le symbole stop - }{}% - \setsepchar{,}\ignoreemptyitems + % Portion fin \\ + \xintifboolexpr{\ListeRetiensStoplen>1}{% + \xdef\NBExo{0}\xdef\NBExoSup{0}% + \xintFor* ##1 in{\xintSeq{1}{\LongueurA}}\do{% + \xintifboolexpr{\fpeval{\ListeRetiensExo[##1]}>\fpeval{\ListeRetiensStop[\ListeRetiensStoplen-1]}}{\xdef\NBExo{\fpeval{\NBExo+1}}\xdef\ListeRoute{\ListeRoute,\ListeRetiensExo[##1]}}{}% + }% + \ifnum\LongueurC=0\relax + \else + \xintFor* ##1 in{\xintSeq{1}{\LongueurC}}\do{% + \xintifboolexpr{\ListeRetiensExclus[##1]>\fpeval{\ListeRetiensStop[\ListeRetiensStoplen-1]}}{\xdef\NBExoSup{\fpeval{\NBExoSup+1}}\xdef\ListeRouteExclus{\ListeRouteExclus,\ListeRetiensExclus[##1]}}{}% + }% + \fi + \xintifboolexpr{\NBExoSup==\NBExo}{}{% + \xintifboolexpr{\NBExoSup>\NBExo}{% + \xintFor* ##1 in{\xintSeq{1}{\fpeval{\NBExoSup-\NBExo}}}\do{% + \xdef\ListeRoute{\ListeRoute,-1}%0 pour l'écart + }% + }{% + \xintFor* ##1 in{\xintSeq{1}{\fpeval{\NBExo-\NBExoSup}}}\do{% + \xdef\ListeRouteExclus{\ListeRouteExclus,-1}%0 pour l'écart + }% + }% + }% + \xdef\ListeRoute{\ListeRoute,0}%0 pour le symbole stop + \xdef\ListeRouteExclus{\ListeRouteExclus,0}%0 pour le symbole stop + }{}% + %Route Basse P3 : \ListeRoute\\ + %Route Haute P3 : \ListeRouteExclus\\ + \setsepchar{,}\ignoreemptyitems% \readlist*\ListeRouteBasse{\ListeRoute}% \readlist*\ListeRouteHaute{\ListeRouteExclus}% -% Liste Route : \showitems\ListeRouteBasse[]\\ -% Liste Exclus : \showitems\ListeRouteHaute[] + %Liste Route : \showitems\ListeRouteBasse[]\\ + %Liste Exclus : \showitems\ListeRouteHaute[]\\ \begin{tikzpicture} \coordinate (A-0) at (-\PfMLargeurSchemaFdR,0); \coordinate (A-1) at (0,0);% @@ -1060,20 +1078,86 @@ \coordinate[xshift=\PfMLargeurSchemaFdR] (B-##1) at (B-\fpeval{##1-1});% }% \coordinate[xshift=\PfMLargeurSchemaFdR] (A-\fpeval{\ListeRouteBasselen+1}) at (A-\ListeRouteBasselen);% - %Route haute - \xintFor* ##1 in{\xintSeq{1}{\ListeRouteHautelen}}\do{% - \xintifboolexpr{\ListeRouteHaute[##1]<0}{% - \draw[] (B-##1) to (B-\fpeval{##1+1}); - }{% - \xintifboolexpr{\ListeRouteHaute[##1]==0}{% - \draw (B-##1) to (A-##1);% - }{% - \draw[] (B-##1) to (B-\fpeval{##1+1}); - \draw[fill=white](B-##1) circle (\PfMRayonSchemaFdR) node{\ref{page-\thePfMMaquette-\ListeRouteHaute[##1]}};% - } - }% - }% - % Route basse + % Route haute + % Correct ! + %\xintFor* ##1 in{\xintSeq{1}{\ListeRouteHautelen}}\do{% + % \xintifboolexpr{\ListeRouteHaute[##1]<0}{% + % \draw[red] (B-##1) to (B-\fpeval{##1+1}); + % }{% + % \xintifboolexpr{\ListeRouteHaute[##1]==0}{% + % \draw (B-##1) to (A-##1);% + % }{% + % \draw[blue] (B-##1) to (B-\fpeval{##1+1}); + % \draw[fill=white](B-##1) circle (\PfMRayonSchemaFdR) node{\ref{page-\thePfMMaquette-\ListeRouteHaute[##1]}}; + % }% + % }% + %}% + %% Fin Correct ! + \xdef\RetiensLesZeros{0}% + \xdef\RetiensLeDepart{0}% + \xdef\RetiensLesReponses{0}% + \xdef\RetiensNonAffichees{0}% + \xdef\RetiensEtage{0} + \xintFor* ##1 in{\xintSeq{1}{\ListeRouteHautelen}}\do{% + \xintifboolexpr{\ListeRouteHaute[##1]==0}{% + \xdef\RetiensEtage{\fpeval{\RetiensEtage+1}}% + \xdef\RetiensLesReponses{\fpeval{\RetiensLesReponses+1}}% + \xintFor* ##2 in{\xintSeq{\fpeval{\RetiensLeDepart+1}}{\fpeval{\RetiensLeDepart+\RetiensLesReponses}}}\do{% + \xintifboolexpr{\ListeRouteHaute[##2]<0}{% + \xdef\RetiensNonAffichees{\fpeval{\RetiensNonAffichees+1}} + }{}% + } + %\node at (0,\RetiensEtage) {Il y a \RetiensNonAffichees fois le nombre -1.}; + % On affiche + \xintifboolexpr{\fpeval{\RetiensLesReponses-1}==\RetiensNonAffichees}{% +% % + }{% + \xintFor* ##2 in{\xintSeq{\fpeval{\RetiensLeDepart+1}}{\fpeval{\RetiensLeDepart+\RetiensLesReponses}}}\do{ + \xintifboolexpr{\ListeRouteHaute[##2]<0}{% + \draw (B-##2) to (B-\fpeval{##2+1});% + }{% + \xintifboolexpr{\ListeRouteHaute[##2]==0}{% + %\xintifboolexpr{\fpeval{\RetiensLesReponses-1}==\RetiensNonAffichees}{}{ + \draw (B-##2) to (A-##2);% + %} + }{% + \draw[] (B-##2) to (B-\fpeval{##2+1});% + \draw[fill=white](B-##2) circle (\PfMRayonSchemaFdR) node{\ref{page-\thePfMMaquette-\ListeRouteHaute[##2]}};% + }% + }% + }% + }% + % + \xdef\RetiensLeDepart{\fpeval{\RetiensLeDepart+\RetiensLesReponses}} + \xdef\RetiensLesReponses{0}% + \xdef\RetiensNonAffichees{0}% + }{\xdef\RetiensLesReponses{\fpeval{\RetiensLesReponses+1}}% + }% + }% + %Il y a \RetiensLesReponses fois le nombre -1.\par + %\xintifboolexpr{\RetiensLesReponses==\fpeval{\RetiensLeDepart+1+\RetiensLesZeros}}{% + % \xdef\RetiensLeDepart{\RetiensLeDepart+\RetiensLesZeros}% + % \xdef\RetiensLesZeros{0}% + %}{ + % \xintFor* ##2 in{\xintSeq{\fpeval{\RetiensLeDepart+1}}{\fpeval{\RetiensLeDepart+\RetiensLesZeros}}}\do{ + % \xintifboolexpr{\ListeRouteHaute[##2]<0}{% + % \draw[red] (B-##2) to (B-\fpeval{##2+1}); + % }{% + % \xintifboolexpr{\ListeRouteHaute[##2]==0}{% + % \draw (B-##2) to (A-##2);% + % }{% + % \draw[blue] (B-##2) to (B-\fpeval{##2+1}); + % \draw[fill=white](B-##2) circle (\PfMRayonSchemaFdR) node{\ref{page-\thePfMMaquette-\ListeRouteHaute[##2]}}; + % }% + % }% + % }% + % \xdef\RetiensLeDepart{\RetiensLeDepart+\RetiensLesZeros}% + % \xdef\RetiensLesZeros{0}% + %}{% + % \xdef\RetiensLesZeros{\fpeval{\RetiensLesZeros+1}}% + %} + %}% + % Route basse \foreach\i in{1,...,\fpeval{\ListeRouteBasselen}}{% \draw[line width=1pt] (A-\fpeval{\i-1}) -- (A-\i);% }% @@ -1455,30 +1539,14 @@ }{\endtcolorbox% } -\newenvironment{exerciceFicheold}[1][]{% - \setcounter{PfMAlea}{0}% - \setcounter{PfMNbLogo}{1}% - \useKVdefault[ClesExercices]% - \setKV[ClesExercices]{#1}% - \colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}% - \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}% - \setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}% - \refstepcounter{PfMSection}% - \PfMChoixCorrection% - \refstepcounter{PfMExo}% - \tcolorbox[% - tikzfiche, - label is label, - label=page-\thePfMMaquette-\thePfMExo - ] -}{\endtcolorbox% -} - -\NewDocumentEnvironment{exerciceFichenewold}{o+b}{% +\NewDocumentEnvironment{exerciceFiche}{so+b}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% - \setKV[ClesExercices]{#1}% + \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}% @@ -1490,77 +1558,81 @@ label is label, label=page-\thePfMMaquette-\thePfMExo ] - #2 + #3 \endtcolorbox% }{} -\NewDocumentEnvironment{exerciceFiche}{so+b}{% +\NewDocumentEnvironment{exerciceDS}{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}% + \immediate\write\@auxout{% + \string\opcopy{\thePfMExo}{TotalExo}% + } + \ifboolKV[ClesExercices]{BaremeTotal}{% + \immediate\write\@auxout{% + \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}% + }}{} \tcolorbox[% - tikzfiche, + tikzds, label is label, label=page-\thePfMMaquette-\thePfMExo ] #3 \endtcolorbox% -}{} +}{}% -\NewDocumentEnvironment{exerciceDS}{so+b}{% +\NewDocumentEnvironment{ExerciceRecapBrevet}{so+b}{% \setcounter{PfMAlea}{0}% \useKVdefault[ClesExercices]% \setKV[ClesExercices]{#2}% + \IfBooleanTF{#1}{% + \setKV[ClesExercices]{Numerote=false}% + }{}% + \colorlet{ColExoFiche}{\useKV[ClesExercices]{Background}}% + \colorlet{PfMCadreFiche}{\useKV[ClesExercices]{Cadre}}% \refstepcounter{PfMSection}% \PfMChoixCorrection% \refstepcounter{PfMExo}% - \immediate\write\@auxout{% - \string\opcopy{\thePfMExo}{TotalExo}% - } \ifboolKV[ClesExercices]{BaremeTotal}{% \immediate\write\@auxout{% \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}% - }}{} + }% + }{}% \tcolorbox[% - tikzds, + tikzrecapbrevet, label is label, label=page-\thePfMMaquette-\thePfMExo ] - #3 -\endtcolorbox% -}{}% +}{\endtcolorbox% +} -\newenvironment{exerciceDSold}[1][]{% +\newenvironment{ExerciceRecapBrevetold}[1][]{% \setcounter{PfMAlea}{0}% \useKVdefault[ClesExercices]% \setKV[ClesExercices]{#1}% \refstepcounter{PfMSection}% \PfMChoixCorrection% \refstepcounter{PfMExo}% - \immediate\write\@auxout{% - \string\opcopy{\thePfMExo}{TotalExo}% - } \ifboolKV[ClesExercices]{BaremeTotal}{% \immediate\write\@auxout{% \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}% - }}{} + }% + }{}% \tcolorbox[% - tikzds, + tikzrecapbrevet, label is label, label=page-\thePfMMaquette-\thePfMExo ] }{\endtcolorbox% -}% +} + \makeatother %%% Recap Brevet %%% Style Brevet @@ -1594,26 +1666,6 @@ } \makeatletter -\newenvironment{ExerciceRecapBrevet}[1][]{% - \setcounter{PfMAlea}{0}% - \useKVdefault[ClesExercices]% - \setKV[ClesExercices]{#1}% - \refstepcounter{PfMSection}% - \PfMChoixCorrection% - \refstepcounter{PfMExo}% - \ifboolKV[ClesExercices]{BaremeTotal}{% - \immediate\write\@auxout{% - \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}% - }% - }{}% - \tcolorbox[% - tikzrecapbrevet, - label is label, - label=page-\thePfMMaquette-\thePfMExo - ] -}{\endtcolorbox% -} - \tcbset{% tikzrecapbrevet/.style={% before skip=1em,% @@ -2120,7 +2172,7 @@ fill=ColExoFiche, anchor=west, xshift=\kvtcb@leftlower, - ] at (frame.north west){\bfseries\sffamily \useKV[Fiche]{NomExercice} \ifboolKV[ClesExercices]{Numerote}{\thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}}; + ] at (frame.north west){\bfseries\sffamily\useKV[Fiche]{NomExercice}\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{\useKV[ClesExercices]{Titre}}{}}; %% \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}}{} @@ -2282,7 +2334,7 @@ },interior engine=empty, }, fonttitle=\bfseries\sffamily, - title=Exercice \thePfMExo \ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}, + title=Exercice\ifboolKV[ClesExercices]{Numerote}{ \thePfMExo}{}\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}, overlay unbroken and first={% \ifboolKV[ClesExercices]{AffichageSource}{% \node[ @@ -2606,21 +2658,21 @@ \ifboolKV[Boulot]{DS}{% \setKV[DS]{#2}\TikzDS \let\exercice\exerciceDS\let\endexercice\endexerciceDS% - %\ifboolKV[Boulot]{BaremeComplet}{% - % \begin{center} - % \TableauRecapitulatif - % \end{center} - %}{}% - %\ifboolKV[Boulot]{CorrigeFin}{% - % \AddToHook{env/Maquette/after}[Correction]{% - % \setKV[Boulot]{#1}% - % \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% - % \TikzDSCor{#2}% - % \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% - % \PfMAffichageCorrige% - % \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% - % }% - %}{}% + \ifboolKV[Boulot]{BaremeComplet}{% + \begin{center} + \TableauRecapitulatif + \end{center} + }{}% + \ifboolKV[Boulot]{CorrigeFin}{% + \AddToHook{env/Maquette/after}[Correction]{% + \setKV[Boulot]{#1}% + \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \TikzDSCor{#2}% + \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% + \PfMAffichageCorrige% + \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + }% + }{}% }{% \ifboolKV[Boulot]{IE}{% \setKV[IE]{#2}\TikzIE% @@ -3142,4 +3194,4 @@ \extract{\NbVehiculesINSEE}{1}{\DieselVehiculesINSEE}% \extract{\NbVehiculesINSEE}{1}{\KmEssenceVehiculesINSEE}% \extract{\NbVehiculesINSEE}{1}{\KmDieselVehiculesINSEE}% - }
\ No newline at end of file + } |