From 54f5c2e495066123bfd6a075a41a0dc56278ed5f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 2 Nov 2023 19:56:46 +0000 Subject: profmaquette (2nov23) git-svn-id: svn://tug.org/texlive/trunk@68733 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex/profmaquette/TestCAN.pdf | Bin 0 -> 20353 bytes .../texmf-dist/doc/latex/profmaquette/TestCAN.tex | 27 ++ .../doc/latex/profmaquette/TestCANComplement.pdf | Bin 0 -> 21506 bytes .../doc/latex/profmaquette/TestCANComplement.tex | 31 ++ .../doc/latex/profmaquette/profmaquette-doc.pdf | Bin 203416 -> 241332 bytes .../doc/latex/profmaquette/profmaquette-doc.tex | 102 +++++-- .../tex/latex/profmaquette/ProfMaquette.sty | 337 +++++++++++++++++---- 7 files changed, 410 insertions(+), 87 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/profmaquette/TestCAN.pdf create mode 100644 Master/texmf-dist/doc/latex/profmaquette/TestCAN.tex create mode 100644 Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.pdf create mode 100644 Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.tex diff --git a/Master/texmf-dist/doc/latex/profmaquette/TestCAN.pdf b/Master/texmf-dist/doc/latex/profmaquette/TestCAN.pdf new file mode 100644 index 00000000000..ce210e3c71b Binary files /dev/null and b/Master/texmf-dist/doc/latex/profmaquette/TestCAN.pdf differ diff --git a/Master/texmf-dist/doc/latex/profmaquette/TestCAN.tex b/Master/texmf-dist/doc/latex/profmaquette/TestCAN.tex new file mode 100644 index 00000000000..58cbf7a758c --- /dev/null +++ b/Master/texmf-dist/doc/latex/profmaquette/TestCAN.tex @@ -0,0 +1,27 @@ +\documentclass[french]{article} +\usepackage[nonamssymb]{ProfCollegeT} +\usepackage{ProfMaquetteT} + +\usepackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math} +\usepackage[math-style=french,Scale=0.98]{fourier-otf} + +\newfontfamily\myfontScratch[Scale=0.725]{DejaVu Sans} + +%\usepackage[a5paper,margin=1cm,noheadfoot]{geometry} +\setlength{\parindent}{0pt} +\pagestyle{empty} + +\usepackage{babel} + +\usepackage{lipsum} + +\begin{document} +\begin{Maquette}[CAN]{} + \begin{exercice} + On considère un triangle $ABC$\dots + \end{exercice} +\end{Maquette} +\end{document} +% Local Variables: +% TeX-engine: luatex +% End: diff --git a/Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.pdf b/Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.pdf new file mode 100644 index 00000000000..a2b2f04465d Binary files /dev/null and b/Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.pdf differ diff --git a/Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.tex b/Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.tex new file mode 100644 index 00000000000..565b168d7e7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/profmaquette/TestCANComplement.tex @@ -0,0 +1,31 @@ +\documentclass[french]{article} +\usepackage[nonamssymb]{ProfCollegeT} +\usepackage{ProfMaquetteT} + +\usepackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math} +\usepackage[math-style=french,Scale=0.98]{fourier-otf} + +\newfontfamily\myfontScratch[Scale=0.725]{DejaVu Sans} + +%\usepackage[a5paper,margin=1cm,noheadfoot]{geometry} +\setlength{\parindent}{0pt} +\pagestyle{empty} + +\usepackage{babel} + +\usepackage{lipsum} + +\begin{document} +\begin{Maquette}[CAN]{CoefQ=0.5,CoefR=0.25} + \begin{exercice} + $17+19$ + \end{exercice} + \begin{exercice} + $ABC$ est un triangle tel que $\widehat{ABC}=\ang{30}$ et $\widehat{BCA}=\ang{70}$. Alors\dots + \Complement{$\widehat{CAB}=\dots$} + \end{exercice} +\end{Maquette} +\end{document} +% Local Variables: +% TeX-engine: luatex +% End: diff --git a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.pdf b/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.pdf index 26ddb6c90ff..684fb60cce5 100644 Binary files a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.pdf and b/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.pdf differ diff --git a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.tex b/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.tex index 201af9c0d0f..deb64e3d34e 100644 --- a/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.tex +++ b/Master/texmf-dist/doc/latex/profmaquette/profmaquette-doc.tex @@ -5,6 +5,7 @@ \input{Christ7} \usepackage[warnings-off={mathtools-colon,mathtools-overbracket}]{unicode-math} \usepackage{fourier-otf} + \usepackage[a4paper,margin=1.5cm,nohead,includefoot]{geometry} \setlength{\parindent}{0pt} \pagestyle{empty} @@ -120,13 +121,13 @@ 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}, + 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}, emph={Maquette,exercice,exercice,Solution,Reponse,Indice},% classoffset=1, - keywords={DM,DS,IE,Fiche,CorrigeFin,CorrigeApres,PdT,Parcours,ParcoursPerso,Cours,FdR,Contrat}, + keywords={DM,DS,IE,Fiche,CorrigeFin,CorrigeApres,PdT,Parcours,ParcoursPerso,Cours,FdR,Contrat,CAN}, keywordstyle=\color{OliveDrab}, classoffset=2, - keywords={Theme,Niveau,Classe,Date,Calculatrice,Code,Numero,Sujet,Nom,NumSujet,Fichier,Type}, + 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}, @@ -182,8 +183,8 @@ {\sffamily\textlangle #1\textrangle}% }% -\newcommand{\Defaut}[1]{% -\hfill valeur par défaut : {\sffamily #1}\par% +\newcommand\Defaut[1]{% +\hfill valeur par défaut : {\sffamily #1}\\[-1em]% }% \usepackage{parskip} @@ -303,7 +304,7 @@ Le c\oe ur de l'utilisation du package \lstinline!ProfMaquette! est donc une ges \end{Codes} C'est lui qui indique : \begin{itemize} -\item le type de document souhaité \metamk{TypeDocument} (Devoir Maison / Devoir Surveillé / Interrogation écrite / Fiche d'exercices / Parcours d'exercices / Parcours personnalisé / Plan de travail / Cours / Contrat de confiance / Feuille de route); +\item le type de document souhaité \metamk{TypeDocument} (Devoir Maison / Devoir Surveillé / Interrogation écrite / Fiche d'exercices / Parcours d'exercices / Parcours personnalisé / Plan de travail / Cours / Contrat de confiance / Feuille de route / CAN (Course aux nombres)); \item et si ce travail est corrigé \metamk{TypeCorrection} (à la suite d'un exercice ou à la fin du document) ou pas; \end{itemize} puis il indiquera les caractéristiques \metamk{Caracteristiques} du document souhaité. @@ -382,7 +383,7 @@ puis il indiquera les caractéristiques \metamk{Caracteristiques} du document so \item[]La clé \Cle{Niveau}\Defaut{6} \item[]La clé \Cle{Theme} Thème de la fiche \Defaut{Les nombres décimaux} \item[]La clé \Cle{Code}\Defaut{} - \item[]La clé \Cle{Nomexercice} pour modifier le nom des exercices\Defaut{exercice} + \item[]La clé \Cle{NomExercice} pour modifier le nom des exercices\Defaut{exercice} \end{itemize} \end{Description} \end{CadreMP} @@ -405,7 +406,7 @@ puis il indiquera les caractéristiques \metamk{Caracteristiques} du document so \item[]La clé \Cle{Niveau}\Defaut{6} \item[]La clé \Cle{Theme} Thème du parcours \Defaut{Les nombres décimaux} \item[]La clé \Cle{Code}\Defaut{} - \item[]La clé \Cle{Nomexercice} pour modifier le nom des exercices\Defaut{exercice} + \item[]La clé \Cle{NomExercice} pour modifier le nom des exercices\Defaut{exercice} \end{itemize} \end{Description} \end{CadreMP} @@ -426,7 +427,7 @@ puis il indiquera les caractéristiques \metamk{Caracteristiques} du document so \item[]La clé \Cle{Niveau}\Defaut{6} \item[]La clé \Cle{Theme} Thème du plan de travail \Defaut{Les nombres décimaux} \item[]La clé \Cle{Code}\Defaut{} - \item[]La clé \Cle{Nomexercice} pour modifier le nom des exercices\Defaut{exercice} + \item[]La clé \Cle{NomExercice} pour modifier le nom des exercices\Defaut{exercice} \end{itemize} \end{Description} \end{CadreMP} @@ -462,7 +463,7 @@ puis il indiquera les caractéristiques \metamk{Caracteristiques} du document so \begin{itemize} \item[]La clé \Cle{Theme} modifie le titre du \og cours\fg\Defaut{Trace écrite} \item[]La clé \Cle{Couleur} modifie la couleur donnée à l'entête\Defaut{Crimson} - \item[]La clé \Cle{Nomexercice} pour modifier le nom des exercices\Defaut{exercice} + \item[]La clé \Cle{NomExercice} pour modifier le nom des exercices\Defaut{exercice} \end{itemize} \end{Description} \end{CadreMP} @@ -482,7 +483,7 @@ puis il indiquera les caractéristiques \metamk{Caracteristiques} du document so \begin{itemize} \item[]La clé \Cle{Theme} modifie le titre du \og cours\fg\Defaut{-} \item[]La clé \Cle{Couleur} modifie la couleur donnée à l'entête\Defaut{Crimson} - \item[]La clé \Cle{Nomexercice} pour modifier le nom des exercices\Defaut{exercice} + \item[]La clé \Cle{NomExercice} pour modifier le nom des exercices\Defaut{exercice} \end{itemize} \end{Description} \end{CadreMP} @@ -502,7 +503,7 @@ puis il indiquera les caractéristiques \metamk{Caracteristiques} du document so \begin{itemize} \item[]La clé \Cle{Theme} modifie le titre du \og cours\fg\Defaut{-} \item[]La clé \Cle{Couleur} modifie la couleur donnée à l'entête\Defaut{Crimson} - \item[]La clé \Cle{Nomexercice} pour modifier le nom des exercices\Defaut{exercice} + \item[]La clé \Cle{NomExercice} pour modifier le nom des exercices\Defaut{exercice} \end{itemize} \end{Description} \end{CadreMP} @@ -515,6 +516,35 @@ puis il indiquera les caractéristiques \metamk{Caracteristiques} du document so On considère un triangle $ABC$\dots \end{Maquette} \clearpage +\subsection*{Course aux nombres} +\begin{CadreMP} + \begin{Description} +\item[La clé \Cle{CAN}]\Defaut{false} + \begin{itemize} + \item[]La clé \Cle{Date}\Defaut{\lstinline!\\today!} + \item[]La clé \Cle{Niveau}\Defaut{6} + \item[]La clé \Cle{Duree} modifie la durée de la course\Defaut{9} + \item[]La clé \Cle{CoefQ} modifie, en multipliant \lstinline!\\linewidth! par la valeur donnée, la largeur de la colonne \og Questions\fg{}\Defaut{0.4} + \item[]La clé \Cle{CoefR} modifie, en multipliant \lstinline!\\linewidth! par la valeur donnée, la largeur de la colonne \og Réponse\fg{}\Defaut{0.35} + \item[]La clé \Cle{CoefJ} modifie, en multipliant \lstinline!\\linewidth! par la valeur donnée, la largeur de la colonne \og Jury\fg{}\Defaut{0.1} + \end{itemize} +\end{Description} +\end{CadreMP} +\begin{Codes}[listing only]{0.4}{} +\begin{Maquette}[CAN]{} + \begin{exercice} + On considère un triangle $ABC$\dots + \end{exercice} +\end{Maquette} +\end{Codes} +%\begin{Maquette}[CAN]{} +% \begin{exercice} +% On considère un triangle $ABC$\dots +% \end{exercice} +%\end{Maquette} +\clearpage +\includepdf[nup=1x2,pages=-,landscape]{TestCAN.pdf} +\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éfinies.\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! : \begin{itemize}[label=\textbullet] \item \lstinline!userdm/userdmcor! pour la clé \Cle{DM}; @@ -573,8 +603,9 @@ Pour modifier {\em plus finement} les entêtes des différentes maquettes, on di \item \lstinline!\TikzParcours/\TikzParcoursCor! pour la clé \Cle{Parcours};%* \item \lstinline!\TikzPdT/\TikzPdTCor! pour la clé \Cle{PdT};%* \item \lstinline!\TikzCours! pour la clé \Cle{Cours}; -\item \lstinline!\TikzContrat/\TikzContratCor! pour la clé \Cle{PdT};%* -\item et \lstinline!\TikzFdR/\TikzFdRCor! pour la clé \Cle{PdT}.%* +\item \lstinline!\TikzContrat/\TikzContratCor! pour la clé \Cle{Contrat};%* +\item \lstinline!\TikzFdR/\TikzFdRCor! pour la clé \Cle{FdR};%* +\item et \lstinline!\TikzCAN/\TikzCANCor! pour la clé \Cle{CAN}.%* \end{itemize} Leurs modifications seront facilitées en copiant le code fourni par le fichier \lstinline!ProfMaquette.sty!. \clearpage @@ -607,7 +638,7 @@ Si l'on souhaite davantage de niveaux d'évaluations (ou moins), on utilisera le L'environnement \lstinline!exercice! doit {\em impérativement} être inclus dans un environnement \lstinline!Maquette! car le choix de document influence la présentation des exercices. \begin{Codes}[]{0.5}{} \begin{Maquette}[IE]{Theme=Les fonctions,Niveau=3,Classe=Gide} - \begin{exercice} + \begin{exercice}% La fonction $f:x\mapsto3x+2$ est-elle une fonction affine ? Justifier. \end{exercice} \end{Maquette} @@ -636,10 +667,8 @@ L'environnement \lstinline!exercice! doit {\em impérativement} être inclus dan \subsection*{La personnalisation} On peut, dans un premier temps, utiliser les clés suivantes : \begin{Description} -\item[La clé \Cle{BackGround}]\Defaut{white} - modifie les arrière-plans des exercices. -\item[La clé \Cle{Cadre}]\Defaut{gray!50} - modifie la couleur du cadre des exercices. +\item[La clé \Cle{BackGround}] modifie les arrière-plans des exercices.\Defaut{white} +\item[La clé \Cle{Cadre}] modifie la couleur du cadre des exercices.\Defaut{gray!50} \end{Description} \begin{Codes}[]{0.4}{} \begin{Maquette}[Fiche]{Theme=Les fonctions,Niveau=3,Classe=Gide} @@ -656,9 +685,9 @@ On remarque que certains exercices sont associés à un total de point. C'est un \item est {\em fixée} à {\sffamily false} pour la clé \Cle{Fiche}; \item est positionnée à {\sffamily true} mais {\em modifiable} pour les clés \Cle{DM}, \Cle{DS} et \Cle{IE}. \end{itemize} -\item[La clé \Cle{BaremeDetaille}]\Defaut{false}\par qui a le même fonctionnement que la clé \Cle{BaremeTotal}. - La commande \lstinline!\brm{}! permet la construction du barème (détaillé et total). -\item[La clé \Cle{MotPoint}]\Defaut{point}\par donnée sous forme de texte puisque le pluriel est géré. +\item[La clé \Cle{BaremeDetaille}] a le même fonctionnement que la clé \Cle{BaremeTotal}. + La commande \lstinline!\brm{}! permet la construction du barème (détaillé et total).\Defaut{false} +\item[La clé \Cle{MotPoint}] donnée sous forme de texte puisque le pluriel est géré.\Defaut{point} \begin{Codes}[listing only]{0.4}{} \begin{Maquette}[DS]{Numero=3,Classe=Euler,Niveau=4} \begin{exercice} % ici le barème est total, pas de détail : comportement par défaut @@ -732,10 +761,8 @@ Si on souhaite citer la source d'un exercice ou lui donner un titre, on dispose Les clés décrites dans cette partie ne sont disponibles que pour les maquettes \lstinline!Fiche! / \lstinline!Parcours!. \begin{Description} -\item[La clé \Cle{Oral}]\Defaut{false}\par - pour indiquer que l'exercice se résout oralement. -\item[La clé \Cle{Calculatrice}]\Defaut{true}\par - pour afficher que la calculatrice {\em est interdite}. +\item[La clé \Cle{Oral}] pour indiquer que l'exercice se résout oralement.\Defaut{false} +\item[La clé \Cle{Calculatrice}] pour afficher que la calculatrice {\em est interdite}.\Defaut{true} \end{Description} \begin{Codes}[listing only,listing options={frame=,escapechar=!}]{0.4}{} \begin{Maquette}[Fiche]{Theme=Calcul mental} @@ -1088,6 +1115,25 @@ Dans le cas de cette maquette, l'environnement \lstinline!exercice! dispose des \end{exercice} \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. + +La commande \lstinline!\Complement{}! permet d'ajouter du contenu à la colonne \og Réponse\fg. + +\begin{Codes}[listing only]{0.5}{} +% cet exemple a été créé avec une feuille au format A5 +\begin{Maquette}[CAN]{CoefQ=0.5,CoefR=0.25} + \begin{exercice} + $17+19$ + \end{exercice} + \begin{exercice} + $ABC$ est un triangle tel que $\widehat{ABC}=\ang{30}$ et $\widehat{BCA}=\ang{70}$. Alors\dots + \Complement{$\widehat{CAB}=\dots$} + \end{exercice} +\end{Maquette} +\end{Codes} +\includegraphics{pg_0002-crop.pdf} +\clearpage \subsection*{\og Correction\fg{} des exercices} Un exercice avec correction pourra\footnote{Dans les faits, seul l'environnement \lstinline!exercice! est nécessaire.} avoir la forme suivante : \begin{Codes}[listing only]{0.4}{} @@ -1120,7 +1166,7 @@ On peut gérer la correction des exercices à deux niveaux : \end{quote} \end{Description} -Pour la maquette \lstinline!ParcoursPerso!, seule la clé \Cle{CorrigeFin} est autorisée. +Pour les maquettes \lstinline!ParcoursPerso! et \lstinline!CAN!, seule la clé \Cle{CorrigeFin} est autorisée. \begin{Codes}[listing only]{0.4}{\footnotesize} \begin{Maquette}[IE,CorrigeApres]{Theme=Calcul littéral} @@ -1275,7 +1321,7 @@ 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 des feuilles de route et contrat de confiance. +\item[\PfMfiledate{}--v \PfMfileversion] 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 31e188b47a9..714e745a63a 100644 --- a/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty +++ b/Master/texmf-dist/tex/latex/profmaquette/ProfMaquette.sty @@ -2,35 +2,35 @@ % 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/10/25}% +\def\filedate{2023/11/01}% \let\PfMfiledate\filedate% -\def\fileversion{0.55}% +\def\fileversion{0.65}% \let\PfMfileversion\fileversion% \ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]% % packages nécessaires -\RequirePackage{verbatim} +\RequirePackage{verbatim}% -\RequirePackage{calc} +\RequirePackage{calc}% -\RequirePackage{xlop} +\RequirePackage{xlop}% -\RequirePackage{varwidth} +\RequirePackage{varwidth}% -\RequirePackage{tcolorbox} -\tcbuselibrary{breakable,external,fitting,hooks,magazine,poster,raster,skins,theorems,listings,listingsutf8} +\RequirePackage{tcolorbox}% +\tcbuselibrary{breakable,external,fitting,hooks,magazine,poster,raster,skins,theorems,listings,listingsutf8}% -\RequirePackage{xinttools} +\RequirePackage{xinttools}% -\RequirePackage{listofitems} -\RequirePackage{array} -\RequirePackage{datatool} +\RequirePackage{listofitems}% +\RequirePackage{array}% +\RequirePackage{datatool}% -\RequirePackage{modulus} +\RequirePackage{modulus}% %définition des clés \RequirePackage{simplekv} -\setKVdefault[Boulot]{Cours=false,Base=false,BaseHTML=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]{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é \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}% @@ -46,6 +46,7 @@ \setKVdefault[RecapBrevet]{Theme=Les nombres décimaux,Date=\today,Code={},NomExercice=Exercice}% \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}% \defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}% \defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}% @@ -64,9 +65,12 @@ \newlength\PfMRayonSchemaContrat% \newlength\PfMLargeurSchemaFdR% \newlength\PfMRayonSchemaFdR% -\newlength{\PfMHauteurAppreciation}% +\newlength\PfMHauteurAppreciation% +\newlength\PfMHauteurRemarque% +\newlength\PfMLargeurQuestion% +\newlength\PfMLargeurReponse% +\newlength\PfMLargeurJury% \setlength{\PfMHauteurAppreciation}{5cm}% -\newlength{\PfMHauteurRemarque}% \setlength{\PfMHauteurRemarque}{5cm}% % définition des compteurs \newcounter{PfMMaquette}%Pour compter le nombres de "travaux" @@ -92,21 +96,22 @@ \newcounter{PfMNbLogo}%Pour décaler les logos sur la ligne haute de tcolorbox \setcounter{PfMNbLogo}{0}% \newcount\Orientation%Pour le schéma des parcours +\newcounter{PfMCNNumQ}% % couleurs -\colorlet{PfMColCpt}{gray!50} -\colorlet{PfMColSrc}{gray!50} +\colorlet{PfMColCpt}{gray!50}% +\colorlet{PfMColSrc}{gray!50}% %\colorlet{PfMCadreFiche}{gray!50} -\colorlet{PfMCadreDM}{gray!85} -\colorlet{PfMCadreParcours}{gray!50} -\colorlet{PfMCadreContrat}{gray!50} -\colorlet{PfMCadreFdR}{gray!50} +\colorlet{PfMCadreDM}{gray!85}% +\colorlet{PfMCadreParcours}{gray!50}% +\colorlet{PfMCadreContrat}{gray!50}% +\colorlet{PfMCadreFdR}{gray!50}% % Définitions de commandes -\newcommand\PfMIENom{\dotfill} -\newcommand\PfMIEPrenom{\dotfill} -\newcommand\PfMIEClasse{\dotfill} -\newcommand\PfMCompNA{NA} -\newcommand\PfMCompECA{ECA} -\newcommand\PfMCompA{A} +\newcommand\PfMIENom{\dotfill}% +\newcommand\PfMIEPrenom{\dotfill}% +\newcommand\PfMIEClasse{\dotfill}% +\newcommand\PfMCompNA{NA}% +\newcommand\PfMCompECA{ECA}% +\newcommand\PfMCompA{A}% % Pour la gestion de l'aléatoire % afin de permettre d'utiliser le même exercice. % Extraire des sommets @@ -169,6 +174,7 @@ \RenewDocumentCommand\ChoixAlea{s o m m m}{% \IfBooleanTF{#1}{% \stepcounter{PfMAlea}% +% je sauvegarde la valeur \thePfMExo-\thePfMAlea \IfNoValueTF{#2}{% \expandafter\xdef\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}% \expandafter\xdef\csname #5\endcsname{\csname valeur\Roman{PfMExo}\roman{PfMAlea}\endcsname}% @@ -212,7 +218,7 @@ % #4 valeur(s) exclue(s) % #5 Nom de la liste qui récupère les données. \ifx\bla#4\bla% - \PackageWarning{ProfMaquette}{Il faut définir au moins une valeur à exclure.} + \PackageWarning{ProfMaquette}{Il faut définir au moins une valeur à exclure.}% \else% \xdef\PfMMixFoo{#2}% \setsepchar{,}\ignoreemptyitems% @@ -250,23 +256,71 @@ \NewDocumentCommand\RestoreChoixAlea{m}{% \stepcounter{PfMAlea}% - \expandafter\xdef\csname #1\endcsname{\csname valeur\Roman{PfMExoSol}\roman{PfMAlea}\endcsname} + %Je restaure la valeur \thePfMExoSol-\thePfMAlea + \expandafter\xdef\csname #1\endcsname{\csname valeur\Roman{PfMExoSol}\roman{PfMAlea}\endcsname}% }% \NewDocumentCommand\ExporteListe{mm}{% %#1 le nom de la liste %#2 le contenu de la liste. - \stepcounter{PfMAlea} + \stepcounter{PfMAlea}% \expandafter\xdef\csname Liste\Roman{PfMExo}\roman{PfMAlea}\endcsname{#2}% - \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMExo}\roman{PfMAlea}\endcsname} + \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMExo}\roman{PfMAlea}\endcsname}% }% \NewDocumentCommand\RestoreListe{m}{% %#1 le nom de la liste à restaurer \stepcounter{PfMAlea}% - \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMExoSol}\roman{PfMAlea}\endcsname} + \expandafter\xdef\csname #1\endcsname{\csname Liste\Roman{PfMExoSol}\roman{PfMAlea}\endcsname}% }% +%% +%\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} +%}{}% + % Définitions pour les compétences \NewDocumentCommand\Competences{O{3}m}{% \setsepchar[*]{/}\ignoreemptyitems% @@ -312,14 +366,14 @@ \def\SolutionWrite{% \setcounter{PfMAlea}{0}% - \@bsphack - \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.sol" % - \let\do\@makeother\dospecials - \catcode`\^^M\active + \@bsphack% + \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.sol"% + \let\do\@makeother\dospecials% + \catcode`\^^M\active% \def\verbatim@processline{% \immediate\write\verbatim@out{\the\verbatim@line}}% - \verbatim@start} -\def\endSolutionWrite{\immediate\closeout\verbatim@out\@esphack} + \verbatim@start}% +\def\endSolutionWrite{\immediate\closeout\verbatim@out\@esphack}% \def\SolutionWritePP{% \@bsphack @@ -450,6 +504,13 @@ }% \NewDocumentCommand\PfMAffichageCorrige{}{% + \ifboolKV[Boulot]{CAN}{%Toto + \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}{}% + }% + }{% \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{% \setcounter{PfMExoSol}{##1}% \setcounter{PfMAlea}{0}% @@ -458,6 +519,7 @@ }% }% }% + }% }% %%%%%%%% BAREME %%%%%%%%%%% %% Bareme @@ -1083,6 +1145,104 @@ %\makeatother +%CAN +\setsepchar[*]{,*/}% +\readlist*\ListeNoms{Aude/Elle/d'Aude/qu'Aude,Bernard/Il/de Bernard/que Bernard,Céline/Elle/de Céline/que Céline,Daniel/Il/de Daniel/que Daniel,\'Elise/Elle/d'\'Elise/qu'\'Elise,Fabien/Il/de Fabien/que Fabien,Gérard/Il/de Gérard/que Gérard,Hélène/Elle/d'Hélène/qu'Hélène,Ilies/Il/d'Ilies/qu'Ilies,Jasmine/Elle/de Jasmine/que Jasmine,Kylian/Il/de Kylian/que Kylian,Laurent/Il/de Laurent/que Laurent,Mathilde/Elle/de Mathilde/que Mathilde,Nina/Elle/de Nina/que Nina,Octave/Il/d'Octave/qu'Octave,Philippe/Il/de Philippe/que Philippe,Joachim/Il/de Joachim/que Joachim,Thérèse/Elle/de Thérèse/que Thérèse,Nawel/Elle/de Nawel/que Nawel,Alexandre/Il/d'Alexandre/qu'Alexandre,Maxence/Il/de Maxence/que Maxence,Sophie/Elle/de Sophie/que Sophie,Christophe/Il/de Christophe/que Christophe,Myriam/Elle/de Myriam/que Myriam,Nathalie/Elle/de Nathalie/que Nathalie,Sébastien/Il/de Sébastion/que Sébastien}% +\readlist*\ListeChersObjets{montre/une,collier/un,bague/une,pendentif/un}% +\setsepchar{,}% +\readlist*\ListePetitsObjets{bonbons,billes,biscuits,gommes,clous,vis,cahiers,trousses}% +\readlist*\ListeFruits{pommes,poires,abricots,cerises,fraises,framboises,noix,pêches,nectarines,myrtilles,oranges,mandarines,kiwis}% +\readlist*\ListeVariables{a,b,c,m,n,p,r,s,t,x,y,z}% + +\makeatletter +\def\ExoCANWrite{% + \setcounter{PfMAlea}{0}% + \PfMChoixCorrection% + \stepcounter{PfMExo}% + \immediate\write\@auxout{% + \string\opcopy{\thePfMExo}{TotalExo}% + }% + \@bsphack + \immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.can" + \let\do\@makeother\dospecials + \catcode`\^^M\active + %\immediate\write\verbatim@out{ \string\setcounter{PfMAlea}{0}} + \def\verbatim@processline{\immediate\write\verbatim@out{\the\verbatim@line}} + \verbatim@start} +\def\endExoCANWrite{\immediate\closeout\verbatim@out\@esphack} +\makeatother + +\NewDocumentCommand\Complement{+m}{% + \ifboolKV[Boulot]{CAN}{% + \expandafter\xdef\csname CNReponse\endcsname{#1}% + }{% + \begin{center} + #1% + \end{center} + }% +}% + +\NewDocumentCommand\EcartComplement{m}{% + \rule{0mm}{#1}% +}% + +\tcbset{% + usercan/.style={% + enhanced, + % spread upwards=-1cm,colback=gray!5% + frame hidden, + colback=white, + middle=24pt, + overlay={% unbroken and first={% + \draw[line width=2pt] (frame.north west)--(frame.north east); + \draw[line width=2pt] (frame.south west)--(frame.south east); + } + }% +}% +\tcbset{% + usercancor/.style={% + spread upwards=-1cm,colback=gray!5% + }% +}% + +\makeatletter +\NewDocumentCommand\TikzCAN{}{% + \begin{tcolorbox}[usercan]% + {\sc Nom :} \PfCTBstrut\pointilles[0.35\linewidth]\hfill\textbf{\sc Prénom :} \pointilles[0.35\linewidth] + \par\bigskip\par + \textbf{\sc Classe :} \pointilles[0.35\linewidth]\hfill + \begin{minipage}{0.3\linewidth} + \begin{tcolorbox} + \textbf{\sc Score :} \hfill\textbf{/\@ifundefined{Op@TotalExo}{Recompilez}{\opexport{TotalExo}{\TotalExo}\TotalExo}} + \end{tcolorbox} + \end{minipage} + \tcblower + \begin{itemize} + \item[\faCheck] \textbf{Durée : \useKV[CAN]{Duree} minutes.}\\[0.5em] + \item[\faCheck] \textit{L'épreuve comporte \@ifundefined{Op@TotalExo}{Recompilez}{\opexport{TotalExo}{\TotalExo}\TotalExo{} question\ifnum\TotalExo=1\else\relax s\fi.}}\\[0.5em] + \item[\faCheck] \textit{L'usage de la calculatrice et du brouillon sont interdits. Il n'est pas permis d'écrire des calculs intermédiaires.} + \end{itemize} + \vspace*{12pt} + \end{tcolorbox}% + \begin{center} + \Large Sujet \useKV[CAN]{Niveau}\hspace{0.15\linewidth}\useKV[CAN]{Date} + \end{center} + \clearpage% +}% +\makeatother + +\makeatletter +\NewDocumentCommand\TikzCANCor{m}{% + \clearpage + \setKV[CAN]{#1}% + \begin{tcolorbox}[usercancor]% + \begin{center} + \Large\sffamily Course aux nombres (Correction) + \end{center} + \hfill\useKV[CAN]{Niveau}% + %\par{\tiny\useKV[FdR]{Code}}\hfill{\scriptsize\useKV[FdR]{Date}}% + \end{tcolorbox}% +} %%% FdR %%% \tcbset{% userfdr/.style={% @@ -1357,7 +1517,30 @@ \endtcolorbox% }{} -\newenvironment{exerciceDS}[1][]{% +\NewDocumentEnvironment{exerciceDS}{so+b}{% + \setcounter{PfMAlea}{0}% + \useKVdefault[ClesExercices]% + \setKV[ClesExercices]{#2}% + \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, + label is label, + label=page-\thePfMMaquette-\thePfMExo + ] + #3 +\endtcolorbox% +}{}% + +\newenvironment{exerciceDSold}[1][]{% \setcounter{PfMAlea}{0}% \useKVdefault[ClesExercices]% \setKV[ClesExercices]{#1}% @@ -1377,7 +1560,7 @@ label=page-\thePfMMaquette-\thePfMExo ] }{\endtcolorbox% -} +}% \makeatother %%% Recap Brevet %%% Style Brevet @@ -2227,6 +2410,42 @@ \useKVdefault[Boulot]% \setKV[Boulot]{#1}% \IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}{\AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}}% + % Test + \IfHookExistsTF{env/exercice/begin}{\RemoveFromHook{env/exercice/begin}[*]}{}% + \IfHookExistsTF{env/Maquette/end}{\RemoveFromHook{env/Maquette/end}[*]}{}% + \ifboolKV[Boulot]{CAN}{% + \setKV[CAN]{#2}\TikzCAN% + \setcounter{PfMCNNumQ}{1}% + \setlength{\PfMLargeurQuestion}{\useKV[CAN]{CoefQ}\linewidth}\setlength{\PfMLargeurReponse}{\useKV[CAN]{CoefR}\linewidth}\setlength{\PfMLargeurJury}{\useKV[CAN]{CoefJ}\linewidth}% + \let\exercice\ExoCANWrite\let\endexercice\endExoCANWrite% + \AddToHook{env/exercice/begin}{\setcounter{PfMAlea}{0}}% + \AddToHook{env/Maquette/end}{% + \xdef\PfMCANTotalExo{\thePfMExo}% + \setcounter{PfMExo}{0}% + \renewcommand{\arraystretch}{2}% + \begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}% + \hhline{~---}% + \multicolumn{1}{c|}{}&\cellcolor{gray!15}\centering Question&\cellcolor{gray!15}\centering Réponse&\cellcolor{gray!15}\centering\arraybackslash Jury\\% + \hline% + \endhead% + \xintFor* ##1 in {\xintSeq{1}{\PfMCANTotalExo}}\do{% + \ttfamily{\thePfMCNNumQ}\stepcounter{PfMCNNumQ}&\Complement{}\stepcounter{PfMExo}\setcounter{PfMAlea}{0}\input{\jobname-Ex##1.can}&\CNReponse&\\ + \hline% + }% + \end{longtable}% + \renewcommand{\arraystretch}{1}% + }% + \ifboolKV[Boulot]{CorrigeFin}{% + \AddToHook{env/Maquette/after}[Correction]{% + \setKV[Boulot]{#1}% + \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% + \TikzCANCor{#2}% + \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% + \PfMAffichageCorrige% + \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% + }% + }{}% + }{% \ifboolKV[Boulot]{FdR}{% \setKV[FdR]{#2}\TikzFdR% \let\exercice\exerciceFdR\let\endexercice\endexerciceFdR% @@ -2234,7 +2453,7 @@ \AddToHook{env/Maquette/after}[Correction]{% \setKV[Boulot]{#1}% \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% - \TikzFdRCor{#2} + \TikzFdRCor{#2}% \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% \PfMAffichageCorrige% \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% @@ -2385,24 +2604,23 @@ }{}% }{% \ifboolKV[Boulot]{DS}{% - \setKV[DS]{#2}\TikzDS% + \setKV[DS]{#2}\TikzDS \let\exercice\exerciceDS\let\endexercice\endexerciceDS% -% \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% @@ -2445,6 +2663,7 @@ }% }% }% +} }{}% %\makeatother -- cgit v1.2.3