diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-02 20:07:46 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-02 20:07:46 +0000 |
commit | 020bf6deb3c4586bb3f1b994918a42e789816242 (patch) | |
tree | 519d7b4655047587a8842cde20dc65614591eab7 | |
parent | 62d8a847df7fb51ac49488369b07f10d4e89d13b (diff) |
cahierprof (2sep23)
git-svn-id: svn://tug.org/texlive/trunk@68148 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/ListeEleves.tex | 32 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf | bin | 282687 -> 293047 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.tex | 197 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.pdf | bin | 220954 -> 268264 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.tex | 40 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty | 604 |
6 files changed, 528 insertions, 345 deletions
diff --git a/Master/texmf-dist/doc/latex/cahierprof/ListeEleves.tex b/Master/texmf-dist/doc/latex/cahierprof/ListeEleves.tex deleted file mode 100644 index cc5c2adffc0..00000000000 --- a/Master/texmf-dist/doc/latex/cahierprof/ListeEleves.tex +++ /dev/null @@ -1,32 +0,0 @@ -Seconde -\begin{enumerate} -\item Élève Seconde 1 -\item Élève Seconde 2 -\item Élève Seconde 3 -\item Élève Seconde 4 -\item Élève Seconde 5 -\end{enumerate} -Première G -\begin{enumerate} -\item Élève Première 1 -\item Élève Première 2 -\item Élève Première 3 -\item Élève Première 4 -\item Élève Première 5 -\end{enumerate} -1 STMG -\begin{enumerate} -\item Élève STMG 1 -\item Élève STMG 2 -\item Élève STMG 3 -\item Élève STMG 4 -\item Élève STMG 5 -\end{enumerate} -2 euro -\begin{enumerate} -\item Élève Euro 1 -\item Élève Euro 2 -\item Élève Euro 3 -\item Élève Euro 4 -\item Élève Euro 5 -\end{enumerate} diff --git a/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf Binary files differindex e3b174888dc..a29b127ec9a 100644 --- a/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.pdf +++ 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 index 338ddb0b246..19d5795a1e3 100644 --- a/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.tex +++ b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-doc.tex @@ -5,6 +5,7 @@ \usepackage{tcolorbox} \usepackage[framemethod=TikZ]{mdframed} \usepackage{minted} +\usepackage{xcolor} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % En tête du document @@ -15,13 +16,13 @@ \title{ cahierprof.sty\\ - Un cahier de textes pour les professeurs en \LaTeX{} + Un cahier de textes en \LaTeX{} pour les professeurs } \author{ Raphaël Giromini\\ \texttt{raphael.giromini -- at -- gmail.com} } -\date{Version 0.92 -- 10 août 2023} +\date{Version 1.0 -- 1er septembre 2023} \setminted{frame=single,linenos,numbersep=6pt} @@ -42,7 +43,27 @@ constitué de deux éléments: \item un tableau des élèves répartis par classe (pour les absences et/ou les notes). \end{itemize} +Merci à Frédéric Bréal pour ses conseils, ses idées et ses relectures attentives +du package. +\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 Possibilité d'utiliser un fichier personnel dans la commande + \mintinline{latex}|\ListeEleves|. + \item Création des commandes \mintinline{latex}|\setFin|\texttt{*}, où + \texttt{*} correspond à \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} + +\section*{Versions antérieures} \subsection*{Nouveautés de la version 0.92} \begin{itemize} @@ -66,7 +87,7 @@ constitué de deux éléments: automatiquement. \end{itemize} - +\vfil \begin{center} \begin{minipage}{.8\linewidth} \begin{tcolorbox}[colback=white, colframe=green!75!black] @@ -74,16 +95,17 @@ constitué de deux éléments: \end{tcolorbox} \end{minipage} \end{center} +\vfil +\newpage -\section{ - Calendrier des semaines de cours -- - commande \texttt{\textbackslash{}EmploiDuTemps} -} +\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. +\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 4 septembre 2023 \setLundiRentree{4}{9}{2023} @@ -97,7 +119,7 @@ l'exemple ci-dessous: \EmploiDuTemps{ % & Lundi & Mardi & Mercr. & Jeudi & Vend. \\ 8h & & 1G & & 1G & \\ [1.5cm] \cline{1-2}\cline{4-6} - 9h & & & 1STMG & 1STMG & \\ [1.5cm] \hline + 9h & & & TSTMG & TSTMG & \\ [1.5cm] \hline 10h & 1G & 2nde & 1G & & \\ [1.5cm] \hline 11h & & & 2nde A.P. & & 1G \\ [1.5cm] \hline\hline 13h30 & & 1G & & & 2nde \\ [1.5cm] \cline{1-5} @@ -117,6 +139,35 @@ nombre entier de semaines. \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 à +sept colonnes +\begin{minted}{latex} +% Déclaration du samedi (sans utiliser l'option du package) +\setSamedi +% Emploi du temps sur sept colonnes. +\EmploiDuTemps{ + % & Lundi & Mardi & Merc. & Jeudi & Vend. & Sam. \\ + 8h & & 1G & & 1G & & \\ [1.5cm] \cline{1-2}\cline{4-7} + 9h & & & TSTMG & TSTMG & & \\ [1.5cm] \hline + 10h & 1G & 2nde & 1G & & & 2nde \\ [1.5cm] \cline{1-6} + 11h & & & 2nde A.P. & & 1G & \\ [1.5cm] \hline\hline + 13h30 & & 1G & & & & \\ [1.5cm] \hline + 14h30 & & & 1G A/B & & & \\ [1.5cm] \hline + 15h30 & & & 2 euro & & & \\ [1.5cm] \hline + 16h30 & & & & & & \\ [1.5cm] \hline +} +\end{minted} + \subsection{Séance bimestrielles -- commande \texttt{\textbackslash{}sem}} Certaines séances sont bimestriels (tous les 15 jours), suivant la parité de la @@ -133,10 +184,11 @@ deux arguments: la séance en semaine impair, puis la séance en semaine pair. \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). Chacune -de ces petites vacances dure 15 jours. Selon les zones (et les années) il faut -définir en préambule le premier samedi de chaque vacances. - +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 forme \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{21}{10} @@ -144,6 +196,68 @@ définir en préambule le premier samedi de chaque vacances. \setDebutHiver{10}{2} \setDebutPrintemps{6}{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. Pour ces jours, la date sera sur fond vert et la +mention \colorbox{green}{$\star$DNB$\star$} sera ajoutée après la date. +\begin{minted}{latex} +% Le DNB a lieu les 24 et 25 juin. +\setDNB{24}{25}{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} +Pour ces jours, la date sera sur fond vert et la mention +\colorbox{green}{$\star$Bac$\star$} ou bien \colorbox{green}{$\star$GO$\star$} +sera ajoutée après la date. +\begin{minted}{latex} +% Les épreuves finales du bac ont lieu du 18 au 20 mars +\setBac{18}{20}{3} +% L'épreuve de philosophie a lieu le 11 juin +\setBacPhilo{11}{6} +% L'épreuve de français a lieu le 12 jun +\setBacFrancais{12}{6} +% Le Grand Oral a lieu du 17 au 28 juin +\setGO{17}{28}{6} +\end{minted} + + \subsection{Gestion des jours fériés} @@ -151,21 +265,19 @@ 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. Pour ces jours, La date sera sur fond gris et la -mention $\star$Ferié$\star$ sera ajoutée après la date. - -La date du lundi de Pâques est variable chaque l'année, de même pour le jeudi de -l'ascension et le lundi de Pentecôte. 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 ce package, la date du lundi de Pâques est définie (jusqu'à l'année -2040) par celle du calendrier grégorien occidental (la date utilisée par -l'éducation nationale). Cependant, si l'on souhaite entrer une autre date, on -peut utiliser 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.\\ +mention \colorbox{lightgray}{$\star$Férié$\star$} sera ajoutée après la date. + +La date du lundi de Pâques est définie par celle du calendrier grégorien +occidental (la date 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. +automatiquement calculées à partir de la date du lundi de Pâques. \begin{minted}{latex} % Et si le lundi de Pâques était un 17 mars ? @@ -176,7 +288,8 @@ automatiquement calculées. \texttt{\textbackslash{}Classe}} La commande \mintinline{latex}|\Classe| permet de générer des tableaux -d'appels des classes. Cette commande prend trois arguments: +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; @@ -184,7 +297,7 @@ d'appels des classes. Cette commande prend trois arguments: \end{itemize} Par exemple: \begin{minted}{latex} -% La classe de seconde a 3 séances dans la semaine +% La classe de seconde a 4 séances dans la semaine \Classe{Seconde}{4}{ Élève Seconde 1, Élève Seconde 2, @@ -202,21 +315,25 @@ Par exemple: } \end{minted} -\subsection{Liste des élèves} +\subsection{Liste des élèves -- commande \texttt{\textbackslash{}ListeEleves}} -La commande \mintinline{latex}|\ListeEleves| va va créer 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 à -compiler deux fois). +La commande \mintinline{latex}|\ListeEleves{<fichier>}| permet d'insérer le +contenu du \texttt{<fichier>}. 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 à compiler deux fois). -% \begin{minted}{latex} -% % Liste des élèves, sauvée dans le fichier ListeEleves.tex, -% % créée à partir des \Classe{}{}{}. Penser à compiler deux fois. -% \ListeEleves -% \end{minted} +\begin{minted}{latex} +% Liste des élèves, sauvée dans le fichier ListeEleves.tex, +% créée à partir des \Classe{}{}{}. Penser à compiler deux fois. +\ListeEleves{} +\end{minted} \section{Un exemple complet} +L'exemple ci-dessous du cahier de texte est compilé dans +\texttt{cahierprof-exemple.pdf} + \inputminted{latex}{cahierprof-exemple.tex} \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 differindex 24d975ecdf0..2330ab5ddd4 100644 --- a/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.pdf +++ 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 index f1f80b8f017..887f4cb0047 100644 --- a/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.tex +++ b/Master/texmf-dist/doc/latex/cahierprof/cahierprof-exemple.tex @@ -14,13 +14,13 @@ \title{ cahierprof-exemple.tex\\ - Utilisation du cahier de textes pour les professeurs en \LaTeX{} + Utilisation du cahier de textes en \LaTeX{} pour les professeurs } \author{ Raphaël Giromini\\ \texttt{raphael.giromini -- at -- gmail.com} } -\date{Version 0.92 -- 10 août 2023} +\date{Version 1.0 -- 1er septembre 2023} % 1er lundi de l'année scolaire (pour le cahier de texte) \setLundiRentree{4}{9}{2023} @@ -29,6 +29,17 @@ \setDebutNoel{23}{12} \setDebutHiver{10}{2} \setDebutPrintemps{6}{4} +% Les examens +% Le DNB a lieu les 24 et 25 juin. +% \setDNB{24}{25}{6} +% Les épreuves finales du bac ont lieu du 18 au 20 mars +\setBac{18}{20}{3} +% L'épreuve de philosophie a lieu le 11 juin +\setBacPhilo{11}{6} +% L'épreuve de français a lieu le 12 jun +\setBacFrancais{12}{6} +%Le Grand Oral a lieu du 17 au 28 juin +\setGO{17}{28}{6} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Début du document @@ -39,16 +50,21 @@ \section{Calendrier des semaines de cours} -Le calendrier débute sur la page suivante au format paysage. +Exemple du cahier de texte à partir de l'exemple complet de +\texttt{cahierprof-doc.tex} + +Le cahier de texte débute sur la page suivante au format paysage. % Emploi du temps au format tableau (tabularx). \begin{landscape} \EmploiDuTemps{ % & Lundi & Mardi & Merc. & Jeudi & Vend. \\ - 8h & & 1G & & 1G & \\ [1.5cm] \cline{1-2}\cline{4-6} - 9h & & & 1STMG & 1STMG & \\ [1.5cm] \hline + 8h & & 1G & & 1G & \\ [1.5cm] + \cline{1-2}\cline{4-6} + 9h & & & TSTMG & TSTMG & \\ [1.5cm] \hline 10h & 1G & 2nde & 1G & & \\ [1.5cm] \hline - 11h & & & \sem{2nde A.P.}{} & & 1G \\ [1.5cm] \hline\hline + 11h & & & \sem{2nde A.P.}{} & & 1G \\ [1.5cm] + \hline\hline 13h30 & & 1G & & & 2nde \\ [1.5cm] \cline{1-5} 14h30 & & & 1G (Groupe~\sem{A}{B}) & & \\ [1.5cm] \hline 15h30 & & & 2 euro & & \\ [1.5cm] \hline @@ -60,16 +76,18 @@ Le calendrier débute sur la page suivante au format paysage. \subsection{Liste des élèves} -\ListeEleves +Affiche la liste des élèves et la sauve dans le fichier par défaut +\texttt{ListeEleves.tex}. +\ListeEleves{} \newpage \subsection{Tableaux des classes} -% \Classe{Nom de la classe}{Nombre de séances dans la semaine}{Liste des élèves -% séparés par une virgule} +% \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} +\Classe{Seconde}{4} { Élève Seconde 1, Élève Seconde 2, @@ -87,7 +105,7 @@ Le calendrier débute sur la page suivante au format paysage. Élève Première 5 } -\Classe{1 STMG}{2} +\Classe{T STMG}{2} { Élève STMG 1, Élève STMG 2, diff --git a/Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty b/Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty index ad0469ff25f..6bebfdb9a4a 100644 --- a/Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty +++ b/Master/texmf-dist/tex/latex/cahierprof/cahierprof.sty @@ -1,13 +1,8 @@ %% Informations générales -%% Dernière modification le 2023-08-10 at 16:16 +%% Dernière modification le 2023-09-01 at 09:14 \NeedsTeXFormat{LaTeX2e}[1999/01/01] \ProvidesPackage{cahierprof} - [2023/08/10 v0.92 Les commandes pour le cahier Professeur] -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Options du package commande -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Pas d'options + [2023/09/01 v1.0 Les commandes pour le cahier Professeur] % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Chargement des extensions @@ -22,6 +17,15 @@ \RequirePackage{ifthen} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Options +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Option samedi pour un emploi du temps du lundi au samedi +\newboolean{Samedi} +\setboolean{Samedi}{false} +\DeclareOption{samedi}{\setboolean{Samedi}{true}} +\ProcessOptions +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Définitions des compteurs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Compteurs day/month/year pour la date courante @@ -34,6 +38,9 @@ \newcounter{monthRentree} \newcounter{yearRentree} % +% Compteur pour la fin Février +\newcounter{FinFevrier} +% % Compteurs pour les vacances scolaires % Toussaint \newcounter{dayToussaint} @@ -55,7 +62,8 @@ \newcounter{monthPrintemps} \newcounter{dayPrintempsFin} \newcounter{monthPrintempsFin} -% Jours Feriés +% +% Compteurs pour les Jours Fériés \newcounter{dayPaques} \newcounter{monthPaques} \newcounter{dayAscension} @@ -64,93 +72,130 @@ \newcounter{dayPentecote} \newcounter{monthPentecote} % -% Définition de nouveaux compteurs pour Vendredi Jour/Mois/Année -\newcounter{friday} -\newcounter{frimonth} -\newcounter{friyear} +% Compteurs pour les Examens +\newcounter{dayDNBDebut} +\newcounter{dayDNBFin} +\newcounter{monthDNB} +\newcounter{dayBacDebut} +\newcounter{dayBacFin} +\newcounter{monthBac} +\newcounter{dayBacPhilo} +\newcounter{monthBacPhilo} +\newcounter{dayBacFrancais} +\newcounter{monthBacFrancais} +\newcounter{dayGODebut} +\newcounter{dayGOFin} +\newcounter{monthGO} +% +% Définition de compteurs pour gérer l'affichage de la semaine (\getWeek) +\newcounter{dayRemember} +\newcounter{monthRemember} +\newcounter{yearRemember} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Commande pour un calendrier du lundi au samedi +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% - \setSamedi : Déclare le samedi dans l'emploi du temps. +\newcommand{\setSamedi}{% + \setboolean{Samedi}{true}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Liste des macros pour le calendrier. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - \nextday : pour passer au jour d'après -% - \weekend : pour passer les week-ends ou les vacances scolaires +% - \weekend : pour passer les week-ends ou les vacances scolaires +% - \isFerie : Si le jour est ferié alors, on affiche *Férié* +% - \isExamen: Si le jour est un jour d'examen, on affiche *Examen* % - \getdate : afficher la date au format day/month/year -% - \getWeek : afficher la semaine au format +% - \getWeek : afficher la semaine au format Du Lundi au Vendredi/Samedi % %%%% Passer au jour d'après -\newcommand{\nextday}% -{% +\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\)\) + \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 + {% + % 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{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 + }{% + % Sinon, on augmente juste le compteur jour% \stepcounter{day}% }% }% %%%% Gestions des vacances et week-end -\newcommand{\weekend}{ +\newcommand{\weekend}{% % Vacances de Toussaint - \ifthenelse{ \theday=\thedayToussaint \and \themonth=\themonthToussaint} - { - % 15 jours de vacances, bien mérités ! - \foreach \jour in {1,...,16}{\nextday} - Vacances de la Toussaint - }{ - % Vacances de Noël - \ifthenelse{ \theday=\thedayNoel \and \themonth=\themonthNoel} - { + \ifthenelse{\theday=\thedayToussaint \and \themonth=\themonthToussaint}{% + \ifthenelse{\thedayToussaintFin=0}{% % 15 jours de vacances, bien mérités ! \foreach \jour in {1,...,16}{\nextday}% - Vacances de Noël - }{ - % Vacances d'Hiver - \ifthenelse{ \theday=\thedayHiver \and \themonth=\themonthHiver} - { + }{% + \setcounter{day}{\thedayToussaintFin}% + \setcounter{month}{\themonthToussaintFin}% + }% + Vacances de la Toussaint% + }{% + % Vacances de Noël + \ifthenelse{\theday=\thedayNoel \and \themonth=\themonthNoel}{% + \ifthenelse{\thedayNoelFin=0}{% % 15 jours de vacances, bien mérités ! \foreach \jour in {1,...,16}{\nextday}% - Vacances d'hiver - }{ - % Vacances de Printemps - \ifthenelse{ \theday=\thedayPrintemps \and \themonth=\themonthPrintemps} - { + }{% + \setcounter{day}{\thedayNoelFin}% + \setcounter{month}{\themonthNoelFin}% + }% + Vacances de Noël% + }{ + % Vacances d'Hiver + \ifthenelse{\theday=\thedayHiver \and \themonth=\themonthHiver}{% + \ifthenelse{\thedayHiverFin=0}{% % 15 jours de vacances, bien mérités ! \foreach \jour in {1,...,16}{\nextday}% - Vacances de printemps + }{% + \setcounter{day}{\thedayHiverFin}% + \setcounter{month}{\themonthHiverFin}% + }% + Vacances d'hiver% + }{ + % Vacances de Printemps + \ifthenelse{\theday=\thedayPrintemps \and \themonth=\themonthPrintemps}{% + \ifthenelse{\thedayPrintempsFin=0}{% + % 15 jours de vacances, bien mérités ! + \foreach \jour in {1,...,16}{\nextday}% + }{% + \setcounter{day}{\thedayPrintempsFin}% + \setcounter{month}{\themonthPrintempsFin}% + }% + Vacances de printemps% }{ % sinon c'est juste un week-end - \nextday\nextday + \nextday\nextday% }% }% }% }% -} -%%%% Obtenir la date -\newcommand{\getDate}{% - % On affiche la date - \theday/\themonth/\theyear% - % On affiche $\star$Ferié$\star$ si le jour est ferié. +}% +%%%% Gestion des jours fériés +\newcommand{\isFerie}{% + % On affiche $\star$Ferié$\star$ si le jour est férié. \ifthenelse{% % Jour de l'an, 1er janvier \(\theday=1 \and \themonth=1\)% - % Lundi de Paques + % Lundi de Pâques \or\(\theday=\thedayPaques \and \themonth=\themonthPaques\)% % Fête du travail, le 1er mai \or\(\theday=1 \and \themonth=5\)% @@ -160,7 +205,7 @@ \or\(\theday=\thedayAscension \and \themonth=\themonthAscension\)% % Pont du vendredi de l'ascension \or\(\theday=\thedayAscensionPont \and \themonth=\themonthAscension\)% - % Lundi de Pentecote + % Lundi de Pentecôte \or\(\theday=\thedayPentecote \and \themonth=\themonthPentecote\)% % Fête Nationale, le 14 juillet \or\(\theday=14 \and \themonth=7\)% @@ -172,103 +217,67 @@ \or\(\theday=11 \and \themonth=11\)% % Noël, le 25 décembre \or\(\theday=25 \and \themonth=12\)% - }{ - \cellcolor[gray]{.9} \hfil $\star$Ferié$\star$% + }{% + \cellcolor[gray]{.9} \hfil % + \ifthenelse{\boolean{Samedi}}{\tiny $\star$Férié$\star$}{$\star$Férié$\star$} + }{}% +}% +\newcommand{\isExamen}{% + % Les jours du DNB + \ifthenelse{% + \(\theday=\thedayDNBDebut \or \theday>\thedayDNBDebut\) + \and\(\theday<\thedayDNBFin \or \theday=\thedayDNBFin\) + \and \themonth=\themonthDNB% + }{% + \cellcolor{green} \hfil % + \ifthenelse{\boolean{Samedi}}{\tiny $\star$DNB$\star$}{$\star$DNB$\star$} + }{}% + % Les jours du Bac + \ifthenelse{% + \(\theday=\thedayBacDebut \or \theday>\thedayBacDebut\) + \and\(\theday<\thedayBacFin \or \theday=\thedayBacFin\) + \and \themonth=\themonthBac% + }{% + \cellcolor{green} \hfil % + \ifthenelse{\boolean{Samedi}}{\tiny $\star$Bac$\star$}{$\star$Bac$\star$} + }{}% + % Le jour du Bac Philo + \ifthenelse{\theday=\thedayBacPhilo \and \themonth=\themonthBacPhilo} + {% + \cellcolor{green} \hfil % + \ifthenelse{\boolean{Samedi}}{\tiny $\star$Bac$\star$}{$\star$Bac$\star$} + }{}% + % Le jour du Bac Français + \ifthenelse{\theday=\thedayBacFrancais \and \themonth=\themonthBacFrancais} + {% + \cellcolor{green} \hfil % + \ifthenelse{\boolean{Samedi}}{\tiny $\star$Bac$\star$}{$\star$Bac$\star$} + }{}% + % Les jours du GO + \ifthenelse{% + \(\theday=\thedayGODebut \or \theday>\thedayGODebut\) + \and\(\theday<\thedayGOFin \or \theday=\thedayGOFin\) + \and \themonth=\themonthGO% + }{% + \cellcolor{green} \hfil % + \ifthenelse{\boolean{Samedi}}{\tiny $\star$GO$\star$}{$\star$GO$\star$} }{}% }% +%%%% Obtenir la date +\newcommand{\getDate}{% + % On affiche la date + \theday/\themonth/\theyear% + % Est-ce que le jour \theday/\themonth est férié? + \isFerie% + % Est-ce que le jour \theday/\themonth est un jour d'examen? + \isExamen% +}% % %%%% 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}{2}}{}% - % 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}}{}% - }% - }% - }% + \setcounter{dayRemember}{\theday}% + \setcounter{monthRemember}{\themonth}% + \setcounter{yearRemember}{\theyear}% Du lundi \theday{} \ifthenelse{\themonth=1}{janvier}{}% \ifthenelse{\themonth=2}{février}{}% @@ -283,38 +292,52 @@ \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 + au + \nextday\nextday\nextday\nextday% + \ifthenelse{\boolean{Samedi}}{samedi\nextday}{vendredi} + \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 + \setcounter{day}{\thedayRemember}% + \setcounter{month}{\themonthRemember}% + \setcounter{year}{\theyearRemember}% }% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Liste des macros pour les jours spéciaux %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% - \setLundiRentree : définir le lundi de rentrée au format DD-MM-YYYY -% - \setDebutToussaint : définir le début (samedi) des vacances de Toussaint -% - \setDebutNoel : définir le début (samedi) des vacances de Noel -% - \setDebutHiver : définir le début (samedi) des vacances d'hiver -% - \setDebutPrintemps : définir le début (samedi) des vacances de Printemps -% - \setLundiPaques : définir le lundi de Paques au format DD-MM-YYYY -% - \setJoursFeries : définir les dates de l'ascension, du pont de +% - \setLundiRentree[3] : définir le lundi de rentrée au format DD-MM-YYYY +% - \setDebutToussaint[2] : définir le début (samedi) des vacances de Toussaint +% - \setDebutNoel[2] : définir le début (samedi) des vacances de Noel +% - \setDebutHiver[2] : définir le début (samedi) des vacances d'hiver +% - \setDebutPrintemps[2] : définir le début (samedi) des vacances de Printemps +% - \setFinToussaint[2] : définir la fin (lundi) des vacances de Toussaint +% - \setFinNoel[2] : définir la fin (lundi) des vacances de Noel +% - \setFinHiver[2] : définir la fin (lundi) des vacances d'hiver +% - \setFinPrintemps[2] : définir la fin (lundi) des vacances de Printemps +% - \setLundiPaques[2] : définir le lundi de Pâques au format DD-MM +% - \setJoursFeries : définir les dates de l'ascension, du pont de % l'ascension et de la Pentecôte à partir de la date du lundi de Pâques. +% - \setDNB[3] : Définir les dates de début et fin des épreuves du DNB +% - \setBac[3] : Définir les dates de début et fin des épreuves du Bac +% - \setBacPhilo[2] : Définir le jour du Bac philo +% - \setBacFrancais[2] : Définir le jour du Bac français +% - \setGO[3] : Définir les dates de début et fin du Grand Oral % %%%% Définir le lundi de la rentrée % \setLundiRentree a 3 arguments : -% - #1 Le jourde la rentrée +% - #1 Le jour de la rentrée % - #2 Le Mois de la rentrée % - #3 L'annéede la rentrée \newcommand{\setLundiRentree}[3]% @@ -324,8 +347,9 @@ \setcounter{yearRentree}{#3}% % Gestion des années bissextiles. \setcounter{year}{\theyearRentree} - \stepcounter{year} - \newcounter{FinFevrier}% + % Si la rentrée est après la fin de Février, alors on prend en compte l'année + % suivante. + \ifthenelse{\themonthRentree>2}{\stepcounter{year}}{} % Est-ce que l'année est bissextile?% \pgfmathparse{int(mod(\theyear,4))}% \ifthenelse{\pgfmathresult>0}% @@ -351,9 +375,9 @@ }% }% }% -%%%% Définir le début des vacances de Toussaint -% Les commandes \set*Vacances* ont 2 arguments : -% - #1 Le jourde la rentrée +%%%% Définir le début des vacances de Toussaint, de noël, d'hiver et de printemps +% Les commandes \setDebut*Vacances* ont 2 arguments : +% - #1 Le jour de la rentrée % - #2 Le Mois de la rentrée \newcommand{\setDebutToussaint}[2]% {% @@ -378,6 +402,30 @@ \setcounter{dayPrintemps}{#1}% \setcounter{monthPrintemps}{#2}% }% +%%%% Définir la fin des vacances de Toussaint, de noël, d'hiver et de printemps +% Les commandes \setFin*Vacances* ont 2 arguments : +% - #1 Le jour de la rentrée +% - #2 Le Mois de la rentrée +\newcommand{\setFinToussaint}[2]% +{% + \setcounter{dayToussaintFin}{#1}% + \setcounter{monthToussaintFin}{#2}% +}% +\newcommand{\setFinNoel}[2]% +{% + \setcounter{dayNoelFin}{#1}% + \setcounter{monthNoelFin}{#2}% +}% +\newcommand{\setFinHiver}[2]% +{% + \setcounter{dayHiverFin}{#1}% + \setcounter{monthHiverFin}{#2}% +}% +\newcommand{\setFinPrintemps}[2]% +{% + \setcounter{dayPrintempsFin}{#1}% + \setcounter{monthPrintempsFin}{#2}% +}% %%%% Définir le Lundi de Paques \newcommand{\setLundiPaques}[2]% {% @@ -386,41 +434,42 @@ }% %%%% Trouver les dates des jours fériés variables \newcommand{\setJoursFeries}{% - % Si \setLundiPaques n'est pas utilisé (valable jusqu'en 2040)... - \ifthenelse{\equal{\thedayPaques}{0}}% - {% + \ifthenelse{\thedayPaques=0}{ \setcounter{year}{\theyearRentree}% \stepcounter{year}% - \ifthenelse{\equal{\theyear}{2024}}{\setcounter{dayPaques}{1}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2025}}{\setcounter{dayPaques}{21}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2026}}{\setcounter{dayPaques}{6}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2027}}{\setcounter{dayPaques}{29}\setcounter{monthPaques}{3}}{} - \ifthenelse{\equal{\theyear}{2028}}{\setcounter{dayPaques}{17}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2029}}{\setcounter{dayPaques}{2}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2030}}{\setcounter{dayPaques}{22}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2031}}{\setcounter{dayPaques}{14}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2032}}{\setcounter{dayPaques}{29}\setcounter{monthPaques}{3}}{} - \ifthenelse{\equal{\theyear}{2033}}{\setcounter{dayPaques}{18}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2034}}{\setcounter{dayPaques}{10}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2035}}{\setcounter{dayPaques}{26}\setcounter{monthPaques}{3}}{} - \ifthenelse{\equal{\theyear}{2036}}{\setcounter{dayPaques}{14}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2037}}{\setcounter{dayPaques}{6}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2038}}{\setcounter{dayPaques}{26}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2039}}{\setcounter{dayPaques}{11}\setcounter{monthPaques}{4}}{} - \ifthenelse{\equal{\theyear}{2040}}{\setcounter{dayPaques}{2}\setcounter{monthPaques}{4}}{} - \setcounter{year}{\theyearRentree}% + % Calcul du Dimanche de Pâques, par la méthode de Butcher-Meeus. + \tikzmath{% + \n=int(mod(\theyear,19)); % cycle de Méton + \c=int(div(\theyear,100)); % centaine l'année + \u=int(mod(\theyear,100)); % rang de l'année + \s=int(div(\c,4)); % siècle bissextile + \t=int(mod(\c,4)); % siècle bissextile + \p=int(div(\c+8,25)); % cycle de proemptose + \q=int(div(\c-\p+1,3)); % proemptose + \e=int(mod(19*\n+\c-\s-\q+15,30)); % épacte + \b=int(div(\u,4)); % année bissextile + \d=int(mod(\u,4)); % année bissextile + \LL=int(mod(2*\t+2*\b-\e-\d+32,7)); % lettre dominicale + \h=int(div(\n+11*\e+22*\LL,451)); % correction + \m=int(div(\e+\LL-7*\h+114,31)); % mois du dimanche de Pâques + \j=int(mod(\e+\LL-7*\h+114,31)+1); % jour du dimanche de Pâques + }% + % Dimanche de Pâques + \setcounter{day}{\j}% + \setcounter{month}{\m}% + % lundi de Pâques, immédiatement après le dimanche de Pâques. + \nextday% + \setcounter{dayPaques}{\theday}% + \setcounter{monthPaques}{\themonth}% }{} - % On fixe la date au lundi de Pâques - \setcounter{day}{\thedayPaques}% - \setcounter{month}{\themonthPaques}% - % Jeudi de l'ascension = 38 jours après le lundi de Paques + % Jeudi de l'ascension = 38 jours après le lundi de Pâques \foreach \jour in {1,...,38}{\nextday}% \setcounter{dayAscension}{\theday}% \setcounter{monthAscension}{\themonth}% % Vendredi, pont de l'ascension \nextday% \setcounter{dayAscensionPont}{\theday}% - % Lundi de Pentecote = 10 jours après le vendredi de l'ascension + % Lundi de Pentecôte = 10 jours après le vendredi de l'ascension \foreach \jour in {1,...,10}{\nextday}% \setcounter{dayPentecote}{\theday}% \setcounter{monthPentecote}{\themonth}% @@ -429,6 +478,39 @@ \setcounter{month}{\themonthRentree}% \setcounter{year}{\theyearRentree}% }% +%%%% Définir le début et la fin du DNB +\newcommand{\setDNB}[3]% +{% + \setcounter{dayDNBDebut}{#1}% + \setcounter{dayDNBFin}{#2}% + \setcounter{monthDNB}{#3}% +}% +%%%% Définir le début et la fin du Bac +\newcommand{\setBac}[3]% +{% + \setcounter{dayBacDebut}{#1}% + \setcounter{dayBacFin}{#2}% + \setcounter{monthBac}{#3}% +}% +%%%% Définir le jour du Bac Philo +\newcommand{\setBacPhilo}[2]% +{% + \setcounter{dayBacPhilo}{#1}% + \setcounter{monthBacPhilo}{#2}% +}% +%%%% Définir le jour du Bac Français +\newcommand{\setBacFrancais}[2]% +{% + \setcounter{dayBacFrancais}{#1}% + \setcounter{monthBacFrancais}{#2}% +}% +%%%%%%% Définir le début et la fin du Grand Oral +\newcommand{\setGO}[3]% +{% + \setcounter{dayGODebut}{#1}% + \setcounter{dayGOFin}{#2}% + \setcounter{monthGO}{#3}% +}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Liste des macros pour l'affichage de la semaine %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -443,14 +525,15 @@ & Mercredi \getDate\nextday% & Jeudi \getDate\nextday% & Vendredi \getDate\nextday% + \ifthenelse{\boolean{Samedi}}{& Samedi\ \getDate}{}% }% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Liste des macros pour l'emploi du temps %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - \setNombreSemaines[1] : définir le nombre N de semaines à afficher. -% - \EmploiDuTemps[1] : afficher N fois le tableau #1, -% - \sem[2] : Séances bimensuelle. +% - \EmploiDuTemps[1] : afficher N fois le tableau #1, +% - \sem[2] : Séances bimensuelle. % %%% Nombre de semaine à afficher % #1 est le nombre N de semaines à afficher. @@ -464,17 +547,22 @@ \newcommand{\EmploiDuTemps}[1]% {% \setJoursFeries% - \ifthenelse{\equal{\thenombreSemaines}{0}}% - {% + \ifthenelse{\thenombreSemaines=0}% + {% Si \setNombreSemaines n'est pas défini, on affiche 36 semaines \tikzmath{\NbSem=int(36);}% - }{% + }{% Sinon, on affiche le nombre de semaines demandées. \tikzmath{\NbSem=int(\thenombreSemaines);}% }% \foreach \n in {1,...,\NbSem}% {% {\Large\textsc{Semaine \no\n{} --- \getWeek}}% \vfil% - \begin{tabularx}{\linewidth}{|c||X|X|X|X|X|} \hline% + \ifthenelse{\boolean{Samedi}}% + { + \begin{tabularx}{\linewidth}{|c||X|X|X|X|X|X|} \hline% + }{ + \begin{tabularx}{\linewidth}{|c||X|X|X|X|X|} \hline% + } \Semaine \\ \hline% #1% \end{tabularx}% @@ -485,8 +573,9 @@ }% % %%%% Séance bimestrielle -% Affiche #1 si le numéro de la semaine est impair. -% Affiche #2 si le numéro de la semaine est pair. +% -\sem[2] affiche les seances bimestrielles: +% Affiche #1 si le numéro de la semaine est impair. +% Affiche #2 si le numéro de la semaine est pair. \newcommand{\sem}[2]% {% \pgfmathparse{int(mod(\n,2))}% @@ -503,30 +592,21 @@ % TableauClasse a deux arguments: % - #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}% +\makeatletter +\newcommand{\TableauClasse}[2]{% + \def\tabledata{}% reset \tabledata + \foreach[count=\n] \NomPrenom in {#2}{% build table data from #1 + \protected@xappto\tabledata{{\tiny\n. \NomPrenom} + & & & & & & & & & & & & & & & & & & & & \\} + }% + \rowcolors[\hline]{2}{lightgray}{white}% + \begin{tabularx}{\linewidth}{|l|*{20}{X|}}% + {\Large\strut #1} & & & & & & & & & & & & & & & & & & & & \\ + \tabledata% + \end{tabularx}% }% +\makeatother +% %%%% Réaliser les tableaux de classe. % \Classe a 3 arguments: % - #1 : la classe @@ -535,40 +615,40 @@ % Il y a 20 colonnes par tableaux. Il faut à peu près 2 tableaux pour faire 36 % 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}% +\newcommand{\Classe}[3]{% + \immediate\write\outputstream{\string \subsection*{#1}}% \immediate\write\outputstream{\string \begin{enumerate}}% - % Ecrire les noms des élèves dans le bon fichier - \foreach \i in {#3}% - {% + % Écrire 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}% - \newpage% +\immediate\write\outputstream{\string \end{enumerate}}% +\begin{center}% + \tikzmath{\NbTableaux=2*#2;}% + \foreach \i in {1,...,\NbTableaux}% + {% + \TableauClasse{#1}{#3} \\[.5cm]% + }% +\end{center}% +\newpage% }% % %%%% Liste des élèves -% \ListeEleves va créer un fichier ListeEleves.tex qui contient la liste des +% \ListeEleves a 1 argument : +% Si #1 est défini, alors il insère la liste des élèves +% Sinon, il va créer un fichier ListeEleves.tex qui contient la liste des % élèves puis insère le fichier (compiler deux fois, comme \tableofcontents). -\newcommand{\ListeEleves}% -{% - %insère le fichier ListeEleves.tex s'il existe - \IfFileExists{ListeEleves.tex}{% - \input{ListeEleves.tex}% - }{% - % Else : do nothing.% - }% +\newcommand{\ListeEleves}[1]{% + \ifthenelse{\equal{#1}{}}{% + % S'il n'y a pas de fichier défini, on insère ListeEleves.tex + \IfFileExists{ListeEleves.tex}{\input{ListeEleves.tex}}{}% + }{ + % Sinon, on utilise le fichier #1 (s'il existe) + \IfFileExists{#1}{\input{#1}}{}% + } % Stocker le nom des élèves dans un fichier externe. \newwrite\outputstream% - \immediate\openout\outputstream=ListeEleves.tex + \immediate\openout\outputstream=ListeEleves.tex% }% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |