diff options
author | Karl Berry <karl@freefriends.org> | 2023-08-06 19:57:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-08-06 19:57:44 +0000 |
commit | 0d631e74cb19efb28bdca18f247bbf016e5e3590 (patch) | |
tree | 66a9f1a4ca331f4528312c7c7d526ef249f1f834 /Master/texmf-dist | |
parent | 5d8f533b73e3821d64edc7e31335eeea8480a104 (diff) |
cahierprof (6aug23)
git-svn-id: svn://tug.org/texlive/trunk@67826 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/ListeEleves.tex | 32 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/README.md | 17 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf | bin | 0 -> 289363 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.tex | 350 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.pdf | bin | 0 -> 158682 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.tex | 149 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty | 455 |
7 files changed, 1003 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/cahierprof/ListeEleves.tex b/Master/texmf-dist/doc/latex/cahierprof/ListeEleves.tex new file mode 100644 index 00000000000..6b8ecd25eba --- /dev/null +++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/cahierprof/README.md b/Master/texmf-dist/doc/latex/cahierprof/README.md new file mode 100644 index 00000000000..508f6c638c8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf Binary files differnew file mode 100644 index 00000000000..187febaf51a --- /dev/null +++ b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf diff --git a/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.tex b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.tex new file mode 100644 index 00000000000..6f180bdeeed --- /dev/null +++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.pdf b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.pdf Binary files differnew file mode 100644 index 00000000000..3401a99650e --- /dev/null +++ b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.pdf diff --git a/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.tex b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.tex new file mode 100644 index 00000000000..1aa79418553 --- /dev/null +++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty b/Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty new file mode 100644 index 00000000000..59850eef8f1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/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 |