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.tex652
1 files changed, 396 insertions, 256 deletions
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 75a1954df9..9ae1a3a8ab 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -232,8 +232,8 @@ 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}.
-\colorbox{yellow!30}{Nouveau 5.9}\enskip Il existe aussi une clé
-|cell-space-limits| pour régler simultanément les deux paramètres.
+Il existe aussi une clé |cell-space-limits| pour régler simultanément les deux
+paramètres.
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}
@@ -409,7 +409,7 @@ 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| doit être utilisée dans la case supérieure gauche du bloc
-avec deux arguments.
+avec deux arguments obligatoires.
\begin{itemize}
\item Le premier argument est la taille de ce bloc avec la syntaxe $i$-$j$ où
@@ -500,10 +500,34 @@ $\begin{bNiceArray}{ccc|c}[margin]
\end{bNiceArray}$
+
+\interitem
+La commande |\Block| accepte en fait en premier argument optionnel (entre
+crochets) une liste de couples clé-valeur. Les clés sont les suivantes :
+\begin{itemize}
+\item les clés |l|, |c| et |r| réglent le positionnement horizontal comme dit
+précédemment ;
+\item la clé |fill| prend en argument une couleur et remplit le bloc avec cette
+couleur ;
+\item la clé |draw| prend en argument une couleur et trace le cadre avec cette
+couleur (la valeur par défaut de cette clé est la couleur courante des filets du
+tableau) ;
+\item la clé |color| prend en argument une couleur et l'applique au contenu et
+trace également le cadre avec cette couleur.
+\item la clé |line-width| fixe la largeur des filets servant pour le cadre (n'a
+d'intérêt que si |draw| est utilisée) ;
+\item \colorbox{yellow!50}{\textbf{Nouveau 5.12}}\enskip la clé
+|rounded-corners| impose des coins arrondis (pour le cadre dessiné par |draw| et
+le fond dessiné par |fill|) avec un rayon égal à la valeur de cette clé (la
+valeur par défaut est 4~pt\footnote{Cette valeur par défaut est la valeur
+ initiale des \emph{rounded corners} de Tikz.}).
+\end{itemize}
+
+
\interitem
\textbf{On doit remarquer que, par défaut, les blocs ne créent pas d'espace}. Il
n'y a exception que pour les blocs mono-rangée et les blocs mono-colonne comme
-expliqué juste après.
+expliqué plus loin.
\medskip
@@ -512,10 +536,11 @@ construction |wc{...}| de \pkg{array}).
\medskip
\begin{BVerbatim}
-\begin{NiceTabular}~emphase#{cwc{2cm}wc{3cm}c}@
+\begin{NiceTabular}{cwc{2cm}wc{3cm}c}
rose & tulipe & marguerite & dahlia \\
violette
-& \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\
+& ~emphase#\Block[draw=red,fill=red!15,rounded-corners]{2-2}{\LARGE De très jolies fleurs}@
+ & & souci \\
pervenche & & & lys \\
arum & iris & jacinthe & muguet
\end{NiceTabular}
@@ -526,20 +551,13 @@ arum & iris & jacinthe & muguet
\begin{center}
\begin{NiceTabular}{cwc{2cm}wc{3cm}c}
rose & tulipe & marguerite & dahlia \\
-violette & \Block[draw=red,fill=red!15]{2-2}{\LARGE De très jolies fleurs} & & souci \\
+violette & \Block[draw=red,fill=red!15,rounded-corners]{2-2}
+ {\LARGE De très jolies fleurs} & & souci \\
pervenche & & & lys \\
arum & iris & jacinthe & muguet
\end{NiceTabular}
\end{center}
-\medskip
-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|.
-
-
\subsection{Les blocs mono-colonne}
@@ -616,7 +634,8 @@ bloc sur plusieurs lignes.
la consigne générale donnée dans le préambule pour cette colonne.
\item On peut tracer un cadre autour du bloc avec la clé |draw| de la commande
-|\Block|.\footnote{Pour colorier le fond d'une case, il n'y a pas besoin
+|\Block| ou colorier le fond avec des bords arrondis avec les clés |fill| et
+|rounded-corners|.\footnote{Pour colorier simplement le fond d'une case, il n'y a pas besoin
d'utiliser un bloc mono-case : on peut utiliser la commande |\cellcolor| si la
clé |colortbl-like| est utilisée : voir p.~\pageref{colortbl-like}.}
\end{itemize}
@@ -885,11 +904,11 @@ p.~\pageref{OnlyMainNiceMatrix}.
\subsection{Les clés hlines et vlines}
La clé |hlines| demande un tracé de tous les filets horizontaux et la clé
-|vlines| demande un tracé de tous les filets verticaux (sauf dans les blocs et
-dans les blocs virtuels déterminés par des lignes en pointillés). En fait, dans les
-environnements avec délimiteurs (comme |{pNiceMatrix}| ou |{bNiceArray}|), les
-filets extérieurs ne sont pas tracés (ce qui est le comportement certainement
-attendu).
+|vlines| demande un tracé de tous les filets verticaux (sauf dans les blocs,
+créés par |\Block| et dans les blocs virtuels déterminés par des lignes en
+pointillés : |\Cdots|, |\Vdots|, etc.). 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
@@ -1143,16 +1162,33 @@ inconvénients.
\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.
+L'extension \pkg{nicematrix} propose 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 :
+exécuté avant le tracé du tableau.
+
+\smallskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.12}}\enskip Une syntaxe alternative est
+proposée : on peut placer le contenu de ce |code-before| entre les mots-clés
+|\CodeBefore| et |\Body| juste au début de l'environnement.
+
+\begin{Verbatim}
+\begin{pNiceArray}{~textsl#preamble@}
+~emphase#\CodeBefore@
+~textsl#instructions du code-before@
+~emphase#\Body@
+~textsl#contenu de l'environnement@
+\end{pNiceArray}
+\end{Verbatim}
+
+\smallskip
+De nouvelles commandes sont disponibles dans ce |\CodeBefore| :
|\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors| et
|\chessboardcolors|.\footnote{On pourra remarquer que, dans le
\verb|code-before|, des nœuds PGF/Tikz correspondant à la position des filets
@@ -1176,14 +1212,20 @@ format $i$-$j$ où $i$ est le numéro de ligne et $j$ le numéro de colonne.
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[boxwidth=10cm,baseline=c]
-\begin{NiceTabular}{|c|c|c|}[code-before = ~emphase#\cellcolor{red!15}{3-1,2-2,1-3}@]
+\begin{NiceTabular}{|c|c|c|}
+\CodeBefore
+ ~emphase#\cellcolor{red!15}{3-1,2-2,1-3}@
+\Body
\hline
a & b & c \\ \hline
e & f & g \\ \hline
h & i & j \\ \hline
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}{|c|c|c|}[code-before = \cellcolor{red!15}{3-1,2-2,1-3}]
+\begin{NiceTabular}{|c|c|c|}
+\CodeBefore
+ \cellcolor{red!15}{3-1,2-2,1-3}
+\Body
\hline
a & b & c \\ \hline
e & f & g \\ \hline
@@ -1201,14 +1243,20 @@ et la case en bas à droite du rectangle.
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[boxwidth=10cm,baseline=c]
-\begin{NiceTabular}{|c|c|c|}[code-before = ~emphase#\rectanglecolor{blue!15}{2-2}{3-3}@]
+\begin{NiceTabular}{|c|c|c|}
+\CodeBefore
+ ~emphase#\rectanglecolor{blue!15}{2-2}{3-3}@
+\Body
\hline
a & b & c \\ \hline
e & f & g \\ \hline
h & i & j \\ \hline
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}{|c|c|c|}[code-before = \rectanglecolor{blue!15}{2-2}{3-3}]
+\begin{NiceTabular}{|c|c|c|}
+\CodeBefore
+ \rectanglecolor{blue!15}{2-2}{3-3}
+\Body
\hline
a & b & c \\ \hline
e & f & g \\ \hline
@@ -1230,7 +1278,10 @@ partir de la rangée~$a$).
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[boxwidth=9cm,baseline=c]
-$\begin{NiceArray}{lll}[hvlines, ~emphase#code-before = \rowcolor{red!15}{1,3-5,8-}@]
+$\begin{NiceArray}{lll}[hvlines]
+\CodeBefore
+ ~emphase#\rowcolor{red!15}{1,3-5,8-}@
+\Body
a_1 & b_1 & c_1 \\
a_2 & b_2 & c_2 \\
a_3 & b_3 & c_3 \\
@@ -1244,8 +1295,10 @@ a_{10} & b_{10} & c_{10} \\
\end{NiceArray}$
\end{BVerbatim}
%
-$\begin{NiceArray}{lll}%
-[baseline=4,hvlines, code-before = \rowcolor{red!15}{1,3-5,8-}]
+$\begin{NiceArray}{lll}[baseline=4,hvlines]
+\CodeBefore
+ \rowcolor{red!15}{1,3-5,8-}
+\Body
a_1 & b_1 & c_1 \\
a_2 & b_2 & c_2 \\
a_3 & b_3 & c_3 \\
@@ -1281,7 +1334,7 @@ l'intervalle constitué de toutes les rangées du tableau à partir de la rangé
\bigskip
-La commande |\rowcolors| accepte une liste de paires clé-valeur comme argument
+La commande |\rowcolors| accepte une liste de couples clé-valeur comme argument
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|.
@@ -1306,8 +1359,10 @@ tableau pour englober les blocs (créés par la commande |\Block| : cf.~p.~\page
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-\begin{NiceTabular}{clr}%
- [hvlines,code-before = ~emphase#{\rowcolors{2}{blue!10}{}[cols=2-3,restart]}@]
+\begin{NiceTabular}{clr}[hvlines]
+\CodeBefore
+ ~emphase#{\rowcolors{2}{blue!10}{}[cols=2-3,restart]}@
+\Body
\Block{1-*}{Résultats} \\
\Block{2-1}{A}& Pierre & 12 \\
& Jacques & 8 \\
@@ -1317,8 +1372,10 @@ tableau pour englober les blocs (créés par la commande |\Block| : cf.~p.~\page
& Estelle & 15
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}{clr}[hvlines,
- code-before = {\rowcolors{2}{blue!10}{}[cols=2-3,restart]},baseline=2]
+\begin{NiceTabular}{clr}[hvlines,baseline=2]
+\CodeBefore
+ \rowcolors{2}{blue!10}{}[cols=2-3,restart]
+\Body
\Block{1-*}{Résultats} \\
\Block{2-1}{A}& Pierre & 12 \\
& Jacques & 8 \\
@@ -1335,8 +1392,10 @@ tableau pour englober les blocs (créés par la commande |\Block| : cf.~p.~\page
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[baseline=c,boxwidth=11cm]
-\begin{NiceTabular}{lr}[hvlines,code-before =
-~emphase#\rowcolors{1}{blue!10}{}[respect-blocks]@]
+\begin{NiceTabular}{lr}[hvlines]
+\CodeBefore
+ ~emphase#\rowcolors{1}{blue!10}{}[respect-blocks]@
+\Body
\Block{2-1}{Pierre} & 12 \\
& 13 \\
Jacques & 8 \\
@@ -1349,8 +1408,10 @@ Henri & 14 \\
& 19
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}{lr}[hvlines,code-before =
-\rowcolors{1}{blue!10}{}[respect-blocks],baseline=c]
+\begin{NiceTabular}{lr}[hvlines,baseline=c]
+\CodeBefore
+ \rowcolors{1}{blue!10}{}[respect-blocks]
+\Body
\Block{2-1}{Pierre} & 12 \\
& 13 \\
Jacques & 8 \\
@@ -1376,14 +1437,19 @@ couleurs et colorie les cases en quinconces avec les deux couleurs.
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[baseline=c,boxwidth=9cm]
-$\begin{pNiceMatrix}[r,margin, ~emphase#code-before=\chessboardcolors{red!15}{blue!15}@]
+$\begin{pNiceMatrix}[r,margin]
+\CodeBefore
+ ~emphase#code-before=\chessboardcolors{red!15}{blue!15}@
+\Body
1 & -1 & 1 \\
-1 & 1 & -1 \\
1 & -1 & 1
\end{pNiceMatrix}$
\end{BVerbatim}
-$\begin{pNiceMatrix}%
-[baseline=1, r, margin, code-before = \chessboardcolors{red!15}{blue!15}]
+$\begin{pNiceMatrix}[baseline=1, r, margin]
+\CodeBefore
+ \chessboardcolors{red!15}{blue!15}
+\Body
1 & -1 & 1 \\
-1 & 1 & -1 \\
1 & -1 & 1
@@ -1404,8 +1470,11 @@ l'extension \pkg{booktabs} n'est pas chargée par \pkg{nicematrix}.
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
-\begin{NiceTabular}{lSSSS}%
-[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
+\begin{NiceTabular}{lSSSS}
+\CodeBefore
+ \rowcolor{red!15}{1-2}
+ \rowcolors{3}{blue!15}{}
+\Body
~emphase#\toprule@
\Block{2-1}{Produit} &
\Block{1-3}{dimensions (cm)} & & &
@@ -1421,8 +1490,11 @@ spécial & 12 & 12 & 0.5 & 70 \\
~emphase#\bottomrule@
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}[c]{lSSSS}%
-[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
+\begin{NiceTabular}[c]{lSSSS}
+\CodeBefore
+ \rowcolor{red!15}{1-2}
+ \rowcolors{3}{blue!15}{}
+\Body
\toprule
\Block{2-1}{Produit} &
\Block{1-3}{dimensions (cm)} & & &
@@ -2062,7 +2134,7 @@ C[a_1,a_1] & \Cdots & C[a_1,a_n]
& ~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}@ \\
+\rule{0pt}{15mm}\NotEmpty & ~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
@@ -2077,7 +2149,7 @@ C[a_n^{(p)},a_1] & \Cdots & C[a_n^{(p)},a_n]
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} \\
+\rule{0pt}{15mm}\NotEmpty & \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)}]
@@ -2359,7 +2431,7 @@ p.~\pageref{customization}).
\label{sub-matrix}
-\colorbox{yellow!50}{\textbf{Nouveau 5.10}}\enskip
+\colorbox{yellow!30}{Nouveau 5.10}\enskip
La commande |\SubMatrix| permet de positionner des délimiteurs sur une partie du
tableau, partie qui est considérée comme une sous-matrice. La commande
|\SubMatrix| prend cinq arguments :
@@ -2373,7 +2445,11 @@ la syntaxe $i$|-|$j$ où $i$ est le numéro de rangée et $j$ le numéro de colo
\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.
+clé-valeur.\footnote{Il n'y a pas d'argument optionnel entre crochets en première
+position car un crochet ouvrant juste après \verb|\SubMatrix| doit pouvoir être
+interprété comme le premier argument (obligatoire) de \verb|\SubMatrix|: ce
+crochet est alors le délimiteur gauche de la sous-matrice (ex. :
+\verb|\SubMatrix[{2-2}{4-7}]|).}
\end{itemize}
On remarquera que la commande |\SubMatrix| trace les délimiteurs après la
@@ -2392,8 +2468,8 @@ colonne avec |@{\hspace{1.5em}}| dans le préambule du tableau.
\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})+
+ ~emphase#\SubMatrix({1-1}{3-3})+
+ ~emphase#\SubMatrix({1-4}{3-4})+
\end{NiceArray}\]
\end{BVerbatim}
\end{scope}
@@ -2402,8 +2478,8 @@ $\begin{NiceArray}{ccc@{\hspace{1.5em}}c}[cell-space-limits=2pt,margin]
\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})
+ \SubMatrix({1-1}{3-3})
+ \SubMatrix({1-4}{3-4})
\end{NiceArray}$
\bigskip
@@ -2429,6 +2505,21 @@ 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.
+\medskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.12}}\enskip Il y a aussi les clés
+suivantes, qui ne sont accessibles que pour une commande |\SubMatrix|
+individuelle :
+%
+\begin{itemize}
+\item |vlines| contient une liste de numéros de filets verticaux à tracer dans
+la sous-matrice (si cette clé est utilisée sans valeur, tous les filets
+verticaux sont tracés) ;
+\item |hlines| est similaire à |vlines| mais pour les filets horizontaux ;
+\item |hvlines|, qui s'utilise sans valeur, trace tous les filets dans la sous-matrice.
+\end{itemize}
+On remarquera que tous ces filets sont dessinés après la construction du tableau
+principal : les colonnes et les rangées ne sont pas écartées.
+
\bigskip
\begin{scope}
\hfuzz=12cm
@@ -2440,9 +2531,9 @@ $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
a & b & \frac12a+\frac14b \\
c & d & \frac12c+\frac14d \\
\CodeAfter
-\SubMatrix({1-3}{2-3})
-\SubMatrix({3-1}{4-2})
-\SubMatrix({3-3}{4-3})
+ \SubMatrix({1-3}{2-3})
+ \SubMatrix({3-1}{4-2})
+ \SubMatrix({3-3}{4-3})
\end{NiceArray}$
\end{BVerbatim}
\end{scope}
@@ -2452,9 +2543,9 @@ $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
a & b & \frac12a+\frac14b \\
c & d & \frac12c+\frac14d \\
\CodeAfter
-\SubMatrix({1-3}{2-3})
-\SubMatrix({3-1}{4-2})
-\SubMatrix({3-3}{4-3})
+ \SubMatrix({1-3}{2-3})
+ \SubMatrix({3-1}{4-2})
+ \SubMatrix({3-3}{4-3})
\end{NiceArray}$
\medskip
@@ -2471,9 +2562,9 @@ $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
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})
+ \SubMatrix({1-3}{2-3})[~emphase#slim!]
+ \SubMatrix({3-1}{4-2})
+ \SubMatrix({3-3}{4-3})
\end{NiceArray}$
\end{BVerbatim}
\end{scope}
@@ -2484,9 +2575,9 @@ $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
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})
+ \SubMatrix({1-3}{2-3})[slim]
+ \SubMatrix({3-1}{4-2})
+ \SubMatrix({3-3}{4-3})
\end{NiceArray}$
@@ -3488,7 +3579,7 @@ noix & noisette & brugnon
\label{noeuds-i}
-\colorbox{yellow!50}{\textbf{Nouveau 5.11}}\enskip L'extension \pkg{nicematrix}
+\colorbox{yellow!30}{Nouveau 5.11}\enskip L'extension \pkg{nicematrix}
crée un nœud PGF-Tikz nommé simplement $i$ (précédé du préfixe habituel) à
l'intersection du filet horizontal de numéro $i$ et du filet vertical de
numéro~$j$ (ou plutôt la position potentielle de ces filets car ils ne sont
@@ -3521,13 +3612,10 @@ horizontal~$i$ et du filet vertical~$j$ avec la syntaxe |(|$i$\verb+-|+$j$|)|.
\medskip
\begin{Verbatim}
-\[\begin{NiceMatrix}[
- code-before =
- {
-~emphase# \tikz \draw [fill = red!15] @
-~emphase# (7-|4) -- (8-|4) -- (8-|5) -- (9-|5) -- (9-|6) |- cycle ; @
- }
-]
+\begin{NiceMatrix}
+\CodeBefore
+~emphase#\tikz \draw [fill=red!15] (7-|4) |- (8-|5) |- (9-|6) |- cycle ;@
+\Body
1 \\
1 & 1 \\
1 & 2 & 1 \\
@@ -3537,16 +3625,13 @@ horizontal~$i$ et du filet vertical~$j$ avec la syntaxe |(|$i$\verb+-|+$j$|)|.
1 & 6 & 15 & 20 & 15 & 6 & 1 \\
1 & 7 & 21 & 35 & 35 & 21 & 7 & 1 \\
1 & 8 & 28 & 56 & 70 & 56 & 28 & 8 & 1
-\end{NiceMatrix}\]
+\end{NiceMatrix}
\end{Verbatim}
%
-\[\begin{NiceMatrix}[
- code-before =
- {
- \tikz \draw [fill = red!15]
- (7-|4) -- (8-|4) -- (8-|5) -- (9-|5) -- (9-|6) |- cycle ;
- }
-]
+\[\begin{NiceMatrix}
+\CodeBefore
+\tikz \draw [fill=red!15] (7-|4) |- (8-|5) |- (9-|6) |- cycle ;
+\Body
1 \\
1 & 1 \\
1 & 2 & 1 \\
@@ -3563,7 +3648,7 @@ horizontal~$i$ et du filet vertical~$j$ avec la syntaxe |(|$i$\verb+-|+$j$|)|.
\label{node-sub-matrix}
-\colorbox{yellow!50}{\textbf{Nouveau 5.10}}\enskip
+\colorbox{yellow!30}{Nouveau 5.10}\enskip
La commande |\SubMatrix| disponible dans le |\CodeAfter| a été présentée
p.~\pageref{sub-matrix}.
@@ -3636,10 +3721,8 @@ bibliothèque Tikz \pkg{patterns} : |\usetikzlibrary{patterns}|).
\ExplSyntaxOn
\cs_new_protected:Nn \__pantigny_hatch:nnn
{
- \begin { tikzpicture }
- \fill [ pattern = north~west~lines , pattern~color = #3 ]
- ( #1 -| #2) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
- \end { tikzpicture }
+ \tikz \fill [ pattern = north~west~lines , pattern~color = #3 ]
+ ( #1 -| #2) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
}
\NewDocumentCommand \hatchcell { ! O { black } }
@@ -3654,10 +3737,8 @@ bibliothèque Tikz \pkg{patterns} : |\usetikzlibrary{patterns}|).
\ExplSyntaxOn
\cs_new_protected:Nn \__pantigny_hatch:nnn
{
- \begin { tikzpicture }
- \fill [ pattern = north~west~lines , pattern~color = #3 ]
- ( #1 -| #2 ) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
- \end { tikzpicture }
+ \tikz \fill [ pattern = north~west~lines , pattern~color = #3 ]
+ ( #1 -| #2 ) rectangle ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
}
\NewDocumentCommand \hatchcell { ! O { black } }
@@ -4150,96 +4231,224 @@ $\begin{pNiceMatrix}[first-row,first-col]
-\subsection{Largeur des colonnes}
+\subsection{Empilements de matrices}
+
+On a souvent besoin de présetner des matrices empilées les unes au-dessus des
+autres (par exemple pour la résolutiond de systèmes linéaires).
+
\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.
+Pour avoir les colonnes alignées les unes sous les autres, on peut imposer une
+largeur commune à toutes les colonnes, ce que l'on fait dans l'exemple suivant
+avec l'environnement |{NiceMatrixBlock}| et l'option |auto-columns-width|.
-\bigskip
-\begin{BVerbatim}
+\begin{Verbatim}[formatcom=\small\color{gray}]
~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@
\NiceMatrixOptions
- { last-col,code-for-last-col = \color{blue}\scriptstyle,light-syntax}
+ {
+ light-syntax,
+ last-col, code-for-last-col = \color{blue} \scriptstyle,
+ }
\setlength{\extrarowheight}{1mm}
-$\begin{pNiceArray}{cccc:c}
- 1 1 1 1 1 { } ;
- 2 4 8 16 9 ;
- 3 9 27 81 36 ;
- 4 16 64 256 100
+
+$\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 {} ;
+ 3 -18 12 1 4 ;
+-3 -46 29 -2 -15 ;
+ 9 10 -5 4 7
\end{pNiceArray}$
-\medskip
-$\begin{pNiceArray}{cccc:c}
- 1 1 1 1 1 ;
- 0 2 6 14 7 { L_2 \gets -2 L_1 + L_2 } ;
- 0 6 24 78 33 { L_3 \gets -3 L_1 + L_3 } ;
- 0 12 60 252 96 { L_4 \gets -4 L_1 + L_4 }
+
+\smallskip
+$\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 ;
+0 64 -41 1 19 { L_2 \gets L_1-4L_2 } ;
+0 -192 123 -3 -57 { L_3 \gets L_1+4L_3 } ;
+0 -64 41 -1 -19 { L_4 \gets 3L_1-4L_4 } ;
\end{pNiceArray}$
-...
+
+\smallskip
+$\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 ;
+0 64 -41 1 19 ;
+0 0 0 0 0 { L_3 \gets 3 L_2 + L_3 }
+\end{pNiceArray}$
+
+\smallskip
+$\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 {} ;
+0 64 -41 1 19 ;
+\end{pNiceArray}$
+
~emphase#\end{NiceMatrixBlock}@
-\end{BVerbatim}
+\end{Verbatim}
\bigskip
-
-\begin{multicols}{2}
\begin{NiceMatrixBlock}[auto-columns-width]
-\NiceMatrixOptions{last-col,code-for-last-col = \color{blue}\scriptstyle,light-syntax}
+\NiceMatrixOptions
+ {
+ light-syntax,
+ last-col, code-for-last-col = \color{blue} \scriptstyle ,
+ }
\setlength{\extrarowheight}{1mm}
-\enskip $\begin{pNiceArray}{cccc:c}
-1 1 1 1 1 { } ;
-2 4 8 16 9 ;
-3 9 27 81 36 ;
-4 16 64 256 100
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 {} ;
+ 3 -18 12 1 4 ;
+-3 -46 29 -2 -15 ;
+ 9 10 -5 4 7
\end{pNiceArray}$
-\medskip
-
-\enskip $\begin{pNiceArray}{cccc:c}
-1 1 1 1 1 ;
-0 2 6 14 7 { L_2 \gets -2 L_1 + L_2 } ;
-0 6 24 78 33 { L_3 \gets -3 L_1 + L_3 } ;
-0 12 60 252 96 { L_4 \gets -4 L_1 + L_4 }
+\smallskip
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 ;
+0 64 -41 1 19 { L_2 \gets L_1-4L_2 } ;
+0 -192 123 -3 -57 { L_3 \gets L_1+4L_3 } ;
+0 -64 41 -1 -19 { L_4 \gets 3L_1-4L_4 } ;
\end{pNiceArray}$
-\medskip
+\smallskip
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 ;
+0 64 -41 1 19 ;
+0 0 0 0 0 { L_3 \gets 3 L_2 + L_3 }
+\end{pNiceArray}$
-\enskip $\begin{pNiceArray}{cccc:c}
-1 1 1 1 1 ;
-0 1 3 7 \frac72 { L_2 \gets \frac12 L_2 } ;
-0 3 12 39 \frac{33}2 { L_3 \gets \frac12 L_3 } ;
-0 1 5 21 8 { L_4 \gets \frac1{12} L_4 }
+\smallskip
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 {} ;
+0 64 -41 1 19 ;
\end{pNiceArray}$
+\end{NiceMatrixBlock}
+
+\bigskip
+On constate que la dernière matrice n'est pas parfaitement alignée avec les
+précédentes. C'est que les parenthèses, en LaTeX, n'ont pas toutes la même
+largeur suivant leur taille.
\medskip
+\colorbox{yellow!50}{\textbf{Nouveau 5.12}}\enskip Pour résoudre ce problème, on
+peut demander que les délimiteurs soient composés avec leur largeur maximale
+grâce à la clé booléenne |delimiters/max-width|.
+
+\begin{Verbatim}[formatcom=\small\color{gray}]
+~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@
+\NiceMatrixOptions
+ {
+ ~emphase#delimiters/max-width@,
+ light-syntax,
+ last-col, code-for-last-col = \color{blue}\scriptstyle,
+ }
+\setlength{\extrarowheight}{1mm}
-\enskip $\begin{pNiceArray}{cccc:c}
-1 1 1 1 1 ;
-0 1 3 7 \frac72 ;
-0 0 3 18 6 { L_3 \gets -3 L_2 + L_3 } ;
-0 0 -2 -14 -\frac92 { L_4 \gets L_2 - L_4 }
+$\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 {} ;
+ 3 -18 12 1 4 ;
+-3 -46 29 -2 -15 ;
+ 9 10 -5 4 7
\end{pNiceArray}$
-\medskip
+...
+~emphase#\end{NiceMatrixBlock}@
+\end{Verbatim}
-\enskip $\begin{pNiceArray}{cccc:c}
-1 1 1 1 1 ;
-0 1 3 7 \frac72 ;
-0 0 1 6 2 { L_3 \gets \frac13 L_3 } ;
-0 0 -2 -14 -\frac92
+\bigskip
+\begin{NiceMatrixBlock}[auto-columns-width]
+\NiceMatrixOptions
+ {
+ delimiters/max-width,
+ light-syntax,
+ last-col, code-for-last-col = \color{blue}\scriptstyle,
+ }
+\setlength{\extrarowheight}{1mm}
+
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 {} ;
+ 3 -18 12 1 4 ;
+-3 -46 29 -2 -15 ;
+ 9 10 -5 4 7
\end{pNiceArray}$
-\medskip
+\smallskip
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 ;
+0 64 -41 1 19 { L_2 \gets L_1-4L_2 } ;
+0 -192 123 -3 -57 { L_3 \gets L_1+4L_3 } ;
+0 -64 41 -1 -19 { L_4 \gets 3L_1-4L_4 } ;
+\end{pNiceArray}$
-\enskip $\begin{pNiceArray}{cccc:c}
-1 1 1 1 1 ;
-0 1 3 7 \frac72 ;
-0 0 1 6 2 ;
-0 0 0 -2 -\frac12 { L_4 \gets L_3 + L_4 }
+\smallskip
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 ;
+0 64 -41 1 19 ;
+0 0 0 0 0 { L_3 \gets 3 L_2 + L_3 }
\end{pNiceArray}$
+
+\smallskip
+\quad $\begin{pNiceArray}{rrrr|r}
+12 -8 7 5 3 {} ;
+0 64 -41 1 19 ;
+\end{pNiceArray}$
+
\end{NiceMatrixBlock}
-\end{multicols}
+
+
+\interitem
+Si on souhaite un alignement des colonnes des différentes matrices sans imposer
+la même largeur à toutes les colonnes, on peut utiliser un grand tableau unique
+et placer les parenthèses avec des commandes |\SubMatrix| dans le |\CodeAfter|.
+Bien sûr, ce tableau ne pourra pas être coupé par un saut de page.
+
+\medskip
+\begin{Verbatim}
+\setlength{\extrarowheight}{1mm}
+\[\begin{NiceMatrix}%
+ [ r, last-col=6, code-for-last-col = \scriptstyle \color{blue} ]
+12 & -8 & 7 & 5 & 3 \\
+ 3 & -18 & 12 & 1 & 4 \\
+-3 & -46 & 29 &-2 &-15 \\
+ 9 & 10 &-5 &4 & 7 \\[1mm]
+12 & -8 & 7 &5 & 3 \\
+0 & 64 &-41 & 1 & 19 & L_2 \gets L_1-4L_2 \\
+0 & -192 &123 &-3 &-57 & L_3 \gets L_1+4L_3 \\
+0 & -64 & 41 &-1 &-19 & L_4 \gets 3L_1-4L_4 \\[1mm]
+12 & -8 &7 &5 & 3 \\
+0 & 64 &-41 &1 &19 \\
+0 & 0 &0 &0 & 0 & L_3 \gets 3L_2+L_3 \\[1mm]
+12 & -8 &7 &5 & 3 \\
+0 & 64 &-41 & 1 & 19 \\
+~emphase#\CodeAfter@
+~emphase# \SubMatrix({1-1}{4-5})[vlines=4]@
+~emphase# \SubMatrix({5-1}{8-5})[vlines=4]@
+~emphase# \SubMatrix({9-1}{11-5})[vlines=4]@
+~emphase# \SubMatrix({12-1}{13-5})[vlines=4]@
+\end{NiceMatrix}\]
+\end{Verbatim}
+
+\medskip
+\begin{scope}
+\setlength{\extrarowheight}{1mm}
+\[\begin{NiceMatrix}%
+ [ r, last-col=6, code-for-last-col = \scriptstyle \color{blue} ]
+12 & -8 & 7 & 5 & 3 \\
+ 3 & -18 & 12 & 1 & 4 \\
+-3 & -46 & 29 &-2 &-15 \\
+ 9 & 10 &-5 &4 & 7 \\[1mm]
+12 & -8 & 7 &5 & 3 \\
+0 & 64 &-41 & 1 & 19 & L_2 \gets L_1-4L_2 \\
+0 & -192 &123 &-3 &-57 & L_3 \gets L_1+4L_3 \\
+0 & -64 & 41 &-1 &-19 & L_4 \gets 3L_1-4L_4 \\[1mm]
+12 & -8 &7 &5 & 3 \\
+0 & 64 &-41 &1 &19 \\
+0 & 0 &0 &0 & 0 & L_3 \gets 3L_2+L_3 \\[1mm]
+12 & -8 &7 &5 & 3 \\
+0 & 64 &-41 & 1 & 19 \\
+\CodeAfter
+ \SubMatrix({1-1}{4-5})[vlines=4]
+ \SubMatrix({5-1}{8-5})[vlines=4]
+ \SubMatrix({9-1}{11-5})[vlines=4]
+ \SubMatrix({12-1}{13-5})[vlines=4]
+\end{NiceMatrix}\]
+\end{scope}
\subsection{Comment surligner les cases d'une matrice}
@@ -4280,7 +4489,7 @@ matrice.\footnote{Pour la commande |\cline|, voir la remarque
\vspace{1cm}
Il est possible de colorier une rangée avec |\rowcolor| dans le |code-before|
-(ou avec |\rowcolor| dans la première case de la rangée si on utilise la clé
+(ou avec |\rowcolor| dans une case de la rangée si on utilise la clé
|colortbl-like| − même si \pkg{colortbl} n'est pas chargé).
@@ -4491,112 +4700,43 @@ a & a & a & L_3 \\
-\subsection{Utilisation directe des nœuds Tikz}
-
-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.
-\begin{Verbatim}
-\begin{NiceMatrixBlock}[auto-columns-width]
-\end{Verbatim}
-
-\begin{Verbatim}
-\NiceMatrixOptions{nullify-dots}
-\end{Verbatim}
+\subsection{Utilisation de \textbackslash SubMatrix dans le code-before}
-Les trois matrices vont être disposées les unes par rapport aux autres grâce à un tableau de LaTeX.
-\begin{Verbatim}
-$\begin{array}{cc}
-&
-\end{Verbatim}
+Dans l'exemple suivant, on illustre le produit mathématique de deux matrices.
-La matrice $B$ a une «première rangée» (pour $C_j$) d'où l'option |first-row|.
-\begin{Verbatim}
-\begin{bNiceArray}{c>{\strut}cccc}[name=B,first-row]
- & & ~emphase#C_j@ \\
-b_{11} & \Cdots & b_{1j} & \Cdots & b_{1n} \\
-\Vdots & & \Vdots & & \Vdots \\
- & & b_{kj} \\
- & & \Vdots \\
- b_{n1} & \Cdots & b_{nj} & \Cdots & b_{nn}
-\end{bNiceArray} \\ \\
-\end{Verbatim}
+L'ensemble de la figure est un environnement |{NiceArray}| et les trois paires
+de parenthèses ont été rajoutées avec |\SubMatrix| dans le |code-before|.
-La matrice $A$ a une «première colonne» (pour $L_i$) d'où l'option |first-col|.
-\begin{Verbatim}
-\begin{bNiceArray}{cc>{\strut}ccc}[name=A,first-col]
+Ceux qui sont intéressés par le code correspondant le trouveront dans le fichier
+source de ce document.
+%
+%
+%
+\[\begin{NiceArray}{*{6}{c}@{\hspace{6mm}}*{5}{c}}[nullify-dots]
+\CodeBefore
+ \SubMatrix({2-7}{6-11})
+ \SubMatrix({7-2}{11-6})
+ \SubMatrix({7-7}{11-11})
+\Body
+ & & & & & & & & \color{blue}\scriptstyle C_j \\
+ & & & & & & b_{11} & \Cdots & b_{1j} & \Cdots & b_{1n} \\
+ & & & & & & \Vdots & & \Vdots & & \Vdots \\
+ & & & & & & & & b_{kj} \\
+ & & & & & & & & \Vdots \\
+ & & & & & & b_{n1} & \Cdots & b_{nj} & \Cdots & b_{nn} \\[3mm]
& a_{11} & \Cdots & & & a_{1n} \\
+ & \Vdots & & & & \Vdots & & & \Vdots \\
+\color{blue}\scriptstyle L_i
+ & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} & \Cdots & & c_{ij} \\
& \Vdots & & & & \Vdots \\
-~emphase#L_i@ & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\
- & \Vdots & & & & \Vdots \\
- & a_{n1} & \Cdots & & & a_{nn}
-\end{bNiceArray}
-&
-\end{Verbatim}
-
-Dans la matrice produit, on remarquera que les lignes en pointillés sont «semi-ouvertes».
-\begin{Verbatim}
-\begin{bNiceArray}{cc>{\strut}ccc}
- & & & & \\
- & & \Vdots \\
-\Cdots & & c_{ij} \\
-\\
-\\
-\end{bNiceArray}
-\end{array}$
-
-\end{NiceMatrixBlock}
-\end{Verbatim}
-
-\begin{Verbatim}
-\begin{tikzpicture}[remember picture, overlay]
- \node [highlight = (A-3-1) (A-3-5) ] {} ;
- \node [highlight = (B-1-3) (B-5-3) ] {} ;
- \draw [color = gray] (A-3-3) to [bend left] (B-3-3) ;
-\end{tikzpicture}
-\end{Verbatim}
-
-
-
-\begin{NiceMatrixBlock}[auto-columns-width]
-\NiceMatrixOptions{nullify-dots}
-$\begin{array}{cc}
-&
-\begin{bNiceArray}{c>{\strut}cccc}[name=B,first-row]
- & & C_j \\
-b_{11} & \Cdots & b_{1j} & \Cdots & b_{1n} \\
-\Vdots & & \Vdots & & \Vdots \\
- & & b_{kj} \\
- & & \Vdots \\
- b_{n1} & \Cdots & b_{nj} & \Cdots & b_{nn}
-\end{bNiceArray} \\ \\
-\begin{bNiceArray}{cc>{\strut}ccc}[name=A,first-col]
- & a_{11} & \Cdots & & & a_{1n} \\
- & \Vdots & & & & \Vdots \\
-L_i & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\
- & \Vdots & & & & \Vdots \\
- & a_{n1} & \Cdots & & & a_{nn} \\
-\end{bNiceArray}
-&
-\begin{bNiceArray}{cc>{\strut}ccc}
- & & & & \\
- & & \Vdots \\
-\Cdots & & c_{ij} \\
-\\
-\\
-\end{bNiceArray}
-\end{array}$
-
-\end{NiceMatrixBlock}
-
-\begin{tikzpicture}[remember picture, overlay]
- \node [highlight = (A-3-1) (A-3-5) ] {} ;
- \node [highlight = (B-1-3) (B-5-3) ] {} ;
- \draw [color = gray] (A-3-3) to [bend left] (B-3-3) ;
+ & a_{n1} & \Cdots & & & a_{nn} \\
+\CodeAfter
+\begin{tikzpicture}
+\node [highlight = (9-2) (9-6)] { } ;
+\node [highlight = (2-9) (6-9)] { } ;
+\draw [gray,shorten > = 1mm, shorten < = 1mm] (9-4.north) to [bend left] (4-9.west) ;
\end{tikzpicture}
+\end{NiceArray}\]