summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profmaquette
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-11-10 03:04:54 +0000
committerNorbert Preining <norbert@preining.info>2023-11-10 03:04:54 +0000
commitd8b5161942976a522cdb1a7b580fe3886eea6bc6 (patch)
tree30b475f96e81b8b58bf4fbfb709a3e9e2551e16e /macros/latex/contrib/profmaquette
parent3425ad695d75cc781b0fe3412db3aa2ad5985959 (diff)
CTAN sync 202311100304
Diffstat (limited to 'macros/latex/contrib/profmaquette')
-rw-r--r--macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf (renamed from macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf)bin241332 -> 243076 bytes
-rw-r--r--macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.tex (renamed from macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex)11
-rw-r--r--macros/latex/contrib/profmaquette/latex/ProfMaquette.sty456
3 files changed, 260 insertions, 207 deletions
diff --git a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf b/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
index 684fb60cce..d32a7eedee 100644
--- a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
+++ b/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex b/macros/latex/contrib/profmaquette/doc/ProfMaquette-doc.tex
index deb64e3d34..3b007e28f3 100644
--- a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex
+++ b/macros/latex/contrib/profmaquette/doc/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/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
index 714e745a63..e69c5c8b3e 100644
--- a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
+++ b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
@@ -2,9 +2,9 @@
% licence : Released under the LaTeX Project Public License v1.3c
% or later, see http://www.latex-project.org/lppl.txtf
\NeedsTeXFormat{LaTeX2e}%
-\def\filedate{2023/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
+ }