summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-08-07 03:03:39 +0000
committerNorbert Preining <norbert@preining.info>2023-08-07 03:03:39 +0000
commitaebf6a3b57eda6e22a8e5fb93958edbf6ad1b551 (patch)
tree22fd31bea1ac0ed82dd49684be5ae5415f69fa9a /macros/latex/contrib
parentb8344986f0b0553f4794a39ae9b63c6b206cd48d (diff)
CTAN sync 202308070303
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/cahierprof/ListeEleves.tex32
-rw-r--r--macros/latex/contrib/cahierprof/README.md17
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-doc.pdfbin0 -> 289363 bytes
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-doc.tex350
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-exemple.pdfbin0 -> 158682 bytes
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-exemple.tex149
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof.sty455
-rw-r--r--macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdfbin169331 -> 177454 bytes
-rw-r--r--macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex304
-rw-r--r--macros/latex/contrib/profmaquette/latex/ProfMaquette.sty635
10 files changed, 1688 insertions, 254 deletions
diff --git a/macros/latex/contrib/cahierprof/ListeEleves.tex b/macros/latex/contrib/cahierprof/ListeEleves.tex
new file mode 100644
index 0000000000..6b8ecd25eb
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/ListeEleves.tex
@@ -0,0 +1,32 @@
+Seconde
+\begin{enumerate}
+\item Élève 1
+\item Élève 2
+\item Élève 3
+\item Élève 4
+\item Élève 5
+\end{enumerate}
+1 G
+\begin{enumerate}
+\item Élève 1
+\item Élève 2
+\item Élève 3
+\item Élève 4
+\item Élève 5
+\end{enumerate}
+1 STMG
+\begin{enumerate}
+\item Élève 1
+\item Élève 2
+\item Élève 3
+\item Élève 4
+\item Élève 5
+\end{enumerate}
+2 euro
+\begin{enumerate}
+\item Élève 1
+\item Élève 2
+\item Élève 3
+\item Élève 4
+\item Élève 5
+\end{enumerate}
diff --git a/macros/latex/contrib/cahierprof/README.md b/macros/latex/contrib/cahierprof/README.md
new file mode 100644
index 0000000000..508f6c638c
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/README.md
@@ -0,0 +1,17 @@
+Vous êtes un enseignant en France ?
+cahierprof vous aidera a réaliser un cahier de texte, c'est à dire
+- un emploi du temps hedomadaire
+- des tableaux d'absences/de notes pour chaque classe
+
+----------------
+
+You are a french mathematics teacher ?
+cahierprof helps you to make a textbook with :
+- week schedule
+- a grade book for each class
+
+---------------
+
+Author : Raphael Giromini
+email : raphael.giromini@gmail.com
+Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.pdf b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf
new file mode 100644
index 0000000000..187febaf51
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.tex b/macros/latex/contrib/cahierprof/cahierprof-doc.tex
new file mode 100644
index 0000000000..6f180bdeee
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-doc.tex
@@ -0,0 +1,350 @@
+\documentclass[a4paper,french,10pt]{article}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{commandes}
+% \usepackage{cahierprof}
+\usepackage{minted}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% En tête du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Les marges de mon document.
+\geometry{margin=1.2cm,head=0.6cm,headsep=10pt,foot=.6cm}
+
+\title{
+ cahierprof.sty\\
+ Pour créer un cahier du professeur en LaTeX
+}
+\author{
+ Raphaël Giromini\\
+ \texttt{raphael.giromini -- at -- gmail.com}
+}
+\date{Version 0.91 -- 12 juillet 2023}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+
+\maketitle
+
+% \begin{resume}
+Le package \texttt{cahierprof} permet de créer un cahier du professeur,
+constitué de deux éléments:
+\begin{itemize}
+ \item une liste des semaines de cours, à raison d'une semaine par page;
+ \item un tableau pour les absences et/ou les notes des élèves.
+\end{itemize}
+% \end{resume}
+
+\tableofcontents
+
+\section{Liste des semaines de cours -- commande
+\texttt{\textbackslash{}EmploiDuTemps}}
+
+Le package \texttt{cahierprof} va créer un calendrier; il faut donc commencer
+par entrer la date du premier lundi de l'année scolaire, sous la forme:
+\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
+% Le premier lundi de la rentrée scolaire
+\setcounter{year}{2023}
+\setcounter{month}{9}
+\setcounter{day}{4}
+\end{minted}
+
+La commande \texttt{\textbackslash{}EmploiDuTemps} va permettre de de créer le
+tableau de la semaine. Cette commande a un seul argument qui contient la
+description d'une semaine type, comme dans l'exemple ci-dessous:
+\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
+\EmploiDuTemps{
+ % & Lundi & Mardi & Mercredi & Jeudi & Vendredi \\
+ 8h & & 1G & & & \\ [1.5cm] \hline
+ 9h & & 2nde & 1STMG & & 1STMG \\ [1.5cm] \hline
+ 10h & & & 1G & & \\ [1.5cm] \hline
+ 11h & & & 2nde (A.P.) & & 1G \\ [1.5cm] \hline\hline
+ 13h30 & & 1G & 2nde & & 2nde \\ [1.5cm] \cline{1-5}
+ 14h30 & & & Term/1ere & & \\ [1.5cm] \hline
+ 15h30 & & 1 euro & 2 euro & & T euro \\ [1.5cm] \hline
+ 16h30 & & & & & \\ [1.5cm] \hline
+}
+\end{minted}
+Cette commande va générer 37 semaines de cours à compter du premier lundi de
+l'année scolaire.
+
+\subsection{Cours bimestriels -- commande \texttt{\textbackslash{}sem}}
+
+Certains cours sont bimestriels (tous les 15 jours), suivant la parité de la
+semaine. Pour cela il existe la commande \texttt{\textbackslash{}sem} qui prend
+deux arguments: le cours en semaine impair, puis le cours en semaine pair.
+
+\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
+% L'aide personnalisé en seconde n'a lieu que les semaines paires
+ \sem{}{2nde (A.P.)}
+% En semaine impaire, il y a un cours de terminale et en semaine paire, il y a
+% un cours de première
+ \sem{Term}{1ere}
+\end{minted}
+
+\subsection{Gestion des vacances scolaires}
+
+Le package \texttt{cahierprof} permet de gérer les vacances scolaires
+Les vacances scolaires (de Toussaint, de Noel, d'hiver et de printemps). Pour
+l'instant la gestion est un peu pénible. Il faut ajouter \emph{dans le
+préambule} les dates de début et de fin de chaque vacances.
+
+\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
+% Toussaint
+\setcounter{dayToussaint}{21}
+\setcounter{monthToussaint}{10}
+\setcounter{dayToussaintFin}{6}
+\setcounter{monthToussaintFin}{11}
+% Noel
+\setcounter{dayNoel}{23}
+\setcounter{monthNoel}{12}
+\setcounter{dayNoelFin}{8}
+\setcounter{monthNoelFin}{1}
+% Hiver
+\setcounter{dayHiver}{10}
+\setcounter{monthHiver}{2}
+\setcounter{dayHiverFin}{26}
+\setcounter{monthHiverFin}{2}
+% Printemps
+\setcounter{dayPrintemps}{6}
+\setcounter{monthPrintemps}{4}
+\setcounter{dayPrintempsFin}{22}
+\setcounter{monthPrintempsFin}{4}
+\end{minted}
+
+
+\subsection{Gestion des jours fériés}
+
+Pour les jours fériés officiels, le package \texttt{cahierprof} va ajouter la
+mention $\star$Ferié$\star$ à côté de la date.
+
+Les jours fériés officiels de l'année sont:
+\begin{itemize}
+ \item Le jour de l'an (1er janvier)
+ \item Fête du travail (le 1er mai)
+ \item La Victoire 1945 (le 8 mai)
+ \item Le jeudi de l'ascension (date variable, 40 jours après le dimanche de
+ Pâques, entre le 30 avril et le 3 juin).\\
+ Cette date est variable et doit être entrée à la main par les commandes
+ \texttt{thedayAscension} et \texttt{themonthAscension}.\\
+ Le pont de l'ascension (le vendredi suivant le jeudi de l'ascension) est
+ également considéré comme férié)
+ \item Le lundi de pentecôte, 50 jours après le dimanche de Pâques, entre le
+ 10 mai et le 13 juin).\\
+ Cette date est variable et doit être entrée à la main par les commandes
+ \texttt{thedayPentecote} et \texttt{themonthPentecote}.
+ \item La fête nationale (14 juillet)
+ \item L'assomption (15 août)
+ \item La toussaint (1er novembre)
+ \item L'armistice 1914-1918 (11 novembre)
+ \item Noël (25 décembre)
+\end{itemize}
+
+Les jours fériés à date fixe sont gérés automatiquement, pour les jours fériés à
+date variable, il faut donc ajouter dans le préambule:
+\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
+% Lundi de Paques
+\setcounter{dayPaques}{1}
+\setcounter{monthPaques}{4}
+% Ascension
+\setcounter{dayAscension}{9}
+\setcounter{dayAscensionPont}{10}
+\setcounter{monthAscension}{5}
+% Lundi de Pentecote
+\setcounter{dayPentecote}{20}
+\setcounter{monthPentecote}{5}
+\end{minted}
+
+\section{Tableau d'appel et de note des classe -- commande
+\texttt{\textbackslash{}Classe}}
+
+La commande \texttt{\textbackslash{}Classe} permet de générer des tableaux
+d'appels des classes. Cette commande prend trois arguments:
+\begin{itemize}
+ \item le nom de la classe;
+ \item le nombre de fois que l'on voit les élèves dans la semaine;
+ \item la liste des élèves séparés par des virgules.
+\end{itemize}
+Par exemple:
+
+\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
+% La classe de seconde est vue 4 fois dans la semaine:
+\Classe{2nde}{4}{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ ...
+}
+% La classe de 1e STMG est vue 2 fois dans la semaine:
+\Classe{1 STMG}{2}{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ ...
+}
+\end{minted}
+
+La liste des élèves va créer un fichier \texttt{ListeEleves.tex} avec la liste
+(numérotés) de l'ensemble des élèves, réparti par classe. La commande
+\texttt{\textbackslash{}ListeElèves} permet d'insérer dans le cahier de texte
+cette liste (penser à compiler deux fois).
+
+\section{Un exemple complet}
+
+\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
+\documentclass[a4paper,french,10pt]{article}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{babel}
+\usepackage{multicol}
+\usepackage{cahierprof}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% En tête du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Les marges de mon document.
+\geometry{margin=1.2cm,head=0.6cm,headsep=10pt,foot=.6cm}
+% 1er lundi de l'année scolaire (pour le cahier de texte)
+\setcounter{year}{2023}
+\setcounter{month}{9}
+\setcounter{day}{4}
+
+% Vacances Scolaire pour l'année en cours.
+% Toussaint
+\setcounter{dayToussaint}{21}
+\setcounter{monthToussaint}{10}
+\setcounter{dayToussaintFin}{6}
+\setcounter{monthToussaintFin}{11}
+% Noel
+\setcounter{dayNoel}{23}
+\setcounter{monthNoel}{12}
+\setcounter{dayNoelFin}{8}
+\setcounter{monthNoelFin}{1}
+% Hiver
+\setcounter{dayHiver}{10}
+\setcounter{monthHiver}{2}
+\setcounter{dayHiverFin}{26}
+\setcounter{monthHiverFin}{2}
+% Printemps
+\setcounter{dayPrintemps}{6}
+\setcounter{monthPrintemps}{4}
+\setcounter{dayPrintempsFin}{22}
+\setcounter{monthPrintempsFin}{4}
+% Lundi de Paques
+\setcounter{dayPaques}{1}
+\setcounter{monthPaques}{4}
+% Ascension
+\setcounter{dayAscension}{9}
+\setcounter{dayAscensionPont}{10}
+\setcounter{monthAscension}{5}
+% Lundi de Pentecote
+\setcounter{dayPentecote}{20}
+\setcounter{monthPentecote}{5}
+
+\title{\scshape Cahier du Professeur}
+\author{Un-e excellent-e professeur-e}
+\date{2023-2024}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+
+%%Page de Garde
+\maketitle
+\thispagestyle{empty}
+
+\begin{center}
+ {\Large
+ \textsc{Cahier de texte}
+ }
+\end{center}
+
+\newpage
+
+% Emploi du temps au format tableau (tabularx).
+
+\begin{landscape}
+ \EmploiDuTemps
+ {
+% & Lundi & Mardi & Mercredi & Jeudi & Vendredi \\
+ 8h & & 1G & & & \\ [1.5cm] \hline
+ 9h & & 2nde & 1STMG & & 1STMG \\ [1.5cm] \hline
+ 10h & & & 1G & & \\ [1.5cm] \hline
+ 11h & & & \sem{2nde (A.P.)}{} & & 1G \\ [1.5cm] \hline\hline
+ 13h30 & & 1G & 2nde & & 2nde \\ [1.5cm] \cline{1-5}
+ 14h30 & & & \sem{Term}{1ere} & & \\ [1.5cm] \hline
+ 15h30 & & 1 euro & 2 euro & & T euro \\ [1.5cm] \hline
+ 16h30 & & & & & \\ [1.5cm] \hline
+ }
+\end{landscape}
+
+\begin{center}
+ {\Large
+ \textsc{Appel des classes}
+ }
+\end{center}
+
+% Liste des élèves, sauvée dans le fichier ListeEleves.tex, créée à partir des
+% \Classe{}{}{}.
+% Penser à compiler deux fois.
+
+\ListeEleves
+
+\newpage
+
+\tiny
+
+% Tableau de classe
+% \Classe{Nom de la classe}{Nombre de séances dans la semaine}{Liste des élèves
+% séparés par une virgule}
+
+\Classe{Seconde}{3}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+
+\newpage
+
+\Classe{1 G}{4}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+
+\newpage
+
+\Classe{1 STMG}{2}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+\newpage
+
+\Classe{2 euro}{1}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+\end{document}
+\end{minted}
+\end{document}
diff --git a/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf
new file mode 100644
index 0000000000..3401a99650
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf
Binary files differ
diff --git a/macros/latex/contrib/cahierprof/cahierprof-exemple.tex b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex
new file mode 100644
index 0000000000..1aa7941855
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex
@@ -0,0 +1,149 @@
+\documentclass[a4paper,french,10pt]{article}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{babel}
+\usepackage{multicol}
+\usepackage{cahierprof}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% En tête du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% Les marges de mon document.
+\geometry{margin=1.2cm,head=0.6cm,headsep=10pt,foot=.6cm}
+% 1er lundi de l'année scolaire (pour le cahier de texte)
+\setcounter{year}{2023}
+\setcounter{month}{9}
+\setcounter{day}{4}
+
+% Vacances Scolaire pour l'année en cours.
+% Toussaint
+\setcounter{dayToussaint}{21}
+\setcounter{monthToussaint}{10}
+\setcounter{dayToussaintFin}{6}
+\setcounter{monthToussaintFin}{11}
+% Noel
+\setcounter{dayNoel}{23}
+\setcounter{monthNoel}{12}
+\setcounter{dayNoelFin}{8}
+\setcounter{monthNoelFin}{1}
+% Hiver
+\setcounter{dayHiver}{10}
+\setcounter{monthHiver}{2}
+\setcounter{dayHiverFin}{26}
+\setcounter{monthHiverFin}{2}
+% Printemps
+\setcounter{dayPrintemps}{6}
+\setcounter{monthPrintemps}{4}
+\setcounter{dayPrintempsFin}{22}
+\setcounter{monthPrintempsFin}{4}
+% Lundi de Paques
+\setcounter{dayPaques}{1}
+\setcounter{monthPaques}{4}
+% Ascension
+\setcounter{dayAscension}{9}
+\setcounter{dayAscensionPont}{10}
+\setcounter{monthAscension}{5}
+% Lundi de Pentecote
+\setcounter{dayPentecote}{20}
+\setcounter{monthPentecote}{5}
+
+\title{\scshape Cahier du Professeur}
+\author{Un-e excellent-e professeur-e}
+\date{2023-2024}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Début du document
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+
+%%Page de Garde
+\maketitle
+\thispagestyle{empty}
+
+\begin{center}
+ {\Large
+ \textsc{Cahier de texte}
+ }
+\end{center}
+
+\newpage
+
+% Emploi du temps au format tableau (tabularx).
+
+\begin{landscape}
+ \EmploiDuTemps
+ {
+% & Lundi & Mardi & Mercredi & Jeudi & Vendredi \\
+ 8h & & 1G & & & \\ [1.5cm] \hline
+ 9h & & 2nde & 1STMG & & 1STMG \\ [1.5cm] \hline
+ 10h & & & 1G & & \\ [1.5cm] \hline
+ 11h & & & \sem{2nde (A.P.)}{} & & 1G \\ [1.5cm] \hline\hline
+ 13h30 & & 1G & 2nde & & 2nde \\ [1.5cm] \cline{1-5}
+ 14h30 & & & \sem{Term}{1ere} & & \\ [1.5cm] \hline
+ 15h30 & & 1 euro & 2 euro & & T euro \\ [1.5cm] \hline
+ 16h30 & & & & & \\ [1.5cm] \hline
+ }
+\end{landscape}
+
+\begin{center}
+ {\Large
+ \textsc{Appel des classes}
+ }
+\end{center}
+
+% Liste des élèves, sauvée dans le fichier ListeEleves.tex, créée à partir des
+% \Classe{}{}{}.
+% Penser à compiler deux fois.
+
+\ListeEleves
+
+\newpage
+
+\tiny
+
+% Tableau de classe
+% \Classe{Nom de la classe}{Nombre de séances dans la semaine}{Liste des élèves
+% séparés par une virgule}
+
+\Classe{Seconde}{3}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+
+\newpage
+
+\Classe{1 G}{4}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+
+\newpage
+
+\Classe{1 STMG}{2}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+\newpage
+
+\Classe{2 euro}{1}
+{
+ Élève 1,
+ Élève 2,
+ Élève 3,
+ Élève 4,
+ Élève 5
+}
+\end{document}
diff --git a/macros/latex/contrib/cahierprof/cahierprof.sty b/macros/latex/contrib/cahierprof/cahierprof.sty
new file mode 100644
index 0000000000..59850eef8f
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof.sty
@@ -0,0 +1,455 @@
+%% Informations générales
+%% Dernière modification le 2023-07-12 at 08:23
+\NeedsTeXFormat{LaTeX2e}[1999/01/01]
+\ProvidesPackage{cahierprof}
+ [2023-07-12 v0.91 Les commandes pour le cahier Professeur]
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Options du package commande
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Pas d'options
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Chargement des extensions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{geometry}
+\RequirePackage[table]{xcolor}
+\RequirePackage{tabularx}
+\RequirePackage{tikz}
+ \usetikzlibrary{math}
+ \usetikzlibrary{calc}
+\RequirePackage[babel=true,kerning=true]{microtype}
+\RequirePackage{lscape}
+\RequirePackage{ifthen}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Définitions des compteurs
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Compteurs day/month/year pour la date courante
+\newcounter{day}
+\newcounter{month}
+\newcounter{year}
+%
+% Compteurs pour les vacances scolaires
+% Toussaint
+\newcounter{dayToussaint}
+\newcounter{monthToussaint}
+\newcounter{dayToussaintFin}
+\newcounter{monthToussaintFin}
+% Noel
+\newcounter{dayNoel}
+\newcounter{monthNoel}
+\newcounter{dayNoelFin}
+\newcounter{monthNoelFin}
+% Hiver
+\newcounter{dayHiver}
+\newcounter{monthHiver}
+\newcounter{dayHiverFin}
+\newcounter{monthHiverFin}
+% Printemps
+\newcounter{dayPrintemps}
+\newcounter{monthPrintemps}
+\newcounter{dayPrintempsFin}
+\newcounter{monthPrintempsFin}
+% Jours Feriés
+\newcounter{dayPaques}
+\newcounter{monthPaques}
+\newcounter{dayAscension}
+\newcounter{dayAscensionPont}
+\newcounter{monthAscension}
+\newcounter{dayPentecote}
+\newcounter{monthPentecote}
+%
+% Définition de nouveaux compteurs pour Vendredi Jour/Mois/Année
+\newcounter{friday}
+\newcounter{frimonth}
+\newcounter{friyear}
+%
+% Gestion des années bissextiles.
+\newcounter{FinFevrier}%
+% Est-ce que l'année est bissextile?%
+\pgfmathparse{int(mod(\theyear,4))}%
+\ifthenelse{\pgfmathresult>0}%
+{%
+ % if (year is not divisible by 4) then (it is a common year)%
+ \setcounter{FinFevrier}{28}%
+}{%
+ % else if (year is not divisible by 100) then (it is a leap year)%
+ \pgfmathparse{int(mod(\theyear,100))}%
+ \ifthenelse{\pgfmathresult>0}%
+ {%
+ \setcounter{FinFevrier}{29}%
+ }{%
+ % else if (year is not divisible by 400) then (it is a common year)%
+ \pgfmathparse{int(mod(\theyear,400))}%
+ \ifthenelse{\pgfmathresult>0}%
+ {%
+ \setcounter{FinFevrier}{28}%
+ }{%
+ % else (it is a leap year)%
+ \setcounter{FinFevrier}{29}%
+ }%
+ }%
+}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Nouvelles macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Liste des macros définies:
+% - \nextday : pour passer au jour d'après
+% - \weekend : pour passer les week-ends ou les vacances scolaires
+% - \getdate : afficher la date au format day/month/year
+% - \getWeek : afficher la semaine au format
+% Du lundi Day Month Year au Vendredi Day Month Year
+% - \Semaine : afficher la première ligne du tableau du cahier de texte (Lundi
+% day/month, Mardi day/month, etc)
+% - EmploiDuTemps[1] : afficher l'emploi du temps prof. #1 : l'emploi du temps,
+% au format tableau avec une colonne par jour.
+% - \sem[2] : Cours 1 semaine sur 2. Affiche le contenu de #2 si la semaine #1
+% est paire (0) ou impaire (1).
+% - \TableauClasse[2] : Afficher un tableau pour la classe. #1: le nom de la
+% classe. #2: la liste des élèves séparées par des virgules.
+% - \Classe[2] : Afficher 8 tableaux de classe. #1: le nom de la classe. #2: la
+% liste des élèves.
+% - \ListeEleves : créer un fichier ListeEleves.tex qui contient la liste des
+% élèves puis insère le fichier (compiler deux fois, comme \tableofcontents).
+%
+% Passer au jour d'après
+\newcommand{\nextday}%
+{%
+ % Les mois à 30 jours : Avril, Juin, Septembre, Novembre
+ % Les mois à 31 jours : Janvier, Mars, Mai, Juillet, Août, Octobre, Décembre
+ % Février à \theFinFevrier jours.
+ \ifthenelse{
+ \(\theday=30 \and \(\themonth=4 \or \themonth=6 \or \themonth=9 \or \themonth=11\)\)
+ \or \(\theday=31 \and \(\themonth=1 \or \themonth=3 \or \themonth=5 \or \themonth=7 \or
+ \themonth=8 \or \themonth=10 \or\themonth=12\)\)
+ \or \(\theday=\theFinFevrier \and \themonth=2\)}%
+ {
+ % Si on est en décembre, on change d'année et month=1, day=1
+ \ifthenelse{\themonth=12}%
+ {
+ \stepcounter{year}
+ \setcounter{month}{1}
+ \setcounter{day}{1}
+ }{
+ % Dans les autres cas, on change de mois et on recommence à day= 1
+ \stepcounter{month}%
+ \setcounter{day}{1}%
+ }%
+ }{
+ % Sinon, on augmente juste le compteur jour
+ \stepcounter{day}%
+ }%
+}%
+%
+% Gestions des vacances et week-end
+\newcommand{\weekend}{
+ % Vacances de Toussaint
+ \ifthenelse{ \theday=\thedayToussaint \and \themonth=\themonthToussaint}
+ {
+ \setcounter{day}{\thedayToussaintFin}
+ \setcounter{month}{\themonthToussaintFin}
+ Vacances de la Toussaint
+ }{
+ % Vacances de Noël
+ \ifthenelse{ \theday=\thedayNoel \and \themonth=\themonthNoel}
+ {
+ \setcounter{day}{\thedayNoelFin}
+ \setcounter{month}{\themonthNoelFin}
+ \stepcounter{year}
+ Vacances de Noël
+ }{
+ % Vacances d'Hiver
+ \ifthenelse{ \theday=\thedayHiver \and \themonth=\themonthHiver}
+ {
+ \setcounter{day}{\thedayHiverFin}
+ \setcounter{month}{\themonthHiverFin}
+ Vacances d'hiver
+ }{
+ % Vacances de Printemps
+ \ifthenelse{ \theday=\thedayPrintemps \and \themonth=\themonthPrintemps}
+ {
+ \setcounter{day}{\thedayPrintempsFin}
+ \setcounter{month}{\themonthPrintempsFin}
+ Vacances de printemps
+ }{
+ % sinon c'est juste un week-end
+ \nextday\nextday
+ }%
+ }%
+ }%
+ }%
+}
+%
+% Obtenir la date
+\newcommand{\getDate}{%
+ % On affiche la date
+ \theday/\themonth/\theyear%
+ % On affiche $\star$Ferié$\star$ si le jour est ferié.
+ \ifthenelse{%
+ % Jour de l'an, 1er janvier
+ \(\theday=1 \and \themonth=1\)%
+ % Lundi de Paques
+ \or\(\theday=\thedayPaques \and \themonth=\themonthPaques\)%
+ % Fête du travail, le 1er mai
+ \or\(\theday=1 \and \themonth=5\)%
+ % Victoire 1945, le 8 mai
+ \or\(\theday=8 \and \themonth=5\)%
+ % Jeudi de l'ascension
+ \or\(\theday=\thedayAscension \and \themonth=\themonthAscension\)%
+ % Pont du vendredi de l'ascension
+ \or\(\theday=\thedayAscensionPont \and \themonth=\themonthAscension\)%
+ % Lundi de Pentecote
+ \or\(\theday=\thedayPentecote \and \themonth=\themonthPentecote\)%
+ % Fête Nationale, le 14 juillet
+ \or\(\theday=14 \and \themonth=7\)%
+ % Assomption, le 15 août
+ \or\(\theday=15 \and \themonth=8\)%
+ % Toussaint, le 1er novembre
+ \or\(\theday=1 \and \themonth=11\)%
+ % Armistice 1914-1918, le 11 novembre
+ \or\(\theday=11 \and \themonth=11\)%
+ % Noël, le 25 décembre
+ \or\(\theday=25 \and \themonth=12\)%
+ }{
+ \hfil $\star$Ferié$\star$%
+ }{}%
+}%
+%
+% Affichage de la semaine.%
+\newcommand{\getWeek}{%
+ \setcounter{friday}{\theday}%
+ \setcounter{frimonth}{\themonth}%
+ \setcounter{friyear}{\theyear}%
+ % Si le mois a 31 jours.%
+ % Les mois à 31 jours : Janvier, Mars, Mai, Juillet, Août, Octobre, Décembre%
+ \ifthenelse{\themonth=1 \or \themonth=3 \or \themonth=5 \or \themonth=7 \or \themonth=8 \or \themonth=10 \or \themonth=12}%
+ {%
+ % Alors si on est avant le 28 du mois, on ajoute 4 jours%
+ \ifthenelse{\theday < 28}%
+ {%
+ \addtocounter{friday}{4}%
+ }{%
+ % Sinon, on change de mois %
+ \stepcounter{frimonth}%
+ % Changement d'année pour décembre%
+ \ifthenelse{\themonth=12}{\stepcounter{friyear}}{}%
+ % Lundi 31 - Mar 1, Mer 2, Jeu 3, Ven 4%
+ \ifthenelse{\theday=31}{\setcounter{friday}{4}}{}%
+ % Lundi 30 - Mar 31, Mer 1, Jeu 2, Ven 3%
+ \ifthenelse{\theday=30}{\setcounter{friday}{3}}{}%
+ % Lundi 29 - Mar 30, Mer 31, Jeu 1, Ven 2%
+ \ifthenelse{\theday=29}{\setcounter{friday}{3}}{}%
+ % Lundi 28 - Mar 29, Mer 30, Jeu 31, Ven 1%
+ \ifthenelse{\theday=28}{\setcounter{friday}{1}}{}%
+ }%
+ }{%
+ % Sinon, si on est au mois de février%
+ \ifthenelse{\themonth=2}%
+ {%
+ % Si le mois de février a 28 jours%
+ \ifthenelse{\theFinFevrier=28}%
+ {%
+ % Si on est avant le 25%
+ \ifthenelse{\theday < 25}%
+ {%
+ % Alors on ajoute 4 jours%
+ \addtocounter{friday}{4}%
+ }{%
+ % Sinon, on change de mois%
+ \stepcounter{frimonth}%
+ % Lundi 28 - Mar 1, Mer 2, Jeu 3, Ven 4%
+ \ifthenelse{\theday=28}{\setcounter{friday}{4}}{}%
+ % Lundi 27 - Mar 28, Mer 1, Jeu 2, Ven 3%
+ \ifthenelse{\theday=27}{\setcounter{friday}{3}}{}%
+ % Lundi 26 - Mar 27, Mer 28, Jeu 1, Ven 2%
+ \ifthenelse{\theday=26}{\setcounter{friday}{2}}{}%
+ % Lundi 25 - Mar 26, Mer 27, Jeu 28, Ven 1%
+ \ifthenelse{\theday=25}{\setcounter{friday}{1}}{}%
+ }%
+ }{%
+ % sinon le mois de février a 29 jours%
+ % si on est avant le 26%
+ \ifthenelse{\theday < 26}%
+ {%
+ % alors on ajoute 4 jours%
+ \addtocounter{friday}{4}%
+ }{%
+ % sinon, on change de mois%
+ \stepcounter{frimonth}%
+ % lundi 29 - mar 1, mer 2, jeu 3, ven 4%
+ \ifthenelse{\theday=29}{\setcounter{friday}{4}}{}%
+ % lundi 28 - mar 29, mer 1, jeu 2, ven 3%
+ \ifthenelse{\theday=28}{\setcounter{friday}{3}}{}%
+ % lundi 27 - mar 28, mer 29, jeu 1, ven 2%
+ \ifthenelse{\theday=27}{\setcounter{friday}{2}}{}%
+ % lundi 26 - mar 27, mer 28, jeu 29, ven 1%
+ \ifthenelse{\theday=26}{\setcounter{friday}{1}}{}%
+ }%
+ }%
+ }{%
+ % Sinon le mois a 30 jours%
+ % Les mois de 30 jours : Avril, Juin, Septembre, Novembre%
+ % Si on est avant le 27, on ajoute 4 jours%
+ \ifthenelse{\theday < 27}%
+ {%
+ \addtocounter{friday}{4}%
+ }{%
+ % Sinon, on change de mois%
+ \stepcounter{frimonth}%
+ % Lundi 30 - Mar 1, Mer 2, Jeu 3, Ven 4%
+ \ifthenelse{\theday=30}{\setcounter{friday}{4}}{}%
+ % Lundi 29 - Mar 30, Mer 1, Jeu 2, Ven 3%
+ \ifthenelse{\theday=29}{\setcounter{friday}{3}}{}%
+ % Lundi 28 - Mar 29, Mer 30, Jeu 1, Ven 2%
+ \ifthenelse{\theday=28}{\setcounter{friday}{2}}{}%
+ % Lundi 27 - Mar 28, Mer 29, Jeu 30, Ven 1%
+ \ifthenelse{\theday=27}{\setcounter{friday}{1}}{}%
+ }%
+ }%
+ }%
+ Du lundi \theday{}
+ \ifthenelse{\themonth=1}{janvier}{}%
+ \ifthenelse{\themonth=2}{février}{}%
+ \ifthenelse{\themonth=3}{mars}{}%
+ \ifthenelse{\themonth=4}{avril}{}%
+ \ifthenelse{\themonth=5}{mai}{}%
+ \ifthenelse{\themonth=6}{juin}{}%
+ \ifthenelse{\themonth=7}{juillet}{}%
+ \ifthenelse{\themonth=8}{août}{}%
+ \ifthenelse{\themonth=9}{septembre}{}%
+ \ifthenelse{\themonth=10}{octobre}{}%
+ \ifthenelse{\themonth=11}{novembre}{}%
+ \ifthenelse{\themonth=12}{décembre}{}
+ \theyear{}
+ au vendredi
+ \thefriday{}
+ \ifthenelse{\thefrimonth=1}{janvier}{}%
+ \ifthenelse{\thefrimonth=2}{février}{}%
+ \ifthenelse{\thefrimonth=3}{mars}{}%
+ \ifthenelse{\thefrimonth=4}{avril}{}%
+ \ifthenelse{\thefrimonth=5}{mai}{}%
+ \ifthenelse{\thefrimonth=6}{juin}{}%
+ \ifthenelse{\thefrimonth=7}{juillet}{}%
+ \ifthenelse{\thefrimonth=8}{août}{}%
+ \ifthenelse{\thefrimonth=9}{septembre}{}%
+ \ifthenelse{\thefrimonth=10}{octobre}{}%
+ \ifthenelse{\thefrimonth=11}{novembre}{}%
+ \ifthenelse{\thefrimonth=12}{décembre}{}
+ \thefriyear
+}%
+%
+% Affichage de la semaine
+\newcommand{\Semaine}
+{
+ & Lundi \getDate\nextday
+ & Mardi \getDate\nextday
+ & Mercredi \getDate\nextday
+ & Jeudi \getDate\nextday
+ & Vendredi \getDate\nextday
+}
+\newcommand{\EmploiDuTemps}[1]%
+{
+ \foreach \n in {1,...,37}
+ {
+ {\Large\textsc{Semaine \no\n{} --- \getWeek}}
+ \vfil
+ \begin{tabularx}{\linewidth}{|c||X|X|X|X|X|} \hline
+ \Semaine \\ \hline
+ #1
+ \end{tabularx}
+ \vfil
+ \hfil \weekend \hfil
+ \newpage
+ }%
+}%
+%
+% Cours 1 semaine sur 2
+% La commande \sem a deux arguments:
+% - #1 pour le cours en semaine impaire.
+% - #2 pour le cours en semaine paire.
+\newcommand{\sem}[2]%
+{
+ \pgfmathparse{int(mod(\n,2))}
+ \ifthenelse{\pgfmathresult=1}{#1}{#2}
+}%
+% Réaliser le tableau pour une classe
+% En argument:
+% - #1 : la classe.
+% - #2 la liste des élèves, séparée par des virgules (sauf le dernier).
+\newcommand{\TableauClasse}[2]
+{
+ \begin{tikzpicture}
+ % En tête et nom de la classe.
+ \tikzmath{\largeurLigne=18; \largeurNom=3.5;\largeurColonne=\largeurLigne-\largeurNom;}
+ \draw[fill=gray!50] (0,-.5) rectangle (\largeurLigne,.5);
+ \draw ({\largeurNom/2},0) node{\Large #1};
+ \draw[shift={(\largeurNom,-.5)}] (0,0) grid[xstep=\largeurColonne/20]
+ ++(\largeurColonne,1);
+ \foreach[count=\n] \NomPrenom in {#2}
+ {
+ % Griser une ligne sur 2 (les lignes paires)
+ \pgfmathparse{int(mod(\n,2))}
+ \ifnum0=\pgfmathresult\relax
+ \fill[gray!25] (0,{-.5*\n}) rectangle ++(\largeurLigne,-.5);
+ \fi
+ % Ecrire le numéro de l'élève et son nom
+ \draw (0,{-.5*\n}) node[text width=3.5cm,below right]
+ {\tiny \n. \NomPrenom} rectangle ++(\largeurNom,-.5);
+ \draw[shift={(\largeurNom,-.5*\n)}] (0,0) grid[xstep=14.5/20,ystep=.5]
+ (\largeurColonne,-.5);
+ }
+ \end{tikzpicture}
+}%
+%
+% Réaliser les tableaux de classe.
+% \TableauClasse a 3 arguments:
+% - #1 : la classe
+% - #2 : le nombre de fois qu'on voit la classe par semaine
+% - #3 : la liste des élèves
+%% Il y a 20 colonnes par tableaux. Il faut ~2 tableaux pour faire 37 semaines
+%% Le nombre de tableaux est donc deux fois le nombre de fois qu'on voit les
+%% élèves par semaine.
+%
+%
+\newcommand{\Classe}[3]
+{
+ \immediate\write\outputstream{#1}
+ \immediate\write\outputstream{\string \begin{enumerate}}
+ % Ecrire les noms des élèves dans le bon fichier
+ \foreach \i in {#3}
+ {
+ \immediate\write\outputstream{\string\item\space \i}
+ }
+ \immediate\write\outputstream{\string \end{enumerate}}
+ \begin{center}
+ \tikzmath{\NbTableaux=2*#2;}
+ \foreach \i in {1,...,\NbTableaux}
+ {
+ \TableauClasse{#1}{#3} \\[.50cm]
+ }
+ \end{center}
+}
+
+% Liste des élèves
+\newcommand{\ListeEleves}
+{
+ %insère le fichier ListeEleves.tex s'il existe
+ \IfFileExists{ListeEleves.tex}{
+ \input{ListeEleves.tex}
+ }{
+ % Else : do nothing.
+ }
+ % Stocker le nom des élèves dans un fichier externe.
+ \newwrite\outputstream
+ \immediate\openout\outputstream=ListeEleves.tex
+}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Divers
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Pas d'indentation des paragraphes
+\setlength{\parindent}{0pt}
+%
+% Fin du package.
+\endinput
diff --git a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf b/macros/latex/contrib/profmaquette/doc/profmaquette-doc.pdf
index 1e1de72f44..1f703cfde5 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 2929c9926d..0bb0d4d4ee 100644
--- a/macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex
+++ b/macros/latex/contrib/profmaquette/doc/profmaquette-doc.tex
@@ -95,8 +95,12 @@
}{}%
\usepackage{pdfpages}
-
-\title{Factoriser la production de documents}
+\title{%
+ \begin{tabular}{c}
+ \ttfamily ProfMaquette.sty\\
+ \small Factoriser la production de documents
+ \end{tabular}
+}%
\author{C.Poulain}
\date{\PfMfiledate}
@@ -116,10 +120,10 @@
texcsstyle=*\color{black},%pour colorer la contre-oblique
classoffset=5,
texcsstyle=*\color{blue},%pour colorer la contre-oblique
- moretexcs={brm,TikzDM,TikzDS,TikzIE,TikzFiche,Competences,TikzParcours,TikzPdT,PfMCompNA,PfMCompECA,PfMCompA,AfficheParcours},
- emph={Maquette,exercice,Solution,Reponse,Indice},%
+ moretexcs={brm,TikzDM,TikzDMCor,TikzDS,TikzDSCor,TikzIE,TikzIECor,TikzFiche,TikzFicheCor,TikzCours,Competences,TikzParcours,TikzParcoursCor,TikzPdT,TikzPdTCor,PfMCompNA,PfMCompECA,PfMCompA,AfficheParcours,CheminVrai,CheminFaux},
+ emph={Maquette,exercice,exercice,Solution,Reponse,Indice},%
classoffset=1,
- keywords={DM,DS,IE,Fiche,CorrigeFin,CorrigeApres,PdT,Parcours,ParcoursPerso},
+ keywords={DM,DS,IE,Fiche,CorrigeFin,CorrigeApres,PdT,Parcours,ParcoursPerso,Cours},
keywordstyle=\color{OliveDrab},
classoffset=2,
keywords={Theme,Niveau,Classe,Date,Calculatrice,Code,Numero,Sujet,Nom,NumSujet,Fichier,Type},
@@ -148,7 +152,7 @@
\makeatother
\usepackage{textcomp}%pour les < de listings
-\usepackage{enumerate}
+\usepackage{enumitem}
\usepackage{hhline}
\usepackage{pifont}
@@ -172,7 +176,7 @@
}%
\usepackage{menukeys}
-\newcommand\metamk[1]{\textlangle#1\textrangle}
+\newcommand\metamk[1]{\textcolor{chocolate}{\textlangle}{\ttfamily #1}\textcolor{chocolate}{\textrangle}}
\newcommand\Cle[1]{%
{\sffamily\textlangle #1\textrangle}%
@@ -227,7 +231,7 @@
]%
\sffamily \useKV[IE]{Nom} \no\useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{\scriptsize(Sujet \useKV[IE]{NumSujet})}{}
\vspace{1em}
- \par{\tiny\jobname}\hfill{\scriptsize\useKV[DS]{Date}}
+ \par{\tiny\jobname}\hfill{\scriptsize\useKV[IE]{Date}}
\end{tcolorbox}%
\end{minipage}\hfill\begin{minipage}{0.35\linewidth}
Nom : \dotfill\\[0.5em]
@@ -237,9 +241,14 @@
\par\bigskip
}
+\tcbset{%
+ userfiche/.style={%
+ colback=gray!5%
+ }%
+}%
+
\renewcommand\TikzFiche{%
- \begin{tcolorbox}[%spread outwards=-1cm,spread inwards=-1cm,
- colback=gray!5]%
+ \begin{tcolorbox}[userfiche]%
\Large\sffamily \useKV[Fiche]{Theme}\hfill\useKV[Fiche]{Niveau}\ieme{} \useKV[Fiche]{Classe}
\par{\tiny\jobname}\hfill{\scriptsize\useKV[Fiche]{Date}}
\end{tcolorbox}%
@@ -263,35 +272,36 @@
\begin{document}
\maketitle
\thispagestyle{empty}
-Après la création du package \lstinline!ProfCollege!, l'idée de poursuivre la factorisation des méthodes de travail a naturellement germé. Produire des fiches, des devoirs, des évaluations\dots{} avec des méthodes différentes, cela peut vite apparaître fastidieux. Créé pour améliorer cela, cet ensemble de macro-commandes est basé, quasi exclusivement, sur les environnements \lstinline!Maquette! et \lstinline!exercice! :
+Après la création du package \lstinline!ProfCollege!, l'idée de poursuivre la factorisation des méthodes de travail a naturellement germé. Produire des fiches, des devoirs, des évaluations\dots{} avec des méthodes différentes, peut vite apparaître fastidieux. Créé pour factoriser ce travail, cet ensemble de macro-commandes est basé, quasi exclusivement, sur les environnements \lstinline!Maquette! et \lstinline!exercice! :
\begin{itemize}
\item l'environnement \lstinline!Maquette! indique le type de document souhaité et ses caractéristiques;
-\item l'environnement \lstinline!exercice! adapte la présentation et les fonctions des exercices en accord avec l'environnement \lstinline!Maquette!.
+\item l'environnement \lstinline!exercice! adapte la présentation et les fonctions des exercices en accord avec l'environnement \lstinline!Maquette! choisi.
\end{itemize}
+Le c\oe ur de l'utilisation du package \lstinline!ProfMaquette! est donc une gestion des briques élémentaires du travail d'enseignant, à savoir les exercices.
\clearpage
\section*{L'environnement \lstinline!Maquette!}
-\begin{Codes}[listing only]{0.4}{}
-\begin{Maquette}
+\begin{Codes}[listing only,listing options={frame=,escapechar=!}]{0.4}{}
+\begin{Maquette}[!\metamk{TypeDocument}!,!\metamk{TypeCorrection}!]{!\metamk{Caracteristiques}!}
\end{Maquette}
\end{Codes}
-C'est lui qui va indiquer :
+C'est lui qui indique :
\begin{itemize}
-\item le type de document souhaité (Devoir Maison / Devoir Surveillé / Interrogatin écrite / Fiche d'exercices / Parcours d'exercices / Parcours personnalisé / Plan de travail);
-\item et si ce travail est corrigé (à la suite d'un exercice ou à la fin du document) ou pas;
+\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);
+\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 du document souhaité.
+puis il indiquera les caractéristiques \metamk{Caracteristiques} du document souhaité.
\clearpage
\subsection*{Les devoirs maison}
\begin{CadreMP}
\begin{Description}
-\item[La clé \Cle{DM}]\Defaut{false}
+\item[]La clé \Cle{DM}\Defaut{false}
\begin{itemize}
- \item[La clé \Cle{Numero}]\Defaut{1}
- \item[La clé \Cle{Date}]\Defaut{\lstinline!\\today!}
- \item[La clé \Cle{Classe}]\Defaut{\{\}}
- \item[La clé \Cle{Niveau}]\Defaut{3}
- \item[La clé \Cle{Code}\footnotemark]\Defaut{\{\}}
+ \item[]La clé \Cle{Numero}\Defaut{1}
+ \item[]La clé \Cle{Date}\Defaut{\lstinline!\\today!}
+ \item[]La clé \Cle{Classe}\Defaut{\{\}}
+ \item[]La clé \Cle{Niveau}\Defaut{3}
+ \item[]La clé \Cle{Code}\footnotemark\Defaut{\{\}}
\end{itemize}
\end{Description}
\end{CadreMP}
@@ -307,13 +317,13 @@ puis il indiquera les caractéristiques du document souhaité.
\begin{Description}
\item[La clé \Cle{DS}]\Defaut{false}
\begin{itemize}
- \item[La clé \Cle{Numero}]\Defaut{1}
- \item[La clé \Cle{Date}]\Defaut{\lstinline!\\today!}
- \item[La clé \Cle{Classe}]\Defaut{}
- \item[La clé \Cle{Niveau}]\Defaut{3}
- \item[La clé \Cle{Code}]\Defaut{}
- \item[La clé \Cle{Calculatrice}] autorisée ou non\Defaut{false}
- \item[La clé \Cle{Sujet}]\Defaut{A}
+ \item[]La clé \Cle{Numero}\Defaut{1}
+ \item[]La clé \Cle{Date}\Defaut{\lstinline!\\today!}
+ \item[]La clé \Cle{Classe}\Defaut{}
+ \item[]La clé \Cle{Niveau}\Defaut{3}
+ \item[]La clé \Cle{Code}\Defaut{}
+ \item[]La clé \Cle{Calculatrice} autorisée ou non\Defaut{false}
+ \item[]La clé \Cle{Sujet}\Defaut{A}
\end{itemize}
\end{Description}
\end{CadreMP}
@@ -328,15 +338,15 @@ puis il indiquera les caractéristiques du document souhaité.
\begin{Description}
\item[La clé \Cle{IE}]\Defaut{false}
\begin{itemize}
- \item[La clé \Cle{Numero}]\Defaut{1}
- \item[La clé \Cle{Date}]\Defaut{\lstinline!\\today!}
- \item[La clé \Cle{Classe}]\Defaut{}
- \item[La clé \Cle{Niveau}]\Defaut{3}
- \item[La clé \Cle{Code}]\Defaut{}
- \item[La clé \Cle{Calculatrice}] autorisée ou nom\Defaut{false}
- \item[La clé \Cle{Sujet}] pour de multiples sujets\Defaut{\{\}}
- \item[La clé \Cle{Theme}] Thème de l'évaluation \Defaut{\{\}}
- \item[La clé \Cle{Nom}] Pour changer le nom \og \'Evaluation\fg\Defaut{\'Evaluation}
+ \item[]La clé \Cle{Numero}\Defaut{1}
+ \item[]La clé \Cle{Date}\Defaut{\lstinline!\\today!}
+% \item[]La clé \Cle{Classe}\Defaut{}
+ % \item[]La clé \Cle{Niveau}\Defaut{3}
+ \item[]La clé \Cle{Code}\Defaut{}
+ \item[]La clé \Cle{Calculatrice} autorisée ou nom\Defaut{false}
+ \item[]La clé \Cle{Sujet} pour de multiples sujets\Defaut{\{\}}
+ \item[]La clé \Cle{Theme} Thème de l'évaluation \Defaut{\{\}}
+ \item[]La clé \Cle{Nom} Pour changer le nom \og \'Evaluation\fg\Defaut{\'Evaluation}
\end{itemize}
\end{Description}
\end{CadreMP}
@@ -351,12 +361,12 @@ puis il indiquera les caractéristiques du document souhaité.
\begin{Description}
\item[La clé \Cle{Fiche}]\Defaut{false}
\begin{itemize}
- \item[La clé \Cle{Date}]\Defaut{\lstinline!\\today!}
- \item[La clé \Cle{Classe}]\Defaut{Nairobi}
- \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{Date}\Defaut{\lstinline!\\today!}
+ \item[]La clé \Cle{Classe}\Defaut{}
+ \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}
\end{itemize}
\end{Description}
\end{CadreMP}
@@ -374,12 +384,12 @@ puis il indiquera les caractéristiques du document souhaité.
\begin{Description}
\item[La clé \Cle{Parcours}\footnotemark]\Defaut{false}
\begin{itemize}
- \item[La clé \Cle{Date}]\Defaut{\lstinline!\\today!}
- \item[La clé \Cle{Classe}]\Defaut{Nairobi}
- \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{Date}\Defaut{\lstinline!\\today!}
+ \item[]La clé \Cle{Classe}\Defaut{}
+ \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}
\end{itemize}
\end{Description}
\end{CadreMP}
@@ -395,12 +405,12 @@ puis il indiquera les caractéristiques du document souhaité.
\begin{Description}
\item[La clé \Cle{PdT}\footnotemark]\Defaut{false}
\begin{itemize}
- \item[La clé \Cle{Date}]\Defaut{\lstinline!\\today!}
- \item[La clé \Cle{Classe}]\Defaut{Nairobi}
- \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{Date}\Defaut{\lstinline!\\today!}
+ \item[]La clé \Cle{Classe}\Defaut{}
+ \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}
\end{itemize}
\end{Description}
\end{CadreMP}
@@ -419,7 +429,7 @@ puis il indiquera les caractéristiques du document souhaité.
\begin{Description}
\item[La clé \Cle{ParcoursPerso}]\Defaut{false}
\begin{itemize}
- \item[La clé \Cle{Fichier}]\Defaut{}\par est le nom du fichier {\ttfamily csv} à utiliser pour créer les parcours personnalisés.
+ \item[]La clé \Cle{Fichier} est le nom du fichier {\ttfamily csv} à utiliser.\Defaut{}
\end{itemize}
\end{Description}
\end{CadreMP}
@@ -429,8 +439,85 @@ puis il indiquera les caractéristiques du document souhaité.
\end{Maquette}
\end{Codes}
\clearpage
-Comme on peut le voir, chaque type de travail est associé à une présentation. Ces présentations sont créées par les commandes\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!\TikzDM/\TikzDMCor! pour la clé \Cle{DM}; \lstinline!\TikzDS/\TikzDSCor! pour la clé \Cle{DS}; \lstinline!\TikzIE/\TikzIECor! pour la clé \Cle{IE}; \lstinline!\TikzFiche/\TikzFicheCor! pour la clé \Cle{Fiche}, \lstinline!\TikzParcours/\TikzParcoursCor! pour la clé \Cle{Parcours} et \lstinline!\TikzPdT! pour la clé \Cle{PdT}.
+\subsection*{Les \og cours\fg\footnote{Le package \lstinline!ProfMaquette! n'est pas fait pour des documents longs. D'ailleurs, cette clé \Cle{Cours} n'a été ajouté qu'après forte insistance de ses demandeurs\dots}}
+\begin{CadreMP}
+ \begin{Description}
+\item[La clé \Cle{Cours}]\Defaut{false}
+ \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}
+ \end{itemize}
+\end{Description}
+\end{CadreMP}
+\begin{Codes}[listing only]{0.4}{}
+\begin{Maquette}[Cours]{}
+ On considère un triangle $ABC$\dots
+\end{Maquette}
+\end{Codes}
+\begin{Maquette}[Cours]{}
+ On considère un triangle $ABC$\dots
+\end{Maquette}
+\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};
+\item \lstinline!userds/userdscor! pour la clé \Cle{DS};%
+\item \lstinline!userie/useriecor! pour la clé \Cle{IE};%
+\item \lstinline!userfiche/userfichecor! pour la clé \Cle{Fiche};%*
+\item \lstinline!userparcours/userparcourscor! pour la clé \Cle{Parcours};%*
+\item \lstinline!userpdt/userpdtcor! pour la clé \Cle{PdT};%*
+\item et \lstinline!usercours! pour la clé \Cle{Cours}.
+\end{itemize}
+Par exemple, pour une fiche, le style {\em par défaut} permet d'obtenir :
+
+%\begin{Codes}[]{0.4}{}
+\begin{Maquette}[Fiche]{Niveau=6,Classe=Zola,Date=25 décembre 2020}
+ On considère un triangle $ABC$\dots
+\end{Maquette}
+%\end{Codes}
+
+En écrivant {\em avant l'appel} à l'environnement \lstinline!Maquette! :
+\begin{Codes}[listing only]{0.4}{}
+\tcbset{%
+ userfiche/.style={%
+ colframe=Orange!75,
+ colback=Orange!15%
+ }%
+}%
+\end{Codes}
+on obtient :
+
+\tcbset{%
+ userfiche/.style={%
+ colframe=Orange!75,
+ colback=Orange!15%
+ }%
+}%
+
+\begin{Maquette}[Fiche]{Niveau=6,Classe=Zola,Date=25 décembre 2020}
+ On considère un triangle $ABC$\dots
+\end{Maquette}
+
+\tcbset{%
+ userfiche/.style={%
+ colback=gray!5%
+ }%
+}%
+
+Pour modifier {\em plus finement} les entêtes des différentes maquettes, on dispose des commandes :
+\begin{itemize}[label=\textbullet]
+\item \lstinline!\TikzDM/\TikzDMCor! pour la clé \Cle{DM};
+\item \lstinline!\TikzDS/\TikzDSCor! pour la clé \Cle{DS};%
+\item \lstinline!\TikzIE/\TikzIECor! pour la clé \Cle{IE};%
+\item \lstinline!\TikzFiche/\TikzFicheCor! pour la clé \Cle{Fiche};%*
+\item \lstinline!\TikzParcours/\TikzParcoursCor! pour la clé \Cle{Parcours};%*
+\item \lstinline!\TikzPdT/\TikzPdTCor! pour la clé \Cle{PdT};%*
+\item et \lstinline!\TikzCours! pour la clé \Cle{Cours}.
+\end{itemize}
+Leurs modifications seront facilitées en copiant le code fourni par le fichier \lstinline!ProfMaquette.sty!.
+\clearpage
On dispose également de la commande \lstinline!\Competences! permettant de construire un tableau de\dots{} compétences données par l'utilisateur; les compétences étant séparées par le symbole \lstinline!/!.
\begin{Codes}[]{0.4}{}
\Competences{Utiliser le compas/Utiliser l'équerre}
@@ -444,10 +531,10 @@ Les notations \lstinline!NA!, \lstinline!ECA! et \lstinline!A! peuvent être red
\end{Codes}
Si l'on souhaite davantage de niveaux d'évaluations (ou moins), on utilisera les codes suivants :
\begin{Codes}[]{0.4}{}
-\Competences[4]{0§1§2§3/Utiliser le compas/Utiliser l'équerre}
+\Competences[4]{0/1/2/3/Utiliser le compas/Utiliser l'équerre}
\end{Codes}
\begin{Codes}[]{0.4}{}
-\Competences[2]{A§NA/Utiliser le compas/Utiliser l'équerre}
+\Competences[2]{A/NA/Utiliser le compas/Utiliser l'équerre}
\end{Codes}
\clearpage
\section*{L'environnement \lstinline!exercice!}
@@ -457,7 +544,7 @@ Si l'on souhaite davantage de niveaux d'évaluations (ou moins), on utilisera le
\end{exercice}
\end{Codes}
\subsection*{Habillage des exercices}
-L'envionnement \lstinline!exercice! doit {\em impérativement} être inclus dans un environnement \lstinline!Maquette! car le choix de document influence la présentation des exercices.
+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}
@@ -486,11 +573,21 @@ L'envionnement \lstinline!exercice! doit {\em impérativement} être inclus dans
\end{exercice}
\end{Maquette}
\end{Codes}
-%\begin{Maquette}[Fiche]{Theme=Les fonctions,Niveau=3,Classe=Gide}
-% \begin{exercice}
-% La fonction $f:x\mapsto3x+2$ est-elle une fonction affine ? Justifier.
-% \end{exercice}
-%\end{Maquette}
+\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.
+\end{Description}
+\begin{Codes}[]{0.4}{}
+\begin{Maquette}[Fiche]{Theme=Les fonctions,Niveau=3,Classe=Gide}
+ \begin{exercice}[Background=Orange!15,Cadre=Orange!50]
+ La fonction $f:x\mapsto3x+2$ est-elle une fonction affine ? Justifier.
+ \end{exercice}
+\end{Maquette}
+\end{Codes}
\subsection*{Le barème des exercices}
On remarque que certains exercices sont associés à un total de point. C'est une des clés disponibles pour l'environnement \lstinline!exercice!. Voici celles pour les barèmes :
\begin{Description}
@@ -576,7 +673,7 @@ 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ésoud oralement.
+ 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}.
\end{Description}
@@ -646,13 +743,13 @@ Dans le cas de cette maquette, l'environnement \lstinline!exercice! dispose de l
\subsection*{Focus sur la maquette \lstinline!ParcoursPerso!}
Dans le cas de cette maquette, l'environnement \lstinline!exercice! n'admet aucune clé. En effet, cette maquette utilise :
\begin{itemize}
-\item et un fichier {\ttfamily *.csv} de la forme :
+\item un fichier {\ttfamily *.csv} de la forme :
\begin{Codes}[listing only]{0.4}{}
Anne,Bec,{1,2}
Paul,Isse,{1,3}
Jean,Némar,{1,4}
\end{Codes}
-\item une liste d'exercices pour produire les trois pages suivantes à l'aide du code :
+\item et une liste d'exercices pour produire les trois pages suivantes à l'aide du code :
\begin{Codes}[listing only]{0.4}{}
\begin{Maquette}[ParcoursPerso]{Type=Fiche,Fichier=Documentation,Theme=L'alphabet,Niveau=6,Classe=Alpha}
\begin{exercice}
@@ -687,13 +784,13 @@ L'exemple suivant est obtenu par le code présenté à la page suivante.
\begin{Maquette}[PdT]{Theme=Plan de travail : Calcul littéral,Niveau=3,Classe=Alpha,Date={},Code={}}
\setcounter{PfMExo}{0}
\begin{minipage}{0.35\linewidth}
- \begin{exercice}%Exercice 1
+ \begin{exercice}%exercice 1
A
\end{exercice}
\end{minipage}
\hfill
\begin{minipage}{0.3\linewidth}
- \begin{exercice}%Exercice 2
+ \begin{exercice}%exercice 2
B
\end{exercice}
\end{minipage}
@@ -707,13 +804,13 @@ L'exemple suivant est obtenu par le code présenté à la page suivante.
\vspace*{2cm}
\begin{minipage}{0.35\linewidth}
- \begin{exercice}%Exercice 3
+ \begin{exercice}%exercice 3
C
\end{exercice}
\end{minipage}
\hfill
\begin{minipage}{0.3\linewidth}
- \begin{exercice}%Exercice 4
+ \begin{exercice}%exercice 4
D
\end{exercice}
\end{minipage}
@@ -730,13 +827,13 @@ L'exemple suivant est obtenu par le code présenté à la page suivante.
\begin{Codes}[listing only]{}{}
\begin{Maquette}[PdT]{Theme=Plan de travail : Calcul littéral,Niveau=3,Classe=Alpha,Date={},Code={}}
\begin{minipage}{0.35\linewidth}
- \begin{exercice}%Exercice 1
+ \begin{exercice}%exercice 1
A
\end{exercice}
\end{minipage}
\hfill
\begin{minipage}{0.3\linewidth}
- \begin{exercice}%Exercice 2
+ \begin{exercice}%exercice 2
B
\end{exercice}
\end{minipage}
@@ -750,13 +847,13 @@ L'exemple suivant est obtenu par le code présenté à la page suivante.
\vspace*{2cm}
\begin{minipage}{0.35\linewidth}
- \begin{exercice}%Exercice 3
+ \begin{exercice}%exercice 3
C
\end{exercice}
\end{minipage}
\hfill
\begin{minipage}{0.3\linewidth}
- \begin{exercice}%Exercice 4
+ \begin{exercice}%exercice 4
D
\end{exercice}
\end{minipage}
@@ -772,7 +869,7 @@ L'exemple suivant est obtenu par le code présenté à la page suivante.
\end{Codes}
\clearpage
\subsection*{\og Correction\fg{} des exercices}
- Un exercice avec correction aura la forme suivante :
+ 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}{}
\begin{exercice}
@@ -780,14 +877,27 @@ L'exemple suivant est obtenu par le code présenté à la page suivante.
\begin{Solution}
\end{Solution}
+\begin{Reponse}
+
+\end{Reponse}
+\begin{Indice}
+
+\end{Indice}
\end{Codes}
On peut gérer la correction des exercices à deux niveaux :
\begin{Description}
- \item[Au niveau de l'environnement ]\lstinline!Maquette!, on dispose de deux clés :
+ \item[Au niveau de l'environnement ]\lstinline!Maquette!, on dispose des clés :
\end{Description}
\begin{Description}
\item[la Clé \Cle{CorrigeApres}]\Defaut{false}\par qui affiche le corrigé, s'il existe, après l'énoncé de l'exercice.
\item[la Clé \Cle{CorrigeFin}]\Defaut{false}\par qui affiche les corrigés, s'ils existent, à la fin du document.
+ \begin{quote}
+ \begin{description}
+ \item[la Clé \Cle{CorrigeAll}]\Defaut{false}\par est {\em uniquement} valable avec la clé \Cle{Fiche}. Elle affiche une feuille avec tous les corrigés détaillés (environnement \lstinline!Solution!); une feuille avec toutes les réponses brutes (environnement \lstinline!Reponse!) et une feuille avec tous les indices (environnement \lstinline!Indice!).
+\item[la Clé \Cle{Colonnes}]\Defaut{1}\par définit le nombre de colonnes utilisé pour afficher les corrigés.
+\item[la Clé \Cle{Epaisseur}]\Defaut{0pt}\par modifie l'épaisseur de la barre de séparation des colonnes.
+ \end{description}
+ \end{quote}
\end{Description}
Pour la maquette \lstinline!ParcoursPerso!, seule la clé \Cle{CorrigeFin} est autorisée.
@@ -796,7 +906,7 @@ Pour la maquette \lstinline!ParcoursPerso!, seule la clé \Cle{CorrigeFin} est a
\begin{Maquette}[IE,CorrigeApres]{Theme=Calcul littéral}
\begin{exercice}% n'a pas de correction
\begin{enumerate}
- \item $1+1=?$.
+ \item $1+1=?$
\end{enumerate}
\end{exercice}
\begin{exercice}
@@ -814,7 +924,7 @@ Pour la maquette \lstinline!ParcoursPerso!, seule la clé \Cle{CorrigeFin} est a
\begin{Maquette}[IE,CorrigeApres]{Theme=Calcul littéral}
\begin{exercice}% n'a pas de correction
\begin{enumerate}
- \item $1+1=?$.
+ \item $1+1=?$
\end{enumerate}
\end{exercice}
\begin{exercice}
@@ -829,31 +939,13 @@ Pour la maquette \lstinline!ParcoursPerso!, seule la clé \Cle{CorrigeFin} est a
\end{Solution}
\end{Maquette}
\begin{Description}
-\item[Au niveau de l'environnement ]\lstinline!exercice!, on peut affiner la correction proposée en écrivant le code de l'exercice sous la forme :
-\end{Description}
-\begin{Codes}[listing only]{0.4}{}
-\begin{exercice}
-
-\end{exercice}
-\begin{Solution}
-
-\end{Solution}
-\begin{Reponse}
-
-\end{Reponse}
-\begin{Indice}
-
-\end{Indice}
-\end{Codes}
-L'environnement \lstinline!exercice! dispose alors des clés suivantes :
+\item[Au niveau de l'environnement ]\lstinline!exercice!, on peut affiner la correction à l'aide des clés :
\begin{Description}
\item[la Clé \Cle{PasCorrige}]\Defaut{false}\par supprime l'affichage de tous types de correction pour l'exercice considéré;
\item[la Clé \Cle{Pouce}]\Defaut{false}\par qui affiche uniquement le contenu de l'environnement \lstinline!Indice!;
\item[la Clé \Cle{Direct}]\Defaut{false}\par qui affiche uniquement le contenu de l'environnement \lstinline!Reponse!.
\end{Description}
-
-\bigskip
-
+\end{Description}
Cela engendre, si nécessaire, la création de fichier \lstinline!*.sol! pour les solutions, \lstinline!*.rep! pour les réponses et \lstinline!*.cdp! pour les indices. Il conviendra de les effacer à chaque changement de clé (\Cle{PasCorrige}, \Cle{Pouce}, \Cle{Direct}) ou ajout d'exercice(s). En effet, la priorité d'affichage est donnée aux fichiers \lstinline!*.sol! puis \lstinline!*.rep! et enfin \lstinline!*.cdp!.
\bigskip
@@ -936,7 +1028,6 @@ Cela engendre, si nécessaire, la création de fichier \lstinline!*.sol! pour le
$7x+35$
\end{Reponse}
\begin{exercice}[Direct]
-
$\dfrac34-\dfrac25=$?
\end{exercice}
\begin{Solution}
@@ -961,6 +1052,11 @@ Cela engendre, si nécessaire, la création de fichier \lstinline!*.sol! pour le
39
\end{Reponse}
\end{Maquette}
+\clearpage
+\section*{Historique}
+\begin{description}
+\item[\PfMfiledate{}--v \PfMfileversion] Ajout de styles de personnalisation.
+\end{description}
\end{document}
%%% Local Variables:
%%% TeX-engine: luatex
diff --git a/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty b/macros/latex/contrib/profmaquette/latex/ProfMaquette.sty
index c18029cbe4..d8fb448c6e 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/06/04}%
+\def\filedate{2023/08/07}%
\let\PfMfiledate\filedate%
-\def\fileversion{0.15}%
+\def\fileversion{0.2}%
\let\PfMfileversion\fileversion%
\ProvidesPackage{ProfMaquette}[\filedate\space v\fileversion\space Maquettage de documents]%
@@ -15,33 +15,38 @@
\RequirePackage{xlop}
-\RequirePackage[most]{tcolorbox}
-\RequirePackage{varwidth}
+\RequirePackage{tcolorbox}
+\tcbuselibrary{breakable,external,fitting,hooks,magazine,poster,raster,skins,theorems,listings,listingsutf8}
+
\RequirePackage{xinttools}
\RequirePackage{listofitems}
\RequirePackage{array}
\RequirePackage{datatool}
+\RequirePackage{modulus}
+
%définition des clés
\RequirePackage{simplekv}
-\setKVdefault[Boulot]{Base=false,BaseHTML=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=false,ParcoursPerso=false,CorrigeApres=false,CorrigeFin=false,Brevet=false,BaremeComplet=false,BaremeGlobal=false,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[DM]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname}
-\setKVdefault[DS]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false,Sujet=A}
-\setKVdefault[Fiche]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe=Nairobi,Code={},NomExercice=Exercice}
-\setKVdefault[PdT]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe=Nairobi,Code={},NomExercice=Exercice}
-\setKVdefault[Parcours]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe=Nairobi,Code={},NomExercice=Exercice,Vertical=false}
-\setKVdefault[ParcoursPerso]{Fichier={}}
-\setKVdefault[IE]{Nom=\'Evaluation,Sujets=false,Theme={},Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false}
-\defKV[IE]{Sujet=\setKV[IE]{Sujets}}
-\setKVdefault[RecapBrevet]{Theme=Les nombres décimaux,Date=\today,Code={},NomExercice=Exercice}
+\setKVdefault[Boulot]{Cours=false,Base=false,BaseHTML=false,Fiche=false,DM=false,DS=false,IE=false,Kholle=false,RecapBrevet=false,PdT=false,Parcours=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}%
+\setKVdefault[DS]{Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false,Sujet=A}%
+\setKVdefault[Fiche]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[PdT]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice}%
+\setKVdefault[Parcours]{Theme=Les nombres décimaux,Date=\today,Niveau=6,Classe={},Code={},NomExercice=Exercice,Vertical=false}%
+\setKVdefault[ParcoursPerso]{Fichier={}}%
+\setKVdefault[IE]{Nom=\'Evaluation,Sujets=false,Theme={},Numero=1,Date=\today,Classe={},Niveau=3,Code=\jobname,Calculatrice=false}%
+\defKV[IE]{Sujet=\setKV[IE]{Sujets}}%
+\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[ClesExercices]{PasTitre=false,AffichageSource=false,BaremeTotal,BaremeDetaille=false,MotPoint=point,AffichageTitre=false,Calculatrice=true,Oral=false,Difficulte=0,AffichageCompetence=false,TitreExo=Exercice,PasCorrige=false,Direct=false,Pouce=false,Parcours=false}%
+ du Hainaut (Valenciennes),NomEleve=Albert Einstein,CR=false}%
+\setKVdefault[ClesExercices]{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,Background=white,Cadre=gray!50}%
\defKV[ClesExercices]{Source=\setKV[ClesExercices]{AffichageSource}}%
\defKV[ClesExercices]{Titre=\setKV[ClesExercices]{AffichageTitre}}%
\defKV[ClesExercices]{Competence=\setKV[ClesExercices]{AffichageCompetence}}%
-\defKV[ClesExercices]{Trajet=\setKV[ClesExercices]{Parcours}}
+\defKV[ClesExercices]{Trajet=\setKV[ClesExercices]{Parcours}}%
\setKVdefault[SchemaParcours]{Colonnes=100,Rayon=2.5mm,Largeur=7.5mm,Couleur=LightSteelBlue,Csv=false}%
% Definition de longueurs
\newlength\PfMLargeurSchemaParcours
@@ -52,6 +57,8 @@
%définition des compteurs
\newcounter{PfMExo}%Numéro des exercices
\setcounter{PfMExo}{0}%
+\newcounter{PfMExoSol}%Pour repérer les valeurs aléatoires construites automatiquement dans la solution
+\setcounter{PfMExoSol}{0}%
\newcounter{PfMCorrigeParcoursPerso}%affichage des solutions ou pas dans le cadre d'un parcours perso
\setcounter{PfMCorrigeParcoursPerso}{0}%
\newcounter{PfMSOS}%Numéro des SOS dans les parcours fléchés
@@ -66,13 +73,15 @@
\setcounter{RetiensInd}{0}%
\newcounter{PfMNbLogo}%Pour décaler les logos sur la ligne haute de tcolorbox
\setcounter{PfMNbLogo}{0}%
-\newcounter{Maquette}%Pour compter le nombres de "travaux"
-\setcounter{Maquette}{0}%
+\newcounter{PfMMaquette}%Pour compter le nombres de "travaux"
+\setcounter{PfMMaquette}{0}%
+\newcounter{PfMSection}%Pour le barème et ne pas faire obstruction à section
+\setcounter{PfMSection}{0}%
\newcount\Orientation%Pour le schéma des parcours
% couleurs
\colorlet{PfMColCpt}{gray!50}
\colorlet{PfMColSrc}{gray!50}
-\colorlet{PfMCadreFiche}{gray!50}
+%\colorlet{PfMCadreFiche}{gray!50}
\colorlet{PfMCadreDM}{gray!85}
\colorlet{PfMCadreParcours}{gray!50}
% Définitions de commandes
@@ -82,14 +91,110 @@
\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
+\newcounter{PfMSommetcount}%
+\newcommand\ChoixSommet[2]{%
+ % #1 le nombre de sommets
+ % #2 le nom de base des commandes qui sauvegarde les noms
+ \xdef\CANSGFoo{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}%
+ \MelangeListe{\CANSGFoo}{#1}%
+ \ignoreemptyitems
+ \readlist*\PfMSommet{\faa}%
+ \reademptyitems
+ \xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
+ \setcounter{PfMSommetcount}{##1}
+ \expandafter\xdef\csname p\Alph{PfMSommetcount}\endcsname{\PfMSommet[##1]}%
+ \expandafter\xdef\csname #2\Alph{PfMExo}\alph{PfMSommetcount}\endcsname{\PfMSommet[##1]}%
+ }%
+}%
+%%%
+
+\ifdef{\VariableAlea}{%
+ \RenewDocumentCommand\VariableAlea{s m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{#3}}%
+ \expandafter\xdef\csname #2\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \xdef#2{\fpeval{#3}}%
+ }%
+ }%
+}{%
+ \NewDocumentCommand\VariableAlea{s m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{#3}}%
+ \expandafter\xdef\csname #2\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \xdef#2{\fpeval{#3}}%
+ }%
+ }%
+}%
+
+\ifdef{\ChoixAlea}{%
+ \RenewDocumentCommand\ChoixAlea{s o m m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \IfNoValueTF{#2}{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }%
+ }{%
+ \IfNoValueTF{#2}{%
+ \xdef#5{\fpeval{randint(#3,#4)}}%
+ }{%
+ \xdef#5{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ }%
+ }%
+ }%
+}{%
+ \NewDocumentCommand\ChoixAlea{s o m m m}{%
+ \IfBooleanTF{#1}{%
+ \stepcounter{PfMAlea}%
+ \IfNoValueTF{#2}{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{randint(#3,#4)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }{%
+ \expandafter\xdef\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ \expandafter\xdef\csname #5\endcsname{\csname valeur\Alph{PfMExo}\alph{PfMAlea}\endcsname}%
+ }%
+ }{%
+ \IfNoValueTF{#2}{%
+ \xdef#5{\fpeval{randint(#3,#4)}}%
+ }{%
+ \xdef#5{\fpeval{round(randint(#3,#4)+rand(),#2)}}%
+ }%
+ }%
+ }%
+}%
+
+\NewDocumentCommand\RestoreChoixAlea{m}{%
+ \stepcounter{PfMAlea}%
+ \expandafter\xdef\csname #1\endcsname{\csname valeur\Alph{PfMExoSol}\alph{PfMAlea}\endcsname}
+}%
+
+\NewDocumentCommand\RestoreSommet{mm}{%
+ % #1 le nombre de sommets
+ % #2 le nom de base utilisé lors de la création des sommets
+ \xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
+ \setcounter{PfMSommetcount}{##1}
+ \expandafter\xdef\csname p\Alph{PfMSommetcount}\endcsname{\csname #2\Alph{PfMExoSol}\alph{PfMSommetcount}\endcsname}
+ }%
+}%
+
% Définitions pour les compétences
\NewDocumentCommand\Competences{O{3}m}{%
- \setsepchar[*]{/*§}\ignoreemptyitems%
+ \setsepchar[*]{/}\ignoreemptyitems%
\readlist*\ListeCompetence{#2}
\ifnum#1=3\relax
\buildtabcompetences%
\else
- \Buildtabcompetences{#1}{\listlen\ListeCompetence[1]}%
+ \Buildtabcompetences{#1}{\ListeCompetencelen}%
\fi
}
@@ -106,13 +211,13 @@
\newlength\PfMLargeurComp
\def\Buildtabcompetences#1#2{%
- \setlength{\PfMLargeurComp}{\fpeval{0.85-0.05*#2}\linewidth}%
+ \setlength{\PfMLargeurComp}{\fpeval{0.85-0.05*#1}\linewidth-\fpeval{2*(#1-3)}\tabcolsep}%
\[\begin{tabular}{|p{\PfMLargeurComp}|*{#1}{>{\centering\arraybackslash}p{0.05\linewidth}|}}%
\cline{2-\fpeval{1+#1}}%
\multicolumn{1}{c|}{}\xintFor* ##1 in{\xintSeq{1}{#1}}\do{%
- &\ListeCompetence[1,##1]}\\%
+ &\ListeCompetence[##1]}\\%
\hline%
- \xintFor* ##1 in {\xintSeq {2}{\ListeCompetencelen}}\do{\ListeCompetence[##1]%
+ \xintFor* ##1 in {\xintSeq {\fpeval{#1+1}}{\ListeCompetencelen}}\do{\ListeCompetence[##1]%
\xintFor* ##2 in {\xintSeq{1}{#1}}\do{&}%
\\\hline%
}%
@@ -126,6 +231,7 @@
\newwrite\verbatim@out
\def\SolutionWrite{%
+ \setcounter{PfMAlea}{0}%
\@bsphack
\immediate\openout \verbatim@out "\jobname-Ex\thePfMExo.sol" %
\let\do\@makeother\dospecials
@@ -166,7 +272,7 @@
\def\endIndiceWrite{\immediate\closeout\verbatim@out\@esphack}
\makeatother
-\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak}
+\def\SolutionNow{\textbf{Correction de l'exercice --}\par\nopagebreak\setcounter{PfMExoSol}{\thePfMExo}\setcounter{PfMAlea}{0}}
\def\endSolutionNow{\par\goodbreak}
\def\ReponseNow{\textbf{Réponse(s) de l'exercice --}\par\nopagebreak}
@@ -180,6 +286,11 @@
\NewDocumentEnvironment{Indice}{}{}{}%
\NewDocumentCommand\PfMChoixAffichageCorrection{}{%
+ \ifboolKV[Boulot]{CorrigeAll}{%
+ \let\Solution\SolutionWrite\let\endSolution\endSolutionWrite
+ \let\Reponse\ReponseWrite\let\endReponse\endReponseWrite
+ \let\Indice\IndiceWrite\let\endIndice\endIndiceWrite
+ }{%
\ifboolKV[Boulot]{ParcoursPerso}{%
\let\Solution\SolutionWritePP\let\endSolution\endSolutionWritePP
}{%
@@ -216,16 +327,23 @@
\fi
\fi
}%
+ }%
}%
\NewDocumentCommand\PfMChoixCorrection{}{%
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{0}
- \setcounter{RetiensInd}{0}
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
\ifboolKV[Boulot]{CorrigeFin}{%
- \setcounter{RetiensSol}{1}%
- \setcounter{RetiensRep}{0}%
- \setcounter{RetiensInd}{0}%
+% \ifboolKV[Boulot]{CorrigeAll}{%
+% \setcounter{RetiensSol}{1}%
+% \setcounter{RetiensRep}{1}%
+% \setcounter{RetiensInd}{1}%
+% }{%
+ \setcounter{RetiensSol}{1}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
+% }%
}{\ifboolKV[Boulot]{CorrigeApres}{%
\setcounter{RetiensSol}{1}%
\setcounter{RetiensRep}{0}%
@@ -233,18 +351,18 @@
}{}%
}%
\ifboolKV[ClesExercices]{PasCorrige}{%
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{0}
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
\setcounter{RetiensInd}{0}%
}{%
\ifboolKV[ClesExercices]{Direct}{%
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{1}
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{1}%
\setcounter{RetiensInd}{0}%
}{%
- \ifboolKV[ClesExercices]{Pouce}{
- \setcounter{RetiensSol}{0}
- \setcounter{RetiensRep}{0}
+ \ifboolKV[ClesExercices]{Pouce}{%
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
\setcounter{RetiensInd}{1}%
}{}%
}%
@@ -253,6 +371,8 @@
\NewDocumentCommand\PfMAffichageCorrige{}{%
\xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \setcounter{PfMExoSol}{##1}%
+ \setcounter{PfMAlea}{0}%
\IfFileExists{\jobname-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{\IfFileExists{\jobname-Ex##1.rep}{\textbf{Réponse(s) seule(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{%
\IfFileExists{\jobname-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}
}%
@@ -278,8 +398,8 @@
\ifboolKV[Boulot]{Fiche}{}{%
\immediate\write\@auxout{%
\string\opadd*{#1}%
- {total\the\c@section-\the\c@PfMExo}%
- {total\the\c@section-\the\c@PfMExo}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
+ {total\the\c@PfMSection-\the\c@PfMExo}%
\string\opcopy{\thePfMExo}{TotalExo}%
}%
\ifboolKV[ClesExercices]{BaremeDetaille}{%
@@ -405,7 +525,7 @@
font=\bfseries
]
at (frame.north east)
- {\footnotesize\sffamily \total{\the\c@section-\the\c@PfMExo}};
+ {\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};
}{}
}%
}%
@@ -415,7 +535,7 @@
\setcounter{PfMAlea}{0}%
\useKVdefault[ClesExercices]
\setKV[ClesExercices]{#1}
- \refstepcounter{section}
+ \refstepcounter{PfMSection}
\PfMChoixCorrection%
\refstepcounter{PfMExo}
\immediate\write\@auxout{%
@@ -423,12 +543,12 @@
}
\ifboolKV[ClesExercices]{BaremeTotal}{%
\immediate\write\@auxout{%
- \string\opcopy{0}{total\the\c@section-\the\c@PfMExo}%
+ \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}%
}}{}
\tcolorbox[%
BaseDM,
label is label,
- label=page-\theMaquette-\thePfMExo%
+ label=page-\thePfMMaquette-\thePfMExo%
]
}{%
\endtcolorbox%
@@ -448,16 +568,16 @@
\setsepchar{,}\ignoreemptyitems%
\readlist*\ListeExercicesPA{\csname Parcours#2\endcsname}
\reademptyitems%
- \xdef\PfCFooTestA{\ListeExercicesPA[1]}%
+ \xdef\PfMFooTestA{\ListeExercicesPA[1]}%
\ifnum\ListeExercicesPAlen>1\relax%
\xintFor* ##1 in{\xintSeq{2}{\ListeExercicesPAlen}}\do{%
- \xdef\PfCFooTestA{\PfCFooTestA,\ListeExercicesPA[##1]}%
+ \xdef\PfMFooTestA{\PfMFooTestA,\ListeExercicesPA[##1]}%
}%
\fi%
\ifboolKV[Parcours]{Vertical}{%
- \BuildParcoursTikzV{\ParcoursTotalExo}{\PfCFooTestA}%
+ \BuildParcoursTikzV{\ParcoursTotalExo}{\PfMFooTestA}%
}{%
- \BuildParcoursTikz{\ParcoursTotalExo}{\PfCFooTestA}%
+ \BuildParcoursTikz{\ParcoursTotalExo}{\PfMFooTestA}%
}%
}%
}%
@@ -479,7 +599,7 @@
\draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
}%
\foreachitem\compteur\in\ListeRetiens{%
- \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\theMaquette-\ListeRetiens[\compteurcnt]}};%
+ \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
}%
\end{tikzpicture}%
}%
@@ -507,7 +627,7 @@
\draw[fill=white,dashed](A-##1) circle (2.5mm) node{##1};%
}%
\foreachitem\compteur\in\ListeRetiens{%
- \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\theMaquette-\ListeRetiens[\compteurcnt]}};%
+ \draw[fill=PfMCouleurSP](A-\ListeRetiens[\compteurcnt]) circle (2.5mm) node{\ref{page-\thePfMMaquette-\ListeRetiens[\compteurcnt]}};%
}%
\end{tikzpicture}%
}%
@@ -542,7 +662,7 @@
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\immediate\write\@auxout{\string\opcopy{\thePfMExo}{ParcoursTotalExo}}%
@@ -559,7 +679,7 @@
\tcolorbox[%
tikzparcours,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -569,14 +689,16 @@
\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{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\tcolorbox[%
tikzfiche,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -585,7 +707,7 @@
\setcounter{PfMAlea}{0}%
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\immediate\write\@auxout{%
@@ -593,20 +715,33 @@
}
\ifboolKV[ClesExercices]{BaremeTotal}{%
\immediate\write\@auxout{%
- \string\opcopy{0}{total\the\c@section-\the\c@PfMExo}%
+ \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}%
}}{}
\tcolorbox[%
tikzds,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
\makeatother
%%% Recap Brevet
+%%% Style Brevet
+\tcbset{%
+ userbrevet/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userbrevetcor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
% Fiche Exercice Brevet
\newcommand\TikzRecapBrevet{%
-\begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+\begin{tcolorbox}[userbrevet]%
\Large\sffamily \useKV[RecapBrevet]{Theme}
\par{\tiny\useKV[RecapBrevet]{Code}}\hfill{\scriptsize\useKV[RecapBrevet]{Date}}
\end{tcolorbox}%
@@ -615,7 +750,7 @@
\newcommand\TikzRecapBrevetCor[1]{%
\clearpage
\setKV[RecapBrevet]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userbrevetcor]%
\Large\sffamily \useKV[RecapBrevet]{Theme} (Correction)
\par{\tiny\useKV[RecapBrevet]{Code}}\hfill{\scriptsize\useKV[RecapBrevet]{Date}}
\end{tcolorbox}%
@@ -626,18 +761,18 @@
\setcounter{PfMAlea}{0}%
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\ifboolKV[ClesExercices]{BaremeTotal}{%
\immediate\write\@auxout{%
- \string\opcopy{0}{total\the\c@section-\the\c@PfMExo}%
+ \string\opcopy{0}{total\the\c@PfMSection-\the\c@PfMExo}%
}%
}{}%
\tcolorbox[%
tikzrecapbrevet,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -665,7 +800,7 @@
font=\bfseries%
]
at (frame.north east)%
- {\footnotesize\sffamily \total{\the\c@section-\the\c@PfMExo}};%
+ {\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};%
}%
}%
}%
@@ -728,8 +863,20 @@
}%
}%
+\tcbset{%
+ userpdt/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userpdtcor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
\NewDocumentCommand\TikzPdT{}{%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userpdt]%
\Large\sffamily \useKV[PdT]{Theme}\hfill\useKV[PdT]{Niveau} \useKV[PdT]{Classe}%
\par{\tiny\useKV[PdT]{Code}}\hfill{\scriptsize\useKV[PdT]{Date}}%
\end{tcolorbox}%
@@ -738,7 +885,7 @@
\NewDocumentCommand\TikzPdTCor{m}{%
\clearpage
\setKV[PdT]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userpdtcor]%
\Large\sffamily \useKV[PdT]{Theme} (Correction) \hfill\useKV[PdT]{Niveau} \useKV[PdT]{Classe}
\par{\tiny\useKV[PdT]{Code}}\hfill{\scriptsize\useKV[PdT]{Date}}
\end{tcolorbox}%
@@ -750,7 +897,7 @@
\useKVdefault[ClesExercices]%
\setKV[ClesExercices]{#1}%
\setKV[ClesExercices]{BaremeTotal=false,BaremeDetaille=false}%
- \refstepcounter{section}%
+ \refstepcounter{PfMSection}%
\PfMChoixCorrection%
\refstepcounter{PfMExo}%
\tcolorbox[%
@@ -845,10 +992,10 @@
]
at (frame.south east)
{\scriptsize\sffamily \useKV[ClesExercices]{Source}};
- }{}
- }
- }
-}
+ }{}%
+ }%
+ }%
+}%
\newenvironment{CRNote}{%
\tcolorbox[colback=white,height=2cm,title=NOTE,fonttitle=\color{black}\bfseries\sffamily,colbacktitle=white,enhanced,%
@@ -893,7 +1040,7 @@
\tcolorbox[%
tikzkholle,
label is label,
- label=page-\theMaquette-\thePfMExo
+ label=page-\thePfMMaquette-\thePfMExo
]
}{\endtcolorbox%
}
@@ -931,14 +1078,19 @@
%%%%%%%%% STyle Kholle%%%%%%%%%%
% Kholle
-\newcommand\TikzKholle{%
- \clearpage
- \begin{tcolorbox}[frame hidden,colback=white,enhanced,%
+\tcbset{%
+ userkholle/.style={%
+ frame hidden,colback=white,enhanced,%
borderline north={3pt}{0pt}{gray!85},
borderline north={2pt}{0.5pt}{gray!15},
borderline south={3pt}{0pt}{gray!85},
- borderline south={2pt}{0.5pt}{gray!15},
- ]%
+ borderline south={2pt}{0.5pt}{gray!15}
+ }%
+}%
+
+\newcommand\TikzKholle{%
+ \clearpage
+ \begin{tcolorbox}[userkholle]%
\sffamily Interrogation Orale \no\useKV[Kholle]{Numero}\hfill
\ifboolKV[Kholle]{CR}{}{Sujet \useKV[Kholle]{Sujet}\hfill}\useKV[Kholle]{Niveau}%
\par\useKV[Kholle]{Lieu}\hfill Le \useKV[Kholle]{Date}%
@@ -977,14 +1129,25 @@
}
%%%%%%%%%% Style DM%%%%%%%%%%%%%
-\NewDocumentCommand\TikzDM{}{%
- \clearpage%
- \begin{tcolorbox}[frame hidden,colback=white,enhanced,%
+\tcbset{%
+ userdm/.style={%
+ frame hidden,colback=white,enhanced,%
borderline north={3pt}{0pt}{gray!85},%
borderline north={2pt}{0.5pt}{gray!15},%
borderline south={3pt}{0pt}{gray!85},%
- borderline south={2pt}{0.5pt}{gray!15},%
- ]%
+ borderline south={2pt}{0.5pt}{gray!15}%
+ }%
+}%
+
+\tcbset{%
+ userdmcor/.style={%
+ colback=gray!5%
+ }%
+}%
+
+\NewDocumentCommand\TikzDM{}{%
+ \clearpage%
+ \begin{tcolorbox}[userdm]%
\sffamily Devoir en temps libre \useKV[DM]{Numero}\hfill\useKV[DM]{Niveau} \useKV[DM]{Classe}%\no
\par{\tiny\useKV[DM]{Code}}\hfill{\scriptsize Pour le \useKV[DM]{Date}}%
\end{tcolorbox}%
@@ -1012,9 +1175,68 @@
]%
\end{tcolorbox}%
}
-%%%%%%Style Fiche
+%%% Style Cours
+\tcbset{
+ usercours/.style={
+ enhanced,
+ skin=enhancedlast jigsaw,
+ attach boxed title to top left={xshift=-4mm,yshift=-0.5mm},
+ fonttitle=\bfseries\sffamily,
+ colbacktitle=blue!45,
+ colframe=red!50!black,
+ interior style={
+ top color=blue!10,
+ bottom color=red!10
+ },
+ boxed title style={
+ empty,
+ arc=0pt,
+ outer arc=0pt,
+ boxrule=0pt
+ },
+ underlay boxed title={
+ \fill[blue!45!white]
+ (title.north west) --
+ (title.north east) --
+ +(\tcboxedtitleheight-1mm,-\tcboxedtitleheight+1mm) --
+ ([xshift=4mm,yshift=0.5mm]frame.north east) --
+ +(0mm,-1mm) --
+ (title.south west) -- cycle;
+ \fill[blue!45!white!50!black]
+ ([yshift=-0.5mm]frame.north west) --
+ +(-0.4,0) --
+ +(0,-0.3) -- cycle;
+ \fill[blue!45!white!50!black]
+ ([yshift=-0.5mm]frame.north east) --
+ +(0,-0.3) --
+ +(0.4,0) -- cycle;
+ },
+ title={\useKV[Cours]{Theme}},
+}
+}
+
+\NewDocumentCommand\TikzCours{}{%
+ \begin{tcolorbox}[usercours]%
+% \Large\sffamily\bfseries Cours : \useKV[Fiche]{Theme}%
+% \useKV[Fiche]{Niveau}~\useKV[Fiche]{Classe}\hfill{\scriptsize\useKV[Fiche]{Date}}%
+ \end{tcolorbox}%
+}
+
+%%%%%% Style Fiche
+\tcbset{%
+ userfiche/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userfichecor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
\NewDocumentCommand\TikzFiche{}{%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userfiche]%
\Large\sffamily \useKV[Fiche]{Theme}\hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}%
\par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}%
\end{tcolorbox}%
@@ -1023,35 +1245,54 @@
\NewDocumentCommand\TikzFicheCor{m}{%
\clearpage
\setKV[Fiche]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userfichecor]%
\Large\sffamily \useKV[Fiche]{Theme} (Correction) \hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}
\par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}
\end{tcolorbox}%
}
+\NewDocumentCommand\TikzFicheCorRep{m}{%
+ \clearpage
+ \setKV[Fiche]{#1}%
+ \begin{tcolorbox}[userfichecor]%
+ \Large\sffamily \useKV[Fiche]{Theme} (Réponses) \hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}
+ \par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}
+ \end{tcolorbox}%
+}
+
+\NewDocumentCommand\TikzFicheCorInd{m}{%
+ \clearpage
+ \setKV[Fiche]{#1}%
+ \begin{tcolorbox}[userfichecor]%
+ \Large\sffamily \useKV[Fiche]{Theme} (Indices) \hfill\useKV[Fiche]{Niveau} \useKV[Fiche]{Classe}
+ \par{\tiny\useKV[Fiche]{Code}}\hfill{\scriptsize\useKV[Fiche]{Date}}
+ \end{tcolorbox}%
+}
+
+\makeatletter
\tcbset{%
tikzfiche/.style={%
before skip=1em,
enhanced,
breakable,
- colback=white,
+ colback=ColExoFiche,
colframe=PfMCadreFiche,
overlay unbroken and first={%
\node[%
name=A,
- fill=white,
+ fill=ColExoFiche,
anchor=west,
- xshift=10pt,
+ xshift=\kvtcb@leftlower,
] at (frame.north west){\bfseries\sffamily \useKV[Fiche]{NomExercice} \thePfMExo\ifboolKV[ClesExercices]{AffichageTitre}{ : \useKV[ClesExercices]{Titre}}{}};
%%
- \ifboolKV[ClesExercices]{Calculatrice}{}{\node[fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\cancel{\faCalculator}};\stepcounter{PfMNbLogo}}
- \ifboolKV[ClesExercices]{Oral}{\node[fill=white,anchor=west,xshift=(\thePfMNbLogo*2.5+(\thePfMNbLogo-1)*20)*1pt] at (A.east) {\faBullhorn};\stepcounter{PfMNbLogo}}{}
+ \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}}{}
%%
\ifboolKV[ClesExercices]{AffichageCompetence}{%
\node[%
- fill=white,
+ fill=ColExoFiche,
anchor=east,
- xshift=-10pt,
+ xshift=-\kvtcb@rightlower,
text=PfMColCpt,%
]
at (frame.north east)
@@ -1060,9 +1301,9 @@
%%
\ifboolKV[ClesExercices]{AffichageSource}{%
\node[%
- fill=white,
+ fill=ColExoFiche,
anchor=east,
- xshift=-10pt,
+ xshift=-\kvtcb@rightlower,
text=PfMColSrc,
]
at (frame.south east)
@@ -1071,9 +1312,22 @@
}%
}%
}%
+\makeatother
%%% Parcours %%%
+\tcbset{%
+ userparcours/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
+\tcbset{%
+ userparcourscor/.style={%
+ spread upwards=-1cm,colback=gray!5%
+ }%
+}%
+
\NewDocumentCommand\TikzParcours{}{%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userparcours]%
\Large\sffamily \useKV[Parcours]{Theme}\hfill\useKV[Parcours]{Niveau} \useKV[Parcours]{Classe}%
\par{\tiny\useKV[Parcours]{Code}}\hfill{\scriptsize\useKV[Parcours]{Date}}%
\end{tcolorbox}%
@@ -1082,7 +1336,7 @@
\NewDocumentCommand\TikzParcoursCor{m}{%
\clearpage
\setKV[Parcours]{#1}%
- \begin{tcolorbox}[spread upwards=-1cm,colback=gray!5]%
+ \begin{tcolorbox}[userparcourscor]%
\Large\sffamily \useKV[Parcours]{Theme} (Correction) \hfill\useKV[Parcours]{Niveau} \useKV[Parcours]{Classe}
\par{\tiny\useKV[Parcours]{Code}}\hfill{\scriptsize\useKV[Parcours]{Date}}
\end{tcolorbox}%
@@ -1132,14 +1386,26 @@
}%
%% Fin Parcours %%%
%%% DS %%%
-\newcommand\TikzDS{%
- \clearpage
- \begin{tcolorbox}[colback=gray!5,%
+\tcbset{%
+ userds/.style={%
+ colback=gray!5,%
enhanced,%
overlay unbroken and first={%
\node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[DS]{Calculatrice}{autorisée}{interdite} --};
- }
- ]%
+ }%
+ }%
+}%
+
+\tcbset{%
+ userdscor/.style={%
+ colback=gray!5%
+ }%
+}%
+
+
+\newcommand\TikzDS{%
+ \clearpage
+ \begin{tcolorbox}[userds]%
\sffamily Devoir surveillé \no\useKV[DS]{Numero} (Sujet \useKV[DS]{Sujet})\hfill\useKV[DS]{Niveau} \useKV[DS]{Classe}
\par{\tiny\useKV[DS]{Code}}\hfill{\scriptsize\useKV[DS]{Date}}
\end{tcolorbox}%
@@ -1148,7 +1414,7 @@
\newcommand\TikzDSCor[1]{%
\clearpage
\setKV[DS]{#1}
- \begin{tcolorbox}[colback=gray!5]%
+ \begin{tcolorbox}[userdscor]%
\sffamily Devoir surveillé \no\useKV[DS]{Numero} (Sujet \useKV[DS]{Sujet})\hfill\useKV[DS]{Niveau} \useKV[DS]{Classe}%
\par Correction%
\end{tcolorbox}%
@@ -1201,22 +1467,38 @@
font=\bfseries
]
at (frame.north east)
- {\footnotesize\sffamily \total{\the\c@section-\the\c@PfMExo}};
+ {\footnotesize\sffamily \total{\the\c@PfMSection-\the\c@PfMExo}};
}{}
}%
}%
}%
\makeatother
-%Interrogations écrites
+% Interrogations écrites
+\tcbset{%
+ userie/.style={%
+ colback=gray!5,
+ enhanced,%
+ overlay unbroken and first={%
+ \node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[IE]{Calculatrice}{autorisée}{interdite} --};
+ }%
+ }%
+}%
+
+\tcbset{%
+ useriecor/.style={%
+ colback=gray!5,
+ enhanced,%
+ overlay unbroken and first={%
+ \node[yshift=1em] at (frame.south) {
+ \scriptsize\sffamily-- Calculatrice \ifboolKV[DS]{Calculatrice}{autorisée}{interdite} --
+ };%
+ }%
+ }%
+}%
\newcommand\TikzIE{%
\clearpage
\begin{minipage}{0.6\linewidth}
- \begin{tcolorbox}[colback=gray!5,
- enhanced,%
- overlay unbroken and first={%
- \node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[IE]{Calculatrice}{autorisée}{interdite} --};
- }
- ]%
+ \begin{tcolorbox}[userie]%
\sffamily \useKV[IE]{Nom} \no\useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{\scriptsize(Sujet \useKV[IE]{Sujet})}{}
\vspace{1em}
\par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[IE]{Date}}
@@ -1224,24 +1506,19 @@
\end{minipage}\hfill\begin{minipage}{0.35\linewidth}
Nom : \PfMIENom\\[0.5em]
Prénom : \PfMIEPrenom\\[0.5em]
- Classe : \PfMIEClasse
- \end{minipage}
- \par\bigskip
-}
+ Classe : \PfMIEClasse%
+ \end{minipage}%
+ \par\bigskip%
+}%
\newcommand\TikzIECor[1]{%
- \clearpage
- \setKV[IE]{#1}
- \begin{tcolorbox}[colback=gray!5,
- enhanced,%
- overlay unbroken and first={%
- \node[yshift=1em] at (frame.south) {\scriptsize\sffamily-- Calculatrice \ifboolKV[DS]{Calculatrice}{autorisée}{interdite} --};
- }
- ]%
+ \clearpage%
+ \setKV[IE]{#1}%
+ \begin{tcolorbox}[useriecor]%
\sffamily \useKV[IE]{Nom} \no\useKV[IE]{Numero} : \useKV[IE]{Theme} \ifboolKV[IE]{Sujets}{\scriptsize(Sujet \useKV[IE]{Sujet})}{}\hfill Correction%
- \par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[DS]{Date}}
+ \par{\tiny\useKV[IE]{Code}}\hfill{\scriptsize\useKV[DS]{Date}}%
\end{tcolorbox}%
-}
+}%
\NewDocumentCommand\Recapitulatif{m}{%
\DTLforeach*{dataperso}{\Prenom=PrenomEleve,\Nom=NomEleve,\RecapListeExo=ListeExo}{%
@@ -1250,8 +1527,17 @@
\foreach\i in{1,...,\ListeExerciceslen}{%
\begin{exercice}%
\input{\jobname-PPEx\ListeExercices[\i].tex}%
- \end{exercice}%
+ \end{exercice}%
+ }
+ \ifnum\thePfMCorrigeParcoursPerso=1\relax%
+ % \RecapitulatifCorrection{#2}%
+ \clearpage
+ \TikzFicheCor{#1,Code=\normalsize\Prenom~\Nom}%
+ \readlist*\ListeExercices{\RecapListeExo}%
+ \foreach\i in{1,...,\ListeExerciceslen}{%
+ \textbf{Corrigé de l'exercice \i} : \input{\jobname-PPEx\ListeExercices[\i].sol}\par\goodbreak%
}%
+ \fi
\end{Maquette}%
}%
}%
@@ -1271,11 +1557,15 @@
% Environnement englobant le tout.
%\makeatletter
\NewDocumentEnvironment{Maquette}{om}{%
+ % on remet à zéro les compteurs de solutions : inutile ?
+ \setcounter{RetiensSol}{0}%
+ \setcounter{RetiensRep}{0}%
+ \setcounter{RetiensInd}{0}%
% on remet à zéro le compteur des exercices
\setcounter{PfMExo}{0}%
\setcounter{PfMSOS}{0}%
% nouvelles valeurs.
- \stepcounter{Maquette}%
+ \stepcounter{PfMMaquette}%
% options de boulot
\IfHookExistsTF{env/Maquette/after}{\RemoveFromHook{env/Maquette/after}[*]}{}%
\IfHookExistsTF{env/exercice/after}{\RemoveFromHook{env/exercice/after}[*]}{}%
@@ -1283,10 +1573,23 @@
\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}}%
+ \ifboolKV[Boulot]{Cours}{%
+ \setKV[Cours]{#2}%
+ \TikzCours%
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
+ %\let\Exercice\exerciceFiche\let\endExercice\endexerciceFiche%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \TikzFicheCor{#2}%
+ \PfMAffichageCorrige%
+ }%
+ }{}%
+ }{%
\ifboolKV[Boulot]{RecapBrevet}{%
\setKV[RecapBrevet]{#2}%
\TikzRecapBrevet%
\let\exercice\ExerciceRecapBrevet\let\endexercice\endExerciceRecapBrevet%
+ %\let\Exercice\ExerciceRecapBrevet\let\endExercice\endExerciceRecapBrevet%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzRecapBrevetCor{#2}%
@@ -1297,29 +1600,29 @@
\ifboolKV[Boulot]{ParcoursPerso}{%
\setKV[ParcoursPerso]{#2}%
\DTLloaddb[noheader,keys={PrenomEleve,NomEleve,ListeExo}]{dataperso}{\useKV[ParcoursPerso]{Fichier}.csv}%
- \let\exercice\exerciceParcoursPerso%
- \let\endexercice\endexerciceParcoursPerso%
+ \let\exercice\exerciceParcoursPerso\let\endexercice\endexerciceParcoursPerso%
+ %\let\Exercice\exerciceParcoursPerso\let\endExercice\endexerciceParcoursPerso%
\ifboolKV[Boulot]{CorrigeFin}{\setcounter{PfMCorrigeParcoursPerso}{1}}{}%
\setcounter{PfMExo}{0}%
\AtEndDocument{%
\Recapitulatif{#2}%
- \ifnum\thePfMCorrigeParcoursPerso=1\relax%
- \RecapitulatifCorrection{#2}%
- \fi
}%
}{%
\ifboolKV[Boulot]{Parcours}{%
\setKV[Parcours]{#2}\TikzParcours%
- \let\exercice\exerciceParcours%
- \let\endexercice\endexerciceParcours%
+ \let\exercice\exerciceParcours\let\endexercice\endexerciceParcours%
+ %\let\Exercice\exerciceParcours\let\endExercice\endexerciceParcours%
\ifboolKV[Boulot]{CorrigeFin}{%
- \PfMAffichageCorrige%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \TikzParcoursCor{#2}
+ \PfMAffichageCorrige%
+ }%
}{}%
}{%
\ifboolKV[Boulot]{PdT}{%
\setKV[PdT]{#2}\TikzPdT%
- \let\exercice\exercicePdT
- \let\endexercice\endexercicePdT%
+ \let\exercice\exercicePdT\let\endexercice\endexercicePdT%
+ %\let\Exercice\exercicePdT\let\endExercice\endexercicePdT%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzPdTCor{#2}%
@@ -1329,8 +1632,8 @@
}{
\ifboolKV[Boulot]{DM}{%
\setKV[DM]{#2}\TikzDM%
- \let\exercice\exerciceDM
- \let\endexercice\endexerciceDM%
+ \let\exercice\exerciceDM\let\endexercice\endexerciceDM%
+ %\let\Exercice\exerciceDM\let\endExercice\endexerciceDM%
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzDMCor{#2}%
@@ -1339,20 +1642,50 @@
}{}%
}{%
\ifboolKV[Boulot]{Fiche}{%
- \setKV[Fiche]{#2}\TikzFiche%
- \let\exercice\exerciceFiche
- \let\endexercice\endexerciceFiche%
- \ifboolKV[Boulot]{CorrigeFin}{%
- \AddToHook{env/Maquette/after}[Correction]{%
- \TikzFicheCor{#2}%
- \PfMAffichageCorrige%
- }%
+ \setKV[Fiche]{#2}%
+ \TikzFiche
+ \let\exercice\exerciceFiche\let\endexercice\endexerciceFiche%
+ %\let\Exercice\exerciceFiche\let\endExercice\endexerciceFiche%
+ \ifboolKV[Boulot]{CorrigeFin}{%
+ \ifboolKV[Boulot]{CorrigeAll}{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \setKV[Boulot]{#1}%
+ \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \TikzFicheCor{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ex##1.sol}{\textbf{Corrigé de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.sol}\par\goodbreak}{}
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorRep{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ex##1.rep}{\textbf{Réponse(s) de l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.rep}\par\goodbreak}{}
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ \TikzFicheCorInd{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \xintFor* ##1 in{\xintSeq{1}{\thePfMExo}}\do{%
+ \IfFileExists{\jobname-Ex##1.cdp}{\textbf{Indice(s) pour l'exercice ##1}\par\nopagebreak\input{\jobname-Ex##1.cdp}\par\goodbreak}{}
+ }%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }{%
+ \AddToHook{env/Maquette/after}[Correction]{%
+ \setKV[Boulot]{#1}%
+ \setlength{\columnseprule}{\useKV[Boulot]{Epaisseur}}%
+ \TikzFicheCor{#2}%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\begin{multicols}{\useKV[Boulot]{Colonnes}}}{}%
+ \PfMAffichageCorrige%
+ \ifboolKV[Boulot]{CorrectionColonnes}{\end{multicols}}{}%
+ }%
+ }%
}{}%
}{%
\ifboolKV[Boulot]{DS}{%
\setKV[DS]{#2}\TikzDS%
- \let\exercice\exerciceDS
- \let\endexercice\endexerciceDS%
+ \let\exercice\exerciceDS\let\endexercice\endexerciceDS%
+% \let\Exercice\exerciceDS\let\endExercice\endexerciceDS%
\ifboolKV[Boulot]{BaremeComplet}{%
\begin{center}
\TableauRecapitulatif
@@ -1368,6 +1701,7 @@
\ifboolKV[Boulot]{IE}{%
\setKV[IE]{#2}\TikzIE%
\let\exercice\exerciceDS\let\endexercice\endexerciceDS%On garde exerciceDS
+ % \let\Exercice\exerciceDS\let\endExercice\endexerciceDS%On garde exerciceDS
\ifboolKV[Boulot]{CorrigeFin}{%
\AddToHook{env/Maquette/after}[Correction]{%
\TikzIECor{#2}%
@@ -1397,12 +1731,13 @@
}%
}%
}%
+ }%
}%
}{}%
%\makeatother
%D'après JCC
-% pour gérer les nombres pseudo-aléatoires
+% Package pour gérer les nombres pseudo-aléatoires
\makeatletter
\input{random}
@@ -1488,7 +1823,7 @@
% Lancement de la lecture récursive de la liste
\expandafter\RL@extract#1,\@nil,%
% On met la valeur extraite dans la macro prévue
- \xdef#3{\RL@return}%cp a remplacé edef par xdef
+ \edef#3{\RL@return}%cp a remplacé edef par xdef
% La liste est celle sans l'élément extrait
\let#1\RL@temp
\fi