summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/nicematrix/nicematrix-french.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-10-19 03:01:14 +0000
committerNorbert Preining <norbert@preining.info>2021-10-19 03:01:14 +0000
commitd045bcbc99b0eda65a444496d60d16ea2d063c65 (patch)
tree86dd463beaafa251038cf6f29adadd6276da1250 /macros/latex/contrib/nicematrix/nicematrix-french.tex
parentad3ad18aa939862832c90a74bcf41e8a5570ff65 (diff)
CTAN sync 202110190301
Diffstat (limited to 'macros/latex/contrib/nicematrix/nicematrix-french.tex')
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex1051
1 files changed, 599 insertions, 452 deletions
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 28723ff94b..86c4f74da8 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}
@@ -31,23 +31,24 @@
\def\LetterAt{@}
-\def\interitem{\vspace{7mm plus 2 mm minus 3mm}}
+\def\interitem{\vspace{7mm plus 2 mm minus 3mm}}
\def\emphase{\bgroup\color{RoyalPurple}\let\next=}
\usepackage{footnote}
\usepackage{booktabs}
\usepackage{varwidth}
+\usepackage[auto-lang=false]{lipsum}
\usepackage[hyperfootnotes = false]{hyperref}
\hypersetup
{
- pdfinfo =
+ pdfinfo =
{
Title = L’extension nicematrix ,
Subject = Une extension LaTeX ,
- Author = F. Pantigny
+ Author = F. Pantigny
}
- }
+ }
\NewDocumentEnvironment {scope} {} {} {}
@@ -64,7 +65,7 @@
\title{L'extension \pkg{nicematrix}
\thanks{Ce document correspond à la version~\myfileversion\space de \pkg{nicematrix},
- en date du~\myfiledate.}}
+ en date du~\myfiledate.}}
\author{F. Pantigny \\ \texttt{fpantigny@wanadoo.fr}}
@@ -88,14 +89,14 @@ $\begin{bNiceArray}{cccc}[first-row,first-col,
L_1 & a_{11} & a_{12} & \Cdots & a_{1n} \\
L_2 & a_{21} & a_{22} & \Cdots & a_{2n} \\
\Vdots & \Vdots & \Vdots & \Ddots & \Vdots \\
-L_n & a_{n1} & a_{n2} & \Cdots & a_{nn}
+L_n & a_{n1} & a_{n2} & \Cdots & a_{nn}
\end{bNiceArray}$
\hspace{2cm}
\begin{NiceTabular}[c]{lSSSS}%
[code-before = \rowcolor{red!15}{1-2} \rowcolors{3}{blue!15}{}]
\toprule
\Block{2-1}{Produit} & \multicolumn{3}{c}{dimensions (cm)} & \Block{2-1}{\rotate Prix} \\
-\cmidrule(rl){2-4}
+\cmidrule(rl){2-4}
& L & l & h \\
\midrule
petit & 3 & 5.5 & 1 & 30 \\
@@ -114,7 +115,7 @@ L'extension \pkg{nicematrix} est entièrement contenue dans le fichier |nicematr
dans le répertoire courant ou dans une arborescence |texmf|. Le mieux reste néanmoins d'installer \pkg{nicematrix}
avec une distribution TeX comme MiKTeX, TeXlive ou MacTeX.
-\bigskip
+\medskip
\emph{Remarque} : Si vous utilisez un service LaTeX via Internet (ex. :
Overleaf) vous pouvez télécharger le fichier |nicematrix.sty| dans le dossier de
votre projet pour bénéficier de la dernière version de
@@ -122,21 +123,25 @@ votre projet pour bénéficier de la dernière version de
être téléchargée sur le serveur \textsc{svn} de TeXLive : \newline \small
\url{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}}
-\bigskip
+\medskip
Cette extension peut être utilisée avec |xelatex|, |lualatex| et |pdflatex| mais
aussi avec le cheminement classique |latex|-|dvips|-|ps2pdf| (ou Adobe
Distiller). \textsl{Néanmoins, le fichier nicematrix-french.tex de la présente
documentation ne peut être compilé qu'avec XeLaTeX.}
-\bigskip
+\medskip
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}|.
+\medskip
+Si vous utilisez une distribution TeXLive, sachez que TeXLive 2020 au minimum
+est requis pour faire fonctionner \pkg{nicematrix}.
-\bigskip
+
+\medskip
L'idée de \pkg{nicematrix} est de créer des nœuds \textsc{pgf} derrière les cases et les positions des filets des
tableaux créés par \pkg{array} et de les utiliser pour développer de nouvelles fonctionnalités. Comme toujours avec
\textsc{pgf}, les coordonnées de ces nœuds sont écrites dans le fichier |aux| pour être utilisées à la
@@ -145,18 +150,18 @@ compilation suivante. C'est pourquoi l'utilisation de \pkg{nicematrix} nécessit
automatiquement le nombre de
compilations nécessaire.}
-\bigskip
+\medskip
La plupart des fonctionnalités de \pkg{nicematrix} sont accessibles sans avoir à utiliser explicitement
\textsc{pgf} ou Tikz (ce dernier n'est d'ailleurs pas chargé par défaut).
-\bigskip
+\medskip
Une commande|\NiceMatrixOptions| est fournie pour régler les options (la portée des options fixées par cette
commande est le groupe TeX courant : elles sont semi-globales).
\newpage
-\section{Les environnements de cette extension}
+\section{Les environnements de cette extension}
L'extension \pkg{nicematrix} définit les nouveaux environnements suivants :
@@ -169,7 +174,7 @@ L'extension \pkg{nicematrix} définit les nouveaux environnements suivants :
\{NiceTabularX\} & \{bNiceArray\} & \{bNiceMatrix\} \\
& \{BNiceArray\} & \{BNiceMatrix\} \\
& \{vNiceArray\} & \{vNiceMatrix\} \\
- & \{VNiceArray\} & \{VNiceMatrix\}
+ & \{VNiceArray\} & \{VNiceMatrix\}
\end{tabular}
\end{ttfamily}
@@ -230,14 +235,14 @@ $\begin{pmatrix}
\frac13 & \frac14 \\
\end{pmatrix}$
-\bigskip
+\medskip
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}.
+|\cellspacetoplimit| et |\cellspacebottomlimit| proposés par \pkg{cellspace}.
Il existe aussi une clé |cell-space-limits| pour régler simultanément les deux
-paramètres.
+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}
@@ -267,7 +272,7 @@ $\begin{pNiceMatrix}
\end{scope}
-\bigskip
+\medskip
\section{La clé baseline}
L'extension \pkg{nicematrix} propose une option |baseline| pour la position
@@ -296,7 +301,7 @@ absolue comme pour l'option des environnements |{tabular}| et |{array}| de
\pkg{array}. La valeur initiale de |baseline| est~|c|.
-\bigskip
+\medskip
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
@@ -312,7 +317,7 @@ rangée (avec |{tabular}| ou |{array}| de \pkg{array}, il faut utiliser
$\begin{NiceArray}[t]{lcccccc}
\hline
n & 0 & 1 & 2 & 3 & 4 & 5 \\
-u_n & 1 & 2 & 4 & 8 & 16 & 32
+u_n & 1 & 2 & 4 & 8 & 16 & 32
\hline
\end{NiceArray}$
\end{enumerate}
@@ -333,7 +338,7 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
\end{minipage}
-\bigskip
+\medskip
Il est également possible d'utiliser les outils de \pkg{booktabs}: |\toprule|,
|\bottomrule|, |\midrule|, etc.\par\nobreak
@@ -342,12 +347,12 @@ Il est également possible d'utiliser les outils de \pkg{booktabs}: |\toprule|,
\begin{enumerate}
\item an item
\smallskip
-\item
+\item
$\begin{NiceArray}[t]{lcccccc}
~emphase#\toprule@
n & 0 & 1 & 2 & 3 & 4 & 5 \\
~emphase#\midrule@
-u_n & 1 & 2 & 4 & 8 & 16 & 32
+u_n & 1 & 2 & 4 & 8 & 16 & 32
~emphase#\bottomrule@
\end{NiceArray}$
\end{enumerate}
@@ -356,7 +361,7 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32
\begin{enumerate}
\item an item
\smallskip
-\item
+\item
$\begin{NiceArray}[t]{lcccccc}
\toprule
n & 0 & 1 & 2 & 3 & 4 & 5 \\
@@ -368,7 +373,7 @@ u_n & 1 & 2 & 4 & 8 & 16 & 32 \\
\end{minipage}
-\bigskip
+\medskip
On peut aussi utiliser la clé |baseline| pour aligner une matrice sur un filet
horizontal (tracé par |\hline|). On doit pour cela donner la valeur
|line-|\textsl{i} où \textsl{i} est le numéro de la rangée qui \emph{suit} ce filet
@@ -424,36 +429,34 @@ Si cet argument est laissé blanc, la valeur par défaut est |1-1|. Si le nombre
de rangées n'est pas indiqué, ou bien est égal à |*|, le bloc s'étend jusqu'à la
dernière rangée (idem pour les colonnes).
-\item Le deuxième argument est le contenu du bloc. On peut utiliser |\\| dans
-ce contenu pour avoir un contenu sur plusieurs lignes. Dans |{NiceTabular}|, le
-contenu est composé en mode texte tandis que, dans les autres environnements, il
-est composé en mode mathématique.
+\item Le deuxième argument est le contenu du bloc. On peut utiliser |\\| dans ce
+contenu pour avoir un contenu sur plusieurs lignes. Dans |{NiceTabular}|,
+|{NiceTabular*}| et |{NiceTabularX}|, le contenu est composé en mode texte
+tandis que, dans les autres environnements, il est composé en mode mathématique.
\end{itemize}
-
-
\interitem
Voici un exemple d'utilisation de la commande |\Block| dans une matrice mathématique.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-$\begin{bNiceArray}{ccc|c}[margin]
+$\begin{bNiceArray}{cw{c}{1cm}c|c}[margin]
~emphase#\Block{3-3}{A}@ & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
+& & & \Vdots \\
& & & 0 \\
\hline
0 & \Cdots& 0 & 0
\end{bNiceArray}$
\end{BVerbatim}
-$\begin{bNiceArray}{ccc|c}[margin]
+$\begin{bNiceArray}{cw{c}{1cm}c|c}[margin]
\Block{3-3}{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
+& & & \Vdots \\
& & & 0 \\
\hline
0 & \Cdots& 0 & 0
\end{bNiceArray}$
-\bigskip
+\medskip
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
@@ -461,44 +464,44 @@ option à mettre entre chevrons est proposée par |\Block| pour spécifier du co
LaTeX qui sera inséré \emph{avant} le début du mode mathématique.\footnote{Cet
argument entre chevrons peut aussi être utilisé pour insérer une commande de
fonte comme |\bfseries| dans le cas où la commande |\\| est utilisée dans le
- contenu du bloc.}
+ contenu du bloc.}
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-$\begin{bNiceArray}{ccc|c}[margin]
+$\begin{bNiceArray}{cw{c}{1cm}c|c}[margin]
\Block{3-3}~emphase#<\LARGE>@{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
+& & & \Vdots \\
& & & 0 \\
\hline
0 & \Cdots& 0 & 0
\end{bNiceArray}$
\end{BVerbatim}
-$\begin{bNiceArray}{ccc|c}[margin]
+$\begin{bNiceArray}{cw{c}{1cm}c|c}[margin]
\Block{3-3}<\LARGE>{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
+& & & \Vdots \\
& & & 0 \\
\hline
0 & \Cdots& 0 & 0
\end{bNiceArray}$
-\bigskip
+\medskip
On peut régler le positionnement horizontal du bloc avec l'une des clés |l|, |c| et |r|.
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
-$\begin{bNiceArray}{ccc|c}[margin]
+$\begin{bNiceArray}{cw{c}{1cm}c|c}[margin]
\Block~emphase#[r]@{3-3}<\LARGE>{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
+& & & \Vdots \\
& & & 0 \\
\hline
0 & \Cdots& 0 & 0
\end{bNiceArray}$
\end{BVerbatim}
-$\begin{bNiceArray}{ccc|c}[margin]
+$\begin{bNiceArray}{cw{c}{1cm}c|c}[margin]
\Block[r]{3-3}<\LARGE>{A} & & & 0 \\
-& \hspace*{1cm} & & \Vdots \\
+& & & \Vdots \\
& & & 0 \\
\hline
0 & \Cdots& 0 & 0
@@ -506,7 +509,7 @@ $\begin{bNiceArray}{ccc|c}[margin]
-\interitem
+\interitem
La commande |\Block| accepte en fait en premier argument optionnel (entre
crochets) une liste de couples \textsl{clé=valeur}. Les clés sont les suivantes :
\begin{itemize}
@@ -532,13 +535,15 @@ cette clé prend comme valeur une liste d'éléments parmi les suivants : |left|
celui-ci est constitué de plusieurs lignes (séparées par la commande |\\|) ;
\item la clé |hvlines| trace tous les filets horizontaux et verticaux dans le
bloc ;
-\item \colorbox{yellow!50}{\textbf{Nouveau 5.19}}\enskip quand la clé |tikz| est
-utilisée, le chemin Tikz correspondant au rectangle délimitant le bloc est
-exécuté avec Tikz\footnote{Tikz doit être chargé préalablement (par défaut,
- \pkg{nicematrix} ne charge que \textsc{pgf}), faute de quoi, une erreur sera
- levée.} en utilisant comme options la valeur de cette clé |tikz| (qui doit
-donc être une liste de clés Tikz applicables à un chemin de Tikz). Pour des
-exemple d'utilisation de cette clé |tikz|, voir p.~\pageref{tikz-key-examples}.
+\item quand la clé |tikz| est utilisée, le chemin Tikz correspondant au
+rectangle délimitant le bloc est exécuté avec Tikz\footnote{Tikz doit être
+ chargé préalablement (par défaut, \pkg{nicematrix} ne charge que
+ \textsc{pgf}), faute de quoi, une erreur sera levée.} en utilisant comme
+options la valeur de cette clé |tikz| (qui doit donc être une liste de clés Tikz
+applicables à un chemin de Tikz). Pour des exemple d'utilisation de cette clé
+|tikz|, voir p.~\pageref{tikz-key-examples} ;
+\item \colorbox{yellow!50}{\textbf{Nouveau 6.3}}\enskip la clé |name| donne un
+nom au nœud Tikz rectangulaire correspondant au bloc.
\end{itemize}
@@ -556,12 +561,12 @@ construction |wc{...}| de \pkg{array}).
\begin{BVerbatim}
\begin{NiceTabular}{cwc{2cm}wc{3cm}c}
rose & tulipe & marguerite & dahlia \\
-violette
+violette
& ~emphase#\Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2}@
- ~emphase#{\LARGE De très jolies fleurs}@
+ ~emphase#{\LARGE De très jolies fleurs}@
& & souci \\
pervenche & & & lys \\
-arum & iris & jacinthe & muguet
+arum & iris & jacinthe & muguet
\end{NiceTabular}
\end{BVerbatim}
@@ -573,14 +578,14 @@ rose & tulipe & marguerite & dahlia \\
violette & \Block[draw=red,fill=[RGB]{204,204,255},rounded-corners]{2-2}
{\LARGE De très jolies fleurs} & & souci \\
pervenche & & & lys \\
-arum & iris & jacinthe & muguet
+arum & iris & jacinthe & muguet
\end{NiceTabular}
\end{center}
\subsection{Les blocs mono-colonne}
-Les blocs mono-colonne ont un comportement spécial.
+Les blocs mono-colonne ont un comportement spécial.
\begin{itemize}
\item La largeur naturelle du contenu de ces blocs est prise en compte pour la
largeur de la colonne courante.
@@ -662,14 +667,14 @@ la consigne générale donnée dans le préambule pour cette colonne.
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}.}
-\item On peut tracer ou plusieurs bordures de la case avec la clé |borders|.
+\item On peut tracer une ou plusieurs bordures de la case avec la clé |borders|.
\end{itemize}
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
\begin{NiceTabular}{cc}
\toprule
-Écrivain
+Écrivain
& ~emphase#\Block[l]{}{année de\\ naissance}@ \\
\midrule
Hugo & 1802 \\
@@ -680,7 +685,7 @@ Balzac & 1799 \\
%
\begin{NiceTabular}{cc}
\toprule
-Écrivain
+Écrivain
& \Block[l]{}{année de\\ naissance} \\
\midrule
Hugo & 1802 \\
@@ -702,7 +707,7 @@ Par défaut, le positionnement horizontal des contenus des blocs est calculé su
le \emph{contenu} des colonnes impliquées. De ce fait, dans l'exemple suivant,
l'en-tête «Premier groupe» est correctement centré 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|).
+préambule (ce n'est pas le cas avec |\multicolumn|).
\medskip
\begin{center}
@@ -722,7 +727,7 @@ Rang & ~emphase#\Block{1-3}{Premier groupe}+ & & & \Block{1-3}{Deuxième groupe}
\end{BVerbatim}
\end{center}
-\bigskip
+\medskip
\begin{center}
\begin{NiceTabular}{@{}c!{\qquad}ccc!{\qquad}ccc@{}}
\toprule
@@ -750,7 +755,7 @@ néanmoins quelques petites différences de comportement avec les environnements
classiques.
-\bigskip
+\medskip
\subsection{Quelques différences avec les environnements classiques}
\subsubsection{Les filets verticaux}
@@ -760,7 +765,7 @@ Dans les environnements de \pkg{nicematrix}, les filets verticaux spécifiés pa
de ligne incomplète ou de double filet horizontal spécifié par |\hline\hline|
(il n'y a pas besoin d'utiliser \pkg{hhline}).
-\bigskip
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
\begin{NiceTabular}{|c|c|} \hline
Premier & Deuxième \\ ~emphase#\hline\hline@
@@ -776,13 +781,13 @@ Marie & Pauline \\ \hline
\end{NiceTabular}
-\bigskip
+\medskip
En revanche, les filets verticaux ne sont pas tracés à l'intérieur des blocs
(créés par |\Block|: cf.~p.~\pageref{Block}) ni dans les coins (dont la création
est demandée par la clé |corners|: cf.~p.~\pageref{corners}).
-\bigskip
+\medskip
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
@@ -806,7 +811,7 @@ a & b & c & d \\
\bottomrule
\end{NiceArray}$
-\bigskip
+\medskip
Il reste néanmoins possible de définir un spécificateur, nommé par exemple
|I|, pour tracer des filets verticaux avec le comportement standard de
\pkg{array} :
@@ -882,7 +887,7 @@ A&B&C&D \\
\end{scope}
\medskip
-\colorbox{yellow!50}{\textbf{Nouveau 6.2}}\enskip
+\colorbox{yellow!50}{\textbf{Nouveau 6.2}}\enskip
Dans les environnements de
\pkg{nicematrix}, une instruction |\cline{|\textsl{\texttt{i}}|}| est
@@ -936,7 +941,7 @@ p.~\pageref{OnlyMainNiceMatrix}.
-\bigskip
+\medskip
\subsection{Les outils de nicematrix pour tracer des filets}
Les outils proposés par \pkg{nicematrix} pour tracer des filets sont les
@@ -948,7 +953,7 @@ préambule) ;
\item la commande |\Hline|.
\end{itemize}
-\bigskip
+\medskip
\textbf{Ces outils ont en commun de ne pas tracer les filets dans les blocs ni
dans les coins vides (quand la clé |corners| est utilisée).}
\begin{itemize}
@@ -962,36 +967,37 @@ p.~\pageref{Block};
par |\Cdots|, |\Vdots|, etc. : cf.~p.~\pageref{Cdots}.
\end{itemize}
\item Les coins sont créés par la clé |corners| détaillée un peu plus loin : cf.
-p.~\pageref{corners}.
+p.~\pageref{corners}.
\end{itemize}
En particulier, cette remarque explique la différence entre la commande standard
|\hline| et la commande |\Hline| proposée par \pkg{nicematrix}.
-\bigskip
+\medskip
\subsubsection{Les clés hlines et vlines}
\medskip
Les clés |hlines| et |vlines| (qui, bien sûr, tracent des filets horizontaux et
verticaux) prennent comme valeur une liste de numéros qui sont les numéros des
-filets à tracer. Si aucune valeur n'est donnée, tous les filets sont tracés.
+filets\footnote{Il est également possible de mettre dans la liste des
+ intervalles de numéros de la forme $i$|-|$j$.} à tracer. Si aucune valeur n'est donnée, tous les filets sont tracés.
En fait, pour les environnements avec délimiteurs (comme |{pNiceMatrix}| ou
|{bNiceArray}|), la clé |vlines| ne trace pas les filets extérieurs (ce qui est
-le comportement certainement attendu).
+le comportement certainement attendu).
\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
$\begin{pNiceMatrix}[~emphase#vlines@,rules/width=0.2pt]
1 & 2 & 3 & 4 & 5 & 6 \\
1 & 2 & 3 & 4 & 5 & 6 \\
-1 & 2 & 3 & 4 & 5 & 6
+1 & 2 & 3 & 4 & 5 & 6
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}[vlines,rules/width=0.2pt]
1 & 2 & 3 & 4 & 5 & 6 \\
1 & 2 & 3 & 4 & 5 & 6 \\
-1 & 2 & 3 & 4 & 5 & 6
+1 & 2 & 3 & 4 & 5 & 6
\end{pNiceMatrix}$
@@ -1008,7 +1014,7 @@ La clé |hvlines|, qui ne prend pas de valeur, est la conjonction des clés
rose & tulipe & marguerite & dahlia \\
violette & \Block[draw=red]{2-2}{\LARGE fleurs} & & souci \\
pervenche & & & lys \\
-arum & iris & jacinthe & muguet
+arum & iris & jacinthe & muguet
\end{NiceTabular}
\end{Verbatim}
%
@@ -1017,21 +1023,21 @@ arum & iris & jacinthe & muguet
rose & tulipe & marguerite & dahlia \\
violette & \Block[draw=red]{2-2}{\LARGE fleurs} & & souci \\
pervenche & & & lys \\
-arum & iris & jacinthe & muguet
+arum & iris & jacinthe & muguet
\end{NiceTabular}
\end{center}
-\bigskip
+\medskip
La clé |hvlines-except-borders| est similaire à la clé |hvlines| mais ne trace
pas les filets sur les bords horizontaux et verticaux du tableau.
-\bigskip
+\medskip
\subsubsection{Les coins (vides)}
\label{corners}
Les quatre coins d'un tableau seront notés |NW|, |SW|, |NE| et |SE| (\emph{north west}, \emph{south west}, \emph{north
- east} et \emph{south east} en anglais).
+ east} et \emph{south east} en anglais).
\smallskip
Pour chacun de ces coins, on appellera \emph{coin vide} (ou tout simplement
@@ -1045,7 +1051,7 @@ rectangle entièrement constitué de cases vides partant de ce coin.\footnote{Po
On peut néanmoins imposer à une case sans contenu d'être considérée
comme non vide par \pkg{nicematrix} avec la commande |\NotEmpty|.
-\bigskip
+\medskip
\begin{minipage}{9cm}
Dans l'exemple ci-contre (où B est au centre d'un bloc de taille $2\times 2$),
on a colorié en bleu clair les quatre coins (vides) du tableau.
@@ -1070,14 +1076,14 @@ A & A & A & A & A & A \\
\end{NiceTabular}
-\bigskip
+\medskip
Quand la clé |corners| est utilisée, \pkg{nicematrix} calcule les coins vides et
ces coins sont alors pris en compte par les outils de tracés de filets (les
filets ne seront pas tracés dans ces coins vides). \emph{Remarque} : Dans les
versions précédentes de \pkg{nicematrix}, il n'y avait qu'une clé
|hvlines-except-corners| (maintenant considérée comme obsolète).
-\bigskip
+\medskip
\begin{BVerbatim}[boxwidth=11cm,baseline=c]
\NiceMatrixOptions{cell-space-top-limit=3pt}
\begin{NiceTabular}{*{6}{c}}[~emphase#corners@,hvlines]
@@ -1132,7 +1138,7 @@ doivent être séparés par des virgules).
\end{NiceTabular}
-\bigskip
+\medskip
$\triangleright$ Les coins sont également pris en compte par les outils de
coloriage dans le |\CodeBefore|. Ces outils ne colorient pas les cases qui sont
dans les coins (cf.~p.~\pageref{color-in-code-before}).
@@ -1152,7 +1158,7 @@ $\begin{NiceArray}{*{5}{c}}[hvlines]
e & e & a & b & c \\
a & a & e & c & b \\
b & b & c & e & a \\
-c & c & b & a & e
+c & c & b & a & e
\end{NiceArray}$
\end{BVerbatim}
$\begin{NiceArray}{*{5}{c}}[hvlines]
@@ -1160,7 +1166,7 @@ $\begin{NiceArray}{*{5}{c}}[hvlines]
e & e & a & b & c \\
a & a & e & c & b \\
b & b & c & e & a \\
-c & c & b & a & e
+c & c & b & a & e
\end{NiceArray}$
\medskip
@@ -1182,18 +1188,18 @@ commande de \pkg{arydshln}).
1 & 2 & 3 & 4 & 5 \\
~emphase#\hdottedline@
6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15
+11 & 12 & 13 & 14 & 15
\end{pNiceMatrix}
\end{BVerbatim}
$\begin{pNiceMatrix}
1 & 2 & 3 & 4 & 5 \\
\hdottedline
6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15
+11 & 12 & 13 & 14 & 15
\end{pNiceMatrix}$
-\bigskip
+\medskip
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 «|:|».
@@ -1203,25 +1209,25 @@ pointillés avec le spécificateur «|:|».
\begin{pNiceArray}{cccc~emphase#:@c}
1 & 2 & 3 & 4 & 5 \\
6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15
+11 & 12 & 13 & 14 & 15
\end{pNiceArray}
\end{BVerbatim}
$\begin{pNiceArray}{cccc:c}
1 & 2 & 3 & 4 & 5 \\
6 & 7 & 8 & 9 & 10 \\
-11 & 12 & 13 & 14 & 15
+11 & 12 & 13 & 14 & 15
\end{pNiceArray}$
-\bigskip
+\medskip
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|.
-Ainsi libérée, la lettre «|:|» peut être utilisée par ailleurs (par exemple par
+|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}\footnote{On remarquera néanmoins que l'extension
\pkg{arydshln} n'est pas parfaitement compatible avec l'extension \pkg{nicematrix}.}).
-\bigskip
+\medskip
\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
@@ -1274,7 +1280,7 @@ MuPDF.
\end{itemize}
L'extension \pkg{nicematrix} propose des outils qui permettent d'éviter ces
-inconvénients.
+inconvénients.
\end{itemize}
\subsection{Les outils de nicematrix dans le \textbackslash CodeBefore}
@@ -1292,7 +1298,7 @@ successives.\footnote{Si vous utilisez Overleaf, Overleaf effectue
\medskip
L'extension \pkg{nicematrix} fournit une clé |code-before| pour du code qui sera
-exécuté avant le tracé du tableau.
+exécuté avant le tracé du tableau.
\smallskip
Une syntaxe alternative est proposée : on peut placer le contenu de ce
@@ -1302,9 +1308,9 @@ l'environnement.
\begin{Verbatim}
\begin{pNiceArray}{~textsl#preamble@}
~emphase#\CodeBefore@
-~textsl#instructions du code-before@
+ ~textsl#instructions du code-before@
~emphase#\Body@
-~textsl#contenu de l'environnement@
+ ~textsl#contenu de l'environnement@
\end{pNiceArray}
\end{Verbatim}
@@ -1313,7 +1319,7 @@ De nouvelles commandes sont disponibles dans ce |\CodeBefore|:
|\cellcolor|, |\rectanglecolor|, |\rowcolor|, |\columncolor|, |\rowcolors|,
|\rowlistcolors|, |\chessboardcolors| et |\arraycolor|.\footnote{On pourra remarquer que, dans le
|\CodeBefore|, des nœuds PGF/Tikz de la forme \verb+(i-|j)+ correspondant
- à la position des filets éventuels sont également accessibles : cf. p.~\pageref{noeuds-i}.}
+ à la position des filets éventuels sont également accessibles : cf. p.~\pageref{nodes-i}.}
\label{code-before}
\medskip
@@ -1361,7 +1367,7 @@ h & i & j \\ \hline
\end{scope}
-\bigskip
+\medskip
\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.
@@ -1392,13 +1398,13 @@ h & i & j \\ \hline
\end{scope}
-\bigskip
+\medskip
\item La commande |\arraycolor| prend en argument obligatoire une couleur et
colorie tout le tableau (sauf les éventuelles rangées et colonnes extérieures:
cf.~p.~\pageref{exterior}) avec cette couleur. Ce n'est qu'un cas particulier de
la commande |\rectanglecolor|.
-\bigskip
+\medskip
\item \label{chessboardcolors}%
La commande |\chessboardcolors| prend en arguments obligatoires deux
couleurs et colorie les cases en quinconces avec les deux couleurs.
@@ -1407,13 +1413,13 @@ 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]
+$\begin{pNiceMatrix}[r,margin]
\CodeBefore
~emphase#\chessboardcolors{red!15}{blue!15}@
\Body
1 & -1 & 1 \\
-1 & 1 & -1 \\
-1 & -1 & 1
+1 & -1 & 1
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}[baseline=1, r, margin]
@@ -1422,7 +1428,7 @@ $\begin{pNiceMatrix}[baseline=1, r, margin]
\Body
1 & -1 & 1 \\
-1 & 1 & -1 \\
-1 & -1 & 1
+1 & -1 & 1
\end{pNiceMatrix}$
\end{scope}
@@ -1431,7 +1437,7 @@ On a utilisé la clé |r| qui impose que toutes les colonnes soient alignées à
droite (cf. p.~\pageref{key-R}).
-\bigskip
+\medskip
\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
@@ -1443,7 +1449,7 @@ partir de la rangée~$a$).
\begin{scope}
\hfuzz=10cm
\begin{BVerbatim}[boxwidth=9cm,baseline=c]
-$\begin{NiceArray}{lll}[hvlines]
+$\begin{NiceArray}{lll}[hvlines]
\CodeBefore
~emphase#\rowcolor{red!15}{1,3-5,8-}@
\Body
@@ -1479,11 +1485,11 @@ a_{10} & b_{10} & c_{10} \\
-\bigskip
+\medskip
\item La commande |\columncolor| doit son nom à la commande |\columncolor| de
\pkg{colortbl}. Sa syntaxe est similaire à celle de |\rowcolor|.
-\bigskip
+\medskip
\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|. Cett
@@ -1492,13 +1498,13 @@ 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), comme le fait la commande |\rowcolors| de \pkg{xcolor}.
-En fait, le premier argument (obligatoire) peut, plus généralement, contenir
+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 la rangée~$i$).
-\bigskip
+\medskip
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|,
@@ -1534,7 +1540,7 @@ tableau pour englober les blocs (créés par la commande |\Block| : cf.~p.~\page
\Block{4-1}{B}& Stéphanie & 18 \\
& Amélie & 20 \\
& Henri & 14 \\
- & Estelle & 15
+ & Estelle & 15
\end{NiceTabular}
\end{BVerbatim}
\begin{NiceTabular}{clr}[hvlines,baseline=2]
@@ -1547,7 +1553,7 @@ tableau pour englober les blocs (créés par la commande |\Block| : cf.~p.~\page
\Block{4-1}{B}& Stéphanie & 18 \\
& Amélie & 20 \\
& Henri & 14 \\
- & Estelle & 15
+ & Estelle & 15
\end{NiceTabular}
\end{scope}
@@ -1595,7 +1601,7 @@ Henri & 14 \\
-\bigskip
+\medskip
\item \colorbox{yellow!50}{\textbf{Nouveau 6.0}}\enskip L'extension
\pkg{nicematrix} propose aussi une commande |\rowlistcolors|. Cette commande
généralise la commande |\rowcolors|: au lieu de prendre deux arguments
@@ -1633,7 +1639,7 @@ Stéphanie \\
\end{itemize}
-\bigskip
+\medskip
On rappelle que toutes les commandes de coloriage que l'on vient de décrire ne
colorient pas les cases qui sont dans les «coins». Dans l'exemple suivant, on
utilise la clé |corners| pour demander de considérer le coin \emph{north east} (NE).
@@ -1673,7 +1679,7 @@ utilise la clé |corners| pour demander de considérer le coin \emph{north east}
-\bigskip
+\medskip
On remarquera que ces commandes sont compatibles avec les commandes de
\pkg{booktabs} (|\toprule|, |\midrule|, |\bottomrule|, etc). Néanmoins,
l'extension \pkg{booktabs} n'est \emph{pas} chargée par \pkg{nicematrix}.
@@ -1684,12 +1690,12 @@ l'extension \pkg{booktabs} n'est \emph{pas} chargée par \pkg{nicematrix}.
\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
\begin{NiceTabular}{lSSSS}
\CodeBefore
- \rowcolor{red!15}{1-2}
+ \rowcolor{red!15}{1-2}
\rowcolors{3}{blue!15}{}
\Body
~emphase#\toprule@
\Block{2-1}{Produit} &
-\Block{1-3}{dimensions (cm)} & & &
+\Block{1-3}{dimensions (cm)} & & &
\Block{2-1}{\rotate Prix} \\
~emphase#\cmidrule(rl){2-4}@
& L & l & h \\
@@ -1704,14 +1710,14 @@ spécial & 12 & 12 & 0.5 & 70 \\
\end{BVerbatim}
\begin{NiceTabular}[c]{lSSSS}
\CodeBefore
- \rowcolor{red!15}{1-2}
+ \rowcolor{red!15}{1-2}
\rowcolors{3}{blue!15}{}
\Body
\toprule
-\Block{2-1}{Produit} &
-\Block{1-3}{dimensions (cm)} & & &
+\Block{2-1}{Produit} &
+\Block{1-3}{dimensions (cm)} & & &
\Block{2-1}{\rotate Prix} \\
-\cmidrule(rl){2-4}
+\cmidrule(rl){2-4}
& L & l & h \\
\midrule
petit & 3 & 5.5 & 1 & 30 \\
@@ -1752,7 +1758,7 @@ préambule).
\medskip
\begin{Verbatim}
\NewDocumentCommand { \Blue } { } {~emphase#\columncolor{blue!15}@}
-\begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
+\begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
\toprule
~emphase#\rowcolor{red!15}@
Nom & Prénom & Année de naissance \\
@@ -1768,7 +1774,7 @@ Dupont & Chantal & 15 janvier 1998 \\
\begin{center}
\NewDocumentCommand { \Blue } { } {\columncolor{blue!15}}
-\begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
+\begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
\toprule
\rowcolor{red!15}
Nom & Prénom & Année de naissance \\
@@ -1785,40 +1791,50 @@ Dupont & Chantal & 15 janvier 1998 \\
\label{RowStyle}
-\colorbox{yellow!50}{\bfseries Nouveau 5.18}\enskip La commande |\RowStyle|
-prend en argument des instructions de mise en forme qui seront appliquées à
-chacune des cases restantes sur la rangée en cours.
+La commande |\RowStyle| prend en argument des instructions de mise en forme qui
+seront appliquées à chacune des cases restantes sur la rangée en cours.
\medskip
Elle prend aussi en premier argument optionnel, entre crochets, une liste de
-couples clé-valeur.
+couples clé-valeur.
\begin{itemize}
+\item \colorbox{yellow!50}{\bfseries Nouveau 6.3}\enskip La clé |nb-rows|
+indique le nombre de rangées consécutives concernées par les spécifications de
+cette commande.
\item Les clés |cell-space-top-limit|, |cell-space-bottom-limit|
et |cell-space-limits| sont disponibles avec le même effet que les clés globales
-de même nom (cf. p.~\pageref{cell-space}).
-\item \colorbox{yellow!50}{\bfseries Nouveau 6.1}\enskip La clé |color| fixe la
-couleur du texte.\footnote{La clé |color| utilise la commande |\color|
-mais insère aussi une instruction |\leavevmode| devant. Cela évite un
-espace vertical parasite dans les cellules qui correspondent à des colonnes de
-type |p|, |b|, |m| et |X| (qui débutent en mode vertical).}
+de même nom (cf. p.~\pageref{cell-space}).
+
+\item \colorbox{yellow!50}{\bfseries Nouveau 6.3}\enskip La clé |rowcolor| fixe
+la couleur de fond et la clé |color| fixe la couleur du texte.\footnote{La clé
+ |color| utilise la commande |\color| mais insère aussi une instruction
+ |\leavevmode| devant. Cela évite un espace vertical parasite dans les cellules
+ qui correspondent à des colonnes de type |p|, |b|, |m| et |X| (qui débutent en
+ mode vertical).}
+
+\item \colorbox{yellow!50}{\bfseries Nouveau 6.3}\enskip La clé |bold| impose
+des caractères gras aux éléments de la rangée, qu'ils soient en mode texte ou
+bien en mode mathématique.
\end{itemize}
\medskip
-\begin{BVerbatim}[boxwidth=11cm,baseline=c]
-\begin{NiceTabular}{cccc}[colortbl-like]
+\begin{BVerbatim}[boxwidth=12cm,baseline=c]
+\begin{NiceTabular}{cccc}
\hline
~emphase#\RowStyle[cell-space-limits=3pt]{\rotate}@
premier & deuxième & troisième & quatrième \\
-\rowcolor{blue!50}~emphase#\RowStyle[color=white]{\sffamily}@
+~emphase#\RowStyle[nb-rows=2,color=white,rowcolor=blue!50]{\sffamily}@
1 & 2 & 3 & 4 \\
+I & II & III & IV
\end{NiceTabular}
\end{BVerbatim}
-\begin{NiceTabular}{cccc}[colortbl-like]
+\begin{NiceTabular}{cccc}
\hline
\RowStyle[cell-space-limits=3pt]{\rotate}
premier & deuxième & troisième & quatrième \\
-\rowcolor{blue!50}\RowStyle[color=white]{\sffamily}
+\RowStyle[nb-rows=2,color=white,rowcolor=blue!50]{\sffamily}
1 & 2 & 3 & 4 \\
+I & II & III & IV \\
\end{NiceTabular}
\medskip
@@ -1839,17 +1855,17 @@ lettres classiques |w|, |W|, |p|, |b| et |m| de l'extension \pkg{array}.
\begin{NiceTabular}{~emphase#W{c}{2cm}@cc}[hvlines]
Paris & New York & Madrid \\
Berlin & London & Roma \\
-Rio & Tokyo & Oslo
+Rio & Tokyo & Oslo
\end{NiceTabular}
\end{BVerbatim}
\begin{NiceTabular}{W{c}{2cm}cc}[hvlines]
Paris & New York & Madrid \\
Berlin & London & Roma \\
-Rio & Tokyo & Oslo
+Rio & Tokyo & Oslo
\end{NiceTabular}
-\bigskip
+\medskip
Dans les environnements de \pkg{nicematrix}, il est aussi possible de fixer la
largeur \emph{minimale} de toutes les colonnes (à l'exception des éventuelles
colonnes extérieures: cf. p.~\pageref{exterior}) directement avec l'option
@@ -1860,13 +1876,13 @@ colonnes extérieures: cf. p.~\pageref{exterior}) directement avec l'option
$\begin{pNiceMatrix}[~emphase#columns-width = 1cm@]
1 & 12 & -123 \\
12 & 0 & 0 \\
-4 & 1 & 2
+4 & 1 & 2
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}[columns-width = 1cm]
1 & 12 & -123 \\
12 & 0 & 0 \\
-4 & 1 & 2
+4 & 1 & 2
\end{pNiceMatrix}$
\medskip
@@ -1875,7 +1891,7 @@ Notez que l'espace inséré entre deux colonnes (égal à 2 |\tabcolsep| dans
supprimé (il est évidemment possible de le supprimer en mettant |\tabcolsep| ou
|\arraycolsep| à~$0$ avant).
-\bigskip
+\medskip
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
@@ -1887,16 +1903,16 @@ case la plus large du tableau.\footnote{Le résultat est atteint dès la premiè
$\begin{pNiceMatrix}[~emphase#columns-width = auto@]
1 & 12 & -123 \\
12 & 0 & 0 \\
-4 & 1 & 2
+4 & 1 & 2
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}[columns-width = auto]
1 & 12 & -123 \\
12 & 0 & 0 \\
-4 & 1 & 2
+4 & 1 & 2
\end{pNiceMatrix}$
-\bigskip
+\medskip
Sans surprise, il est possible de fixer la largeur minimale de toutes les
colonnes de tous les tableaux dans une certaine portion de document avec la
commande |\NiceMatrixOptions|.\par\nobreak
@@ -1905,28 +1921,28 @@ commande |\NiceMatrixOptions|.\par\nobreak
\begin{BVerbatim}[baseline=c,boxwidth=8.5cm]
~emphase#\NiceMatrixOptions{columns-width=10mm}@
$\begin{pNiceMatrix}
-a & b \\ c & d
+a & b \\ c & d
\end{pNiceMatrix}
-=
+=
\begin{pNiceMatrix}
-1 & 1245 \\ 345 & 2
+1 & 1245 \\ 345 & 2
\end{pNiceMatrix}$
\end{BVerbatim}
\begin{scope}
\NiceMatrixOptions{columns-width=10mm}
$\begin{pNiceMatrix}
a & b \\
-c & d
+c & d
\end{pNiceMatrix}
-=
+=
\begin{pNiceMatrix}
1 & 1245 \\
-345 & 2
+345 & 2
\end{pNiceMatrix}$
\end{scope}
-\bigskip
+\medskip
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
@@ -1942,10 +1958,10 @@ la commande |\Block| présentée précédemment dans ce document
~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@
$\begin{array}{c}
\begin{bNiceMatrix}
- 9 & 17 \\ -2 & 5
+ 9 & 17 \\ -2 & 5
\end{bNiceMatrix} \\ \\
\begin{bNiceMatrix}
- 1 & 1245345 \\ 345 & 2
+ 1 & 1245345 \\ 345 & 2
\end{bNiceMatrix}
\end{array}$
~emphase#\end{NiceMatrixBlock}@
@@ -1953,14 +1969,76 @@ $\begin{array}{c}
\begin{NiceMatrixBlock}[auto-columns-width]
$\begin{array}{c}
\begin{bNiceMatrix}
- 9 & 17 \\ -2 & 5
+ 9 & 17 \\ -2 & 5
\end{bNiceMatrix} \\ \\
\begin{bNiceMatrix}
- 1 & 1245345 \\ 345 & 2
+ 1 & 1245345 \\ 345 & 2
\end{bNiceMatrix}
\end{array}$
\end{NiceMatrixBlock}
+\subsection{Les colonnes V de varwidth}
+
+\colorbox{yellow!50}{\textbf{Nouveau 6.3}}
+
+\smallskip
+Rappelons d'abord le fonctionnement d'un environnement |{varwidth}| de
+l'extension éponyme \pkg{varwidth}. Un tel environnement est similaire à
+l'environnement classique |{minipage}| mais la largeur indiquée (en argument)
+n'est que la largeur \emph{maximale} de la boîte créée. Dans la cas général, la
+largeur d'une boîte |{varwidth}| est la largeur naturelle de son contenu.
+
+\smallskip
+Cela est illustré avec les exemples suivants :
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=6cm]
+\fbox{%
+\begin{~emphase#varwidth@}{8cm}
+\begin{itemize}
+\item premier item
+\item deuxième item
+\end{itemize}
+\end{~emphase#varwidth@}}
+\end{BVerbatim}
+\fbox{\begin{varwidth}{8cm}
+\begin{itemize}
+\item premier item
+\item deuxième item
+\end{itemize}
+\end{varwidth}}
+
+\bigskip
+\begin{BVerbatim}[baseline=c,boxwidth=6cm]
+\fbox{%
+\begin{~emphase#minipage@}{8cm}
+\begin{itemize}
+\item premier item
+\item deuxième item
+\end{itemize}
+\end{~emphase#minipage@}}
+\end{BVerbatim}
+\fbox{\begin{minipage}{8cm}
+\begin{itemize}
+\item premier item
+\item deuxième item
+\end{itemize}
+\end{minipage}}
+
+\bigskip
+L'extension \pkg{varwidth} définit également le type de colonne |V|. Une colonne
+|V{|$\langle$\textsl{dim}$\rangle$|}| encapsule toutes ses cases dans une
+|{varwidth}| d'argument $\langle$\textsl{dim}$\rangle$ (et effectue quelques
+réglages supplémentaires).
+
+\medskip
+Lorsque l'extension \pkg{varwidth} est chargée, ces colonnes |V| de
+\pkg{varwidth} sont prises en charge par \pkg{nicematrix}. Dans le cadre de
+\pkg{nicematrix}, l'un des intérêts des colonnes de type |V| par rapport aux
+colonnes de type |p|, |m| ou |b| est que, pour les cellules d'une telle colonne,
+le nœud PGF/Tikz créé pour le contenu d'une telle cellule a une largeur ajusté
+au contenu de la cellule en question : cf. p.~\pageref{node-V}.
+
\subsection{Les colonnes X}
@@ -1968,37 +2046,42 @@ $\begin{array}{c}
\colorbox{yellow!50}{\textbf{Nouveau 6.0}}
+\smallskip
L'environnement |{NiceTabular}| propose aussi des colonnes |X| similaires à
celles proposées par l'environnement |{tabularx}| de l'extension éponyme.
La valeur requise par la largeur du tableau peut être passée en argument de la
-clé |width|. La valeur initiale de ce paramètre est |\linewidth|.
+clé |width| (dans |{NiceTabular}| ou dans |\NiceMatrixOptions|). La valeur
+initiale de ce paramètre est |\linewidth| (et non |\textwidth|).
Pour se rapprocher davantage de l'environnement |{tabularx}|, \pkg{nicematrix}
propose aussi un environnement |{NiceTabularX}| qui prend en premier argument
(obligatoire) la largeur voulue pour le tableau.\footnote{Si \pkg{tabularx} est
chargé, on doit obligatoirement utiliser |{NiceTabularX}| pour utiliser les
- colonnes `X` (ceci est dû à un problème de conflit de définition des
- spécificateurs de colonne `X`).}
+ colonnes |X| (ceci est dû à un problème de conflit de définition des
+ spécificateurs de colonne |X|).}
Comme avec les extensions \pkg{tabu} et \pkg{tabularray}, le spécificateur |X|
accepte entre crochets un argument optionnel qui est une liste de clés.
\begin{itemize}
\item On peut spécifier un poids pour la colonne en mettant directement un
-entier comme argument du spécificateur |X|. Par exemple, une colonne |X[2]| aura
-une largeur double de celle d'une colonne |X| (qui a un poids de 1).
+entier positif comme argument du spécificateur |X|. Par exemple, une colonne
+|X[2]| aura une largeur double de celle d'une colonne |X| (qui a un poids de
+1).\footnote{Les valeurs négatives pour les poids, comme proposées par
+ \pkg{tabu} (maintenant obsolète), ne sont pas prises en charge par
+ \pkg{nicematrix}. Si une telle valeur est utilisée, une erreur sera levée.}
\item On peut spécifier l'alignement horizontal avec une des lettres |l|, |c| et
|r| (qui insèrent respectivement |\raggedright|, |\centering| et |\raggedleft|
suivi de |\arraybackslash|).
\item On peut spécifier l'alignement vertical avec l'une des lettres |t| (alias
|p|), |m| et |b| (qui construisent respectivement des colonnes de types |p|, |m|
-et |b|). La valeur par défaut est |t|.
+et |b|). La valeur par défaut est |t|.
\end{itemize}
\begin{Verbatim}
\begin{NiceTabular}~emphase#[width=9cm]{X[2,l]X[l]}@[hvlines]
-Un texte relativement long qui tient sur plusieurs lignes. &
+Un texte relativement long qui tient sur plusieurs lignes. &
Un texte relativement long qui tient sur plusieurs lignes. \\
Un texte plus court. & Un texte plus court.
\end{NiceTabular}
@@ -2007,13 +2090,13 @@ Un texte plus court. & Un texte plus court.
\begin{center}
\begin{NiceTabular}[width=9cm]{X[2,l]X[l]}[hvlines]
-Un texte relativement long qui tient sur plusieurs lignes. &
+Un texte relativement long qui tient sur plusieurs lignes. &
Un texte relativement long qui tient sur plusieurs lignes. \\
Un texte plus court. & Un texte plus court.
\end{NiceTabular}
\end{center}
-\bigskip
+\medskip
\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
@@ -2030,7 +2113,7 @@ L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\
\Vdots & a_{21} & a_{22} & a_{23} & a_{24} & \Vdots \\
& a_{31} & a_{32} & a_{33} & a_{34} & \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\
- & C_1 & \Cdots & & C_4 &
+ & C_1 & \Cdots & & C_4 &
\end{pNiceMatrix}$
\end{Verbatim}
%
@@ -2040,14 +2123,14 @@ L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\
\Vdots & a_{21} & a_{22} & a_{23} & a_{24} & \Vdots \\
& a_{31} & a_{32} & a_{33} & a_{34} & \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\
- & C_1 & \Cdots & & C_4 &
+ & C_1 & \Cdots & & C_4 &
\end{pNiceMatrix}\]
\medskip
Les lignes pointillées ont été tracées avec les outils qui seront présentés p.~\pageref{Cdots}.
-\bigskip
+\medskip
Il y a plusieurs remarques à formuler.
%
\begin{itemize}[beginpenalty=10000]
@@ -2088,7 +2171,7 @@ C'est ce que nous ferons dans la suite.
-\bigskip
+\medskip
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
@@ -2106,7 +2189,7 @@ L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\
\hline
& a_{31} & a_{32} & a_{33} & a_{34} & \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\
- & C_1 & \Cdots & & C_4 &
+ & C_1 & \Cdots & & C_4 &
\end{pNiceArray}$
\end{Verbatim}
%
@@ -2123,7 +2206,7 @@ L_1 & a_{11} & a_{12} & a_{13} & a_{14} & L_1 \\
\hline
& a_{31} & a_{32} & a_{33} & a_{34} & \\
L_4 & a_{41} & a_{42} & a_{43} & a_{44} & L_4 \\
- & C_1 & \multicolumn1c{\Cdots} & & C_4 &
+ & C_1 & \multicolumn1c{\Cdots} & & C_4 &
\end{pNiceArray}
\end{displaymath}
\end{scope}
@@ -2148,7 +2231,7 @@ colonne».
la commande |\\| après la «première rangée» ou avant la «dernière rangée». Le
placement des délimiteurs serait erroné. Pour contourner cette restriction, on
pourra envisager d'utiliser la commande |\SubMatrix| dans le |\CodeAfter| (cf.
-p.~\pageref{sub-matrix}).
+p.~\pageref{sub-matrix}).
\end{itemize}
@@ -2180,14 +2263,14 @@ avec l'option~|color|.\footnote{Il est aussi possible de changer la couleur de
rappeler que cela s'applique à |\Cdots|, |\Ldots|, |Vdots|, etc.) : cf.
p.~\pageref{customization}). }\par\nobreak
-\bigskip
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
\begin{bNiceMatrix}
a_1 & \Cdots & & & a_1 \\
\Vdots & a_2 & \Cdots & & a_2 \\
& \Vdots & \Ddots[color=red] \\
\\
-a_1 & a_2 & & & a_n
+a_1 & a_2 & & & a_n
\end{bNiceMatrix}
\end{BVerbatim}
$\begin{bNiceMatrix}
@@ -2195,7 +2278,7 @@ a_1 & \Cdots & & & a_1 \\
\Vdots & a_2 & \Cdots & & a_2 \\
& \Vdots & \Ddots[color=red] \\
\\
-a_1 & a_2 & & & a_n
+a_1 & a_2 & & & a_n
\end{bNiceMatrix}$
@@ -2204,67 +2287,67 @@ a_1 & a_2 & & & a_n
\interitem Pour représenter la matrice nulle, on peut choisir d'utiliser le
codage suivant :\par\nobreak
-\bigskip
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
\begin{bNiceMatrix}
0 & \Cdots & 0 \\
\Vdots & & \Vdots \\
-0 & \Cdots & 0
+0 & \Cdots & 0
\end{bNiceMatrix}
\end{BVerbatim}
$\begin{bNiceMatrix}
0 & \Cdots & 0 \\
\Vdots & & \Vdots \\
-0 & \Cdots & 0
+0 & \Cdots & 0
\end{bNiceMatrix}$
-\bigskip
+\medskip
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
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
\begin{bNiceMatrix}
0 & \Cdots & \Cdots & 0 \\
\Vdots & & & \Vdots \\
\Vdots & & & \Vdots \\
-0 & \Cdots & \Cdots & 0
+0 & \Cdots & \Cdots & 0
\end{bNiceMatrix}
\end{BVerbatim}
$\begin{bNiceMatrix}
0 & \Cdots & \Cdots & 0 \\
\Vdots & & & \Vdots \\
\Vdots & & & \Vdots \\
-0 & \Cdots & \Cdots & 0
+0 & \Cdots & \Cdots & 0
\end{bNiceMatrix}$
-\bigskip
+\medskip
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
+\medskip
En fait, dans cet exemple, il aurait été possible de tracer la même matrice plus
rapidement avec le codage suivant :\par\nobreak
-\bigskip
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
\begin{bNiceMatrix}
0 & \Cdots & & 0 \\
\Vdots & & & \\
& & & \Vdots \\
-0 & & \Cdots & 0
+0 & & \Cdots & 0
\end{bNiceMatrix}
\end{BVerbatim}
$\begin{bNiceMatrix}
0 & \Cdots & & 0 \\
\Vdots & & & \\
& & & \Vdots \\
-0 & & \Cdots & 0
+0 & & \Cdots & 0
\end{bNiceMatrix}$
-\bigskip
+\medskip
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
@@ -2279,18 +2362,18 @@ 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
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
\begin{bNiceMatrix}
0 & \Cdots & ~emphase#\Hspace*{1cm}@ & 0 \\
\Vdots & & & \Vdots \\~emphase#[1cm]@
-0 & \Cdots & & 0
+0 & \Cdots & & 0
\end{bNiceMatrix}
\end{BVerbatim}
$\begin{bNiceMatrix}
0 & \Cdots & \Hspace*{1cm} & 0 \\
\Vdots & & & \Vdots \\[1cm]
-0 & \Cdots & & 0
+0 & \Cdots & & 0
\end{bNiceMatrix}$
\subsection{L'option nullify-dots}
@@ -2302,16 +2385,16 @@ l'environnement |{pmatrix}| de \pkg{amsmath}.\par\nobreak
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
$A = \begin{pmatrix}
h & i & j & k & l & m \\
-x & & & & & x
+x & & & & & x
\end{pmatrix}$
\end{BVerbatim}
$A = \begin{pmatrix}
h & i & j & k & l & m \\
-x & & & & & x
+x & & & & & x
\end{pmatrix}$
-\bigskip
+\medskip
Si nous ajoutons des instructions |\ldots| dans la seconde rangée, la géométrie
de la matrice est modifiée.\par\nobreak
@@ -2319,15 +2402,15 @@ de la matrice est modifiée.\par\nobreak
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
$B = \begin{pmatrix}
h & i & j & k & l & m \\
-x & \ldots & \ldots & \ldots & \ldots & x
+x & \ldots & \ldots & \ldots & \ldots & x
\end{pmatrix}$
\end{BVerbatim}
$B = \begin{pmatrix}
h & i & j & k & l & m \\
-x & \ldots & \ldots & \ldots & \ldots & x
+x & \ldots & \ldots & \ldots & \ldots & x
\end{pmatrix}$
-\bigskip
+\medskip
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
@@ -2336,15 +2419,15 @@ changée.\par\nobreak
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
$C = \begin{pNiceMatrix}
h & i & j & k & l & m \\
-x & \Ldots & \Ldots & \Ldots & \Ldots & x
+x & \Ldots & \Ldots & \Ldots & \Ldots & x
\end{pNiceMatrix}$
\end{BVerbatim}
$C = \begin{pNiceMatrix}
h & i & j & k & l & m \\
-x & \Ldots & \Ldots & \Ldots & \Ldots & x
+x & \Ldots & \Ldots & \Ldots & \Ldots & x
\end{pNiceMatrix}$
-\bigskip
+\medskip
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
@@ -2354,12 +2437,12 @@ seule instruction |\Ldots| suffit).\par\nobreak
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
$D = \begin{pNiceMatrix}[~emphase#nullify-dots@]
h & i & j & k & l & m \\
-x & \Ldots & & & & x
+x & \Ldots & & & & x
\end{pNiceMatrix}$
\end{BVerbatim}
$D = \begin{pNiceMatrix}[nullify-dots]
h & i & j & k & l & m \\
-x & \Ldots & & & & x
+x & \Ldots & & & & x
\end{pNiceMatrix}$
\medskip
@@ -2385,17 +2468,17 @@ $\begin{pNiceMatrix}
1 & 2 & 3 & 4 & 5 \\
1 & ~emphase#\Hdotsfor{3}@ & 5 \\
1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5
+1 & 2 & 3 & 4 & 5
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}
1 & 2 & 3 & 4 & 5 \\
1 & \Hdotsfor{3} & 5 \\
1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5
+1 & 2 & 3 & 4 & 5
\end{pNiceMatrix}$
-\bigskip
+\medskip
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).
@@ -2405,14 +2488,14 @@ $\begin{pNiceMatrix}
1 & 2 & 3 & 4 & 5 \\
& ~emphase#\Hdotsfor{3}@ \\
1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5
+1 & 2 & 3 & 4 & 5
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}
1 & 2 & 3 & 4 & 5 \\
& \Hdotsfor{3} \\
1 & 2 & 3 & 4 & 5 \\
-1 & 2 & 3 & 4 & 5
+1 & 2 & 3 & 4 & 5
\end{pNiceMatrix}$
\medskip
@@ -2423,27 +2506,27 @@ commande |\Hdotsfor| est utilisable même lorsque l'extension
est chargée (mais vous risquez d'avoir des problèmes si vous utilisez
|\rowcolor| sur la même rangée que |\Hdotsfor|).
-\bigskip
+\medskip
L'extension \pkg{nicematrix} propose aussi une commande |\Vdotsfor| similaire à
|\Hdotsfor| mais traçant des lignes verticales.
-\bigskip
+\medskip
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]
+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]
+\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}\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] & \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]
+\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}
@@ -2451,11 +2534,11 @@ C[a_n^{(p)},a_1] & \Cdots & C[a_n^{(p)},a_n]
\[\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 \\
+\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}\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 \\
+\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}\]
@@ -2476,7 +2559,7 @@ points de suspension, on peut souhaiter utiliser les lignes pointillées de
\smallskip
\begin{itemize}
-\item L'option |renew-dots|\par\nobreak
+\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
@@ -2485,17 +2568,17 @@ environnements de \pkg{nicematrix} et agissent alors comme |\Ldots|, |\Cdots|,
suspension «automatiques» de |amsmath|) est aussi redéfinie et se comporte comme
|\Ldots|.
-\item L'option |renew-matrix|\par\nobreak
+\item L'option |renew-matrix|\par\nobreak
Avec cette option, l'environnement |{matrix}| est redéfini et se comporte comme
|{NiceMatrix}| et il en est de même pour les cinq variantes.
\end{itemize}
-\bigskip
+\medskip
Par conséquent, avec les options |renew-dots| et |renew-matrix|, un code classique donne directement
le résultat fourni par \pkg{nicematrix}.\par\nobreak
-\bigskip
+\medskip
\begin{scope}
\NiceMatrixOptions{renew-dots,renew-matrix}
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
@@ -2529,13 +2612,13 @@ mathématique avec |\scriptstyle|.
$\begin{bNiceMatrix}
1 & \hspace*{1cm} & 0 \\[8mm]
& ~emphase#\Ddots^{n \text{ fois}}@ & \\
-0 & & 1
+0 & & 1
\end{bNiceMatrix}$
\end{BVerbatim}
$\begin{bNiceMatrix}
1 & \hspace*{1cm} & 0 \\[8mm]
& \Ddots^{n \text{ fois}} & \\
-0 & & 1
+0 & & 1
\end{bNiceMatrix}$
\subsection{Personnalisation des lignes en pointillés}
@@ -2549,7 +2632,7 @@ options (que l'on met entre crochets après la commande) :
%
\begin{itemize}
\item |color| ;
-\item |shorten| ;
+\item |shorten| ;
\item |line-style|.
\end{itemize}
@@ -2559,13 +2642,13 @@ de |\CodeAfter|, ou bien au niveau d'un environnement mais elles doivent alors
%
\begin{itemize}
\item |xdots/color| ;
-\item |xdots/shorten| ;
+\item |xdots/shorten| ;
\item |xdots/line-style|.
\end{itemize}
%
Pour la clarté, dans la suite, on utilisera ces noms-là.
-\bigskip
+\medskip
\textbf{L'option xdots/color}\par\nobreak
\smallskip
@@ -2575,7 +2658,7 @@ extérieures (décrites plus loin) bénéficient d'un régime spécial : cf.
p.~\pageref{exterior}.
-\bigskip
+\medskip
\textbf{L'option xdots/shorten}\par\nobreak
\smallskip
@@ -2586,7 +2669,7 @@ valeur initiale de ce paramètre est de $0.3$~em (il est conseillé d'utiliser u
unité de mesure dépendante de la fonte courante).
-\bigskip
+\medskip
\textbf{L'option xdots/line-style}\par\nobreak
\smallskip
@@ -2603,7 +2686,7 @@ Il faut savoir que, par défaut, les lignes de Tikz tracées avec le paramètre
\end{BVerbatim}
\tikz \draw [dotted] (0,0) -- (5,0) ;
-\bigskip
+\medskip
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
@@ -2611,10 +2694,10 @@ Voulant proposer des lignes avec des points ronds dans le style de celui de
appelé le style |standard|. Cette valeur est la valeur initiale du paramètre
|xdots/line-style|.
-\bigskip
+\medskip
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|»,
+d'options Tikz applicables à un chemin (à l'exception de «|color|»,
«|shorten >|» et «|shorten <|»).
\medskip
@@ -2623,7 +2706,7 @@ Voici par exemple une matrice tridiagonale avec le style |loosely dotted| :\par\
\medskip
\begin{BVerbatim}[baseline=c]
$\begin{pNiceMatrix}[nullify-dots,~emphase#xdots/line-style=loosely dotted@]
-a & b & 0 & & \Cdots & 0 \\
+a & b & 0 & & \Cdots & 0 \\
b & a & b & \Ddots & & \Vdots \\
0 & b & a & \Ddots & & \\
& \Ddots & \Ddots & \Ddots & & 0 \\
@@ -2634,7 +2717,7 @@ b & a & b & \Ddots & & \Vdots \\
\[\begin{pNiceMatrix}[nullify-dots,xdots/line-style=loosely dotted]
-a & b & 0 & & \Cdots & 0 \\
+a & b & 0 & & \Cdots & 0 \\
b & a & b & \Ddots & & \Vdots \\
0 & b & a & \Ddots & & \\
& \Ddots & \Ddots & \Ddots & & 0 \\
@@ -2681,18 +2764,18 @@ sera exécuté \emph{après} la construction 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|. Bien que ce soit un mot-clé, |\CodeAfter| accepte
-quand même un argument optionnel (entre crochets). Les clés autorisées forment
-un sous-ensemble des clés acceptées par |\NiceMatrixOptions|.
+après le mot-clé |\CodeAfter|. Bien que ce soit un mot-clé, |\CodeAfter|
+accepte quand même un argument optionnel (entre crochets). Les clés autorisées
+forment un sous-ensemble des clés acceptées par |\NiceMatrixOptions|.
\medskip
Les utilisateurs expérimentés peuvent, en particulier, utiliser les nœuds
PGF/Tikz créés par \pkg{nicematrix} dans le |\CodeAfter|. Ces nœuds sont décrits
à partir de la page \pageref{PGF-nodes}.
-
+
\medskip
Par ailleurs, deux commandes spéciales sont disponibles dans le |\CodeAfter| :
-|\line| et |\SubMatrix|.
+|\line| et |\SubMatrix|. On va maintenant détailler ces deux commandes.
\subsection{La commande \textbackslash line dans le \textbackslash CodeAfter}
@@ -2703,7 +2786,7 @@ 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. Les options disponibles pour personnaliser les lignes pointillées créées par
|\Cdots|, |\Vdots|, etc. peuvent aussi être passées à cette commande (cf.
-p.~\pageref{customization}).
+p.~\pageref{customization}).
\medskip
Cette commande peut par exemple être utilisée pour tracer une ligne entre deux
@@ -2731,7 +2814,7 @@ I & 0 & \Cdots &0 \\
\end{pNiceMatrix}$
\end{scope}
-\bigskip
+\medskip
Elle peut aussi être utilisée pour tracer une ligne diagonale non parallèle aux
autres lignes diagonales (par défaut, les lignes tracées par |\Ddots| sont
«parallélisées» : cf.~p.~\pageref{parallelization}).
@@ -2742,7 +2825,7 @@ autres lignes diagonales (par défaut, les lignes tracées par |\Ddots| sont
1 & \Cdots & & 1 & 2 & \Cdots & 2 \\
0 & \Ddots & & \Vdots & \Vdots & \hspace*{2.5cm} & \Vdots \\
\Vdots & \Ddots & & & & & \\
-0 & \Cdots & 0 & 1 & 2 & \Cdots & 2
+0 & \Cdots & 0 & 1 & 2 & \Cdots & 2
~emphase#\CodeAfter \line[shorten=6pt]{1-5}{4-7}@
\end{bNiceMatrix}
\end{BVerbatim}
@@ -2750,7 +2833,7 @@ autres lignes diagonales (par défaut, les lignes tracées par |\Ddots| sont
1 & \Cdots & & 1 & 2 & \Cdots & 2 \\
0 & \Ddots & & \Vdots & \Vdots & \hspace*{2.5cm} & \Vdots \\
\Vdots & \Ddots & & & & & \\
-0 & \Cdots & 0 & 1 & 2 & \Cdots & 2
+0 & \Cdots & 0 & 1 & 2 & \Cdots & 2
\CodeAfter \line[shorten=6pt]{1-5}{4-7}
\end{bNiceMatrix}\]
@@ -2793,7 +2876,7 @@ colonne avec |@{\hspace{1.5em}}| dans le préambule du tableau.
\[\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
+ 1 & 2 & 3 & z
\CodeAfter
~emphase#\SubMatrix({1-1}{3-3})+
~emphase#\SubMatrix({1-4}{3-4})+
@@ -2803,16 +2886,16 @@ colonne avec |@{\hspace{1.5em}}| dans le préambule du tableau.
$\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
+ 1 & 2 & 3 & z
\CodeAfter
\SubMatrix({1-1}{3-3})
\SubMatrix({1-4}{3-4})
\end{NiceArray}$
-\bigskip
-\colorbox{yellow!50}{\bfseries Nouveau 5.18}\enskip La commande |\SubMatrix|
-accepte en fait également deux arguments optionnels spécifiés par les symboles
-traditionnels |^| et |_| pour des éléments en exposant et en indice.
+\medskip
+La commande |\SubMatrix| accepte en fait également deux arguments optionnels
+spécifiés par les symboles traditionnels |^| et |_| pour des éléments en
+exposant et en indice.
\medskip
\begin{scope}
@@ -2821,7 +2904,7 @@ traditionnels |^| et |_| pour des éléments en exposant et en indice.
$\begin{bNiceMatrix}[right-margin=1em]
1 & 1 & 1 \\
1 & a & b \\
-1 & c & d
+1 & c & d
\CodeAfter
~emphase#\SubMatrix[{2-2}{3-3}]^{T}@
\end{bNiceMatrix}$
@@ -2829,14 +2912,14 @@ $\begin{bNiceMatrix}[right-margin=1em]
$\begin{bNiceMatrix}[right-margin=1em]
1 & 1 & 1 \\
1 & a & b \\
-1 & c & d
+1 & c & d
\CodeAfter
\SubMatrix[{2-2}{3-3}]^{T}
\end{bNiceMatrix}$
\end{scope}
-\bigskip
+\medskip
Les clés disponibles pour la commande |\SubMatrix| sont les suivantes :
%
\begin{itemize}
@@ -2861,13 +2944,13 @@ verticaux sont tracés) ;
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
+\medskip
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
+\medskip
\begin{scope}
\hfuzz=12cm
\fvset{commandchars=\~\#\!}%
@@ -2877,9 +2960,9 @@ $\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
& & \frac14 \\[1mm]
a & b & \frac12a+\frac14b \\
c & d & \frac12c+\frac14d \\
-\CodeAfter
- \SubMatrix({1-3}{2-3})
- \SubMatrix({3-1}{4-2})
+\CodeAfter
+ \SubMatrix({1-3}{2-3})
+ \SubMatrix({3-1}{4-2})
\SubMatrix({3-3}{4-3})
\end{NiceArray}$
\end{BVerbatim}
@@ -2915,7 +2998,7 @@ c & d & \frac12c+\frac14d \\
\end{NiceArray}$
\end{BVerbatim}
\end{scope}
-%
+%
$\begin{NiceArray}{cc@{\hspace{5mm}}l}[cell-space-limits=2pt]
& & \frac12 \\
& & \frac14 \\[1mm]
@@ -2928,12 +3011,12 @@ c & d & \frac12c+\frac14d \\
\end{NiceArray}$
-\bigskip
+\medskip
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}.
-\bigskip
+\medskip
Il est également possible de spécifier des délimiteurs\footnote{Les délimiteurs
en question sont |(|, |[| et |\{| et les fermants correspondants.
On peut bien sûr aussi mettre des \verb+|+ et des \verb+||+ dans le
@@ -2950,14 +3033,14 @@ automatiquement.
$\begin{pNiceArray}{~emphase#(c)(c)(c)@}
a_{11} & a_{12} & a_{13} \\
a_{21} & \displaystyle \int_0^1\dfrac{1}{x^2+1}\,dx & a_{23} \\
-a_{31} & a_{32} & a_{33}
+a_{31} & a_{32} & a_{33}
\end{pNiceArray}$
\end{BVerbatim}
\[\begin{pNiceArray}{(c)(c)(c)}
a_{11} & a_{12} & a_{13} \\
a_{21} & \displaystyle \int_0^1\dfrac{1}{x^2+1}\,dx & a_{23} \\
-a_{31} & a_{32} & a_{33}
+a_{31} & a_{32} & a_{33}
\end{pNiceArray}\]
@@ -3004,7 +3087,7 @@ permet de spécifier des notes qui seront composées à la fin du tableau avec u
longueur de ligne égale à la largeur du tableau (hors éventuelles colonnes
extérieures). Sans surprise, cette commande n'est disponible que dans les
environnements sans délimiteurs, c'est-à-dire |{NiceTabular}|, |{NiceArray}| et
-|{NiceMatrix}|.
+|{NiceMatrix}|.
En fait, cette commande n'est disponible que si l'extension \pkg{enumitem} a été
chargée (avant ou après \pkg{nicematrix}). Les notes sont en effet composées en
@@ -3033,9 +3116,9 @@ Dupont & Chantal & 15 janvier 1998 \\
\toprule \RowStyle{\bfseries}
Nom & Prénom & Date de naissance \\
\midrule
-Achard\tabularnote{La famille Achard est une très ancienne famille du Poitou.}
+Achard\tabularnote{La famille Achard est une très ancienne famille du Poitou.}
& Jacques & 5 juin 1962 \\
-Lefebvre\tabularnote{Le patronyme Lefebvre est une altération de Lefébure.}
+Lefebvre\tabularnote{Le patronyme Lefebvre est une altération de Lefébure.}
& Mathilde & 23 mai 1988 \\
Vanesse & Stéphanie & 30 octobre 1994 \\
Dupont & Chantal & 15 janvier 1998 \\
@@ -3045,7 +3128,7 @@ Dupont & Chantal & 15 janvier 1998 \\
-\bigskip
+\medskip
\begin{itemize}
\item La commande |\tabularnote| est en fait utilisable avant
l'environnement de \pkg{nicematrix}, le but étant de pouvoir l'utiliser sur le
@@ -3138,13 +3221,13 @@ Wallis & John & 87 \\
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|
-\item |notes/style|
-\item |notes/label-in-tabular|
-\item |notes/label-in-list|
-\item |notes/enumitem-keys|
-\item |notes/enumitem-keys-para|
+\item |notes/para|
+\item |notes/bottomrule|
+\item |notes/style|
+\item |notes/label-in-tabular|
+\item |notes/label-in-list|
+\item |notes/enumitem-keys|
+\item |notes/enumitem-keys-para|
\item |notes/code-before|
\end{itemize}
Pour la commmodité, il est aussi possible de fixer ces clés dans
@@ -3155,12 +3238,12 @@ paires \textsl{clé=valeur} où le nom des clés n'a plus à être préfixé par
\begin{BVerbatim}[formatcom = \small \color{gray}]
\NiceMatrixOptions
{
- notes =
+ notes =
{
bottomrule ,
style = ... ,
label-in-tabular = ... ,
- enumitem-keys =
+ enumitem-keys =
{
labelsep = ... ,
align = ... ,
@@ -3175,12 +3258,12 @@ paires \textsl{clé=valeur} où le nom des clés n'a plus à être préfixé par
-\bigskip
+\medskip
On détaille maintenant ces clés.
\begin{itemize}[itemsep=\medskipamount]
\item La clé |notes/para| demande la composition des notes en fin de tableau en un seul
-paragraphe.
+paragraphe.
Valeur initiale : |false|
@@ -3201,7 +3284,7 @@ utilisé par |\ref| pour faire référence à une note de tableau pour laquelle
utilisé un |\label|. Ce sont les labels mis en forme avec ce style qui sont
séparés par des virgules quand on utilise plusieurs commandes |\tabularnote|
successivement. Le marqueur |#1| est censé correspondre à un nom de compteur
-LaTeX.
+LaTeX.
Valeur initiale : |\textit{\alph{#1}}|
@@ -3282,7 +3365,7 @@ dernière est une commande de \pkg{ragged2e}).
-\bigskip
+\medskip
Pour un exemple de personnalisation des notes de tableau, voir p.~\pageref{ex:notes}.
@@ -3296,7 +3379,7 @@ suivant (avec une version de LaTeX postérieure à 2020/10/01).
\begin{Verbatim}[commandchars=\~\#\!]
\makeatletter
\AddToHook{env/threeparttable/begin}
- {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}\TPT@hookin{NiceTabularX}}
+ {\TPT@hookin{NiceTabular}\TPT@hookin{NiceTabular*}\TPT@hookin{NiceTabularX}}
\makeatother
\end{Verbatim}
@@ -3308,7 +3391,7 @@ suivant (avec une version de LaTeX postérieure à 2020/10/01).
Si l'extension \pkg{siunitx} est chargée (avant ou après \pkg{nicematrix}), il est possible d'utiliser les colonnes
de type |S| de \pkg{siunitx} dans les environnements de \pkg{nicematrix}. L'implémentation n'utilise explicitement
-aucune macro privée de \pkg{siunitx}.
+aucune macro privée de \pkg{siunitx}.
\medskip
\begin{BVerbatim}[baseline = c, boxwidth = 10.6cm]
@@ -3317,7 +3400,7 @@ $\begin{pNiceArray}{~emphase#S@cW{c}{1cm}c}[nullify-dots,first-row]
2.3 & 0 & \Cdots & 0 \\
12.4 & \Vdots & & \Vdots \\
1.45 \\
-7.2 & 0 & \Cdots & 0
+7.2 & 0 & \Cdots & 0
\end{pNiceArray}$
\end{BVerbatim}
$\begin{pNiceArray}{ScW{c}{1cm}c}[nullify-dots,first-row]
@@ -3325,7 +3408,7 @@ $\begin{pNiceArray}{ScW{c}{1cm}c}[nullify-dots,first-row]
2.3 & 0 & \Cdots & 0 \\
12.4 & \Vdots & & \Vdots \\
1.45 \\
-7.2 & 0 & \Cdots & 0
+7.2 & 0 & \Cdots & 0
\end{pNiceArray}$
\medskip
@@ -3346,12 +3429,12 @@ colonnes alignées à gauche ou à droite.
\begin{BVerbatim}[baseline=c,boxwidth=10cm]
$\begin{bNiceMatrix}[r]
\cos x & - \sin x \\
-\sin x & \cos x
+\sin x & \cos x
\end{bNiceMatrix}$
\end{BVerbatim}
$\begin{bNiceMatrix}[r]
\cos x & - \sin x \\
-\sin x & \cos x
+\sin x & \cos x
\end{bNiceMatrix}$
@@ -3360,13 +3443,13 @@ $\begin{bNiceMatrix}[r]
\label{rotate}
-Utilisée au début d'une case, la commande |\rotate| (fournie par \pkg{nicematrix}) compose le contenu après une
-rotation de 90° dans le sens direct.
+Utilisée au début d'une case, la commande |\rotate| (fournie par \pkg{nicematrix}) compose le contenu après une
+rotation de 90° dans le sens direct.
Dans l'exemple suivant, on l'utilise dans le |code-for-first-row|.\footnote{On
peut aussi l'utiliser dans |\RowStyle| (cf. p.~\pageref{RowStyle}).}
-\bigskip
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=12cm]
\NiceMatrixOptions%
@@ -3376,7 +3459,7 @@ $A = \begin{pNiceMatrix}[first-row,last-col=4]
e_1 & e_2 & e_3 \\
1 & 2 & 3 & e_1 \\
4 & 5 & 6 & e_2 \\
-7 & 8 & 9 & e_3
+7 & 8 & 9 & e_3
\end{pNiceMatrix}$
\end{BVerbatim}
\begin{varwidth}{10cm}
@@ -3391,11 +3474,11 @@ e_1 & e_2 & e_3 \\
\end{pNiceMatrix}$
\end{varwidth}
-\bigskip
+\medskip
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
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=12cm]
\NiceMatrixOptions%
{code-for-last-row = \scriptstyle ~emphase#\rotate@ ,
@@ -3404,7 +3487,7 @@ $A = \begin{pNiceMatrix}[last-row,last-col=4]
1 & 2 & 3 & e_1 \\
4 & 5 & 6 & e_2 \\
7 & 8 & 9 & e_3 \\
-\text{image de } e_1 & e_2 & e_3
+\text{image de } e_1 & e_2 & e_3
\end{pNiceMatrix}$
\end{BVerbatim}
\begin{varwidth}{10cm}
@@ -3415,7 +3498,7 @@ $A = \begin{pNiceMatrix}[last-row,last-col=4]
1 & 2 & 3 & e_1 \\
4 & 5 & 6 & e_2 \\
7 & 8 & 9 & e_3 \\
-\text{image de } e_1 & e_2 & e_3
+\text{image de } e_1 & e_2 & e_3
\end{pNiceMatrix}$
\end{varwidth}
@@ -3429,27 +3512,27 @@ 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
+\medskip
\begin{Verbatim}
-$\begin{bNiceArray}{cccc|c}[~emphase#small@,
- last-col,
- code-for-last-col = \scriptscriptstyle,
- columns-width = 3mm ]
+$\begin{bNiceArray}{cccc|c}[~emphase#small@,
+ last-col,
+ code-for-last-col = \scriptscriptstyle,
+ columns-width = 3mm ]
1 & -2 & 3 & 4 & 5 \\
0 & 3 & 2 & 1 & 2 & L_2 \gets 2 L_1 - L_2 \\
-0 & 1 & 1 & 2 & 3 & L_3 \gets L_1 + L_3
+0 & 1 & 1 & 2 & 3 & L_3 \gets L_1 + L_3
\end{bNiceArray}$
\end{Verbatim}
%
\[\begin{bNiceArray}{cccc|c}[small, last-col, code-for-last-col = \scriptscriptstyle, columns-width=3mm]
1 & -2 & 3 & 4 & 5 \\
0 & 3 & 2 & 1 & 2 & L_2 \gets 2 L_1 - L_2 \\
-0 & 1 & 1 & 2 & 3 & L_3 \gets L_1 + L_3
+0 & 1 & 1 & 2 & 3 & L_3 \gets L_1 + L_3
\end{bNiceArray}\]
-\bigskip
+\medskip
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}|
@@ -3459,9 +3542,9 @@ directement sur un |\halign| de TeX).
\medskip
En fait, l'option |small| correspond aux réglages suivants :
\begin{itemize}
-\item les composantes du tableau sont composées en |\scriptstyle| ;
-\item |\arraystretch| est fixé à $0.47$ ;
-\item |\arraycolsep| est fixé à $1.45$~pt ;
+\item les composantes du tableau sont composées en |\scriptstyle| ;
+\item |\arraystretch| est fixé à $0.47$ ;
+\item |\arraycolsep| est fixé à $1.45$~pt ;
\item les caractéristiques des lignes en pointillés sont également modifiées.
\end{itemize}
@@ -3508,7 +3591,7 @@ 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
+\medskip
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|,
@@ -3553,7 +3636,7 @@ b \cos a+\cos b { 2 \cos b }
\end{bNiceMatrix}$
\end{BVerbatim}
\end{scope}
-%
+%
$\begin{bNiceMatrix}[light-syntax,first-row,first-col]
{} a b ;
a 2\cos a {\cos a + \cos b} ;
@@ -3578,18 +3661,18 @@ d'éléments en verbatim (avec par exemple la commande
Pour les environnements avec délimiteurs (|{pNiceArray}|, |{pNiceMatrix}|,
etc.), il est possible de changer la couleur des délimiteurs avec la clé
-|delimiters/color|.
+|delimiters/color|.
\medskip
\begin{BVerbatim}[boxwidth=12cm,baseline=c]
$\begin{bNiceMatrix}[delimiters/color=red]
1 & 2 \\
-3 & 4
+3 & 4
\end{bNiceMatrix}$
\end{BVerbatim}
$\begin{bNiceMatrix}[delimiters/color=red]
1 & 2 \\
-3 & 4
+3 & 4
\end{bNiceMatrix}$
\medskip
@@ -3612,7 +3695,7 @@ $\begin{~emphase#NiceArrayWithDelims@}
{\downarrow}{\uparrow}{ccc}[margin]
1 & 2 & 3 \\
4 & 5 & 6 \\
-7 & 8 & 9
+7 & 8 & 9
\end{~emphase#NiceArrayWithDelims@}$
\end{BVerbatim}
%
@@ -3620,7 +3703,7 @@ $\begin{NiceArrayWithDelims}
{\downarrow}{\uparrow}{ccc}[margin]
1 & 2 & 3 \\
4 & 5 & 6 \\
-7 & 8 & 9
+7 & 8 & 9
\end{NiceArrayWithDelims}$
@@ -3638,7 +3721,7 @@ 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
-\textbf{Attention} : Par défaut, aucun nœud n'est créé dans une case vide.
+\textbf{Attention} : Par défaut, aucun nœud n'est créé dans une case vide.
\smallskip
Néanmoins, on peut forcer la création d'un nœud avec la commande |\NotEmpty|.\footnote{Il faut toutefois remarquer qu'avec cette commande, la
@@ -3646,7 +3729,7 @@ Néanmoins, on peut forcer la création d'un nœud avec la commande |\NotEmpty|.
lignes pointillées (cf.~p.~\pageref{Cdots}) et la déterminations des «coins»
(cf. p.~\pageref{corners}).}
-\bigskip
+\medskip
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
@@ -3670,31 +3753,31 @@ case considérée. On peut les utiliser avec \textsc{pgf} mais l'utilisateur fin
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éfaut.
Dans les exemples qui suivent, on suppose que Tikz a été chargé par
-l'utilisateur.
+l'utilisateur.
-\bigskip
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=11cm]
$\begin{pNiceMatrix}[name=~emphase#ma-matrice@]
1 & 2 & 3 \\
4 & 5 & 6 \\
-7 & 8 & 9
+7 & 8 & 9
\end{pNiceMatrix}$
-\tikz[remember picture,overlay]
- \draw ~emphase#(ma-matrice-2-2)@ circle (2mm) ;
+\tikz[remember picture,overlay]
+ \draw ~emphase#(ma-matrice-2-2)@ circle (2mm) ;
\end{BVerbatim}
$\begin{pNiceMatrix}[name=ma-matrice]
1 & 2 & 3 \\
4 & 5 & 6 \\
-7 & 8 & 9
+7 & 8 & 9
\end{pNiceMatrix}$
-\tikz[remember picture,overlay]
- \draw (ma-matrice-2-2) circle (2mm) ;
+\tikz[remember picture,overlay]
+ \draw (ma-matrice-2-2) circle (2mm) ;
\medskip
Ne pas oublier les options |remember picture| et |overlay|.
-\bigskip
+\medskip
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.
@@ -3705,22 +3788,22 @@ préciser l'environnement qui est évidemment l'environnement courant.
$\begin{pNiceMatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
-7 & 8 & 9
+7 & 8 & 9
\CodeAfter
-\tikz \draw ~emphase#(2-2)@ circle (2mm) ;
+\tikz \draw ~emphase#(2-2)@ circle (2mm) ;
\end{pNiceMatrix}$
\end{BVerbatim}
$\begin{pNiceMatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
-7 & 8 & 9
+7 & 8 & 9
\CodeAfter
-\tikz \draw (2-2) circle (2mm) ;
+\tikz \draw (2-2) circle (2mm) ;
\end{pNiceMatrix}$
-\bigskip
+\medskip
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}).
@@ -3741,10 +3824,52 @@ explique plus loin la technique utilisée : cf. p. \pageref{highlight}).
\Body
a & a + b & a + b + c \\
a & a & a + b \\
-a & a & a
+a & a & a
\end{pNiceMatrix}\]
+\colorbox{yellow!50}{\textbf{Nouveau 6.3}}\enskip Les nœuds de la dernière
+colonne (hors éventuelle «colonne extérieure» spécifiée par |last-col|) peuvent
+aussi être désignés par $i$-|last|. De même, les nœuds de la dernière ligne
+peuvent être désignés par |last|-$j$.
+
+\medskip
+\subsubsection{Les colonnes V de varwidth}
+
+\label{node-V}
+Quand l'extension \pkg{varwidth} est chargée, les colonnes de type |V| définies
+par \pkg{varwidth} sont prises en charge par \pkg{nicematrix}. Il peut être
+intéressant de préciser que, pour une cellule située dans une colonne de type
+|V|, le nœud PGF/Tikz créé par \pkg{nicematrix} pour le contenu de cette cellule
+a une largeur ajustée au contenu de cette cellule. Cela est en contraste avec le
+cas des colonnes de type |p|, |m| ou |b| dans lesquelles les nœuds ont toujours
+une largeur égale à la largeur de la colonne.
+
+\begin{Verbatim}
+\begin{NiceTabular}{V{8cm}}
+\bfseries \large
+Titre \\
+\lipsum[1]
+\CodeAfter
+ \tikz \draw [rounded corners] (1-1) -| (last-|2) -- (last-|1) |- (1-1) ;
+\end{NiceTabular}
+\end{Verbatim}
+
+\begin{center}
+\begin{NiceTabular}{V{8cm}}
+\bfseries \large
+Titre \\
+\lipsum[1]
+\CodeAfter
+ \tikz \draw [rounded corners] (1-1) -| (last-|2) -- (last-|1) |- (1-1) ;
+\end{NiceTabular}
+\end{center}
+
+On a utilisé les nœuds indiquant la position des filets, qui sont présentés un
+peu plus loin, p.~\pageref{nodes-i}.
+
+
+
\subsection{Les «nœuds moyens» et les «nœuds larges»}
@@ -3766,7 +3891,7 @@ moyens». Nous considérons que cet exemple se suffit à lui-même comme défini
de ces nœuds.
\[\begin{pNiceMatrix}[create-medium-nodes]
\CodeBefore [create-cell-nodes]
- \begin{tikzpicture}
+ \begin{tikzpicture}
[every node/.style = {fill = red!15, inner sep = 0 pt},
name suffix = -medium]
\node [fit = (1-1)] {} ;
@@ -3782,7 +3907,7 @@ de ces nœuds.
\Body
a & a + b & a + b + c \\
a & a & a + b \\
-a & a & a
+a & a & a
\end{pNiceMatrix}\]
@@ -3812,7 +3937,7 @@ de ces nÅ“uds.\footnote{Il n'y a pas de «nÅ“uds larges» créés dans les rangÃ
\Body
a & a + b & a + b + c \\
a & a & a + b \\
-a & a & a
+a & a & a
\end{pNiceMatrix}\]
@@ -3845,7 +3970,7 @@ utilisé les options |left-margin| et |right-margin|.\footnote{Les options
\Body
a & a + b & a + b + c \\
a & a & a + b \\
-a & a & a
+a & a & a
\end{pNiceMatrix}\]
\medskip
@@ -3872,15 +3997,15 @@ incorporées dans les «nœuds larges». Dans l'exemple suivant, nous avons util
\Body
a & a + b & a + b + c \\
a & a & a + b \\
-a & a & a
+a & a & a
\end{pNiceMatrix}\]
-\bigskip
+\medskip
\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
+\medskip
\begin{minipage}[c]{7.5cm}
Voici un tableau qui a été composé de la manière suivante :
@@ -3964,7 +4089,7 @@ du tableau proprement dit).
\subsection{Les nœuds indiquant la position des filets}
-\label{noeuds-i}
+\label{nodes-i}
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
@@ -3980,21 +4105,21 @@ Ces nœuds sont accessibles dans le
\begin{NiceTabular}{ccc}[hvlines,rules={width=1pt,color=gray}]
& tulipe & lys \\
arum & & violette mauve \\
-muguet & dahlia
+muguet & dahlia
\CodeAfter
\tiny
\begin{tikzpicture}
\foreach \i in {1,1.5,2,2.5,3,3.5,4}
- {
- \fill [red] (\i) circle (0.5mm) ;
- \node [red,above right] at (\i) {\i} ;
- }
+ {
+ \fill [red] (\i) circle (0.5mm) ;
+ \node [red,above right] at (\i) {\i} ;
+ }
\end{tikzpicture}
\end{NiceTabular}
\end{center}
-\bigskip
+\medskip
Si on utilise Tikz (on rappelle que \pkg{nicematrix} ne charge pas Tikz mais
uniquement \textsc{pgf} qui est une sous-couche de Tikz), on peut donc accéder
(dans le |\CodeAfter| mais aussi dans le |\CodeBefore|) à l'intersection du filet
@@ -4018,7 +4143,7 @@ horizontal~$i$ et du filet vertical~$j$ avec la syntaxe |(|$i$\verb+-|+$j$|)|.
1 & 8 & 28 & 56 & 70 & 56 & 28 & 8 & 1
\end{NiceMatrix}
\end{Verbatim}
-%
+%
\[\begin{NiceMatrix}
\CodeBefore
\tikz \draw [fill=red!15] (7-|4) |- (8-|5) |- (9-|6) |- cycle ;
@@ -4034,7 +4159,7 @@ horizontal~$i$ et du filet vertical~$j$ avec la syntaxe |(|$i$\verb+-|+$j$|)|.
1 & 8 & 28 & 56 & 70 & 56 & 28 & 8 & 1
\end{NiceMatrix}\]
-\bigskip
+\medskip
Les nœuds de la forme $i$|.5| peuvent être utilisés par exemple pour barrer une
ligne (si on a chargé Tikz).
@@ -4043,16 +4168,16 @@ ligne (si on a chargé Tikz).
$\begin{pNiceArray}{ccc|c}
2 & 1 & 3 & 0 \\
3 & 3 & 1 & 0 \\
-3 & 3 & 1 & 0
-\CodeAfter
+3 & 3 & 1 & 0
+\CodeAfter
\tikz \draw [red] (~emphase#3.5@-|1) -- (~emphase#3.5@-|last) ;
\end{pNiceArray}$
\end{BVerbatim}
$\begin{pNiceArray}{ccc|c}
2 & 1 & 3 & 0 \\
3 & 3 & 1 & 0 \\
-3 & 3 & 1 & 0
-\CodeAfter
+3 & 3 & 1 & 0
+\CodeAfter
\tikz \draw [red] (3.5-|1) -- (3.5-|last) ;
\end{pNiceArray}$
@@ -4062,7 +4187,7 @@ $\begin{pNiceArray}{ccc|c}
\label{node-sub-matrix}
La commande |\SubMatrix| disponible dans le |\CodeAfter| a été présentée
-p.~\pageref{sub-matrix}.
+p.~\pageref{sub-matrix}.
\smallskip
Si une commande |\SubMatrix| est utilisée avec la clé |name| sous la forme
@@ -4109,7 +4234,7 @@ L'extension \pkg{nicematrix} fournit deux variables internes mais publiques\foot
\medskip
Ces variables constituent le code du «|code-before|» (que l'on rentre souvent
-avec la syntaxte utilisant |\CodeBefore| et |\Body| en début d'environnement et
+avec la syntaxte utilisant |\CodeBefore| et |\Body| en début d'environnement) et
du «|code-after|» (que l'on rentre souvent en fin d'environnement après le
mot-clé |\CodeAfter|). Le développeur peut donc les utiliser pour y ajouter du
code à partir d'une case du tableau (l'affectation devra être globale, ce qui
@@ -4140,17 +4265,17 @@ utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
\ExplSyntaxOn
\cs_new_protected:Nn \__pantigny_crossbox:nnn
{
- \tikz \draw [ #3 ]
- ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
- ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
+ \tikz \draw [ #3 ]
+ ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
+ ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
}
\NewDocumentCommand \crossbox { ! O { } }
{
\tl_gput_right:Nx §emphase¤\g_nicematrix_code_after_tlμ
- {
- \__pantigny_crossbox:nnn
- { \int_use:c { c@iRow } }
+ {
+ \__pantigny_crossbox:nnn
+ { \int_use:c { c@iRow } }
{ \int_use:c { c@jCol } }
{ \exp_not:n { #1 } }
}
@@ -4163,25 +4288,25 @@ utilise explicitement la variable publique |\g_nicematrix_code_after_tl|.
\ExplSyntaxOn
\cs_new_protected:Nn \__pantigny_crossbox:nnn
{
- \tikz \draw [ #3 ]
- ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
- ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
+ \tikz \draw [ #3 ]
+ ( #1 -| \int_eval:n { #2 + 1 } ) -- ( \int_eval:n { #1 + 1 } -| #2 )
+ ( #1 -| #2 ) -- ( \int_eval:n { #1 + 1 } -| \int_eval:n { #2 + 1 } ) ;
}
\NewDocumentCommand \crossbox { ! O { } }
{
\tl_gput_right:Nx \g_nicematrix_code_after_tl
- {
- \__pantigny_crossbox:nnn
- { \int_use:c { c@iRow } }
+ {
+ \__pantigny_crossbox:nnn
+ { \int_use:c { c@iRow } }
{ \int_use:c { c@jCol } }
{ \exp_not:n { #1 } }
}
}
\ExplSyntaxOff
-\bigskip
+\medskip
Voici un exemple d'utilisation :
\medskip
@@ -4189,13 +4314,13 @@ Voici un exemple d'utilisation :
\begin{NiceTabular}{ccc}[hvlines]
merlan & requin & cabillaud \\
baleine & ~emphase#\crossbox[red]@ & morue \\
-mante & raie & poule
+mante & raie & poule
\end{NiceTabular}
\end{BVerbatim}
\begin{NiceTabular}{ccc}[hvlines]
merlan & requin & cabillaud \\
baleine & \crossbox[red] & morue \\
-mante & raie & poule
+mante & raie & poule
\end{NiceTabular}
@@ -4255,7 +4380,7 @@ est sans effet.
-\subsection{Lignes diagonales}
+\subsection{Lignes diagonales}
\label{parallelization}
@@ -4270,6 +4395,8 @@ 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 :
+
+
\medskip
\begin{scope}
\begin{minipage}{9.5cm}
@@ -4290,7 +4417,7 @@ a+b & \Ddots & & \Vdots \\
a+b & \Cdots & a+b & 1
\end{pNiceMatrix}$
-\bigskip
+\medskip
\NiceMatrixOptions{parallelize-diags=true}%
\begin{minipage}{9.5cm}
\begin{Verbatim}
@@ -4309,7 +4436,7 @@ a+b & & & \Vdots \\
a+b & \Cdots & a+b & 1
\end{pNiceMatrix}$
-\bigskip
+\medskip
Il est possible de désactiver la parallélisation avec l'option
|parallelize-diags| mise à |false|: \par\nobreak
@@ -4327,7 +4454,7 @@ a+b & \Cdots & a+b & 1
\end{scope}
-\bigskip
+\medskip
On peut choisir l'instruction |\Ddots| qui sera tracée en premier (et qui
servira pour tracer les suivantes quand la parallélisation est activée) avec la
clé |draw-first| : |\Ddots[draw-first]|\rlap{.}
@@ -4339,7 +4466,7 @@ Une instruction comme |\Ldots|, |\Cdots|, etc. essaye de déterminer la premièr
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~|&|). Les règles précises sont les
-suivantes :
+suivantes :
\begin{itemize}
\item Une case implicite est vide. Par exemple, dans la matrice suivante
@@ -4347,7 +4474,7 @@ suivantes :
\begin{Verbatim}
\begin{pmatrix}
a & b \\
-c
+c
\end{pmatrix}
\end{Verbatim}
@@ -4370,7 +4497,7 @@ pointillés par \pkg{nicematrix}.
\medskip
\item Une case d'une colonne de type |p|, |m| ou |t| est toujours non vide.
-\emph{Attention} : Ne pas se fier à ce point car il est susceptible de changer.
+\emph{Attention} : Ne pas se fier à ce point car il est susceptible de changer.
\end{itemize}
@@ -4415,9 +4542,29 @@ pointillés de \pkg{nicematrix} :
\NiceMatrixOptions{letter-for-dotted-lines=;}
\end{Verbatim}
-\bigskip
+\medskip
L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{ieeeaccess}
-(car cette classe n'est pas compatible avec PGF/Tikz).
+(car cette classe n'est pas compatible avec PGF/Tikz).\footnote{Voir
+ \url{https://tex.stackexchange.com/questions/528975/error-loading-tikz-in-ieeeaccess-class}}
+
+\medskip
+Pour pouvoir utiliser \pkg{nicematrix} avec la classe \cls{aastex631}, on doit
+ajouter dans le préambule du fichier les lignes suivantes :
+
+\begin{Verbatim}
+\BeforeBegin{NiceTabular}{\let\begin\BeginEnvironment\let\end\EndEnvironment}
+\BeforeBegin{NiceArray}{\let\begin\BeginEnvironment}
+\BeforeBegin{NiceMatrix}{\let\begin\BeginEnvironment}
+\end{Verbatim}
+
+\medskip
+Pour pouvoir utiliser \pkg{nicematrix} avec la classe \cls{sn-jnl}, \pkg{pgf}
+doit être chargé avant le |\documentclass|:
+
+\begin{Verbatim}
+\RequirePackage{pgf}
+\documentclass{sn-jnl}
+\end{Verbatim}
\section{Exemples}
@@ -4427,7 +4574,7 @@ L'extension \pkg{nicematrix} n'est pas compatible avec la classe \cls{ieeeaccess
La clé |tikz| de la commande |\Block| n'est disponible que lorsque Tikz est
chargé.\footnote{Par défaut, \pkg{nicematrix} ne charge que \textsc{pgf}, qui
- est une sous-couche de Tikz}
+ est une sous-couche de Tikz.}
Pour l'exemple suivant, la bibliothèque \tikz{patterns} de Tikz doit aussi être chargée.
@@ -4475,7 +4622,7 @@ Pour l'exemple suivant, la bibliothèque \tikz{patterns} de Tikz doit aussi êtr
Les outils de \pkg{nicematrix} pour les notes dans les tableaux ont été
présentés à la partie \ref{s:notes} p.~\pageref{s:notes}.
-\bigskip
+\medskip
Imaginons que l'on souhaite numéroter les notes de tableau (celles construites
avec |\tabularnote|) avec des astérisques.\footnote{Bien entendu, il faut qu'il
y en ait très peu : trois paraît un maximum.}
@@ -4486,7 +4633,7 @@ On commence par écrire une commande |\stars| similaire aux commandes classiques
\begin{Verbatim}
\ExplSyntaxOn
\NewDocumentCommand ~emphase#\stars@ { m }
- { \prg_replicate:nn { \value { ~#1 } } { $ \star $ } }
+ { \prg_replicate:nn { \value { ~#1 } } { $ \star $ } }
\ExplSyntaxOff
\end{Verbatim}
%
@@ -4497,13 +4644,13 @@ composer les labels avec une largeur égale à celle du plus grand des labels. O
le label le plus large est bien entendu celui avec le maximum d'astéristiques.
On connaît ce nombre : il est égal à |\value{tabularnote}| (car |tabularnote|
est le compteur LaTeX utilisé par |\tabularnote| et il est donc égal à la fin au
-nombre total de notes dans le tableau). On utilise alors la clé |widest*| de
+nombre total de notes dans le tableau). On utilise alors la clé |widest*| de
\pkg{enumitem} pour demander une largeur de label correspondante :
-|widest*=\value{tabularnote}|.
+|widest*=\value{tabularnote}|.
\begin{Verbatim}
-\NiceMatrixOptions
+\NiceMatrixOptions
{
- notes =
+ notes =
{
~emphase#style = \stars{~#1} , @
~emphase#enumitem-keys = @
@@ -4520,16 +4667,16 @@ nombre total de notes dans le tableau). On utilise alors la clé |widest*| de
\begin{scope}
\ExplSyntaxOn
\NewDocumentCommand \stars { m }
- { \prg_replicate:nn { \value { #1 } } { $ \star $ } }
-\NiceMatrixOptions
+ { \prg_replicate:nn { \value { #1 } } { $ \star $ } }
+\NiceMatrixOptions
{
- notes =
+ notes =
{
style = \stars{#1} ,
- enumitem-keys =
+ enumitem-keys =
{
widest* = \value{tabularnote} ,
- align = right
+ align = right
}
}
}
@@ -4555,9 +4702,9 @@ Dupont & Chantal & 15 janvier 1998 \\
\toprule \RowStyle{\bfseries}
Nom & Prénom & Date de naissance \\
\midrule
-Achard\tabularnote{La famille Achard est une très ancienne famille du Poitou.}
+Achard\tabularnote{La famille Achard est une très ancienne famille du Poitou.}
& Jacques & 5 juin 1962 \\
-Lefebvre\tabularnote{Le patronyme Lefebvre est une altération de Lefébure.}
+Lefebvre\tabularnote{Le patronyme Lefebvre est une altération de Lefébure.}
& Mathilde & 23 mai 1988 \\
Vanesse & Stéphanie & 30 octobre 1994 \\
Dupont & Chantal & 15 janvier 1998 \\
@@ -4573,7 +4720,7 @@ Dupont & Chantal & 15 janvier 1998 \\
Un exemple pour le résultant de deux polynômes :
\par\nobreak
-\bigskip
+\medskip
\begin{BVerbatim}
\setlength{\extrarowheight}{1mm}
\begin{vNiceArray}{cccc:ccc}[columns-width=6mm]
@@ -4583,11 +4730,11 @@ a_1 &\Ddots&& &b_1 &\Ddots& \\
a_p & &&a_0 & & &b_1 \\
&\Ddots&&a_1 &b_q & &\Vdots\\
& &&\Vdots & &\Ddots& \\
- & &&a_p & & &b_q
+ & &&a_p & & &b_q
\end{vNiceArray}
\end{BVerbatim}
-\bigskip
+\medskip
\begin{scope}
\setlength{\extrarowheight}{1mm}
@@ -4598,9 +4745,9 @@ a_1 &\Ddots&& &b_1 &\Ddots& \\
a_p & &&a_0 & & &b_1 \\
&\Ddots&&a_1 &b_q & &\Vdots\\
& &&\Vdots & &\Ddots& \\
- & &&a_p & & &b_q
+ & &&a_p & & &b_q
\end{vNiceArray}\]
-\end{scope}
+\end{scope}
\vspace{2cm}
Un exemple avec un système linéaire:
@@ -4612,7 +4759,7 @@ $\begin{pNiceArray}{*6c|c}[nullify-dots,last-col,code-for-last-col=\scriptstyle]
0 & 0 & 1 &\Ddots & & \Vdots & & L_3 \gets L_3-L_1 \\
& & &\Ddots & & & \Vdots & \Vdots \\
\Vdots & & &\Ddots & & 0 & \\
-0 & & &\Cdots & 0 & 1 & 0 & L_n \gets L_n-L_1
+0 & & &\Cdots & 0 & 1 & 0 & L_n \gets L_n-L_1
\end{pNiceArray}$
\end{Verbatim}
@@ -4623,7 +4770,7 @@ $\begin{pNiceArray}{*6c|c}[nullify-dots,last-col,code-for-last-col=\scriptstyle]
0 & 0 & 1 &\Ddots & & \Vdots & & L_3 \gets L_3-L_1 \\
& & &\Ddots & & & \Vdots & \Vdots \\
\Vdots & & &\Ddots & & 0 & \\
-0 & & &\Cdots & 0 & 1 & 0 & L_n \gets L_n-L_1
+0 & & &\Cdots & 0 & 1 & 0 & L_n \gets L_n-L_1
\end{pNiceArray}\]
@@ -4693,10 +4840,10 @@ $\begin{pNiceMatrix}[first-row,first-col]
& & \Ldots[line-style={solid,<->},shorten=0pt]^{n \text{ colonnes}} \\
& 1 & 1 & 1 & \Ldots & 1 \\
& 1 & 1 & 1 & & 1 \\
-\Vdots[line-style={solid,<->}]_{n \text{ rangées}}
+\Vdots[line-style={solid,<->}]_{n \text{ rangées}}
& 1 & 1 & 1 & & 1 \\
& 1 & 1 & 1 & & 1 \\
- & 1 & 1 & 1 & \Ldots & 1
+ & 1 & 1 & 1 & \Ldots & 1
\end{pNiceMatrix}$
\end{Verbatim}
@@ -4710,7 +4857,7 @@ $\begin{pNiceMatrix}[first-row,first-col]
& 1 & 1 & 1 & & 1 \\
\Vdots[line-style={solid,<->}]_{n \text{ rangées}} & 1 & 1 & 1 & & 1 \\
& 1 & 1 & 1 & & 1 \\
- & 1 & 1 & 1 & \Ldots & 1
+ & 1 & 1 & 1 & \Ldots & 1
\end{pNiceMatrix}\]
\end{scope}
@@ -4730,7 +4877,7 @@ avec l'environnement |{NiceMatrixBlock}| et l'option |auto-columns-width|.
\begin{Verbatim}[formatcom=\small\color{gray}]
~emphase#\begin{NiceMatrixBlock}[auto-columns-width]@
\NiceMatrixOptions
- {
+ {
light-syntax,
last-col, code-for-last-col = \color{blue} \scriptstyle,
}
@@ -4740,7 +4887,7 @@ $\begin{pNiceArray}{rrrr|r}
12 -8 7 5 3 {} ;
3 -18 12 1 4 ;
-3 -46 29 -2 -15 ;
- 9 10 -5 4 7
+ 9 10 -5 4 7
\end{pNiceArray}$
\smallskip
@@ -4755,7 +4902,7 @@ $\begin{pNiceArray}{rrrr|r}
$\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 }
+0 0 0 0 0 { L_3 \gets 3 L_2 + L_3 }
\end{pNiceArray}$
\smallskip
@@ -4767,10 +4914,10 @@ $\begin{pNiceArray}{rrrr|r}
~emphase#\end{NiceMatrixBlock}@
\end{Verbatim}
-\bigskip
+\medskip
\begin{NiceMatrixBlock}[auto-columns-width]
\NiceMatrixOptions
- {
+ {
light-syntax,
last-col, code-for-last-col = \color{blue} \scriptstyle ,
}
@@ -4780,7 +4927,7 @@ $\begin{pNiceArray}{rrrr|r}
12 -8 7 5 3 {} ;
3 -18 12 1 4 ;
-3 -46 29 -2 -15 ;
- 9 10 -5 4 7
+ 9 10 -5 4 7
\end{pNiceArray}$
\smallskip
@@ -4795,7 +4942,7 @@ $\begin{pNiceArray}{rrrr|r}
\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 }
+0 0 0 0 0 { L_3 \gets 3 L_2 + L_3 }
\end{pNiceArray}$\par\nobreak
\smallskip
@@ -4805,7 +4952,7 @@ $\begin{pNiceArray}{rrrr|r}
\end{pNiceArray}$
\end{NiceMatrixBlock}
-\bigskip
+\medskip
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.
@@ -4817,7 +4964,7 @@ 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,
@@ -4828,17 +4975,17 @@ $\begin{pNiceArray}{rrrr|r}
12 -8 7 5 3 {} ;
3 -18 12 1 4 ;
-3 -46 29 -2 -15 ;
- 9 10 -5 4 7
+ 9 10 -5 4 7
\end{pNiceArray}$
...
~emphase#\end{NiceMatrixBlock}@
\end{Verbatim}
-\bigskip
+\medskip
\begin{NiceMatrixBlock}[auto-columns-width]
\NiceMatrixOptions
- {
+ {
delimiters/max-width,
light-syntax,
last-col, code-for-last-col = \color{blue}\scriptstyle,
@@ -4849,7 +4996,7 @@ $\begin{pNiceArray}{rrrr|r}
12 -8 7 5 3 {} ;
3 -18 12 1 4 ;
-3 -46 29 -2 -15 ;
- 9 10 -5 4 7
+ 9 10 -5 4 7
\end{pNiceArray}$
\smallskip
@@ -4864,7 +5011,7 @@ $\begin{pNiceArray}{rrrr|r}
\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 }
+0 0 0 0 0 { L_3 \gets 3 L_2 + L_3 }
\end{pNiceArray}$
\smallskip
@@ -4900,7 +5047,7 @@ Bien sûr, ce tableau ne pourra pas être coupé par un saut de page.
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 [sub-matrix/vlines=4]@
+~emphase#\CodeAfter [sub-matrix/vlines=4]@
~emphase# \SubMatrix({1-1}{4-5})@
~emphase# \SubMatrix({5-1}{8-5})@
~emphase# \SubMatrix({9-1}{11-5})@
@@ -4934,13 +5081,13 @@ Bien sûr, ce tableau ne pourra pas être coupé par un saut de page.
\end{NiceMatrix}\]
\end{scope}
-\bigskip
+\medskip
Dans ce tableau, les instructions |\SubMatrix| sont exécutés après la
composition du tableau et les traits verticaux sont donc tracés sans espacer les
-colonnes.
+colonnes.
-\bigskip
+\medskip
\colorbox{yellow!50}{\textbf{Nouveau 6.2}}\enskip En fait, on peut avec la clé
|vlines-in-sub-matrix| choisir un spécificateur dans le préambule du tableau
pour indiquer des filets verticaux qui seront tracés dans les |\SubMatrix|
@@ -4950,10 +5097,10 @@ uniquement (en espaçant les colonnes).
\begin{Verbatim}
\setlength{\extrarowheight}{1mm}
\[\begin{NiceArray}
- [
+ [
~emphase#vlines-in-sub-matrix=I@,
- last-col,
- code-for-last-col = \scriptstyle \color{blue}
+ last-col,
+ code-for-last-col = \scriptstyle \color{blue}
]
{rrrrIr}
12 & -8 & 7 & 5 & 3 \\
@@ -4969,7 +5116,7 @@ uniquement (en espaçant les colonnes).
0 & 0 &0 &0 & 0 & L_3 \gets 3L_2+L_3 \\[1mm]
12 & -8 &7 &5 & 3 \\
0 & 64 &-41 & 1 & 19 \\
-\CodeAfter
+\CodeAfter
\SubMatrix({1-1}{4-5})
\SubMatrix({5-1}{8-5})
\SubMatrix({9-1}{11-5})
@@ -4983,10 +5130,10 @@ uniquement (en espaçant les colonnes).
\begin{scope}
\setlength{\extrarowheight}{1mm}
\[\begin{NiceArray}
- [
+ [
vlines-in-sub-matrix=I,
- last-col,
- code-for-last-col = \scriptstyle \color{blue}
+ last-col,
+ code-for-last-col = \scriptstyle \color{blue}
]
{rrrrIr}
12 & -8 & 7 & 5 & 3 \\
@@ -5002,7 +5149,7 @@ uniquement (en espaçant les colonnes).
0 & 0 &0 &0 & 0 & L_3 \gets 3L_2+L_3 \\[1mm]
12 & -8 &7 &5 & 3 \\
0 & 64 &-41 & 1 & 19 \\
-\CodeAfter
+\CodeAfter
\SubMatrix({1-1}{4-5})
\SubMatrix({5-1}{8-5})
\SubMatrix({9-1}{11-5})
@@ -5049,10 +5196,10 @@ options |hlines|, |vlines|, |hvlines| et |hvlines-except-borders| «écartent»
composantes de la matrice.\footnote{Pour la commande |\cline|, voir la remarque
p.~\pageref{remark-cline}.}
-\vspace{1cm}
+\vspace{1cm}
Il est possible de colorier une rangée avec |\rowcolor| dans le |\CodeBefore|
(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é).
+|colortbl-like| − même si \pkg{colortbl} n'est pas chargé).
\begin{Verbatim}
@@ -5060,7 +5207,7 @@ Il est possible de colorier une rangée avec |\rowcolor| dans le |\CodeBefore|
~emphase#\rowcolor{red!15}@A_{11} & A_{12} & A_{13} & A_{14} \\
A_{21} & ~emphase#\rowcolor{red!15}@A_{22} & A_{23} & A_{24} \\
A_{31} & A_{32} & ~emphase#\rowcolor{red!15}@A_{33} & A_{34} \\
- A_{41} & A_{42} & A_{43} & ~emphase#\rowcolor{red!15}@A_{44}
+ A_{41} & A_{42} & A_{43} & ~emphase#\rowcolor{red!15}@A_{44}
\end{pNiceArray}
\end{Verbatim}
@@ -5070,14 +5217,14 @@ Il est possible de colorier une rangée avec |\rowcolor| dans le |\CodeBefore|
\rowcolor{red!15}A_{11} & A_{12} & A_{13} & A_{14} \\
A_{21} & \rowcolor{red!15}A_{22} & A_{23} & A_{24} \\
A_{31} & A_{32} & \rowcolor{red!15}A_{33} & A_{34} \\
- A_{41} & A_{42} & A_{43} & \rowcolor{red!15}A_{44}
+ A_{41} & A_{42} & A_{43} & \rowcolor{red!15}A_{44}
\end{pNiceArray}\]
\medskip
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 d'une
-matrice.
+matrice.
\medskip
Cet exemple et les suivants nécessitent d'avoir chargé Tikz (\pkg{nicematrix} ne
@@ -5098,7 +5245,7 @@ faut utiliser la clé |create-cell-nodes| du |\CodeBefore| pour demander leur cr
\tikzset{highlight/.style={rectangle,
fill=red!15,
- rounded corners = 0.5 mm,
+ rounded corners = 0.5 mm,
inner sep=1pt,
fit=#1}}
@@ -5106,7 +5253,7 @@ faut utiliser la clé |create-cell-nodes| du |\CodeBefore| pour demander leur cr
\begin{Verbatim}
\tikzset{highlight/.style={rectangle,
fill=red!15,
- rounded corners = 0.5 mm,
+ rounded corners = 0.5 mm,
inner sep=1pt,
fit=~#1}}
@@ -5121,7 +5268,7 @@ $\begin{bNiceMatrix}
\end{Verbatim}
\[\begin{bNiceMatrix}
-\CodeBefore [create-cell-nodes]
+\CodeBefore [create-cell-nodes]
\tikz \node [highlight = (2-1) (2-3)] {} ;
\Body
0 & \Cdots & 0 \\
@@ -5134,7 +5281,7 @@ $\begin{bNiceMatrix}
\vspace{1cm}
On considère maintenant la matrice suivante. Si on veut surligner chaque rangée
-de la matrice, on peut utiliser la technique précédente trois fois.
+de la matrice, on peut utiliser la technique précédente trois fois.
\begin{Verbatim}
\[\begin{pNiceArray}{ccc}[last-col]
@@ -5197,11 +5344,11 @@ a & a & a + b & L_2 \\
a & a & a & L_3
\end{pNiceArray}\]
-
+
\subsection{Utilisation de \textbackslash SubMatrix dans le \textbackslash CodeBefore}
-Dans l'exemple suivant, on illustre le produit mathématique de deux matrices.
+Dans l'exemple suivant, on illustre le produit mathématique de deux matrices.
L'ensemble de la figure est un environnement |{NiceArray}| et les trois paires
de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|.
@@ -5209,7 +5356,7 @@ de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|.
\tikzset{highlight/.style={rectangle,
fill=red!15,
- rounded corners = 0.5 mm,
+ rounded corners = 0.5 mm,
inner sep=1pt,
fit=#1}}%
%
@@ -5220,7 +5367,7 @@ de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|.
\SubMatrix({7-2}{11-6})
\SubMatrix({7-7}{11-11})
\begin{tikzpicture}
- \node [highlight = (9-2) (9-6)] { } ;
+ \node [highlight = (9-2) (9-6)] { } ;
\node [highlight = (2-9) (6-9)] { } ;
\end{tikzpicture}
\Body
@@ -5232,7 +5379,7 @@ de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|.
& & & & & & b_{n1} & \Cdots & b_{nj} & \Cdots & b_{nn} \\[3mm]
& a_{11} & \Cdots & & & a_{1n} \\
& \Vdots & & & & \Vdots & & & \Vdots \\
-\color{blue}\scriptstyle L_i
+\color{blue}\scriptstyle L_i
& a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} & \Cdots & & c_{ij} \\
& \Vdots & & & & \Vdots \\
& a_{n1} & \Cdots & & & a_{nn} \\
@@ -5245,7 +5392,7 @@ de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|.
\begin{Verbatim}
\tikzset{highlight/.style={rectangle,
fill=red!15,
- rounded corners = 0.5 mm,
+ rounded corners = 0.5 mm,
inner sep=1pt,
fit=~#1}}
\end{Verbatim}
@@ -5257,7 +5404,7 @@ de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|.
\SubMatrix({7-2}{11-6})
\SubMatrix({7-7}{11-11})
\begin{tikzpicture}
- \node [highlight = (9-2) (9-6)] { } ;
+ \node [highlight = (9-2) (9-6)] { } ;
\node [highlight = (2-9) (6-9)] { } ;
\end{tikzpicture}
\Body
@@ -5269,7 +5416,7 @@ de parenthèses ont été rajoutées avec |\SubMatrix| dans le |\CodeBefore|.
& & & & & & b_{n1} & \Cdots & b_{nj} & \Cdots & b_{nn} \\[3mm]
& a_{11} & \Cdots & & & a_{1n} \\
& \Vdots & & & & \Vdots & & & \Vdots \\
-\color{blue}\scriptstyle L_i
+\color{blue}\scriptstyle L_i
& a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} & \Cdots & & c_{ij} \\
& \Vdots & & & & \Vdots \\
& a_{n1} & \Cdots & & & a_{nn} \\
@@ -5286,7 +5433,7 @@ 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.
-\bigskip
+\medskip
Les versions successives du fichier |nicematrix.sty| fournies par
TeXLive sont disponibles sur le serveur \textsc{svn} de TeXLive :