\documentclass[a4paper,french,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{commandes}
% \usepackage{cahierprof}
\usepackage{minted}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% En tête du document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Les marges de mon document.
\geometry{margin=1.2cm,head=0.6cm,headsep=10pt,foot=.6cm}

\title{
  cahierprof.sty\\
  Pour créer un cahier du professeur en LaTeX
}
\author{
  Raphaël Giromini\\
  \texttt{raphael.giromini -- at -- gmail.com}
}
\date{Version 0.91 -- 12 juillet 2023}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Début du document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\maketitle

% \begin{resume}
Le package \texttt{cahierprof} permet de créer un cahier du professeur,
constitué de deux éléments:
\begin{itemize}
  \item une liste des semaines de cours, à raison d'une semaine par page;
  \item un tableau pour les absences et/ou les notes des élèves.
\end{itemize}
% \end{resume}

\tableofcontents

\section{Liste des semaines de cours -- commande
\texttt{\textbackslash{}EmploiDuTemps}}

Le package \texttt{cahierprof} va créer un calendrier; il faut donc commencer
par entrer la date du premier lundi de l'année scolaire, sous la forme:
\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
% Le premier lundi de la rentrée scolaire
\setcounter{year}{2023}
\setcounter{month}{9}
\setcounter{day}{4}
\end{minted}

La commande \texttt{\textbackslash{}EmploiDuTemps} va permettre de de créer le
tableau de la semaine. Cette commande a un seul argument qui contient la
description d'une semaine type, comme dans l'exemple ci-dessous:
\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
\EmploiDuTemps{
  %     & Lundi & Mardi  & Mercredi    & Jeudi & Vendredi \\
  8h    &       & 1G     &             &       &          \\ [1.5cm] \hline
  9h    &       & 2nde   & 1STMG       &       & 1STMG    \\ [1.5cm] \hline
  10h   &       &        & 1G          &       &          \\ [1.5cm] \hline
  11h   &       &        & 2nde (A.P.) &       & 1G       \\ [1.5cm] \hline\hline
  13h30 &       & 1G     & 2nde        &       & 2nde     \\ [1.5cm] \cline{1-5}
  14h30 &       &        & Term/1ere   &       &          \\ [1.5cm] \hline
  15h30 &       & 1 euro & 2 euro      &       & T euro   \\ [1.5cm] \hline
  16h30 &       &        &             &       &          \\ [1.5cm] \hline
}
\end{minted}
Cette commande va générer 37 semaines de cours à compter du premier lundi de
l'année scolaire.

\subsection{Cours bimestriels -- commande \texttt{\textbackslash{}sem}}

Certains cours sont bimestriels (tous les 15 jours), suivant la parité de la
semaine. Pour cela il existe la commande \texttt{\textbackslash{}sem} qui prend
deux arguments: le cours en semaine impair, puis le cours en semaine pair.

\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
% L'aide personnalisé en seconde n'a lieu que les semaines paires
  \sem{}{2nde (A.P.)}
% En semaine impaire, il y a un cours de terminale et en semaine paire, il y a
% un cours de première
  \sem{Term}{1ere}
\end{minted}

\subsection{Gestion des vacances scolaires}

Le package \texttt{cahierprof} permet de gérer les vacances scolaires
Les vacances scolaires (de Toussaint, de Noel, d'hiver et de printemps). Pour
l'instant la gestion est un peu pénible. Il faut ajouter \emph{dans le
préambule} les dates de début et de fin de chaque vacances.

\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
% Toussaint
\setcounter{dayToussaint}{21}
\setcounter{monthToussaint}{10}
\setcounter{dayToussaintFin}{6}
\setcounter{monthToussaintFin}{11}
% Noel
\setcounter{dayNoel}{23}
\setcounter{monthNoel}{12}
\setcounter{dayNoelFin}{8}
\setcounter{monthNoelFin}{1}
% Hiver
\setcounter{dayHiver}{10}
\setcounter{monthHiver}{2}
\setcounter{dayHiverFin}{26}
\setcounter{monthHiverFin}{2}
% Printemps
\setcounter{dayPrintemps}{6}
\setcounter{monthPrintemps}{4}
\setcounter{dayPrintempsFin}{22}
\setcounter{monthPrintempsFin}{4}
\end{minted}


\subsection{Gestion des jours fériés}

Pour les jours fériés officiels, le package \texttt{cahierprof} va ajouter la
mention $\star$Ferié$\star$ à côté de la date.

Les jours fériés officiels de l'année sont:
\begin{itemize}
  \item Le jour de l'an (1er janvier)
  \item Fête du travail (le 1er mai)
  \item La Victoire 1945 (le 8 mai)
  \item Le jeudi de l'ascension (date variable, 40 jours après le dimanche de
    Pâques, entre le 30 avril et le 3 juin).\\
    Cette date est variable et doit être entrée à la main par les commandes
    \texttt{thedayAscension} et \texttt{themonthAscension}.\\
    Le pont de l'ascension (le vendredi suivant le jeudi de l'ascension) est
    également considéré comme férié)
  \item Le lundi de pentecôte, 50 jours après le dimanche de Pâques, entre le
    10 mai et le 13 juin).\\
    Cette date est variable et doit être entrée à la main par les commandes
    \texttt{thedayPentecote} et \texttt{themonthPentecote}.
  \item La fête nationale (14 juillet)
  \item L'assomption (15 août)
  \item La toussaint (1er novembre)
  \item L'armistice 1914-1918 (11 novembre)
  \item Noël (25 décembre)
\end{itemize}

Les jours fériés à date fixe sont gérés automatiquement, pour les jours fériés à
date variable, il faut donc ajouter dans le préambule:
\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
% Lundi de Paques
\setcounter{dayPaques}{1}
\setcounter{monthPaques}{4}
% Ascension
\setcounter{dayAscension}{9}
\setcounter{dayAscensionPont}{10}
\setcounter{monthAscension}{5}
% Lundi de Pentecote
\setcounter{dayPentecote}{20}
\setcounter{monthPentecote}{5}
\end{minted}

\section{Tableau d'appel et de note des classe -- commande
\texttt{\textbackslash{}Classe}}

La commande \texttt{\textbackslash{}Classe} permet de générer des tableaux
d'appels des classes. Cette commande prend trois arguments:
\begin{itemize}
  \item le nom de la classe;
  \item le nombre de fois que l'on voit les élèves dans la semaine;
  \item la liste des élèves séparés par des virgules.
\end{itemize}
Par exemple:

\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
% La classe de seconde est vue 4 fois dans la semaine:
\Classe{2nde}{4}{
  Élève 1,
  Élève 2,
  Élève 3,
  Élève 4,
  ...
}
% La classe de 1e STMG est vue 2 fois dans la semaine:
\Classe{1 STMG}{2}{
  Élève 1,
  Élève 2,
  Élève 3,
  Élève 4,
  ...
}
\end{minted}

La liste des élèves va créer un fichier \texttt{ListeEleves.tex} avec la liste
(numérotés) de l'ensemble des élèves, réparti par classe. La commande
\texttt{\textbackslash{}ListeElèves} permet d'insérer dans le cahier de texte
cette liste (penser à compiler deux fois).

\section{Un exemple complet}

\begin{minted}[frame=single,linenos,numbersep=6pt]{latex}
\documentclass[a4paper,french,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{multicol}
\usepackage{cahierprof}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% En tête du document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%% Les marges de mon document.
\geometry{margin=1.2cm,head=0.6cm,headsep=10pt,foot=.6cm}
% 1er lundi de l'année scolaire (pour le cahier de texte)
\setcounter{year}{2023}
\setcounter{month}{9}
\setcounter{day}{4}

% Vacances Scolaire pour l'année en cours.
% Toussaint
\setcounter{dayToussaint}{21}
\setcounter{monthToussaint}{10}
\setcounter{dayToussaintFin}{6}
\setcounter{monthToussaintFin}{11}
% Noel
\setcounter{dayNoel}{23}
\setcounter{monthNoel}{12}
\setcounter{dayNoelFin}{8}
\setcounter{monthNoelFin}{1}
% Hiver
\setcounter{dayHiver}{10}
\setcounter{monthHiver}{2}
\setcounter{dayHiverFin}{26}
\setcounter{monthHiverFin}{2}
% Printemps
\setcounter{dayPrintemps}{6}
\setcounter{monthPrintemps}{4}
\setcounter{dayPrintempsFin}{22}
\setcounter{monthPrintempsFin}{4}
% Lundi de Paques
\setcounter{dayPaques}{1}
\setcounter{monthPaques}{4}
% Ascension
\setcounter{dayAscension}{9}
\setcounter{dayAscensionPont}{10}
\setcounter{monthAscension}{5}
% Lundi de Pentecote
\setcounter{dayPentecote}{20}
\setcounter{monthPentecote}{5}

\title{\scshape Cahier du Professeur}
\author{Un-e excellent-e professeur-e}
\date{2023-2024}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Début du document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

%%Page de Garde
\maketitle
\thispagestyle{empty}

\begin{center}
  {\Large
  \textsc{Cahier de texte}
  }
\end{center}

\newpage

% Emploi du temps au format tableau (tabularx).

\begin{landscape}
  \EmploiDuTemps
  {
%         & Lundi & Mardi  & Mercredi            & Jeudi & Vendredi \\
    8h    &       & 1G     &                     &       &          \\ [1.5cm] \hline
    9h    &       & 2nde   & 1STMG               &       & 1STMG    \\ [1.5cm] \hline
    10h   &       &        & 1G                  &       &          \\ [1.5cm] \hline
    11h   &       &        & \sem{2nde (A.P.)}{} &       & 1G       \\ [1.5cm] \hline\hline
    13h30 &       & 1G     & 2nde                &       & 2nde     \\ [1.5cm] \cline{1-5}
    14h30 &       &        & \sem{Term}{1ere}    &       &          \\ [1.5cm] \hline
    15h30 &       & 1 euro & 2 euro              &       & T euro   \\ [1.5cm] \hline
    16h30 &       &        &                     &       &          \\ [1.5cm] \hline
  }
\end{landscape}

\begin{center}
  {\Large
  \textsc{Appel des classes}
  }
\end{center}

% Liste des élèves, sauvée dans le fichier ListeEleves.tex, créée à partir des
% \Classe{}{}{}.
% Penser à compiler deux fois.

\ListeEleves

\newpage

\tiny

% Tableau de classe
% \Classe{Nom de la classe}{Nombre de séances dans la semaine}{Liste des élèves
% séparés par une virgule}

\Classe{Seconde}{3}
{
  Élève 1,
  Élève 2,
  Élève 3,
  Élève 4,
  Élève 5
}

\newpage

\Classe{1 G}{4}
{
  Élève 1,
  Élève 2,
  Élève 3,
  Élève 4,
  Élève 5
}

\newpage

\Classe{1 STMG}{2}
{
  Élève 1,
  Élève 2,
  Élève 3,
  Élève 4,
  Élève 5
}
\newpage

\Classe{2 euro}{1}
{
  Élève 1,
  Élève 2,
  Élève 3,
  Élève 4,
  Élève 5
}
\end{document}
\end{minted}
\end{document}
