From e2dfc4cc8dc03d323073de46903005e3a9d12255 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Thu, 20 Aug 2020 03:01:54 +0000
Subject: CTAN sync 202008200301

---
 .../latex/contrib/nicematrix/nicematrix-french.tex | 304 ++++++++++++++++-----
 1 file changed, 231 insertions(+), 73 deletions(-)

(limited to 'macros/latex/contrib/nicematrix/nicematrix-french.tex')

diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index bd13654d0d..7ea4ab69f8 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -10,7 +10,7 @@
 \usepackage{nicematrix}
 
 \usepackage{tikz}
-\usetikzlibrary{fit}
+\usetikzlibrary{fit,patterns}
 
 
 \usepackage{enumitem}
@@ -300,7 +300,7 @@ Dans l'exemple suivant, on utilise l'option |t| (synonyme de |baseline=t|)
 immédiatement après un |\item| de liste. On remarquera que la présence d'un
 |\hline| initial n'empêche pas l'alignement sur la ligne de base de la première
 rangée (avec |{tabular}| ou |{array}| de \pkg{array}, il faut utiliser
-|\firsthline|.
+|\firsthline|).
 
 \smallskip
 \begin{BVerbatim}[baseline=c,boxwidth=9cm]
@@ -367,6 +367,39 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
 \end{minipage}
 
 
+\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip On peut aussi utiliser la clé
+|baseline| pour aligner une matrice sur un filet horizontal (tracé par
+|\hline|). On doit pour cela donner la valeur |line-|\textsl{i} où \textsl{i}
+est le numéro de la rangée qui suit ce filet horizontal.
+
+\smallskip
+\begin{Verbatim}
+\NiceMatrixOptions{cell-space-top-limit=1pt,cell-space-bottom-limit=1pt}
+\end{Verbatim}
+
+\smallskip
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+$A=\begin{pNiceArray}{cc|cc}[baseline=line-3]
+\dfrac1A & \dfrac1B & 0 & 0 \\
+\dfrac1C & \dfrac1D & 0 & 0 \\
+\hline
+0 & 0 & A & B \\
+0 & 0 & D & D \\
+\end{pNiceArray}$
+\end{BVerbatim}
+\begin{scope}
+\NiceMatrixOptions{cell-space-top-limit=1pt,cell-space-bottom-limit=1pt}
+\raisebox{-5mm}{$A=\begin{pNiceArray}{cc|cc}[baseline=line-3]
+\dfrac1A & \dfrac1B & 0 & 0 \\
+\dfrac1C & \dfrac1D & 0 & 0 \\
+\hline
+0 & 0 & A & B \\
+0 & 0 & D & D \\
+\end{pNiceArray}$}
+\end{scope}
+
+
 
 \section{Les blocs}
 
@@ -527,6 +560,11 @@ Marie & Pauline \\ \hline
 \end{NiceTabular}
 
 
+\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip En revanche, les filets
+verticaux ne sont pas tracés à l'intérieur des blocs.
+
+
 \bigskip
 Si vous utilisez \pkg{booktabs} (qui fournit |\toprule|, |\midrule|,
 |\bottomrule|, etc.) et que vous tenez absolument à mettre des filets verticaux
@@ -680,7 +718,8 @@ p.~\pageref{OnlyMainNiceMatrix}.
 \subsection{Les clés hlines et vlines}
 
 La clé |hlines| demande un tracé de tous les filets horizontaux et la clé
-|vlines| demande un tracé de tous les filets verticaux. En fait, dans les
+|vlines| demande un tracé de tous les filets verticaux (sauf dans les blocs et
+dans les blocs virtuels déterminés par des lignes en pointillés). En fait, dans les
 environnements avec délimiteurs (comme |{pNiceMatrix}| ou |{bNiceArray}|), les
 filets extérieurs ne sont pas tracés (ce qui est le comportement certainement
 attendu).
@@ -706,10 +745,8 @@ $\begin{pNiceMatrix}[vlines,rules/width=0.2pt]
 \label{hvlines}
 
 La clé |hvlines| demande le tracé de tous les filets horizontaux et verticaux
-\emph{sauf dans les blocs}.\footnote{En fait, quand la clé |hvlines| (ou la clé
-  |hvlines-except-corners| décrite juste après) est utilisée, les filets ne sont
-  pas non plus tracés dans les blocs virtuels délimités par des cases reliées
-  par des lignes pointillées (cf. p. \pageref{dotted-and-hvlines}).}
+(sauf dans les blocs et dans les blocks virtuels déterminés par des
+lignes en pointillés).
 
 \medskip
 \begin{Verbatim}
@@ -734,7 +771,8 @@ arum      & iris & jacinthe & muguet
 \subsection{La clé hvlines-except-corners}
 
 La clé |hvlines-except-corners| demande le tracé de tous les filets horizontaux
-et verticaux \emph{sauf dans les blocs} et sauf dans les coins vides.
+et verticaux sauf dans les blocs (y compris dans les blocks virtuels déterminés par des
+lignes en pointillés) et sauf dans les coins vides. 
 
 \medskip
 \begin{Verbatim}
@@ -769,9 +807,15 @@ Comme on le voit, un «coin vide» est constitué de la réunion de tous les
 rectangles vides partant de la case située exactement dans le coin.
 
 \bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip On peut passer en argument de
+|\hvlines-except-corners| une liste de coins à prendre en considération. Les
+coins étant désignés par |NW|, |SW|, |NE| et |SE| (\emph{north west},
+\emph{south west}, \emph{north east} et \emph{south east}).
+
+\medskip
 \begin{BVerbatim}[boxwidth=11cm,baseline=c]
 \begin{NiceTabular}{*{6}{c}}%
-  [~emphase#hvlines-except-corners@,cell-space-top-limit=3pt]
+  [~emphase#hvlines-except-corners=NE@,cell-space-top-limit=3pt]
 1\\
 1&1\\
 1&2&1\\
@@ -781,7 +825,7 @@ rectangles vides partant de la case située exactement dans le coin.
 \end{NiceTabular}
 \end{BVerbatim}
 \begin{NiceTabular}{*{6}{c}}%
-  [c,hvlines-except-corners,cell-space-top-limit=3pt]
+  [c,hvlines-except-corners=NE,cell-space-top-limit=3pt]
 1\\
 1&1\\
 1&2&1\\
@@ -904,10 +948,28 @@ incompatibilités (par exemple avec la commande |\hdotsfor|).
 
 \item L'extension \pkg{colortbl} construit le tableau ligne par ligne, en
 alternant rectangles colorés, filets et contenu des cases. Le \textsc{pdf}
-résultant déroute certains lecteurs de \textsc{pdf} et on a des artefacts
-d'affichage : des filets verticaux semblent disparaître ; au contraire, de fines
-lignes blanches peuvent apparaître. L'extension \pkg{nicematrix} proposent des
-outils qui évitent ces inconvénients.
+résultant déroute certains lecteurs de \textsc{pdf} et on a parfois des artefacts
+d'affichage.
+
+\begin{itemize}
+\item Certains filets semblent disparaître. Ce phénomène est dû au fait que les
+lecteurs de PDF donnent souvent la priorité aux éléments graphiques qui ont été
+tracés postérieurement (conformément à l'esprit du «modèle du peintre» de
+PostScript et PDF). De ce point de vue, MuPDF (qui est utilisé par exemple par
+SumatraPDF) donne de meilleurs résultats que Adobe Reader.
+
+\item Une fine ligne blanche semble apparaître entre deux cellules de même
+couleur. Ce phénomène se produit quand chaque cellule est coloriée avec sa
+propre instruction |fill| (opérateur |fill| de PostScript noté |f| en PDF).
+C'est le cas avec \pkg{colortbl} avec lequel chaque cellule est coloriée
+individuellement même si on utilise |\columncolor| ou |\rowcolor|.
+
+Concernant ce phénomène, Adobe Reader donne de meilleurs résultats que
+MuPDF.
+\end{itemize}
+
+L'extension \pkg{nicematrix} proposent des outils qui permettent d'éviter ces
+inconvénients. 
 \end{itemize}
 
 \subsection{Les outils de nicematrix dans le code-before}
@@ -958,6 +1020,10 @@ h & i & j \\ \hline
 \end{NiceTabular}
 \end{scope}
 
+\medskip
+Une commande |\cellcolor| ne produit qu'une instruction |fill| (codée |f|) dans
+le \textsc{pdf}.
+
 \bigskip
 \item La commande |\rectanglecolor| prend trois arguments obligatoires. Le
 premier est la couleur, les deux suivants fournissent la case en haut à gauche
@@ -1025,6 +1091,10 @@ a_{10} & b_{10} & c_{10} \\
 \end{NiceArray}$
 \end{scope}
 
+\medskip
+Une commande |\rowcolor| ne produit qu'une instruction |fill| (codée |f|) dans
+le \textsc{pdf}.
+
 
 \bigskip
 \item La commande |\columncolor| doit son nom à la commande |\columncolor| de
@@ -1061,6 +1131,45 @@ Estelle & 15
 \end{NiceTabular}
 \end{scope}
 
+\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip Il existe une option |respect-blocks|
+pour la commande |\rowcolor|. Avec cette option, les ``rangées'' colorées
+alternativement peuvent s'étendre sur plusieurs rangées réelles du tableau pour
+englober les blocs.
+
+\medskip
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{NiceTabular}{cr}[hvlines,code-before =
+~emphase#\rowcolors{1}{blue!10}{}[respect-blocks]@]
+\Block{2-1}{Pierre} & 12 \\
+                    & 13 \\
+Jacques & 8 \\
+\Block{3-1}{Stéphanie} & 18 \\
+                       & 17 \\
+                       & 15 \\
+Amélie & 20 \\
+Henri & 14 \\
+\Block{2-1}{Estelle} & 15 \\
+                     & 19
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{cr}[hvlines,code-before = \rowcolors{1}{blue!10}{}[respect-blocks],baseline=c]
+\Block{2-1}{Pierre} & 12 \\
+                    & 13 \\
+Jacques & 8 \\
+\Block{3-1}{Stéphanie} & 18 \\
+                       & 17 \\
+                       & 15 \\
+Amélie & 20 \\
+Henri & 14 \\
+\Block{2-1}{Estelle} & 15 \\
+                     & 19
+\end{NiceTabular}
+\end{scope}
+
+
 
 
 \bigskip
@@ -1142,7 +1251,7 @@ On a utilisé le type de colonne |S| de \pkg{siunitx}.
 On peut accéder aux outils de coloriage précédents avec une syntaxe proche de
 celle proposée par \pkg{colortbl}. On doit pour cela utiliser la clé
 |colortbl-like| dans l'environnement concerné.\footnote{Pour le moment, cette
-  clé n'est pas disponible disponible dans |\NiceMatrixOptions|.}
+  clé n'est pas disponible dans |\NiceMatrixOptions|.}
 
 On a alors accès aux trois commandes suivantes :
 \begin{itemize}
@@ -1157,7 +1266,7 @@ autre commande, elle-même utilisée dans le préambule.}.
 
 \medskip
 \begin{Verbatim}
-\begin{NiceTabular}[colortbl-like]{>{~emphase#\columncolor{blue!15}}@ccc}
+\begin{NiceTabular}[colortbl-like]{*{2}{>{~emphase#\columncolor{blue!15}@}c}c} 
 \toprule
 ~emphase#\rowcolor{red!15}@
 Nom & Prénom & Année de naissance \\
@@ -1172,7 +1281,7 @@ Dupont & Chantal & 15 janvier 1998 \\
 
 
 \begin{center}
-\begin{NiceTabular}[colortbl-like]{>{\columncolor{blue!15}}ccc}
+\begin{NiceTabular}[colortbl-like]{*{2}{>{\columncolor{blue!15}}c}c} 
 \toprule
 \rowcolor{red!15}
 Nom & Prénom & Année de naissance \\
@@ -1185,6 +1294,53 @@ Dupont & Chantal & 15 janvier 1998 \\
 \end{NiceTabular}
 \end{center}
 
+\medskip
+\emph{Remarque}\par\nobreak
+
+Chacune de ces instructions |\cellcolor|, |\rowcolor| ou |\columncolor|
+(utilisée hors du |code-before|) produit une instruction |fill| (codée |f|) dans
+le \textsc{pdf} final. En cas de juxtaposition de rectangles de même couleur,
+une fine ligne blanche peut donc apparaître dans certains lecteurs de
+\textsc{pdf}\footnote{Par exemple SumatraPDF v3.1.2, qui utilise MuPDF de Artifex
+  Software, dont le moteur de rendu \textsc{pdf} est appelé Fitz.} (entre les
+deux premières colonnes dans l'exemple ci-dessus). Pour éviter cela, il convient
+d'utiliser les outils proposés dans le |code-before|. C'est ce que l'on fait
+dans le codage qui suit. 
+
+
+\medskip
+\begin{Verbatim}
+\begin{NiceTabular}[colortbl-like]{ccc}%
+  [code-before = ~emphase#\columncolor{blue!15}{1,2}@]
+\toprule
+\rowcolor{red!15}
+Nom & Prénom & Année de naissance \\
+\midrule
+Achard & Jacques & 5 juin 1962 \\
+Lefebvre & Mathilde & 23 mai 1988 \\
+Vanesse & Stéphanie & 30 octobre 1994 \\
+Dupont & Chantal & 15 janvier 1998 \\
+\bottomrule
+\end{NiceTabular}
+\end{Verbatim}
+
+
+\begin{center}
+\begin{NiceTabular}[colortbl-like]{ccc}%
+  [code-before = \columncolor{blue!15}{1,2}]
+\toprule
+\rowcolor{red!15}
+Nom & Prénom & Année de naissance \\
+\midrule
+Achard & Jacques & 5 juin 1962 \\
+Lefebvre & Mathilde & 23 mai 1988 \\
+Vanesse & Stéphanie & 30 octobre 1994 \\
+Dupont & Chantal & 15 janvier 1998 \\
+\bottomrule
+\end{NiceTabular}
+\end{center}
+
+
 
 \section{La largeur des colonnes}
 \label{width}
@@ -1946,14 +2102,16 @@ b      & a      & b      & \Ddots &        & \Vdots \\
 \end{pNiceMatrix}\]
 
 
-\subsection{Les lignes pointillées et la clé hvlines}
+\subsection{Les lignes pointillées et les filets}
+
+\label{dotted-and-rules}
 
-\label{dotted-and-hvlines}
+Les lignes pointillées délimitent des blocs virtuels qui ont le même
+comportement vis à vis des filets que les blocs créés par |\Block| (les filets
+spécifiés par le spécificateur \verb+|+ dans le préambule et par les clés
+|vlines|, |hlines|, |hvlines| et |hvlines-except-corners| ne sont pas tracés
+dans les blocs).
 
-On a dit (cf. p. \pageref{hvlines}) que la clé |hvlines| trace tous les filets
-horizontaux et verticaux, exceptés dans les blocs. En fait, avec cette clé, les
-filets ne sont pas non plus tracés dans les blocs virtuels délimités par des
-cases reliées par des lignes pointillées.
 
 \medskip
 \begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
@@ -2397,11 +2555,6 @@ $\begin{bNiceMatrix}[r]
 \sin x & \cos x 
 \end{bNiceMatrix}$
 
-\medskip
-Il existe aussi l'option |S| qui impose que toutes les colonnes soient des
-colonnes |S| de \pkg{siunitx} (si cette extension est chargée).\footnote{Cela
-  reprend une partie des fonctionnalités proposées par les environnements
-  |{pmatrix*}|, |{bmatrix*}|, etc. de \pkg{mathtools}.}
 
 
 \subsection{La commande \textbackslash rotate}
@@ -3044,54 +3197,59 @@ l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe
 \end{NiceMatrix}\]
 
 
-\section{Outils pour les développeurs}
+\section{API pour les développeurs}
 
-Comme son nom l'indique, la liste de tokens |\g_nicematrix_code_after_tl| est
-publique (conformément aux conventions de LaTeX3, toute variable dont le nom
-débute par |\g_nicematrix| ou |\l_nicematrix| est publique alors que toute variable
-dont le nom débute par |\g__nicematrix| ou par |\l__nicematrix| est privée).
+L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\footnote{Conformément aux conventions de LaTeX3,
+  toute variable dont le nom commence par |\g_nicematrix| ou |\l_nicematrix| est
+  publique alors que toute variable dont le nom débute par |\g__nicematrix| ou
+  par |\l__nicematrix| est privée.} :
+\begin{itemize}
+\item \colorbox{yellow!50}{\textbf{Nouveau 5.2}}\enskip |\g_nicematrix_code_before_tl| ;
+\item |\g_nicematrix_code_after_tl|.
+\end{itemize}
 
 \medskip
-Cette variable contient le code qui constitue le «|code-after|». Le développeur
-peut donc l'utiliser pour y ajouter du code à partir d'une cellule du tableau
-(l'affectation devra être globale, ce qui permettra de sortir de la cellule, qui
-est un groupe au sens de TeX).
+Ces variables constituent le code du «|code-before|» et du «|code-after|». Le
+développeur peut donc les utiliser pour y ajouter du code à partir d'une cellule
+du tableau (l'affectation devra être globale, ce qui permettra de sortir de la
+cellule, qui est un groupe au sens de TeX).
 
 \medskip
-\emph{Exemple} : On souhaite écrire une commande |\crossbox| qui barre en croix
-la cellule courante. Cette commande prendra en argument optionnel une liste de
-couples \textsl{clé}-\textsl{valeur} qui sera passée à Tikz avant que la croix
-ne soit tracée.
-
+On remarquera que l'utilisation de |\g_nicematrix_code_before_tl| nécessite une
+compilation supplémentaire (car les instructions sont écrites dans le fichier
+|aux| pour être utilisées à la compilation suivante).
 
-On peut alors programmer cette commande |\crossbox| de la manière suivante, qui
-utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
+\bigskip
+\emph{Example} : On souhaite écrire une commande |\hatchcell| pour hachurer la
+cellule courante (avec un argument optionnel entre crochets pour la couleur des
+hachures). Il est possible de programmer une telle commande |\hatchcell| comme
+suit, en utilisant explicitement la variable publique
+|\g_nicematrix_code_before_tl| (ce code nécessite le chargement préalable de la
+bibliothèque Tikz \pkg{patterns}).
 
 
 \begin{scope}
 \fvset{commandchars=\§\¤\μ}
 \begin{Verbatim}
 \ExplSyntaxOn
-\cs_new_protected:Nn \__pantigny_crossbox:nnn
+\cs_new_protected:Nn \__pantigny_hatchcell:nnn
   {
     \begin { tikzpicture }
-    \draw [ #3 ] 
-          ( row-#1 -| col-\int_eval:n { #2 + 1 } ) 
-       -- ( row-\int_eval:n { #1 + 1 } -| col-#2 ) 
-          ( row-#1 -| col-\int_eval:n #2 ) 
-       -- ( row-\int_eval:n { #1 + 1 } -| col-\int_eval:n { #2 + 1 } ) ; 
+    \fill [ pattern = north~west~lines , pattern~color = #3 ]
+          ( row - #1 -| col - #2) 
+          rectangle 
+          ( row - \int_eval:n { #1 + 1 } -| col - \int_eval:n { #2 + 1 } ) ;
     \end { tikzpicture }
   }
 
-
-\NewDocumentCommand \crossbox { ! O { } }
+\NewDocumentCommand \hatchcell { ! O { black } }
   {
-    \tl_gput_right:Nx §emphase¤\g_nicematrix_code_after_tlμ
+    \tl_gput_right:Nx §emphase¤\g_nicematrix_code_before_tlμ
       { 
-        \__pantigny_crossbox:nnn 
+        \__pantigny_hatchcell:nnn
           { \int_use:c { c@iRow } } 
           { \int_use:c { c@jCol } }
-          { \exp_not:n { #1 } }
+          { #1 }
       }
   }
 \ExplSyntaxOff
@@ -3100,47 +3258,47 @@ utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
 
 
 \ExplSyntaxOn
-\cs_new_protected:Nn \__pantigny_crossbox:nnn
+\cs_new_protected:Nn \__pantigny_hatchcell:nnn
   {
     \begin { tikzpicture }
-    \draw [ #3 ] 
-          ( row-#1 -| col-\int_eval:n { #2 + 1 } ) 
-       -- ( row-\int_eval:n { #1 + 1 } -| col-#2 ) 
-          ( row-#1 -| col-\int_eval:n #2 ) 
-       -- ( row-\int_eval:n { #1 + 1 } -| col-\int_eval:n { #2 + 1 } ) ; 
+    \fill [ pattern = north~west~lines , pattern~color = #3 ]
+          ( row - #1 -| col - #2) 
+          rectangle 
+          ( row - \int_eval:n { #1 + 1 } -| col - \int_eval:n { #2 + 1 } ) ;
     \end { tikzpicture }
   }
 
-
-\NewDocumentCommand \crossbox { ! O { } }
+\NewDocumentCommand \hatchcell { ! O { black } }
   {
-    \tl_gput_right:Nx \g_nicematrix_code_after_tl
+    \tl_gput_right:Nx \g_nicematrix_code_before_tl
       { 
-        \__pantigny_crossbox:nnn 
+        \__pantigny_hatchcell:nnn
           { \int_use:c { c@iRow } } 
           { \int_use:c { c@jCol } }
-          { \exp_not:n { #1 } }
+          { #1 }
       }
   }
 \ExplSyntaxOff
 
+
 \bigskip
-Voici un exemple d'utilisation :
+Voici un exemple d'utilisation.
 
 \medskip
 \begin{BVerbatim}[baseline=c,boxwidth=9cm]
 \begin{NiceTabular}{ccc}[hvlines]
-merlan & requin & cabillaud \\
-baleine & ~emphase#\crossbox[red]@ & morue \\
-mante & raie & poule 
+Tokyo & Paris & London \\
+Roma & ~emphase#\hatchcell[blue!30]@Oslo & Miami \\
+Los Angeles & Madrid & Roma
 \end{NiceTabular}
 \end{BVerbatim}
 \begin{NiceTabular}{ccc}[hvlines]
-merlan & requin & cabillaud \\
-baleine & \crossbox[red] & morue \\
-mante & raie & poule 
+Tokyo & Paris & London \\
+Lima & \hatchcell[blue!30]Oslo & Miami \\
+Los Angeles & Madrid & Roma
 \end{NiceTabular}
 
+
 \section{Remarques techniques}
 
 Première remarque : l'extension \pkg{nicematrix} doit être chargée après
-- 
cgit v1.2.3

