diff options
author | Norbert Preining <norbert@preining.info> | 2024-03-26 03:03:59 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-03-26 03:03:59 +0000 |
commit | 904f56f2c26edc7eb11d5a27579bccbeca29c618 (patch) | |
tree | 8a4d6d2e163e93dd2c13a28db996b419aee856b4 /macros/latex/contrib/profmaquette/latex/ProfMaquette.sty | |
parent | 05f8146ef2eea2cd71b9c96583c6d893e6c76af5 (diff) |
CTAN sync 202403260303
Diffstat (limited to 'macros/latex/contrib/profmaquette/latex/ProfMaquette.sty')
-rw-r--r-- | macros/latex/contrib/profmaquette/latex/ProfMaquette.sty | 142 |
1 files changed, 105 insertions, 37 deletions
diff --git a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty index ffa3eb53ec..a9131f1115 100644 --- a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty +++ b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty @@ -2,12 +2,17 @@ % licence : Released under the LaTeX Project Public License v1.3c % or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e}% -\def\filedate{2024/03/06}% +\def\filedate{2024/03/24}% \let\PfMfiledate\filedate% -\def\fileversion{0.88}% +\def\fileversion{0.89}% \let\PfMfileversion\fileversion% + \ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]% +\newif\if@Dyslexie \@Dyslexiefalse + +\DeclareOption{Dyslexie}{\@Dyslexietrue} +\ProcessOptions\relax % packages nécessaires \RequirePackage{verbatim}% @@ -36,7 +41,7 @@ \makeatother %définition des clés \RequirePackage{simplekv}% -\setKVdefault[Boulot]{Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,AllDirect=false,AllPouce=false,VersSolution=false}%Les deux derniers pour essayer de mettre tous les exercices d'un même fichier en mode Reponse, en mode Indice. Pas implanté, pas testé +\setKVdefault[Boulot]{Dys=false,Taille=14,Cours=false,Base=false,BaseHTML=false,CAN=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,Contrat=false,FdR=false,ParcoursPerso=false,CorrigeSeul=false,CorrigeApres=false,CorrigeFin=false,CorrigeAll=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,CorrectionColonnes=false,Epaisseur=0pt,AllDirect=false,AllPouce=false,VersSolution=false,Small=false,Footnotesize=false,Scriptsize=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}% @@ -53,7 +58,7 @@ \setKVdefault[Kholle]{Sujet=1,Numero=1,Date=15,Niveau=TSI-1,Code=\jobname,Lieu=Lycée du Hainaut (Valenciennes),NomEleve=Albert Einstein,CR=false}% \setKVdefault[CAN]{Date=\today,Niveau=6,Duree=9,CoefQ=0.4,CoefR=0.35,CoefJ=0.1}% -\setKVdefault[ClesExercices]{NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Cadres=false,TitreSol=false,NonUtilise=false,Profile=false}% +\setKVdefault[ClesExercices]{NbQuestions=1,PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,PasCorrige=false,Direct=false,Pouce=false,Parcours=false,Contrat=false,FdR=false,Routes=false,Stops=false,Background=white,Cadre=gray!50,Numerote,Ligne=false,Doublespacing=false,Onehalfspacing=false,Cadres=false,TitreSol=false,NonUtilise=false,Profile=false}% \defKV[ClesExercices]{TitreSolution=\setKV[ClesExercices]{TitreSol}}% \defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}% \defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}% @@ -1015,11 +1020,11 @@ \def\PfMTexteDuCorrige{Corrigé de l'exercice} \NewDocumentCommand\PfMAffichageCorrige{}{% - \ifboolKV[Boulot]{CAN}{%Toto + \ifboolKV[Boulot]{CAN}{% \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~\ref{page-\thePfMMaquette-##1} :\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}% + \IfFileExists{\jobname-Ex##1.sol}{\textbf{Question\ifnum\PfMCANTotalExo=1\relax\else~\ref{TestCAN-##1}:\fi}~\input{\jobname-Ex##1.sol}\par\goodbreak}{}%page-\thePfMMaquette-##1 }% }{% \setcounter{PfMExoSol}{0}% @@ -1259,7 +1264,7 @@ }% }% -\NewDocumentEnvironment{exerciceDM}{so+b}{% +\NewDocumentEnvironment{exerciceDM}{so}{% \setcounter{PfMAlea}{0}% \useKVdefault[ClesExercices]% \setKV[ClesExercices]{#2}% @@ -1288,11 +1293,11 @@ label=page-\thePfMMaquette-\thePfMExo,% ]% \ifboolKV[Boulot]{Dys}{\raggedright}{}% - #3 + } +}{% \end{tcolorbox}% \PfMApresLesExercices% - } -}{}% +}% %%Contrat @@ -1415,7 +1420,7 @@ }% -\NewDocumentEnvironment{exerciceContrat}{so+b}{% +\NewDocumentEnvironment{exerciceContrat}{so}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% @@ -1451,11 +1456,11 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% - #3 + }% +}{% \end{tcolorbox} \PfMApresLesExercices% - }% -}{}% +}% %%% Contrat %%% \tcbset{% @@ -1761,7 +1766,7 @@ \immediate\write\@auxout{\noexpand\expandafter\gdef\noexpand\csname \Roman{PfMMaquette}FdR#1\endcsname{\csname \Roman{PfMMaquette}route#1\endcsname}}% }% -\NewDocumentEnvironment{exerciceFdR}{so+b}{% +\NewDocumentEnvironment{exerciceFdR}{so}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% @@ -1810,11 +1815,11 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% - #3 + }% +}{% \end{tcolorbox} \PfMApresLesExercices% - }% -}{}% +}% %CAN \setsepchar[*]{,*/}% @@ -1876,6 +1881,11 @@ }% }% +\newlength\PfMEspaceItemPGCAN +\newlength\PfMEspaceTitreSujetPGCAN +\setlength{\PfMEspaceItemPGCAN}{0.5em} +\setlength{\PfMEspaceTitreSujetPGCAN}{12pt} + \makeatletter \NewDocumentCommand\TikzCAN{}{% \begin{tcolorbox}[usercan]% @@ -1889,11 +1899,11 @@ \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] \textbf{Durée : \useKV[CAN]{Duree} minutes.}\\[\PfMEspaceItemPGCAN] + \item[\faCheck] \textit{L'épreuve comporte \@ifundefined{Op@TotalExo}{Recompilez}{\opexport{TotalExo}{\TotalExo}\TotalExo{} question\ifnum\TotalExo=1\else\relax s\fi.}}\\[\PfMEspaceItemPGCAN] \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} + \vspace*{\PfMEspaceTitreSujetPGCAN} \end{tcolorbox}% \begin{center} \Large Sujet \useKV[CAN]{Niveau}\hspace{0.15\linewidth}\useKV[CAN]{Date} @@ -2089,7 +2099,7 @@ \def\endexerciceParcoursPerso{\immediate\write\verbatim@out{\string\end{exercice}}\immediate\closeout\verbatim@out\@esphack}% -\NewDocumentEnvironment{exerciceParcours}{so+b}{% +\NewDocumentEnvironment{exerciceParcours}{so}{% \setcounter{PfMAlea}{0}% \setcounter{PfMNbLogo}{1}% \useKVdefault[ClesExercices]% @@ -2125,11 +2135,11 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% - #3 + } +}{% \end{tcolorbox} \PfMApresLesExercices% - } -}{}% +}% %%%%%%%%%%%%%%%%%%%%%%% % Pour encart @@ -2158,9 +2168,39 @@ }% }% +% From setspace.sty +\NewDocumentCommand\PfMSetStretch{}{% + \ifboolKV[ClesExercices]{Doublespacing}{% + \setstretch {1.667}% default + \ifx\@ptsize\@undefined\else + \ifcase \@ptsize \relax% 10pt + \setstretch {1.667}% + \or % 11pt + \setstretch {1.618}% + \or % 12pt + \setstretch {1.655}% + \fi + \fi + }{% + \ifboolKV[ClesExercices]{Onehalfspacing}{% + \setstretch{1.25}% default + \ifx\@ptsize\@undefined\else + \ifcase \@ptsize \relax % 10pt + \setstretch {1.25}% + \or % 11pt + \setstretch {1.213}% + \or % 12pt + \setstretch {1.241}% + \fi% + \fi% + }{}% + }% +}% + \NewDocumentCommand\PfMApresLesExercices{}{% \ifboolKV[ClesExercices]{Ligne}{% - \par\vspace{\PfMEspaceAvantLignes}\par\PfMLignespointilles{\useKV[ClesExercices]{Lignes}}% + % \vspace{\PfMEspaceAvantLignes} + \PfMSetStretch\PfMLignespointilles{\useKV[ClesExercices]{Lignes}}% \par\vspace*{\PfMEspaceApresLignes}\par% }{}% \par% @@ -2228,6 +2268,7 @@ \refstepcounter{PfMSection}% \PfMChoixCorrection% \refstepcounter{PfMExo}% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \PfMChoixTitreSolution% \PfMChoixHideItemSolution% \begin{tcolorbox}[% @@ -2241,9 +2282,10 @@ \ifboolKV[ClesExercices]{Profile}{\PfMshowitems}{}% \PfMApresLesExercices% }% + } }{} -\NewDocumentEnvironment{exerciceDS}{so+b}{% +\NewDocumentEnvironment{exerciceDS}{so}{% \setcounter{PfMAlea}{0}% \useKVdefault[ClesExercices]% \setKV[ClesExercices]{#2}% @@ -2273,11 +2315,11 @@ label=page-\thePfMMaquette-\thePfMExo ] \ifboolKV[Boulot]{Dys}{\raggedright}{}% - #3 + }% +}{% \end{tcolorbox}% \PfMApresLesExercices% - }% -}{}% +}% \NewDocumentEnvironment{ExerciceRecapBrevet}{so+b}{% \setcounter{PfMAlea}{0}% @@ -3122,9 +3164,23 @@ }% }% +\NewDocumentCommand\PfMChangerTailleCorrection{}{% + \ifboolKV[Boulot]{Small}{% + \small% + }{% + \ifboolKV[Boulot]{Footnotesize}{% + \footnotesize + }{% + \ifboolKV[Boulot]{Scriptsize}{% + \scriptsize + }{}% + }% + }% +}% + %%%%%%%%%%%%%%% Debut Maquette %%%%%%% % Environnement englobant le tout. -%\makeatletter +\makeatletter \NewDocumentEnvironment{Maquette}{om}{% % on remet à zéro les compteurs de solutions : inutile ? \setcounter{RetiensSol}{0}% @@ -3141,19 +3197,26 @@ % \AddToHook{env/exercice/after}[ChoixExo]{\PfMChoixAffichageCorrection}% \useKVdefault[Boulot]% \setKV[Boulot]{#1}% + \ifboolKV[Boulot]{CorrigeSeul}{\setKV[Boulot]{CorrigeFin}}{}% + \if@Dyslexie + \setKV[Boulot]{Dys} + \fi \PfMBasculeDys% \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}% + \setKV[CAN]{#2}% + \ifboolKV[Boulot]{CorrigeSeul}{}{\TikzCAN}% + \PfMChangerTailleCorrection% + \setcounter{PfMCNNumQ}{0}% \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}% + \ifboolKV[Boulot]{CorrigeSeul}{}{ \setcounter{PfMExo}{0}% \renewcommand{\arraystretch}{2}% \begin{longtable}{|c|m{\PfMLargeurQuestion}|>{\centering\arraybackslash}m{\PfMLargeurReponse}|m{\PfMLargeurJury}|}% @@ -3162,12 +3225,13 @@ \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&\\ + \refstepcounter{PfMCNNumQ}\ttfamily{\thePfMCNNumQ}\label{TestCAN-\thePfMCNNumQ}&\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]{% \useKVdefault[Boulot]% @@ -3306,8 +3370,10 @@ }{}% }{% \ifboolKV[Boulot]{Fiche}{% + \ifboolKV[Boulot]{CorrigeSeul}{}{% \setKV[Fiche]{#2}% \TikzFiche% + }% \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche% \ifboolKV[Boulot]{CorrigeFin}{% \ifboolKV[Boulot]{CorrigeAll}{% @@ -3338,10 +3404,12 @@ }{% \AddToHook{env/Maquette/after}[Correction]{% \useKVdefault[Boulot]% - \setKV[Boulot]{#1}% - \PfMBasculeDys + \setKV[Boulot]{#1}% + %% + \PfMBasculeDys% \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}% \TikzFicheCor{#2}% + \PfMChangerTailleCorrection% \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}% \PfMAffichageCorrige% \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}% @@ -3414,7 +3482,7 @@ }% }% }{}% - +\makeatother %D'après JCC % Package pour gérer les nombres pseudo-aléatoires \makeatletter |