summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-09-03 03:01:00 +0000
committerNorbert Preining <norbert@preining.info>2023-09-03 03:01:00 +0000
commit59b528f442538943e1d34291a905464d987035ee (patch)
tree0fb48c2b46c38d12136b50e9d94d612ad46669d3 /macros
parent98a037aca7cbdaf681bc3fa10cbcdbbe52570599 (diff)
CTAN sync 202309030300
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/cahierprof/ListeEleves.tex32
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-doc.pdfbin282687 -> 293047 bytes
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-doc.tex197
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-exemple.pdfbin220954 -> 268264 bytes
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof-exemple.tex40
-rw-r--r--macros/latex/contrib/cahierprof/cahierprof.sty604
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-code.dtx123
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-code.pdfbin939983 -> 940839 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin584003 -> 588214 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex74
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin602607 -> 604351 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.tex74
12 files changed, 720 insertions, 424 deletions
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
--- a/macros/latex/contrib/cahierprof/cahierprof-doc.pdf
+++ b/macros/latex/contrib/cahierprof/cahierprof-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/cahierprof/cahierprof-doc.tex b/macros/latex/contrib/cahierprof/cahierprof-doc.tex
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{<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/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf
index 24d975ecdf..2330ab5ddd 100644
--- a/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf
+++ b/macros/latex/contrib/cahierprof/cahierprof-exemple.pdf
Binary files differ
diff --git a/macros/latex/contrib/cahierprof/cahierprof-exemple.tex b/macros/latex/contrib/cahierprof/cahierprof-exemple.tex
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
--- a/macros/latex/contrib/nicematrix/nicematrix-code.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index ffb5945c23..786f5acc72 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files 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
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files 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|.