<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%% Informations gÃ©nÃ©rales
%% DerniÃ¨re modification le 2023-09-01 at 09:14
\NeedsTeXFormat{LaTeX2e}[1999/01/01]
\ProvidesPackage{cahierprof}
  [2023/09/01 v1.0 Les commandes pour le cahier Professeur]
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Chargement des extensions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\RequirePackage{geometry}
\RequirePackage{tabularx}
\RequirePackage{colortbl}
\RequirePackage{tikz}
  \usetikzlibrary{math}  
  \usetikzlibrary{calc}
\RequirePackage[babel=true,kerning=true]{microtype}
\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
\newcounter{day}
\newcounter{month}
\newcounter{year}
%
% Compteurs pour la rentrÃ©e
\newcounter{lundiRentree}
\newcounter{monthRentree}
\newcounter{yearRentree}
%
% Compteur pour la fin FÃ©vrier
\newcounter{FinFevrier}
%
% 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}
%
% Compteurs pour les Jours FÃ©riÃ©s 
\newcounter{dayPaques}
\newcounter{monthPaques}
\newcounter{dayAscension}
\newcounter{dayAscensionPont}
\newcounter{monthAscension}
\newcounter{dayPentecote}
\newcounter{monthPentecote}
%
% 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
% - \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 Du Lundi au Vendredi/Samedi
%
%%%% Passer au jour d'aprÃ¨s
\newcommand{\nextday}{%
  % Les mois Ã&nbsp; 30 jours : Avril, Juin, Septembre, Novembre
  % Les mois Ã&nbsp; 31 jours : Janvier, Mars, Mai, Juillet, AoÃ»t, Octobre, DÃ©cembre
  % FÃ©vrier Ã&nbsp; \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 Ã&nbsp; 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}{%
    \ifthenelse{\thedayToussaintFin=0}{%
      % 15 jours de vacances, bien mÃ©ritÃ©s !
      \foreach \jour in {1,...,16}{\nextday}%
    }{%
      \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}%
      }{%
        \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}%
        }{%
          \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%
        }%
      }%
    }%
  }%
}%
%%%% 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 PÃ¢ques
    \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 PentecÃ´te
    \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\)%
  }{%
    \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&gt;\thedayDNBDebut\)
    \and\(\theday&lt;\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&gt;\thedayBacDebut\)
    \and\(\theday&lt;\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&gt;\thedayGODebut\)
    \and\(\theday&lt;\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{dayRemember}{\theday}%
  \setcounter{monthRemember}{\themonth}%
  \setcounter{yearRemember}{\theyear}%
  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 
  \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[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 Ã&nbsp; 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 jour de la rentrÃ©e
% - #2 Le Mois de la rentrÃ©e
% - #3 L'annÃ©ede la rentrÃ©e
\newcommand{\setLundiRentree}[3]%
{%
  \setcounter{lundiRentree}{#1}%
  \setcounter{monthRentree}{#2}%
  \setcounter{yearRentree}{#3}%
  % Gestion des annÃ©es bissextiles.
  \setcounter{year}{\theyearRentree}
  % Si la rentrÃ©e est aprÃ¨s la fin de FÃ©vrier, alors on prend en compte l'annÃ©e
  % suivante.
  \ifthenelse{\themonthRentree&gt;2}{\stepcounter{year}}{}
  % Est-ce que l'annÃ©e est bissextile?%
  \pgfmathparse{int(mod(\theyear,4))}%
  \ifthenelse{\pgfmathresult&gt;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&gt;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&gt;0}%
      {%
        \setcounter{FinFevrier}{28}%
      }{%
        % else (it is a leap year)%
        \setcounter{FinFevrier}{29}%
      }%
    }%
  }%
}%
%%%% 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]%
{%
  \setcounter{dayToussaint}{#1}%
  \setcounter{monthToussaint}{#2}%
}%
%%%% DÃ©finir le dÃ©but des vacances de Noel
\newcommand{\setDebutNoel}[2]%
{%
  \setcounter{dayNoel}{#1}%
  \setcounter{monthNoel}{#2}%
}%
%%%% DÃ©finir le dÃ©but des vacances d'hiver
\newcommand{\setDebutHiver}[2]%
{%
  \setcounter{dayHiver}{#1}%
  \setcounter{monthHiver}{#2}%
}%
%%%% DÃ©finir le dÃ©but des vacances de Printemps
\newcommand{\setDebutPrintemps}[2]%
{%
  \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]%
{%
  \setcounter{dayPaques}{#1}%
  \setcounter{monthPaques}{#2}%
}%
%%%% Trouver les dates des jours fÃ©riÃ©s variables 
\newcommand{\setJoursFeries}{%
  \ifthenelse{\thedayPaques=0}{
    \setcounter{year}{\theyearRentree}%
    \stepcounter{year}%
    % 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}%
  }{}
  % 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 PentecÃ´te = 10 jours aprÃ¨s le vendredi de l'ascension
  \foreach \jour in {1,...,10}{\nextday}%
  \setcounter{dayPentecote}{\theday}%
  \setcounter{monthPentecote}{\themonth}%
  % Remettre la date au jour de la rentrÃ©e
  \setcounter{day}{\thelundiRentree}%
  \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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - \Semaine : afficher la premiÃ¨re ligne du tableau du cahier de texte (Lundi
%   day/month, Mardi day/month, etc)
%
%%%% Affichage de la semaine
\newcommand{\Semaine}%
{%
  &amp; Lundi \getDate\nextday%
  &amp; Mardi \getDate\nextday%
  &amp; Mercredi \getDate\nextday%
  &amp; Jeudi \getDate\nextday%
  &amp; Vendredi \getDate\nextday%
  \ifthenelse{\boolean{Samedi}}{&amp; Samedi\ \getDate}{}%
}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Liste des macros pour l'emploi du temps
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - \setNombreSemaines[1] : dÃ©finir le nombre N de semaines Ã&nbsp; afficher.
% - \EmploiDuTemps[1]     : afficher N fois le tableau #1,
% - \sem[2]               : SÃ©ances bimensuelle.
%
%%% Nombre de semaine Ã&nbsp; afficher 
% #1 est le nombre N de semaines Ã&nbsp; afficher.
% Si \setSemaines n'est pas utilisÃ©, alors N=36 semaines.
\newcounter{nombreSemaines}
\newcommand{\setNombreSemaines}[1]%
{%
    \setcounter{nombreSemaines}{#1}
}%
%%%% Affichage de l'emploi du temps
\newcommand{\EmploiDuTemps}[1]%
{%
  \setJoursFeries%
  \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%
    \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}%
    \vfil%
    \hfil \weekend \hfil%
    \newpage%
  }%
}%
%
%%%% SÃ©ance bimestrielle
% -\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))}%
  \ifthenelse{\pgfmathresult=1}{#1}{#2}%
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Liste des macros pour les tableaux des classes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - \TableauClasse : Afficher un tableau pour la classe.
% - \Classe        : Afficher 8 tableaux de classe.
% - \ListeEleves   : InsÃ¨re la liste des Ã©lÃ¨ves 
%
%%%% RÃ©aliser un tableau pour une classe
% TableauClasse a deux arguments:
% - #1 : la classe.
% - #2 la liste des Ã©lÃ¨ves, sÃ©parÃ©e par des virgules (sauf le dernier).
\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} 
    &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \\}
  }%
  \rowcolors[\hline]{2}{lightgray}{white}%
  \begin{tabularx}{\linewidth}{|l|*{20}{X|}}% 
    {\Large\strut #1} &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; &amp; \\
    \tabledata%
  \end{tabularx}%
}%
\makeatother
%
%%%% RÃ©aliser les tableaux de classe.
% \Classe 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 Ã&nbsp; 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{\string \subsection*{#1}}%
  \immediate\write\outputstream{\string \begin{enumerate}}%
    % Ã‰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} \\[.5cm]%
  }%
\end{center}%
\newpage%
}%
%
%%%% Liste des Ã©lÃ¨ves
% \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}[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%
}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Divers 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pas d'indentation des paragraphes
\setlength{\parindent}{0pt}
%
% Fin du package.
\endinput
</pre></body></html>