summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/nicematrix/nicematrix-french.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-08-01 03:02:43 +0000
committerNorbert Preining <norbert@preining.info>2020-08-01 03:02:43 +0000
commit614c1765c3e9a6f5665cbf4f4fb60e768054c2d4 (patch)
tree57090b05f864f2b7a96c04eae6f19a74261aed62 /macros/latex/contrib/nicematrix/nicematrix-french.tex
parentaadc6fbc73f1ca0b93f8c406c46cdb2600bce890 (diff)
CTAN sync 202008010302
Diffstat (limited to 'macros/latex/contrib/nicematrix/nicematrix-french.tex')
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex1476
1 files changed, 926 insertions, 550 deletions
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 55491dddbd..bd13654d0d 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -146,7 +146,7 @@ commande est le groupe TeX courant : elles sont semi-globales).
\bigskip
{\bfseries \color{red} Important
-Dans cette version 5.0 de \pkg{nicematrix}, on doit utiliser les lettres |l|, |c| et
+Depuis la version 5.0 de \pkg{nicematrix}, on doit utiliser les lettres |l|, |c| et
|r| dans les préambules des environnements et non plus les lettres |L|, |C| et
|R|.
@@ -168,36 +168,35 @@ L'extension \pkg{nicematrix} définit les nouveaux environnements suivants :
\begin{ttfamily}
\setlength{\tabcolsep}{3mm}
\begin{tabular}{llll}
-\{NiceTabular\} & \{NiceArray\} & \{NiceMatrix\} \\
- & \{pNiceArray\} & \{pNiceMatrix\} \\
- & \{bNiceArray\} & \{bNiceMatrix\} \\
- & \{BNiceArray\} & \{BNiceMatrix\} \\
- & \{vNiceArray\} & \{vNiceMatrix\} \\
- & \{VNiceArray\} & \{VNiceMatrix\}
+\{NiceTabular\} & \{NiceArray\} & \{NiceMatrix\} \\
+\{NiceTabular*\} & \{pNiceArray\} & \{pNiceMatrix\} \\
+ & \{bNiceArray\} & \{bNiceMatrix\} \\
+ & \{BNiceArray\} & \{BNiceMatrix\} \\
+ & \{vNiceArray\} & \{vNiceMatrix\} \\
+ & \{VNiceArray\} & \{VNiceMatrix\}
\end{tabular}
\end{ttfamily}
\medskip
-Les environnements |{NiceArray}| et |{NiceTabular}| sont similaires aux environnements |{array}| et |{tabular}| de
+Les environnements |{NiceArray}|, |{NiceTabular}| et |{NiceTabular*}| sont
+similaires aux environnements |{array}|, |{tabular}| et |{tabular*}| de
l'extension \pkg{array} (qui est chargée par \pkg{nicematrix}).
\medskip
-Néanmoins, 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.
+Les environnements |{pNiceArray}|, |{bNiceArray}|, etc. n'ont pas d'équivalents
+dans \pkg{array}.
\medskip
-Les environnements |{pNiceArray}|, |{bNiceArray}|, etc. n'ont pas d'équivalents dans \pkg{array}.
+Les environnements |{NiceMatrix}|, |{pNiceMatrix}|, etc. sont similaires aux
+environnements correspondants de l'\pkg{amsmath} (qui est chargée par
+\pkg{nicematrix}) : |{matrix}|, |{pmatrix}|, etc.
\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.
-
-\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.}
+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.}
\bigskip
\textbf{Important}
@@ -215,8 +214,9 @@ doit être chargé avec l'option |define-L-C-R|.
\section{L'espace vertical entre les rangées}
-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.
+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=9cm]
@@ -231,13 +231,17 @@ $\begin{pmatrix}
\end{pmatrix}$
\bigskip
-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{amsmath} mais une valeur de $1$~pt serait un bon choix. On conseille de régler leurs
-valeurs avec la commande |\NiceMatrixOptions|.\footnote{On remarquera que ces paramètres s'appliquent aussi aux
- colonnes de type |S| de \pkg{siunitx} alors que \pkg{cellspace} n'est pas utilisable avec ces colonnes.}
+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{amsmath} mais une valeur de $1$~pt serait un bon choix. On
+conseille de régler leurs valeurs avec la commande
+|\NiceMatrixOptions|.\footnote{On remarquera que ces paramètres s'appliquent
+ aussi aux colonnes de type |S| de \pkg{siunitx} alors que \pkg{cellspace}
+ n'est pas utilisable avec ces colonnes.}
\medskip
\begin{Verbatim}
@@ -265,9 +269,10 @@ $\begin{pNiceMatrix}
\bigskip
\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.
+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=9cm]
@@ -284,17 +289,18 @@ $A = \begin{pNiceMatrix}[baseline=2]
\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|.
+\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}.}).
+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|.
\smallskip
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
@@ -365,15 +371,17 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
\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.
+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.
+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.
+Dans |{NiceTabular}|, le contenu est composé en mode texte. Dans les autres
+environnements, il est composé en mode mathématique.
\medskip
\begin{BVerbatim}
@@ -397,10 +405,10 @@ arum & iris & jacinthe & muguet
\end{center}
-\interitem
-On remarquera que le centrage horizontal du contenu des blocs est correct même si un espacement des colonnes a été
-demandé par une instruction comme |!{\qquad}| dans le préambule (ce n'est pas le cas avec |\multicolumn|). Dans
-l'exemple suivant, l'en-tête «Premier groupe» est correctement centré.
+\interitem On remarquera que le centrage horizontal du contenu des blocs est
+correct même si un espacement des colonnes a été demandé par une instruction
+comme |!{\qquad}| dans le préambule (ce n'est pas le cas avec |\multicolumn|).
+Dans l'exemple suivant, l'en-tête «Premier groupe» est correctement centré.
\medskip
\begin{center}
@@ -458,10 +466,11 @@ $\begin{bNiceArray}{ccc|c}[margin]
\end{bNiceArray}$
\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.
+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=10.6cm]
@@ -484,60 +493,93 @@ $\begin{bNiceArray}{ccc|c}[margin]
\section{Les filets horizontaux et verticaux}
-Les techniques habituelles pour tracer des filets peuvent être utilisées dans les environnements de
-\pkg{nicematrix}, à l'exception de |\vline|.
+Les techniques habituelles pour tracer des filets peuvent être utilisées dans
+les environnements de \pkg{nicematrix}, à l'exception de |\vline|. Il y a
+néanmoins quelques petites différences de comportement avec les environnements
+classiques.
-\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|.
+\bigskip
+\subsection{Quelques différences avec les environnements classiques}
-\smallskip
-On sait que \pkg{colortbl} propose la commande |\arrayrulecolor| pour spécifier la couleur de ces filets.
+\subsubsection{Les filets verticaux}
-\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.
+Dans les environnements de \pkg{nicematrix}, les filets verticaux spécifiés par
+\verb+|+ dans le préambule des environnements ne sont jamais coupés, même en cas
+de ligne incomplète ou de double filet horizontal spécifié par |\hline\hline|
+(il n'y a pas besoin d'utiliser \pkg{hhline}).\footnote{Il s'agit là du comportement depuis la version 5.1 de
+ \pkg{nicematrix}. Dans les versions précédentes, le comportement était
+ le comportement par défaut de \pkg{array}.}
-\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
+\bigskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{NiceTabular}{|c|c|} \hline
+Premier & Deuxième \\ ~emphase#\hline\hline@
+Paul \\ \hline
+Marie & Pauline \\ \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
+%
+\begin{NiceTabular}{|c|c|}[c] \hline
+Premier & Deuxième \\ \hline\hline
+Paul \\ \hline
+Marie & Pauline \\ \hline
\end{NiceTabular}
-\end{scope}
-\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}.
+\bigskip
+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}), vous constaterez que les
+filets tracés par \pkg{nicematrix} sont compatibles avec \pkg{booktabs}.
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=10.5cm]
+$\begin{NiceArray}{~emphase#|cccc|@} \toprule
+a & b & c & d \\ \midrule
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\ \bottomrule
+\end{NiceArray}$
+\end{BVerbatim}
+%
+$\begin{NiceArray}{|cccc|}
+\toprule
+a & b & c & d \\
+\midrule
+1 & 2 & 3 & 4 \\
+1 & 2 & 3 & 4 \\
+\bottomrule
+\end{NiceArray}$
\bigskip
-\subsection{Une remarque concernant \textbackslash cline}
+Il reste néanmoins possible de définir un spécificateur, nommé par exemple
+\verb|I|, pour tracer des filets verticaux avec le comportement standard de
+\pkg{array} :
+%
+\begin{Verbatim}
+\newcolumntype{I}{!{\vrule}}
+\end{Verbatim}
+
+En fait, en l'occurrence, il serait peut-être plus habile d'insérer
+|\OnlyMainNiceMatrix| (cf. p.~\pageref{OnlyMainNiceMatrix}) :
+\begin{Verbatim}
+\newcolumntype{I}{!{\OnlyMainNiceMatrix{\vrule}}}
+\end{Verbatim}
+
+
+
+\subsubsection{La commande \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.
+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 (avec \pkg{array} et
+aussi avec \pkg{nicematrix}).
\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.
+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]
@@ -560,8 +602,9 @@ A&B&C&D \\
\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|).
+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|).
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -584,12 +627,63 @@ A&B&C&D \\
\end{scope}
+
+\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.
+
+\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.
+
+\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}
+
+\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}.
+
+
+
+
+
\bigskip
\subsection{Les clés hlines et vlines}
-La clé |hlines| demande un tracé de tous les filets horizontaux et la clé |vlines| demande un tracé de tous les
-filets verticaux. En fait, dans les environnements avec délimiteurs (comme |{pNiceMatrix}| ou |{bNiceArray}|), les
-filets extérieurs ne sont pas tracés (ce qui est le comportement certainement attendu).
+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).
\medskip
@@ -607,61 +701,15 @@ $\begin{pNiceMatrix}[vlines,rules/width=0.2pt]
\end{pNiceMatrix}$
-\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| (il n'y a pas besoin d'utiliser \pkg{hhline}).
-
-\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
-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}.
-
-\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}
-%
-$\begin{NiceMatrix}[vlines]
-\toprule
-a & b & c & d \\
-\midrule
-1 & 2 & 3 & 4 \\
-1 & 2 & 3 & 4 \\
-\bottomrule
-\end{NiceMatrix}$
-
\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| (ou la clé |hvlines-except-corners| décrite juste après) est
- utilisée, les filets ne sont pas non plus tracés dans les blocs virtuels délimités par des cases reliées par des
- lignes pointillées (cf. p. \pageref{dotted-and-hvlines}).}
+La clé |hvlines| demande le tracé de tous les filets horizontaux et verticaux
+\emph{sauf dans les blocs}.\footnote{En fait, quand la clé |hvlines| (ou la clé
+ |hvlines-except-corners| décrite juste après) est utilisée, les filets ne sont
+ pas non plus tracés dans les blocs virtuels délimités par des cases reliées
+ par des lignes pointillées (cf. p. \pageref{dotted-and-hvlines}).}
\medskip
\begin{Verbatim}
@@ -685,8 +733,8 @@ arum & iris & jacinthe & muguet
\subsection{La clé hvlines-except-corners}
-La clé |hvlines-except-corners| demande le tracé de tous les filets horizontaux et verticaux \emph{sauf dans les
- blocs} et sauf dans les coins vides.
+La clé |hvlines-except-corners| demande le tracé de tous les filets horizontaux
+et verticaux \emph{sauf dans les blocs} et sauf dans les coins vides.
\medskip
\begin{Verbatim}
@@ -717,8 +765,8 @@ A & A & A & A & A & A \\
\end{NiceTabular}
\end{center}
-Comme on le voit, un «coin vide» est constitué de la réunion de tous les rectangles vides partant de la case située
-exactement dans le coin.
+Comme on le voit, un «coin vide» est constitué de la réunion de tous les
+rectangles vides partant de la case située exactement dans le coin.
\bigskip
\begin{BVerbatim}[boxwidth=11cm,baseline=c]
@@ -746,8 +794,9 @@ exactement dans le coin.
\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
+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
@@ -776,9 +825,10 @@ Cette commande |\diagbox| peut aussi être utilisée dans un |\Block|.
\subsection{Filets en pointillés}
-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}).
+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=9.5cm]
@@ -798,8 +848,9 @@ $\begin{pNiceMatrix}
\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 «|:|».
+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
\begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
@@ -816,47 +867,77 @@ $\begin{pNiceArray}{cccc:c}
\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|.
+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
-\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.
+\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| : cf. p.~\pageref{remark-cline}}. Avec
+\pkg{nicematrix}, les lignes en pointillés tracées par |\hdottedline| et «|:|»
+ont le même effet.
\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.
+\subsection{Utilisation de colortbl}
+
+Rappelons que l'extension \pkg{colortbl} peut être chargée directement par
+|\usepackage{colortbl}| ou en chargeant l'extension \pkg{xcolor} avec l'option
+|table| : |\usepackage[table]{xcolor}|.
\medskip
-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}
+Comme l'extension \pkg{nicematrix} est fondée sur \pkg{array}, il est possible
+d'utiliser \pkg{colortbl} avec \pkg{nicematrix}.
\medskip
-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}.}
+Il y a néanmoins deux inconvénients :
+\begin{itemize}
+\item L'extension \pkg{colortbl} patche \pkg{array}, ce qui entraîne des
+incompatibilités (par exemple avec la commande |\hdotsfor|).
+
+\item L'extension \pkg{colortbl} construit le tableau ligne par ligne, en
+alternant rectangles colorés, filets et contenu des cases. Le \textsc{pdf}
+résultant déroute certains lecteurs de \textsc{pdf} et on a des artefacts
+d'affichage : des filets verticaux semblent disparaître ; au contraire, de fines
+lignes blanches peuvent apparaître. L'extension \pkg{nicematrix} proposent des
+outils qui évitent ces inconvénients.
+\end{itemize}
+
+\subsection{Les outils de nicematrix dans le code-before}
+
+L'extension \pkg{nicematrix} proposent des outils (indépendants de
+\pkg{colortbl}) pour tracer d'abord les rectangles colorés, puis le contenu des
+cases et les filets. Cette manière de faire est plus dans l'esprit du «modèle du
+peintre» des formats PostScript et \textsc{pdf} et convient donc mieux aux
+lecteurs de \textsc{pdf}. L'inconvénient est qu'elle nécessite plusieurs
+compilations successives.
+
+\medskip
+L'extension \pkg{nicematrix} fournit une clé |code-before| pour du code qui sera
+exécuté avant le tracé du tableau. De nouvelles commandes y sont disponibles :
+|\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors| et
+|\chessboardcolors|.
+\label{code-before}
\medskip
-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.
+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.
\medskip
\begin{itemize}
-\item La commande |\cellcolor| tient son nom de la commande |\cellcolor| de \pkg{colortbl}.
+\item La commande |\cellcolor| tient son nom de la commande |\cellcolor| de
+\pkg{colortbl}.
-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.
+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.
\medskip
\begin{scope}
@@ -878,8 +959,9 @@ h & i & j \\ \hline
\end{scope}
\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.
+\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{scope}
@@ -903,9 +985,11 @@ h & i & j \\ \hline
\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$).
+\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
@@ -943,14 +1027,16 @@ a_{10} & b_{10} & c_{10} \\
\bigskip
-\item La commande |\columncolor| doit son nom à la commande |\columncolor| de \pkg{colortbl}. Sa syntaxe est
-similaire à celle de |\rowcolor|.
+\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}\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).
+\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}
@@ -978,8 +1064,8 @@ Estelle & 15
\bigskip
-\item La commande |\chessboardcolors| prend en arguments obligatoires deux couleurs et colorie les cases en
-quinconces avec les deux couleurs.
+\item La commande |\chessboardcolors| prend en arguments obligatoires deux
+couleurs et colorie les cases en quinconces avec les deux couleurs.
\medskip
\begin{scope}
@@ -1000,12 +1086,13 @@ $\begin{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}).
+On a utilisé la clé |r| qui impose que toutes les colonnes soient alignées à
+droite (cf. p.~\pageref{key-R}).
\end{itemize}
\bigskip
-On remarquera que ces commandes sont compatibles avec les commandes de \pkg{booktabs} (|\toprule|, |\midrule|,
-|\bottomrule|, etc).
+On remarquera que ces commandes sont compatibles avec les commandes de
+\pkg{booktabs} (|\toprule|, |\midrule|, |\bottomrule|, etc).
\medskip
\begin{scope}
@@ -1050,14 +1137,61 @@ spécial & 12 & 12 & 0.5 & 70 \\
On a utilisé le type de colonne |S| de \pkg{siunitx}.
+\subsection{Outils de coloriage avec la syntaxe de colortbl}
+
+On peut accéder aux outils de coloriage précédents avec une syntaxe proche de
+celle proposée par \pkg{colortbl}. On doit pour cela utiliser la clé
+|colortbl-like| dans l'environnement concerné.\footnote{Pour le moment, cette
+ clé n'est pas disponible disponible dans |\NiceMatrixOptions|.}
+
+On a alors accès aux trois commandes suivantes :
+\begin{itemize}
+\item |\cellcolor| qui colorie la case courante ;
+\item |\rowcolor| à utiliser dans une case et qui colorie le reste de la rangée
+;
+\item |\columncolor| à utiliser dans le préambule de la même manière que la
+commande éponyme de \pkg{colortbl}\footnote{Contrairement à la commande
+|\columncolor| de \pkg{colortbl}, celle-ci peut apparaître à l'intérieur d'une
+autre commande, elle-même utilisée dans le préambule.}.
+\end{itemize}
+
+\medskip
+\begin{Verbatim}
+\begin{NiceTabular}[colortbl-like]{>{~emphase#\columncolor{blue!15}}@ccc}
+\toprule
+~emphase#\rowcolor{red!15}@
+Nom & Prénom & Année de naissance \\
+\midrule
+Achard & Jacques & 5 juin 1962 \\
+Lefebvre & Mathilde & 23 mai 1988 \\
+Vanesse & Stéphanie & 30 octobre 1994 \\
+Dupont & Chantal & 15 janvier 1998 \\
+\bottomrule
+\end{NiceTabular}
+\end{Verbatim}
+
+
+\begin{center}
+\begin{NiceTabular}[colortbl-like]{>{\columncolor{blue!15}}ccc}
+\toprule
+\rowcolor{red!15}
+Nom & Prénom & Année de naissance \\
+\midrule
+Achard & Jacques & 5 juin 1962 \\
+Lefebvre & Mathilde & 23 mai 1988 \\
+Vanesse & Stéphanie & 30 octobre 1994 \\
+Dupont & Chantal & 15 janvier 1998 \\
+\bottomrule
+\end{NiceTabular}
+\end{center}
+
+
\section{La largeur des colonnes}
\label{width}
-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).
+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}.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
@@ -1075,8 +1209,9 @@ Rio & Tokyo & Oslo
\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|.
+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=10cm]
@@ -1093,15 +1228,17 @@ $\begin{pNiceMatrix}[columns-width = 1cm]
\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).
+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).
\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 PGF/Tikz écrivant des informations dans le fichier |.aux|, un message demandant une
- deuxième compilation apparaîtra).}\par\nobreak
+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 PGF/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]
@@ -1118,8 +1255,9 @@ $\begin{pNiceMatrix}[columns-width = auto]
\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
+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
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
@@ -1147,12 +1285,15 @@ c & d
\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 précédemment dans
-ce document (cf.~p.~\pageref{Block}).
+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}).
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
@@ -1185,12 +1326,13 @@ $\begin{array}{c}
\bigskip
\section{Les rangées et colonnes extérieures}
-Les environnements de \pkg{nicematrix} permettent de composer des rangées et des colonnes «extérieures» grâce aux options
-|first-row|, |last-row|, |first-col| et |last-col|.
+Les environnements de \pkg{nicematrix} permettent de composer des rangées et des
+colonnes «extérieures» grâce aux options |first-row|, |last-row|, |first-col| et
+|last-col|.
\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 colonne».
+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 colonne».
\begin{Verbatim}
$\begin{pNiceMatrix}[~emphase#first-row,last-row,first-col,last-col@,nullify-dots]
@@ -1220,29 +1362,34 @@ Les lignes pointillées ont été tracées avec les outils présentés p.~\pager
Il y a plusieurs remarques à formuler.
%
\begin{itemize}[beginpenalty=10000]
-\item Si on utilise un environnement avec préambule explicite (c'est-à-dire |{NiceArray}| ou l'une de ses
-variantes), on ne doit pas mettre dans ce préambule de spécification de colonne pour les éventuelles première et
-dernière colonne : ce sera automatiquement (et nécessairement) une colonne |R| pour la première colonne et une
-colonne |L| pour la dernière.
+\item Si on utilise un environnement avec préambule explicite (c'est-à-dire
+|{NiceArray}| ou l'une de ses variantes), on ne doit pas mettre dans ce
+préambule de spécification de colonne pour les éventuelles première et dernière
+colonne : ce sera automatiquement (et nécessairement) une colonne |R| pour la
+première colonne et une colonne |L| pour la dernière.
\item On peut se demander comment \pkg{nicematrix} détermine le nombre de rangées et de colonnes nécessaires à la
composition de la «dernière rangée» et de la «dernière colonne».
\begin{itemize}
-\item Dans le cas d'un environnement avec préambule, comme |{NiceTabular}| ou |{pNiceArray}|, le nombre de colonnes
-se déduit évidemment du préambule.
-
-\item Dans le cas où l'option |light-syntax| (cf. p. \pageref{light-syntax}) est utilisée, \pkg{nicematrix} profite
-du fait que cette option nécessite de toutes manières le chargement complet du contenu de l'environnement (d'où
-l'impossibilité de mettre du verbatim dans ce cas-là) avant composition du tableau. L'analyse du contenu de
-l'environnement donne le nombre de rangées (mais pas le nombre de colonnes).
-
-\item Dans les autres cas, \pkg{nicematrix} détermine le nombre de rangées et de colonnes à la première compilation
-et l'écrit dans le fichier |.aux| pour pouvoir l'utiliser à la compilation suivante.
-
-\textsl{Néanmoins, il est possible de donner le numéro de la dernière rangée et le numéro de la dernière colonne en
-arguments des options |last-row| et |last-col|, ce qui permettra d'accélérer le processus complet de
-compilation.} C'est ce que nous ferons dans la suite.
+\item Dans le cas d'un environnement avec préambule, comme |{NiceTabular}| ou
+|{pNiceArray}|, le nombre de colonnes se déduit évidemment du préambule.
+
+\item Dans le cas où l'option |light-syntax| (cf. p. \pageref{light-syntax}) est
+utilisée, \pkg{nicematrix} profite du fait que cette option nécessite de toutes
+manières le chargement complet du contenu de l'environnement (d'où
+l'impossibilité de mettre du verbatim dans ce cas-là) avant composition du
+tableau. L'analyse du contenu de l'environnement donne le nombre de rangées
+(mais pas le nombre de colonnes).
+
+\item Dans les autres cas, \pkg{nicematrix} détermine le nombre de rangées et de
+colonnes à la première compilation et l'écrit dans le fichier |.aux| pour
+pouvoir l'utiliser à la compilation suivante.
+
+\textsl{Néanmoins, il est possible de donner le numéro de la dernière rangée et
+ le numéro de la dernière colonne en arguments des options |last-row| et
+ |last-col|, ce qui permettra d'accélérer le processus complet de compilation.}
+C'est ce que nous ferons dans la suite.
\end{itemize}
\end{itemize}
@@ -1250,9 +1397,10 @@ compilation.} C'est ce que nous ferons dans la suite.
\bigskip
-On peut contrôler l'apparence de ces rangées et colonnes avec les options |code-for-first-row|,
-|code-for-last-row|, |code-for-first-col| et |code-for-last-col|. Ces options sont des listes de tokens qui seront
-insérées au début de chaque case de la rangée ou de la colonne considérée.
+On peut contrôler l'apparence de ces rangées et colonnes avec les options
+|code-for-first-row|, |code-for-last-row|, |code-for-first-col| et
+|code-for-last-col|. Ces options sont des listes de tokens qui seront insérées
+au début de chaque case de la rangée ou de la colonne considérée.
\begin{Verbatim}
\NiceMatrixOptions{~emphase#code-for-first-row@ = \color{red},
@@ -1292,17 +1440,21 @@ 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, 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
-«première colonne» ni à la «dernière colonne».
-\item Pour des raisons techniques, il n'est pas possible d'utiliser l'option de la commande |\\| après la
-«première rangée» ou avant la «dernière rangée» (le placement des délimiteurs serait erroné).
+\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 «première colonne» ni à la «dernière
+colonne».
+\item Pour des raisons techniques, il n'est pas possible d'utiliser l'option de
+la commande |\\| après la «première rangée» ou avant la «dernière rangée» (le
+placement des délimiteurs serait erroné).
\end{itemize}
@@ -1312,24 +1464,27 @@ dans cette «première rangée» (sauf si une valeur a été donnée à |xdots/c
\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}
+À 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
+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]
@@ -1352,8 +1507,8 @@ a_1 & a_2 & & & a_n
-\interitem
-Pour représenter la matrice nulle, on peut choisir d'utiliser le codage suivant :\par\nobreak
+\interitem Pour représenter la matrice nulle, on peut choisir d'utiliser le
+codage suivant :\par\nobreak
\bigskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -1370,9 +1525,10 @@ $\begin{bNiceMatrix}
\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
+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]
@@ -1391,13 +1547,12 @@ $\begin{bNiceMatrix}
\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.}).
+Dans la première colonne de cet exemple, il y a deux instructions |\Vdots| mais,
+bien entendu, une seule ligne en pointillés sera.
\bigskip
-En fait, dans cet exemple, il aurait été possible de tracer la même matrice plus rapidement avec le codage suivant
-:\par\nobreak
+En fait, dans cet exemple, il aurait été possible de tracer la même matrice plus
+rapidement avec le codage suivant :\par\nobreak
\bigskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -1416,15 +1571,19 @@ $\begin{bNiceMatrix}
\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
+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
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -1442,8 +1601,8 @@ $\begin{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
+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=10cm]
@@ -1459,8 +1618,8 @@ x & & & & & x
\bigskip
-Si nous ajoutons des instructions |\ldots| dans la seconde rangée, la géométrie de la matrice est
-modifiée.\par\nobreak
+Si nous ajoutons des instructions |\ldots| dans la seconde rangée, la géométrie
+de la matrice est modifiée.\par\nobreak
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -1475,8 +1634,9 @@ 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
+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]
@@ -1491,8 +1651,9 @@ x & \Ldots & \Ldots & \Ldots & \Ldots & x
\end{pNiceMatrix}$
\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
+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
@@ -1508,19 +1669,21 @@ x & \Ldots & & & & x
\end{pNiceMatrix}$
\medskip
-L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes) horizontalement mais aussi
-verticalement.
+L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes)
+horizontalement mais aussi verticalement.
-\subsection{La commande \textbackslash Hdotsfor}
+\subsection{Les commandes \textbackslash Hdotsfor et \textbackslash Vdotsfor}
-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}.
+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.
+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=7cm]
@@ -1539,8 +1702,8 @@ $\begin{pNiceMatrix}
\end{pNiceMatrix}$
\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).
+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=7cm]
@@ -1559,38 +1722,81 @@ $\begin{pNiceMatrix}
\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|).
+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|).
+
+\bigskip
+L'extension \pkg{nicematrix} propose aussi une commande |\Vdotsfor| similaire à
+|\Hdotsfor| mais traçant des lignes verticales.
+
+\bigskip
+L'exemple suivant utilise à la fois |\Hdotsfor| et |\Vdotsfor|:
+
+\begin{Verbatim}[formatcom=\small\color{gray}]
+\begin{bNiceMatrix}
+C[a_1,a_1] & \Cdots & C[a_1,a_n]
+ & \hspace*{20mm} & C[a_1,a_1^{(p)}] & \Cdots & C[a_1,a_n^{(p)}] \\
+\Vdots & \Ddots & \Vdots
+ & ~emphase#\Hdotsfor{1}@ & \Vdots & \Ddots & \Vdots \\
+C[a_n,a_1] & \Cdots & C[a_n,a_n]
+ & & C[a_n,a_1^{(p)}] & \Cdots & C[a_n,a_n^{(p)}] \\
+\rule{0pt}{15mm} & ~emphase#\Vdotsfor{1}@ & & \Ddots & & ~emphase#\Vdotsfor{1}@ \\
+C[a_1^{(p)},a_1] & \Cdots & C[a_1^{(p)},a_n]
+ & & C[a_1^{(p)},a_1^{(p)}] & \Cdots & C[a_1^{(p)},a_n^{(p)}] \\
+\Vdots & \Ddots & \Vdots
+ & ~emphase#\Hdotsfor{1}@ & \Vdots & \Ddots & \Vdots \\
+C[a_n^{(p)},a_1] & \Cdots & C[a_n^{(p)},a_n]
+ & & C[a_n^{(p)},a_1^{(p)}] & \Cdots & C[a_n^{(p)},a_n^{(p)}]
+\end{bNiceMatrix}
+\end{Verbatim}
+
+
+\[\begin{bNiceMatrix}
+C[a_1,a_1] & \Cdots & C[a_1,a_n] & \hspace*{20mm} & C[a_1,a_1^{(p)}] & \Cdots & C[a_1,a_n^{(p)}] \\
+\Vdots & \Ddots & \Vdots & \Hdotsfor{1} & \Vdots & \Ddots & \Vdots \\
+C[a_n,a_1] & \Cdots & C[a_n,a_n] & & C[a_n,a_1^{(p)}] & \Cdots & C[a_n,a_n^{(p)}] \\
+\rule{0pt}{15mm} & \Vdotsfor{1} & & \Ddots & & \Vdotsfor{1} \\
+C[a_1^{(p)},a_1] & \Cdots & C[a_1^{(p)},a_n] & & C[a_1^{(p)},a_1^{(p)}] & \Cdots & C[a_1^{(p)},a_n^{(p)}] \\
+\Vdots & \Ddots & \Vdots & \Hdotsfor{1} & \Vdots & \Ddots & \Vdots \\
+C[a_n^{(p)},a_1] & \Cdots & C[a_n^{(p)},a_n] & & C[a_n^{(p)},a_1^{(p)}] & \Cdots & C[a_n^{(p)},a_n^{(p)}]
+\end{bNiceMatrix}\]
+
+
\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).}
+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|.
+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.
+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
+Par conséquent, avec l'option |transparent|, un code classique donne directement
+le résultat fourni par \pkg{nicematrix}.\par\nobreak
\bigskip
\begin{scope}
@@ -1615,10 +1821,12 @@ $\begin{pmatrix}
\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|.
+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}
@@ -1637,9 +1845,10 @@ $\begin{bNiceMatrix}
\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) :
+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| ;
@@ -1647,8 +1856,9 @@ paramétrées par trois options (que l'on met entre crochets après la commande)
\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 :
+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| ;
@@ -1662,8 +1872,9 @@ Pour la clarté, dans la suite, on utilisera ces noms-là.
\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.
+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}.
@@ -1671,21 +1882,24 @@ p.~\pageref{exterior}.
\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).
+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).
\bigskip
\textbf{L'option xdots/line-style}\par\nobreak
\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.}
+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) ;
@@ -1693,15 +1907,18 @@ carrés et non pas ronds.\footnote{La raison de départ est que le format \texts
\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|.
+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 <|»).
+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
@@ -1733,9 +1950,10 @@ b & a & b & \Ddots & & \Vdots \\
\label{dotted-and-hvlines}
-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.
+On a dit (cf. p. \pageref{hvlines}) que la clé |hvlines| trace tous les filets
+horizontaux et verticaux, exceptés dans les blocs. En fait, avec cette clé, les
+filets ne sont pas non plus tracés dans les blocs virtuels délimités par des
+cases reliées par des lignes pointillées.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
@@ -1758,13 +1976,15 @@ $\begin{bNiceMatrix}[margin,hvlines]
\label{code-after}
-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}.}
+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}.}
-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.
+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}
\medskip
@@ -1788,11 +2008,11 @@ I & 0 & \Cdots &0 \\
\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|\footnote{Dans certaines circonstances, on doit mettre
-|\omit \CodeAfter|, |\omit| étant un mot-clé de TeX qui annule le motif de la cellule
-courante.}. Pour un exemple, voir page
+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|\footnote{Dans certaines circonstances, on doit
+ mettre |\omit \CodeAfter|, |\omit| étant un mot-clé de TeX qui annule le motif
+ de la cellule courante.}. Pour un exemple, voir page
\pageref{exemple-CodeAfter}.
\section{Les notes dans les tableaux}
@@ -1907,7 +2127,8 @@ titre inséré par |\caption| dans un environnement |{table}| de LaTeX.
\item Si plusieurs commandes |\tabularnote{...}| se suivent \emph{sans aucun espace
entre elles}, les appels de notes correspondants sont composés ensemble,
-séparés par une virgule.
+séparés par une virgule (comme avec l'option |multiple| de \pkg{footmisc} pour
+les notes de pied de page).
\item Si une commande |\tabularnote{...}| se trouve exactement à la fin d'une cellule
(sans aucun espace après), l'appel de note est composé en débordement vers la
@@ -1960,8 +2181,8 @@ Wallis & John & 87 \\
\subsection{Personnalisation des notes de tableau}
-Les notes de tableau peuvent être personnalisées grâce à un ensemble de clés disponibles dans
-|\NiceMatrixOptions|. Ces clés ont un nom préfixé par |notes| :
+Les notes de tableau peuvent être personnalisées grâce à un ensemble de clés
+disponibles dans |\NiceMatrixOptions|. Ces clés ont un nom préfixé par |notes| :
\begin{itemize}
\item |notes/para|
\item |notes/bottomrule|
@@ -2120,8 +2341,8 @@ Si vous souhaitez utiliser l'environnement |{NiceTabular}| dans un environnement
\makeatother
\end{Verbatim}
-La commande |\AtBeginEnvironment| est une commande de l'extension \pkg{etoolbox} qui doit donc
-avoir été chargée au préalable.
+La commande |\AtBeginEnvironment| est une commande de l'extension \pkg{etoolbox}
+qui doit donc avoir été chargée au préalable.
\section{Autres fonctionnalités}
@@ -2151,7 +2372,8 @@ $\begin{pNiceArray}{ScW{c}{1cm}c}[nullify-dots,first-row]
\end{pNiceArray}$
\medskip
-En revanche, les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en charge par \pkg{nicematrix}.
+En revanche, les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en
+charge par \pkg{nicematrix}.
@@ -2159,8 +2381,9 @@ En revanche, les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en
\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.
+Les environnements sans préambule (|{NiceMatrix}|, |{pNiceMatrix}|,
+|{bNiceMatrix}|, etc.) proposent les options |l| et |r| qui imposent des
+colonnes alignées à gauche ou à droite.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -2175,9 +2398,10 @@ $\begin{bNiceMatrix}[r]
\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}.}
+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}
@@ -2213,8 +2437,8 @@ e_1 & e_2 & e_3 \\
\end{varwidth}
\bigskip
-Si la commande |\rotate| est utilisée dans la «dernière rangée» (extérieure à la matrice), les éléments qui
-subissent cette rotation sont alignés vers le haut.
+Si la commande |\rotate| est utilisée dans la «dernière rangée» (extérieure à la
+matrice), les éléments qui subissent cette rotation sont alignés vers le haut.
\bigskip
\begin{BVerbatim}[baseline=c,boxwidth=12cm]
@@ -2245,9 +2469,10 @@ $A = \begin{pNiceMatrix}[last-row,last-col=4]
\label{small}
-Avec l'option |small|, les environnements de l'extension \pkg{nicematrix} sont composés d'une manière proche de ce
-que propose l'environnement |{smallmatrix}| de l'\pkg{amsmath} (et les environnements |{psmallmatrix}|,
-|{bsmallmatrix}|, etc. de \pkg{mathtools}).
+Avec l'option |small|, les environnements de l'extension \pkg{nicematrix} sont
+composés d'une manière proche de ce que propose l'environnement |{smallmatrix}|
+de l'\pkg{amsmath} (et les environnements |{psmallmatrix}|, |{bsmallmatrix}|,
+etc. de \pkg{mathtools}).
\bigskip
\begin{Verbatim}
@@ -2270,10 +2495,11 @@ $\begin{bNiceArray}{cccc|c}[~emphase#small@,
\bigskip
-On remarquera néanmoins que l'environnement |{NiceMatrix}| avec l'option |small| ne prétend pas être composé
-exactement comme l'environnement |{smallmatrix}|. C'est que les environnements de \pkg{nicematrix} sont tous fondés
-sur |{array}| (de \pkg{array}) alors que ce n'est pas le cas de |{smallmatrix}| (fondé directement sur un |\halign|
-de TeX).
+On remarquera néanmoins que l'environnement |{NiceMatrix}| avec l'option |small|
+ne prétend pas être composé exactement comme l'environnement |{smallmatrix}|.
+C'est que les environnements de \pkg{nicematrix} sont tous fondés sur |{array}|
+(de \pkg{array}) alors que ce n'est pas le cas de |{smallmatrix}| (fondé
+directement sur un |\halign| de TeX).
\medskip
En fait, l'option |small| correspond aux réglages suivants :
@@ -2286,15 +2512,17 @@ En fait, l'option |small| correspond aux réglages suivants :
\subsection{Les compteurs iRow et jCol}
-Dans les cases du tableau, il est possible d'utiliser les compteurs LaTeX |iRow| et |jCol| qui représentent le
-numéro de la rangée courante et le numéro de la colonne courante\footnote{On rappelle que le numéro de la «première
- rangée» (si elle existe) est $0$ et que le numéro de la «première colonne» (si elle existe) est $0$ également.}.
-Bien entendu, l'utilisateur ne doit pas modifier les valeurs de ces compteurs qui sont utilisés en interne par
-\pkg{nicematrix}.
+Dans les cases du tableau, il est possible d'utiliser les compteurs LaTeX |iRow|
+et |jCol| qui représentent le numéro de la rangée courante et le numéro de la
+colonne courante\footnote{On rappelle que le numéro de la «première rangée» (si
+ elle existe) est $0$ et que le numéro de la «première colonne» (si elle
+ existe) est $0$ également.}. 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-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).
+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]
@@ -2320,20 +2548,22 @@ $\begin{pNiceMatrix}[first-row,
\end{pNiceMatrix}$
\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 final), ces compteurs sont masqués dans les environnements
-de \pkg{nicematrix}.
+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
+final), ces compteurs sont masqués dans les environnements de \pkg{nicematrix}.
\bigskip
-L'extension \pkg{nicematrix} propose aussi des commandes pour composer automatiquement des matrices à partir d'un
-motif général. Ces commandes sont nommées |\AutoNiceMatrix|, |\pAutoNiceMatrix|, |\bAutoNiceMatrix|,
+L'extension \pkg{nicematrix} propose aussi des commandes pour composer
+automatiquement des matrices à partir d'un motif général. Ces commandes sont
+nommées |\AutoNiceMatrix|, |\pAutoNiceMatrix|, |\bAutoNiceMatrix|,
|\vAutoNiceMatrix|, |\VAutoNiceMatrix| et |\BAutoNiceMatrix|.
-Chacune de ces commandes prend deux arguments obligatoires : le premier est la taille de la matrice, sous la forme
-$n$-$p$, où $n$ est le nombre de rangées et $p$ est le nombre de colonnes et le deuxième est le motif (c'est-à-dire
-simplement des tokens qui seront insérés dans chaque case de la matrice, exceptées celles des éventuelles rangées et
-colonnes extérieures).
+Chacune de ces commandes prend deux arguments obligatoires : le premier est la
+taille de la matrice, sous la forme $n$-$p$, où $n$ est le nombre de rangées et
+$p$ est le nombre de colonnes et le deuxième est le motif (c'est-à-dire
+simplement des tokens qui seront insérés dans chaque case de la matrice,
+exceptées celles des éventuelles rangées et colonnes extérieures).
\medskip
\begin{Verbatim}
@@ -2349,11 +2579,13 @@ $C = ~emphase#\pAutoNiceMatrix@{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$
\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.
+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
@@ -2374,22 +2606,27 @@ 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.
+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.}
+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.
+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]
@@ -2417,28 +2654,33 @@ $\begin{NiceArrayWithDelims}
\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.
+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.
+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$.
+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).
+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.
+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]
@@ -2463,8 +2705,9 @@ 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.
+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
@@ -2489,8 +2732,7 @@ $\begin{pNiceMatrix}
\bigskip
Dans l'exemple suivant, nous avons surligné tous les nœuds de la matrice (on
-explique plus loin la technique utilisée :
-cf. p. \pageref{highlight}).
+explique plus loin la technique utilisée : cf. p. \pageref{highlight}).
\[\begin{pNiceMatrix}
a & a + b & a + b + c \\
@@ -2521,19 +2763,22 @@ a & a & a
\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|.}
+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.
+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}
@@ -2558,10 +2803,12 @@ a & a & a
\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}).}
+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,
@@ -2586,14 +2833,16 @@ a & a & a
\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| (valeur
- initial : 5~pt). Il existe aussi une option |margin| pour fixer à la fois
- |left-margin| et |right-margin|.}
+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| (valeur initial : 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}
@@ -2616,9 +2865,10 @@ a & a & a
\end{pNiceMatrix}\]
\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.
+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}
@@ -2642,8 +2892,8 @@ a & a & a
\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.
+\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
\begin{minipage}[c]{7.5cm}
@@ -2686,7 +2936,8 @@ noix & noisette & brugnon
\vspace{1cm}
\begin{minipage}[c]{7cm}
-Voici maintenant tous les «nœuds larges» de ce tableau (sans utilisation de |margin| ni de |extra-margin|).
+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}
@@ -2715,17 +2966,12 @@ noix & noisette & brugnon
-
-
-
-
-
-
\subsection{Les nœuds «row» et «col»}
-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|.
+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 \\
@@ -2750,8 +2996,9 @@ muguet & dahlia & souci
\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
+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$|)|.
@@ -2797,18 +3044,116 @@ Si on utilise Tikz (on rappelle que \pkg{nicematrix} ne charge pas Tikz par déf
\end{NiceMatrix}\]
+\section{Outils pour les développeurs}
+
+Comme son nom l'indique, la liste de tokens |\g_nicematrix_code_after_tl| est
+publique (conformément aux conventions de LaTeX3, toute variable dont le nom
+débute par |\g_nicematrix| ou |\l_nicematrix| est publique alors que toute variable
+dont le nom débute par |\g__nicematrix| ou par |\l__nicematrix| est privée).
+
+\medskip
+Cette variable contient le code qui constitue le «|code-after|». Le développeur
+peut donc l'utiliser pour y ajouter du code à partir d'une cellule du tableau
+(l'affectation devra être globale, ce qui permettra de sortir de la cellule, qui
+est un groupe au sens de TeX).
+
+\medskip
+\emph{Exemple} : On souhaite écrire une commande |\crossbox| qui barre en croix
+la cellule courante. Cette commande prendra en argument optionnel une liste de
+couples \textsl{clé}-\textsl{valeur} qui sera passée à Tikz avant que la croix
+ne soit tracée.
+
+
+On peut alors programmer cette commande |\crossbox| de la manière suivante, qui
+utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
+
+
+\begin{scope}
+\fvset{commandchars=\§\¤\μ}
+\begin{Verbatim}
+\ExplSyntaxOn
+\cs_new_protected:Nn \__pantigny_crossbox:nnn
+ {
+ \begin { tikzpicture }
+ \draw [ #3 ]
+ ( row-#1 -| col-\int_eval:n { #2 + 1 } )
+ -- ( row-\int_eval:n { #1 + 1 } -| col-#2 )
+ ( row-#1 -| col-\int_eval:n #2 )
+ -- ( row-\int_eval:n { #1 + 1 } -| col-\int_eval:n { #2 + 1 } ) ;
+ \end { tikzpicture }
+ }
+
+
+\NewDocumentCommand \crossbox { ! O { } }
+ {
+ \tl_gput_right:Nx §emphase¤\g_nicematrix_code_after_tlμ
+ {
+ \__pantigny_crossbox:nnn
+ { \int_use:c { c@iRow } }
+ { \int_use:c { c@jCol } }
+ { \exp_not:n { #1 } }
+ }
+ }
+\ExplSyntaxOff
+\end{Verbatim}
+\end{scope}
+
+
+\ExplSyntaxOn
+\cs_new_protected:Nn \__pantigny_crossbox:nnn
+ {
+ \begin { tikzpicture }
+ \draw [ #3 ]
+ ( row-#1 -| col-\int_eval:n { #2 + 1 } )
+ -- ( row-\int_eval:n { #1 + 1 } -| col-#2 )
+ ( row-#1 -| col-\int_eval:n #2 )
+ -- ( row-\int_eval:n { #1 + 1 } -| col-\int_eval:n { #2 + 1 } ) ;
+ \end { tikzpicture }
+ }
+
+
+\NewDocumentCommand \crossbox { ! O { } }
+ {
+ \tl_gput_right:Nx \g_nicematrix_code_after_tl
+ {
+ \__pantigny_crossbox:nnn
+ { \int_use:c { c@iRow } }
+ { \int_use:c { c@jCol } }
+ { \exp_not:n { #1 } }
+ }
+ }
+\ExplSyntaxOff
+
+\bigskip
+Voici un exemple d'utilisation :
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=9cm]
+\begin{NiceTabular}{ccc}[hvlines]
+merlan & requin & cabillaud \\
+baleine & ~emphase#\crossbox[red]@ & morue \\
+mante & raie & poule
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{ccc}[hvlines]
+merlan & requin & cabillaud \\
+baleine & \crossbox[red] & morue \\
+mante & raie & poule
+\end{NiceTabular}
+
\section{Remarques techniques}
-Première remarque : l'extension \pkg{nicematrix} doit être chargée après l'extension \pkg{underscore}. Si ce n'est
-pas le cas, une erreur est levée.
+Première remarque : l'extension \pkg{nicematrix} doit être chargée après
+l'extension \pkg{underscore}. Si ce n'est pas le cas, une erreur est levée.
\subsection{Pour définir de nouveaux types de colonnes}
\label{OnlyMainNiceMatrix}
-L'extension \pkg{nicematrix} fournit la commande |\OnlyMainNiceMatrix| qui est destinée à être utilisée dans des
-définitions de nouveaux types de colonnes. Son argument n'est exécuté que si on se place dans la partie principale
-du tableau, c'est-à-dire que l'on n'est pas dans l'une des éventuelles rangées extérieures.
+L'extension \pkg{nicematrix} fournit la commande |\OnlyMainNiceMatrix| qui est
+destinée à être utilisée dans des définitions de nouveaux types de colonnes. Son
+argument n'est exécuté que si on se place dans la partie principale du tableau,
+c'est-à-dire que l'on n'est pas dans l'une des éventuelles rangées extérieures.
Par exemple, si on souhaite définir un type de colonne |?| pour tracer un trait fort (noir) d'épaisseur 1~pt, on
pourra écrire\footnote{La commande |\vrule| est une commande de TeX (et non de LaTeX).} :
@@ -2816,7 +3161,9 @@ pourra écrire\footnote{La commande |\vrule| est une commande de TeX (et non de
\newcolumntype{?}{!{\OnlyMainNiceMatrix{\vrule width 1 pt}}}
\end{Verbatim}
-Le trait fort correspondant ne s'étendra pas dans les rangées extérieures :
+Le trait fort correspondant ne s'étendra pas dans les rangées
+extérieures.\footnote{Un tel filet utilisant les techniques classiques de
+ \pkg{array}, il ne traversera pas les doubles filets horizontaux de |\hline\hline|.}
\medskip
\begin{scope}
@@ -2839,8 +3186,9 @@ C_1 & C_2 & C_3 & C_4
\end{scope}
\medskip
-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.
+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.
@@ -2849,11 +3197,13 @@ Le spécificateur |?| ainsi créé est aussi utilisable dans les environnements
\subsection{Lignes diagonales}
-Par défaut, toutes les lignes diagonales\footnote{On parle des lignes créées par |\Ddots| et non des lignes créées
- par une commande |\line| dans le |code-after|.} d'un même tableau sont «parallélisées». Cela signifie que la
-première diagonale est tracée et que, ensuite, les autres lignes sont tracées parallèlement à la première (par
-rotation autour de l'extrémité la plus à gauche de la ligne). C'est pourquoi la position des instructions |\Ddots|
-dans un tableau peut avoir un effet marqué sur le résultat final.
+Par défaut, toutes les lignes diagonales\footnote{On parle des lignes créées par
+ |\Ddots| et non des lignes créées par une commande |\line| dans le
+ |code-after|.} d'un même tableau sont «parallélisées». Cela signifie que la
+première diagonale est tracée et que, ensuite, les autres lignes sont tracées
+parallèlement à la première (par rotation autour de l'extrémité la plus à gauche
+de la ligne). C'est pourquoi la position des instructions |\Ddots| dans un
+tableau peut avoir un effet marqué sur le résultat final.
\medskip
Dans les exemples suivants, la première instruction |\Ddots| est marquée en couleur :
@@ -2898,7 +3248,8 @@ a+b & \Cdots & a+b & 1
\end{pNiceMatrix}$
\bigskip
-Il est possible de désactiver la parallélisation avec l'option |parallelize-diags| mise à |false|: \par\nobreak
+Il est possible de désactiver la parallélisation avec l'option
+|parallelize-diags| mise à |false|: \par\nobreak
\medskip
\NiceMatrixOptions{parallelize-diags=false}%
@@ -2919,10 +3270,11 @@ a+b & \Cdots & a+b & 1
\subsection{Les cases «vides»}
\label{empty-cells}
-Une instruction comme |\Ldots|, |\Cdots|, etc. essaye de déterminer la première case vide de part et d'autre de la
-case considérée. Néanmoins, une case vide n'est pas nécessairement sans contenu dans le codage TeX (c'est-à-dire
-sans aucun token entre les deux esperluettes~|&|). En effet, une case dont le contenu est |\hspace*{1cm}| peut être
-considérée comme vide.
+Une instruction comme |\Ldots|, |\Cdots|, etc. essaye de déterminer la première
+case vide de part et d'autre de la case considérée. Néanmoins, une case vide
+n'est pas nécessairement sans contenu dans le codage TeX (c'est-à-dire sans
+aucun token entre les deux esperluettes~|&|). En effet, une case dont le contenu
+est |\hspace*{1cm}| peut être considérée comme vide.
\interitem
Pour \pkg{nicematrix}, les règles précises sont les suivantes :
@@ -2943,31 +3295,39 @@ la dernière case (deuxième rangée et deuxième colonne) est vide.
\item Chaque case avec un rendu par TeX de largeur nulle est vide.
\medskip
-\item Une case avec une commande |\Hspace| (ou |\Hspace*|) est vide. Cette commande |\Hspace| est une commande
-définie par l'extension \pkg{nicematrix} avec la même signification que |\hspace| excepté que la case où cette
-commande est utilisée est considérée comme vide. Cette commande peut être utilisée pour fixer la largeur des
-colonnes sans interférer avec le tracé des lignes en pointillés par \pkg{nicematrix}.
+\item Une case avec une commande |\Hspace| (ou |\Hspace*|) est vide. Cette
+commande |\Hspace| est une commande définie par l'extension \pkg{nicematrix}
+avec la même signification que |\hspace| excepté que la case où cette commande
+est utilisée est considérée comme vide. Cette commande peut être utilisée pour
+fixer la largeur des colonnes sans interférer avec le tracé des lignes en
+pointillés par \pkg{nicematrix}.
\end{itemize}
\subsection{L'option exterior-arraycolsep}
-L'environnement |{array}| insère un espace horizontal égal à |\arraycolsep| avant et après chaque colonne. En
-particulier, il y a un espace égal à |\arraycolsep| avant et après le tableau. Cette caractéristique de
-l'environnement |{array}| n'était probablement pas une bonne idée\footnote{Dans la documentation de |{amsmath}|, on
- peut lire : {\itshape The extra space of |\arraycolsep| that \pkg{array} adds on each side is a waste so we
- remove it [in |{matrix}|] (perhaps we should instead remove it from array in general, but that's a harder
- task).}}. L'environnement |{matrix}| et ses variantes (|{pmatrix}|,
-|{vmatrix}|, etc.) de \pkg{amsmath} préfèrent supprimer ces espaces avec des instructions explicites
-|\hskip -\arraycolsep|\footnote{Et non en insérant |@{}| de part et d'autre du préambule, ce qui fait que la
- longueur des |\hline| n'est pas modifiée et elle peut paraître trop longue, surtout avec des crochets.}.
-L'extension \pkg{nicematrix} fait de même dans \emph{tous} ses environnements y compris l'environnement
-|{NiceArray}|. Néanmoins, si l'utilisateur souhaite que l'environnement |{NiceArray}| se comporte par défaut comme
-l'environnement |{array}| de \pkg{array} (par exemple pour faciliter l'adaptation d'un document existant), il peut
-contrôler ce comportement avec l'option |exterior-arraycolsep| accessible via la commande |\NiceMatrixOptions|.
-Avec cette option, des espaces extérieurs de longueur |\arraycolsep| seront insérés dans les environnements
-|{NiceArray}| (les autres environnements de l'extension \pkg{nicematrix} ne sont pas affectés).
+L'environnement |{array}| insère un espace horizontal égal à |\arraycolsep|
+avant et après chaque colonne. En particulier, il y a un espace égal à
+|\arraycolsep| avant et après le tableau. Cette caractéristique de
+l'environnement |{array}| n'était probablement pas une bonne idée\footnote{Dans
+ la documentation de |{amsmath}|, on peut lire : {\itshape The extra space of
+ |\arraycolsep| that \pkg{array} adds on each side is a waste so we remove it
+ [in |{matrix}|] (perhaps we should instead remove it from array in general,
+ but that's a harder task).}}. L'environnement |{matrix}| et ses variantes
+(|{pmatrix}|, |{vmatrix}|, etc.) de \pkg{amsmath} préfèrent supprimer ces
+espaces avec des instructions explicites |\hskip -\arraycolsep|\footnote{Et non
+ en insérant |@{}| de part et d'autre du préambule, ce qui fait que la longueur
+ des |\hline| n'est pas modifiée et elle peut paraître trop longue, surtout
+ avec des crochets.}. L'extension \pkg{nicematrix} fait de même dans
+\emph{tous} ses environnements y compris l'environnement |{NiceArray}|.
+Néanmoins, si l'utilisateur souhaite que l'environnement |{NiceArray}| se
+comporte par défaut comme l'environnement |{array}| de \pkg{array} (par exemple
+pour faciliter l'adaptation d'un document existant), il peut contrôler ce
+comportement avec l'option |exterior-arraycolsep| accessible via la commande
+|\NiceMatrixOptions|. Avec cette option, des espaces extérieurs de longueur
+|\arraycolsep| seront insérés dans les environnements |{NiceArray}| (les autres
+environnements de l'extension \pkg{nicematrix} ne sont pas affectés).
@@ -3086,7 +3446,8 @@ Dupont & Chantal & 15 janvier 1998 \\
Une matrice de permutation.\par\nobreak
-À titre d'exemple, on a augmenté la valeur du paramètre |xdots/shorten|.\par\nobreak
+À titre d'exemple, on a augmenté la valeur du paramètre
+|xdots/shorten|.\par\nobreak
\bigskip
@@ -3237,8 +3598,9 @@ $\begin{pNiceArray}{*6c|c}[nullify-dots,last-col,code-for-last-col=\scriptstyle]
\subsection{Des lignes pointillées qui ne sont plus pointillées}
-L'option |line-style| permet de changer le style des lignes tracées par |\Ldots|, |\Cdots|, etc. On peut de ce fait
-tracer des lignes qui ne sont plus pointillées.
+L'option |line-style| permet de changer le style des lignes tracées par
+|\Ldots|, |\Cdots|, etc. On peut de ce fait tracer des lignes qui ne sont plus
+pointillées.
\begin{Verbatim}
\NiceMatrixOptions
@@ -3273,8 +3635,9 @@ $\begin{pNiceMatrix}[first-row,first-col]
\subsection{Largeur des colonnes}
\medskip
-Dans l'exemple suivant, nous utilisons |{NiceMatrixBlock}| avec l'option |auto-columns-width| parce que nous
-voulons la même largeur (automatique) pour toutes les colonnes.
+Dans l'exemple suivant, nous utilisons |{NiceMatrixBlock}| avec l'option
+|auto-columns-width| parce que nous voulons la même largeur (automatique) pour
+toutes les colonnes.
\bigskip
\begin{BVerbatim}
@@ -3283,7 +3646,7 @@ voulons la même largeur (automatique) pour toutes les colonnes.
{ last-col,code-for-last-col = \color{blue}\scriptstyle,light-syntax}
\setlength{\extrarowheight}{1mm}
$\begin{pNiceArray}{cccc:c}
- 1 1 1 1 1 ;
+ 1 1 1 1 1 { } ;
2 4 8 16 9 ;
3 9 27 81 36 ;
4 16 64 256 100
@@ -3307,7 +3670,7 @@ $\begin{pNiceArray}{cccc:c}
\setlength{\extrarowheight}{1mm}
\enskip $\begin{pNiceArray}{cccc:c}
-1 1 1 1 1 ;
+1 1 1 1 1 { } ;
2 4 8 16 9 ;
3 9 27 81 36 ;
4 16 64 256 100
@@ -3366,8 +3729,9 @@ $\begin{pNiceArray}{cccc:c}
\label{highlight}
\medskip
-Les exemples suivants nécessitent d'avoir chargé Tikz (\pkg{nicematrix} ne charge que \textsc{pgf}) ainsi que la
-bibliothèque Tikz |fit|, ce qui peut se faire avec les deux instructions suivantes dans le préambule du document :
+Les exemples suivants nécessitent d'avoir chargé Tikz (\pkg{nicematrix} ne
+charge que \textsc{pgf}) ainsi que la bibliothèque Tikz |fit|, ce qui peut se
+faire avec les deux instructions suivantes dans le préambule du document :
\begin{verbatim}
\usepackage{tikz}
@@ -3377,13 +3741,15 @@ bibliothèque Tikz |fit|, ce qui peut se faire avec les deux instructions suivan
\medskip
-Pour mettre en évidence une case, il est possible de «dessiner» l'un des nœuds (le «nœud normal», le «nœud moyen»
-ou le «nœud large»). Dans l'exemple suivant, on utilise les «nœuds larges» de la diagonale de la matrice (avec la
-clé de Tikz «|name suffix|», il est facile d'utiliser les «nœuds larges»).
+Pour mettre en évidence une case, il est possible de «dessiner» l'un des nœuds
+(le «nœud normal», le «nœud moyen» ou le «nœud large»). Dans l'exemple suivant,
+on utilise les «nœuds larges» de la diagonale de la matrice (avec la clé de Tikz
+«|name suffix|», il est facile d'utiliser les «nœuds larges»).
-Nous redessinons les nœuds avec de nouveaux nœuds en utilisant la bibliothèque \pkg{fit} de Tikz. Comme nous
-voulons recréer des nœuds identiques aux premiers, nous devons fixer |inner sep = 0pt| (si on ne fait
-pas cela, les nouveaux nœuds seront plus grands que les nœuds d'origine créés par \pkg{nicematrix}).
+Nous redessinons les nœuds avec de nouveaux nœuds en utilisant la bibliothèque
+\pkg{fit} de Tikz. Comme nous voulons recréer des nœuds identiques aux premiers,
+nous devons fixer |inner sep = 0pt| (si on ne fait pas cela, les nouveaux nœuds
+seront plus grands que les nœuds d'origine créés par \pkg{nicematrix}).
\label{exemple-CodeAfter}
@@ -3419,18 +3785,22 @@ a_{41} & a_{42} & a_{43} & a_{44}
\end{tikzpicture}
\end{pNiceArray}\]
-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|, |vlines| et |hvlines| «écartent» les composantes de la matrice.\footnote{Pour la commande
- |\cline|, voir la remarque p.~\pageref{remark-cline}.}
+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|, |vlines| et |hvlines| «écartent» les composantes de la
+matrice.\footnote{Pour la commande |\cline|, voir la remarque
+ p.~\pageref{remark-cline}.}
-\vspace{1cm}
-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|.
+\vspace{1cm} 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,
@@ -3464,9 +3834,10 @@ $\begin{bNiceMatrix}[~emphase#code-after = {\tikz \node [highlight = (2-1) (2-3)
\bigskip
-Ce code échoue avec |latex|-|dvips|-|ps2pdf| parce que Tikz pour |dvips|, pour le moment, ne prend pas en charge
-les \emph{blend modes}. Néanmoins, le code suivant, dans le préambule du document LaTeX, devrait activer les
-\emph{blend modes} pour ce mode de compilation.
+Ce code échoue avec |latex|-|dvips|-|ps2pdf| parce que Tikz pour |dvips|, pour
+le moment, ne prend pas en charge les \emph{blend modes}. Néanmoins, le code
+suivant, dans le préambule du document LaTeX, devrait activer les \emph{blend
+ modes} pour ce mode de compilation.
\begin{scope} \small
@@ -3485,11 +3856,12 @@ les \emph{blend modes}. Néanmoins, le code suivant, dans le préambule du docum
|\ExplSyntaxOff|
\end{scope}
-\vspace{1cm}
-On rappelle que dans le cas d'un ensemble de cases fusionnées (avec la commande |\Block|), un nœud Tikz est créé
-pour l'ensemble des cases avec pour nom $i$|-|$j$|-block| où $i$ et $j$ sont les numéros de ligne et de colonne de
-la case en haut à gauche (où a été utilisée la commande |\Block|). 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|.
+\vspace{1cm} On rappelle que dans le cas d'un ensemble de cases fusionnées (avec
+la commande |\Block|), un nœud Tikz est créé pour l'ensemble des cases avec pour
+nom $i$|-|$j$|-block| où $i$ et $j$ sont les numéros de ligne et de colonne de
+la case en haut à gauche (où a été utilisée la commande |\Block|). 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|.
@@ -3561,7 +3933,8 @@ a & a & a & L_3
\end{pNiceArray}\]
\medskip
-Le résultat peut paraître décevant. On peut l'améliorer en utilisant les «nœuds moyens» au lieu des «nœuds normaux».
+Le résultat peut paraître décevant. On peut l'améliorer en utilisant les «nœuds
+moyens» au lieu des «nœuds normaux».
\begin{Verbatim}
\begin{tikzpicture}[mes-options, ~emphase#name suffix = -medium@]
@@ -3594,7 +3967,8 @@ a & a & a & L_3
\vspace{1cm}
-Dans l'exemple suivant, on utilise les «nœuds larges» pour surligner une zone de la matrice.\par\nobreak
+Dans l'exemple suivant, on utilise les «nœuds larges» pour surligner une zone de
+la matrice.\par\nobreak
\begin{Verbatim}
\begin{pNiceArray}{>{\strut}cccc}[create-large-nodes,margin,extra-margin=2pt]
A_{11} & A_{12} & A_{13} & A_{14} \\
@@ -3634,8 +4008,9 @@ Dans l'exemple suivant, on utilise les «nœuds larges» pour surligner une zone
Dans l'exemple suivant, on souhaite illustrer le produit mathématique de deux matrices.
\medskip
-L'utilisation de |{NiceMatrixBlock}| avec l'option |auto-columns-width| va permettre que toutes les colonnes aient
-la même largeur ce qui permettra un alignement des deux matrices superposées.
+L'utilisation de |{NiceMatrixBlock}| avec l'option |auto-columns-width| va
+permettre que toutes les colonnes aient la même largeur ce qui permettra un
+alignement des deux matrices superposées.
\begin{Verbatim}
\begin{NiceMatrixBlock}[auto-columns-width]
\end{Verbatim}
@@ -3737,8 +4112,9 @@ L_i & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\
\section*{Autre documentation}
-Le document |nicematrix.pdf| (fourni avec l'extension \pkg{nicematrix}) contient une traduction anglaise de la
-documentation ici présente, ainsi que le code source commenté et un historique des versions.
+Le document |nicematrix.pdf| (fourni avec l'extension \pkg{nicematrix}) contient
+une traduction anglaise de la documentation ici présente, ainsi que le code
+source commenté et un historique des versions.
\end{document}