summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-03-26 03:03:59 +0000
committerNorbert Preining <norbert@preining.info>2024-03-26 03:03:59 +0000
commit904f56f2c26edc7eb11d5a27579bccbeca29c618 (patch)
tree8a4d6d2e163e93dd2c13a28db996b419aee856b4 /macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
parent05f8146ef2eea2cd71b9c96583c6d893e6c76af5 (diff)
CTAN sync 202403260303
Diffstat (limited to 'macros/latex/contrib/profmaquette/latex/ProfMaquette.sty')
-rw-r--r--macros/latex/contrib/profmaquette/latex/ProfMaquette.sty142
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