From 745892fbddea56040139108277e728b53fd8fc11 Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Thu, 28 May 2020 03:03:21 +0000
Subject: CTAN sync 202005280303

---
 .../latex/contrib/nicematrix/nicematrix-french.tex | 3074 +++++++++++---------
 1 file changed, 1671 insertions(+), 1403 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 7adcadf738..d79a0f3727 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -7,22 +7,14 @@
 \usepackage{geometry}
 \geometry{left=2.8cm,right=2.8cm,top=2.5cm,bottom=2.5cm,papersize={21cm,29.7cm}}
 
-\usepackage{amsmath}
-
-\usepackage{array}
 \usepackage{nicematrix}
-% \usepackage{colortbl}
 
 \usepackage{tikz}
 \usetikzlibrary{fit}
 
 
 \usepackage{enumitem}
-
 \usepackage{siunitx}
-
-
-% \usepackage{arydshln}
 \usepackage{verbatim}
 
 % We use \MakeShortVerb of shortvrb and not \DefineShortVerb of fancyvrb
@@ -45,9 +37,7 @@
 \def\emphase{\bgroup\color{RoyalPurple}\let\next=}
 
 \usepackage{footnote}
-
 \usepackage{booktabs}
-
 \usepackage{varwidth}
 
 \usepackage[hyperfootnotes = false]{hyperref}
@@ -83,38 +73,16 @@
 
 \maketitle
 
+
 \begin{abstract}
 L'extension LaTeX \pkg{nicematrix} fournit de nouveaux environnements similaires aux environnements classiques
-|{tabular}|, |{array}| et |{matrix}| mais avec des fonctionnalités supplémentaires. Parmi ces fonctionnalités
-figurent la possibilité de fixer la largeur des colonnes et de tracer des traits en pointillés continus entre les
-cases du tableau.
+|{tabular}|, |{array}| et |{matrix}| de \pkg{array} et \pkg{amsmath} mais avec des fonctionnalités plus étendues.
 \end{abstract}
 
-\vspace{1cm}
-\section{Présentation}
-
-Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais aussi avec le cheminement
-classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). Deux ou trois compilations successives peuvent être
-nécessaires. Cette extension nécessite et charge les extensions \pkg{expl3}, \pkg{l3keys2e}, \pkg{xparse},
-\pkg{array}, \pkg{amsmath} et \pkg{pgfcore} ainsi que le module \pkg{shapes} de \textsc{pgf} (l'extension
-\pkg{tikz} n'est \emph{pas} chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
-l'instruction habituelle : |\usepackage{nicematrix}|.
-
 
+\vspace{1cm}
 
-\medskip
-\begin{savenotes}
-\begin{minipage}{0.6\linewidth}
-Cette extension fournit quelques outils supplémentaires pour dessiner des matrices (au sens mathématique). Les
-principales caractéristiques sont les suivantes :
-\begin{itemize}\setlength{\itemsep}{0pt}
-\item des lignes en pointillés continues ;
-\item des rangées et colonnes extérieures pour les labels ;
-\item un contrôle sur la largeur des colonnes.
-\end{itemize}
-\end{minipage}
-\end{savenotes}
-\hspace{1.4cm}
+\hspace{1cm}
 $\begin{bNiceArray}{CCCC}[first-row,first-col,
                           code-for-first-col=\color{blue}\scriptstyle,
                           code-for-first-row=\color{blue}\scriptstyle,
@@ -125,61 +93,58 @@ L_2    & a_{21}  & a_{22}  & \Cdots  & a_{2n} \\
 \Vdots & \Vdots & \Vdots  & \Ddots  & \Vdots \\
 L_n    & a_{n1}  & a_{n2}  & \Cdots  & a_{nn} 
 \end{bNiceArray}$
+\hspace{2cm}
+\begin{NiceTabular}[c]{LSSSS}%
+[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
+\toprule
+\Block{2-1}{Produit} & \multicolumn{3}{C}{dimensions (cm)} & \Block{2-1}{\rotate Prix} \\
+\cmidrule(rl){2-4} 
+ & L & l & h \\
+\midrule
+petit    & 3   & 5.5  & 1   & 30    \\
+standard & 5.5 & 8    & 1.5 & 50.5  \\
+premium  & 8.5 & 10.5 & 2   & 80    \\
+extra    & 8.5 & 10   & 1.5 & 85.5  \\
+spécial  & 12  & 12   & 0.5 & 70    \\
+\bottomrule
+\end{NiceTabular}
 
 
 
+\vspace{1cm}
 
-\medskip
-Une commande|\NiceMatrixOptions| est fournie pour régler les options (la portée des options fixées par cette
-commande est le groupe TeX courant).
+L'extension \pkg{nicematrix} est entièrement contenue dans le fichier |nicematrix.sty|. Ce fichier peut être placé
+dans le répertoire courant ou dans une arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{nicematrix}
+avec une distribution TeX comme MiKTeX ou TeXlive.
 
 \bigskip
-\textbf{Un exemple d'utilisation pour les lignes en pointillés continues}
-
-\medskip
-\begin{minipage}{10cm}
-Considérons par exemple le code suivant qui utilise un environnement |{pmatrix}| de l'extension \pkg{amsmath}.
-
-\smallskip
-\begin{BVerbatim}
-$A = \begin{pmatrix}
-1      & \cdots & \cdots & 1      \\
-0      & \ddots &        & \vdots \\
-\vdots & \ddots & \ddots & \vdots \\
-0      & \cdots & 0      & 1
-\end{pmatrix}$
-\end{BVerbatim}
-
-\smallskip
-Ce code compose la matrice $A$ représentée à droite.
-\end{minipage}\hspace{1cm}
-$A = \begin{pmatrix}
-1      &\cdots &\cdots &1      \\
-0      &\ddots &       &\vdots \\
-\vdots &\ddots &\ddots &\vdots \\
-0      &\cdots &0      &1
-\end{pmatrix}$
+Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais aussi avec le cheminement
+classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). 
 
+\bigskip
+Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{xparse}, \pkg{array}, \pkg{amsmath} et
+\pkg{pgfcore} ainsi que le module \pkg{shapes} de \textsc{pgf} (l'extension \pkg{tikz}, qui est une surcouche de
+\textsc{pgf} n'est \emph{pas} chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
+l'instruction habituelle : |\usepackage{nicematrix}|.
 
 
+\bigskip
+L'idée de \pkg{nicematrix} est de créer des nœuds \textsc{pgf} derrière les cases et les positions des filets des
+tableaux créés par \pkg{array} et de les utiliser pour développer de nouvelles fonctionnalités. Comme toujours avec
+\textsc{pgf}, les coordonnées de ces nœuds sont écrites dans le fichier |.aux| pour être utilisées à la
+compilation suivante. C'est pourquoi l'utilisation de \pkg{nicematrix} nécessite \textbf{plusieurs compilations
+  successives}.  
 
 \bigskip
-\begin{scope}
-\NiceMatrixOptions{transparent}
-\begin{minipage}{10cm}
-Maintenant, si nous utilisons l'extension \pkg{nicematrix} avec l'option |transparent|, le même code va donner le
-résultat ci-contre à droite.
-\end{minipage}\hspace{1cm}
-$A = \begin{pmatrix}
-1      & \cdots & \cdots & 1      \\
-0      & \ddots &        & \vdots \\
-\vdots & \ddots & \ddots & \vdots \\
-0      & \cdots & 0      & 1
-\end{pmatrix}$
-\end{scope}
+La plupart des fonctionnalités de \pkg{nicematrix} sont accessibles sans avoir à utiliser explicitement
+\textsc{pgf} ou Tikz (ce dernier n'est d'ailleurs pas chargé par défaut).
 
+\bigskip
+Une commande|\NiceMatrixOptions| est fournie pour régler les options (la portée des options fixées par cette
+commande est le groupe TeX courant : elles sont semi-globales).
 
 
+\newpage
 
 \section{Les environnements de cette extension} 
 
@@ -189,880 +154,913 @@ L'extension \pkg{nicematrix} définit les nouveaux environnements suivants :
 \begin{ttfamily}
 \setlength{\tabcolsep}{3mm}
 \begin{tabular}{llll}
-\{NiceMatrix\}  & \{NiceArray\}  & \{NiceTabular\} \\
-\{pNiceMatrix\} & \{pNiceArray\} \\
-\{bNiceMatrix\} & \{bNiceArray\} \\
-\{BNiceMatrix\} & \{BNiceArray\} \\
-\{vNiceMatrix\} & \{vNiceArray\} \\
-\{VNiceMatrix\} & \{VNiceArray\} \\
-                & \{NiceArrayWithDelims\}
+\{NiceTabular\} & \{NiceArray\}  & \{NiceMatrix\}   \\
+              & \{pNiceArray\} & \{pNiceMatrix\}  \\
+              & \{bNiceArray\} & \{bNiceMatrix\}  \\
+              & \{BNiceArray\} & \{BNiceMatrix\}  \\
+              & \{vNiceArray\} & \{vNiceMatrix\}  \\
+              & \{VNiceArray\} & \{VNiceMatrix\}  
 \end{tabular}
 \end{ttfamily}
 
 
-\medskip
-Par défaut, les environnements |{NiceMatrix}|, |{pNiceMatrix}|, |{bNiceMatrix}|, |{BNiceMatrix}|, |{vNiceMatrix}|
-et |{VNiceMatrix}| se comportent quasiment comme les environnements correspondants de \pkg{amsmath} : |{matrix}|,
-|{pmatrix}|, |{bmatrix}|, |{Bmatrix}|, |{vmatrix}| et |{Vmatrix}|.
-
-
 \medskip
 Les environnements |{NiceArray}| et |{NiceTabular}| sont similaires aux environnements |{array}| et |{tabular}| de
-l'extension |{array}|. Néanmoins, pour des raisons techniques, dans le préambule de ces environnements,
-l'utilisateur doit utiliser les lettres |L|, |C| et~|R| au lieu de |l|, |c| et |r|. Il est possible d'utiliser les
-constructions |p{...}|, |m{...}|, |b{...}|, |w{...}{...}|, |W{...}{...}|, \verb+|+, |>{...}|, |<{...}|, |@{...}|,
-|!{...}| et |*{n}{...}|.
-
-Voir p.~\pageref{NiceArray} la partie concernant |{NiceArray}| et |{NiceTabular}|.
-
-\section{Les lignes en pointillés continues}
-
-À l'intérieur des environnements de l'extension \pkg{nicematrix}, de nouvelles commandes sont définies : |\Ldots|,
-|\Cdots|, |\Vdots|, |\Ddots|, et |\Iddots|. Ces commandes sont conçues pour être utilisées à la place de |\dots|,
-|\cdots|, |\vdots|, |\ddots| et |\iddots|.\footnote{La commande |\iddots|, définie dans \pkg{nicematrix}, est une
-  variante de |\ddots| avec les points allant vers le haut. Si \pkg{mathdots} est chargée, la
-  version de \pkg{mathdots} est utilisée. Elle correspond à la commande |\adots| de \pkg{unicode-math}.}
-\newcounter{fniddots} 
-\setcounter{fniddots}{\thefootnote}
-
-\smallskip
-Chacune de ces commandes doit être utilisée seule dans la case du tableau et elle trace une ligne en pointillés
-entre les premières cases non vides\footnote{La définition précise de ce qui est considéré comme une «case vide»
-  est donnée plus loin (cf. p.~\pageref{empty-cells}).} situées de part et d'autre de la case courante. Bien
-entendu, pour |\Ldots| et |\Cdots|, c'est une ligne horizontale ; pour |\Vdots|, c'est une ligne verticale et pour
-|\Ddots| et |\Iddots|, ce sont des lignes diagonales. On peut changer la couleur d'une ligne avec
-l'option~|color|.\footnote{Il est aussi possible de changer la couleur de toutes ces lignes pointillées avec
-  l'option |xdots/color| (\textsl{xdots} pour rappeler que cela s'applique à |\Cdots|, |\Ldots|, |Vdots|, etc.) :
-  cf. p.~\pageref{customization}).
-}\par\nobreak   
-
-\bigskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-\begin{bNiceMatrix}
-a_1      & \Cdots &        & & a_1     \\
-\Vdots   & a_2    & \Cdots & & a_2     \\
-         & \Vdots & \Ddots[color=red] \\
-\\
-a_1      & a_2    &        & & a_n 
-\end{bNiceMatrix}
-\end{BVerbatim}
-$\begin{bNiceMatrix}
-a_1      & \Cdots &        & & a_1   \\
-\Vdots   & a_2    & \Cdots & & a_2   \\
-         & \Vdots & \Ddots[color=red] \\
-\\
-a_1      & a_2    &        & & a_n 
-\end{bNiceMatrix}$
-
-
-
-
-\interitem
-Pour représenter la matrice nulle, on peut choisir d'utiliser le codage suivant :\par\nobreak
-
-\bigskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-\begin{bNiceMatrix}
-0      & \Cdots & 0      \\
-\Vdots &        & \Vdots \\
-0      & \Cdots & 0 
-\end{bNiceMatrix}
-\end{BVerbatim}
-$\begin{bNiceMatrix}
-0      & \Cdots & 0      \\
-\Vdots &        & \Vdots \\
-0      & \Cdots & 0 
-\end{bNiceMatrix}$
-
-\bigskip
-On peut néanmoins souhaiter une matrice plus grande. Habituellement, dans un tel cas, les utilisateurs de LaTeX
-ajoutent une nouvelle ligne et une nouvelle colonne. Il est possible d'utiliser la même méthode avec
-\pkg{nicematrix} :\par\nobreak
-
-\bigskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-\begin{bNiceMatrix}
-0      & \Cdots & \Cdots & 0      \\
-\Vdots &        &        & \Vdots \\
-\Vdots &        &        & \Vdots \\
-0      & \Cdots & \Cdots & 0 
-\end{bNiceMatrix}
-\end{BVerbatim}
-$\begin{bNiceMatrix}
-0      & \Cdots & \Cdots & 0      \\
-\Vdots &        &        & \Vdots \\
-\Vdots &        &        & \Vdots \\
-0      & \Cdots & \Cdots & 0 
-\end{bNiceMatrix}$
+l'extension \pkg{array} (qui est chargée par \pkg{nicematrix}).
 
-\bigskip
-Dans la première colonne de cet exemple, il y a deux instructions |\Vdots| mais une seule ligne en pointillés sera
-tracée (il n'y a pas d'objets qui se superposent dans le fichier \textsc{pdf} résultant\footnote{Et il n'est pas
-  possible de tracer une ligne |\Ldots| et une ligne |\Cdots| entre les mêmes cases.}).
+\medskip
+Il y a néanmoins quelques différences :
+\begin{itemize}
+\item Pour des raisons techniques, dans le préambule de ces environnements, l'utilisateur doit utiliser les lettres
+|L|, |C| et~|R|\footnote{Les types de colonnes |L|, |C| et |R| sont définis localement à l'intérieur de
+  |{NiceTabular}| ou |{NiceArray}| avec la commande |\newcolumntype| de \pkg{array}. Cette définition masque une
+  éventuelle définition précédente.} au lieu de |l|, |c| et |r|, y compris dans les commandes |\multicolumn| et
+dans les types de colonnes définis par |\newcolumntype|.
+
+\item Dans |{NiceArray}| (et ses variantes), les colonnes de type |w| (ex. : |wc{1cm}|) sont composées en mode
+mathématique alors que dans |{array}| de \pkg{array}, elles sont composées en mode texte.
+\end{itemize}
 
-\bigskip
-En fait, dans cet exemple, il aurait été possible de tracer la même matrice plus rapidement avec le codage suivant
-:\par\nobreak
+\medskip
+Les environnements |{pNiceArray}|, |{bNiceArray}|, etc. n'ont pas d'équivalents dans \pkg{array}.
 
-\bigskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-\begin{bNiceMatrix}
-0       & \Cdots &        & 0      \\
-\Vdots  &        &        &        \\
-        &        &        & \Vdots \\
-0       &        & \Cdots & 0 
-\end{bNiceMatrix}
-\end{BVerbatim}
-$\begin{bNiceMatrix}
-0       & \Cdots &        & 0      \\
-\Vdots  &        &        &        \\
-        &        &        & \Vdots \\
-0       &        & \Cdots & 0 
-\end{bNiceMatrix}$
+\medskip
+Les environnements |{NiceMatrix}|, |{pNiceMatrix}|, etc. sont similaires aux environnements correspondants de
+l'\pkg{amsmath} (qui est chargée par \pkg{nicematrix}) : |{matrix}|, |{pmatrix}|, etc.
 
-\bigskip
-Il y a aussi d'autres moyens de changer la taille d'une matrice. On pourrait vouloir utiliser l'argument optionnel
-de la commande~|\\| pour l'espacement vertical et la commande~|\hspace*| dans une case pour l'espacement
-horizontal.\footnote{Dans \pkg{nicematrix}, il faut utiliser |\hspace*| et non |\hspace| car \pkg{nicematrix}
-  utilise \pkg{array}. Remarquons aussi que l'on peut également régler la largeur des colonnes en utilisant l'environnement |{NiceArray}| (ou
-  une de ses variantes) avec une colonne de type~|w| ou |W|: cf. p.~\pageref{width}}
+\medskip
+Tous les environnements de l'extension \pkg{nicematrix} acceptent, entre crochets, une liste optionnelle de paires
+de la forme \textsl{clé=valeur}. {\bfseries Il doit n'y avoir aucun espace devant le crochet ouvrant (|[|) de cette
+liste d'options.}
 
-Toutefois, une commande~|\hspace*| pourrait interférer dans la construction des lignes en pointillés. C'est
-pourquoi l'extension \pkg{nicematrix} fournit une commande~|\Hspace| qui est une variante de |\hspace| transparente
-pour la construction des lignes en pointillés de \pkg{nicematrix}.\par\nobreak
 
-\bigskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-\begin{bNiceMatrix}
-0      & \Cdots & ~emphase#\Hspace*{1cm}@ & 0      \\
-\Vdots &        &               & \Vdots \\~emphase#[1cm]@
-0      & \Cdots &               & 0    
-\end{bNiceMatrix}
-\end{BVerbatim}
-$\begin{bNiceMatrix}
-0      & \Cdots & \Hspace*{1cm} & 0      \\
-\Vdots &        &               & \Vdots \\[1cm]
-0      & \Cdots &               & 0    
-\end{bNiceMatrix}$
 
-\subsection{L'option nullify-dots}
+\section{L'espace vertical entre les rangées}
 
-Considérons la matrice suivante qui a été composée classiquement avec l'environnement |{pmatrix}| de
-\pkg{amsmath}.\par\nobreak
+Il est bien connu que certaines rangées des tableaux créés par défault avec LaTeX sont trop proches l'une de
+l'autre. On en donne ci-dessous un exemple classique.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$A = \begin{pmatrix}
-h & i & j & k & l & m \\
-x &   &   &   &   & x 
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+$\begin{pmatrix}
+\frac12 & -\frac12 \\
+\frac13 & \frac14 \\
 \end{pmatrix}$
 \end{BVerbatim}
-$A = \begin{pmatrix}
-h & i & j & k & l & m \\
-x   &     &     &    &     & x 
+$\begin{pmatrix}
+\frac12 & -\frac12 \\
+\frac13 & \frac14 \\
 \end{pmatrix}$
 
-
 \bigskip
-Si nous ajoutons des instructions |\ldots| dans la seconde rangée, la géométrie de la matrice est
-modifiée.\par\nobreak
+En s'inspirant de l'extension \pkg{cellspace} qui traite de ce problème, l'extension \pkg{nicematrix} propose deux
+clés |cell-space-top-limit| et |cell-space-bottom-limit| qui sont similaires aux deux paramètres
+|\cellspacetoplimit| et |\cellspacebottomlimit| proposés par \pkg{cellspace}. La valeur initiale de ces paramètres
+est $0$~pt pour que les environnements de \pkg{nicematrix} aient par défaut le même comportement que ceux de
+\pkg{array} et de l'\pkg{amsmth} mais une valeur de $1$~pt serait un bon choix. On conseille de régler leurs
+valeurs avec la commande |\NiceMatrixOptions|.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$B = \begin{pmatrix}
-h & i & j & k & l & m \\
-x & \ldots & \ldots  & \ldots & \ldots & x 
-\end{pmatrix}$
-\end{BVerbatim}
-$B = \begin{pmatrix}
-h & i & j & k & l & m \\
-x   & \ldots   & \ldots  & \ldots & \ldots & x 
-\end{pmatrix}$
-
-\bigskip
-Par défaut, avec \pkg{nicematrix}, si nous remplaçons |{pmatrix}| par |{pNiceMatrix}| et |\ldots| par |\Ldots|, la
-géométrie de la matrice n'est pas changée.\par\nobreak
+\begin{Verbatim}
+\NiceMatrixOptions{~emphase#cell-space-top-limit = 1pt,cell-space-bottom-limit = 1pt@}
+\end{Verbatim}
 
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$C = \begin{pNiceMatrix}
-h & i & j & k & l & m \\
-x & \Ldots & \Ldots & \Ldots & \Ldots & x 
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+$\begin{pNiceMatrix}
+\frac12 & -\frac12 \\
+\frac13 & \frac14 \\
 \end{pNiceMatrix}$
 \end{BVerbatim}
-$C = \begin{pNiceMatrix}
-h & i & j & k & l & m \\
-x & \Ldots & \Ldots  & \Ldots & \Ldots & x 
+\begin{scope}
+\NiceMatrixOptions{
+  cell-space-top-limit = 1pt ,
+  cell-space-bottom-limit = 1pt ,
+}
+$\begin{pNiceMatrix}
+\frac12 & -\frac12 \\
+\frac13 & \frac14 \\
 \end{pNiceMatrix}$
+\end{scope}
+
 
 \bigskip
-On pourrait toutefois préférer la géométrie de la première matrice $A$ et vouloir avoir la même géométrie avec une
-ligne en pointillés continue dans la seconde rangée. C'est possible en utilisant l'option |nullify-dots| (et une
-seule instruction |\Ldots| suffit).\par\nobreak
+\section{La clé baseline}
+
+L'extension \pkg{nicematrix} propose une option |baseline| pour la position verticale des tableaux. Cette
+option |baseline| prend comme valeur un entier qui indique le numéro de rangée dont la ligne de base servira de
+ligne de base pour le tableau.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$D = \begin{pNiceMatrix}[~emphase#nullify-dots@]
-h & i & j & k & l & m \\
-x & \Ldots & & & & x 
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+$A = \begin{pNiceMatrix}[~emphase#baseline=2@]
+\frac{1}{\sqrt{1+p^2}} & p & 1-p \\
+1 & 1 & 1 \\
+1 & p & 1+p
 \end{pNiceMatrix}$
 \end{BVerbatim}
-$D = \begin{pNiceMatrix}[nullify-dots]
-h & i & j & k & l & m \\
-x & \Ldots & &  &  & x 
+$A = \begin{pNiceMatrix}[baseline=2]
+\frac{1}{\sqrt{1+p^2}} & p & 1-p \\
+1 & 1 & 1 \\
+1 & p & 1+p
 \end{pNiceMatrix}$
 
+
+\interitem
+L'option |baseline| peut aussi prendre les trois valeurs spéciales |t|, |c| et |b|. Ces trois lettres peuvent aussi
+être utilisées de manière absolue comme pour l'option des environnements |{tabular}| et |{array}| de \pkg{array}.
+La valeur initiale de |baseline| est~|c|.
+
+
+\bigskip
+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|\footnote{On peut aussi utiliser |\firsthline|
+  dans les environnements de \pkg{nicematrix}.}).
+
+\smallskip
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{enumerate}
+\item un item
+\smallskip
+\item \renewcommand{\arraystretch}{1.2}
+$\begin{NiceArray}[t]{LCCCCCC}
+\hline
+n   & 0 & 1 & 2 & 3 & 4  & 5 \\
+u_n & 1 & 2 & 4 & 8 & 16 & 32 
+\hline
+\end{NiceArray}$
+\end{enumerate}
+\end{BVerbatim}
+%
+\begin{minipage}{5cm}
+\begin{enumerate}
+\item un item
+\smallskip
+\item \renewcommand{\arraystretch}{1.2}
+$\begin{NiceArray}[t]{LCCCCCC}
+\hline
+n   & 0 & 1 & 2 & 3 & 4  & 5  \\
+u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
+\hline
+\end{NiceArray}$
+\end{enumerate}
+\end{minipage}
+
+
+\bigskip
+Il est également possible d'utiliser les outils de \pkg{booktabs}: |\toprule|,
+|\bottomrule|, |\midrule|, etc.\par\nobreak
+
+\smallskip
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{enumerate}
+\item an item
+\smallskip
+\item 
+$\begin{NiceArray}[t]{LCCCCCC}
+~emphase#\toprule@
+n   & 0 & 1 & 2 & 3 & 4  & 5 \\
+~emphase#\midrule@
+u_n & 1 & 2 & 4 & 8 & 16 & 32 
+~emphase#\bottomrule@
+\end{NiceArray}$
+\end{enumerate}
+\end{BVerbatim}
+\begin{minipage}{5cm}
+\begin{enumerate}
+\item an item
+\smallskip
+\item 
+$\begin{NiceArray}[t]{LCCCCCC}
+\toprule
+n   & 0 & 1 & 2 & 3 & 4  & 5  \\
+\midrule
+u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
+\bottomrule
+\end{NiceArray}$
+\end{enumerate}
+\end{minipage}
+
+
+
+\section{Les blocs}
+
+\label{Block}
+Dans les environnements de \pkg{nicematrix}, on peut utiliser la commande |\Block| pour placer un élément au centre
+d'un rectangle de cases fusionnées. La commande |\Block| ne crée pas d'espace par elle-même.
+
+La commande |\Block| doit être utilisée dans la case supérieure gauche du bloc avec deux arguments. Le premier
+argument est la taille de ce bloc avec la syntaxe $i$-$j$ où $i$ est le nombre de rangées et $j$ le nombre de
+colonnes du bloc. Le deuxième argument, est, sans surprise, le contenu du bloc.
+
+Dans |{NiceTabular}|, le contenu est composé en mode texte. Dans les autres environnements, il est composé en mode
+mathématique. 
+
 \medskip
-L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes) horizontalement mais aussi
-verticalement.
+\begin{BVerbatim}
+\begin{NiceTabular}{CCCC}
+rose      & tulipe & marguerite & dahlia \\
+violette  & ~emphase#\Block{2-2}{\LARGE\color{blue} fleurs}@  & & souci \\
+pervenche & & & lys \\
+arum      & iris & jacinthe & muguet 
+\end{NiceTabular}
+\end{BVerbatim}
+
 
 \medskip
-{\bfseries Il doit n'y avoir aucun espace devant le crochet ouvrant (|[|) des options de l'environnement.}
+\begin{center}
+\begin{NiceTabular}{CCCC}
+rose      & tulipe & marguerite & dahlia \\
+violette  & \Block{2-2}{\LARGE\color{blue} fleurs}  & & souci \\
+pervenche & & & lys \\
+arum      & iris & jacinthe & muguet 
+\end{NiceTabular}
+\end{center}
 
-\subsection{La commande \textbackslash Hdotsfor}
 
-Certaines personnes utilisent habituellement la commande |\hdotsfor| de l'extension \pkg{amsmath} pour tracer des
-lignes en pointillés horizontales dans une matrice. Dans les environnements de \pkg{nicematrix}, il convient
-d'utiliser |\Hdotsfor| à la place pour avoir les lignes en pointillés similaires à toutes celles tracées par
-l'extension \pkg{nicematrix}.
 
-Comme avec les autres commandes de \pkg{nicematrix} (comme |\Cdots|, |\Ldots|, |\Vdots|, etc.), la ligne en
-pointillés tracée par |\Hdotsfor| s'étend jusqu'au contenu des cases de part et d'autre.
+\bigskip
+On peut aussi utiliser la commande |\Block| dans des matrices mathématiques.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=7cm]
-$\begin{pNiceMatrix}
-1 & 2 & 3 & 4 & 5 \\
-1 & ~emphase#\Hdotsfor{3}@ & 5 \\
-1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5 
-\end{pNiceMatrix}$
+\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
+$\begin{bNiceArray}{CCC|C}[margin]
+~emphase#\Block{3-3}{A}@ & & & 0 \\
+& \hspace*{1cm} & & \Vdots \\
+& & & 0 \\
+\hline
+0 & \Cdots& 0 & 0
+\end{bNiceArray}$
 \end{BVerbatim}
-$\begin{pNiceMatrix}
-1 & 2 & 3 & 4 & 5 \\
-1 & \Hdotsfor{3} & 5 \\
-1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5 
-\end{pNiceMatrix}$
+$\begin{bNiceArray}{CCC|C}[margin]
+\Block{3-3}{A} & & & 0 \\
+& \hspace*{1cm} & & \Vdots \\
+& & & 0 \\
+\hline
+0 & \Cdots& 0 & 0
+\end{bNiceArray}$
 
 \bigskip
-Néanmoins, si ces cases sont vides, la ligne en pointillés s'étend seulement dans les cases spécifiées par
-l'argument de |\Hdotsfor| (par conception).
+On peut souhaiter agrandir la taille du «$A$» placé dans le bloc de l'exemple précédent. Comme il est composé en
+mode mathématique, on ne peut pas directement utiliser une commande comme |\large|, |\Large| ou |\LARGE|. C'est
+pourquoi une option à mettre entre chevrons est proposée par |\Block| pour spécifier du code LaTeX qui sera inséré
+\emph{avant} le début du mode mathématique.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=7cm]
-$\begin{pNiceMatrix}
-1 & 2 & 3 & 4 & 5 \\
-  & ~emphase#\Hdotsfor{3}@ \\
-1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5 
-\end{pNiceMatrix}$
+\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
+$\begin{bNiceArray}{CCC|C}[margin]
+\Block{3-3}~emphase#<\LARGE>@{A} & & & 0 \\
+& \hspace*{1cm} & & \Vdots \\
+& & & 0 \\
+\hline
+0 & \Cdots& 0 & 0
+\end{bNiceArray}$
 \end{BVerbatim}
-$\begin{pNiceMatrix}
-1 & 2 & 3 & 4 & 5 \\
-  & \Hdotsfor{3} \\
-1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5 
-\end{pNiceMatrix}$
+$\begin{bNiceArray}{CCC|C}[margin]
+\Block{3-3}<\LARGE>{A} & & & 0 \\
+& \hspace*{1cm} & & \Vdots \\
+& & & 0 \\
+\hline
+0 & \Cdots& 0 & 0
+\end{bNiceArray}$
 
-\medskip
-Remarque : Contrairement à la commande |\hdotsfor| de \pkg{amsmath}, la commande |\Hdotsfor| est utilisable lorsque
-l'extension \pkg{colortbl} est chargée (mais vous risquez d'avoir des problèmes si vous utilisez |\rowcolor| sur la
-même rangée que |\Hdotsfor|).
 
-\subsection{Comment créer les lignes en pointillés de manière transparente}
+\section{Les filets horizontaux et verticaux}
 
-L'extension \pkg{nicematrix} fournit une option appelée |transparent| qui permet d'utiliser du code existant de
-manière transparente dans les environnements de l'\pkg{amsmath} : |{matrix}|, |{pmatrix}|, etc. En fait, cette
-option est un alias pour la conjonction de deux options : |renew-dots| et |renew-matrix|.\footnote{Comme toutes les
-  autres options, les options |renew-dots|, |renew-matrix| et |transparent| peuvent être fixées avec la commande
-  |\NiceMatrixOptions|, mais elles peuvent aussi être passées en option du |\usepackage| (ce sont les trois
-  seules).}
+Les techniques habituelles pour tracer des filets peuvent être utilisées dans les environnements de
+\pkg{nicematrix}, à l'exception de |\vline|.
+
+\subsection{L'épaisseur et la couleur des filets}
+
+Les environnements de \pkg{nicematrix} proposent une clé |rules/width| pour fixer la largeur (en fait l'épaisseur)
+des filets dans l'environnement. En fait, cette clé ne fait que fixer la valeur de |\arrayrulewidth|.
 
 \smallskip
+On sait que \pkg{colortbl} propose la commande |\arrayrulecolor| pour spécifier la couleur de ces filets.
 
-\begin{itemize}
-\item L'option |renew-dots|\par\nobreak 
+\smallskip
+Avec \pkg{nicematrix}, il est possible de spécifier une couleur même si \pkg{colortbl} n'est pas chargé. Par souci
+de compatibilité, la commande est nommée également |\arrayrulecolor|. Les environnements de \pkg{nicematrix}
+proposent également une clé |rules/color| qui permet de fixer cette couleur pour l'environnement en question.
 
-Avec cette option, les commandes |\ldots|, |\cdots|, |\vdots|, |\ddots|, |\iddots|\footnotemark[\thefniddots] et
-|\hdotsfor| sont redéfinies dans les environnements de \pkg{nicematrix} et agissent alors comme |\Ldots|, |\Cdots|,
-|\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| ; la commande |\dots| (points de suspension «automatiques» de
-|amsmath|) est aussi redéfinie et se comporte comme |\Ldots|.
+\medskip
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
+\begin{NiceTabular}{|CCC|}[~emphase#rules/color=[gray]{0.9},rules/width=1pt@]
+\hline
+rose & tulipe & lys \\
+arum & iris & violette \\
+muguet & dahlia & souci \\
+\hline
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{|CCC|}[rules/color=[gray]{0.9},rules/width=1pt]
+\hline
+rose & tulipe & lys \\
+arum & iris & violette \\
+muguet & dahlia & souci \\
+\hline
+\end{NiceTabular}
+\end{scope}
 
-\item L'option |renew-matrix|\par\nobreak 
+\medskip
+Si on veut définir de nouveaux spécificateurs de colonnes pour des filets (par exemple plus épais ou bien d'une
+couleur spécifique), on aura peut-être intérêt à utiliser la commande |\OnlyMainNiceMatrix| décrite p.~\pageref{OnlyMainNiceMatrix}.
 
-Avec cette option, l'environnement |{matrix}| est redéfini et se comporte comme |{NiceMatrix}| et il en est de même
-pour les cinq variantes.
-\end{itemize}
 
-\bigskip 
-Par conséquent, avec l'option |transparent|, un code classique donne directement le résultat fourni par
-\pkg{nicematrix}.\par\nobreak
 
 \bigskip
-\begin{scope}
-\NiceMatrixOptions{transparent}
+\subsection{Une remarque concernant \textbackslash cline}
+
+\label{remark-cline}
+
+Les traits verticaux et horizontaux que l'on insère avec |\hline| et le spécificateur de colonne «\verb+|+» de
+\pkg{array} rendent le tableau plus large ou plus long d'une quantité égale à la largeur du trait.
+
+\smallskip
+Pour des raisons historiques, il n'en est pas de même pour la commande |\cline|, comme on peut le voir avec
+l'exemple suivant.
+
+\medskip
 \begin{BVerbatim}[baseline=c,boxwidth=10cm]
-~emphase#\NiceMatrixOptions{transparent}@
-\begin{pmatrix}
-1      & \cdots & \cdots & 1      \\
-0      & \ddots &        & \vdots \\
-\vdots & \ddots & \ddots & \vdots \\
-0      & \cdots & 0      & 1
-\end{pmatrix}
+\setlength{\arrayrulewidth}{2pt}
+\begin{tabular}{cccc} \hline
+A&B&C&D \\ ~emphase#\cline{2-2}@
+A&B&C&D \\ \hline
+\end{tabular}
 \end{BVerbatim}
-$\begin{pmatrix}
-1      & \cdots & \cdots & 1      \\
-0      & \ddots &        & \vdots \\
-\vdots & \ddots & \ddots & \vdots \\
-0      & \cdots & 0      & 1
-\end{pmatrix}$
+%
+\begin{scope}
+\setlength{\arrayrulewidth}{2pt}
+\begin{tabular}[c]{cccc}
+\hline
+A&B&C&D \\
+\cline{2-2}
+A&B&C&D \\
+\hline
+\end{tabular}
 \end{scope}
 
+\medskip
+Dans les environnements de \pkg{nicematrix}, cette situation est corrigée (il est néanmoins possible de revenir au
+comportement par défaut de |\cline| avec la clé |standard-cline|).
 
-\subsection{Les labels des lignes en pointillés}
-
-Les commandes |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| (ainsi que la commande |\line| dans
-le |code-after| décrite p.~\pageref{line-in-code-after}) peuvent en fait prendre deux arguments optionnels
-spécifiés par les caractères |_| et |^| pour des labels situés au-dessous et au-dessus de la ligne. Les arguments
-sont composés en mode mathématique avec |\scriptstyle|.
-
+\medskip
 \begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$\begin{bNiceMatrix}
-1 & \hspace*{1cm}            & 0 \\[8mm]
-  & ~emphase#\Ddots^{n \text{ times}}@ &   \\
-0 &                          & 1 
-\end{bNiceMatrix}$
+\setlength{\arrayrulewidth}{2pt}
+\begin{NiceTabular}{CCCC} \hline
+A&B&C&D \\ ~emphase#\cline{2-2}@
+A&B&C&D \\ \hline
+\end{NiceTabular}
 \end{BVerbatim}
-$\begin{bNiceMatrix}
-1 & \hspace*{1cm}            & 0 \\[8mm]
-  & \Ddots^{n \text{ times}} &   \\
-0 &                          & 1 
-\end{bNiceMatrix}$
+%
+\begin{scope}
+\setlength{\arrayrulewidth}{2pt}
+\begin{NiceTabular}[c]{CCCC}
+\hline
+A&B&C&D \\
+\cline{2-2}
+A&B&C&D \\
+\hline
+\end{NiceTabular}
+\end{scope}
 
-\subsection{Personnalisation des lignes en pointillés}
 
+\bigskip
+\subsection{Les clés hlines et vlines}
 
-\label{customization}
-Les lignes pointillées tracées par |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| (ainsi que par la
-commande |\line| dans le |code-after| décrite p.~\pageref{line-in-code-after}) peuvent être
-paramétrées par trois options (que l'on met entre crochets après la commande) :
-%
-\begin{itemize}
-\item |color| ;
-\item |shorten| ; 
-\item |line-style|.
-\end{itemize}
-
-Ces options peuvent aussi être fixées avec |\NiceMatrixOptions| ou bien au niveau d'un environnement mais elles
-doivent alors être préfixées par |xdots|, ce qui fait que leurs noms deviennent :
-%
-\begin{itemize}
-\item |xdots/color| ;
-\item |xdots/shorten| ; 
-\item |xdots/line-style|.
-\end{itemize}
-%
-Pour la clarté, dans la suite, on utilisera ces noms-là.
+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 environnements avec délimiteurs (comme |{pNiceMatrix}| ou |{bNiceArray}|), les
+filets extérieurs ne sont pas tracés (ce qui est le comportement certainement attendu).
 
-\bigskip
-\textbf{L'option xdots/color}\par\nobreak
 
-\smallskip
-L'option |xdots/color| indique bien entendu la couleur de la ligne tracée. On remarquera néanmoins que les lignes
-tracées dans les rangées et colonnes extérieures (décrites plus loin) bénificient d'un régime spécial : cf.
-p.~\pageref{exterior}.
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
+$\begin{pNiceMatrix}[~emphase#vlines@,rules/width=0.2pt]
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 
+\end{pNiceMatrix}$
+\end{BVerbatim}
+$\begin{pNiceMatrix}[vlines,rules/width=0.2pt]
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 \\
+1 & 2 & 3 & 4 & 5 & 6 
+\end{pNiceMatrix}$
 
 
 \bigskip
-\textbf{L'option xdots/shorten}\par\nobreak
+Il y a néanmoins une différence entre l'utilisation de l'option |vlines| et du spécificateur «\verb+|+» dans le
+préambule de l'environnement : les filets tracés par |vlines| traversent les double-filets horizontaux tracés par
+|\hline\hline| (il n'y a pas besoin d'utiliser \pkg{hhline}).
 
-\smallskip
-L'option |xdots/shorten| indique la marge qui est laissée aux deux extrémités de la ligne. Le nom s'inspire des options
-«|shorten >|» et «|shorten <|» de Tikz, mais il faut remarquer que \pkg{nicematrix} ne propose que |xdots/shorten|.
-La valeur initiale de ce paramètre est de $0.3$~em (il est conseillé d'utiliser une unité de mesure dépendante de
-la fonte courante).
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11.5cm]
+$\begin{NiceMatrix}[~emphase#vlines@] \hline
+a & b & c & d \\ \hline \hline
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\ \hline
+\end{NiceMatrix}$
+\end{BVerbatim}
+%
+$\begin{NiceMatrix}[vlines]
+\hline
+a & b & c & d \\
+\hline \hline
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+\hline
+\end{NiceMatrix}$
 
 
 \bigskip
-\textbf{L'option xdots/line-style}\par\nobreak
+Si vous utilisez \pkg{booktabs} (qui fournit |\toprule|, |\midrule|, |\bottomrule|, etc.) et que vous tenez
+absolument à mettre des filets verticaux (ce qui est contraire à l'esprit à \pkg{booktabs}), sachez que la clé
+|vlines| est compatible avec \pkg{booktabs}.
 
-\smallskip
-Il faut savoir que, par défaut, les lignes de Tikz tracées avec le paramètre |dotted| sont composées de points
-carrés et non pas ronds.\footnote{La raison de départ est que le format \textsc{pdf} comporte un système de description
-  de lignes en tiretés, qui, puisqu'il est incorporé dans le \textsc{pdf}, est affiché très rapidement par les
-  lecteurs de \textsc{pdf}. Il est facile à partir de ce type de ligne de créer des lignes de points carrés alors
-  qu'une ligne de points ronds doit être construite explicitement point par point.}
-
-\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-\tikz \draw [dotted] (0,0) -- (5,0) ;
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11.5cm]
+$\begin{NiceMatrix}[~emphase#vlines@] \toprule
+a & b & c & d \\ \midrule
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\ \bottomrule
+\end{NiceMatrix}$
 \end{BVerbatim}
-\tikz \draw [dotted] (0,0) -- (5,0) ;
+%
+$\begin{NiceMatrix}[vlines]
+\toprule
+a & b & c & d \\
+\midrule
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+\bottomrule
+\end{NiceMatrix}$
 
-\bigskip
-Voulant proposer des lignes avec des points ronds dans le style de celui de |\ldots| (au moins celui des fontes
-\emph{Computer Modern}), l'extension \pkg{nicematrix} contient en interne son propre système de ligne en pointillés
-(qui, au passage, n'utilise que \pkg{pgf} et non \pkg{tikz}). Ce style est appelé le style |standard|. Cette valeur
-est la valeur initiale du paramètre |xdots/line-style|.
 
-\bigskip
-Néanmoins (quand Tikz est chargé), on peut utiliser pour |xdots/line-style| n'importe quel style proposé par Tikz,
-c'est-à-dire n'importe quelle suite d'options Tikz applicables à un chemin (à l'exception de «|color|», 
-«|shorten >|» et «|shorten <|»). 
+\subsection{La clé hvlines}
+\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| 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}).}
 
 \medskip
-Voici par exemple une matrice tridiagonale avec le style |loosely dotted| :\par\nobreak
+\begin{Verbatim}
+\begin{NiceTabular}{CCCC}[~emphase#hvlines@,rules/color=blue,rules/width=1pt]
+rose      & tulipe & marguerite & dahlia \\
+violette  & \Block{2-2}{\LARGE\color{blue} fleurs}  & & souci \\
+pervenche & & & lys \\
+arum      & iris & jacinthe & muguet 
+\end{NiceTabular}
+\end{Verbatim}
+%
+\begin{center}
+\begin{NiceTabular}{CCCC}[hvlines,rules/color=blue,rules/width=1pt]
+rose      & tulipe & marguerite & dahlia \\
+violette  & \Block{2-2}{\LARGE\color{blue} fleurs}  & & souci \\
+pervenche & & & lys \\
+arum      & iris & jacinthe & muguet 
+\end{NiceTabular}
+\end{center}
+
+
+
+\subsection{La commande \textbackslash diagbox}
+
+La commande |\diagbox| (inspirée par l'extension \pkg{diagbox}) permet, quand elle est utilisée dans une case, de
+couper cette case selon une diagonale descendante.\footnote{L'auteur de ce document considère que ce type de
+  construction est un piètre choix graphique.}
 
 \medskip
-\begin{BVerbatim}[baseline=c]
-$\begin{pNiceMatrix}[nullify-dots,~emphase#xdots/line-style=loosely dotted@]
-a      & b      & 0      &        & \Cdots & 0      \\ 
-b      & a      & b      & \Ddots &        & \Vdots \\
-0      & b      & a      & \Ddots &        &        \\
-       & \Ddots & \Ddots & \Ddots &        & 0      \\
-\Vdots &        &        &        &        & b      \\
-0      & \Cdots &        & 0      & b      & a
-\end{pNiceMatrix}$
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+$\begin{NiceArray}{*{5}{C}}[hvlines]
+~emphase#\diagbox{x}{y}@  & e & a & b & c \\
+e & e & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e 
+\end{NiceArray}$
 \end{BVerbatim}
+$\begin{NiceArray}{*{5}{C}}[hvlines]
+\diagbox{x}{y}  & e & a & b & c \\
+e & e & a & b & c \\
+a & a & e & c & b \\
+b & b & c & e & a \\
+c & c & b & a & e 
+\end{NiceArray}$
 
 
-\[\begin{pNiceMatrix}[nullify-dots,xdots/line-style=loosely dotted]
-a      & b      & 0      &        & \Cdots & 0      \\ 
-b      & a      & b      & \Ddots &        & \Vdots \\
-0      & b      & a      & \Ddots &        &        \\
-       & \Ddots & \Ddots & \Ddots &        & 0      \\
-\Vdots &        &        &        &        & b      \\
-0      & \Cdots &        & 0      & b      & a
-\end{pNiceMatrix}\]
 
 
-\section{Les nœuds PGF-Tikz créés par l'extension nicematrix}
 
-\label{name}
+\subsection{Filets en pointillés}
 
-L'extension \pkg{nicematrix} crée un nœud PGF-Tikz pour chaque case (non vide) du tableau considéré. Ces nœuds sont
-utilisés pour tracer les lignes en pointillés entre les cases du tableau. Toutefois, l'utilisateur peut aussi
-utiliser directement ces nœuds (s'il a chargé Tikz\footnote{On rappelle que depuis la version 3.13,
-  \pkg{nicematrix} ne charge plus Tikz par défaut, mais seulement \textsc{pgf} (Tikz est une surcouche de
-  \textsc{pgf}).}). On commence par donner un nom au tableau (avec l'option |name|). Cela étant fait, les nœuds
-sont accessibles à travers les noms «\textsl{nom}-$i$-$j$» où \textsl{nom} est le nom donné au tableau et $i$ et
-$j$ les numéros de rangée et de colonne de la case considérée.
+
+Dans les environnements de \pkg{nicematrix}, il est possible d'utiliser la commande |\hdottedline| (fournie
+par \pkg{nicematrix}) qui est l'équivalent pour les pointillés des commandes |\hline| et |\hdashline|
+(cette dernière étant une commande de \pkg{arydshln}).
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-$\begin{pNiceMatrix}[name=~emphase#ma-matrice@]
-1 & 2 & 3 \\
-4 & 5 & 6 \\
-7 & 8 & 9 
-\end{pNiceMatrix}$
-\tikz[remember picture,overlay] 
-     \draw ~emphase#(ma-matrice-2-2)@ circle (2mm) ; 
+\begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
+\begin{pNiceMatrix}
+1 & 2 & 3 & 4 & 5 \\
+~emphase#\hdottedline@
+6 & 7 & 8 & 9 & 10 \\
+11 & 12 & 13 & 14 & 15 
+\end{pNiceMatrix}
 \end{BVerbatim}
-$\begin{pNiceMatrix}[name=ma-matrice]
-1 & 2 & 3 \\
-4 & 5 & 6 \\
-7 & 8 & 9 
+$\begin{pNiceMatrix}
+1 & 2 & 3 & 4 & 5 \\
+\hdottedline
+6 & 7 & 8 & 9 & 10 \\
+11 & 12 & 13 & 14 & 15 
 \end{pNiceMatrix}$
-\tikz[remember picture,overlay] 
-     \draw (ma-matrice-2-2) circle (2mm) ; 
+
+
+\bigskip
+Dans les environnements avec un préambule explicite (comme |{NiceTabular}|, |{NiceArray}|, etc.), il est possible
+de dessiner un trait vertical en pointillés avec le spécificateur «|:|».
 
 \medskip
-Ne pas oublier les options |remember picture| et |overlay|.
+\begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
+\begin{pNiceArray}{CCCC~emphase#:@C}
+1 & 2 & 3 & 4 & 5 \\
+6 & 7 & 8 & 9 & 10 \\
+11 & 12 & 13 & 14 & 15 
+\end{pNiceArray}
+\end{BVerbatim}
+$\begin{pNiceArray}{CCCC:C}
+1 & 2 & 3 & 4 & 5 \\
+6 & 7 & 8 & 9 & 10 \\
+11 & 12 & 13 & 14 & 15 
+\end{pNiceArray}$
 
 \bigskip
-Dans l'exemple suivant, nous avons surligné toutes les cases de la matrice.
-\[\begin{pNiceMatrix}
-a & a + b & a + b + c \\
-a & a     & a + b  \\
-a & a     & a 
-\CodeAfter
-\begin{tikzpicture}[ 
-                     every node/.style = 
-                       { 
-                         blend mode = multiply,
-                         inner sep = 0 pt ,
-                         fill = red!15
-                       }
-                   ]
-\node [fit = (1-1)] {} ;
-\node [fit = (1-3)] {} ;
-\node [fit = (2-2)] {} ;
-\node [fit = (3-1)] {} ;
-\node [fit = (3-3)] {} ;
-\node [fit = (1-2)] {} ;
-\node [fit = (2-1)] {} ;
-\node [fit = (2-3)] {} ;
-\node [fit = (3-2)] {} ;
-\end{tikzpicture}
-\end{pNiceMatrix}\]
+Il est possible de changer dans \pkg{nicematrix} la lettre utilisée pour indiquer dans le préambule un trait
+vertical en pointillés avec l'option |letter-for-dotted-lines| disponible dans |\NiceMatrixOptions|.
 
 
 \bigskip
-En fait, l'extension \pkg{nicematrix} peut créer deux séries de nœuds supplémentaires (\emph{extra nodes} en
-anglais) : les «nœuds moyens» (\emph{medium nodes} en anglais) et les «nœuds larges» (\emph{large nodes} en
-anglais). Les premiers sont créés avec l'option |create-medium-nodes| et les seconds avec l'option
-|create-large-nodes|.\footnote{Il existe aussi l'option |create-extra-nodes| qui est un alias pour la conjonction
-de |create-medium-nodes| et |create-large-nodes|.}
+\emph{Remarque} : Quand l'extension \pkg{array} (sur laquelle s'appuie \pkg{nicematrix}) est chargée, les traits
+verticaux et horizontaux que l'on insère rendent le tableau plus large ou plus long d'une quantité égale à la
+largeur du trait\footnote{En fait, cela est vrai pour |\hline| et «\verb+|+» mais pas pour |\cline|.}. Avec
+\pkg{nicematrix}, les lignes en pointillés tracées par |\hdottedline| et «|:|» ont le même effet.
 
-\medskip
-Les noms des «nœuds moyens» s'obtiennent en ajoutant le suffixe «|-medium|» au nom des nœuds normaux. Dans
-l'exemple suivant, on a surligné tous les «nœuds moyens». Nous considérons que cet exemple se suffit à lui-même
-comme définition de ces nœuds.
-\[\begin{pNiceMatrix}[
- create-medium-nodes,
- code-after = {\begin{tikzpicture}
-                  [every node/.style = {fill = red!15,
-                                        blend mode = multiply,
-                                        inner sep = 0 pt},
-                   name suffix = -medium]
-               \node [fit = (1-1)] {} ;
-               \node [fit = (1-2)] {} ;
-               \node [fit = (1-3)] {} ;
-               \node [fit = (2-1)] {} ;
-               \node [fit = (2-2)] {} ;
-               \node [fit = (2-3)] {} ;
-               \node [fit = (3-1)] {} ;
-               \node [fit = (3-2)] {} ;
-               \node [fit = (3-3)] {} ;
-               \end{tikzpicture}}]
-a & a + b & a + b + c \\
-a & a     & a + b  \\
-a & a     & a 
-\end{pNiceMatrix}\]
 
 
-\medskip
-Les noms des «nœuds larges» s'obtiennent en ajoutant le suffixe «|-large|» au nom des nœuds normaux. Dans l'exemple
-suivant, on a surligné tous les «nœuds larges». Nous considérons que cet exemple se suffit à lui-même comme
-définition de ces nœuds.\footnote{Il n'y a pas de «nœuds larges» créés dans les rangées et colonnes extérieures
-  (pour ces rangées et colonnes, voir p.~\pageref{exterior}).}
 
-\[\begin{pNiceMatrix}[
- create-large-nodes,
- code-after = {\begin{tikzpicture}
-                  [every node/.style = {blend mode = multiply,
-                                        inner sep = 0 pt},
-                   name suffix = -large]
-               \node [fit = (1-1),fill = red!15] {} ;
-               \node [fit = (1-3),fill = red!15] {} ;
-               \node [fit = (2-2),fill = red!15] {} ;
-               \node [fit = (3-1),fill = red!15] {} ;
-               \node [fit = (3-3),fill = red!15] {} ;
-               \node [fit = (1-2),fill = blue!15] {} ;
-               \node [fit = (2-1),fill = blue!15] {} ;
-               \node [fit = (2-3),fill = blue!15] {} ;
-               \node [fit = (3-2),fill = blue!15] {} ;
-               \end{tikzpicture}}]
-a & a + b & a + b + c \\
-a & a     & a + b  \\
-a & a     & a 
-\end{pNiceMatrix}\]
+\section{Les couleurs des rangées et des colonnes}
 
+L'extension \pkg{colortbl} permet de colorier des cases, des rangées ou des colonnes d'un tableau. Néanmoins,
+l'affichage du \textsc{pdf} résultant n'est pas toujours parfait, en particulier quand on utilise également des
+filets. Dans certains lecteurs de \textsc{pdf}, des filets verticaux semblent disparaître. De fines lignes blanches
+peuvent également apparaître.
 
 \medskip
-Les «nœuds larges» de la première colonne et de la dernière colonne peuvent apparaître trop petits pour certains
-usages. C'est pourquoi il est possible d'utiliser les options |left-margin| et |right-margin| pour ajouter de
-l'espace des deux côtés du tableau et aussi de l'espace dans les «nœuds larges» de la première colonne et de la
-dernière colonne. Dans l'exemple suivant, nous avons utilisé les options |left-margin| et
-|right-margin|.\footnote{Les options |left-margin| et |right-margin| prennent des dimensions comme valeurs mais, si
-  aucune valeur n'est donnée, c'est la valeur par défaut qui est utilisée et elle est égale à |\arraycolsep| (par
-  défaut, 5~pt).Il existe aussi une option |margin| pour fixer à la fois |left-margin| et |right-margin|.}
-\[\begin{pNiceMatrix}[
- create-large-nodes,left-margin,right-margin,
- code-after = {\begin{tikzpicture}
-                  [every node/.style = {blend mode = multiply,
-                                        inner sep = 0 pt},
-                   name suffix = -large]
-               \node [fit = (1-1),fill = red!15] {} ;
-               \node [fit = (1-3),fill = red!15] {} ;
-               \node [fit = (2-2),fill = red!15] {} ;
-               \node [fit = (3-1),fill = red!15] {} ;
-               \node [fit = (3-3),fill = red!15] {} ;
-               \node [fit = (1-2),fill = blue!15] {} ;
-               \node [fit = (2-1),fill = blue!15] {} ;
-               \node [fit = (2-3),fill = blue!15] {} ;
-               \node [fit = (3-2),fill = blue!15] {} ;
-               \end{tikzpicture}}]
-a & a + b & a + b + c \\
-a & a     & a + b  \\
-a & a     & a 
-\end{pNiceMatrix}\]
+L'extension \pkg{nicematrix} propose des outils similaires qui ne présentent pas ces inconvénients. Elle propose
+une clé |code-before|\footnote{Il existe aussi une clé |code-after| : cf. p.~\pageref{code-after}.} pour du code
+qui sera exécuté \emph{avant} le tracé du tableau. Dans ce |code-before|, de nouvelles commandes sont disponibles :
+|\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors| et |\chessboardcolors|.
+\label{code-before}
 
 \medskip
-Il est aussi possible d'ajouter de l'espace sur les côtés du tableau avec les options |extra-left-margin| et
-|extra-right-margin|. Ces marges ne sont pas incorporées dans les «nœuds larges». Dans l'exemple suivant, nous
-avons utilisé |extra-left-margin| et |extra-right-margin| avec la valeur $3$~pt.
-\[\begin{pNiceMatrix}[
- create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt,
- code-after = {\begin{tikzpicture}
-                  [every node/.style = {blend mode = multiply,
-                                        inner sep = 0 pt},
-                   name suffix = -large]
-               \node [fit = (1-1),fill = red!15] {} ;
-               \node [fit = (1-3),fill = red!15] {} ;
-               \node [fit = (2-2),fill = red!15] {} ;
-               \node [fit = (3-1),fill = red!15] {} ;
-               \node [fit = (3-3),fill = red!15] {} ;
-               \node [fit = (1-2),fill = blue!15] {} ;
-               \node [fit = (2-1),fill = blue!15] {} ;
-               \node [fit = (2-3),fill = blue!15] {} ;
-               \node [fit = (3-2),fill = blue!15] {} ;
-               \end{tikzpicture}}]
-a & a + b & a + b + c \\
-a & a     & a + b  \\
-a & a     & a 
-\end{pNiceMatrix}\]
+Ces outils sont indépendants de \pkg{colortbl}.\footnote{On peut donc colorier les filets, les cellules, les
+  rangées, les colonnes, etc. sans charger \pkg{colortbl}. Le présent document ne charge pas \pkg{colortbl}.}
 
 \medskip
-Dans le cas présent, si on veut un contrôle sur la hauteur des rangées, on peut ajouter un |\strut| dans chaque
-rangée du tableau.
-\[\begin{pNiceMatrix}[
- create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt,
- code-after = {\begin{tikzpicture}
-                  [every node/.style = {blend mode = multiply,
-                                        inner sep = 0 pt},
-                   name suffix = -large]
-               \node [fit = (1-1),fill = red!15] {} ;
-               \node [fit = (1-3),fill = red!15] {} ;
-               \node [fit = (2-2),fill = red!15] {} ;
-               \node [fit = (3-1),fill = red!15] {} ;
-               \node [fit = (3-3),fill = red!15] {} ;
-               \node [fit = (1-2),fill = blue!15] {} ;
-               \node [fit = (2-1),fill = blue!15] {} ;
-               \node [fit = (2-3),fill = blue!15] {} ;
-               \node [fit = (3-2),fill = blue!15] {} ;
-               \end{tikzpicture}}]
-\strut a & a + b & a + b + c \\
-\strut a & a     & a + b  \\
-\strut a & a     & a 
-\end{pNiceMatrix}\]
+Toutes ces commandes acceptent un argument optionnel (entre crochets et en première position) qui est le modèle
+colorimétrique pour la spécification des couleurs.
 
-\bigskip
-On explique plus loin comment surligner les nœuds créés par Tikz (cf. p. \pageref{highlight}).
-
-\section{Le code-after}
-
-\label{code-after}
+\medskip
+\begin{itemize}
+\item La commande |\cellcolor| tient son nom de la commande |\cellcolor| de \pkg{colortbl}.
 
-L'option |code-after| peut être utilisée pour indiquer du code qui sera exécuté après la construction de la matrice,
-et donc, en particulier, après la construction de tous les nœuds.
+Elle prend en arguments obligatoires une couleur et une liste de cases sous le format $i$-$j$ où $i$ est le
+numéro de ligne et $j$ le numéro de colonne.
 
-\textbf{Si on a chargé Tikz}\footnote{On rappelle que depuis la version 3.13, \pkg{nicematrix} ne charge plus Tikz
-  par défaut, mais seulement \textsc{pgf} (Tikz est une surcouche de \textsc{pgf}).}, on peut accéder à ces nœuds
-avec des instructions Tikz classiques. Les nœuds devront être désignés sous la forme $i$-$j$ (sans le préfixe
-correspondant au nom de l'environnement).
+\medskip
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[boxwidth=10cm,baseline=c]
+\begin{NiceTabular}{|C|C|C|}[code-before = ~emphase#\cellcolor{red!15}{3-1,2-2,1-3}@]
+\hline
+a & b & c \\ \hline
+e & f & g \\ \hline
+h & i & j \\ \hline
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{|C|C|C|}[code-before = \cellcolor{red!15}{3-1,2-2,1-3}]
+\hline
+a & b & c \\ \hline
+e & f & g \\ \hline
+h & i & j \\ \hline
+\end{NiceTabular}
+\end{scope}
 
-De plus, une commande spéciale, nommée |\line| est disponible pour tracer directement des lignes en pointillés
-entre les nœuds). Elle peut par exemple être utilisée pour tracer une ligne entre deux cases adjacentes comme dans
-l'exemple suivant.
-\label{line-in-code-after}
+\bigskip
+\item La commande |\rectanglecolor| prend trois arguments obligatoires. Le premier est la couleur, les deux
+suivants fournissent la case en haut à gauche et la case en bas à droite du rectangle.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-\NiceMatrixOptions{xdots/shorten = 0.6 em}
-\begin{pNiceMatrix}[~emphase#code-after=\line{2-2}{3-3}@]
-I       & 0      & \Cdots  &0     \\
-0       & I      & \Ddots  &\Vdots\\
-\Vdots  &\Ddots  & I       &0     \\
-0       &\Cdots  & 0       &I
-\end{pNiceMatrix}
-\end{BVerbatim}
 \begin{scope}
-\NiceMatrixOptions{xdots/shorten = 0.6 em}
-$\begin{pNiceMatrix}[code-after=\line{2-2}{3-3}]
-I       & 0      & \Cdots  &0     \\
-0       & I      & \Ddots  &\Vdots\\
-\Vdots  &\Ddots  & I       &0     \\
-0       &\Cdots  & 0       &I
-\end{pNiceMatrix}$
+\hfuzz=10cm
+\begin{BVerbatim}[boxwidth=10cm,baseline=c]
+\begin{NiceTabular}{|C|C|C|}[code-before = ~emphase#\rectanglecolor{blue!15}{2-2}{3-3}@]
+\hline
+a & b & c \\ \hline
+e & f & g \\ \hline
+h & i & j \\ \hline
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{|C|C|C|}[code-before = \rectanglecolor{blue!15}{2-2}{3-3}]
+\hline
+a & b & c \\ \hline
+e & f & g \\ \hline
+h & i & j \\ \hline
+\end{NiceTabular}
 \end{scope}
 
+
+
+\bigskip
+\item La commande |\rowcolor| doit son nom à la commande |\rowcolor| de \pkg{colortbl}. Son premier argument
+obligatoire est la couleur et le deuxième est une liste de numéros de rangées ou bien d'intervalles de rangées sous
+la forme $a$-$b$ (un intervalle de la forme $a$- représente toutes les rangées à partir de la rangée~$a$).
+
 \medskip
-Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on peut spécifier les instructions du
-|code-after| à la fin de l'environnement, après le mot-clé |\CodeAfter|. Pour un exemple, voir page
-\pageref{exemple-CodeAfter}.
 
-\section{Les environnements \{NiceArray\} et \{NiceTabular\}}
-\label{NiceArray}
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[boxwidth=9cm,baseline=c]
+$\begin{NiceArray}{LLL}[hvlines, ~emphase#code-before = \rowcolor{red!15}{1,3-5,8-}@]
+a_1 & b_1 & c_1 \\
+a_2 & b_2 & c_2 \\
+a_3 & b_3 & c_3 \\
+a_4 & b_4 & c_4 \\
+a_5 & b_5 & c_5 \\
+a_6 & b_6 & c_6 \\
+a_7 & b_7 & c_7 \\
+a_8 & b_8 & c_8 \\
+a_9 & b_9 & c_9 \\
+a_{10} & b_{10} & c_{10} \\
+\end{NiceArray}$
+\end{BVerbatim}
+%
+$\begin{NiceArray}{LLL}%
+[baseline=4,hvlines, code-before = \rowcolor{red!15}{1,3-5,8-}]
+a_1 & b_1 & c_1 \\
+a_2 & b_2 & c_2 \\
+a_3 & b_3 & c_3 \\
+a_4 & b_4 & c_4 \\
+a_5 & b_5 & c_5 \\
+a_6 & b_6 & c_6 \\
+a_7 & b_7 & c_7 \\
+a_8 & b_8 & c_8 \\
+a_9 & b_9 & c_9 \\
+a_{10} & b_{10} & c_{10} \\
+\end{NiceArray}$
+\end{scope}
 
-Les environnements |{NiceArray}| et |{NiceTabular}| sont similaires aux environnements |{array}| et |{tabular}|.
-L'argument obligatoire est le préambule du tableau. Néanmoins, pour des raisons techniques, l'utilisateur doit
-utiliser les lettres |L|, |C| et |R|\footnote{Les types de colonnes |L|, |C| et |R| sont définis localement à
-  l'intérieur de |{NiceArray}| avec la commande |\newcolumntype| de \pkg{array}. Cette définition masque une
-  éventuelle définition précédente.} au lieu de |l|, |c| et |r|. Dans une commande |\multicolumn|, on doit
-également utiliser les lettres |L|, |C| et |R|.
 
-Il est possible d'utiliser les constructions |p{...}|, |m{...}|, |b{...}|, |w{...}{...}|, |W{...}{...}|, \verb+|+,
-|>{...}|, |<{...}|, |@{...}|, |!{...}| et |*{n}{...}|. Néanmoins, dans l'environnement |{NiceArray}| (et ses
-variantes), le contenu des colonnes de type |w| ou |W| est composé en mode mathématique (dans |{array}| de
-\pkg{array}, elles sont composées en mode texte).
+\bigskip
+\item La commande |\columncolor| doit son nom à la commande |\columncolor| de \pkg{colortbl}. Sa syntaxe est
+similaire à celle de |\rowcolor|.
 
 \bigskip
-Sans surprise, l'extension \pkg{nicematrix} fournit également les variantes |{pNiceArray}|, |{vNiceArray}|,
-|{VNiceArray}|, |{bNiceArray}| et |{BNiceArray}|.
+\item La commande |\rowcolors| (avec un \emph{s}) doit son nom à la commande |\rowcolors| de
+\pkg{xcolor}\footnote{La commande |\rowcolors| de \pkg{xcolor} est disponible quand \pkg{xcolor} est chargé avec
+  l'option |table|.}. Le \emph{s} rappelle qu'il y a deux couleurs. Elle colorie alternativement les rangées avec
+les deux couleurs à partir de la rangée dont le numéro est donné en premier argument (obligatoire).
+
+\medskip
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{NiceTabular}{LR}[hlines,code-before = ~emphase#\rowcolors{1}{blue!10}{}@]
+Pierre & 12 \\
+Jacques & 8 \\
+Stéphanie & 18 \\
+Amélie & 20 \\
+Henri & 14 \\
+Estelle & 15 
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{LR}[hlines,code-before = \rowcolors{1}{blue!10}{},baseline=3]
+Pierre & 12 \\
+Jacques & 8 \\
+Stéphanie & 18 \\
+Amélie & 20 \\
+Henri & 14 \\
+Estelle & 15 
+\end{NiceTabular}
+\end{scope}
+
 
-\interitem
-L'un des intérêts de |{pNiceArray}| par rapport à |{pNiceMatrix}| est la possibilité de tracer des filets verticaux
-: 
 
 \bigskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$\left[\begin{NiceArray}{CCCC|C}
-a_1    & ?      & \Cdots & ?       & ?     \\
-0      &        & \Ddots & \Vdots  & \Vdots\\
-\Vdots & \Ddots & \Ddots & ? \\ 
-0      & \Cdots & 0      & a_n     & ?     
-\end{NiceArray}\right]$
-\end{BVerbatim} 
-$\left[\begin{NiceArray}{CCCC|C}
-a_1    & ?      & \Cdots & ?       & ?     \\
-0      &        & \Ddots & \Vdots  & \Vdots\\
-\Vdots & \Ddots & \Ddots & ? \\ 
-0      & \Cdots & 0      & a_n     & ?     
-\end{NiceArray}\right]$
+\item La commande |\chessboardcolors| prend en arguments obligatoires deux couleurs et colorie les cases en
+quinconces avec les deux couleurs.
 
-\interitem
-Un autre intérêt est la possibilité d'utiliser plusieurs types d'alignement de colonnes.
+\medskip
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+$\begin{pNiceMatrix}[R,margin, ~emphase#code-before=\chessboardcolors{red!15}{blue!15}@]
+1 & -1 & 1 \\
+-1 & 1 & -1 \\
+1 & -1 & 1 
+\end{pNiceMatrix}$
+\end{BVerbatim}
+$\begin{pNiceMatrix}%
+[baseline=1, R, margin, code-before = \chessboardcolors{red!15}{blue!15}]
+1 & -1 & 1 \\
+-1 & 1 & -1 \\
+1 & -1 & 1 
+\end{pNiceMatrix}$
+\end{scope}
+
+\medskip
+On a utilisé la clé |R| qui impose que toutes les colonnes soient alignées à droite (cf. p.~\pageref{key-R}).
+\end{itemize}
 
 \bigskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$\begin{pNiceArray}{LCR}
-a_{11}    & \Cdots & a_{1n} \\
-a_{21}    &        & a_{2n} \\
-\Vdots    &        & \Vdots \\
-a_{n-1,1} & \Cdots & a_{n-1,n} 
-\end{pNiceArray}$
+On remarquera que ces commandes sont compatibles avec les commandes de \pkg{booktabs} (|\toprule|, |\midrule|,
+|\bottomrule|, etc).
+
+\medskip
+\begin{scope}
+\hfuzz=10cm
+\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
+\begin{NiceTabular}{LSSSS}%
+[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
+~emphase#\toprule@
+\Block{2-1}{Produit} \\
+\Block{1-3}{dimensions (cm)} & & & 
+\Block{2-1}{\rotate Prix} \\
+~emphase#\cmidrule(rl){2-4}@
+ & L & l & h \\
+~emphase#\midrule@
+petit    & 3   & 5.5  & 1   & 30    \\
+moyen    & 5.5 & 8    & 1.5 & 50.5  \\
+premium  & 8.5 & 10.5 & 2   & 80    \\
+extra    & 8.5 & 10   & 1.5 & 85.5  \\
+spécial  & 12  & 12   & 0.5 & 70    \\
+~emphase#\bottomrule@
+\end{NiceTabular}
 \end{BVerbatim}
-$\begin{pNiceArray}{LCR}
-a_{11}    & \Cdots & a_{1n} \\
-a_{21}    &        & a_{2n} \\
-\Vdots    &        & \Vdots \\
-a_{n-1,1} & \Cdots & a_{n-1,n} 
-\end{pNiceArray}$
+\begin{NiceTabular}[c]{LSSSS}%
+[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
+\toprule
+\Block{2-1}{Produit} & 
+\Block{1-3}{dimensions (cm)} & & & 
+\Block{2-1}{\rotate Prix} \\
+\cmidrule(rl){2-4} 
+ & L & l & h \\
+\midrule
+petit    & 3   & 5.5  & 1   & 30    \\
+moyen    & 5.5 & 8    & 1.5 & 50.5  \\
+premium  & 8.5 & 10.5 & 2   & 80    \\
+extra    & 8.5 & 10   & 1.5 & 85.5  \\
+spécial  & 12  & 12   & 0.5 & 70    \\
+\bottomrule
+\end{NiceTabular}
+\end{scope}
+
+\medskip
+On a utilisé le type de colonne |S| de \pkg{siunitx}.
 
 
+\section{La largeur des colonnes}
+\label{width}
 
-\interitem
-En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un environnement plus général, appelé
-|{NiceArrayWithDelims}|. Les deux premiers arguments obligatoires de cet environnement sont les délimiteurs gauche
-et droit qui seront utilisés dans la construction de la matrice. Il est possible d'utiliser |{NiceArrayWithDelims}|
-si on a besoin de délimiteurs atypiques ou asymétriques.
+Dans les environnements avec un préambule explicite (comme |{NiceTabular}|, |{NiceArray}|, etc.), il est possible
+de fixer la largeur d'une colonne avec les lettres classiques |w| et |W| de l'extension \pkg{array}. Dans
+|{NiceTabular}|, les cases des colonnes de ce type sont composées en mode texte mais, dans |{NiceArray}|,
+|{pNiceArray}|, etc., elles sont composées en mode mathématique (alors que dans |{array}| de \pkg{array}, elles
+sont composées en mode texte).
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-$\begin{~emphase#NiceArrayWithDelims@}
-   {\downarrow}{\uparrow}{CCC}[margin]
-1 & 2 & 3 \\
-4 & 5 & 6 \\
-7 & 8 & 9 
-\end{~emphase#NiceArrayWithDelims@}$
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{NiceTabular}{~emphase#Wc{2cm}@CC}[hvlines]
+Paris  & New York & Madrid \\
+Berlin & London   & Roma    \\
+Rio    & Tokyo    & Oslo 
+\end{NiceTabular}
 \end{BVerbatim}
-$\begin{NiceArrayWithDelims}
-   {\downarrow}{\uparrow}{CCC}[margin]
-1 & 2 & 3 \\
-4 & 5 & 6 \\
-7 & 8 & 9 
-\end{NiceArrayWithDelims}$
+\begin{NiceTabular}{Wc{2cm}CC}[hvlines]
+Paris  & New York & Madrid \\
+Berlin & London   & Roma    \\
+Rio    & Tokyo    & Oslo 
+\end{NiceTabular}
 
-\bigskip
-\subsection{Le positionnement vertical des matrices}
 
-L'extension \pkg{nicematrix} propose aussi une option |baseline| pour la position verticale des matrices. Cette
-option |baseline| prend comme valeur un entier qui indique le numéro de rangée dont la ligne de base servira de
-ligne de base pour le tableau.
+\bigskip
+Dans les environnements de \pkg{nicematrix}, il est aussi possible de fixer la largeur \emph{minimale} de toutes
+les colonnes de la matrice directement avec l'option |columns-width|.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-$A = \begin{pNiceMatrix}[~emphase#baseline=2@]
-\frac{1}{\sqrt{1+p^2}} & p & 1-p \\
-1 & 1 & 1 \\
-1 & p & 1+p
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+$\begin{pNiceMatrix}[~emphase#columns-width = 1cm@]
+1  & 12 & -123 \\
+12 & 0  & 0    \\
+4  & 1  & 2 
 \end{pNiceMatrix}$
 \end{BVerbatim}
-$A = \begin{pNiceMatrix}[baseline=2]
-\frac{1}{\sqrt{1+p^2}} & p & 1-p \\
-1 & 1 & 1 \\
-1 & p & 1+p
+$\begin{pNiceMatrix}[columns-width = 1cm]
+1  & 12 & -123 \\
+12 & 0  & 0    \\
+4  & 1  & 2 
 \end{pNiceMatrix}$
 
+\medskip
+Notez que l'espace inséré entre deux colonnes (égal à 2 |\tabcolsep| dans |{NiceTabular}| et à 2 |\arraycolsep|
+dans les autres environnements) n'est pas supprimé (il est évidemment possible de le supprimer en mettant
+|\tabcolsep| ou |\arraycolsep| à~$0$ avant).
 
-\interitem
-L'option |baseline| peut aussi prendre les trois valeurs spéciales |t|, |c| et |b|. Ces trois lettres peuvent aussi
-être utilisées de manière absolue comme pour l'option de l'environnement |{array}| de \pkg{array}. La valeur
-initiale de |baseline| est~|c|.
+\bigskip
+Il est possible de donner la valeur spéciale |auto| à l'option |columns-width|: toutes les colonnes du tableau
+auront alors une largeur égale à la largeur de la case la plus large du tableau.\footnote{Le résultat est atteint
+  dès la première compilation (mais Tikz écrivant des informations dans le fichier |.aux|, un message demandant une
+  deuxième compilation apparaîtra).}\par\nobreak
 
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+$\begin{pNiceMatrix}[~emphase#columns-width = auto@]
+1  & 12 & -123 \\
+12 & 0  & 0    \\
+4  & 1  & 2 
+\end{pNiceMatrix}$
+\end{BVerbatim}
+$\begin{pNiceMatrix}[columns-width = auto]
+1  & 12 & -123 \\
+12 & 0  & 0    \\
+4  & 1  & 2 
+\end{pNiceMatrix}$
 
 \bigskip
-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 |{array}| de {array}, il faut utiliser |\firsthline|\footnote{On peut aussi utiliser |\firsthline|
-  avec |{NiceArray}|.}).
+Sans surprise, il est possible de fixer la largeur minimale de toutes les colonnes de toutes les matrices dans une
+certaine portion de document avec la commande |\NiceMatrixOptions|.\par\nobreak
 
-\smallskip
-\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-\begin{enumerate}
-\item un item
-\smallskip
-\item \renewcommand{\arraystretch}{1.2}
-$\begin{NiceArray}[t]{LCCCCCC}
-\hline
-n   & 0 & 1 & 2 & 3 & 4  & 5 \\
-u_n & 1 & 2 & 4 & 8 & 16 & 32 
-\hline
-\end{NiceArray}$
-\end{enumerate}
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
+~emphase#\NiceMatrixOptions{columns-width=10mm}@
+$\begin{pNiceMatrix}
+a & b \\ c & d 
+\end{pNiceMatrix}
+= 
+\begin{pNiceMatrix}
+1   & 1245 \\ 345 & 2 
+\end{pNiceMatrix}$
 \end{BVerbatim}
-%
-\begin{minipage}{5cm}
-\begin{enumerate}
-\item un item
-\smallskip
-\item \renewcommand{\arraystretch}{1.2}
-$\begin{NiceArray}[t]{LCCCCCC}
-\hline
-n   & 0 & 1 & 2 & 3 & 4  & 5  \\
-u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
-\hline
-\end{NiceArray}$
-\end{enumerate}
-\end{minipage}
+\begin{scope}
+\NiceMatrixOptions{columns-width=10mm}
+$\begin{pNiceMatrix}
+a & b \\
+c & d 
+\end{pNiceMatrix}
+= 
+\begin{pNiceMatrix}
+1   & 1245 \\
+345 & 2 
+\end{pNiceMatrix}$
+\end{scope}
 
 
 \bigskip
-Il est également possible d'utiliser les outils de \pkg{booktabs}: |\toprule|,
-|\bottomrule| et |\midrule|.\par\nobreak
+Mais il est aussi possible de fixer une zone dans laquelle toutes les matrices auront leurs colonnes de la même
+largeur, égale à la largeur de la case la plus large de toutes les matrices de la zone. Cette construction utilise
+l'environnement |{NiceMatrixBlock}| avec l'option |auto-columns-width|\footnote{Pour le moment, c'est le seul
+  usage de l'environnement |{NiceMatrixBlock}| mais il pourrait y en avoir davantage dans le futur.}.
+L'environnement |{NiceMatrixBlock}| n'a pas de rapport direct avec la commande |\Block| présentée précédemment dans
+ce document (cf.~p.~\pageref{Block}). 
 
-\smallskip
-\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-\begin{enumerate}
-\item an item
-\smallskip
-\item 
-$\begin{NiceArray}[t]{LCCCCCC}
-~emphase#\toprule@
-n   & 0 & 1 & 2 & 3 & 4  & 5 \\
-~emphase#\midrule@
-u_n & 1 & 2 & 4 & 8 & 16 & 32 
-~emphase#\bottomrule@
-\end{NiceArray}$
-\end{enumerate}
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
+~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@
+$\begin{array}{c}
+\begin{bNiceMatrix}
+ 9 & 17 \\ -2 & 5 
+ \end{bNiceMatrix} \\ \\
+\begin{bNiceMatrix}
+ 1   & 1245345 \\  345 & 2 
+\end{bNiceMatrix}
+\end{array}$
+~emphase#\end{NiceMatrixBlock}@
 \end{BVerbatim}
-\begin{minipage}{5cm}
-\begin{enumerate}
-\item an item
-\smallskip
-\item 
-$\begin{NiceArray}[t]{LCCCCCC}
-\toprule
-n   & 0 & 1 & 2 & 3 & 4  & 5  \\
-\midrule
-u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
-\bottomrule
-\end{NiceArray}$
-\end{enumerate}
-\end{minipage}
-
+\begin{NiceMatrixBlock}[auto-columns-width]
+$\begin{array}{c}
+\begin{bNiceMatrix}
+ 9 & 17 \\ -2 & 5 
+ \end{bNiceMatrix} \\ \\
+\begin{bNiceMatrix}
+ 1   & 1245345 \\  345 & 2 
+\end{bNiceMatrix}
+\end{array}$
+\end{NiceMatrixBlock}
 
+\medskip
+\textbf{Plusieurs compilations peuvent être nécessaires pour obtenir le résultat désiré.} 
 
 
 
@@ -1073,7 +1071,7 @@ Les environnements de \pkg{nicematrix} permettent de composer des rangées et de
 \label{exterior}
 
 Si elle est présente, la «première rangée» (extérieure) est numérotée par $0$ (et non $1$). Il en est de même pour
-la «première rangée». 
+la «première colonne». 
 
 \begin{Verbatim}
 $\begin{pNiceMatrix}[~emphase#first-row,last-row,first-col,last-col@,nullify-dots]
@@ -1095,6 +1093,10 @@ L_4    & a_{41} & a_{42} & a_{43} & a_{44} & L_4    \\
        & C_1    & \Cdots &        & C_4    &     
 \end{pNiceMatrix}\]
 
+\medskip
+Les lignes pointillées ont été tracées avec les outils présentés p.~\pageref{Cdots}.
+
+
 \bigskip
 Il y a plusieurs remarques à formuler.
 %
@@ -1171,16 +1173,11 @@ L_4    & a_{41} & a_{42} & a_{43} & a_{44} & L_4    \\
 
 \emph{Remarques}
 \begin{itemize}[beginpenalty=10000]
-\item Comme on peut le voir dans l'exemple précédent, un filet horizontal (tracé avec |\hline|) ne s'étend pas
-dans les colonnes extérieures et un filet vertical (spécifié par un caractère «\verb+|+» dans le préambule du
-tableau) ne s'étend pas dans les rangées extérieures.\footnote{Ce dernier point n'est pas valable si on a chargé,
-  en plus de \pkg{nicematrix}, l'extension \pkg{arydshln}. Les extensions \pkg{nicematrix} et \pkg{arydshln} ne
-  sont pas parfaitement compatibles car \pkg{arydshln} redéfinit beaucoup de structures internes à \pkg{array}. Par
-ailleurs, si on veut vraiment un filet qui s'étende dans la première et la dernière rangée, on peut utiliser
-|!{\vline}| dans le préambule à la place de \verb+|+.}
-
-Si on veut définir de nouveaux spécificateurs de colonnes pour des filets (par exemple plus épais), on aura
-peut-être intérêt à utiliser la commande |\OnlyMainNiceMatrix| décrite p.~\pageref{OnlyMainNiceMatrix}.
+\item Comme on peut le voir dans l'exemple précédent, les filets horizontaux et verticaux ne s'étendent pas dans
+les rangées et colonnes extérieures.
+
+Néanmoins, si on veut définir de nouveaux spécificateurs de colonnes pour des filets (par exemple plus épais), on
+aura sans doute intérêt à utiliser la commande |\OnlyMainNiceMatrix| décrite p.~\pageref{OnlyMainNiceMatrix}.
 \item Une spécification de couleur présente dans |code-for-first-row| s'applique à une ligne pointillée tracée
 dans cette «première rangée» (sauf si une valeur a été donnée à |xdots/color|). Idem pour les autres.
 \item Sans surprise, une éventuelle option |columns-width| (décrite p.~\pageref{width}) ne s'applique pas à la
@@ -1192,476 +1189,540 @@ dans cette «première rangée» (sauf si une valeur a été donnée à |xdots/c
 
 
 
+\section{Les lignes en pointillés continues}
 
-\section[Les lignes en pointillés pour séparer les rangées et les colonnes]{Les lignes en pointillés pour séparer les rangées\\ et les colonnes}
+\label{Cdots}
 
+À l'intérieur des environnements de l'extension \pkg{nicematrix}, de nouvelles commandes sont définies : |\Ldots|,
+|\Cdots|, |\Vdots|, |\Ddots|, et |\Iddots|. Ces commandes sont conçues pour être utilisées à la place de |\dots|,
+|\cdots|, |\vdots|, |\ddots| et |\iddots|.\footnote{La commande |\iddots|, définie dans \pkg{nicematrix}, est une
+  variante de |\ddots| avec les points allant vers le haut. Si \pkg{mathdots} est chargée, la
+  version de \pkg{mathdots} est utilisée. Elle correspond à la commande |\adots| de \pkg{unicode-math}.}
+\newcounter{fniddots} 
+\setcounter{fniddots}{\thefootnote}
 
-Dans les environnements de \pkg{nicematrix}, il est possible d'utiliser la commande |\hdottedline| (fournie
-par \pkg{nicematrix}) qui est l'équivalent pour les pointillés des commandes |\hline| et |\hdashline|
-(cette dernière étant une commande de \pkg{arydshln}).
+\smallskip
+Chacune de ces commandes doit être utilisée seule dans la case du tableau et elle trace une ligne en pointillés
+entre les premières cases non vides\footnote{La définition précise de ce qui est considéré comme une «case vide»
+  est donnée plus loin (cf. p.~\pageref{empty-cells}).} situées de part et d'autre de la case courante. Bien
+entendu, pour |\Ldots| et |\Cdots|, c'est une ligne horizontale ; pour |\Vdots|, c'est une ligne verticale et pour
+|\Ddots| et |\Iddots|, ce sont des lignes diagonales. On peut changer la couleur d'une ligne avec
+l'option~|color|.\footnote{Il est aussi possible de changer la couleur de toutes ces lignes pointillées avec
+  l'option |xdots/color| (\textsl{xdots} pour rappeler que cela s'applique à |\Cdots|, |\Ldots|, |Vdots|, etc.) :
+  cf. p.~\pageref{customization}).
+}\par\nobreak   
 
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
-\begin{pNiceMatrix}
-1 & 2 & 3 & 4 & 5 \\
-~emphase#\hdottedline@
-6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15 
-\end{pNiceMatrix}
+\bigskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{bNiceMatrix}
+a_1      & \Cdots &        & & a_1     \\
+\Vdots   & a_2    & \Cdots & & a_2     \\
+         & \Vdots & \Ddots[color=red] \\
+\\
+a_1      & a_2    &        & & a_n 
+\end{bNiceMatrix}
+\end{BVerbatim}
+$\begin{bNiceMatrix}
+a_1      & \Cdots &        & & a_1   \\
+\Vdots   & a_2    & \Cdots & & a_2   \\
+         & \Vdots & \Ddots[color=red] \\
+\\
+a_1      & a_2    &        & & a_n 
+\end{bNiceMatrix}$
+
+
+
+
+\interitem
+Pour représenter la matrice nulle, on peut choisir d'utiliser le codage suivant :\par\nobreak
+
+\bigskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{bNiceMatrix}
+0      & \Cdots & 0      \\
+\Vdots &        & \Vdots \\
+0      & \Cdots & 0 
+\end{bNiceMatrix}
+\end{BVerbatim}
+$\begin{bNiceMatrix}
+0      & \Cdots & 0      \\
+\Vdots &        & \Vdots \\
+0      & \Cdots & 0 
+\end{bNiceMatrix}$
+
+\bigskip
+On peut néanmoins souhaiter une matrice plus grande. Habituellement, dans un tel cas, les utilisateurs de LaTeX
+ajoutent une nouvelle ligne et une nouvelle colonne. Il est possible d'utiliser la même méthode avec
+\pkg{nicematrix} :\par\nobreak
+
+\bigskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{bNiceMatrix}
+0      & \Cdots & \Cdots & 0      \\
+\Vdots &        &        & \Vdots \\
+\Vdots &        &        & \Vdots \\
+0      & \Cdots & \Cdots & 0 
+\end{bNiceMatrix}
 \end{BVerbatim}
-$\begin{pNiceMatrix}
-1 & 2 & 3 & 4 & 5 \\
-\hdottedline
-6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15 
-\end{pNiceMatrix}$
+$\begin{bNiceMatrix}
+0      & \Cdots & \Cdots & 0      \\
+\Vdots &        &        & \Vdots \\
+\Vdots &        &        & \Vdots \\
+0      & \Cdots & \Cdots & 0 
+\end{bNiceMatrix}$
 
+\bigskip
+Dans la première colonne de cet exemple, il y a deux instructions |\Vdots| mais une seule ligne en pointillés sera
+tracée (il n'y a pas d'objets qui se superposent dans le fichier \textsc{pdf} résultant\footnote{Et il n'est pas
+  possible de tracer une ligne |\Ldots| et une ligne |\Cdots| entre les mêmes cases.}).
 
 \bigskip
-Dans les environnements avec un préambule explicite (comme |{NiceArray}|, |{pNiceArray}|, etc.), il est possible de
-dessiner un trait vertical en pointillés avec le spécificateur «|:|».
+En fait, dans cet exemple, il aurait été possible de tracer la même matrice plus rapidement avec le codage suivant
+:\par\nobreak
 
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
-\begin{pNiceArray}{CCCC~emphase#:@C}
-1 & 2 & 3 & 4 & 5 \\
-6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15 
-\end{pNiceArray}
+\bigskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{bNiceMatrix}
+0       & \Cdots &        & 0      \\
+\Vdots  &        &        &        \\
+        &        &        & \Vdots \\
+0       &        & \Cdots & 0 
+\end{bNiceMatrix}
 \end{BVerbatim}
-$\begin{pNiceArray}{CCCC:C}
-1 & 2 & 3 & 4 & 5 \\
-6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15 
-\end{pNiceArray}$
+$\begin{bNiceMatrix}
+0       & \Cdots &        & 0      \\
+\Vdots  &        &        &        \\
+        &        &        & \Vdots \\
+0       &        & \Cdots & 0 
+\end{bNiceMatrix}$
+
+\bigskip
+Il y a aussi d'autres moyens de changer la taille d'une matrice. On pourrait vouloir utiliser l'argument optionnel
+de la commande~|\\| pour l'espacement vertical et la commande~|\hspace*| dans une case pour l'espacement
+horizontal.\footnote{Dans \pkg{nicematrix}, il faut utiliser |\hspace*| et non |\hspace| car \pkg{nicematrix}
+  utilise \pkg{array}. Remarquons aussi que l'on peut également régler la largeur des colonnes en utilisant l'environnement |{NiceArray}| (ou
+  une de ses variantes) avec une colonne de type~|w| ou |W|: cf. p.~\pageref{width}}
 
+Toutefois, une commande~|\hspace*| pourrait interférer dans la construction des lignes en pointillés. C'est
+pourquoi l'extension \pkg{nicematrix} fournit une commande~|\Hspace| qui est une variante de |\hspace| transparente
+pour la construction des lignes en pointillés de \pkg{nicematrix}.\par\nobreak
 
 \bigskip
-Ces lignes en pointillés ne s'étendent pas dans les rangées et colonnes extérieures.\par\nobreak
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{bNiceMatrix}
+0      & \Cdots & ~emphase#\Hspace*{1cm}@ & 0      \\
+\Vdots &        &               & \Vdots \\~emphase#[1cm]@
+0      & \Cdots &               & 0    
+\end{bNiceMatrix}
+\end{BVerbatim}
+$\begin{bNiceMatrix}
+0      & \Cdots & \Hspace*{1cm} & 0      \\
+\Vdots &        &               & \Vdots \\[1cm]
+0      & \Cdots &               & 0    
+\end{bNiceMatrix}$
+
+\subsection{L'option nullify-dots}
 
+Considérons la matrice suivante qui a été composée classiquement avec l'environnement |{pmatrix}| de
+\pkg{amsmath}.\par\nobreak
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
-$\begin{pNiceArray}{CCC:C}%
-   [first-row,last-col, 
-    code-for-first-row = \color{blue}\scriptstyle,
-    code-for-last-col = \color{blue}\scriptstyle ]
-C_1 & C_2 & C_3 & C_4 \\
-1 & 2 & 3 & 4 & L_1 \\
-5 & 6 & 7 & 8 & L_2 \\
-9 & 10 & 11 & 12 & L_3 \\
-\hdottedline
-13 & 14 & 15 & 16 & L_4 
-\end{pNiceArray}$
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+$A = \begin{pmatrix}
+h & i & j & k & l & m \\
+x &   &   &   &   & x 
+\end{pmatrix}$
 \end{BVerbatim}
-$\begin{pNiceArray}{CCC:C}%
-   [first-row,last-col, 
-    code-for-first-row = \color{blue}\scriptstyle,
-    code-for-last-col = \color{blue}\scriptstyle ]
-C_1 & C_2 & C_3 & C_4 \\
-1 & 2 & 3 & 4 & L_1 \\
-5 & 6 & 7 & 8 & L_2 \\
-9 & 10 & 11 & 12 & L_3 \\
-\hdottedline
-13 & 14 & 15 & 16 & L_4 
-\end{pNiceArray}$
-
-\bigskip
-Il est possible de changer dans \pkg{nicematrix} la lettre utilisée pour indiquer dans le préambule un trait
-vertical en pointillés avec l'option |letter-for-dotted-lines| disponible dans |\NiceMatrixOptions|.
+$A = \begin{pmatrix}
+h & i & j & k & l & m \\
+x   &     &     &    &     & x 
+\end{pmatrix}$
 
 
 \bigskip
-\emph{Remarque} : Quand l'extension \pkg{array} (sur laquelle s'appuie \pkg{nicematrix}) est chargée, les traits
-verticaux et horizontaux que l'on insère rendent le tableau plus large ou plus long d'une quantité égale à la
-largeur du trait\footnote{En fait, cela est vrai pour |\hline| et «\verb+|+» mais pas pour |\cline|.}. Avec
-\pkg{nicematrix}, les lignes en pointillés tracées par |\hdottedline| et «|:|» ont le même effet.
+Si nous ajoutons des instructions |\ldots| dans la seconde rangée, la géométrie de la matrice est
+modifiée.\par\nobreak
 
-\section{La largeur des colonnes}
-\label{width}
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+$B = \begin{pmatrix}
+h & i & j & k & l & m \\
+x & \ldots & \ldots  & \ldots & \ldots & x 
+\end{pmatrix}$
+\end{BVerbatim}
+$B = \begin{pmatrix}
+h & i & j & k & l & m \\
+x   & \ldots   & \ldots  & \ldots & \ldots & x 
+\end{pmatrix}$
 
-Dans les environnements avec un préambule explicite (comme |{NiceArray}|, |{pNiceArray}|, etc.), il est possible de
-fixer la largeur d'une colonne avec les lettres classiques |w| et |W| de l'extension \pkg{array}. Dans les
-environnements de \pkg{nicematrix}, les cases des colonnes de ce type sont composées en mode mathématique (alors
-que dans |{array}| de \pkg{array}, elles sont composées en mode texte).
+\bigskip
+Par défaut, avec \pkg{nicematrix}, si nous remplaçons |{pmatrix}| par |{pNiceMatrix}| et |\ldots| par |\Ldots|, la
+géométrie de la matrice n'est pas changée.\par\nobreak
 
 \medskip
 \begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$\begin{pNiceArray}{~emphase#Wc{1cm}@CC}
-1  & 12 & -123 \\
-12 & 0  & 0    \\
-4  & 1  & 2 
-\end{pNiceArray}$
+$C = \begin{pNiceMatrix}
+h & i & j & k & l & m \\
+x & \Ldots & \Ldots & \Ldots & \Ldots & x 
+\end{pNiceMatrix}$
 \end{BVerbatim}
-$\begin{pNiceArray}{Wc{1cm}CC}
-1  & 12 & -123 \\
-12 & 0  & 0    \\
-4  & 1  & 2 
-\end{pNiceArray}$
-
+$C = \begin{pNiceMatrix}
+h & i & j & k & l & m \\
+x & \Ldots & \Ldots  & \Ldots & \Ldots & x 
+\end{pNiceMatrix}$
 
 \bigskip
-Dans les environnements de \pkg{nicematrix}, il est aussi possible de fixer la largeur \emph{minimale} de toutes
-les colonnes de la matrice directement avec l'option |columns-width|.
+On pourrait toutefois préférer la géométrie de la première matrice $A$ et vouloir avoir la même géométrie avec une
+ligne en pointillés continue dans la seconde rangée. C'est possible en utilisant l'option |nullify-dots| (et une
+seule instruction |\Ldots| suffit).\par\nobreak
 
 \medskip
 \begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$\begin{pNiceMatrix}[~emphase#columns-width = 1cm@]
-1  & 12 & -123 \\
-12 & 0  & 0    \\
-4  & 1  & 2 
+$D = \begin{pNiceMatrix}[~emphase#nullify-dots@]
+h & i & j & k & l & m \\
+x & \Ldots & & & & x 
 \end{pNiceMatrix}$
 \end{BVerbatim}
-$\begin{pNiceMatrix}[columns-width = 1cm]
-1  & 12 & -123 \\
-12 & 0  & 0    \\
-4  & 1  & 2 
+$D = \begin{pNiceMatrix}[nullify-dots]
+h & i & j & k & l & m \\
+x & \Ldots & &  &  & x 
 \end{pNiceMatrix}$
 
 \medskip
-Noter que l'espace inséré entre deux colonnes (égal à 2 |\arraycolsep|) n'est pas supprimé (il est évidemment
-possible de le supprimer en mettant |\arraycolsep| à~$0$ avant).
+L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes) horizontalement mais aussi
+verticalement.
 
-\bigskip
-Il est possible de donner la valeur spéciale |auto| à l'option |columns-width|: toutes les colonnes du tableau
-auront alors une largeur égale à la largeur de la case la plus large du tableau.\footnote{Le résultat est atteint
-  dès la première compilation (mais Tikz écrivant des informations dans le fichier |.aux|, un message demandant une
-  deuxième compilation apparaîtra).}\par\nobreak
+
+\subsection{La commande \textbackslash Hdotsfor}
+
+Certaines personnes utilisent habituellement la commande |\hdotsfor| de l'extension \pkg{amsmath} pour tracer des
+lignes en pointillés horizontales dans une matrice. Dans les environnements de \pkg{nicematrix}, il convient
+d'utiliser |\Hdotsfor| à la place pour avoir les lignes en pointillés similaires à toutes celles tracées par
+l'extension \pkg{nicematrix}.
+
+Comme avec les autres commandes de \pkg{nicematrix} (comme |\Cdots|, |\Ldots|, |\Vdots|, etc.), la ligne en
+pointillés tracée par |\Hdotsfor| s'étend jusqu'au contenu des cases de part et d'autre.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$\begin{pNiceMatrix}[~emphase#columns-width = auto@]
-1  & 12 & -123 \\
-12 & 0  & 0    \\
-4  & 1  & 2 
+\begin{BVerbatim}[baseline=c,boxwidth=7cm]
+$\begin{pNiceMatrix}
+1 & 2 & 3 & 4 & 5 \\
+1 & ~emphase#\Hdotsfor{3}@ & 5 \\
+1 & 2 & 3 & 4 & 5 \\
+1 & 2 & 3 & 4 & 5 
 \end{pNiceMatrix}$
 \end{BVerbatim}
-$\begin{pNiceMatrix}[columns-width = auto]
-1  & 12 & -123 \\
-12 & 0  & 0    \\
-4  & 1  & 2 
+$\begin{pNiceMatrix}
+1 & 2 & 3 & 4 & 5 \\
+1 & \Hdotsfor{3} & 5 \\
+1 & 2 & 3 & 4 & 5 \\
+1 & 2 & 3 & 4 & 5 
 \end{pNiceMatrix}$
 
 \bigskip
-Sans surprise, il est possible de fixer la largeur minimale de toutes les colonnes de toutes les matrices dans une
-certaine portion de document avec la commande |\NiceMatrixOptions|.\par\nobreak
+Néanmoins, si ces cases sont vides, la ligne en pointillés s'étend seulement dans les cases spécifiées par
+l'argument de |\Hdotsfor| (par conception).
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
-~emphase#\NiceMatrixOptions{columns-width=10mm}@
+\begin{BVerbatim}[baseline=c,boxwidth=7cm]
 $\begin{pNiceMatrix}
-a & b \\ c & d 
-\end{pNiceMatrix}
-= 
-\begin{pNiceMatrix}
-1   & 1245 \\ 345 & 2 
+1 & 2 & 3 & 4 & 5 \\
+  & ~emphase#\Hdotsfor{3}@ \\
+1 & 2 & 3 & 4 & 5 \\
+1 & 2 & 3 & 4 & 5 
 \end{pNiceMatrix}$
 \end{BVerbatim}
-\begin{scope}
-\NiceMatrixOptions{columns-width=10mm}
 $\begin{pNiceMatrix}
-a & b \\
-c & d 
-\end{pNiceMatrix}
-= 
-\begin{pNiceMatrix}
-1   & 1245 \\
-345 & 2 
+1 & 2 & 3 & 4 & 5 \\
+  & \Hdotsfor{3} \\
+1 & 2 & 3 & 4 & 5 \\
+1 & 2 & 3 & 4 & 5 
 \end{pNiceMatrix}$
+
+\medskip
+Remarque : Contrairement à la commande |\hdotsfor| de \pkg{amsmath}, la commande |\Hdotsfor| est utilisable lorsque
+l'extension \pkg{colortbl} est chargée (mais vous risquez d'avoir des problèmes si vous utilisez |\rowcolor| sur la
+même rangée que |\Hdotsfor|).
+
+\subsection{Comment créer les lignes en pointillés de manière transparente}
+
+L'extension \pkg{nicematrix} fournit une option appelée |transparent| qui permet d'utiliser du code existant de
+manière transparente dans les environnements de l'\pkg{amsmath} : |{matrix}|, |{pmatrix}|, etc. En fait, cette
+option est un alias pour la conjonction de deux options : |renew-dots| et |renew-matrix|.\footnote{Comme toutes les
+  autres options, les options |renew-dots|, |renew-matrix| et |transparent| peuvent être fixées avec la commande
+  |\NiceMatrixOptions|, mais elles peuvent aussi être passées en option du |\usepackage| (ce sont les trois
+  seules).}
+
+\smallskip
+
+\begin{itemize}
+\item L'option |renew-dots|\par\nobreak 
+
+Avec cette option, les commandes |\ldots|, |\cdots|, |\vdots|, |\ddots|, |\iddots|\footnotemark[\thefniddots] et
+|\hdotsfor| sont redéfinies dans les environnements de \pkg{nicematrix} et agissent alors comme |\Ldots|, |\Cdots|,
+|\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| ; la commande |\dots| (points de suspension «automatiques» de
+|amsmath|) est aussi redéfinie et se comporte comme |\Ldots|.
+
+\item L'option |renew-matrix|\par\nobreak 
+
+Avec cette option, l'environnement |{matrix}| est redéfini et se comporte comme |{NiceMatrix}| et il en est de même
+pour les cinq variantes.
+\end{itemize}
+
+\bigskip 
+Par conséquent, avec l'option |transparent|, un code classique donne directement le résultat fourni par
+\pkg{nicematrix}.\par\nobreak
+
+\bigskip
+\begin{scope}
+\NiceMatrixOptions{transparent}
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+~emphase#\NiceMatrixOptions{transparent}@
+\begin{pmatrix}
+1      & \cdots & \cdots & 1      \\
+0      & \ddots &        & \vdots \\
+\vdots & \ddots & \ddots & \vdots \\
+0      & \cdots & 0      & 1
+\end{pmatrix}
+\end{BVerbatim}
+$\begin{pmatrix}
+1      & \cdots & \cdots & 1      \\
+0      & \ddots &        & \vdots \\
+\vdots & \ddots & \ddots & \vdots \\
+0      & \cdots & 0      & 1
+\end{pmatrix}$
 \end{scope}
 
 
-\bigskip
-Mais il est aussi possible de fixer une zone dans laquelle toutes les matrices auront leurs colonnes de la même
-largeur, égale à la largeur de la case la plus large de toutes les matrices de la zone. Cette construction utilise
-l'environnement |{NiceMatrixBlock}| avec l'option |auto-columns-width|\footnote{Pour le moment, c'est le seul
-  usage de l'environnement |{NiceMatrixBlock}| mais il pourrait y en avoir davantage dans le futur.}.
-L'environnement |{NiceMatrixBlock}| n'a pas de rapport direct avec la commande |\Block| présentée juste ci-dessous
-(cf.~p.~\pageref{Block}). 
+\subsection{Les labels des lignes en pointillés}
 
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
-~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@
-$\begin{pNiceMatrix}
-a & b \\ c & d 
-\end{pNiceMatrix}
-= 
-\begin{pNiceMatrix}
-1   & 1245 \\ 345 & 2 
-\end{pNiceMatrix}$
-~emphase#\end{NiceMatrixBlock}@
+Les commandes |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| (ainsi que la commande |\line| dans
+le |code-after| décrite p.~\pageref{line-in-code-after}) peuvent en fait prendre deux arguments optionnels
+spécifiés par les caractères |_| et |^| pour des labels situés au-dessous et au-dessus de la ligne. Les arguments
+sont composés en mode mathématique avec |\scriptstyle|.
+
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+$\begin{bNiceMatrix}
+1 & \hspace*{1cm}            & 0 \\[8mm]
+  & ~emphase#\Ddots^{n \text{ times}}@ &   \\
+0 &                          & 1 
+\end{bNiceMatrix}$
 \end{BVerbatim}
-\begin{NiceMatrixBlock}[auto-columns-width]
-$\begin{pNiceMatrix}
- a & b \\ c & d 
- \end{pNiceMatrix}
-= 
- \begin{pNiceMatrix}
- 1   & 1245 \\  345 & 2 
-\end{pNiceMatrix}$
-\end{NiceMatrixBlock}
+$\begin{bNiceMatrix}
+1 & \hspace*{1cm}            & 0 \\[8mm]
+  & \Ddots^{n \text{ times}} &   \\
+0 &                          & 1 
+\end{bNiceMatrix}$
 
-\medskip
-\textbf{Plusieurs compilations peuvent être nécessaires pour obtenir le résultat désiré.} 
+\subsection{Personnalisation des lignes en pointillés}
 
-\section{Les matrices par blocs}
 
-\label{Block}
+\label{customization}
+Les lignes pointillées tracées par |\Ldots|, |\Cdots|, |\Vdots|, |\Ddots|, |\Iddots| et |\Hdotsfor| (ainsi que par la
+commande |\line| dans le |code-after| décrite p.~\pageref{line-in-code-after}) peuvent être
+paramétrées par trois options (que l'on met entre crochets après la commande) :
+%
+\begin{itemize}
+\item |color| ;
+\item |shorten| ; 
+\item |line-style|.
+\end{itemize}
+
+Ces options peuvent aussi être fixées avec |\NiceMatrixOptions| ou bien au niveau d'un environnement mais elles
+doivent alors être préfixées par |xdots|, ce qui fait que leurs noms deviennent :
+%
+\begin{itemize}
+\item |xdots/color| ;
+\item |xdots/shorten| ; 
+\item |xdots/line-style|.
+\end{itemize}
+%
+Pour la clarté, dans la suite, on utilisera ces noms-là.
 
-Cette partie, qui introduit une commande |\Block|, n'a pas de rapport direct avec l'environnement
-|{NiceMatrixBlock}| présenté dans la section précédente.
+\bigskip
+\textbf{L'option xdots/color}\par\nobreak
 
 \smallskip
-Dans les environnements de \pkg{nicematrix}, on peut utiliser la commande |\Block| pour placer un élément au centre
-d'un rectangle de cases fusionnées.
+L'option |xdots/color| indique bien entendu la couleur de la ligne tracée. On remarquera néanmoins que les lignes
+tracées dans les rangées et colonnes extérieures (décrites plus loin) bénificient d'un régime spécial : cf.
+p.~\pageref{exterior}.
 
-La commande |\Block| doit être utilisée dans la case supérieure gauche du bloc avec deux arguments. Le premier
-argument est la taille de ce bloc avec la syntaxe $i$-$j$ où $i$ est le nombre de rangées et $j$ le nombre de
-colonnes du bloc. Le deuxième argument, est, sans surprise, le contenu du bloc (en mode mathématique). Un nœud Tikz
-correspondant à l'ensemble des cases fusionnées est créé sous le nom «$i$-$j$-block» où \textsl{nom} est le
-nom donné au tableau. Si on a demandé la création des nœuds |medium|, alors un nœud de ce type est aussi créé pour
-ce bloc avec un nom suffixé par |-medium|.
 
-\medskip
-Dans les exemples qui suivent, on utilise la commande |\arrayrulecolor| de \pkg{colortbl}.
+\bigskip
+\textbf{L'option xdots/shorten}\par\nobreak
+
+\smallskip
+L'option |xdots/shorten| indique la marge qui est laissée aux deux extrémités de la ligne. Le nom s'inspire des options
+«|shorten >|» et «|shorten <|» de Tikz, mais il faut remarquer que \pkg{nicematrix} ne propose que |xdots/shorten|.
+La valeur initiale de ce paramètre est de $0.3$~em (il est conseillé d'utiliser une unité de mesure dépendante de
+la fonte courante).
 
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-\arrayrulecolor{blue}
-$\begin{bNiceArray}{CCC|C}[margin]
-~emphase#\Block{3-3}{A}@ & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
-& & & 0 \\
-\hline
-0 & \Cdots& 0 & 0
-\end{bNiceArray}$
-\arrayrulecolor{black}
-\end{BVerbatim}
-\begin{scope}
-\arrayrulecolor{blue}
-$\begin{bNiceArray}{CCC|C}[margin]
-\Block{3-3}{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
-& & & 0 \\
-\hline
-0 & \Cdots& 0 & 0
-\end{bNiceArray}$
-\arrayrulecolor{black}
-\end{scope}
 
 \bigskip
-On peut souhaiter agrandir la taille du «$A$» placé dans le bloc de l'exemple précédent. Comme il est composé en
-mode mathématique, on ne peut pas directement utiliser une commande comme |\large|, |\Large| ou |\LARGE|. C'est
-pourquoi une option à mettre entre chevrons est proposée par |\Block| pour spécifier du code LaTeX qui sera inséré
-\emph{avant} le début du mode mathématique.
+\textbf{L'option xdots/line-style}\par\nobreak
 
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-\arrayrulecolor{blue}
-$\begin{bNiceArray}{CCC|C}[margin]
-\Block{3-3}~emphase#<\Large>@{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
-& & & 0 \\
-\hline
-0 & \Cdots& 0 & 0
-\end{bNiceArray}$
-\arrayrulecolor{black}
+\smallskip
+Il faut savoir que, par défaut, les lignes de Tikz tracées avec le paramètre |dotted| sont composées de points
+carrés et non pas ronds.\footnote{La raison de départ est que le format \textsc{pdf} comporte un système de description
+  de lignes en tiretés, qui, puisqu'il est incorporé dans le \textsc{pdf}, est affiché très rapidement par les
+  lecteurs de \textsc{pdf}. Il est facile à partir de ce type de ligne de créer des lignes de points carrés alors
+  qu'une ligne de points ronds doit être construite explicitement point par point.}
+
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\tikz \draw [dotted] (0,0) -- (5,0) ;
 \end{BVerbatim}
-\begin{scope}
-\arrayrulecolor{blue}
-$\begin{bNiceArray}{CCC|C}[margin]
-\Block{3-3}<\Large>{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
-& & & 0 \\
-\hline
-0 & \Cdots& 0 & 0
-\end{bNiceArray}$
-\arrayrulecolor{black}
-\end{scope}
+\tikz \draw [dotted] (0,0) -- (5,0) ;
+
+\bigskip
+Voulant proposer des lignes avec des points ronds dans le style de celui de |\ldots| (au moins celui des fontes
+\emph{Computer Modern}), l'extension \pkg{nicematrix} contient en interne son propre système de ligne en pointillés
+(qui, au passage, n'utilise que \pkg{pgf} et non \pkg{tikz}). Ce style est appelé le style |standard|. Cette valeur
+est la valeur initiale du paramètre |xdots/line-style|.
+
+\bigskip
+Néanmoins (quand Tikz est chargé), on peut utiliser pour |xdots/line-style| n'importe quel style proposé par Tikz,
+c'est-à-dire n'importe quelle suite d'options Tikz applicables à un chemin (à l'exception de «|color|», 
+«|shorten >|» et «|shorten <|»). 
 
+\medskip
+Voici par exemple une matrice tridiagonale avec le style |loosely dotted| :\par\nobreak
 
 \medskip
-Pour des raisons techniques, il n'est pas possible d'écrire |\Block{|$i$|-|$j$|}{<}|  
-(mais on peut écrire |\Block{|$i$|-|$j$|}<>{<}| avec le résultat attendu).
+\begin{BVerbatim}[baseline=c]
+$\begin{pNiceMatrix}[nullify-dots,~emphase#xdots/line-style=loosely dotted@]
+a      & b      & 0      &        & \Cdots & 0      \\ 
+b      & a      & b      & \Ddots &        & \Vdots \\
+0      & b      & a      & \Ddots &        &        \\
+       & \Ddots & \Ddots & \Ddots &        & 0      \\
+\Vdots &        &        &        &        & b      \\
+0      & \Cdots &        & 0      & b      & a
+\end{pNiceMatrix}$
+\end{BVerbatim}
 
 
-\section{Les couleurs des rangées et des colonnes}
+\[\begin{pNiceMatrix}[nullify-dots,xdots/line-style=loosely dotted]
+a      & b      & 0      &        & \Cdots & 0      \\ 
+b      & a      & b      & \Ddots &        & \Vdots \\
+0      & b      & a      & \Ddots &        &        \\
+       & \Ddots & \Ddots & \Ddots &        & 0      \\
+\Vdots &        &        &        &        & b      \\
+0      & \Cdots &        & 0      & b      & a
+\end{pNiceMatrix}\]
 
-L'extension \pkg{colortbl} permet de colorier des cellules, des rangées ou des colonnes d'un tableau. Néanmoins,
-l'affichage du \textsc{pdf} résultant n'est pas toujours parfait, en particulier quand on utilise également des
-filets. Dans certains lecteurs de \textsc{pdf}, des filets verticaux semblent disparaître. De fines lignes
-blanches peuvent également apparaître.
 
-\medskip
-La version 4.0 de \pkg{nicematrix} propose des outils similaires qui ne présentent pas ces inconvénients. Elle
-propose une option |code-before| pour du code qui sera exécuté \emph{avant} le tracé du tableau. Dans ce
-|code-before|, de nouvelles commandes sont disponibles : |\cellcolor|, |\rectanglecolor|, |\rowcolor|,
-|\columncolor|, |\rowcolors| et |\chessboardcolors|.
+\subsection{Les lignes pointillées et la clé hvlines}
 
-\medskip
-\begin{itemize}
-\item La commande |\cellcolor| tient son nom de la commande |\cellcolor| de \pkg{colortbl}.
+\label{dotted-and-hvlines}
 
-Elle prend en arguments une couleur et une liste de cellules sous le format $i$-$j$ où $i$ est le numéro de ligne
-et $j$ le numéro de colonne.
+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{scope}
-\hfuzz=10cm
-\begin{BVerbatim}[boxwidth=10cm,baseline=c]
-\begin{NiceTabular}{|C|C|C|}[code-before = ~emphase#\cellcolor{red!15}{3-1,2-2,1-3}@]
-\hline
-a & b & c \\ \hline
-e & f & g \\ \hline
-h & i & j \\ \hline
-\end{NiceTabular}
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+\NiceMatrixOptions{nullify-dots}
+$\begin{pNiceMatrix}[rules/color=gray,~emphase#hvlines@,margin]
+0      & \Cdots &  &   &        & 0      \\
+1      & \Cdots &  &   & 1      & 2      \\
+0      & \Ddots &  &   & \Vdots & \Vdots \\
+\Vdots & \Ddots &  &   &        &        \\
+       &        &  &   &        &        \\
+0      & \Cdots &  & 0 &  1     & 2      \\
+\end{pNiceMatrix}$
 \end{BVerbatim}
-\begin{NiceTabular}{|C|C|C|}[code-before = \cellcolor{red!15}{3-1,2-2,1-3}]
-\hline
-a & b & c \\ \hline
-e & f & g \\ \hline
-h & i & j \\ \hline
-\end{NiceTabular}
+\begin{scope}
+\NiceMatrixOptions{nullify-dots}
+$\begin{pNiceMatrix}[rules/color=gray,hvlines,margin]
+0      & \Cdots &  &   &        & 0      \\
+1      & \Cdots &  &   & 1      & 2      \\
+0      & \Ddots &  &   & \Vdots & \Vdots \\
+\Vdots & \Ddots &  &   &        &        \\
+       &        &  &   &        &        \\
+0      & \Cdots &  & 0 &  1     & 2      \\
+\end{pNiceMatrix}$
 \end{scope}
 
-\bigskip
-\item La commande |\rectanglecolor| prend trois arguments. Le premier est la couleur, les deux suivants fournissent
-la case en haut à gauche et la case en bas à droite du rectangle.
 
-\medskip
-\begin{scope}
-\hfuzz=10cm
-\begin{BVerbatim}[boxwidth=10cm,baseline=c]
-\begin{NiceTabular}{|C|C|C|}[code-before = ~emphase#\rectanglecolor{red!15}{2-2}{3-3}@]
-\hline
-a & b & c \\ \hline
-e & f & g \\ \hline
-h & i & j \\ \hline
-\end{NiceTabular}
-\end{BVerbatim}
-\begin{NiceTabular}{|C|C|C|}[code-before = \rectanglecolor{red!15}{2-2}{3-3}]
-\hline
-a & b & c \\ \hline
-e & f & g \\ \hline
-h & i & j \\ \hline
-\end{NiceTabular}
-\end{scope}
 
+\section{Le code-after}
 
+\label{code-after}
 
-\bigskip
-\item La commande |\rowcolor| doit son nom à la commande |\rowcolor| de \pkg{colortbl}. Son premier argument est la
-couleur et le deuxième est une liste de numéros de rangées ou bien d'intervalles de rangées sous la forme
-$a$-$b$ (un intervalle de la forme $a$- représente toutes les rangées à partir de la rangée~$a$).
+L'option |code-after| peut être utilisée pour indiquer du code qui sera exécuté après la construction de la
+matrice.\footnote{Il existe aussi une clé |code-before| décrite p.~\pageref{code-before}.}
 
-\medskip
+Une commande spéciale, nommée |\line| est disponible pour tracer directement des lignes en pointillés entre les
+cases. Elle prend deux arguments correspondant aux deux cases à relier, chacun de la forme $i$-$j$ où $i$ est le
+numéro de ligne et $j$ est le numéro de colonne. Elle peut par exemple être utilisée pour tracer une ligne entre
+deux cases adjacentes comme dans l'exemple suivant.
+\label{line-in-code-after}
 
-\begin{scope}
-\hfuzz=10cm
-\begin{BVerbatim}[boxwidth=9cm,baseline=c]
-$\begin{NiceArray}{LLL}[hvlines, ~emphase#code-before = \rowcolor{red!15}{1,3-5,8-}@]
-a_1 & b_1 & c_1 \\
-a_2 & b_2 & c_2 \\
-a_3 & b_3 & c_3 \\
-a_4 & b_4 & c_4 \\
-a_5 & b_5 & c_5 \\
-a_6 & b_6 & c_6 \\
-a_7 & b_7 & c_7 \\
-a_8 & b_8 & c_8 \\
-a_9 & b_9 & c_9 \\
-a_{10} & b_{10} & c_{10} \\
-\end{NiceArray}$
-\end{BVerbatim}
-%
-$\begin{NiceArray}{LLL}%
-[baseline=4,hvlines, code-before = \rowcolor{red!15}{1,3-5,8-}]
-a_1 & b_1 & c_1 \\
-a_2 & b_2 & c_2 \\
-a_3 & b_3 & c_3 \\
-a_4 & b_4 & c_4 \\
-a_5 & b_5 & c_5 \\
-a_6 & b_6 & c_6 \\
-a_7 & b_7 & c_7 \\
-a_8 & b_8 & c_8 \\
-a_9 & b_9 & c_9 \\
-a_{10} & b_{10} & c_{10} \\
-\end{NiceArray}$
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+\NiceMatrixOptions{xdots/shorten = 0.6 em}
+\begin{pNiceMatrix}[~emphase#code-after=\line{2-2}{3-3}@]
+I       & 0      & \Cdots  &0     \\
+0       & I      & \Ddots  &\Vdots\\
+\Vdots  &\Ddots  & I       &0     \\
+0       &\Cdots  & 0       &I
+\end{pNiceMatrix}
+\end{BVerbatim}
+\begin{scope}
+\NiceMatrixOptions{xdots/shorten = 0.6 em}
+$\begin{pNiceMatrix}[code-after=\line{2-2}{3-3}]
+I       & 0      & \Cdots  &0     \\
+0       & I      & \Ddots  &\Vdots\\
+\Vdots  &\Ddots  & I       &0     \\
+0       &\Cdots  & 0       &I
+\end{pNiceMatrix}$
 \end{scope}
 
+\medskip
+Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on peut spécifier les instructions du
+|code-after| à la fin de l'environnement, après le mot-clé |\CodeAfter|. Pour un exemple, voir page
+\pageref{exemple-CodeAfter}.
 
-\bigskip
-\item La commande |\columncolor| doit son nom à la commande |\columncolor| de \pkg{colortbl}. Sa syntaxe est
-similaire à celle de |\rowcolor|.
 
-\bigskip
-\item La commande |\rowcolors| (avec un \emph{s}) doit son nom à la commande |\rowcolors| de \pkg{xcolor}. Le
-\emph{s} rappelle qu'il y a deux couleurs. Elle colorie alternativement les rangées avec les deux couleurs à partir
-de la rangée dont le numéro est donné en premier argument.
 
-\medskip
+\section{Autres fonctionnalités}
 
 
-\begin{scope}
-\hfuzz=10cm
-\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-\begin{NiceTabular}{LR}%
-[~emphase#code-before = \rowcolor{red!15}{1} \rowcolors{3}{blue!10}{}@]
-\toprule
-Ville & habitants \\
-\midrule
-Pau & 80000 \\
-Paris & 2000000 \\
-Toulouse & 700000 \\
-Reims & 40000 \\
-\bottomrule
-\end{NiceTabular}
-\end{BVerbatim}
-\begin{NiceTabular}{LR}[code-before =\rowcolor{red!15}{1} \rowcolors{3}{blue!10}{}]
-\toprule
-Ville & habitants \\
-\midrule
-Pau & 80000 \\
-Paris & 2000000 \\
-Toulouse & 700000 \\
-Reims & 40000 \\
-\bottomrule
-\end{NiceTabular}
-\end{scope}
 
-\bigskip
-\item La commande |\chessboardcolors| prend en arguments deux couleurs et colorie les cellules en quinconces avec
-les deux couleurs.
+\subsection{Utilisation du type de colonne S de siunitx}
+
+Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il est possible d'utiliser les colonnes
+de type |S| de \pkg{siunitx} dans les environnements de \pkg{nicematrix}. L'implémentation n'utilise explicitement
+aucune macro privée de \pkg{siunitx}. 
 
 \medskip
-\begin{scope}
-\hfuzz=10cm
-\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-$\begin{pNiceMatrix}[R,margin, ~emphase#code-before=\chessboardcolors{red!15}{blue!15}@]
-1 & -1 & 1 \\
--1 & 1 & -1 \\
-1 & -1 & 1 
-\end{pNiceMatrix}$
+\begin{BVerbatim}[baseline = c, boxwidth = 10.5cm]
+$\begin{pNiceArray}{~emphase#S@CWc{1cm}C}[nullify-dots,first-row]
+{C_1} & \Cdots &  & C_n \\
+2.3  & 0 & \Cdots & 0 \\
+12.4 & \Vdots & & \Vdots \\
+1.45 \\
+7.2  & 0 & \Cdots & 0 
+\end{pNiceArray}$
 \end{BVerbatim}
-$\begin{pNiceMatrix}%
-[baseline=1, R, margin, code-before = \chessboardcolors{red!15}{blue!15}]
-1 & -1 & 1 \\
--1 & 1 & -1 \\
-1 & -1 & 1 
-\end{pNiceMatrix}$
-\end{scope}
+$\begin{pNiceArray}{SCWc{1cm}C}[nullify-dots,first-row]
+{C_1} & \Cdots &  & C_n \\
+2.3  & 0 & \Cdots & 0 \\
+12.4 & \Vdots & & \Vdots \\
+1.45 \\
+7.2  & 0 & \Cdots & 0 
+\end{pNiceArray}$
 
-\end{itemize}
+\medskip
+En revanche, les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en charge par \pkg{nicematrix}.
 
 
 
-\section{Fonctionnalités avancées}
+\subsection{Option d'alignement dans \{NiceMatrix\}}
 
-\subsection{Option d'alignement dans NiceMatrix}
+\label{key-R}
 
 Les environnements sans préambule (|{NiceMatrix}|, |{pNiceMatrix}|, |{bNiceMatrix}|, etc.) proposent les options
-|l| et |r| (possédant |L| et |R| comme alias) qui imposent des colonnes alignées à gauche ou à
-droite.\footnote{Cela reprend une partie des fonctionnalités proposées par les environnements |{pmatrix*}|,
-  |{bmatrix*}|, etc. de \pkg{mathtools}.}
+|l| et |r| (possédant |L| et |R| comme alias) qui imposent des colonnes alignées à gauche ou à droite.
 
 \medskip
 \begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -1675,7 +1736,10 @@ $\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}
@@ -1790,8 +1854,9 @@ numéro de la rangée courante et le numéro de la colonne courante\footnote{On
 Bien entendu, l'utilisateur ne doit pas modifier les valeurs de ces compteurs qui sont utilisés en interne par
 \pkg{nicematrix}.
 
-Dans le |code-after| (cf. p. \pageref{code-after}), |iRow| représente le nombre total de rangées (hors éventuelles
-rangées extérieures) et |jCol| le nombre total de colonnes (hors potentielles colonnes extérieures).
+Dans le |code-before| (cf. p. \pageref{code-before}) et dans le |code-after| (cf. p. \pageref{code-after}), |iRow|
+représente le nombre total de rangées (hors éventuelles rangées extérieures) et |jCol| le nombre total de colonnes
+(hors potentielles colonnes extérieures). 
 
 \medskip
 \begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
@@ -1818,8 +1883,8 @@ $\begin{pNiceMatrix}[first-row,
 
 \medskip
 Si des compteurs LaTeX nommés |iRow| ou |jCol| sont créés dans le document par d'autres extensions que
-\pkg{nicematrix} (ou tout simplement par l'utilisateur), ces compteurs sont masqués dans les environnements de
-\pkg{nicematrix}.
+\pkg{nicematrix} (ou tout simplement par l'utilisateur final), ces compteurs sont masqués dans les environnements
+de \pkg{nicematrix}.
 
 
 \bigskip
@@ -1838,164 +1903,458 @@ $C = ~emphase#\pAutoNiceMatrix@{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
 \end{Verbatim}
 
 
-$C = \pAutoNiceMatrix{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
+\[C = \pAutoNiceMatrix{3-3}{C_{\arabic{iRow},\arabic{jCol}}}\]
+
+
+
+\subsection{L'option light-syntax}
+
+\label{light-syntax}
+
+L'option |light-syntax| (inspirée de l'extension \pkg{spalign}) permet d'alléger la saisie des matrices, ainsi que
+leur lisibilité dans le source TeX. Lorsque cette option est activée, on doit utiliser le point-virgule comme
+marqueur de fin de rangée et séparer les colonnes par des espaces ou des tabulations. On remarquera toutefois que,
+comme souvent dans le monde TeX, les espaces après les séquences de contrôle ne sont pas comptées et que les
+éléments entre accolades sont considérés comme un tout.
+
+
+\medskip
+\begin{scope}
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+$\begin{bNiceMatrix}[~emphase#light-syntax@,first-row,first-col]
+{} a             b                 ;
+a  2\cos a       {\cos a + \cos b} ;
+b \cos a+\cos b  { 2 \cos b }
+\end{bNiceMatrix}$
+\end{BVerbatim}
+\end{scope}
+% 
+$\begin{bNiceMatrix}[light-syntax,first-row,first-col]
+{} a             b                 ;
+a  2\cos a       {\cos a + \cos b} ;
+b \cos a+\cos b  { 2 \cos b }
+\end{bNiceMatrix}$
+
+\medskip
+On peut changer le caractère utilisé pour indiquer les fins de rangées avec l'option |end-of-row|. Comme dit
+précédemment, la valeur initiale de ce paramètre est un point-virgule.
+
+\medskip
+Lorsque l'option |light-syntax| est utilisée, il n'est pas possible de mettre d'éléments en verbatim (avec par
+exemple la commande |\verb|) dans les cases du tableau.\footnote{La raison en est que lorsque l'option
+  |light-syntax| est utilisée, le contenu complet de l'environnement est chargé comme un argument de commande TeX.
+  L'environnement ne se comporte plus comme un «vrai» environnement de LaTeX qui se contente d'insérer des
+  commandes avant et après.}
+
+\subsection{L'environnement \{NiceArrayWithDelims\}}
+
+En fait, l'environnement |{pNiceArray}| et ses variantes sont fondés sur un environnement plus général, appelé
+|{NiceArrayWithDelims}|. Les deux premiers arguments obligatoires de cet environnement sont les délimiteurs gauche
+et droit qui seront utilisés dans la construction de la matrice. Il est possible d'utiliser |{NiceArrayWithDelims}|
+si on a besoin de délimiteurs atypiques ou asymétriques.
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$\begin{~emphase#NiceArrayWithDelims@}
+   {\downarrow}{\uparrow}{CCC}[margin]
+1 & 2 & 3 \\
+4 & 5 & 6 \\
+7 & 8 & 9 
+\end{~emphase#NiceArrayWithDelims@}$
+\end{BVerbatim}
+%
+$\begin{NiceArrayWithDelims}
+   {\downarrow}{\uparrow}{CCC}[margin]
+1 & 2 & 3 \\
+4 & 5 & 6 \\
+7 & 8 & 9 
+\end{NiceArrayWithDelims}$
+
+
+
+
+\section{Utilisation de Tikz avec nicematrix}
+
+\label{name}
+
+\subsection{Les nœuds correspondant aux contenus des cases}
+
+L'extension \pkg{nicematrix} crée un nœud PGF-Tikz pour chaque case (non vide) du tableau considéré. Ces nœuds sont
+utilisés, entre autres, pour tracer les lignes en pointillés entre les cases du tableau. 
+
+\smallskip
+Tous les nœuds du document doivent avoir des noms deux à deux distincts et le nom de ces nœuds doit donc faire
+intervenir le numéro de l'environnement courant. Les environnements créés par \pkg{nicematrix} sont en effet
+numérotés par un compteur global interne. 
+
+\smallskip
+Si l'environnement concerné a le numéro $n$, alors le nœud de la rangée~$i$ et de la colonne~$j$ a pour nom
+|nm-|$n$|-|$i$|-|$j$. 
+
+\smallskip
+La commande |\NiceMatrixLastEnv| donne le numéro du dernier de ces environnements (pour LaTeX, il s'agit d'une
+commande — complètement développable — et non d'un compteur).
+
+\smallskip
+Il est néanmoins recommandé de passer plutôt par la clé |name|. Celle-ci permet de donner un nom à l'environnement.
+Une fois l'environnement nommé, les nœuds sont accessibles à travers les noms «\textsl{nom}-$i$-$j$» où
+\textsl{nom} est le nom donné au tableau et $i$ et $j$ les numéros de rangée et de colonne de la case considérée.
+On peut les utiliser avec \textsc{pgf} mais l'utilisateur final préférera sans doute utiliser Tikz (qui est une
+sur-couche de \textsc{pgf}). Il faut néanmoins se souvenir que \pkg{nicematrix} ne charge pas Tikz par défault.
+
+\bigskip
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$\begin{pNiceMatrix}[name=~emphase#ma-matrice@]
+1 & 2 & 3 \\
+4 & 5 & 6 \\
+7 & 8 & 9 
+\end{pNiceMatrix}$
+\tikz[remember picture,overlay] 
+     \draw ~emphase#(ma-matrice-2-2)@ circle (2mm) ; 
+\end{BVerbatim}
+$\begin{pNiceMatrix}[name=ma-matrice]
+1 & 2 & 3 \\
+4 & 5 & 6 \\
+7 & 8 & 9 
+\end{pNiceMatrix}$
+\tikz[remember picture,overlay] 
+     \draw (ma-matrice-2-2) circle (2mm) ; 
+
+\medskip
+Ne pas oublier les options |remember picture| et |overlay|.
+
+
+\bigskip
+Dans le |code-after|, et si Tikz est chargé, les choses sont plus simples. On peut (et on doit) désigner les nœuds
+sous la forme $i$-$j$ : il n'y a pas besoin de préciser l'environnement qui est évidemment l'environnement courant.
+
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$\begin{pNiceMatrix}
+1 & 2 & 3 \\
+4 & 5 & 6 \\
+7 & 8 & 9 
+\CodeAfter
+\tikz \draw ~emphase#(2-2)@ circle (2mm) ; 
+\end{pNiceMatrix}$
+\end{BVerbatim}
+$\begin{pNiceMatrix}
+1 & 2 & 3 \\
+4 & 5 & 6 \\
+7 & 8 & 9 
+\CodeAfter
+\tikz \draw (2-2) circle (2mm) ; 
+\end{pNiceMatrix}$
+
+
+
+\bigskip
+Dans l'exemple suivant, nous avons surligné tous nœuds de la matrice (on explique plus loin la technique utilisée :
+cf. p. \pageref{highlight}).
+
+\[\begin{pNiceMatrix}
+a & a + b & a + b + c \\
+a & a     & a + b  \\
+a & a     & a 
+\CodeAfter
+\begin{tikzpicture}[ 
+                     every node/.style = 
+                       { 
+                         blend mode = multiply,
+                         inner sep = 0 pt ,
+                         fill = red!15
+                       }
+                   ]
+\node [fit = (1-1)] {} ;
+\node [fit = (1-3)] {} ;
+\node [fit = (2-2)] {} ;
+\node [fit = (3-1)] {} ;
+\node [fit = (3-3)] {} ;
+\node [fit = (1-2)] {} ;
+\node [fit = (2-1)] {} ;
+\node [fit = (2-3)] {} ;
+\node [fit = (3-2)] {} ;
+\end{tikzpicture}
+\end{pNiceMatrix}\]
+
+
+\subsection{Les «nœuds moyens» et les «nœuds larges»}
+
+
+En fait, l'extension \pkg{nicematrix} peut créer deux séries de nœuds supplémentaires (\emph{extra nodes} en
+anglais) : les «nœuds moyens» (\emph{medium nodes} en anglais) et les «nœuds larges» (\emph{large nodes} en
+anglais). Les premiers sont créés avec l'option |create-medium-nodes| et les seconds avec l'option
+|create-large-nodes|.\footnote{Il existe aussi l'option |create-extra-nodes| qui est un alias pour la conjonction
+de |create-medium-nodes| et |create-large-nodes|.}
+
+\medskip
+Ces nœuds ne sont pas utilisés par défault par \pkg{nicematrix}.
+
+\medskip
+Les noms des «nœuds moyens» s'obtiennent en ajoutant le suffixe «|-medium|» au nom des nœuds normaux. Dans
+l'exemple suivant, on a surligné tous les «nœuds moyens». Nous considérons que cet exemple se suffit à lui-même
+comme définition de ces nœuds.
+\[\begin{pNiceMatrix}[
+ create-medium-nodes,
+ code-after = {\begin{tikzpicture}
+                  [every node/.style = {fill = red!15,
+                                        blend mode = multiply,
+                                        inner sep = 0 pt},
+                   name suffix = -medium]
+               \node [fit = (1-1)] {} ;
+               \node [fit = (1-2)] {} ;
+               \node [fit = (1-3)] {} ;
+               \node [fit = (2-1)] {} ;
+               \node [fit = (2-2)] {} ;
+               \node [fit = (2-3)] {} ;
+               \node [fit = (3-1)] {} ;
+               \node [fit = (3-2)] {} ;
+               \node [fit = (3-3)] {} ;
+               \end{tikzpicture}}]
+a & a + b & a + b + c \\
+a & a     & a + b  \\
+a & a     & a 
+\end{pNiceMatrix}\]
+
 
-\subsection{Les options hlines, vlines et hvlines}
+\medskip
+Les noms des «nœuds larges» s'obtiennent en ajoutant le suffixe «|-large|» au nom des nœuds normaux. Dans l'exemple
+suivant, on a surligné tous les «nœuds larges». Nous considérons que cet exemple se suffit à lui-même comme
+définition de ces nœuds.\footnote{Il n'y a pas de «nœuds larges» créés dans les rangées et colonnes extérieures
+  (pour ces rangées et colonnes, voir p.~\pageref{exterior}).}
 
-\label{hvlines}
+\[\begin{pNiceMatrix}[
+ create-large-nodes,
+ code-after = {\begin{tikzpicture}
+                  [every node/.style = {blend mode = multiply,
+                                        inner sep = 0 pt},
+                   name suffix = -large]
+               \node [fit = (1-1),fill = red!15] {} ;
+               \node [fit = (1-3),fill = red!15] {} ;
+               \node [fit = (2-2),fill = red!15] {} ;
+               \node [fit = (3-1),fill = red!15] {} ;
+               \node [fit = (3-3),fill = red!15] {} ;
+               \node [fit = (1-2),fill = blue!15] {} ;
+               \node [fit = (2-1),fill = blue!15] {} ;
+               \node [fit = (2-3),fill = blue!15] {} ;
+               \node [fit = (3-2),fill = blue!15] {} ;
+               \end{tikzpicture}}]
+a & a + b & a + b + c \\
+a & a     & a + b  \\
+a & a     & a 
+\end{pNiceMatrix}\]
 
-Dans les environnements de \pkg{nicematrix}, on peut bien entendu ajouter des filets horizontaux entre les rangées
-avec la commande~|\hline| et des filets verticaux avec le spécificateur ``\verb+|+'' dans le préambule de
-l'environnement. Par souci de commodité, l'extension \pkg{nicematrix} fournit aussi l'option |hlines| (resp.
-|vlines|) qui impose directement que tous les filets horizontaux (resp. verticaux) soient tracés (à l'exception,
-très naturelle, des filets extérieurs aux rangées et colonnes extérieures). L'option |hvlines| est la conjonction
-des options |hlines| et |vlines|.
 
 \medskip
-Dans l'exemple suivant, on utilise la commande |\arrayrulecolor| de \pkg{colortbl}.
-
-
+Les «nœuds larges» de la première colonne et de la dernière colonne peuvent apparaître trop petits pour certains
+usages. C'est pourquoi il est possible d'utiliser les options |left-margin| et |right-margin| pour ajouter de
+l'espace des deux côtés du tableau et aussi de l'espace dans les «nœuds larges» de la première colonne et de la
+dernière colonne. Dans l'exemple suivant, nous avons utilisé les options |left-margin| et
+|right-margin|.\footnote{Les options |left-margin| et |right-margin| prennent des dimensions comme valeurs mais, si
+  aucune valeur n'est donnée, c'est la valeur par défaut qui est utilisée et elle est égale à |\arraycolsep| (par
+  défaut, 5~pt). Il existe aussi une option |margin| pour fixer à la fois |left-margin| et |right-margin|.}
+\[\begin{pNiceMatrix}[
+ create-large-nodes,left-margin,right-margin,
+ code-after = {\begin{tikzpicture}
+                  [every node/.style = {blend mode = multiply,
+                                        inner sep = 0 pt},
+                   name suffix = -large]
+               \node [fit = (1-1),fill = red!15] {} ;
+               \node [fit = (1-3),fill = red!15] {} ;
+               \node [fit = (2-2),fill = red!15] {} ;
+               \node [fit = (3-1),fill = red!15] {} ;
+               \node [fit = (3-3),fill = red!15] {} ;
+               \node [fit = (1-2),fill = blue!15] {} ;
+               \node [fit = (2-1),fill = blue!15] {} ;
+               \node [fit = (2-3),fill = blue!15] {} ;
+               \node [fit = (3-2),fill = blue!15] {} ;
+               \end{tikzpicture}}]
+a & a + b & a + b + c \\
+a & a     & a + b  \\
+a & a     & a 
+\end{pNiceMatrix}\]
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-\arrayrulecolor{blue}
-$\begin{NiceArray}{CCCC}[~emphase#hvlines@,first-row,first-col]
-  & e & a & b & c \\
-e & e & a & b & c \\
-a & a & e & c & b \\
-b & b & c & e & a \\
-c & c & b & a & e 
-\end{NiceArray}$
-\arrayrulecolor{black}
-\end{BVerbatim}
-%
-\arrayrulecolor{blue}
-$\begin{NiceArray}{CCCC}[hvlines,first-row,first-col]
-  & e & a & b & c \\
-e & e & a & b & c \\
-a & a & e & c & b \\
-b & b & c & e & a \\
-c & c & b & a & e 
-\end{NiceArray}$
-\arrayrulecolor{black}
+Il est aussi possible d'ajouter de l'espace sur les côtés du tableau avec les options |extra-left-margin| et
+|extra-right-margin|. Ces marges ne sont pas incorporées dans les «nœuds larges». Dans l'exemple suivant, nous
+avons utilisé |extra-left-margin| et |extra-right-margin| avec la valeur $3$~pt.
+\[\begin{pNiceMatrix}[
+ create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt,
+ code-after = {\begin{tikzpicture}
+                  [every node/.style = {blend mode = multiply,
+                                        inner sep = 0 pt},
+                   name suffix = -large]
+               \node [fit = (1-1),fill = red!15] {} ;
+               \node [fit = (1-3),fill = red!15] {} ;
+               \node [fit = (2-2),fill = red!15] {} ;
+               \node [fit = (3-1),fill = red!15] {} ;
+               \node [fit = (3-3),fill = red!15] {} ;
+               \node [fit = (1-2),fill = blue!15] {} ;
+               \node [fit = (2-1),fill = blue!15] {} ;
+               \node [fit = (2-3),fill = blue!15] {} ;
+               \node [fit = (3-2),fill = blue!15] {} ;
+               \end{tikzpicture}}]
+a & a + b & a + b + c \\
+a & a     & a + b  \\
+a & a     & a 
+\end{pNiceMatrix}\]
 
 
+\bigskip
+\textbf{Attention} : Ces nœuds sont reconstruits à partir des contenus des cases et ne correspondent donc pas
+nécessairement aux cases délimitées par des filets.
 
 \bigskip
-Il y a néanmoins une différence entre l'utilisation de l'option |vlines| et du spécificateur «\verb+|+» dans le
-préambule de l'environnement : les filets tracés par |vlines| traversent les double-filets horizontaux tracés par
-|\hline\hline|. 
+\begin{minipage}[c]{7.5cm}
+Voici un tableau qui a été composé de la manière suivante :
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11.5cm]
-$\begin{NiceArray}{CCCC}[vlines] \hline
-a & b & c & d \\ \hline \hline
-1 & 2 & 3 & 4 \\
-1 & 2 & 3 & 4 \\ \hline
-\end{NiceArray}$
+\begin{BVerbatim}
+\large
+\begin{NiceTabular}{wl{2cm}LL}[hvlines]
+fraise & amande & abricot \\
+prune & pêche & poire  \\[1ex]
+noix & noisette & brugnon
+\end{NiceTabular}
 \end{BVerbatim}
-%
-$\begin{NiceArray}{CCCC}[vlines]
-\hline
-a & b & c & d \\
-\hline \hline
-1 & 2 & 3 & 4 \\
-1 & 2 & 3 & 4 \\
-\hline
-\end{NiceArray}$
+\end{minipage}
+\hspace{1cm}
+\begin{scope}
+\large
+\begin{NiceTabular}[c]{wl{2cm}LL}[hvlines]
+fraise & amande & abricot \\
+prune & pêche & poire  \\[1ex]
+noix & noisette & brugnon
+\end{NiceTabular}
+\end{scope}
 
-\bigskip
-Dans le cas d'un environnement avec délimiteurs (par exemple |{pNiceArray}| ou |{pNiceMatrix}|), l'option |vlines| ne
-trace pas de filets verticaux au niveau des deux délimiteurs (bien entendu).
+\vspace{1cm}
+\begin{minipage}[c]{7cm}
+Ci-contre, on a colorié toutes les cases de ce tableau avec |\chessboardcolors|.
+\end{minipage}
+\hspace{1.5cm}
+\begin{scope}
+\large
+\begin{NiceTabular}[c]{wl{2cm}LL}[hvlines,code-before = \chessboardcolors{red!15}{blue!15}]
+fraise & amande & abricot \\
+prune & pêche & poire  \\[1ex]
+noix & noisette & brugnon
+\end{NiceTabular}
+\end{scope}
 
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-\setlength{\arrayrulewidth}{0.2pt}
-$\begin{pNiceMatrix}[vlines]
-1 & 2 & 3 & 4 & 5 & 6 \\
-1 & 2 & 3 & 4 & 5 & 6 \\
-1 & 2 & 3 & 4 & 5 & 6 \\
-\end{pNiceMatrix}$
-\end{BVerbatim}
-%
+
+\vspace{1cm}
+\begin{minipage}[c]{7cm}
+Voici maintenant tous les «nœuds larges» de ce tableau (sans utilisation de |margin| ni de |extra-margin|). 
+\end{minipage}
+\hspace{1.5cm}
 \begin{scope}
-\setlength{\arrayrulewidth}{0.2pt}
-$\begin{pNiceMatrix}[vlines]
-1 & 2 & 3 & 4 & 5 & 6 \\
-1 & 2 & 3 & 4 & 5 & 6 \\
-1 & 2 & 3 & 4 & 5 & 6 \\
-\end{pNiceMatrix}$
+\large
+\begin{NiceTabular}[c]{wl{2cm}LL}[hvlines,
+ create-large-nodes,
+ code-after = {\begin{tikzpicture}
+                  [every node/.style = {blend mode = multiply,
+                                        inner sep = 0 pt},
+                   name suffix = -large]
+               \node [fit = (1-1),fill = red!15] {} ;
+               \node [fit = (1-3),fill = red!15] {} ;
+               \node [fit = (2-2),fill = red!15] {} ;
+               \node [fit = (3-1),fill = red!15] {} ;
+               \node [fit = (3-3),fill = red!15] {} ;
+               \node [fit = (1-2),fill = blue!15] {} ;
+               \node [fit = (2-1),fill = blue!15] {} ;
+               \node [fit = (2-3),fill = blue!15] {} ;
+               \node [fit = (3-2),fill = blue!15] {} ;
+               \end{tikzpicture}}]
+fraise & amande & abricot \\
+prune & pêche & poire  \\[1ex]
+noix & noisette & brugnon
+\end{NiceTabular}
 \end{scope}
 
 
 
 
-\subsection{L'option light-syntax}
 
-\label{light-syntax}
 
-L'option |light-syntax|\footnote{Cette option est inspirée de l'extension \pkg{spalign} de Joseph Rabinoff.} permet
-d'alléger la saisie des matrices, ainsi que leur lisibilité dans le source TeX. Lorsque cette option est activée,
-on doit utiliser le point-virgule comme marqueur de fin de rangée et séparer les colonnes par des espaces ou des
-tabulations. On remarquera toutefois que, comme souvent dans le monde TeX, les espaces après les séquences de
-contrôle ne sont pas comptées et que les éléments entre accolades sont considérés comme un tout.
 
 
-\medskip
-\begin{scope}
-\begin{BVerbatim}[baseline=c,boxwidth=10cm]
-$\begin{bNiceMatrix}[~emphase#light-syntax@,first-row,first-col]
-{} a             b                 ;
-a  2\cos a       {\cos a + \cos b} ;
-b \cos a+\cos b  { 2 \cos b }
-\end{bNiceMatrix}$
-\end{BVerbatim}
-\end{scope}
-% 
-$\begin{bNiceMatrix}[light-syntax,first-row,first-col]
-{} a             b                 ;
-a  2\cos a       {\cos a + \cos b} ;
-b \cos a+\cos b  { 2 \cos b }
-\end{bNiceMatrix}$
 
-\medskip
-On peut changer le caractère utilisé pour indiquer les fins de rangées avec l'option |end-of-row|. Comme dit
-précédemment, la valeur initiale de ce paramètre est un point-virgule.
+\subsection{Les nœuds «row» et «col»}
 
-\medskip
-Lorsque l'option |light-syntax| est utilisée, il n'est pas possible de mettre d'éléments en verbatim (avec par
-exemple la commande |\verb|) dans les cases du tableau.\footnote{La raison en est que lorsque l'option
-  |light-syntax| est utilisée, le contenu complet de l'environnement est chargé comme un argument de commande TeX.
-  L'environnement ne se comporte plus comme un «vrai» environnement de LaTeX qui se contente d'insérer des
-  commandes avant et après.}
+L'extension \pkg{nicematrix} crée un nœud PGF-Tikz indiquant la position potentielle de chaque filet horizontal
+(avec les noms |row-|$i$) et de chaque filet vertical (avec les noms |col-|$j$), comme décrit sur la figure
+ci-dessous. Ces nœuds sont accessibles dans le |code-before| et dans le |code-after|.
+\begin{center}
+\begin{NiceTabular}{CCC}[hvlines,rules/width=1pt,rules/color=gray]
+rose & tulipe & lys \\
+arum & iris & violette \\
+muguet & dahlia & souci 
+\CodeAfter
+\tiny
+\begin{tikzpicture}
+\foreach \i in {1,2,3,4}
+  { 
+    \fill [red] (row-\i) circle (0.5mm) ; 
+    \node [red,anchor=east] at (row-\i) {row-\i} ; 
+  } 
+\foreach \j in {1,2,3,4}
+  { 
+    \fill [blue] (col-\j) circle (0.5mm) ; 
+    \node [blue,anchor=north] at (col-\j) {col-\j} ; 
+  } 
+\end{tikzpicture}
+\end{NiceTabular}
+\end{center}
 
-\subsection{Utilisation du type de colonne S de siunitx}
 
-Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il est possible d'utiliser les colonnes
-de type |S| de \pkg{siunitx} dans les environnements de \pkg{nicematrix}. L'implémentation n'utilise explicitement
-aucune macro privée de \pkg{siunitx}. 
+\bigskip
+Si on utilise Tikz (on rappelle que \pkg{nicematrix} ne charge pas Tikz par défaut), on peut donc accéder (dans le
+|code-before| et le |code-after|) à l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe 
+|(row-|$i$\verb+-|col-+$j$|)|.
 
-\medskip
-\begin{BVerbatim}[baseline = c, boxwidth = 10.5cm]
-$\begin{pNiceArray}{~emphase#S@CWc{1cm}C}[nullify-dots,first-row]
-{C_1} & \Cdots &  & C_n \\
-2.3  & 0 & \Cdots & 0 \\
-12.4 & \Vdots & & \Vdots \\
-1.45 \\
-7.2  & 0 & \Cdots & 0 
-\end{pNiceArray}$
-\end{BVerbatim}
-$\begin{pNiceArray}{SCWc{1cm}C}[nullify-dots,first-row]
-{C_1} & \Cdots &  & C_n \\
-2.3  & 0 & \Cdots & 0 \\
-12.4 & \Vdots & & \Vdots \\
-1.45 \\
-7.2  & 0 & \Cdots & 0 
-\end{pNiceArray}$
 
 \medskip
-En revanche, les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en charge par \pkg{nicematrix}.
-
+\begin{Verbatim}
+\[\begin{NiceMatrix}[
+  code-before = 
+    { 
+~emphase#      \tikz \draw [fill = red!15] @
+~emphase#         (row-7-|col-4) -- (row-8-|col-4) -- (row-8-|col-5) -- @
+~emphase#         (row-9-|col-5) -- (row-9-|col-6) |- cycle ; @
+    }
+]
+1 \\
+1 & 1 \\
+1 & 2 &  1 \\
+1 & 3 &  3 &  1 \\
+1 & 4 &  6 &  4 &  1 \\
+1 & 5 & 10 & 10 &  5 &  1 \\
+1 & 6 & 15 & 20 & 15 &  6 &  1 \\
+1 & 7 & 21 & 35 & 35 & 21 &  7 & 1 \\
+1 & 8 & 28 & 56 & 70 & 56 & 28 & 8 & 1
+\end{NiceMatrix}\]
+\end{Verbatim}
+% 
+\[\begin{NiceMatrix}[
+  code-before = 
+    { 
+      \tikz \draw [fill = red!15] 
+         (row-7-|col-4) -- (row-8-|col-4) -- (row-8-|col-5) -- 
+         (row-9-|col-5) -- (row-9-|col-6) |- cycle ; 
+    }
+]
+1 \\
+1 & 1 \\
+1 & 2 &  1 \\
+1 & 3 &  3 &  1 \\
+1 & 4 &  6 &  4 &  1 \\
+1 & 5 & 10 & 10 &  5 &  1 \\
+1 & 6 & 15 & 20 & 15 &  6 &  1 \\
+1 & 7 & 21 & 35 & 35 & 21 &  7 & 1 \\
+1 & 8 & 28 & 56 & 70 & 56 & 28 & 8 & 1
+\end{NiceMatrix}\]
 
 
 \section{Remarques techniques}
@@ -2040,26 +2399,13 @@ C_1 & C_2 & C_3 & C_4
 \end{scope}
 
 \medskip
-Le spécificateur |?| ainsi créé est aussi utilisable dans les environnements |{array}| (de \pkg{array}) et, dans ce
-cas, |\OnlyMainNiceMatrix| est sans effet.
+Le spécificateur |?| ainsi créé est aussi utilisable dans les environnements |{tabular}| et |{array}| (de
+\pkg{array}) et, dans ce cas, |\OnlyMainNiceMatrix| est sans effet.
 
 
 
 
 
-\subsection{Le nom des nœuds PGF créés par nicematrix}
-
-Les nœuds PGF-Tikz créés par \pkg{nicematrix} peuvent être utilisés hors des environnements de \pkg{nicematrix}
-après avoir nommé l'environnement concerné avec l'option |name| (cf. p.~\pageref{name}). Il s'agit là de la méthode
-conseillée mais on décrit néanmoins maintenant le nom Tikz interne de ces nœuds.
-
-Les environnements créés par \pkg{nicematrix} sont numérotés par un compteur global interne. La commande
-|\NiceMatrixLastEnv| donne le numéro du dernier de ces environnements (pour LaTeX, il s'agit d'une commande —
-complètement développable — et non d'un compteur).
-
-Si l'environnement concerné a le numéro $n$, alors le nœud de la rangée~$i$ et de la colonne~$j$ a pour nom
-|nm-|$n$|-|$i$|-|$j$. Les noms des nœuds |medium| et |large| correspondants s'obtiennent en suffixant par |-medium|
-et |-large|. 
 
 \subsection{Lignes diagonales} 
 
@@ -2185,91 +2531,14 @@ Avec cette option, des espaces extérieurs de longueur |\arraycolsep| seront ins
 
 
 
-\subsection{Un problème technique avec l'argument de \textbackslash\textbackslash}
-
-
-Pour des raisons techniques, si vous utilisez l'argument optionnel de la commande |\\|, l'espace vertical sera
-aussi ajouté au nœud («normal») correspondant à la case précédente.
-
-
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-     \begin{pNiceMatrix}
-     a & \frac AB \\~emphase#[2mm]@
-     b & c
-     \end{pNiceMatrix}
-\end{BVerbatim}
-$\begin{pNiceMatrix}[
-   code-after = {\tikz \node [inner sep = 0pt,
-                              fill = red!15,
-                              blend mode = multiply,
-                              fit = (1-2) ] {} ; } ]
-a & \frac AB \\[2mm]
-b & c
-\end{pNiceMatrix}$
-
-\bigskip
-Il y a deux solutions pour résoudre ce problème. La première solution est d'utiliser une commande TeX pour insérer
-l'espace entre les deux rangées.
-
-\medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-     \begin{pNiceMatrix}
-     a & \frac AB \\
-     ~emphase#\noalign{\kern2mm}@
-     b & c
-     \end{pNiceMatrix}
-\end{BVerbatim}
-$\begin{pNiceMatrix}[
-   code-after = {\tikz \node [inner sep = 0pt,
-                              fill = red!15,
-                              blend mode = multiply,
-                              fit = (1-2) ] {} ; } ]
-a & \frac AB \\
-\noalign{\kern2mm}
-b & c
-\end{pNiceMatrix}$
 
+\subsection{Incompatibilités}
 
-\bigskip
-L'autre solution est d'utiliser la commande |\multicolumn| dans la case précédente :
+L'extension \pkg{nicematrix} n'est pas compatible with \pkg{threeparttable}.
 
 \medskip
-\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-     \begin{pNiceMatrix}
-     a & ~emphase#\multicolumn1C{\frac AB}@ \\[2mm]
-     b & c
-     \end{pNiceMatrix}
-\end{BVerbatim}
-$\begin{pNiceMatrix}[
-   code-after = {\tikz \node [inner sep = 0pt,
-                              fill = red!15,
-                              blend mode = multiply,
-                              fit = (1-2) ] {} ; } ]
-a & \multicolumn1C{\frac AB} \\[2mm]
-b & c
-\end{pNiceMatrix}$
-
-\subsection{Environnements obsolètes}      
-
-La version 3.0 de \pkg{nicematrix} a introduit l'environnement |{pNiceArray}| (et ses variantes) avec les options
-|first-row|, |last-row|, |first-col| et |last-col|.
-
-Par conséquent, les environnements suivants, présents dans les versions précédentes de \pkg{nicematrix} ont été
-supprimés. 
-%
-\begin{itemize}
-\item |{NiceArrayCwithDelims}| ;
-\item |{pNiceArrayC}|, |{bNiceArrayC}|, |{BNiceArrayC}|, |{vNiceArrayC}|,
-|{VNiceArrayC}| ;
-\item |{NiceArrayRCwithDelims}| ;
-\item |{pNiceArrayRC}|, |{bNiceArrayRC}|, |{BNiceArrayRC}|, |{vNiceArrayRC}|,
-|{VNiceArrayRC}|.
-\end{itemize}
-
-Le code correspondant est toutefois encore présent à la fin du fichier |nicematrix.sty|, après une
-commande |\file_input_stop:|. 
-
+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}).
 
 
 \section{Exemples}
@@ -2402,11 +2671,9 @@ a_p   &      &&a_0    &       &      &b_1   \\
 \end{scope}   
 
 \vspace{2cm}
-Un exemple avec un système linéaire (le trait vertical a été tracé en bleu avec les outils de
-\pkg{colortbl}):\par\nobreak 
+Un exemple avec un système linéaire:\par\nobreak 
 
 \begin{Verbatim}
-\arrayrulecolor{blue}
 $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col=\scriptstyle]
 1      & 1 & 1 &\Cdots &   & 1      & 0      & \\
 0      & 1 & 0 &\Cdots &   & 0      &        & L_2 \gets L_2-L_1 \\
@@ -2415,10 +2682,9 @@ $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col=\scriptstyle]
 \Vdots &   &   &\Ddots &   & 0      & \\
 0      &   &   &\Cdots & 0 & 1      & 0      & L_n \gets L_n-L_1 
 \end{pNiceArray}$
-\arrayrulecolor{black}
 \end{Verbatim}
 
-\arrayrulecolor{blue}
+
 \[\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col=\scriptstyle]
 1      & 1 & 1 &\Cdots &   & 1      & 0      & \\
 0      & 1 & 0 &\Cdots &   & 0      &        & L_2 \gets L_2-L_1 \\
@@ -2427,7 +2693,7 @@ $\begin{pNiceArray}{*6C|C}[nullify-dots,last-col,code-for-last-col=\scriptstyle]
 \Vdots &   &   &\Ddots &   & 0      & \\
 0      &   &   &\Cdots & 0 & 1      & 0      & L_n \gets L_n-L_1 
 \end{pNiceArray}\]
-\arrayrulecolor{black}
+
 
 
 \subsection{Des lignes pointillées qui ne sont plus pointillées}
@@ -2617,19 +2883,16 @@ a_{41} & a_{42} & a_{43} & a_{44}
 
 On remarquera que les traits que l'on vient de tracer sont dessinés \emph{après} la matrice sans modifier la
 position des composantes de celle-ci. En revanche, les traits tracés par |\hline|, le spécificateur «\verb+|+» ou
-les options |hlines| et |vlines| «écartent» les composantes de la matrice (quand l'extension \pkg{array} est
-chargée, ce qui est toujours le cas avec \pkg{nicematrix}).\footnote{En revanche les traits tracés par |\ncline|
-  n'écartent pas les lignes de la matrice.}
+les options |hlines|, |vlines| et |hvlines| «écartent» les composantes de la matrice.\footnote{Pour la commande
+  |\cline|, voir la remarque p.~\pageref{remark-cline}.}
 
 \vspace{1cm}
-
-L'extension \pkg{nicematrix} est construite au-dessus de l'environnement |{array}| et, par conséquent, il est
-possible d'utiliser l'extension \pkg{colortbl} dans les environnements de \pkg{nicematrix}. Les possibilités de
-réglage de \pkg{colortbl} sont néanmoins assez limitées. C'est pourquoi nous proposons une autre méthode pour
-surligner une rangée de la matrice. Nous créons un nœud Tikz rectangulaire qui englobe les nœuds de la deuxième
-rangée en utilisant les outils de la bibliothèque Tikz \pkg{fit}. Ce nœud est rempli après la construction de la
-matrice. Pour que l'on puisse voir le texte \emph{sous} le nœud, nous devons utiliser la transparence avec le
-|blend mode| égal à |multiply|. 
+Il est possible de colorier une rangée avec |\rowcolor| dans le |code-before| (ou avec |\rowcolor| de
+\pkg{colortbl} dans la première case de la rangée ). Les possibilités de réglages sont néanmoins limitées. C'est
+pourquoi nous présentons ici une autre méthode pour surligner une rangée de la matrice. Nous créons un nœud Tikz 
+rectangulaire qui englobe les nœuds de la deuxième rangée en utilisant les outils de la bibliothèque Tikz
+\pkg{fit}. Ce nœud est rempli après la construction de la matrice. Pour que l'on puisse voir le texte \emph{sous}
+le nœud, nous devons utiliser la transparence avec le |blend mode| égal à |multiply|.
 
 
 \tikzset{highlight/.style={rectangle,
@@ -2941,3 +3204,8 @@ documentation ici présente, ainsi que le code source commenté et un historique
 
 \end{document}
 
+
+
+
+
+
-- 
cgit v1.2.3

