<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\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 Ã&nbsp; 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} Ã&nbsp; partir des listes des Ã©lÃ¨ves dans les tableaux
    des classes. 
\end{itemize}
Merci Ã&nbsp; 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{
    %     &amp; Lundi &amp; Mardi        &amp; Merc.      &amp; Jeudi &amp; Vend.        \\
    8h    &amp;       &amp;              &amp;            &amp;       &amp; \DeuxH{1G}   \\[1.5cm]
    9h    &amp;       &amp;              &amp;            &amp; 1STMG &amp;              \\[1.5cm]
    10h   &amp; 1G    &amp; \DeuxH{2nde} &amp; \DeuxH{1G} &amp;       &amp; 1STMG        \\[1.5cm]
    11h   &amp;       &amp;              &amp;            &amp; 2nde  &amp; 2 euro       \\[1.5cm] \hline\hline
    13h30 &amp;       &amp;              &amp; 1STMG      &amp;       &amp; \Sem{2nde}{} \\[1.5cm]
    14h30 &amp;       &amp;              &amp;            &amp;       &amp;              \\[1.5cm]
    15h30 &amp;       &amp;              &amp;            &amp;       &amp;              \\[1.5cm]
    16h30 &amp;       &amp;              &amp;            &amp;       &amp;              \\[1.5cm]
}
\end{minted}
Cette commande va gÃ©nÃ©rer 36 semaines de cours Ã&nbsp; 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 Ã&nbsp;
sept colonnes
\begin{minted}{latex}
% DÃ©claration du samedi (sans utiliser l'option du package)
\setSamedi
% Emploi du temps sur sept colonnes.
\EmploiDuTemps{
%         &amp; Lundi &amp; Mardi        &amp; Merc.      &amp; Jeudi &amp; Vend.        &amp; Sam. \\
    8h    &amp;       &amp;              &amp;            &amp;       &amp; \DeuxH{1G}   &amp; \Heures{3}{TSTMG} \\[1.5cm]
    9h    &amp;       &amp;              &amp;            &amp; 1STMG &amp;              &amp; \\[1.5cm]
    10h   &amp; 1G    &amp; \DeuxH{2nde} &amp; \DeuxH{1G} &amp;       &amp; 1STMG        &amp; \\[1.5cm]
    11h   &amp;       &amp;              &amp;            &amp; 2nde  &amp; 2 euro       &amp; \\[1.5cm] \hline\hline
    13h30 &amp;       &amp;              &amp; 1STMG      &amp;       &amp; \Sem{2nde}{} &amp; \\[1.5cm]
    14h30 &amp;       &amp;              &amp;            &amp;       &amp;              &amp; \\[1.5cm]
    15h30 &amp;       &amp;              &amp;            &amp;       &amp;              &amp; \\[1.5cm]
    16h30 &amp;       &amp;              &amp;            &amp;       &amp;              &amp; \\[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 Ã&nbsp; 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 Ã&nbsp; 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 Ã&nbsp; 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{&lt;fichier&gt;}| permet d'insÃ©rer le
contenu du \texttt{&lt;fichier&gt;}. 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 Ã&nbsp; compiler deux fois).

\begin{minted}{latex}
% Liste des Ã©lÃ¨ves, sauvÃ©e dans le fichier ListeEleves.tex,
% crÃ©Ã©e Ã&nbsp; partir des \Classe{}{}{}. Penser Ã&nbsp; 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 Ã&nbsp; \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 Ã&nbsp; 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 Ã&nbsp; \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'Ã&nbsp; l'annÃ©e 2040, la date du lundi de PÃ¢que est gÃ©rÃ©e
    automatiquement.
\end{itemize}

\end{document}
</pre></body></html>