\documentclass[a4paper,french,10pt]{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{commandes} \usepackage{tcolorbox} \usepackage[framemethod=TikZ]{mdframed} \usepackage{minted} \usepackage{xcolor} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % En tête du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Les marges de mon document. \geometry{margin=1.2cm,head=0.6cm,headsep=10pt,foot=.6cm} \title{ cahierprof.sty\\ Un cahier de textes en \LaTeX{} pour les professeurs } \author{ Raphaël Giromini\\ \texttt{raphael.giromini -- at -- gmail.com} } \date{Version 1.1 -- 16 juin 2025} \setminted{frame=single,linenos,numbersep=6pt} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Début du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \maketitle \section*{Résumé} \noindent Le paquet \texttt{cahierprof} permet de créer un cahier de texte du professeur, constitué de trois éléments: \begin{itemize} \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). \item une liste des élèves, qui créé un fichier supplémentaire \texttt{ListeEleves.tex} à partir des listes des élèves dans les tableaux des classes. \end{itemize} Merci à Frédéric Bréal pour ses conseils, ses idées et ses relectures attentives du package. \smallskip \noindent Le paquet \texttt{cahierprof} charge les paquets \texttt{geometry}, \texttt{tikz} (avec les biliothèques \texttt{math} et \texttt{calc}), \texttt{microtype} (avec les options \texttt{babel=true} et \texttt{kerning=true}), \texttt{ifthen}, \texttt{xparse}, \texttt{xstring} et \texttt{nicematrix}. \subsection*{Nouveautés de la version 1.1} \noindent Le principal changement de cette version est l'utilisation de l'extension \mintinline{latex}|niceMatrix| pour les tableaux des semaines et les tableaux d'appel. \begin{itemize} \item Dans les tableaux de semaine, les colonnes des jours fériés et des examens sont grisées. \item Les séances bimestrielles s'intitulent maintenant \mintinline{latex}|\Sem| dans un souci d'uniformation des commandes. \item Création des commandes \mintinline{latex}|\DeuxH| et \mintinline{latex}|\Heures| pour définir des blocs de plusieurs heures de cours. \item Dans les tableaux d'absences (commande \mintinline{latex}|\Classe|), on peut mettre soit le nombre de séances hebdomadaires, soit la liste des jours des séances dans la semaine. \item Création de la commande \mintinline{latex}|\setNombreColonnes| pour régler le nombre de colonnes dans les tableaux d'absences. \end{itemize} \vfil \begin{center} \begin{minipage}{.8\linewidth} \begin{tcolorbox}[colback=white, colframe=green!75!black] \tableofcontents \end{tcolorbox} \end{minipage} \end{center} \vfil \newpage \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 de la rentrée. \begin{minted}{latex} % Le lundi de la semaine de la rentrée est le 2 septembre 2024 \setLundiRentree{2}{9}{2024} \end{minted} 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 (sous la forme d'un \texttt{niceTabularX}) comme dans l'exemple ci-dessous: \begin{minted}{latex} \EmploiDuTemps{ % & Lundi & Mardi & Merc. & Jeudi & Vend. \\ 8h & & & & & \DeuxH{1G} \\[1.5cm] 9h & & & & 1STMG & \\[1.5cm] 10h & 1G & \DeuxH{2nde} & \DeuxH{1G} & & 1STMG \\[1.5cm] 11h & & & & 2nde & 2 euro \\[1.5cm] \hline\hline 13h30 & & & 1STMG & & \Sem{2nde}{} \\[1.5cm] 14h30 & & & & & \\[1.5cm] 15h30 & & & & & \\[1.5cm] 16h30 & & & & & \\[1.5cm] } \end{minted} Cette commande va générer 36 semaines de cours à compter du premier lundi de l'année scolaire. 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{Emploi du temps du lundi au samedi -- option \texttt{samedi} ou \texttt{\textbackslash{}Samedi} } Par défaut, l'emploi du temps est du lundi au vendredi. Mais il est possible d'avoir un emploi du temps du lundi au samedi avec l'option \texttt{samedi}, dans la déclaration du package. \begin{minted}{latex} \usepackage[samedi]{cahierprof} \end{minted} Cette option peut également être activée par la commande \mintinline{latex}|\setSamedi|. Ne pas oublier de déclarer un Emploi du temps à sept colonnes \begin{minted}{latex} % Déclaration du samedi (sans utiliser l'option du package) \setSamedi % Emploi du temps sur sept colonnes. \EmploiDuTemps{ % & Lundi & Mardi & Merc. & Jeudi & Vend. & Sam. \\ 8h & & & & & \DeuxH{1G} & \Heures{3}{TSTMG} \\[1.5cm] 9h & & & & 1STMG & & \\[1.5cm] 10h & 1G & \DeuxH{2nde} & \DeuxH{1G} & & 1STMG & \\[1.5cm] 11h & & & & 2nde & 2 euro & \\[1.5cm] \hline\hline 13h30 & & & 1STMG & & \Sem{2nde}{} & \\[1.5cm] 14h30 & & & & & & \\[1.5cm] 15h30 & & & & & & \\[1.5cm] 16h30 & & & & & & \\[1.5cm] } \end{minted} \subsection{Séance bimestrielles -- commande \texttt{\textbackslash{}Sem}} 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}{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{Bloc d'heures de cours -- commandes \texttt{\textbackslash{}DeuxH} ou \texttt{\textbackslash{}Heures} } Si une séance de cours dure plus d'une heure, il est possible de créer un bloc d'heure de cours: \begin{itemize} \item soit par la commande \mintinline{latex}|DeuxH| qui prend un seul argument: le nom de la classe; \item soit par la commande \mintinline{latex}|Heures| qui prend deux arguments: le nombre d'heures de cours et le nom de la classe. \end{itemize} \begin{minted}{latex} % Bloc de deux heures de Seconde \DeuxH{2nde} % Bloc de trois heures de Terminale STMG \Heures{3}{TSTMG} \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). Selon les zones (et les années) il faut définir en préambule le premier samedi de chaque vacances, sous la formme \mintinline{latex}|\setDebutToussaint{JJ}{MM}| où \texttt{JJ} est le quantième du samedi du début des vacances et \texttt{MM} le mois du début des vacances. \begin{minted}{latex} % Début de chaque vacances scolaire pour l'année en cours (le samedi). \setDebutToussaint{19}{10} \setDebutNoel{21}{12} \setDebutHiver{15}{2} \setDebutPrintemps{12}{4} \end{minted} Chacune de ces petites vacances dure automatiquement 15 jours. Cependant, il est possible de définir des dates spécifiques, sous la forme \mintinline{latex}|\setFinToussaint{JJ}{MM}| où \texttt{JJ} est le quantième du lundi de la fin des vacances et \texttt{MM} le mois de la fin des vacances. \begin{minted}{latex} % Fin de chaque vacances scolaire pour l'année en cours (le lundi). % Optionnel \setFinToussaint{6}{11} \setFinNoel{8}{1} \setFinHiver{26}{2} \setFinPrintemps{22}{4} \end{minted} \subsection{Gestion des examens -- commandes \texttt{\textbackslash{}setDNB} et \texttt{\textbackslash{}setBac} } On peut définir des dates pour les examens: diplôme national du brevet (DNB), le les épreuves finales du baccalauréat, l'épreuve de philosophie, l'épreuve de français et le grand oral. Pour le diplôme national du brevet (DNB), les dates des épreuves sont définies par la commande \mintinline{latex}|\setDNB{JD}{JF}{YY}|, où \texttt{JD} est le quantième du début du DNB, \texttt{JF} est le quantième de la fin du DNB et \texttt{MM} est le mois du DNB. \begin{minted}{latex} % Le DNB a lieu les 26 et 27 juin. \setDNB{26}{27}{6} \end{minted} Pour les épreuves du baccalauréat: \begin{itemize} \item les jours des épreuves finales du baccalauréat sont définie par la commande \mintinline{latex}|\setBac{JD}{JF}{MM}|, où \texttt{JD} est le quantième du début des épreuves, \texttt{JF} est le quantième de la fin des épreuves et \texttt{MM} est le mois des épreuves; \item le jour de l'épreuve de philosophie est définie par la commande \mintinline{latex}|\setBacPhilo{JJ}{MM}|, où \texttt{JJ} est le quantième et \texttt{MM} est le mois de l'épreuve de philosophie; \item le jour de l'épreuve de français est définie par la commande \mintinline{latex}|\setBacfrancais{JJ}{MM}|, où \texttt{JJ} est le quantième et \texttt{MM} est le mois de l'épreuve de français. \item Les jours des épreuves de grand oral sont définie par la commande \mintinline{latex}|\setGO{JD}{JF}{MM}|, où \texttt{JD} est le quantième du début des épreuves, \texttt{JF} est le quantième de la fin des épreuves et \texttt{MM} est le mois des épreuves. \end{itemize} \begin{minted}{latex} % Les épreuves finales du bac ont lieu du 17 au 19 juin \setBac{17}{19}{6} % L'épreuve de philosophie a lieu le 16 juin \setBacPhilo{16}{6} % L'épreuve de français a lieu le 13 jun \setBacFrancais{13}{6} %Le Grand Oral a lieu du 24 au 30 juin \setGO{24}{30}{6} \end{minted} \noindent Pour les jours d'examens, la colonne du tableau hébdomadaire aura un fond gris clair. \subsection{Gestion des jours fériés} 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. La date du lundi de Pâques est définie par celle du calendrier grégorien occidental (utilisée par l'éducation nationale), calculé automatiquement par la méthode de Butcher-Meeus. Cependant, il est possible de fixer un autre lundi de Pâques, en utilisant, 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. 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 tous les cas, les dates de l'ascension et de la Pentecôte sont automatiquement calculées à partir de la date du lundi de Pâques. \begin{minted}{latex} % Et si le lundi de Pâques était un 17 mars ? \setLundiPaques{17}{3} \end{minted} \noindent Pour les jours fériés, la colonne du tableau hébdomadaire aura un fond gris clair. \section{Tableau d'appel et de notes des classes -- commande \texttt{\textbackslash{}Classe}} 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; \item le nombre de fois que l'on voit les élèves dans la semaine ou bien la liste des jours où l'on voit les élèves; \item la liste des élèves séparés par des virgules. \end{itemize} \subsection{Commande \texttt{\textbackslash{}Classe} avec le nombre de séances} Si le second argument est un entier, la commande \mintinline{latex}|\Classe| va créer des tableaux à en-tête vide. \begin{minted}{latex} % La classe de Seconde euro a une séance dans la semaine. \Classe{2 euro}{1}{ Élève Euro 1, Élève Euro 2, Élève Euro 3 } \end{minted} \subsection{Commande \texttt{\textbackslash{}Classe} avec la liste des jours} En deuxième argument, on peut définir les jours dans la semaine où l'on voit la classe, avec les clés suivantes: \texttt{L} (lundi), \texttt{M} (mardi), \texttt{W} (mercredi), \texttt{J} (jeudi), \texttt{V} (vendredi) ou \texttt{S} (samedi) séparées par des virgules. \begin{minted}{latex} % La classe de Seconde a des séances mardi et vendredi. \Classe{Seconde}{M,V}{ Élève Seconde 1, Élève Seconde 2, Élève Seconde 3 } % La classe de première G a deux séances lundi et une séance vendredi. \Classe{Première G}{L,L,V}{ Élève Première 1, Élève Première 2, Élève Première 3 } % La classe de première STMG a des séances mercredi, jeudi et vendredi \Classe{1 STMG}{W,J,V}{ Élève 1STMG 1, Élève 1STMG 2, Élève 1STMG 3 } \end{minted} \subsection{Nombre de colonne pour les tableaux d'absences -- \texttt{\textbackslash{}setNombreColonnes} } Pour les tableaux d'absence, on peut régler dans l'en-tête le nombre de colonnes par tableau avec la commande \mintinline{latex}|\setNombreColonnes| qui prend un argument: le nombre de colonne à définir. \begin{minted}{latex} % Nombre de colonne par tableau d'absence \setNombreColonnes{12} \end{minted} \noindent Cette commande est facultative, par défaut le nombre de colonne par tableau d'absence est 20. \section{Liste des élèves -- commande \texttt{\textbackslash{}ListeEleves}} La commande \mintinline{latex}|\ListeEleves{<fichier>}| permet d'insérer le contenu du \texttt{<fichier>}. Si aucun fichier n'est spécifié, le package créé 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). \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} \section{Un exemple complet} L'exemple ci-dessous du cahier de texte est compilé dans \texttt{cahierprof-doc.pdf} \inputminted{latex}{cahierprof-exemple.tex} \section{Versions antérieures} \subsection*{Nouveautés de la version 1.0} \begin{itemize} \item La date du lundi de Pâques se calcule automatiquement. \item Option \texttt{samedi}, qui permet d'afficher un emploi tu temps hebdomadaire du lundi au samedi. \item Possiblité d'utiliser un fichier personnel dans la commande \mintinline{latex}|\ListeEleves|. \item Création des commandes \mintinline{latex}|\setFin|\texttt{*}, où \texttt{*} correspond à \texttt{Toussaint}, \texttt{Noel}, \texttt{Hiver} ou \texttt{Printemps}, qui permet de définir des dates spécifiques de fin de vacances. \item Création de commandes pour définir les dates du diplôme national du brevet et du baccalauréat: \mintinline{latex}|\setDNB|, \mintinline{latex}|\setBac|, \mintinline{latex}|\setBacPhilo|, \mintinline{latex}|\setBacFrancais|, \mintinline{latex}|\setGO|. \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{document}