diff options
Diffstat (limited to 'macros/latex/contrib/cahierprof')
-rw-r--r-- | macros/latex/contrib/cahierprof/ListeEleves.tex | 42 | ||||
-rw-r--r-- | macros/latex/contrib/cahierprof/cahierprof-doc.pdf | bin | 289363 -> 282687 bytes | |||
-rw-r--r-- | macros/latex/contrib/cahierprof/cahierprof-doc.tex | 424 | ||||
-rw-r--r-- | macros/latex/contrib/cahierprof/cahierprof-exemple.pdf | bin | 158682 -> 220954 bytes | |||
-rw-r--r-- | macros/latex/contrib/cahierprof/cahierprof-exemple.tex | 152 | ||||
-rw-r--r-- | macros/latex/contrib/cahierprof/cahierprof.sty | 424 |
6 files changed, 499 insertions, 543 deletions
diff --git a/macros/latex/contrib/cahierprof/ListeEleves.tex b/macros/latex/contrib/cahierprof/ListeEleves.tex index 6b8ecd25eb..cc5c2adffc 100644 --- a/macros/latex/contrib/cahierprof/ListeEleves.tex +++ b/macros/latex/contrib/cahierprof/ListeEleves.tex @@ -1,32 +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 +\item Élève Seconde 1 +\item Élève Seconde 2 +\item Élève Seconde 3 +\item Élève Seconde 4 +\item Élève Seconde 5 \end{enumerate} -1 G +Première G \begin{enumerate} -\item Élève 1 -\item Élève 2 -\item Élève 3 -\item Élève 4 -\item Élève 5 +\item Élève Première 1 +\item Élève Première 2 +\item Élève Première 3 +\item Élève Première 4 +\item Élève Première 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 +\item Élève STMG 1 +\item Élève STMG 2 +\item Élève STMG 3 +\item Élève STMG 4 +\item Élève STMG 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 +\item Élève Euro 1 +\item Élève Euro 2 +\item Élève Euro 3 +\item Élève Euro 4 +\item Élève Euro 5 \end{enumerate} diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.pdf b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf Binary files differindex 187febaf51..e3b174888d 100644 --- a/macros/latex/contrib/cahierprof/cahierprof-doc.pdf +++ b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.tex b/macros/latex/contrib/cahierprof/cahierprof-doc.tex index 6f180bdeee..338ddb0b24 100644 --- a/macros/latex/contrib/cahierprof/cahierprof-doc.tex +++ b/macros/latex/contrib/cahierprof/cahierprof-doc.tex @@ -2,7 +2,8 @@ \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{commandes} -% \usepackage{cahierprof} +\usepackage{tcolorbox} +\usepackage[framemethod=TikZ]{mdframed} \usepackage{minted} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -14,154 +15,167 @@ \title{ cahierprof.sty\\ - Pour créer un cahier du professeur en LaTeX + Un cahier de textes pour les professeurs en \LaTeX{} } \author{ Raphaël Giromini\\ \texttt{raphael.giromini -- at -- gmail.com} } -\date{Version 0.91 -- 12 juillet 2023} +\date{Version 0.92 -- 10 août 2023} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setminted{frame=single,linenos,numbersep=6pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Début du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \maketitle -% \begin{resume} -Le package \texttt{cahierprof} permet de créer un cahier du professeur, +\section*{Résumé} +\noindent +Le package \texttt{cahierprof} permet de créer un cahier de texte 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. + \item un calendrier scolaire annuel (de septembre à juillet) avec une semaine + par par page; + \item un tableau des élèves répartis par classe (pour les absences et/ou les + notes). +\end{itemize} + + +\subsection*{Nouveautés de la version 0.92} +\begin{itemize} + \item Correction de la gestion des années bissextiles. + \item Correction de l'affichage de la semaine lorsque le quantième du lundi + est 29. + \item Création de la commande \mintinline{latex}|\setNombreSemaines| pour + fixer le nombre de semaine à afficher.\\ + Si cette commande n'est pas utilisée, 36 semaines sont affichées par défaut. + \item Création de la commandes \mintinline{latex}|\setRentree| pour configurer + le lundi de la rentrée scolaire. + \item Création des commandes \mintinline{latex}|\setDebut|\texttt{*}, où + \texttt{*} correspond à \texttt{Toussaint}, \texttt{Noel}, \texttt{Hiver} ou + \texttt{Printemps} et gestion automatique de la date de la fin des petites + vacances. + \item Création de la commande \mintinline{latex}|\setLundiPaques| pour + fixer la date du lundi de Pâques et gestion automatique des dates du jeudi + de l'ascension et du lundi de Pentecôte en fonction de la date du lundi de + Pâques.\\ + À noter: jusqu'à l'année 2040, la date du lundi de Pâque est gérée + automatiquement. \end{itemize} -% \end{resume} -\tableofcontents -\section{Liste des semaines de cours -- commande -\texttt{\textbackslash{}EmploiDuTemps}} +\begin{center} + \begin{minipage}{.8\linewidth} + \begin{tcolorbox}[colback=white, colframe=green!75!black] + \tableofcontents + \end{tcolorbox} + \end{minipage} +\end{center} -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} + +\section{ + Calendrier des semaines de cours -- + commande \texttt{\textbackslash{}EmploiDuTemps} +} +Pour créer un calendrier scolaire hebdomadaire; il faut définir en préambule la +date du premier lundi de l'année scolaire, avec la commande +\mintinline{latex}|\setLundiRentree\{JJ\}\{MM\}\{YYYY\}|, où \texttt{JJ} est +le quantième du mois; \texttt{MM} est le mois et \texttt{YYYY} est l'année. +\begin{minted}{latex} +% Le lundi de la semaine de la rentrée est le 4 septembre 2023 +\setLundiRentree{4}{9}{2023} \end{minted} -La commande \texttt{\textbackslash{}EmploiDuTemps} va permettre de de créer le +La commande \mintinline{latex}|\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} +description d'une semaine type (sous la forme d'un \texttt{tabularx}) comme dans +l'exemple ci-dessous: +\begin{minted}{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 + % & Lundi & Mardi & Mercr. & Jeudi & Vend. \\ + 8h & & 1G & & 1G & \\ [1.5cm] \cline{1-2}\cline{4-6} + 9h & & & 1STMG & 1STMG & \\ [1.5cm] \hline + 10h & 1G & 2nde & 1G & & \\ [1.5cm] \hline + 11h & & & 2nde A.P. & & 1G \\ [1.5cm] \hline\hline + 13h30 & & 1G & & & 2nde \\ [1.5cm] \cline{1-5} + 14h30 & & & 1G (A/B) & & \\ [1.5cm] \hline + 15h30 & & & 2 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 +Cette commande va générer 36 semaines de cours à compter du premier lundi de l'année scolaire. -\subsection{Cours bimestriels -- commande \texttt{\textbackslash{}sem}} +Pour afficher un nombre différent de semaines, il faut passer dans le préambule +la commande \mintinline{latex}|\setNombreSemaines{N}|, où \texttt{N} est le +nombre entier de semaines. +\begin{minted}{latex} +% On ne veut que 10 semaines de cours ! +\setNombreSemaines{10} +\end{minted} + +\subsection{Séance bimestrielles -- 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. +Certaines séances sont bimestriels (tous les 15 jours), suivant la parité de la +semaine. Pour cela il existe la commande \mintinline{latex}|\sem| qui prend +deux arguments: la séance en semaine impair, puis la séance 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} +\begin{minted}{latex} +% L'aide personnalisée en seconde n'a lieu que les semaines impaires +\sem{2nde (A.P.)}{} +% L'aide personnalisée en première est divisée en deux groupes bimestiels. +1G A.P. (Groupe~\sem{A}{B}) \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} +Les vacances scolaires (de Toussaint, de Noel, d'hiver et de printemps). Chacune +de ces petites vacances dure 15 jours. Selon les zones (et les années) il faut +définir en préambule le premier samedi de chaque vacances. + +\begin{minted}{latex} +% Début de chaque vacances scolaire pour l'année en cours (le samedi). +\setDebutToussaint{21}{10} +\setDebutNoel{23}{12} +\setDebutHiver{10}{2} +\setDebutPrintemps{6}{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} +Les jours fériés sont les jours de fêtes légales énumérés par l’article +L.~3133-1 du code du travail: 1er janvier, lundi de Pâques, 1er mai, 8 mai, +Ascension, lundi de Pentecôte, 14 juillet, Assomption (15 août), Toussaint, 11 +novembre et 25 décembre. Pour ces jours, La date sera sur fond gris et la +mention $\star$Ferié$\star$ sera ajoutée après la date. + +La date du lundi de Pâques est variable chaque l'année, de même pour le jeudi de +l'ascension et le lundi de Pentecôte. L'ascension a lieu 38 jours après le lundi +de Pâques. Par défaut, le vendredi de l'ascension est considéré comme férié. Le +lundi de Pentecôte a lieu 10 jours après le vendredi de l'ascension. + +Dans ce package, la date du lundi de Pâques est définie (jusqu'à l'année +2040) par celle du calendrier grégorien occidental (la date utilisée par +l'éducation nationale). Cependant, si l'on souhaite entrer une autre date, on +peut utiliser dans le préambule la commande +\mintinline{latex}|\setLundiPaques{JJ}{MM}|, où \texttt{JJ} est le jour +et \texttt{MM} est le mois du lundi de Pâques.\\ +Dans tous les cas, les dates de l'ascension et de la Pentecôte sont +automatiquement calculées. + +\begin{minted}{latex} +% Et si le lundi de Pâques était un 17 mars ? +\setLundiPaques{17}{3} \end{minted} -\section{Tableau d'appel et de note des classe -- commande +\section{Tableau d'appel et de notes des classes -- commande \texttt{\textbackslash{}Classe}} -La commande \texttt{\textbackslash{}Classe} permet de générer des tableaux +La commande \mintinline{latex}|\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; @@ -169,182 +183,40 @@ d'appels des classes. Cette commande prend trois arguments: \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, - ... +\begin{minted}{latex} +% La classe de seconde a 3 séances dans la semaine +\Classe{Seconde}{4}{ + Élève Seconde 1, + Élève Seconde 2, + Élève Seconde 3, + Élève Seconde 4, + Élève Seconde 5 } -% La classe de 1e STMG est vue 2 fois dans la semaine: +% La classe de 1e STMG a 2 séances dans la semaine \Classe{1 STMG}{2}{ - Élève 1, - Élève 2, - Élève 3, - Élève 4, - ... + Élève STMG 1, + Élève STMG 2, + Élève STMG 3, + Élève STMG 4, + Élève STMG 5 } \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} +\subsection{Liste des élèves} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% En tête du document -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +La commande \mintinline{latex}|\ListeEleves| va va créer un fichier +\texttt{ListeEleves.tex} avec la liste (numérotés) de l'ensemble des élèves +réparti par classe, puis insérer dans le cahier de texte cette liste (penser à +compiler deux fois). -%%% 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} +% \begin{minted}{latex} +% % Liste des élèves, sauvée dans le fichier ListeEleves.tex, +% % créée à partir des \Classe{}{}{}. Penser à compiler deux fois. +% \ListeEleves +% \end{minted} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% 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 -} +\section{Un exemple complet} -\newpage +\inputminted{latex}{cahierprof-exemple.tex} -\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 Binary files differindex 3401a99650..24d975ecdf 100644 --- a/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf +++ b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf diff --git a/macros/latex/contrib/cahierprof/cahierprof-exemple.tex b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex index 1aa7941855..f1f80b8f01 100644 --- a/macros/latex/contrib/cahierprof/cahierprof-exemple.tex +++ b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex @@ -2,148 +2,106 @@ \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{babel} -\usepackage{multicol} +\usepackage{lscape} \usepackage{cahierprof} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% En tête du document +% Préambule %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Les marges de mon document. \geometry{margin=1.2cm,head=0.6cm,headsep=10pt,foot=.6cm} + +\title{ + cahierprof-exemple.tex\\ + Utilisation du cahier de textes pour les professeurs en \LaTeX{} +} +\author{ + Raphaël Giromini\\ + \texttt{raphael.giromini -- at -- gmail.com} +} +\date{Version 0.92 -- 10 août 2023} + % 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} +\setLundiRentree{4}{9}{2023} +% Début de chaque vacances scolaire pour l'année en cours (le samedi). +\setDebutToussaint{21}{10} +\setDebutNoel{23}{12} +\setDebutHiver{10}{2} +\setDebutPrintemps{6}{4} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Début du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} -%%Page de Garde \maketitle -\thispagestyle{empty} -\begin{center} - {\Large - \textsc{Cahier de texte} - } -\end{center} +\section{Calendrier des semaines de cours} -\newpage +Le calendrier débute sur la page suivante au format paysage. % 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 + \EmploiDuTemps{ + % & Lundi & Mardi & Merc. & Jeudi & Vend. \\ + 8h & & 1G & & 1G & \\ [1.5cm] \cline{1-2}\cline{4-6} + 9h & & & 1STMG & 1STMG & \\ [1.5cm] \hline + 10h & 1G & 2nde & 1G & & \\ [1.5cm] \hline + 11h & & & \sem{2nde A.P.}{} & & 1G \\ [1.5cm] \hline\hline + 13h30 & & 1G & & & 2nde \\ [1.5cm] \cline{1-5} + 14h30 & & & 1G (Groupe~\sem{A}{B}) & & \\ [1.5cm] \hline + 15h30 & & & 2 euro & & \\ [1.5cm] \hline + 16h30 & & & & & \\ [1.5cm] \hline } \end{landscape} -\begin{center} - {\Large - \textsc{Appel des classes} - } -\end{center} +\section{Liste des élèves et tableau d'appel et de notes des classes} -% Liste des élèves, sauvée dans le fichier ListeEleves.tex, créée à partir des -% \Classe{}{}{}. -% Penser à compiler deux fois. +\subsection{Liste des élèves} \ListeEleves \newpage -\tiny +\subsection{Tableaux des classes} -% 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 + Élève Seconde 1, + Élève Seconde 2, + Élève Seconde 3, + Élève Seconde 4, + Élève Seconde 5 } -\newpage - -\Classe{1 G}{4} +\Classe{Première G}{6} { - Élève 1, - Élève 2, - Élève 3, - Élève 4, - Élève 5 + Élève Première 1, + Élève Première 2, + Élève Première 3, + Élève Première 4, + Élève Première 5 } -\newpage - \Classe{1 STMG}{2} { - Élève 1, - Élève 2, - Élève 3, - Élève 4, - Élève 5 + Élève STMG 1, + Élève STMG 2, + Élève STMG 3, + Élève STMG 4, + Élève STMG 5 } -\newpage \Classe{2 euro}{1} { - Élève 1, - Élève 2, - Élève 3, - Élève 4, - Élève 5 + Élève Euro 1, + Élève Euro 2, + Élève Euro 3, + Élève Euro 4, + Élève Euro 5 } \end{document} diff --git a/macros/latex/contrib/cahierprof/cahierprof.sty b/macros/latex/contrib/cahierprof/cahierprof.sty index 59850eef8f..ad0469ff25 100644 --- a/macros/latex/contrib/cahierprof/cahierprof.sty +++ b/macros/latex/contrib/cahierprof/cahierprof.sty @@ -1,8 +1,8 @@ %% Informations générales -%% Dernière modification le 2023-07-12 at 08:23 +%% Dernière modification le 2023-08-10 at 16:16 \NeedsTeXFormat{LaTeX2e}[1999/01/01] \ProvidesPackage{cahierprof} - [2023-07-12 v0.91 Les commandes pour le cahier Professeur] + [2023/08/10 v0.92 Les commandes pour le cahier Professeur] % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Options du package commande @@ -13,13 +13,12 @@ % Chargement des extensions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \RequirePackage{geometry} -\RequirePackage[table]{xcolor} \RequirePackage{tabularx} +\RequirePackage{colortbl} \RequirePackage{tikz} \usetikzlibrary{math} \usetikzlibrary{calc} \RequirePackage[babel=true,kerning=true]{microtype} -\RequirePackage{lscape} \RequirePackage{ifthen} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -30,6 +29,11 @@ \newcounter{month} \newcounter{year} % +% Compteurs pour la rentrée +\newcounter{lundiRentree} +\newcounter{monthRentree} +\newcounter{yearRentree} +% % Compteurs pour les vacances scolaires % Toussaint \newcounter{dayToussaint} @@ -65,55 +69,15 @@ \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 pour le calendrier. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% 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). +% - \getWeek : afficher la semaine au format % -% Passer au jour d'après +%%%% Passer au jour d'après \newcommand{\nextday}% {% % Les mois à 30 jours : Avril, Juin, Septembre, Novembre @@ -141,36 +105,34 @@ \stepcounter{day}% }% }% -% -% Gestions des vacances et week-end +%%%% Gestions des vacances et week-end \newcommand{\weekend}{ % Vacances de Toussaint \ifthenelse{ \theday=\thedayToussaint \and \themonth=\themonthToussaint} { - \setcounter{day}{\thedayToussaintFin} - \setcounter{month}{\themonthToussaintFin} + % 15 jours de vacances, bien mérités ! + \foreach \jour in {1,...,16}{\nextday} Vacances de la Toussaint }{ % Vacances de Noël \ifthenelse{ \theday=\thedayNoel \and \themonth=\themonthNoel} { - \setcounter{day}{\thedayNoelFin} - \setcounter{month}{\themonthNoelFin} - \stepcounter{year} + % 15 jours de vacances, bien mérités ! + \foreach \jour in {1,...,16}{\nextday}% Vacances de Noël }{ % Vacances d'Hiver \ifthenelse{ \theday=\thedayHiver \and \themonth=\themonthHiver} { - \setcounter{day}{\thedayHiverFin} - \setcounter{month}{\themonthHiverFin} + % 15 jours de vacances, bien mérités ! + \foreach \jour in {1,...,16}{\nextday}% Vacances d'hiver }{ % Vacances de Printemps \ifthenelse{ \theday=\thedayPrintemps \and \themonth=\themonthPrintemps} { - \setcounter{day}{\thedayPrintempsFin} - \setcounter{month}{\themonthPrintempsFin} + % 15 jours de vacances, bien mérités ! + \foreach \jour in {1,...,16}{\nextday}% Vacances de printemps }{ % sinon c'est juste un week-end @@ -180,8 +142,7 @@ }% }% } -% -% Obtenir la date +%%%% Obtenir la date \newcommand{\getDate}{% % On affiche la date \theday/\themonth/\theyear% @@ -212,11 +173,11 @@ % Noël, le 25 décembre \or\(\theday=25 \and \themonth=12\)% }{ - \hfil $\star$Ferié$\star$% + \cellcolor[gray]{.9} \hfil $\star$Ferié$\star$% }{}% }% % -% Affichage de la semaine.% +%%%% Affichage de la semaine. \newcommand{\getWeek}{% \setcounter{friday}{\theday}% \setcounter{frimonth}{\themonth}% @@ -239,7 +200,7 @@ % 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}}{}% + \ifthenelse{\theday=29}{\setcounter{friday}{2}}{}% % Lundi 28 - Mar 29, Mer 30, Jeu 31, Ven 1% \ifthenelse{\theday=28}{\setcounter{friday}{1}}{}% }% @@ -339,111 +300,276 @@ \thefriyear }% % -% Affichage de la semaine -\newcommand{\Semaine} -{ - & Lundi \getDate\nextday - & Mardi \getDate\nextday - & Mercredi \getDate\nextday - & Jeudi \getDate\nextday - & Vendredi \getDate\nextday -} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Liste des macros pour les jours spéciaux +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - \setLundiRentree : définir le lundi de rentrée au format DD-MM-YYYY +% - \setDebutToussaint : définir le début (samedi) des vacances de Toussaint +% - \setDebutNoel : définir le début (samedi) des vacances de Noel +% - \setDebutHiver : définir le début (samedi) des vacances d'hiver +% - \setDebutPrintemps : définir le début (samedi) des vacances de Printemps +% - \setLundiPaques : définir le lundi de Paques au format DD-MM-YYYY +% - \setJoursFeries : définir les dates de l'ascension, du pont de +% l'ascension et de la Pentecôte à partir de la date du lundi de Pâques. +% +%%%% Définir le lundi de la rentrée +% \setLundiRentree a 3 arguments : +% - #1 Le jourde la rentrée +% - #2 Le Mois de la rentrée +% - #3 L'annéede la rentrée +\newcommand{\setLundiRentree}[3]% +{% + \setcounter{lundiRentree}{#1}% + \setcounter{monthRentree}{#2}% + \setcounter{yearRentree}{#3}% + % Gestion des années bissextiles. + \setcounter{year}{\theyearRentree} + \stepcounter{year} + \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}% + }% + }% + }% +}% +%%%% Définir le début des vacances de Toussaint +% Les commandes \set*Vacances* ont 2 arguments : +% - #1 Le jourde la rentrée +% - #2 Le Mois de la rentrée +\newcommand{\setDebutToussaint}[2]% +{% + \setcounter{dayToussaint}{#1}% + \setcounter{monthToussaint}{#2}% +}% +%%%% Définir le début des vacances de Noel +\newcommand{\setDebutNoel}[2]% +{% + \setcounter{dayNoel}{#1}% + \setcounter{monthNoel}{#2}% +}% +%%%% Définir le début des vacances d'hiver +\newcommand{\setDebutHiver}[2]% +{% + \setcounter{dayHiver}{#1}% + \setcounter{monthHiver}{#2}% +}% +%%%% Définir le début des vacances de Printemps +\newcommand{\setDebutPrintemps}[2]% +{% + \setcounter{dayPrintemps}{#1}% + \setcounter{monthPrintemps}{#2}% +}% +%%%% Définir le Lundi de Paques +\newcommand{\setLundiPaques}[2]% +{% + \setcounter{dayPaques}{#1}% + \setcounter{monthPaques}{#2}% +}% +%%%% Trouver les dates des jours fériés variables +\newcommand{\setJoursFeries}{% + % Si \setLundiPaques n'est pas utilisé (valable jusqu'en 2040)... + \ifthenelse{\equal{\thedayPaques}{0}}% + {% + \setcounter{year}{\theyearRentree}% + \stepcounter{year}% + \ifthenelse{\equal{\theyear}{2024}}{\setcounter{dayPaques}{1}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2025}}{\setcounter{dayPaques}{21}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2026}}{\setcounter{dayPaques}{6}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2027}}{\setcounter{dayPaques}{29}\setcounter{monthPaques}{3}}{} + \ifthenelse{\equal{\theyear}{2028}}{\setcounter{dayPaques}{17}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2029}}{\setcounter{dayPaques}{2}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2030}}{\setcounter{dayPaques}{22}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2031}}{\setcounter{dayPaques}{14}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2032}}{\setcounter{dayPaques}{29}\setcounter{monthPaques}{3}}{} + \ifthenelse{\equal{\theyear}{2033}}{\setcounter{dayPaques}{18}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2034}}{\setcounter{dayPaques}{10}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2035}}{\setcounter{dayPaques}{26}\setcounter{monthPaques}{3}}{} + \ifthenelse{\equal{\theyear}{2036}}{\setcounter{dayPaques}{14}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2037}}{\setcounter{dayPaques}{6}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2038}}{\setcounter{dayPaques}{26}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2039}}{\setcounter{dayPaques}{11}\setcounter{monthPaques}{4}}{} + \ifthenelse{\equal{\theyear}{2040}}{\setcounter{dayPaques}{2}\setcounter{monthPaques}{4}}{} + \setcounter{year}{\theyearRentree}% + }{} + % On fixe la date au lundi de Pâques + \setcounter{day}{\thedayPaques}% + \setcounter{month}{\themonthPaques}% + % Jeudi de l'ascension = 38 jours après le lundi de Paques + \foreach \jour in {1,...,38}{\nextday}% + \setcounter{dayAscension}{\theday}% + \setcounter{monthAscension}{\themonth}% + % Vendredi, pont de l'ascension + \nextday% + \setcounter{dayAscensionPont}{\theday}% + % Lundi de Pentecote = 10 jours après le vendredi de l'ascension + \foreach \jour in {1,...,10}{\nextday}% + \setcounter{dayPentecote}{\theday}% + \setcounter{monthPentecote}{\themonth}% + % Remettre la date au jour de la rentrée + \setcounter{day}{\thelundiRentree}% + \setcounter{month}{\themonthRentree}% + \setcounter{year}{\theyearRentree}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Liste des macros pour l'affichage de la semaine +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - \Semaine : afficher la première ligne du tableau du cahier de texte (Lundi +% day/month, Mardi day/month, etc) +% +%%%% Affichage de la semaine +\newcommand{\Semaine}% +{% + & Lundi \getDate\nextday% + & Mardi \getDate\nextday% + & Mercredi \getDate\nextday% + & Jeudi \getDate\nextday% + & Vendredi \getDate\nextday% +}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Liste des macros pour l'emploi du temps +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - \setNombreSemaines[1] : définir le nombre N de semaines à afficher. +% - \EmploiDuTemps[1] : afficher N fois le tableau #1, +% - \sem[2] : Séances bimensuelle. +% +%%% Nombre de semaine à afficher +% #1 est le nombre N de semaines à afficher. +% Si \setSemaines n'est pas utilisé, alors N=36 semaines. +\newcounter{nombreSemaines} +\newcommand{\setNombreSemaines}[1]% +{% + \setcounter{nombreSemaines}{#1} +}% +%%%% Affichage de l'emploi du temps \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 +{% + \setJoursFeries% + \ifthenelse{\equal{\thenombreSemaines}{0}}% + {% + \tikzmath{\NbSem=int(36);}% + }{% + \tikzmath{\NbSem=int(\thenombreSemaines);}% + }% + \foreach \n in {1,...,\NbSem}% + {% + {\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. +%%%% Séance bimestrielle +% Affiche #1 si le numéro de la semaine est impair. +% Affiche #2 si le numéro de la semaine est pair. \newcommand{\sem}[2]% -{ - \pgfmathparse{int(mod(\n,2))} - \ifthenelse{\pgfmathresult=1}{#1}{#2} +{% + \pgfmathparse{int(mod(\n,2))}% + \ifthenelse{\pgfmathresult=1}{#1}{#2}% }% -% Réaliser le tableau pour une classe -% En argument: +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Liste des macros pour les tableaux des classes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - \TableauClasse : Afficher un tableau pour la classe. +% - \Classe : Afficher 8 tableaux de classe. +% - \ListeEleves : Insère la liste des élèves +% +%%%% Réaliser un tableau pour une classe +% TableauClasse a deux arguments: % - #1 : la classe. % - #2 la liste des élèves, séparée par des virgules (sauf le dernier). -\newcommand{\TableauClasse}[2] -{ - \begin{tikzpicture} +\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} - { + \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 + \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} + \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: +%%%% Réaliser les tableaux de classe. +% \Classe 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}} +% Il y a 20 colonnes par tableaux. Il faut à peu près 2 tableaux pour faire 36 +% 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} -{ + \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}% + \newpage% +}% +% +%%%% Liste des élèves +% \ListeEleves va créer un fichier ListeEleves.tex qui contient la liste des +% élèves puis insère le fichier (compiler deux fois, comme \tableofcontents). +\newcommand{\ListeEleves}% +{% %insère le fichier ListeEleves.tex s'il existe - \IfFileExists{ListeEleves.tex}{ - \input{ListeEleves.tex} - }{ - % Else : do nothing. - } + \IfFileExists{ListeEleves.tex}{% + \input{ListeEleves.tex}% + }{% + % Else : do nothing.% + }% % Stocker le nom des élèves dans un fichier externe. - \newwrite\outputstream + \newwrite\outputstream% \immediate\openout\outputstream=ListeEleves.tex -} +}% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Divers |