From 59b528f442538943e1d34291a905464d987035ee Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 3 Sep 2023 03:01:00 +0000 Subject: CTAN sync 202309030300 --- macros/latex/contrib/cahierprof/ListeEleves.tex | 32 -- macros/latex/contrib/cahierprof/cahierprof-doc.pdf | Bin 282687 -> 293047 bytes macros/latex/contrib/cahierprof/cahierprof-doc.tex | 197 +++++-- .../contrib/cahierprof/cahierprof-exemple.pdf | Bin 220954 -> 268264 bytes .../contrib/cahierprof/cahierprof-exemple.tex | 40 +- macros/latex/contrib/cahierprof/cahierprof.sty | 604 ++++++++++++--------- .../latex/contrib/nicematrix/nicematrix-code.dtx | 123 +++-- .../latex/contrib/nicematrix/nicematrix-code.pdf | Bin 939983 -> 940839 bytes .../latex/contrib/nicematrix/nicematrix-french.pdf | Bin 584003 -> 588214 bytes .../latex/contrib/nicematrix/nicematrix-french.tex | 74 ++- macros/latex/contrib/nicematrix/nicematrix.pdf | Bin 602607 -> 604351 bytes macros/latex/contrib/nicematrix/nicematrix.tex | 74 ++- 12 files changed, 720 insertions(+), 424 deletions(-) delete mode 100644 macros/latex/contrib/cahierprof/ListeEleves.tex (limited to 'macros') diff --git a/macros/latex/contrib/cahierprof/ListeEleves.tex b/macros/latex/contrib/cahierprof/ListeEleves.tex deleted file mode 100644 index cc5c2adffc..0000000000 --- a/macros/latex/contrib/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/macros/latex/contrib/cahierprof/cahierprof-doc.pdf b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf index e3b174888d..a29b127ec9 100644 Binary files a/macros/latex/contrib/cahierprof/cahierprof-doc.pdf and b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf differ diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.tex b/macros/latex/contrib/cahierprof/cahierprof-doc.tex index 338ddb0b24..19d5795a1e 100644 --- a/macros/latex/contrib/cahierprof/cahierprof-doc.tex +++ b/macros/latex/contrib/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{}| permet d'insérer le +contenu du \texttt{}. 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/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf index 24d975ecdf..2330ab5ddd 100644 Binary files a/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf and b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf differ diff --git a/macros/latex/contrib/cahierprof/cahierprof-exemple.tex b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex index f1f80b8f01..887f4cb004 100644 --- a/macros/latex/contrib/cahierprof/cahierprof-exemple.tex +++ b/macros/latex/contrib/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/macros/latex/contrib/cahierprof/cahierprof.sty b/macros/latex/contrib/cahierprof/cahierprof.sty index ad0469ff25..6bebfdb9a4 100644 --- a/macros/latex/contrib/cahierprof/cahierprof.sty +++ b/macros/latex/contrib/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% }% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.dtx b/macros/latex/contrib/nicematrix/nicematrix-code.dtx index 39677ce108..9a4e6cc863 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-code.dtx +++ b/macros/latex/contrib/nicematrix/nicematrix-code.dtx @@ -17,8 +17,8 @@ % % \fi % \iffalse -\def\myfileversion{6.22} -\def\myfiledate{2023/08/14} +\def\myfileversion{6.23} +\def\myfiledate{2023/09/02} % % %<*batchfile> @@ -331,6 +331,9 @@ version 2005/12/01 or later. % % the command |\G| takes in an arbitrary number of optional arguments between % square brackets. +% +% Be careful: that command is \emph{not} ``fully expandable'' (because of +% |\peek_meaning:NTF|). % % \bigskip % \begin{macrocode} @@ -4945,37 +4948,43 @@ version 2005/12/01 or later. { \str_if_eq:nnTF { #1 } | { \@@_patch_preamble_iii:n | } + { + \str_if_eq:nnTF { #1 } [ + { \@@_patch_preamble_iii_ii:nw { } [ } + { \@@_patch_preamble_iii_ii:nw { #1 } [ ] } + } + } +% \end{macrocode} +% +% \begin{macrocode} +\cs_new_protected:Npn \@@_patch_preamble_iii_ii:nw #1 [ #2 ] + { + \@@_compute_rule_width:n { multiplicity = \l_tmpa_int , #2 } + \tl_gput_right:Nx \g_@@_preamble_tl { - \dim_set:Nn \l_tmpa_dim - { - \arrayrulewidth * \l_tmpa_int - + \doublerulesep * ( \l_tmpa_int - 1) - } - \tl_gput_right:Nx \g_@@_preamble_tl - { % \end{macrocode} % Here, the command |\dim_eval:n| is mandatory. % \begin{macrocode} - \exp_not:N ! { \skip_horizontal:n { \dim_eval:n { \l_tmpa_dim } } } - } - \tl_gput_right:Nx \g_@@_pre_code_after_tl + \exp_not:N ! { \skip_horizontal:n { \dim_eval:n { \l_@@_rule_width_dim } } } + } + \tl_gput_right:Nx \g_@@_pre_code_after_tl + { + \@@_vline:n { - \@@_vline:n - { - position = \int_eval:n { \c@jCol + 1 } , - multiplicity = \int_use:N \l_tmpa_int , - total-width = \dim_use:N \l_tmpa_dim - } + position = \int_eval:n { \c@jCol + 1 } , + multiplicity = \int_use:N \l_tmpa_int , + total-width = \dim_use:N \l_@@_rule_width_dim , + #2 + } % \end{macrocode} % We don't have provided value for |start| nor for |end|, which means that the % rule will cover (potentially) all the rows of the array. % % \begin{macrocode} - } - \int_zero:N \l_tmpa_int - \str_if_eq:nnT { #1 } { \q_stop } { \bool_gset_true:N \g_tmpb_bool } - \@@_patch_preamble:n #1 } + \int_zero:N \l_tmpa_int + \str_if_eq:nnT { #1 } { \q_stop } { \bool_gset_true:N \g_tmpb_bool } + \@@_patch_preamble:n #1 } % \end{macrocode} % @@ -9405,7 +9414,12 @@ version 2005/12/01 or later. middle = \exp_not:n { #6 } } } - \prg_replicate:nn { #2 - 1 } { & \multicolumn { 1 } { c } { } } + \prg_replicate:nn { #2 - 1 } + { + & + \multicolumn { 1 } { c } { } + \cs_set_eq:NN \CodeAfter \@@_CodeAfter_i: % added 2023-08-26 + } } } % \end{macrocode} @@ -11350,7 +11364,7 @@ version 2005/12/01 or later. { \peek_meaning:NTF \Hline { \@@_Hline_ii:nn { #1 + 1 } } - { \@@_Hline_iii:n { #1 } } + { \@@_Hline_iii:n { #1 } } } } % \end{macrocode} @@ -11360,16 +11374,13 @@ version 2005/12/01 or later. % \end{macrocode} % % \begin{macrocode} -\cs_set:Npn \@@_Hline_iii:n #1 - { - \peek_meaning:NTF [ - { \@@_Hline_iv:nw { #1 } } - { \@@_Hline_iv:nw { #1 } [ ] } - } +\cs_set:Npn \@@_Hline_iii:n #1 + { \@@_collect_options:n { \@@_Hline_iv:nn { #1 } } } % \end{macrocode} +% % % \begin{macrocode} -\cs_set:Npn \@@_Hline_iv:nw #1 [ #2 ] +\cs_set:Npn \@@_Hline_iv:nn #1 #2 { \@@_compute_rule_width:n { multiplicity = #1 , #2 } \skip_vertical:n { \l_@@_rule_width_dim } @@ -11994,10 +12005,14 @@ version 2005/12/01 or later. \keys_set:nn { NiceMatrix / NiceMatrixBlock } { #1 } \bool_if:NT \l_@@_block_auto_columns_width_bool { - \cs_if_exist:cT { @@_max_cell_width_ \int_use:N \g_@@_NiceMatrixBlock_int } + \cs_if_exist:cT + { @@_max_cell_width_ \int_use:N \g_@@_NiceMatrixBlock_int } { - \exp_args:NNc \dim_set:Nn \l_@@_columns_width_dim - { @@_max_cell_width _ \int_use:N \g_@@_NiceMatrixBlock_int } + \exp_args:NNx \dim_set:Nn \l_@@_columns_width_dim + { + \use:c + { @@_max_cell_width _ \int_use:N \g_@@_NiceMatrixBlock_int } + } } } } @@ -12010,20 +12025,29 @@ version 2005/12/01 or later. % the counter |\l_@@_first_env_block_int|). % \begin{macrocode} { - \bool_if:NT \l_@@_block_auto_columns_width_bool + \legacy_if:nTF { measuring@ } +% \end{macrocode} +% If |{NiceMatrixBlock}| is used in an environment of \pkg{amsmath} such as +% |{align}|: cf. question 694957 on TeX StackExchange. The most important line +% in that case is the following one. +% \begin{macrocode} + { \int_gdecr:N \g_@@_NiceMatrixBlock_int } { - \iow_shipout:Nn \@mainaux \ExplSyntaxOn - \iow_shipout:Nx \@mainaux - { - \cs_gset:cpn - { @@ _ max _ cell _ width _ \int_use:N \g_@@_NiceMatrixBlock_int } + \bool_if:NT \l_@@_block_auto_columns_width_bool + { + \iow_shipout:Nn \@mainaux \ExplSyntaxOn + \iow_shipout:Nx \@mainaux + { + \cs_gset:cpn + { @@ _ max _ cell _ width _ \int_use:N \g_@@_NiceMatrixBlock_int } % \end{macrocode} % For technical reasons, we have to include the width of a potential rule on the % right side of the cells. % \begin{macrocode} - { \dim_eval:n { \g_@@_max_cell_width_dim + \arrayrulewidth } } + { \dim_eval:n { \g_@@_max_cell_width_dim + \arrayrulewidth } } + } + \iow_shipout:Nn \@mainaux \ExplSyntaxOff } - \iow_shipout:Nn \@mainaux \ExplSyntaxOff } \ignorespacesafterend } @@ -12434,8 +12458,6 @@ version 2005/12/01 or later. % |\NewExpandableDocumentCommand| because it has an optional argument between % |<| and |>|. It's mandatory to use an expandable command. % -% -% % \begin{macrocode} \cs_new_protected:Npn \@@_Block: { \@@_collect_options:n { \@@_Block_i: } } % \end{macrocode} @@ -13146,7 +13168,7 @@ version 2005/12/01 or later. \tl_gput_right:Nx \g_nicematrix_code_after_tl { \@@_stroke_block:nnn - { \exp_not:n { #5 } } + { \exp_not:n { #5 } } % #5 are the options { #1 - #2 } { \int_use:N \l_@@_last_row_int - \int_use:N \l_@@_last_col_int } } @@ -15314,7 +15336,7 @@ version 2005/12/01 or later. footnotehyper,~ messages-for-Overleaf,~ no-test-for-array,~ - renew-dots,~and + renew-dots,~and~ renew-matrix. } % \end{macrocode} @@ -15897,11 +15919,18 @@ version 2005/12/01 or later. % \end{macrocode} % % \begin{macrocode} -\@@_msg_new:nn { width~without~X~columns } +\@@_msg_new:nnn { width~without~X~columns } { You~have~used~the~key~'width'~but~you~have~put~no~'X'~column.~ That~key~will~be~ignored. } + { + This~message~is~the~message~'width~without~X~columns'~ + of~the~module~'nicematrix'.~ + The~experimented~users~can~disable~that~message~with~ + \token_to_str:N \msg_redirect_name:nnn.\\ + } + % \end{macrocode} % % \begin{macrocode} diff --git a/macros/latex/contrib/nicematrix/nicematrix-code.pdf b/macros/latex/contrib/nicematrix/nicematrix-code.pdf index 9f6fdcb2d2..558543af0d 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix-code.pdf and b/macros/latex/contrib/nicematrix/nicematrix-code.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf index ffb5945c23..786f5acc72 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix-french.pdf and b/macros/latex/contrib/nicematrix/nicematrix-french.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex index cbb86d0723..688885eee9 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.tex +++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex @@ -1070,6 +1070,7 @@ Il reste néanmoins possible de définir un spécificateur, nommé par exemple + \subsubsection{La commande \textbackslash cline} \label{remark-cline} @@ -1222,7 +1223,38 @@ En particulier, cette remarque explique la différence entre la commande standar La commande |\Hline| admet entre crochets un argument optionnel qui est une liste de couples \textsl{clé=valeur} qui décrivent un filet. Pour la description -de ces clés, voir |custom-line| p.~\pageref{custom-line}. +de ces clés, voir |custom-line| p.~\pageref{custom-line}.\footnote{Remarque + technique. Si l'utilisateur définit une commande par-dessus la commande + |\Hline|, il doit veiller à ce qu'elle soit \emph{développable} au sens de + TeX (en utilisant |\NewExpandableDocumentCommand| de LaTeX3, |\newcommand| de + LaTeX ou même |\def| de TeX). Exemple : + |\newcommand{\RedLine}{\Hline{color=red}}|} + +\bigskip +\colorbox{yellow!50}{\textbf{Nouveau 6.23}}\enskip + +De même que la commande |\Hline|, le specificateur «\verb+|+» admet entre crochets +des options qui caractérisent le filet à tracer. + +\medskip +\begin{BVerbatim}[baseline=c,boxwidth=10cm] +\begin{NiceTabular}{|c~emphase#|[color=blue]@c|} +\Hline +a & b \\ +~emphase#\Hline[color=red]@ +c & d \\ +\Hline +\end{NiceTabular} +\end{BVerbatim} +% +\begin{NiceTabular}{|c|[color=blue]c|} +\Hline +a & b \\ +\Hline[color=red] +c & d \\ +\Hline +\end{NiceTabular} + \medskip \subsubsection{Les clés hlines et vlines} @@ -1682,10 +1714,14 @@ $\begin{pNiceArray}{cccc:c} \end{pNiceArray}$ \end{itemize} + + + + \index{custom-line|)} \index{Filets@\textbf{Filets dans les tableaux}|)} -\section{Les couleurs des rangées et des colonnes} +\section{Les couleurs de fond des rangées et des colonnes} \index{Couleur!de fond pour les cases} @@ -3063,6 +3099,10 @@ x & \Ldots & & & & x L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes) horizontalement mais aussi verticalement. +\medskip +Attention : la clé |nullify-dots| a un nom qui peut prêter à confusion ; elle +n'implique pas que la ligne en pointillés ne sera pas tracée ! + \subsection{Les commandes \textbackslash Hdotsfor et \textbackslash Vdotsfor} @@ -3121,7 +3161,9 @@ commande |\Hdotsfor| est utilisable même lorsque l'extension \pkg{colortbl}\footnote{On rappelle que lorsque l'extension \pkg{xcolor} est chargée avec l'option |table|, l'extension \pkg{colortbl} est chargée.} est chargée (mais vous risquez d'avoir des problèmes si vous utilisez -|\rowcolor| sur la même rangée que |\Hdotsfor|). +|\rowcolor| sur la même rangée que |\Hdotsfor|). Néanmoins, dans le cadre de +\pkg{nicematrix}, on conseille de ne pas utiliser \pkg{colortbl} mais d'utiliser +les outils de nicematrix pour le coloriage des tableaux. \medskip L'extension \pkg{nicematrix} propose aussi une commande |\Vdotsfor| similaire à @@ -3229,7 +3271,7 @@ mathématique avec |\scriptstyle|. \smallskip \colorbox{yellow!50}{\textbf{Nouveau 6.22}}\enskip La version 6.22 introduit un -nouveau label spécifié par le caractère~«|:|» pour un label situé sur la ligne +nouveau label spécifié par le caractère~«|:|» pour un label situé \emph{sur} la ligne elle-même. Ce label est en fait composé sur un fond blanc qui est superposé sur la ligne en pointillés (voir un exemple p.~\pageref{ex:colon}). @@ -3431,7 +3473,7 @@ $\begin{bNiceMatrix}[margin,hvlines] \index{Pointillés@\textbf{Pointillés (lignes en ---)}|)} -\section{Délimiteurs dans le préambule de l'environnement} +\subsection{Délimiteurs dans le préambule de l'environnement} \index{blkarray@\pkg{blkarray} (extension)} @@ -4194,9 +4236,8 @@ sont marqués). Il est possible de désactiver cette fonctionnalité avec la cl \item Il est possible de référencer une note de tableau (avec la commande |\label| placée après le |\tabularnote|). -\item \colorbox{yellow!50}{\textbf{Nouveau 6.19}} La commande |\tabularnote| -admet un argument optionnel (entre crochets) qui permet de changer le symbole de -l'appel de note. +\item La commande |\tabularnote| admet un argument optionnel (entre crochets) +qui permet de changer le symbole de l'appel de note. \emph{Exemple} : |\tabularnote[$\star$]{Une note...}|. \end{itemize} @@ -5862,10 +5903,11 @@ p.~\pageref{corners}) risque d'être erronée dans certaines circonstances. \medskip L'extension \pkg{nicematrix} n'est pas parfaitement compatible avec l'extension \pkg{arydshln} (parce que cette extension redéfinit de nombreuses commandes -internes de \pkg{array}). De toutes manières, dans le cadre de \pkg{nicematrix}, -il est conseillé de tracer les filets en tiretés avec les commandes de -\pkg{nicematrix} en créant un style de ligne personnalisé avec |custom-line| : -cf.~p.~\pageref{custom-line}. +internes de \pkg{array}) et les colonnes |V| de l'extension \pkg{boldline} ne +sont pas prises en charge (car la lettre |V| est réservée pour les colonnes |V| +de \pkg{varwidth}). De toutes manières, \pkg{nicematrix} fournit, avec la clé +|custom-line| (cf. partie \ref{custom-line}, p.~\pageref{custom-line}) des +outils pour définir des filets en tiretés ou de différentes épaisseurs. \medskip Les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en compte (mais @@ -6240,8 +6282,7 @@ pointillées (TikZ doit être chargé). 1& & & \Vdots & & & & \Vdots \\ & \Ddots[line-style=standard] \\ & & 1 \\ -\Cdots[color=blue,line-style=dashed]& & & \blue 0 & -\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ +\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ & & & & 1 \\ & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\ & & & & & & 1 \\ @@ -6264,8 +6305,7 @@ pointillées (TikZ doit être chargé). 1& & & \Vdots & & & & \Vdots \\ & \Ddots[line-style=standard] \\ & & 1 \\ -\Cdots[color=blue,line-style=dashed]& & & \blue 0 & -\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ +\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ & & & & 1 \\ & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\ & & & & & & 1 \\ @@ -7052,7 +7092,7 @@ Le document |nicematrix.pdf| (fourni avec l'extension \pkg{nicematrix}) contient une traduction anglaise de la documentation ici présente ainsi qu'un historique des versions. -Le document |nicematrix-code.pdf| (fourni également avec l'extension \pkg{nicematrix} +Le document |nicematrix-code.pdf| (fourni également avec l'extension \pkg{nicematrix}) contient le code LaTeX commenté (à partir du fichier |nicematrix-code.dtx|). \medskip diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf index 9bfc22dfcd..1c8fbe1e24 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix.pdf and b/macros/latex/contrib/nicematrix/nicematrix.pdf differ diff --git a/macros/latex/contrib/nicematrix/nicematrix.tex b/macros/latex/contrib/nicematrix/nicematrix.tex index 77c4e8d9f9..b2da527927 100644 --- a/macros/latex/contrib/nicematrix/nicematrix.tex +++ b/macros/latex/contrib/nicematrix/nicematrix.tex @@ -1185,7 +1185,39 @@ command |\hline| and the command |\Hline| provided by \pkg{nicematrix}. The key |\Hline| takes in an optional argument (between square brackets) which is a list of \textsl{key=value} pairs. For the description of those keys, see -|custom-line| on p.~\pageref{custom-line}. +|custom-line| on p.~\pageref{custom-line}.\footnote{Technical remark: If the + user wants to write a command over the command |\Hline|, it shall be ensured + that this new command is expandable in the TeX sens (by using, for instance, + |\NewExpandableDocumentCommand| of LaTeX3, |\newcommand| of LaTeX or |\def| of + TeX). Example: |\newcommand{\RedLine}{\Hline[color=red]}|} + + +\bigskip +\colorbox{yellow!50}{\textbf{New 6.23}}\enskip + +As well as the command |\Hline|, the specifier ``\verb+|+'' supports a optional +argument between square brackets for the characteristics of the rule. + +\medskip +\begin{BVerbatim}[baseline=c,boxwidth=10cm] +\begin{NiceTabular}{|c~emphase#|[color=blue]@c|} +\Hline +a & b \\ +~emphase#\Hline[color=red]@ +c & d \\ +\Hline +\end{NiceTabular} +\end{BVerbatim} +% +\begin{NiceTabular}{|c|[color=blue]c|} +\Hline +a & b \\ +\Hline[color=red] +c & d \\ +\Hline +\end{NiceTabular} + + \subsubsection{The keys hlines and vlines} @@ -1637,7 +1669,7 @@ $\left(\begin{NiceArray}{cccc:c} \index{Rules@\textbf{Rules in the tabulars}|)} -\section{The color of the rows and columns} +\section{The color of the background of the rows and columns} \index{Colour!of the cells} @@ -2992,6 +3024,10 @@ x & \Ldots & & & & x The option |nullify-dots| smashes the instructions |\Ldots| (and the variants) horizontally but also vertically. +\medskip +Caution : the key |nullify-dots| has a name that may be confusing; that key does +not imply that the dotted rules won't be drawn! + \subsection{The commands \textbackslash Hdotsfor and \textbackslash Vdotsfor} @@ -3049,7 +3085,9 @@ Remark: Unlike the command |\hdotsfor| of \pkg{amsmath}, the command |\Hdotsfor| may be used even when the package \pkg{colortbl}\footnote{We recall that when \pkg{xcolor} is loaded with the option |table|, the package \pkg{colortbl} is loaded.} is loaded (but you might have problem if -you use |\rowcolor| on the same row as |\Hdotsfor|). +you use |\rowcolor| on the same row as |\Hdotsfor|). However, when using +\pkg{nicematrix}, it's recommended to use the coloring tools provided by +\pkg{nicematrix} instead of \pkg{colortbl}. \bigskip The package \pkg{nicematrix} also provides a command |\Vdotsfor| similar to @@ -4102,9 +4140,8 @@ same argument in the caption of the tabular.} \item It's possible to create a reference to a tabular note created by |\tabularnote| (with the usual command |\label| used after the |\tabularnote|). -\item \colorbox{yellow!50}{\textbf{New 6.19}} The command |\tabularnote| has an -optional argument (between square brackets) to change the symbol of the -reference of the note. +\item The command |\tabularnote| has an optional argument (between square +brackets) to change the symbol of the reference of the note. \emph{Example}: |\tabularnote[$\star$]{A footnote...}| \end{itemize} @@ -5746,10 +5783,12 @@ may be wrong in some circonstances. \bigskip The package \pkg{nicematrix} is not fully compatible with the package -\pkg{arydshln} (because this package redefines many internals of \pkg{array}). -By any means, in the context of \pkg{nicematrix}, it's recommended to draw -dashed rules with the tools provided by \pkg{nicematrix}, by creating a -customized line style with |custom-line|: cf.~p.~\pageref{custom-line}. +\pkg{arydshln} (because this package redefines many internals of \pkg{array}) +and does support the columns~|V| of \pkg{boldline} (because the letter |V| is +reserved for the columns~|V| of \pkg{varwidth}). By any means, \pkg{nicematrix} +provides, with the key |custom-line| (cf. part~\ref{custom-line}, +p.~\pageref{custom-line}), tools to draw dashed rules and rules of different +widths. \bigskip The columns |d| of \pkg{dcolumn} are not supported (but it's possible to use @@ -6116,8 +6155,7 @@ not longer dotted (TikZ should be loaded). 1& & & \Vdots & & & & \Vdots \\ & \Ddots[line-style=standard] \\ & & 1 \\ -\Cdots[color=blue,line-style=dashed]& & & \blue 0 & -\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ +\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ & & & & 1 \\ & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\ & & & & & & 1 \\ @@ -6141,8 +6179,7 @@ not longer dotted (TikZ should be loaded). 1& & & \Vdots & & & & \Vdots \\ & \Ddots[line-style=standard] \\ & & 1 \\ -\Cdots[color=blue,line-style=dashed]& & & \blue 0 & -\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ +\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\ & & & & 1 \\ & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\ & & & & & & 1 \\ @@ -6188,7 +6225,7 @@ $\begin{pNiceArray}{ccc|cc}[first-row,last-col,margin] \interitem \label{ex:colon} -If you want the lable \emph{on the line}, you should use the special token~``|:|'': +If you want the label \emph{on the line}, you should use the special token~``|:|'': \begin{Verbatim} \NiceMatrixOptions{xdots={horizontal-labels,line-style = <->}} @@ -6924,6 +6961,13 @@ The successive versions of the file |nicematrix.sty| provided by TeXLive are ava \nolinkurl{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty} } +\subsection*{Changes between version 6.22 and 6.23} + +The specifier ``\verb+|+'' in the preambles of the environments has now an +optional argument. + +Correction of several bugs. + \subsection*{Changes between version 6.21 and 6.22} Key |opacity| for the command |\Block|. -- cgit v1.2.3