summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cahierprof
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-08-07 03:03:39 +0000
committerNorbert Preining <norbert@preining.info>2023-08-07 03:03:39 +0000
commitaebf6a3b57eda6e22a8e5fb93958edbf6ad1b551 (patch)
tree22fd31bea1ac0ed82dd49684be5ae5415f69fa9a /macros/latex/contrib/cahierprof
parentb8344986f0b0553f4794a39ae9b63c6b206cd48d (diff)
CTAN sync 202308070303
Diffstat (limited to 'macros/latex/contrib/cahierprof')
-rw-r--r--macros/latex/contrib/cahierprof/ListeEleves.tex32
-rw-r--r--macros/latex/contrib/cahierprof/README.md17
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-doc.pdfbin0 -> 289363 bytes
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-doc.tex350
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-exemple.pdfbin0 -> 158682 bytes
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-exemple.tex149
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof.sty455
7 files changed, 1003 insertions, 0 deletions
diff --git a/macros/latex/contrib/cahierprof/ListeEleves.tex b/macros/latex/contrib/cahierprof/ListeEleves.tex
new file mode 100644
index 0000000000..6b8ecd25eb
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/ListeEleves.tex
@@ -0,0 +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
+\end{enumerate}
+1 G
+\begin{enumerate}
+\item Élève 1
+\item Élève 2
+\item Élève 3
+\item Élève 4
+\item Élève 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
+\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
+\end{enumerate}
diff --git a/macros/latex/contrib/cahierprof/README.md b/macros/latex/contrib/cahierprof/README.md
new file mode 100644
index 0000000000..508f6c638c
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/README.md
@@ -0,0 +1,17 @@
+Vous êtes un enseignant en France ?
+cahierprof vous aidera a réaliser un cahier de texte, c'est à dire
+- un emploi du temps hedomadaire
+- des tableaux d'absences/de notes pour chaque classe
+
+----------------
+
+You are a french mathematics teacher ?
+cahierprof helps you to make a textbook with :
+- week schedule
+- a grade book for each class
+
+---------------
+
+Author : Raphael Giromini
+email : raphael.giromini@gmail.com
+Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.pdf b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf
new file mode 100644
index 0000000000..187febaf51
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.tex b/macros/latex/contrib/cahierprof/cahierprof-doc.tex
new file mode 100644
index 0000000000..6f180bdeee
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-doc.tex
@@ -0,0 +1,350 @@
+\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}
diff --git a/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf
new file mode 100644
index 0000000000..3401a99650
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf
Binary files differ
diff --git a/macros/latex/contrib/cahierprof/cahierprof-exemple.tex b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex
new file mode 100644
index 0000000000..1aa7941855
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex
@@ -0,0 +1,149 @@
+\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}
diff --git a/macros/latex/contrib/cahierprof/cahierprof.sty b/macros/latex/contrib/cahierprof/cahierprof.sty
new file mode 100644
index 0000000000..59850eef8f
--- /dev/null
+++ b/macros/latex/contrib/cahierprof/cahierprof.sty
@@ -0,0 +1,455 @@
+%% Informations générales
+%% Dernière modification le 2023-07-12 at 08:23
+\NeedsTeXFormat{LaTeX2e}[1999/01/01]
+\ProvidesPackage{cahierprof}
+ [2023-07-12 v0.91 Les commandes pour le cahier Professeur]
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Options du package commande
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Pas d'options
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Chargement des extensions
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{geometry}
+\RequirePackage[table]{xcolor}
+\RequirePackage{tabularx}
+\RequirePackage{tikz}
+ \usetikzlibrary{math}
+ \usetikzlibrary{calc}
+\RequirePackage[babel=true,kerning=true]{microtype}
+\RequirePackage{lscape}
+\RequirePackage{ifthen}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Définitions des compteurs
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Compteurs day/month/year pour la date courante
+\newcounter{day}
+\newcounter{month}
+\newcounter{year}
+%
+% Compteurs pour les vacances scolaires
+% Toussaint
+\newcounter{dayToussaint}
+\newcounter{monthToussaint}
+\newcounter{dayToussaintFin}
+\newcounter{monthToussaintFin}
+% Noel
+\newcounter{dayNoel}
+\newcounter{monthNoel}
+\newcounter{dayNoelFin}
+\newcounter{monthNoelFin}
+% Hiver
+\newcounter{dayHiver}
+\newcounter{monthHiver}
+\newcounter{dayHiverFin}
+\newcounter{monthHiverFin}
+% Printemps
+\newcounter{dayPrintemps}
+\newcounter{monthPrintemps}
+\newcounter{dayPrintempsFin}
+\newcounter{monthPrintempsFin}
+% Jours Feriés
+\newcounter{dayPaques}
+\newcounter{monthPaques}
+\newcounter{dayAscension}
+\newcounter{dayAscensionPont}
+\newcounter{monthAscension}
+\newcounter{dayPentecote}
+\newcounter{monthPentecote}
+%
+% Définition de nouveaux compteurs pour Vendredi Jour/Mois/Année
+\newcounter{friday}
+\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 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).
+%
+% Passer au jour d'après
+\newcommand{\nextday}%
+{%
+ % Les mois à 30 jours : Avril, Juin, Septembre, Novembre
+ % Les mois à 31 jours : Janvier, Mars, Mai, Juillet, Août, Octobre, Décembre
+ % Février à \theFinFevrier jours.
+ \ifthenelse{
+ \(\theday=30 \and \(\themonth=4 \or \themonth=6 \or \themonth=9 \or \themonth=11\)\)
+ \or \(\theday=31 \and \(\themonth=1 \or \themonth=3 \or \themonth=5 \or \themonth=7 \or
+ \themonth=8 \or \themonth=10 \or\themonth=12\)\)
+ \or \(\theday=\theFinFevrier \and \themonth=2\)}%
+ {
+ % Si on est en décembre, on change d'année et month=1, day=1
+ \ifthenelse{\themonth=12}%
+ {
+ \stepcounter{year}
+ \setcounter{month}{1}
+ \setcounter{day}{1}
+ }{
+ % Dans les autres cas, on change de mois et on recommence à day= 1
+ \stepcounter{month}%
+ \setcounter{day}{1}%
+ }%
+ }{
+ % Sinon, on augmente juste le compteur jour
+ \stepcounter{day}%
+ }%
+}%
+%
+% Gestions des vacances et week-end
+\newcommand{\weekend}{
+ % Vacances de Toussaint
+ \ifthenelse{ \theday=\thedayToussaint \and \themonth=\themonthToussaint}
+ {
+ \setcounter{day}{\thedayToussaintFin}
+ \setcounter{month}{\themonthToussaintFin}
+ Vacances de la Toussaint
+ }{
+ % Vacances de Noël
+ \ifthenelse{ \theday=\thedayNoel \and \themonth=\themonthNoel}
+ {
+ \setcounter{day}{\thedayNoelFin}
+ \setcounter{month}{\themonthNoelFin}
+ \stepcounter{year}
+ Vacances de Noël
+ }{
+ % Vacances d'Hiver
+ \ifthenelse{ \theday=\thedayHiver \and \themonth=\themonthHiver}
+ {
+ \setcounter{day}{\thedayHiverFin}
+ \setcounter{month}{\themonthHiverFin}
+ Vacances d'hiver
+ }{
+ % Vacances de Printemps
+ \ifthenelse{ \theday=\thedayPrintemps \and \themonth=\themonthPrintemps}
+ {
+ \setcounter{day}{\thedayPrintempsFin}
+ \setcounter{month}{\themonthPrintempsFin}
+ Vacances de printemps
+ }{
+ % sinon c'est juste un week-end
+ \nextday\nextday
+ }%
+ }%
+ }%
+ }%
+}
+%
+% Obtenir la date
+\newcommand{\getDate}{%
+ % On affiche la date
+ \theday/\themonth/\theyear%
+ % On affiche $\star$Ferié$\star$ si le jour est ferié.
+ \ifthenelse{%
+ % Jour de l'an, 1er janvier
+ \(\theday=1 \and \themonth=1\)%
+ % Lundi de Paques
+ \or\(\theday=\thedayPaques \and \themonth=\themonthPaques\)%
+ % Fête du travail, le 1er mai
+ \or\(\theday=1 \and \themonth=5\)%
+ % Victoire 1945, le 8 mai
+ \or\(\theday=8 \and \themonth=5\)%
+ % Jeudi de l'ascension
+ \or\(\theday=\thedayAscension \and \themonth=\themonthAscension\)%
+ % Pont du vendredi de l'ascension
+ \or\(\theday=\thedayAscensionPont \and \themonth=\themonthAscension\)%
+ % Lundi de Pentecote
+ \or\(\theday=\thedayPentecote \and \themonth=\themonthPentecote\)%
+ % Fête Nationale, le 14 juillet
+ \or\(\theday=14 \and \themonth=7\)%
+ % Assomption, le 15 août
+ \or\(\theday=15 \and \themonth=8\)%
+ % Toussaint, le 1er novembre
+ \or\(\theday=1 \and \themonth=11\)%
+ % Armistice 1914-1918, le 11 novembre
+ \or\(\theday=11 \and \themonth=11\)%
+ % Noël, le 25 décembre
+ \or\(\theday=25 \and \themonth=12\)%
+ }{
+ \hfil $\star$Ferié$\star$%
+ }{}%
+}%
+%
+% Affichage de la semaine.%
+\newcommand{\getWeek}{%
+ \setcounter{friday}{\theday}%
+ \setcounter{frimonth}{\themonth}%
+ \setcounter{friyear}{\theyear}%
+ % Si le mois a 31 jours.%
+ % Les mois à 31 jours : Janvier, Mars, Mai, Juillet, Août, Octobre, Décembre%
+ \ifthenelse{\themonth=1 \or \themonth=3 \or \themonth=5 \or \themonth=7 \or \themonth=8 \or \themonth=10 \or \themonth=12}%
+ {%
+ % Alors si on est avant le 28 du mois, on ajoute 4 jours%
+ \ifthenelse{\theday < 28}%
+ {%
+ \addtocounter{friday}{4}%
+ }{%
+ % Sinon, on change de mois %
+ \stepcounter{frimonth}%
+ % Changement d'année pour décembre%
+ \ifthenelse{\themonth=12}{\stepcounter{friyear}}{}%
+ % Lundi 31 - Mar 1, Mer 2, Jeu 3, Ven 4%
+ \ifthenelse{\theday=31}{\setcounter{friday}{4}}{}%
+ % 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}}{}%
+ % Lundi 28 - Mar 29, Mer 30, Jeu 31, Ven 1%
+ \ifthenelse{\theday=28}{\setcounter{friday}{1}}{}%
+ }%
+ }{%
+ % Sinon, si on est au mois de février%
+ \ifthenelse{\themonth=2}%
+ {%
+ % Si le mois de février a 28 jours%
+ \ifthenelse{\theFinFevrier=28}%
+ {%
+ % Si on est avant le 25%
+ \ifthenelse{\theday < 25}%
+ {%
+ % Alors on ajoute 4 jours%
+ \addtocounter{friday}{4}%
+ }{%
+ % Sinon, on change de mois%
+ \stepcounter{frimonth}%
+ % Lundi 28 - Mar 1, Mer 2, Jeu 3, Ven 4%
+ \ifthenelse{\theday=28}{\setcounter{friday}{4}}{}%
+ % Lundi 27 - Mar 28, Mer 1, Jeu 2, Ven 3%
+ \ifthenelse{\theday=27}{\setcounter{friday}{3}}{}%
+ % Lundi 26 - Mar 27, Mer 28, Jeu 1, Ven 2%
+ \ifthenelse{\theday=26}{\setcounter{friday}{2}}{}%
+ % Lundi 25 - Mar 26, Mer 27, Jeu 28, Ven 1%
+ \ifthenelse{\theday=25}{\setcounter{friday}{1}}{}%
+ }%
+ }{%
+ % sinon le mois de février a 29 jours%
+ % si on est avant le 26%
+ \ifthenelse{\theday < 26}%
+ {%
+ % alors on ajoute 4 jours%
+ \addtocounter{friday}{4}%
+ }{%
+ % sinon, on change de mois%
+ \stepcounter{frimonth}%
+ % lundi 29 - mar 1, mer 2, jeu 3, ven 4%
+ \ifthenelse{\theday=29}{\setcounter{friday}{4}}{}%
+ % lundi 28 - mar 29, mer 1, jeu 2, ven 3%
+ \ifthenelse{\theday=28}{\setcounter{friday}{3}}{}%
+ % lundi 27 - mar 28, mer 29, jeu 1, ven 2%
+ \ifthenelse{\theday=27}{\setcounter{friday}{2}}{}%
+ % lundi 26 - mar 27, mer 28, jeu 29, ven 1%
+ \ifthenelse{\theday=26}{\setcounter{friday}{1}}{}%
+ }%
+ }%
+ }{%
+ % Sinon le mois a 30 jours%
+ % Les mois de 30 jours : Avril, Juin, Septembre, Novembre%
+ % Si on est avant le 27, on ajoute 4 jours%
+ \ifthenelse{\theday < 27}%
+ {%
+ \addtocounter{friday}{4}%
+ }{%
+ % Sinon, on change de mois%
+ \stepcounter{frimonth}%
+ % Lundi 30 - Mar 1, Mer 2, Jeu 3, Ven 4%
+ \ifthenelse{\theday=30}{\setcounter{friday}{4}}{}%
+ % Lundi 29 - Mar 30, Mer 1, Jeu 2, Ven 3%
+ \ifthenelse{\theday=29}{\setcounter{friday}{3}}{}%
+ % Lundi 28 - Mar 29, Mer 30, Jeu 1, Ven 2%
+ \ifthenelse{\theday=28}{\setcounter{friday}{2}}{}%
+ % Lundi 27 - Mar 28, Mer 29, Jeu 30, Ven 1%
+ \ifthenelse{\theday=27}{\setcounter{friday}{1}}{}%
+ }%
+ }%
+ }%
+ Du lundi \theday{}
+ \ifthenelse{\themonth=1}{janvier}{}%
+ \ifthenelse{\themonth=2}{février}{}%
+ \ifthenelse{\themonth=3}{mars}{}%
+ \ifthenelse{\themonth=4}{avril}{}%
+ \ifthenelse{\themonth=5}{mai}{}%
+ \ifthenelse{\themonth=6}{juin}{}%
+ \ifthenelse{\themonth=7}{juillet}{}%
+ \ifthenelse{\themonth=8}{août}{}%
+ \ifthenelse{\themonth=9}{septembre}{}%
+ \ifthenelse{\themonth=10}{octobre}{}%
+ \ifthenelse{\themonth=11}{novembre}{}%
+ \ifthenelse{\themonth=12}{décembre}{}
+ \theyear{}
+ au vendredi
+ \thefriday{}
+ \ifthenelse{\thefrimonth=1}{janvier}{}%
+ \ifthenelse{\thefrimonth=2}{février}{}%
+ \ifthenelse{\thefrimonth=3}{mars}{}%
+ \ifthenelse{\thefrimonth=4}{avril}{}%
+ \ifthenelse{\thefrimonth=5}{mai}{}%
+ \ifthenelse{\thefrimonth=6}{juin}{}%
+ \ifthenelse{\thefrimonth=7}{juillet}{}%
+ \ifthenelse{\thefrimonth=8}{août}{}%
+ \ifthenelse{\thefrimonth=9}{septembre}{}%
+ \ifthenelse{\thefrimonth=10}{octobre}{}%
+ \ifthenelse{\thefrimonth=11}{novembre}{}%
+ \ifthenelse{\thefrimonth=12}{décembre}{}
+ \thefriyear
+}%
+%
+% Affichage de la semaine
+\newcommand{\Semaine}
+{
+ & Lundi \getDate\nextday
+ & Mardi \getDate\nextday
+ & Mercredi \getDate\nextday
+ & Jeudi \getDate\nextday
+ & Vendredi \getDate\nextday
+}
+\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
+ }%
+}%
+%
+% 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.
+\newcommand{\sem}[2]%
+{
+ \pgfmathparse{int(mod(\n,2))}
+ \ifthenelse{\pgfmathresult=1}{#1}{#2}
+}%
+% Réaliser le tableau pour une classe
+% En argument:
+% - #1 : la classe.
+% - #2 la liste des élèves, séparée par des virgules (sauf le dernier).
+\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}
+ {
+ % 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
+ % 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}
+}%
+%
+% Réaliser les tableaux de classe.
+% \TableauClasse 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}}
+ % 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}
+{
+ %insère le fichier ListeEleves.tex s'il existe
+ \IfFileExists{ListeEleves.tex}{
+ \input{ListeEleves.tex}
+ }{
+ % Else : do nothing.
+ }
+ % Stocker le nom des élèves dans un fichier externe.
+ \newwrite\outputstream
+ \immediate\openout\outputstream=ListeEleves.tex
+}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Divers
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Pas d'indentation des paragraphes
+\setlength{\parindent}{0pt}
+%
+% Fin du package.
+\endinput