summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/nicematrix/nicematrix-french.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/nicematrix/nicematrix-french.tex')
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex480
1 files changed, 341 insertions, 139 deletions
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index ca8beb88fc..ef0cd4123b 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -1,4 +1,4 @@
-% -*- coding: utf-8 ; -*-
+% -*- coding: utf-8 ; -*-
\documentclass[dvipsnames]{article}% dvipsnames is for xcolor (loaded by Tikz, loaded by nicematrix)
\usepackage{xltxtra}
\usepackage[french]{babel}
@@ -122,9 +122,10 @@ classique |latex|-|dvips|-|ps2pdf| (ou Adobe Distiller). \textsl{Néanmoins, le
ne peut être compilé qu'avec XeLaTeX.}
\bigskip
-Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{xparse}, \pkg{array}, \pkg{amsmath} et
-\pkg{pgfcore} ainsi que le module \pkg{shapes} de \textsc{pgf} (l'extension \pkg{tikz}, qui est une surcouche de
-\textsc{pgf}, n'est \emph{pas} chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
+Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{array},
+\pkg{amsmath} et \pkg{pgfcore} ainsi que le module \pkg{shapes} de \textsc{pgf}
+(l'extension \pkg{tikz}, qui est une surcouche de \textsc{pgf}, n'est \emph{pas}
+chargée). L'utilisateur final n'a qu'à charger l'extension \pkg{nicematrix} avec
l'instruction habituelle : |\usepackage{nicematrix}|.
@@ -215,7 +216,7 @@ 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
+Il est bien connu que certaines rangées des tableaux créés par défaut avec
LaTeX sont trop proches l'une de l'autre. On en donne ci-dessous un exemple
classique.
@@ -538,11 +539,11 @@ arum & iris & jacinthe & muguet
\end{center}
\medskip
-\colorbox{yellow!30}{Nouveau 5.7}\enskip Comme on le voit sur cet exemple, on
-peut fixer la couleur de fond avec la clé |fill| et la couleur du cadre avec la
-clé |draw|\footnote{Si la clé |draw| est utilisée sans valeur, c'est la couleur
- par défaut des filets de tableaux qui est utilisée.}. On peut aussi fixer
-l'épaisseur du trait avec la clé |line-width|.
+Comme on le voit sur cet exemple, on peut fixer la couleur de fond avec la clé
+|fill| et la couleur du cadre avec la clé |draw|\footnote{Si la clé |draw| est
+ utilisée sans valeur, c'est la couleur par défaut des filets de tableaux qui
+ est utilisée.}. On peut aussi fixer l'épaisseur du trait avec la clé
+|line-width|.
@@ -1087,7 +1088,9 @@ $\begin{pNiceArray}{cccc:c}
\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|.
+|letter-for-dotted-lines| disponible dans |\NiceMatrixOptions|.
+Ainsi libérée, la lettre «|:|» peut être utilisée par ailleurs (par exemple par
+l'extension \pkg{arydshln}).
\bigskip
@@ -1097,7 +1100,7 @@ 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.
+ont ce même effet.
@@ -1142,7 +1145,7 @@ Concernant ce phénomène, Adobe Reader donne de meilleurs résultats que
MuPDF.
\end{itemize}
-L'extension \pkg{nicematrix} proposent des outils qui permettent d'éviter ces
+L'extension \pkg{nicematrix} propose des outils qui permettent d'éviter ces
inconvénients.
\end{itemize}
@@ -1277,11 +1280,11 @@ rangées avec les deux couleurs à partir de la rangée dont le numéro est donn
premier argument (obligatoire), comme le fait la commande |\rowcolors| de
\pkg{xcolor}.
-\colorbox{yellow!50}{\textbf{Nouveau 5.8}}\enskip
+\colorbox{yellow!30}{Nouveau 5.8}\enskip
En fait, le premier argument (obligatoire) peut, plus généralement, contenir
une liste d'intervalles correspondant à l'ensemble des rangées sur lesquelles
portera l'effet de |\rowcolors| (un intervalle de la forme $i$ désigne en fait
-l'intervalle constitué de toutes les rangées du tableau à partir de de la rangée~$i$).
+l'intervalle constitué de toutes les rangées du tableau à partir de la rangée~$i$).
\bigskip
@@ -1290,12 +1293,12 @@ optionnel en dernière position (l'argument optionel en première position
correspond à l'espace colorimétrique). Les clés disponibles sont |cols|,
|restart| et |respect-blocks|.
\begin{itemize}
-\item \colorbox{yellow!50}{\textbf{Nouveau 5.8}}\enskip
+\item \colorbox{yellow!30}{Nouveau 5.8}\enskip
La clé |cols| décrit un ensemble de colonnes sur lesquelles portera
l'effet de |\rowcolors|. Cet ensemble de colonnes est une liste d'intervalles de
la forme $i$|-|$j$.
-\item \colorbox{yellow!50}{\textbf{Nouveau 5.8}}\enskip Avec la clé |restart|, chacun
+\item \colorbox{yellow!30}{Nouveau 5.8}\enskip Avec la clé |restart|, chacun
des intervalles de rangées spécifié par le premier argument de |\rowcolors|
recommence avec la même couleur.\footnote{Autrement, la couleur d'une rangée ne
dépend que de la partié de son numéro.}
@@ -1373,7 +1376,8 @@ Henri & 14 \\
\bigskip
-\item La commande |\chessboardcolors| prend en arguments obligatoires deux
+\item \label{chessboardcolors}%
+La commande |\chessboardcolors| prend en arguments obligatoires deux
couleurs et colorie les cases en quinconces avec les deux couleurs.
\medskip
@@ -2137,7 +2141,7 @@ $\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
+(ainsi que la commande |\line| dans le |\CodeAfter| 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
@@ -2161,7 +2165,7 @@ $\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|
+|\Iddots| et |\Hdotsfor| (ainsi que par la commande |\line| dans le |\CodeAfter|
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) :
%
@@ -2289,47 +2293,193 @@ $\begin{bNiceMatrix}[margin,hvlines]
\end{bNiceMatrix}$
-\section{Le code-after}
+\section{Le \textbackslash CodeAfter}
\label{code-after}
+On a présenté p.~\pageref{code-before} la clé |code-before|. Il existe en fait
+une clé similaire |code-after| qui peut être utilisée pour indiquer du code qui
+sera exécuté après la construction du tableau.
-L'option |code-after| peut être utilisée pour indiquer du code qui sera exécuté
-après la construction de la matrice.\footnote{Il existe aussi une clé
- |code-before| décrite p.~\pageref{code-before}.}
+\medskip
+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|.
+
+\medskip
+Deux commandes spéciales sont disponibles dans le |\CodeAfter| : |\line| et
+|\SubMatrix|.
-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.
+
+\subsection{La commande \textbackslash line dans le \textbackslash CodeAfter}
+
+La commande |\line| permet de 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
\begin{BVerbatim}[baseline=c,boxwidth=11cm]
\NiceMatrixOptions{xdots/shorten = 0.6 em}
-\begin{pNiceMatrix}[~emphase#code-after=\line{2-2}{3-3}@]
+\begin{pNiceMatrix}
I & 0 & \Cdots &0 \\
0 & I & \Ddots &\Vdots\\
\Vdots &\Ddots & I &0 \\
0 &\Cdots & 0 &I
+~emphase#\CodeAfter \line{2-2}{3-3}@
\end{pNiceMatrix}
\end{BVerbatim}
\begin{scope}
\NiceMatrixOptions{xdots/shorten = 0.6 em}
-$\begin{pNiceMatrix}[code-after=\line{2-2}{3-3}]
+$\begin{pNiceMatrix}
I & 0 & \Cdots &0 \\
0 & I & \Ddots &\Vdots\\
\Vdots &\Ddots & I &0 \\
0 &\Cdots & 0 &I
+\CodeAfter \line{2-2}{3-3}
\end{pNiceMatrix}$
\end{scope}
+\subsection{La commande \textbackslash SubMatrix dans le \textbackslash CodeAfter}
+
+\label{sub-matrix}
+
+\colorbox{yellow!50}{\textbf{Nouveau 5.10}}\enskip
+La commande |\SubMatrix| permet de positionner des délimiteurs sur une partie du
+tableau considérée comme une sous-matrice. La commande |\SubMatrix| prend cinq
+arguments :
+\begin{itemize}
+\item le premier argument est le délimiteur gauche qui peut être n'importe
+quel délimiteur extensible de LaTeX : |(|, |[|, |\{|, |\langle|, |\lgroup|,
+|\lfloor|, etc. mais aussi le délimiteur nul |.| ;
+\item le deuxième argument est le coin supérieur gauche de la sous-matrice avec
+la syntaxe $i$|-|$j$ où $i$ est le numéro de rangée et $j$ le numéro de colonne
+;
+\item le troisième argument est le coin inférieur droit avec la même syntaxe ;
+\item la quatrième argument est le délimiteur droit ;
+\item le cinquième argument, optionnel, entre crochets, est une liste de couples
+clé-valeur.
+\end{itemize}
+
+On remarquera que la commande |\SubMatrix| trace les délimiteurs après la
+construction de la matrice : aucun espace n'est inséré par la commande
+|\SubMatrix|. C'est pourquoi, dans l'exemple suivant, on a utilisé la clé
+|margin| et on a inséré à la main de l'espace entre la troisième et la quatrième
+colonne avec |@{\hspace{1.5em}}| dans le préambule du tableau.
+
\medskip
-Pour améliorer la lisibilité du code, une syntaxe alternative est proposée : on
-peut spécifier les instructions du |code-after| à la fin de l'environnement,
-après le mot-clé |\CodeAfter| (pour un exemple, voir page
-\pageref{exemple-CodeAfter}).
+\begin{scope}
+\fvset{commandchars=\~\#\+}%
+\begin{BVerbatim}[boxwidth=11cm,baseline=c]
+\[\begin{NiceArray}{ccc~emphase#@{\hspace{1.5em}}+c}%
+ [cell-space-limits=2pt,~emphase#margin+]
+ 1 & 1 & 1 & x \\
+\dfrac{1}{4} & \dfrac{1}{2} & \dfrac{1}{4} & y \\
+ 1 & 2 & 3 & z
+\CodeAfter
+~emphase#\SubMatrix({1-1}{3-3})+
+~emphase#\SubMatrix({1-4}{3-4})+
+\end{NiceArray}\]
+\end{BVerbatim}
+\end{scope}
+$\begin{NiceArray}{ccc@{\hspace{1.5em}}c}[cell-space-limits=2pt,margin]
+ 1 & 1 & 1 & x \\
+\dfrac{1}{4} & \dfrac{1}{2} & \dfrac{1}{4} & y \\
+ 1 & 2 & 3 & z
+\CodeAfter
+\SubMatrix({1-1}{3-3})
+\SubMatrix({1-4}{3-4})
+\end{NiceArray}$
+\bigskip
+Les options de la commande |\SubMatrix| sont les suivantes :
+%
+\begin{itemize}
+\item |left-xshift| et |right-xshift| déplacent horizontalement les délimiteurs
+(il existe aussi la clé |xshift| qui permet de régler simultanément ces deux
+clés) ;
+\item |extra-height| ajoute une quantité à la hauteur totale des délimiteurs
+(hauteur~|\ht| + profondeur |\dp|) ;
+\item |delimiters-color| permet de fixer la couleur des délimiteurs (cette clé
+est également disponible dans |\NiceMatrixOptions| et au niveau des
+environnements à délimiteurs ou comme option de |\CodeAfter|) ;
+\item |slim| qui est une clé booléenne : lorsqu'elle est utilisée la position
+horizontale des délimiteurs est calculée uniquement sur le contenu des cases
+de la sous-matrice alors, que, dans le cas général, elle est calculée sur le
+contenu des cases des colonnes mises en jeu (voir exemple ci-dessous).
+\end{itemize}
+
+Ces clés sont aussi accessibles dans |\NiceMatrixOptions|, au niveau des
+environnements de \pkg{nicematrix} ou comme option de |\CodeAfter| avec le
+préfixe |sub-matrix|, c'est-à-dire qu'elles sont alors nommées
+|sub-matrix/left-xshift|, |sub-matrix/right-xshift|, |sub-matrix/xshift|, etc.
+
+\bigskip
+\begin{scope}
+\fvset{commandchars=\~\#\!}%
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+\end{BVerbatim}
+\end{scope}
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}%
+ [cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+
+\medskip
+Voici le même exemple avec la clé |slim| pour l'une des sous-matrices.
+
+\medskip
+\begin{scope}
+\fvset{commandchars=\~\#\!}%
+\begin{BVerbatim}[baseline=c,boxwidth=11cm]
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}%
+ [cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})[~emphase#slim!]
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+\end{BVerbatim}
+\end{scope}
+%
+$\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
+ & & \frac12 \\
+ & & \frac14 \\[1mm]
+a & b & \frac12a+\frac14b \\
+c & d & \frac12c+\frac14d \\
+\CodeAfter
+\SubMatrix({1-3}{2-3})[slim]
+\SubMatrix({3-1}{4-2})
+\SubMatrix({3-3}{4-3})
+\end{NiceArray}$
+
+
+\bigskip
+Il existe aussi une clé |name| qui permet de donner un nom à une sous-matrice
+créée par une commande |\SubMatrix|. Ce nom est utilisé pour créer des nœuds
+PGF/Tikz : voir p.~\pageref{node-sub-matrix}.
\section{Les notes dans les tableaux}
@@ -2654,7 +2804,7 @@ Pour un exemple de personnalisation des notes de tableau, voir p.~\pageref{ex:no
\subsection{Utilisation de \{NiceTabular\} avec threeparttable}
-Si vous souhaitez utiliser l'environnement |{NiceTabular}| ou |{NiceTAbular*}|
+Si vous souhaitez utiliser l'environnement |{NiceTabular}| ou |{NiceTabular*}|
dans un environnement |{threeparttable}| de l'extension éponyme, vous devez
patcher |{threeparttable}| avec le code suivant (avec une version de LaTeX
postérieure à 2020/10/01).
@@ -2836,7 +2986,7 @@ colonne courante\footnote{On rappelle que le numéro de la «première rangée»
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|
+Dans le |code-before| (cf. p. \pageref{code-before}) et dans le |\CodeAfter|
(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).
@@ -3024,7 +3174,7 @@ sont accessibles à travers les noms «\textsl{nom}-$i$-$j$» où \textsl{nom} e
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.
+faut néanmoins se souvenir que \pkg{nicematrix} ne charge pas Tikz par défaut.
Dans les exemples qui suivent, on suppose que Tikz a été chargé par
l'utilisateur.
@@ -3051,7 +3201,7 @@ 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
+Dans le |\CodeAfter|, 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 à
préciser l'environnement qui est évidemment l'environnement courant.
@@ -3118,33 +3268,33 @@ seconds avec l'option |create-large-nodes|.\footnote{Il existe aussi l'option
|create-medium-nodes| et |create-large-nodes|.}
\medskip
-Ces nœuds ne sont pas utilisés par défault par \pkg{nicematrix}.
+Ces nœuds ne sont pas utilisés par défaut par \pkg{nicematrix}.
\medskip
Les noms des «nœuds moyens» s'obtiennent en ajoutant le suffixe «|-medium|» au
nom des nœuds normaux. Dans l'exemple suivant, on a surligné tous les «nœuds
moyens». Nous considérons que cet exemple se suffit à lui-même comme définition
de ces nœuds.
-\[\begin{pNiceMatrix}[
- create-medium-nodes,
- code-after = {\begin{tikzpicture}
- [every node/.style = {fill = red!15,
- blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -medium]
- \node [fit = (1-1)] {} ;
- \node [fit = (1-2)] {} ;
- \node [fit = (1-3)] {} ;
- \node [fit = (2-1)] {} ;
- \node [fit = (2-2)] {} ;
- \node [fit = (2-3)] {} ;
- \node [fit = (3-1)] {} ;
- \node [fit = (3-2)] {} ;
- \node [fit = (3-3)] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}[create-medium-nodes]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {fill = red!15,
+ blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -medium]
+\node [fit = (1-1)] {} ;
+\node [fit = (1-2)] {} ;
+\node [fit = (1-3)] {} ;
+\node [fit = (2-1)] {} ;
+\node [fit = (2-2)] {} ;
+\node [fit = (2-3)] {} ;
+\node [fit = (3-1)] {} ;
+\node [fit = (3-2)] {} ;
+\node [fit = (3-3)] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
@@ -3156,25 +3306,25 @@ de ces nÅ“uds.\footnote{Il n'y a pas de «nÅ“uds larges» créés dans les rangÃ
colonnes extérieures (pour ces rangées et colonnes, voir
p.~\pageref{exterior}).}
-\[\begin{pNiceMatrix}[
- create-large-nodes,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}[create-large-nodes]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
@@ -3189,25 +3339,25 @@ utilisé les options |left-margin| et |right-margin|.\footnote{Les options
aucune valeur n'est donnée, c'est la valeur par défaut qui est utilisée et
elle est égale à |\arraycolsep| (valeur initiale : 5~pt). Il existe aussi une
option |margin| pour fixer à la fois |left-margin| et |right-margin|.}
-\[\begin{pNiceMatrix}[
- create-large-nodes,left-margin,right-margin,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}[create-large-nodes,left-margin,right-margin]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
\medskip
@@ -3215,25 +3365,26 @@ Il est aussi possible d'ajouter de l'espace sur les côtés du tableau avec les
options |extra-left-margin| et |extra-right-margin|. Ces marges ne sont pas
incorporées dans les «nœuds larges». Dans l'exemple suivant, nous avons utilisé
|extra-left-margin| et |extra-right-margin| avec la valeur $3$~pt.
-\[\begin{pNiceMatrix}[
- create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceMatrix}%
+ [create-large-nodes,left-margin,right-margin,extra-right-margin=3pt,extra-left-margin=3pt]
a & a + b & a + b + c \\
a & a & a + b \\
a & a & a
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{pNiceMatrix}\]
@@ -3267,7 +3418,8 @@ noix & noisette & brugnon
\vspace{1cm}
\begin{minipage}[c]{7cm}
-Ci-contre, on a colorié toutes les cases de ce tableau avec |\chessboardcolors|.
+Ci-contre, on a colorié toutes les cases de ce tableau avec
+|\chessboardcolors| (cf.~p.~\pageref{chessboardcolors}).
\end{minipage}
\hspace{1.5cm}
\begin{scope}
@@ -3288,25 +3440,25 @@ Voici maintenant tous les «nœuds larges» de ce tableau (sans utilisation de
\hspace{1.5cm}
\begin{scope}
\large
-\begin{NiceTabular}[c]{w{l}{2cm}ll}[hvlines,
- create-large-nodes,
- code-after = {\begin{tikzpicture}
- [every node/.style = {blend mode = multiply,
- inner sep = 0 pt},
- name suffix = -large]
- \node [fit = (1-1),fill = red!15] {} ;
- \node [fit = (1-3),fill = red!15] {} ;
- \node [fit = (2-2),fill = red!15] {} ;
- \node [fit = (3-1),fill = red!15] {} ;
- \node [fit = (3-3),fill = red!15] {} ;
- \node [fit = (1-2),fill = blue!15] {} ;
- \node [fit = (2-1),fill = blue!15] {} ;
- \node [fit = (2-3),fill = blue!15] {} ;
- \node [fit = (3-2),fill = blue!15] {} ;
- \end{tikzpicture}}]
+\begin{NiceTabular}[c]{w{l}{2cm}ll}[hvlines,create-large-nodes]
fraise & amande & abricot \\
prune & pêche & poire \\[1ex]
noix & noisette & brugnon
+\CodeAfter
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt},
+ name suffix = -large]
+\node [fit = (1-1),fill = red!15] {} ;
+\node [fit = (1-3),fill = red!15] {} ;
+\node [fit = (2-2),fill = red!15] {} ;
+\node [fit = (3-1),fill = red!15] {} ;
+\node [fit = (3-3),fill = red!15] {} ;
+\node [fit = (1-2),fill = blue!15] {} ;
+\node [fit = (2-1),fill = blue!15] {} ;
+\node [fit = (2-3),fill = blue!15] {} ;
+\node [fit = (3-2),fill = blue!15] {} ;
+\end{tikzpicture}
\end{NiceTabular}
\end{scope}
@@ -3317,7 +3469,7 @@ noix & noisette & brugnon
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|.
+Ces nœuds sont accessibles dans le |code-before| et dans le |\CodeAfter|.
\begin{center}
\begin{NiceTabular}{ccc}[hvlines,rules/width=1pt,rules/color=gray]
rose & tulipe & lys \\
@@ -3343,7 +3495,7 @@ 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|) à
+défaut), on peut donc accéder (dans le |code-before| et le |\CodeAfter|) à
l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe
|(row-|$i$\verb+-|col-+$j$|)|.
@@ -3390,6 +3542,45 @@ l'intersection du filet horizontal~$i$ et du filet vertical~$j$ avec la syntaxe
\end{NiceMatrix}\]
+\subsection{Les nœuds correspondant aux commandes \textbackslash SubMatrix}
+
+\label{node-sub-matrix}
+
+La commande |\SubMatrix| disponible dans le |\CodeAfter| a été présentée
+p.~\pageref{sub-matrix}.
+
+\smallskip
+Si une commande |\SubMatrix| est utilisée avec la clé |name| sous la forme
+|name=|\textsl{\ttfamily MonNom}, trois nœuds PGF/Tikz sont créés avec les noms
+\textsl{\ttfamily MonNom}|-left|, \textsl{\ttfamily MonNom} et \textsl{\ttfamily
+ MonNom}|-right|.
+
+\smallskip
+Les nœuds \textsl{\ttfamily MonNom}|-left| et \textsl{\ttfamily MonNom}|-right| correspondent aux
+délimiteurs gauche et droit et le nœud \textsl{\ttfamily MonNom} correspond à la
+sous-matrice elle-même.
+
+\medskip
+Dans l'exemple suivant, on a surligné ces trois nœuds (la sous-matrice elle-même
+a été créée avec |\SubMatrix\{{2-2}{3-3}\}|).
+%
+\[\begin{pNiceMatrix}
+121 & 23 & 345 & 345\\
+45 & 346 & 863 & 444\\
+3462 & 38458 & 34 & 294 \\
+34 & 7 & 78 & 309 \\
+\CodeAfter
+\SubMatrix\{{2-2}{3-3}\}[name=A]
+\begin{tikzpicture}
+ [every node/.style = {blend mode = multiply,
+ inner sep = 0 pt}]
+\node [fit = (A),fill = red!15] {} ;
+\node [fit = (A-left),fill = blue!15] {} ;
+\node [fit = (A-right),fill = blue!15] {} ;
+\end{tikzpicture}
+\end{pNiceMatrix}\]
+
+
\section{API pour les développeurs}
L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\footnote{Conformément aux conventions de LaTeX3,
@@ -3550,7 +3741,7 @@ est sans effet.
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
+ |\CodeAfter|.} 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
@@ -3692,6 +3883,18 @@ environnements de l'extension \pkg{nicematrix} ne sont pas affectés).
L'extension \pkg{nicematrix} n'est pas parfaitement compatible avec l'extension \pkg{arydshln} (parce que cette
extension redéfinit de nombreuses commandes internes de \pkg{array}).
+Pour pouvoir utiliser \pkg{arydshln}, il faut, de toutes manières, au préalable,
+libérer la lettre «|:|» en choisissant une autre lettre pour les filets verticaux
+pointillés de \pkg{nicematrix} :
+
+\begin{Verbatim}
+\NiceMatrixOptions{letter-for-dotted-lines=;}
+\end{Verbatim}
+
+\bigskip
+L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{aastex63}.
+Si vous souhaitez utiliser \pkg{nicematrix} with \cls{aastex63}, envoyez-moi un
+courrier électronique et j'essaierai de résoudre les incompatibilités.
\section{Exemples}
@@ -4087,7 +4290,7 @@ $\begin{pNiceArray}{cccc:c}
Pour mettre en évidence une case d'une matrice, il est possible de «dessiner»
cette case avec la clé |draw| de la commande |\Block| (c'est l'un des usages des
blocs mono-case\footnote{On rappelle que si le premier argument obligatoire de
-la commande |\Block| est laissé vide, le bloc est considéré comme mono-case}).
+la commande |\Block| est laissé vide, le bloc est considéré comme mono-case.}).
\label{exemple-CodeAfter}
@@ -4284,21 +4487,20 @@ moyens» au lieu des «nœuds normaux».
\medskip
On obtient la matrice suivante.
-\[\begin{pNiceArray}{ccc}[
- last-col,
- create-medium-nodes,
- code-after = {\begin{tikzpicture}[highlight/.style = {fill = red!15,
- blend mode = multiply,
- inner sep = 0pt,
- fit = #1},
- name suffix = -medium]
- \node [highlight = (1-1) (1-3)] {} ;
- \node [highlight = (2-1) (2-3)] {} ;
- \node [highlight = (3-1) (3-3)] {} ;
- \end{tikzpicture}}]
+\[\begin{pNiceArray}{ccc}[last-col,create-medium-nodes]
a & a + b & a + b + c & L_1 \\
a & a & a + b & L_2 \\
-a & a & a & L_3
+a & a & a & L_3 \\
+\CodeAfter
+\begin{tikzpicture}[highlight/.style = {fill = red!15,
+ blend mode = multiply,
+ inner sep = 0pt,
+ fit = #1},
+ name suffix = -medium]
+\node [highlight = (1-1) (1-3)] {} ;
+\node [highlight = (2-1) (2-3)] {} ;
+\node [highlight = (3-1) (3-3)] {} ;
+\end{tikzpicture}
\end{pNiceArray}\]