\documentclass[a4paper,french,10pt]{article} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{babel} \usepackage[margin=1.8cm,head=.9cm,headsep=10pt,foot=.9cm]{geometry} \usepackage{cahierprof} % Extensions pour la présentation de cahierprof-doc.tex \usepackage{tcolorbox} \usepackage[framemethod=TikZ]{mdframed} \usepackage{minted} \usepackage{xcolor} \usepackage[colorlinks]{hyperref} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % En tête du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \title{ cahierprof.sty\\ Un cahier de textes en \LaTeX{} pour les professeurs } \author{ Raphaël Giromini\\ \mil|raphael.giromini -- at -- gmail.com| } \date{Version \cahierprofversion{} -- \cahierprofdate{}} \setminted{frame=single,linenos,numbersep=6pt} \newcommand{\mil}{\mintinline{latex}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Début du document %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \maketitle \section*{Résumé} \noindent L'extension \mil|cahierprof.sty| 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 appels et/ou les notes). \item une liste des élèves, qui créé un fichier supplémentaire \mil|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 de cette extension. Merci à F. Pantigny pour ses conseils et exemples sur l'utilisation de l'extension \mil|nicematrix.sty|. % \smallskip % \noindent % Le paquet \mil|cahierprof| charge les paquets \mil|geometry|, % \mil|tikz| (avec les biliothèques \mil|math| et \mil|calc|), % \mil|microtype| (avec les options \mil|babel=true| et % \mil|kerning=true|), \mil|ifthen|, \mil|nicematrix|, \mil|xparse|, % \mil|xstring| et \mil|listofitems|. \subsection*{Nouveautés de la version 1.3} \begin{itemize} \item Possibilité de créer des blocs de 1h30 dans l'emploi du temps avec la command \mil|\TP|. \item Redéfinition de la commande \mil|\Classe| pour y intégrer le nombre de colonne par tableau d'appel. La commande \mil|\setNombreColonnes| disparait. \item Correction de bugs mineurs de la version 1.2. \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 -- \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 \mil|\setLundiRentree{}{}{}|, où \mil|| est le quantième du mois; \mil|| est le mois et \mil|| 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 \mil|\EmploiDuTemps{}| génère 36 tableaux hebdomadaires à compter du premier lundi de l'année scolaire. La clé \mil|| est un tableau de la semaine (sous la forme d'un \mil|niceTabularX|) avec 6 colonnes. \begin{minted}{latex} \EmploiDuTemps{ % & Lundi & Mardi & Merc. & Jeudi & Vend. \\ 8h & & & & & \DeuxH{1G} \\[1.5cm] 9h & \Sem{1G}{} & & & \TP{1G} & \\[1.5cm] 10h & & \DeuxH{2nde} & 1G & \TP*{2nde} & 1STMG \\[1.5cm] 11h & & & & & \\[1.5cm] \hline\hline 13h30 & 2nde & 1STMG & 1STMG & & 2nde (Gr.~\Sem{A}{B}) \\[1.5cm] 14h30 & & & & & 2euro \\[1.5cm] 15h30 & & & & & \\[1.5cm] 16h30 & & & & & \\[1.5cm] } \end{minted} La commande \mil|\setNombreSemaines{}| permet d'afficher un nombre différent de semaines, où \mil|| est le nombre entier de semaines à générer. Cette commande doit être placée avant la commande \mil|\EmploiDuTemps|. \begin{minted}{latex} % Un emploi du temps avec 10 semaines de cours. \setNombreSemaines{10} \end{minted} \subsection{ Emploi du temps du lundi au samedi -- option \texttt{samedi} ou \texttt{\textbackslash{}setSamedi} } 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 (7 colonnes) avec l'option \mil|samedi|, dans la déclaration de l'extension. \begin{minted}{latex} \usepackage[samedi]{cahierprof} \end{minted} Cette option peut également être activée par la commande \mil|\setSamedi|, placée avant la commande \mil|\EmploiDuTemps|. \begin{minted}{latex} % Déclaration du samedi (sans utiliser l'option de l'extension) \setSamedi % Emploi du temps sur sept colonnes. \EmploiDuTemps{ % & Lundi & Mardi & Merc. & Jeudi & Vend. & Samedi \\ 8h & & & & & \DeuxH{1G} & \\[1.5cm] 9h & \Sem{1G}{} & & & \TP{1G} & & \Heure{3}{TSTMG} \\[1.5cm] 10h & & 2nde & 1G & \TP*{2nde} & 1STMG & \\[1.5cm] 11h & & & & & & \\[1.5cm] \hline\hline 13h30 & 2nde & 1STMG & 1STMG & & & \\[1.5cm] 14h30 & & & & & 2euro & \\[1.5cm] 15h30 & & & & & & \\[1.5cm] 16h30 & & & & & & \\[1.5cm] } \end{minted} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Saut de page manuel. \newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{ Séance bimensuelle -- \texttt{\textbackslash{}Sem} } La commande \mil|\Sem{}{}| permet de définir des séances bimensuelles (tous les 15 jours), suivant la parité de la semaine. \mil|| est le contenu de la séance en semaine impaire et \mil|| est le contenu de la séance en semaine paire. \begin{minted}{latex} % Les 1G ont cours uniquement en semaine impaire. \Sem{1G}{} % Les 2nde sont en groupe (A et B) bimensuels. 2nde (Gr.~\Sem{A}{B}) \end{minted} \subsection{ Bloc d'heures de cours -- \texttt{\textbackslash{}DeuxH} ou \texttt{\textbackslash{}Heures} } Pour les séances qui durent plus d'une heure, il est possible de créer un bloc sur plusieurs heures. \begin{itemize} \item La commande \mil|\DeuxH{}| crée un bloc de deux heures pour la classe \mil||. \item La commande \mil|\Heures{}{}| crée un bloc de \mil|| heures pour la classe \mil||. \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{ Bloc d'une heure et demi de cours -- \texttt{\textbackslash{}TP} } Il est possible de créer un bloc de 1h30 avec la commande \mil|\TP<*>{}|. \begin{itemize} \item La commande \mil|\TP{}| crée un bloc de 1h30 pour la classe \mil|| qui commence à l'heure entière. \item La commande \mil|\TP*{}| crée un bloc de 1h30 pour la classe \mil|| qui commence à la demi de l'heure. \end{itemize} \begin{minted}{latex} % Bloc de 1h30 pour les 1G, début du bloc à l'heure. \TP{1G} % Bloc de 1h30 pour les 2nde, début du bloc à la demi de l'heure. \TP*{2nde} \end{minted} \subsection{ Gestion des vacances scolaires } Les vacances scolaires zonées (Toussaint, Noël, hiver et printemps) peuvent se définir en préambule sous la forme \mil|\setDebutToussaint{}{}| où \mil|| est le quantième du samedi du début des vacances et \mil|| le mois. Chacune de ces vacances dure automatiquement 15 jours. \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} \subsection{ Gestion des examens -- \texttt{\textbackslash{}setDNB} et \texttt{\textbackslash{}setBac} } Dans le préambule, il est possible de définir les dates du diplôme national du brevet (DNB), de l'épreuve de philosophie, de l'épreuve de français, des épreuves de spécialités et la période du grand oral. \begin{itemize} \item La commande \mil|\setDNB[]{}{}{YY}| définie les dates des épreuves du DNB, où \mil|| est le quantième du début, \mil|| est le quantième de la fin et \mil|| est le mois. \item La commande \mil|\setBacPhilo[]{}{}| définie la date de l'épreuve de philosophie du baccalauréat, où \mil|| est le quantième et \mil|| est le mois. \item La commande \mil|\setBacFrancais[]{}{}| définie la date de l'épreuve anticipée de français du baccalauréat, où \mil|| est le quantième et \mil|| est le mois. \item La commande \mil|\setBac[]{}{}{}| définie les dates des épreuves de spécialité du baccalauréat, où \mil|| est le quantième du début, \mil|| est le quantième de la fin et \mil|| est le mois. \item La commande \mil|\setGO[]{}{}{}| définie la période des épreuves du grand oral du baccalauréat, où \mil|| est le quantième du début, \mil|| est le quantième de la fin et \mil|| est le mois. \end{itemize} Pour les jours d'examens, la colonne du tableau hebdomadaire aura un fond gris clair. La clé optionnelle \mil|| permet de changer la couleur du fond de la colonne. Les couleurs possibles sont les mêmes que celles gérées par PGF/TiKZ. \begin{minted}{latex} % Le DNB a lieu les 26 et 27 juin. \setDNB{26}{27}{6} % Les épreuves finales du bac ont lieu du 17 au 19 juin sur fond blue!30 \setBac[blue!30]{17}{19}{6} % L'épreuve de philosophie a lieu le 16 juin sur fond green!50 \setBacPhilo[green!50]{16}{6} % L'épreuve de français a lieu le 13 jun sur fond red!50 \setBacFrancais[red!50]{13}{6} % Le Grand Oral a lieu du 24 au 30 juin sur fond lightgray (par défaut) \setGO{24}{30}{6} \end{minted} \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: 1\textsuperscript{er}~janvier, lundi de Pâques, 1\textsuperscript{er}~mai, 8~mai, Ascension, lundi de Pentecôte, 14~juillet, Assomption (15~août), Toussaint (1\textsuperscript{er}~novembre), 11~novembre et 25~décembre. Le vendredi de l'Ascension est également considéré comme férié. Les jours fériés sont signalés dans l'emploi du temps par un fond gris clair. La date du lundi de Pâques est celle du calendrier grégorien occidental (utilisé par l'éducation nationale), calculée par la méthode de Butcher-Meeus. L'Ascension (38~jours après le lundi de Pâques) et le lundi de Pentecôte (10~jours après le vendredi de l'ascension) sont calculées automatiquement. La commande \mil|\setLundiPaques{}{}| (dans le préambule) permet de changer la date du lundi de Pâques, où \mil|| est le quantième et \mil|| est le mois. \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 notes des classes -- \texttt{\textbackslash{}Classe} } La commande \mil|\Classe<*>[]{}{}{}| permet de générer des tableaux d'appel des classes. Cette commande prend quatre arguments. \begin{itemize} \item l'étoile \mil|*| signale que le tableau a des séances bimensuelles («\emph{quinzomadaires}»). \item La clé optionnelle \mil|| donne le nombre de colonne par tableau. Par défaut cette clé vaut 18. \item La clé \mil|| de la classe, dans la première case d'en-tête du tableau. \item La clé \mil|| des séances (voir ci-dessous). \item la liste \mil|| séparés par des virgules, constitue la première colonne des tableaux d'appel. \end{itemize} \subsection{ Commande \texttt{\textbackslash{}Classe} avec le nombre de séances } La commande \mil|\Classe{}{}{}| crée des tableaux pour la classe \mil||, à en-tête vide, pour une fréquence de \mil|| séances par semaines (\mil|| peut être un entier ou un nombre décimal). \begin{minted}{latex} % La classe de Seconde euro a 1,5 séance dans la semaine. % Les tableaux ont 18 colonnes (valeur par défaut). \Classe{2 euro}{1.5}{ Élève Euro 1, Élève Euro 2, Élève Euro 3, Élève Euro 4, Élève Euro 5 } \end{minted} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Saut de page manuel. \newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{ Commande \texttt{\textbackslash{}Classe} avec la liste des jours } La commande \mil|\Classe{}{}{}| crée des tableaux pour la classe \mil||. Les en-têtes des colonnes correspondent aux dates de la liste \mil|| (sans les jours fériés).\\ Les valeurs possibles de \mil|| sont: \mil|L| (lundi), \mil|M| (mardi), \mil|W| (mercredi), \mil|J| (jeudi), \mil|V| (vendredi) ou \mil|S| (samedi). Les valeurs sont séparées par des virgules. \begin{minted}{latex} % La classe de Seconde a cours le mardi, le jeudi et le vendredi. % Les tableaux ont 19 colonnes pour éviter un tableau presque vide. \Classe[19]{Seconde}{M,J,V}{ Élève Seconde 1, Élève Seconde 2, Élève Seconde 3, Élève Seconde 4, Élève Seconde 5 } \end{minted} \subsection{ Commande \texttt{\textbackslash{}Classe*} avec des séances bimensuelles } L'étoile \mil|*| permet de définir des séances bimensuelles (\emph{quinzomadaires}).\\ La commande \mil|{\Classe*{}{}{}| permet de définir en en-tête les jours \mil|J| suivant leur fréquence \mil|P|: \begin{itemize} \item \mil|0|: toutes les séances du jour \mil|J|. \item \mil|1|: uniquement les semaines impaires du jour \mil|J|. \item \mil|2|: uniquement les semaines impaires du jour \mil|J|. \end{itemize} La parité \mil|P| correspond à la parité de la semaine de \mil|\EmploiDuTemps|. \begin{minted}{latex} % La classe de Première G a cours en semaine impaire les lundis, tous les % mercredis et tous les vendredis. % Les tableaux ont 16 colonnes pour éviter un tableau presque vide. \Classe*[16]{Première G}{L/1,W/0,V/0}{ É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 } \end{minted} \subsection{ Date de fin des cours -- \texttt{\textbackslash{}setFinCours} } Dans le préambule, la commande \mil|\setFinCours{}{}| indique le dernier jour pour les en-tête des tableaux de classe, où \mil|| est le quantième du dernier jour de cours et \mil|| est le mois du dernier jour de l'année. \begin{minted}{latex} % Fin des cours le 7 juin. \setFinCours{7}{6} \end{minted} \section{ Liste des élèves -- \texttt{\textbackslash{}ListeEleves} } La commande \mil|\ListeEleves{}| permet d'insérer le contenu du \mil||. Si aucun fichier n'est spécifié, un fichier \mil|ListeEleves.tex| est créé avec la liste (numérotés) de l'ensemble des élèves réparti par classe, puis inséré dans le cahier de texte cette liste (penser à compiler deux fois). \begin{minted}{latex} % Liste des élèves créée à partir des \Classe \ListeEleves{} % Liste des élèves créée à partir d'un fichier personnel. \ListeEleves{ListeElevesPerso.tex} \end{minted} \newpage \section{Un exemple complet} L'exemple ci-dessous du cahier de texte est compilé dans \mil|cahierprof-doc.pdf| \inputminted{latex}{cahierprof-exemple.tex} \newpage \section{Versions antérieures} \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 \mil|\setNombreSemaines| pour fixer le nombre de semaines à afficher.\\ Si cette commande n'est pas utilisée, 36 semaines sont affichées par défaut. \item Création de la commandes \mil|\setLundiRentree| pour configurer le lundi de la rentrée scolaire. \item Création des commandes \mil|\setDebut|\mil|*|, où \mil|*| correspond à \mil|Toussaint|, \mil|Noel|, \mil|Hiver| ou \mil|Printemps| et gestion automatique de la date de la fin des petites vacances. \item Création de la commande \mil|\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âques est gérée automatiquement. \end{itemize} \subsection*{Nouveautés de la version 1.0} \begin{itemize} \item La date du lundi de Pâques se calcule automatiquement par la méthode de Butcher-Meeus. \item Option \mil|samedi|, qui permet d'afficher un emploi du temps hebdomadaire du lundi au samedi. \item Possibilité d'utiliser un fichier personnel dans la commande \mil|\ListeEleves|. % \item Création des commandes \mil|\setFin{*}|, où \mil|*| correspond à % \mil|Toussaint|, \mil|Noel|, \mil|Hiver| ou \mil|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: \mil|\setDNB|, \mil|\setBac|, \mil|\setBacPhilo|, \mil|\setBacFrancais|, \mil|\setGO|. \end{itemize} \subsection*{Nouveautés de la version 1.1} \noindent Le principal changement de cette version est l'utilisation de l'extension \mil|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 bimensuelles s'intitulent maintenant \mil|\Sem| dans un souci d'uniformité des commandes. \item Création des commandes \mil|\DeuxH| et \mil|\Heures| pour définir des blocs de plusieurs heures de cours. \item Dans les tableaux d'appel (commande \mil|\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 \mil|\setNombreColonnes| pour régler le nombre de colonnes dans les tableaux d'appel. \end{itemize} \subsection*{Nouveautés de la version 1.2} \begin{itemize} \item Possibilité de mettre un fond de couleur aux jours d'examens dans les tableaux hebdomadaires. \item Affichage par défaut de 18 colonnes (au lieu de 20) dans les tableaux d'élèves. \item Suppression des jours fériés dans les colonnes des tableaux d'élèves. \item Possibilité de définir des dates bimensuelles dans les tableaux d'appels. \end{itemize} \end{document}