summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/nicematrix
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-26 03:00:46 +0000
committerNorbert Preining <norbert@preining.info>2022-06-26 03:00:46 +0000
commit49d5e8cc281cf2335112eb5488cd83afd96eeb04 (patch)
tree90391c61b53045517a94752d7db0e63586d22fdc /macros/latex/contrib/nicematrix
parent7539b7b5d1fc836a31110d086fb5b9783033f327 (diff)
CTAN sync 202206260300
Diffstat (limited to 'macros/latex/contrib/nicematrix')
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin504127 -> 504636 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex76
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx1145
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1526205 -> 1541634 bytes
4 files changed, 661 insertions, 560 deletions
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index 00a0f24a25..1350f7ab39 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 78e53f1346..232ab4e8f2 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -136,10 +136,6 @@ Cette extension nécessite et charge les extensions \pkg{l3keys2e}, \pkg{array},
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 TeX~Live, sachez que TeX~Live 2020 au minimum
-est requis pour faire fonctionner \pkg{nicematrix}.
-
\medskip
L'idée de \pkg{nicematrix} est de créer des nœuds \textsc{pgf} derrière les
@@ -544,9 +540,8 @@ applicables à un chemin de Tikz). Pour des exemples d'utilisation de cette clé
|tikz|, voir p.~\pageref{tikz-key-examples} ;
\item la clé |name| donne un nom au nœud Tikz rectangulaire correspondant au
bloc ; on peut utiliser ce nom avec Tikz dans le |\CodeAfter| (cf.~p.~\pageref{code-after});
-\item \colorbox{yellow!50}{\textbf{Nouveau 6.5}}\enskip la clé
-|respect-arraystretch| évite la remise à $1$ de |\arraystretch| en début de
-bloc (qui a lieu par défaut) ;
+\item la clé |respect-arraystretch| évite la remise à $1$ de |\arraystretch| en
+début de bloc (qui a lieu par défaut) ;
\item la clé |borders| permet de ne tracer que certaines des bordures du bloc :
cette clé prend comme valeur une liste d'éléments parmi les suivants : |left|,
|right|, |top| et |bottom| ; \newline
@@ -1173,12 +1168,11 @@ Cette commande |\diagbox| peut aussi être utilisée dans un |\Block|.
\subsection{Commandes pour filets personnalisés}
\label{custom-line}
-\colorbox{yellow!50}{\textbf{Nouveau 6.5}}\enskip Il est possible de définir des
-commandes et des lettres pour des filets personnalisés avec la clé
-|custom-line|, utilisable dans |\NiceMatrixOptions| ou bien dans un
-environnement. Cette clé prend en argument une liste de paires de la forme
-\textsl{clé=valeur}. Il y a d'abord deux clés pour spécifier les outils qui
-permettront d'utiliser ce nouveau type de filet.
+Il est possible de définir des commandes et des lettres pour des filets
+personnalisés avec la clé |custom-line|, utilisable dans |\NiceMatrixOptions| ou
+bien dans un environnement. Cette clé prend en argument une liste de paires de
+la forme \textsl{clé=valeur}. Il y a d'abord deux clés pour spécifier les outils
+qui permettront d'utiliser ce nouveau type de filet.
\begin{itemize}
\item la clé |command| indique le nom (sans la contre-oblique) d'une commande
@@ -1258,9 +1252,9 @@ Tikz.
Par défaut aucune réservation de place n'est faite par défaut pour le filet qui
sera tracé avec Tikz. On peut demander une réservation (horizontale pour un
-filet vertical et verticale pour un filet horizontal) avec la clé |width| qui
+filet vertical et verticale pour un filet horizontal) avec la clé |total-width| qui
est donc en quelque sorte la largeur du filet qui sera tracé (cette largeur
-n'est pas déduite des caractéristiques fournies par la clé |tikz|).
+n'est pas calculée à partir des caractéristiques fournies par la clé |tikz|).
\bigskip
Voici ce que l'on obtient avec la clé |dotted| de Tikz.
@@ -1272,7 +1266,7 @@ Voici ce que l'on obtient avec la clé |dotted| de Tikz.
{
letter = I ,
~emphase#tikz = dotted @ ,
- ~emphase#width = \pgflinewidth@
+ ~emphase#total-width = \pgflinewidth@
}
}
@@ -1290,7 +1284,7 @@ sept & huit & neuf
{
letter = I ,
tikz = dotted ,
- width = \pgflinewidth
+ total-width = \pgflinewidth
}
}
\begin{NiceTabular}{cIcIc}
@@ -1307,10 +1301,12 @@ sept & huit & neuf
Comme on le voit dans l'exemple précédent, les pointillés tracés par la clé
|dotted| de Tikz ne sont pas ronds. C'est pourquoi l'extension \pkg{nicematrix}
propose dans la clé |custom-line| une clé |dotted| qui va tracer des pointillés
-ronds. La valeur de la clé |width| est, dans ce cas-là, déjà réglée sur le
-diamètre des points. Ces pointillés ronds sont aussi utilisés par
-\pkg{nicematrix} pour des lignes en pointillées continues créées entre deux
-composantes de la matrice par |\Cdots|, |\Vdots|, etc (voir p.~\pageref{Cdots}).
+ronds. La valeur initiale de la clé |total-width| est, dans ce cas-là, égale au
+diamètre des points (l'utilisateur peut quand même utiliser la clé |total-width|
+pour en changer la valeur). Ces pointillés ronds sont aussi utilisés par
+\pkg{nicematrix} pour des lignes en pointillés continues créées entre deux
+composantes de la matrice par |\Cdots|, |\Vdots|, etc. (voir
+p.~\pageref{Cdots}).
\medskip
L'extension \pkg{nicematrix} prédéfinit en fait la commande |\hdottedline| et la
@@ -2711,8 +2707,7 @@ points de suspension, on peut souhaiter utiliser les lignes pointillées de
|renew-matrix|.\footnote{Comme toutes les autres options, les options
|renew-dots|, |renew-matrix| peuvent être fixées avec la commande
|\NiceMatrixOptions|, mais elles peuvent aussi être passées en option du
- |\usepackage|. Remarquons que la clé |transparent| est un alias, considéré
- comme obsolète, pour la conjonction des clés |renew-dots| et |renew-matrix|.}
+ |\usepackage|.}
\smallskip
@@ -2791,7 +2786,7 @@ par les options suivantes (que l'on met entre crochets après la commande) :
\begin{itemize}
\item |color| ;
\item |radius| ;
-\item |shorten| ;
+\item |shorten-start|, |shorten-end| et |shorten| ;
\item |inter| ;
\item |line-style|.
\end{itemize}
@@ -2804,7 +2799,7 @@ de |\CodeAfter|, ou bien au niveau d'un environnement mais elles doivent alors
\begin{itemize}
\item |xdots/color| ;
\item |xdots/radius| ;
-\item |xdots/shorten| ;
+\item |xdots/shorten-start|, |xdots/shorten-end| et |xdots/shorten| ;
\item |inter| ;
\item |xdots/line-style|.
\end{itemize}
@@ -2832,12 +2827,15 @@ valeur initiale est $0.53$~pt.
\textbf{L'option xdots/shorten}\par\nobreak
\smallskip
-L'option |xdots/shorten| indique la marge qui est laissée aux deux extrémités de
-la ligne. Le nom s'inspire des options «|shorten >|» et «|shorten <|» de Tikz,
-mais il faut remarquer que \pkg{nicematrix} ne propose que |xdots/shorten|. La
-valeur initiale de ce paramètre est de $0.3$~em (il est conseillé d'utiliser une
+Les clés |xdots/shorten-start| et |xdots/shorten-end| indiquent la marge qui est
+laissée aux deux extrémités de la ligne. La clé |xdots/shorten| fixe les deux
+clés simultanément. La valeur initiale de $0.3$~em (il est conseillé d'utiliser une
unité de mesure dépendante de la fonte courante).
+\smallskip
+\colorbox{yellow!50}{\textbf{Nouveau 6.10}}\enskip Les clés
+|xdots/shorten-start| et |xdots/shorten-end| ont été introduites dans la
+version~6.10. Les versions précédentes ne proposaient que |xdots/shorten|.
\medskip
\colorbox{yellow!50}{\textbf{Nouveau 6.9}}\enskip \textbf{L'option xdots/inter}\par\nobreak
@@ -2962,9 +2960,15 @@ ces commandes.
\label{line-in-code-after}
La commande |\line| permet de tracer directement des lignes en pointillés entre
-les cases. Elle prend deux arguments correspondant aux deux cases à relier,
-chacun de la forme $i$-$j$ où $i$ est le numéro de ligne et $j$ est le numéro de
-colonne. Les options disponibles pour personnaliser les lignes pointillées créées par
+les cases. Elle prend deux arguments correspondant aux cases ou blocs à relier.
+Chacun de ces deux arguments peut être :
+\begin{itemize}
+\item une spécification de case de la forme $i$-$j$ où $i$ est le numéro de
+ligne et $j$ est le numéro de colonne ;
+\item \colorbox{yellow!50}{\textbf{Nouveau 6.10}}\enskip le nom d'un bloc (créé
+avec la commande |\Block| en utilisant la clé |name| de cette commande).
+\end{itemize}
+ 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}).
@@ -3355,7 +3359,7 @@ Nom & Prénom & Date de naissance \\
\midrule
Achard~emphase#\tabularnote{La famille Achard est une très ancienne famille du Poitou.}!
& Jacques & 5 juin 1962 \\
-Lefèbvre~emphase#\tabularnote{Le patronyme Lefèbvre est une altération de Lefébure.}!
+Lefebvre~emphase#\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 \\
@@ -3656,11 +3660,11 @@ suivant (avec une version de LaTeX postérieure à 2020/10/01).
\subsection{Commande \textbackslash ShowCellNames}
\colorbox{yellow!50}{\textbf{Nouveau 6.9}} La commande |\ShowCellNames|,
-utilisable dans le |\CodeBefore| et dans le |\CodeAfter| affiche le nom (sous la
+utilisable dans le |\CodeBefore| et le |\CodeAfter| affiche le nom (sous la
forme $i$-$j$) de chaque case.
-
+\medskip
\begin{BVerbatim}[baseline=c,boxwidth=10.6cm]
\begin{NiceTabular}{ccc}[hvlines,cell-space-limits=3pt]
\CodeBefore
@@ -5422,7 +5426,7 @@ Bien sûr, ce tableau ne pourra pas être coupé par un saut de page.
\end{scope}
\medskip
-Dans ce tableau, les instructions |\SubMatrix| sont exécutés après la
+Dans ce tableau, les instructions |\SubMatrix| sont exécutées après la
composition du tableau et les traits verticaux sont donc tracés sans espacer les
colonnes.
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index a0776552ee..6a73a5d7fd 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.9}
-\def\myfiledate{2022/05/25}
+\def\myfileversion{6.10}
+\def\myfiledate{2022/06/25}
%
%
%<*batchfile>
@@ -181,13 +181,10 @@ version 2005/12/01 or later.
% \medskip
% This package requires and \textbf{loads} the packages \pkg{l3keys2e},
% \pkg{array}, \pkg{amsmath}, \pkg{pgfcore} and the module \pkg{shapes} of
-% \textsc{pgf} (\pkg{tikz}, which is a layer over \textsc{pgf} is \emph{not}
+% \textsc{pgf} (\pkg{tikz}, which is a layer over \textsc{pgf}, is \emph{not}
% loaded). The final user only has to load the package with
% |\usepackage{nicematrix}|.
%
-% \medskip
-% If you use TeX~Live as TeX distribution, you should note that TeX~Live 2020 at
-% least is required by \pkg{nicematrix}.
%
% \medskip
% The idea of \pkg{nicematrix} is to create \textsc{pgf} nodes under the cells
@@ -586,9 +583,8 @@ version 2005/12/01 or later.
% \item the key |name| provides a name to the rectangular Tikz node
% corresponding to the block; it's possible to use that name with Tikz in the
% |\CodeAfter| of the environment (cf.~p.~\pageref{code-after});
-% \item \colorbox{yellow!50}{\textbf{New 6.5}}\enskip the key
-% |respect-arraystretch| prevents the setting of |\arraystretch| to $1$ at the
-% beginning of the block (which is the behaviour by default) ;
+% \item the key |respect-arraystretch| prevents the setting of |\arraystretch|
+% to $1$ at the beginning of the block (which is the behaviour by default) ;
% \item the key |borders| provides the ability to draw only some borders of the
% blocks; the value of that key is a (comma-separated) list of elements covered
% by |left|, |right|, |top| and |bottom|;\newline
@@ -1188,11 +1184,11 @@ version 2005/12/01 or later.
% \subsection{Commands for customized rules}
% \label{custom-line}
%
-% \colorbox{yellow!50}{\textbf{New 6.5}}\enskip It's also possible to define commands
-% and letters for customized rules with the key |custom-line| available in
-% |\NiceMatrixOptions| and in the options of individual environments. That key
-% takes in as argument a list of \textsl{key=value} pairs. First, there is two
-% keys to define the tools which will be used to use that new type of rule.
+% It's also possible to define commands and letters for customized rules with
+% the key |custom-line| available in |\NiceMatrixOptions| and in the options of
+% individual environments. That key takes in as argument a list of
+% \textsl{key=value} pairs. First, there is two keys to define the tools which
+% will be used to use that new type of rule.
%
% \begin{itemize}
% \item the key |command| is the name (without the backslahs) of a command that
@@ -1256,10 +1252,10 @@ version 2005/12/01 or later.
%
% By default, no space is reserved for the rule that will be drawn with Tikz. It
% is possible to specify a reservation (horizontal for a vertical rule and
-% vertical for an horizontal one) with the key |width|. That value of that key,
-% is, in some ways, the width of the rule that will be drawn (\pkg{nicematrix}
-% does not compute that width from the characteristics of the rule specified in
-% |tikz|).
+% vertical for an horizontal one) with the key |total-width|. That value of that
+% key, is, in some ways, the width of the rule that will be drawn
+% (\pkg{nicematrix} does not compute that width from the characteristics of the
+% rule specified in |tikz|).
%
%
% \begin{center}
@@ -1285,7 +1281,7 @@ version 2005/12/01 or later.
% {
% letter = I ,
% ~emphase#tikz = dotted@ ,
-% ~emphase#width = \pgflinewidth@
+% ~emphase#total-width = \pgflinewidth@
% }
% }
%
@@ -1302,7 +1298,7 @@ version 2005/12/01 or later.
% {
% letter = I ,
% tikz = dotted ,
-% width = \pgflinewidth
+% total-width = \pgflinewidth
% }
% }
% \begin{NiceTabular}{cIcIc}
@@ -1318,8 +1314,9 @@ version 2005/12/01 or later.
%
% As one can see, the dots of a dotted line of Tikz have the shape of a square,
% and not a circle. That's why the extension \pkg{nicematrix} provides in the
-% key |custom-line| a key |dotted| which will draw rounded dots. The value of
-% the key |width| is, in this case, preset to the diameter of the dots. Those
+% key |custom-line| a key |dotted| which will draw rounded dots. The initial
+% value of the key |total-width| is, in this case, equal to the diameter of the dots
+% (but the user may change the value with the key |total-width| if needed). Those
% dotted rules are also used by \pkg{nicematrix} to draw continuous dotted rules
% between cells of the matrix with |\Cdots|, |\Vdots|, etc. (cf. p.~\pageref{Cdots}).
%
@@ -1880,7 +1877,7 @@ version 2005/12/01 or later.
% preamble of the array).
% \end{itemize}
%
-% \medskip
+% \smallskip
% \begin{Verbatim}
% \NewDocumentCommand { \Blue } { } { ~emphase#\columncolor{blue!15}@ }
% \begin{NiceTabular}[colortbl-like]{>{\Blue}c>{\Blue}cc}
@@ -1937,7 +1934,7 @@ version 2005/12/01 or later.
% columns of type |p|, |b|, |m| and |X| (which start in
% vertical mode).}
% \item The key |bold| enforces
-% bold characters for the cells of the row, both in math mode and text mode.
+% bold characters for the cells of the row, both in math and text mode.
% \end{itemize}
%
% \medskip
@@ -2683,9 +2680,7 @@ version 2005/12/01 or later.
% |renew-dots| and |renew-matrix|.\footnote{The options |renew-dots|,
% |renew-matrix| can be fixed with the command
% |\NiceMatrixOptions| like the other options. However, they can also be fixed
-% as options of the command |\usepackage|. There is also a key |transparent|
-% which is an alias for the conjonction of |renew-dots| and |renew-matrix| but it
-% must be considered as obsolete.}
+% as options of the command |\usepackage|.}
%
% \smallskip
%
@@ -2759,7 +2754,7 @@ version 2005/12/01 or later.
% \begin{itemize}
% \item |color|;
% \item |radius|;
-% \item |shorten|;
+% \item |shorten-start|, |shorten-end| and |shorten|;
% \item |inter|;
% \item |line-style|.
% \end{itemize}
@@ -2771,7 +2766,7 @@ version 2005/12/01 or later.
% \begin{itemize}
% \item |xdots/color|;
% \item |xdots/radius|;
-% \item |xdots/shorten|;
+% \item |xdots/shorten-start|, |xdots/shorten-end| and |xdots/shorten|;
% \item |xdots/inter|;
% \item |xdots/line-style|.
% \end{itemize}
@@ -2796,11 +2791,15 @@ version 2005/12/01 or later.
% \textbf{The option xdots/shorten}\par\nobreak
%
% \smallskip
-% The option |xdots/shorten| fixes the margin of both extremities of the line.
-% The name is derived from the options ``|shorten >|'' and ``|shorten <|'' of
-% Tikz but one should notice that \pkg{nicematrix} only provides
-% |xdots/shorten|. The initial value of this parameter is 0.3~em (it is
-% recommanded to use a unit of length dependent of the current font).
+% The keys |xdots/shorten-start| and |xdots/shorten-end| fix the margin at the
+% extremities of the line. The key |xdots/shorten| fixes both parameters.
+% The initial value is 0.3~em (it is recommanded to use a unit of length
+% dependent of the current font).
+%
+% \smallskip
+% \colorbox{yellow!50}{\textbf{New 6.10}}\enskip The keys |xdots/shorten-start|
+% and |xdots/shorten-end| have been introduced in version 6.10. In the previous
+% versions, there was only |xdots/shorten|.
%
% \bigskip
% \colorbox{yellow!50}{\textbf{New 6.9}}\enskip
@@ -2926,11 +2925,17 @@ version 2005/12/01 or later.
% \subsection{The command \textbackslash line in the \textbackslash CodeAfter}
%
% \label{line-in-code-after}
-% The command |\line| draws directly dotted lines between nodes. It takes in two
-% arguments for the two cells to link, both of the form $i$-$j$ where is the
-% number of the row and $j$ is the number of the column. The options available
-% for the customisation of the dotted lines created by |\Cdots|, |\Vdots|, etc.
-% are also available for this command (cf. p.~\pageref{customisation}).
+% The command |\line| draws directly dotted lines between cells or blocks. It takes in two
+% arguments for the cells or blocks to link. Both argument may be:
+% \begin{itemize}
+% \item a specification of cell of the form $i$-$j$ where is the
+% number of the row and $j$ is the number of the column;
+% \item \colorbox{yellow!50}{\textbf{New 6.10}}\enskip the name of a block
+% (created by the command |\Block| with the key |name| of that command).
+% \end{itemize}
+% The options available for the customisation of the dotted lines created by
+% |\Cdots|, |\Vdots|, etc. are also available for this command (cf.
+% p.~\pageref{customisation}).
%
% \bigskip
% This command may be used, for example, to draw a dotted line between two
@@ -5750,7 +5755,21 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_fatal:n { \msg_fatal:nn { nicematrix } }
\cs_new_protected:Npn \@@_fatal:nn { \msg_fatal:nnn { nicematrix } }
\cs_new_protected:Npn \@@_msg_new:nn { \msg_new:nnn { nicematrix } }
-\cs_new_protected:Npn \@@_msg_new:nnn { \msg_new:nnnn { nicematrix } }
+% \end{macrocode}
+%
+% With Overleaf, a document is compiled in non-stop mode. When there is an
+% error, there is no way to the user to use the key H in order to have more
+% information. That's why we decide to put that piece of information (for the
+% messages with such information) in the main part of the message when the key
+% |messages-for-Overleaf| is used (at load-time).
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_msg_new:nnn #1 #2 #3
+ {
+ \bool_if:NTF \c_@@_messages_for_Overleaf_bool
+ { \msg_new:nnn { nicematrix } { #1 } { #2 \\ #3 } }
+ { \msg_new:nnnn { nicematrix } { #1 } { #2 } { #3 } }
+ }
+
% \end{macrocode}
%
% \begin{macrocode}
@@ -5758,7 +5777,7 @@ version 2005/12/01 or later.
{ \msg_redirect_name:nnn { nicematrix } }
% \end{macrocode}
%
-%
+%
% \bigskip
% \subsection*{Technical definitions}
%
@@ -6212,6 +6231,13 @@ version 2005/12/01 or later.
\int_new:N \g_@@_row_total_int
\int_new:N \g_@@_col_total_int
% \end{macrocode}
+%
+% \bigskip
+% The following parameter will be used by |\@@_create_row_node:| to avoid to
+% create the same row-node twice (at the end of the array).
+% \begin{macrocode}
+\int_new:N \g_@@_last_row_node_int
+% \end{macrocode}
%
% \bigskip
% The following counter corresponds to the key |nb-rows| of the command
@@ -6301,6 +6327,13 @@ version 2005/12/01 or later.
% \begin{macrocode}
\dim_new:N \l_@@_tabular_width_dim
% \end{macrocode}
+%
+% \bigskip
+% The following dimension will be used for the total width of composite rules
+% (\emph{total} means that the spaces on both sides are included).
+% \begin{macrocode}
+\dim_new:N \l_@@_rule_width_dim
+% \end{macrocode}
%
% \bigskip
% If the user uses an environment without preamble, we will raise the following
@@ -6598,8 +6631,7 @@ version 2005/12/01 or later.
%
%
% \medskip
-% If the user has used the key |corners| (or the key |hvlines-except-corners|,
-% even though that key is deprecated), all the cells which are in an (empty)
+% If the user has used the key |corners|, all the cells which are in an (empty)
% corner will be stored in the following sequence.
% \begin{macrocode}
\seq_new:N \l_@@_corners_cells_seq
@@ -6646,7 +6678,7 @@ version 2005/12/01 or later.
% \medskip
% The following sequence will be used when the command |\SubMatrix| is used in
% the |\CodeBefore| (and not in the |\CodeAfter|). It will contain the position of
-% all the sub-matrices specified in the |code-before|. Each sub-matrix is
+% all the sub-matrices specified in the |\CodeBefore|. Each sub-matrix is
% represented by an ``object'' of the forme |{|$i$|}{|$j$|}{|$k$|}{|$l$|}|
% where $i$ and $j$ are the number of row and column of the upper-left cell and
% $k$ and $l$ the number of row and column of the lower-right cell.
@@ -7171,7 +7203,7 @@ version 2005/12/01 or later.
% \bigskip
% By default, the behaviour of |\cline| is changed in the environments of
% \pkg{nicematrix}: a |\cline| spreads the array by an amount equal to
-% |\arrayrulewidht|. It's possible to disable this feature with the key
+% |\arrayrulewidth|. It's possible to disable this feature with the key
% |\l_@@_standard_line_bool|.
% \begin{macrocode}
\bool_new:N \l_@@_standard_cline_bool
@@ -7203,9 +7235,13 @@ version 2005/12/01 or later.
% definition, a dotted line is not a continuous line and, therefore, this
% distance may vary a little).
% \begin{macrocode}
-\dim_new:N \l_@@_xdots_shorten_dim
+\dim_new:N \l_@@_xdots_shorten_start_dim
+\dim_new:N \l_@@_xdots_shorten_end_dim
\hook_gput_code:nnn { begindocument } { . }
- { \dim_set:Nn \l_@@_xdots_shorten_dim { 0.3 em } }
+ {
+ \dim_set:Nn \l_@@_xdots_shorten_start_dim { 0.3 em }
+ \dim_set:Nn \l_@@_xdots_shorten_end_dim { 0.3 em }
+ }
% \end{macrocode}
% We use a hook only by security in case \cls{revtex4-1} is used (even though it
% is obsolete).
@@ -7419,12 +7455,23 @@ version 2005/12/01 or later.
color .value_required:n = true ,
shorten .code:n =
\hook_gput_code:nnn { begindocument } { . }
- { \dim_set:Nn \l_@@_xdots_shorten_dim { #1 } } ,
+ {
+ \dim_set:Nn \l_@@_xdots_shorten_start_dim { #1 }
+ \dim_set:Nn \l_@@_xdots_shorten_end_dim { #1 }
+ } ,
+ shorten-start .code:n =
+ \hook_gput_code:nnn { begindocument } { . }
+ { \dim_set:Nn \l_@@_xdots_shorten_start_dim { #1 } } ,
+ shorten-end .code:n =
+ \hook_gput_code:nnn { begindocument } { . }
+ { \dim_set:Nn \l_@@_xdots_shorten_end_dim { #1 } } ,
% \end{macrocode}
% We use a hook only by security in case \cls{revtex4-1}
% is used (even though it is obsolete). Idem for the following keys.
% \begin{macrocode}
shorten .value_required:n = true ,
+ shorten-start .value_required:n = true ,
+ shorten-end .value_required:n = true ,
radius .code:n =
\hook_gput_code:nnn { begindocument } { . }
{ \dim_set:Nn \l_@@_xdots_radius_dim { #1 } } ,
@@ -7566,17 +7613,7 @@ version 2005/12/01 or later.
% The key |hvlines-except-corners| is now deprecated (use |hvlines| and
% |corners| instead).
% \begin{macrocode}
- hvlines-except-corners .code:n =
- {
- \@@_error:n { hvlines-except-corners }
- \group_begin:
- \globaldefs = 1
- \@@_msg_redirect_name:nn { hvlines-except-corners } { none }
- \group_end:
- \clist_set:Nn \l_@@_corners_clist { #1 }
- \clist_set:Nn \l_@@_vlines_clist { all }
- \clist_set:Nn \l_@@_hlines_clist { all }
- } ,
+ hvlines-except-corners .code:n = \@@_fatal:n { hvlines-except-corners } ,
hvlines-except-corners .default:n = { NW , SW , NE , SE } ,
corners .clist_set:N = \l_@@_corners_clist ,
corners .default:n = { NW , SW , NE , SE } ,
@@ -7783,24 +7820,6 @@ version 2005/12/01 or later.
allow-duplicate-names .code:n =
\@@_msg_redirect_name:nn { Duplicate~name } { none } ,
allow-duplicate-names .value_forbidden:n = true ,
-% \end{macrocode}
-%
-% \bigskip
-% The key |letter-for-dotted-lines| is now obsolete. You will delete it in a
-% future version.
-% \begin{macrocode}
- letter-for-dotted-lines .code:n =
- {
- \@@_error:n { letter-for-dotted-lines }
- \group_begin:
- \globaldefs = 1
- \@@_msg_redirect_name:nn { letter-for-dotted-lines } { none }
- \group_end:
- \tl_if_single_token:nTF { #1 }
- { \str_set:Nx \l_@@_letter_for_dotted_lines_str { #1 } }
- { \@@_error:n { One~letter~allowed } }
- } ,
- letter-for-dotted-lines .value_required:n = true ,
notes .code:n = \keys_set:nn { NiceMatrix / notes } { #1 } ,
notes .value_required:n = true ,
sub-matrix .code:n =
@@ -7811,11 +7830,6 @@ version 2005/12/01 or later.
% \end{macrocode}
%
%
-% The following string will initially be empty. It will be set by the key
-% 'letter-for-dotted-lines'.
-% \begin{macrocode}
-\str_new:N \l_@@_letter_for_dotted_lines_str
-% \end{macrocode}
%
% \bigskip
% |\NiceMatrixOptions| is the command of the \pkg{nicematrix} package to fix
@@ -7947,7 +7961,7 @@ version 2005/12/01 or later.
\tl_gclear:N \g_@@_post_action_cell_tl
% \end{macrocode}
% At the beginning of the cell, we link |\CodeAfter| to a command which do
-% begins with |\\| (whereas the standard version of |\CodeAfter| begins does
+% begins with |\\| (whereas the standard version of |\CodeAfter| does
% not).
% \begin{macrocode}
\cs_set_eq:NN \CodeAfter \@@_CodeAfter_i:
@@ -8353,6 +8367,17 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_create_row_node:
{
+ \int_compare:nNnT \c@iRow > \g_@@_last_row_node_int
+ {
+ \int_gset_eq:NN \g_@@_last_row_node_int \c@iRow
+ \@@_create_row_node_i:
+ }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_create_row_node_i:
+ {
% \end{macrocode}
% The |\hbox:n| (or |\hbox|) is mandatory.
% \begin{macrocode}
@@ -8786,6 +8811,16 @@ version 2005/12/01 or later.
\seq_gclear_new:N \g_@@_multicolumn_sizes_seq
% \end{macrocode}
%
+% \bigskip
+% The command |\create_row_node:| will create a row-node (and not a row of
+% nodes!). However, at the end of the array we construct a ``false row'' (for
+% the the col-nodes) and it interfers with the construction of the last row-node
+% of the array. We don't want to create such row-node twice (to avaid warnings
+% or, maybe, errors). That's why the command |\@@_create_row_node:| will use the
+% following counter to avoid such construction.
+% \begin{macrocode}
+ \int_gset:Nn \g_@@_last_row_node_int { -1 }
+% \end{macrocode}
%
% \interitem
% The code in |\@@_pre_array_ii:| is used only here.
@@ -8850,10 +8885,10 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% The following command |\@@_pre_array_i:w| will be used when the keyword
+% The following command |\@@_CodeBefore_Body:w| will be used when the keyword
% |\CodeBefore| is present at the beginning of the environment.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_pre_array_i:w #1 \Body
+\cs_new_protected_nopar:Npn \@@_CodeBefore_Body:w #1 \Body
{
\tl_put_right:Nn \l_@@_code_before_tl { #1 }
\bool_set_true:N \l_@@_code_before_bool
@@ -8970,7 +9005,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% We compose the |\CodeBefore| in math mode in order to nullify the spaces put
-% by the user between instructions in the |code-before|.
+% by the user between instructions in the |\CodeBefore|.
% \begin{macrocode}
\bool_if:NT \l_@@_NiceTabular_bool \c_math_toggle_token
% \end{macrocode}
@@ -9291,10 +9326,10 @@ version 2005/12/01 or later.
% |\CodeBefore| at the beginning of the body of the environment. If that keyword
% is present, we have now to extract all the content between that keyword
% |\CodeBefore| and the (other) keyword |\Body|. It's the job that will do the
-% command |\@@_pre_array_i:w|. After that job, the command |\@@_pre_array_i:w|
+% command |\@@_CodeBefore_Body:w|. After that job, the command |\@@_CodeBefore_Body:w|
% will go on with |\@@_pre_array:|.
% \begin{macrocode}
- \IfBooleanTF { #6 } \@@_pre_array_i:w \@@_pre_array:
+ \IfBooleanTF { #6 } \@@_CodeBefore_Body:w \@@_pre_array:
}
% \end{macrocode}
%
@@ -9789,18 +9824,13 @@ version 2005/12/01 or later.
\q_stop { }
}
{
- \str_case_e:nnF { #1 }
- {
- \l_@@_letter_for_dotted_lines_str
- { \@@_patch_preamble_xii:n #1 }
- \l_@@_letter_vlism_tl
- {
- \seq_gput_right:Nx \g_@@_cols_vlism_seq
- { \int_eval:n { \c@jCol + 1 } }
- \tl_gput_right:Nx \g_@@_preamble_tl
- { \exp_not:N ! { \skip_horizontal:N \arrayrulewidth } }
- \@@_patch_preamble:n
- }
+ \str_if_eq:nVTF { #1 } \l_@@_letter_vlism_tl
+ {
+ \seq_gput_right:Nx \g_@@_cols_vlism_seq
+ { \int_eval:n { \c@jCol + 1 } }
+ \tl_gput_right:Nx \g_@@_preamble_tl
+ { \exp_not:N ! { \skip_horizontal:N \arrayrulewidth } }
+ \@@_patch_preamble:n
}
% \end{macrocode}
% Now the case of a letter set by the final user for a customized rule. Such
@@ -9814,9 +9844,11 @@ version 2005/12/01 or later.
% will use, instead, letters in the preamble of its array).
% \begin{macrocode}
{
- \keys_set_known:nnN { NiceMatrix / ColumnTypes } { #1 } \l_tmpa_tl
- \tl_if_empty:NTF \l_tmpa_tl
- \@@_patch_preamble:n
+ \keys_if_exist:nnTF { NiceMatrix / ColumnTypes } { #1 }
+ {
+ \keys_set:nn { NiceMatrix / ColumnTypes } { #1 }
+ \@@_patch_preamble:n
+ }
{ \@@_fatal:nn { unknown~column~type } { #1 } }
}
}
@@ -10485,21 +10517,6 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% \bigskip
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_patch_preamble_xii:n #1
- {
- \tl_gput_right:Nn \g_@@_preamble_tl
- { ! { \skip_horizontal:N 2\l_@@_xdots_radius_dim } }
-% \end{macrocode}
-% The command |\@@_vdottedline:n| is protected, and, therefore, won't be
-% expanded before writing on |\g_@@_internal_code_after_tl|.
-% \begin{macrocode}
- \tl_gput_right:Nx \g_@@_internal_code_after_tl
- { \@@_vdottedline:n { \int_use:N \c@jCol } }
- \@@_patch_preamble:n
- }
-% \end{macrocode}
%
% \bigskip
% After a specifier of column, we have to test whether there is one or several
@@ -10908,8 +10925,14 @@ version 2005/12/01 or later.
\@@_create_extra_nodes:
\seq_if_empty:NF \g_@@_blocks_seq \@@_draw_blocks:
}
+% \end{macrocode}
+% We don't do the following test with |\c@tabularnote| because the value of that
+% counter is not reliable when the command |\ttabbox| of \pkg{floatrow} is used
+% (because |\ttabbox| de-activate |\stepcounter| because if compiles several
+% twice its tabular).
+% \begin{macrocode}
\bool_lazy_or:nnT
- { \int_compare_p:nNn \c@tabularnote > 0 }
+ { ! \seq_if_empty_p:N \g_@@_tabularnotes_seq }
{ ! \tl_if_empty_p:V \l_@@_tabularnote_tl }
\@@_insert_tabularnotes:
\end { minipage }
@@ -11881,7 +11904,7 @@ version 2005/12/01 or later.
\seq_gset_from_clist:Nn \exp_not:N \g_@@_pos_of_blocks_seq
{ \seq_use:Nnnn \g_@@_pos_of_blocks_seq , , , }
}
- }
+ }
\seq_if_empty:NF \g_@@_multicolumn_cells_seq
{
\tl_gput_right:Nx \g_@@_aux_tl
@@ -11981,10 +12004,14 @@ version 2005/12/01 or later.
\dim_set:Nn \l_@@_xdots_radius_dim { 0.7 \l_@@_xdots_radius_dim }
\dim_set:Nn \l_@@_xdots_inter_dim { 0.55 \l_@@_xdots_inter_dim }
% \end{macrocode}
-% The dimension |\l_@@_xdots_shorten_dim| corresponds to the option
-% |xdots/shorten| available to the user.
+% The dimensions |\l_@@_xdots_shorten_start_dim| and
+% |\l_@@_xdots_shorten_start_dim| correspond to the options
+% |xdots/shorten-start| and |xdots/shorten-end| available to the user.
% \begin{macrocode}
- \dim_set:Nn \l_@@_xdots_shorten_dim { 0.6 \l_@@_xdots_shorten_dim }
+ \dim_set:Nn \l_@@_xdots_shorten_start_dim
+ { 0.6 \l_@@_xdots_shorten_start_dim }
+ \dim_set:Nn \l_@@_xdots_shorten_end_dim
+ { 0.6 \l_@@_xdots_shorten_end_dim }
}
% \end{macrocode}
%
@@ -13217,8 +13244,8 @@ version 2005/12/01 or later.
\draw
[
#1 ,
- shorten~> = \l_@@_xdots_shorten_dim ,
- shorten~< = \l_@@_xdots_shorten_dim ,
+ shorten~> = \l_@@_xdots_shorten_end_dim ,
+ shorten~< = \l_@@_xdots_shorten_start_dim ,
]
( \l_@@_x_initial_dim , \l_@@_y_initial_dim )
% \end{macrocode}
@@ -13338,7 +13365,7 @@ version 2005/12/01 or later.
\int_set:Nn \l_tmpa_int
{
\dim_ratio:nn
- { \l_@@_l_dim - \l_@@_xdots_shorten_dim }
+ { \l_@@_l_dim - \l_@@_xdots_shorten_start_dim }
\l_@@_xdots_inter_dim
}
}
@@ -13349,7 +13376,7 @@ version 2005/12/01 or later.
\int_set:Nn \l_tmpa_int
{
\dim_ratio:nn
- { \l_@@_l_dim - \l_@@_xdots_shorten_dim }
+ { \l_@@_l_dim - \l_@@_xdots_shorten_end_dim }
\l_@@_xdots_inter_dim
}
}
@@ -13357,7 +13384,10 @@ version 2005/12/01 or later.
\int_set:Nn \l_tmpa_int
{
\dim_ratio:nn
- { \l_@@_l_dim - 2 \l_@@_xdots_shorten_dim }
+ {
+ \l_@@_l_dim
+ - \l_@@_xdots_shorten_start_dim - \l_@@_xdots_shorten_end_dim
+ }
\l_@@_xdots_inter_dim
}
}
@@ -13380,19 +13410,6 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-% The length $\ell$ is the length of the dotted line. We note $\Delta$ the
-% length between two dots and $n$ the number of intervals between dots. We note
-% $\delta = \frac12(\ell - n \Delta)$. The distance between the initial
-% extremity of the line and the first dot will be equal to $k\cdot\delta$ where
-% $k=0$, $1$ or $2$. We first compute this number $k$ in |\l_tmpb_int|.
-% \begin{macrocode}
- \int_set:Nn \l_tmpb_int
- {
- \bool_if:NTF \l_@@_initial_open_bool
- { \bool_if:NTF \l_@@_final_open_bool 1 0 }
- { \bool_if:NTF \l_@@_final_open_bool 2 1 }
- }
-% \end{macrocode}
% In the loop over the dots, the dimensions |\l_@@_x_initial_dim| and
% |\l_@@_y_initial_dim| will be used for the coordinates of the dots. But,
% before the loop, we must move until the first dot.
@@ -13402,17 +13419,21 @@ version 2005/12/01 or later.
{
( \l_@@_x_final_dim - \l_@@_x_initial_dim ) *
\dim_ratio:nn
- { \l_@@_l_dim - \l_@@_xdots_inter_dim * \l_tmpa_int }
+ {
+ \l_@@_l_dim - \l_@@_xdots_inter_dim * \l_tmpa_int
+ + \l_@@_xdots_shorten_start_dim - \l_@@_xdots_shorten_end_dim
+ }
{ 2 \l_@@_l_dim }
- * \l_tmpb_int
}
\dim_gadd:Nn \l_@@_y_initial_dim
{
( \l_@@_y_final_dim - \l_@@_y_initial_dim ) *
\dim_ratio:nn
- { \l_@@_l_dim - \l_@@_xdots_inter_dim * \l_tmpa_int }
+ {
+ \l_@@_l_dim - \l_@@_xdots_inter_dim * \l_tmpa_int
+ + \l_@@_xdots_shorten_start_dim - \l_@@_xdots_shorten_end_dim
+ }
{ 2 \l_@@_l_dim }
- * \l_tmpb_int
}
\pgf@relevantforpicturesizefalse
\int_step_inline:nnn 0 \l_tmpa_int
@@ -13856,13 +13877,25 @@ version 2005/12/01 or later.
% array (in the format $i$-$j$) and draws a dotted line between these cells.
%
% \medskip
-% First, we write a command with an argument of the format $i$-$j$ and applies
-% the command |\int_eval:n| to $i$ and~$j$ ; this must \emph{not} be protected
-% (and is, of course fully expandable).\footnote{Indeed, we want that the user
-% may use the command |\line| in |\CodeAfter| with LaTeX counters in the
-% arguments --- with the command |\value|.}
+% First, we write a command with the following behaviour:
+% \begin{itemize}
+% \item If the argument is of the format $i$-$j$, our command applies
+% the command |\int_eval:n| to $i$ and~$j$ ;
+% \item If not (that is to say, when it's a name of a |\Block|), the argument is
+% left unchanged.
+% \end{itemize}
+% This must \emph{not} be protected (and is, of course fully
+% expandable).\footnote{Indeed, we want that the user may use the command
+% |\line| in |\CodeAfter| with LaTeX counters in the arguments --- with the
+% command |\value|.}
% \begin{macrocode}
\cs_new:Npn \@@_double_int_eval:n #1-#2 \q_stop
+ {
+ \tl_if_empty:nTF { #2 }
+ { #1 }
+ { \@@_double_int_eval_i:n #1-#2 \q_stop }
+ }
+\cs_new:Npn \@@_double_int_eval_i:n #1-#2- \q_stop
{ \int_eval:n { #1 } - \int_eval:n { #2 } }
% \end{macrocode}
%
@@ -13885,8 +13918,8 @@ version 2005/12/01 or later.
\use:e
{
\@@_line_i:nn
- { \@@_double_int_eval:n #2 \q_stop }
- { \@@_double_int_eval:n #3 \q_stop }
+ { \@@_double_int_eval:n #2 - \q_stop }
+ { \@@_double_int_eval:n #3 - \q_stop }
}
\group_end:
}
@@ -14762,13 +14795,6 @@ version 2005/12/01 or later.
start .int_set:N = \l_@@_start_int ,
start .initial:n = 1 ,
end .int_set:N = \l_@@_end_int ,
-% \end{macrocode}
-% The following keys are no-op because there are keys which may be inherited
-% from a list of pairs \textsl{key=value} of a definition of a customized rule
-% (with the key |custom-line| of |\NiceMatrixOptions|).
-% \begin{macrocode}
- % letter .code:n = \prg_do_nothing: ,
- % command .code:n = \prg_do_nothing:
}
% \end{macrocode}
%
@@ -14800,8 +14826,9 @@ version 2005/12/01 or later.
tikz .tl_set:N = \l_@@_tikz_rule_tl ,
tikz .value_required:n = true ,
tikz .initial:n = ,
- width .dim_set:N = \l_@@_rule_width_dim ,
- width .value_required:n = true
+ total-width .dim_set:N = \l_@@_rule_width_dim ,
+ total-width .value_required:n = true ,
+ width .meta:n = { total-width = #1 }
}
% \end{macrocode}
%
@@ -14919,13 +14946,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Npn \@@_vline_ii:
{
- \bool_set_false:N \l_@@_dotted_boo
-% \end{macrocode}
-% We use |\keys_set_known:nV| and not |\keys_set:nV| because there may be the
-% keys |letter| and |command| in the list (these keys are present if the rule
-% comes from a customized line (created by |custom-line|).
-% \begin{macrocode}
- \keys_set_known:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \bool_set_false:N \l_@@_dotted_bool
+ \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_vline_iv:
{
@@ -14937,8 +14959,8 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% First the case of a standard rule, that is to say a rule which is not dotted
-% (and the user has not used the key |tikz|).
+% First the case of a standard rule: the user has not used the key |dotted| nor
+% the key |tikz|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_vline_iii:
{
@@ -14948,7 +14970,14 @@ version 2005/12/01 or later.
\@@_qpoint:n { row - \int_use:N \l_@@_local_start_int }
\dim_set_eq:NN \l_tmpa_dim \pgf@y
\@@_qpoint:n { col - \int_use:N \l_@@_position_int }
- \dim_set_eq:NN \l_tmpb_dim \pgf@x
+ \dim_set:Nn \l_tmpb_dim
+ {
+ \pgf@x
+ - 0.5 \l_@@_rule_width_dim
+ +
+ ( \arrayrulewidth * \l_@@_multiplicity_int
+ + \doublerulesep * ( \l_@@_multiplicity_int - 1 ) ) / 2
+ }
\@@_qpoint:n { row - \int_eval:n { \l_@@_local_end_int + 1 } }
\dim_set_eq:NN \l_@@_tmpc_dim \pgf@y
\bool_lazy_all:nT
@@ -15001,8 +15030,8 @@ version 2005/12/01 or later.
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
\@@_qpoint:n { col - \int_use:N \l_@@_position_int }
- \dim_set_eq:NN \l_@@_x_initial_dim \pgf@x
- \dim_set_eq:NN \l_@@_x_final_dim \pgf@x
+ \dim_set:Nn \l_@@_x_initial_dim { \pgf@x - 0.5 \l_@@_rule_width_dim }
+ \dim_set_eq:NN \l_@@_x_final_dim \l_@@_x_initial_dim
\@@_qpoint:n { row - \int_use:N \l_@@_local_start_int }
\dim_set_eq:NN \l_@@_y_initial_dim \pgf@y
\@@_qpoint:n { row - \int_eval:n { \l_@@_local_end_int + 1 } }
@@ -15057,7 +15086,7 @@ version 2005/12/01 or later.
{
\tl_if_eq:NnF \l_@@_vlines_clist { all }
{ \clist_if_in:NnT \l_@@_vlines_clist { ##1 } }
- { \@@_vline:n { position = ##1 } }
+ { \@@_vline:n { position = ##1 , total-width = \arrayrulewidth } }
}
}
% \end{macrocode}
@@ -15174,12 +15203,7 @@ version 2005/12/01 or later.
\cs_new_protected:Npn \@@_hline_ii:
{
\bool_set_false:N \l_@@_dotted_bool
-% \end{macrocode}
-% We use |\keys_set_known:nV| and not |\keys_set:nV| because there may be the
-% keys |letter| and |command| in the list (these keys are present if the rule
-% comes from a customized line (created by |custom-line|).
-% \begin{macrocode}
- \keys_set_known:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
+ \keys_set:nV { NiceMatrix / RulesBis } \l_@@_other_keys_tl
\bool_if:NTF \l_@@_dotted_bool
\@@_hline_iv:
{
@@ -15191,7 +15215,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% First the case of a standard rule, that is to say a rule which is not dotted.
+% First the case of a standard rule (without the keys |dotted| and |tikz|).
% \begin{macrocode}
\cs_new_protected:Npn \@@_hline_iii:
{
@@ -15201,7 +15225,14 @@ version 2005/12/01 or later.
\@@_qpoint:n { col - \int_use:N \l_@@_local_start_int }
\dim_set_eq:NN \l_tmpa_dim \pgf@x
\@@_qpoint:n { row - \int_use:N \l_@@_position_int }
- \dim_set_eq:NN \l_tmpb_dim \pgf@y
+ \dim_set:Nn \l_tmpb_dim
+ {
+ \pgf@y
+ - 0.5 \l_@@_rule_width_dim
+ +
+ ( \arrayrulewidth * \l_@@_multiplicity_int
+ + \doublerulesep * ( \l_@@_multiplicity_int - 1 ) ) / 2
+ }
\@@_qpoint:n { col - \int_eval:n { \l_@@_local_end_int + 1 } }
\dim_set_eq:NN \l_@@_tmpc_dim \pgf@x
\bool_lazy_all:nT
@@ -15294,8 +15325,8 @@ version 2005/12/01 or later.
\pgfrememberpicturepositiononpagetrue
\pgf@relevantforpicturesizefalse
\@@_qpoint:n { row - \int_use:N \l_@@_position_int }
- \dim_set_eq:NN \l_@@_y_initial_dim \pgf@y
- \dim_set_eq:NN \l_@@_y_final_dim \pgf@y
+ \dim_set:Nn \l_@@_y_initial_dim { \pgf@y - 0.5 \l_@@_rule_width_dim }
+ \dim_set_eq:NN \l_@@_y_final_dim \l_@@_y_initial_dim
\@@_qpoint:n { col - \int_use:N \l_@@_local_start_int }
\dim_set_eq:NN \l_@@_x_initial_dim \pgf@x
\int_compare:nNnT \l_@@_local_start_int = 1
@@ -15371,7 +15402,7 @@ version 2005/12/01 or later.
{
\tl_if_eq:NnF \l_@@_hlines_clist { all }
{ \clist_if_in:NnT \l_@@_hlines_clist { ##1 } }
- { \@@_hline:n { position = ##1 } }
+ { \@@_hline:n { position = ##1 , total-width = \arrayrulewidth } }
}
}
% \end{macrocode}
@@ -15452,21 +15483,52 @@ version 2005/12/01 or later.
{
\str_clear_new:N \l_@@_command_str
\str_clear_new:N \l_@@_letter_str
- \dim_zero_new:N \l_@@_rule_width_dim
+ \keys_set_known:nnN { NiceMatrix / custom-line } { #1 } \l_@@_other_keys_tl
% \end{macrocode}
-% The token list |\l_tmpa_tl| is for the key |color|.
+% If the final user only wants to draw horizontal rules, he does not need to
+% specify a letter (for the vertical rules in the preamble of the array). On the
+% other hand, if he only wants to draw vertical rules, he does not need to
+% define a command (which is the tool to draw horizontal rules in the array). Of
+% course, a definition of custom lines with no letter and no command would be point-less.
+%
% \begin{macrocode}
- \tl_clear:N \l_tmpa_tl
+ \bool_lazy_and:nnTF
+ { \str_if_empty_p:N \l_@@_letter_str }
+ { \str_if_empty_p:N \l_@@_command_str }
+ { \@@_error:n { No~letter~and~no~command } }
+ { \exp_args:NV \@@_custom_line_i:n \l_@@_other_keys_tl }
+ }
% \end{macrocode}
-% The flag |\l_tmpa_bool| will indicate whether the key |tikz| is present.
+%
+%
+%
% \begin{macrocode}
- \bool_set_false:N \l_tmpa_bool
+\keys_define:nn { NiceMatrix / custom-line }
+ {
+ % here, we will use change in the future to use .str_set:N
+ letter .code:n = \str_set:Nn \l_@@_letter_str { #1 } ,
+ letter .value_required:n = true ,
+ % here, we will use change in the future to use .str_set:N
+ command .code:n = \str_set:Nn \l_@@_command_str { #1 } ,
+ command .value_required:n = true ,
+ }
% \end{macrocode}
-% The flag |\l_tmpb_bool| will indicate whether the key |width| is present.
+%
+% \bigskip
% \begin{macrocode}
- \bool_set_false:N \l_tmpb_bool
- \keys_set_known:nn { NiceMatrix / Custom-Line } { #1 }
- \bool_if:NT \l_tmpa_bool
+\cs_new_protected:Npn \@@_custom_line_i:n #1
+ {
+% \end{macrocode}
+% The following flags will be raised when the keys |tikz|, |dotted| and |color|
+% are used (in the |custom-line|).
+% \begin{macrocode}
+ \bool_set_false:N \l_@@_tikz_rule_bool
+ \bool_set_false:N \l_@@_dotted_rule_bool
+ \bool_set_false:N \l_@@_color_bool
+% \end{macrocode}
+% \begin{macrocode}
+ \keys_set:nn { NiceMatrix / custom-line-bis } { #1 }
+ \bool_if:NT \l_@@_tikz_rule_bool
{
% \end{macrocode}
% We can't use |\c_@@_tikz_loaded_bool| to test whether \pkg{tikz} is loaded
@@ -15474,118 +15536,108 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_if_exist:NF \tikzpicture
{ \@@_error:n { tikz~in~custom-line~without~tikz } }
- \tl_if_empty:NF \l_tmpa_tl
+ \bool_if:NT \l_@@_color_bool
{ \@@_error:n { color~in~custom-line~with~tikz } }
}
- \bool_if:NT \l_tmpb_bool
+ \bool_if:nT
{
- \bool_if:NF \l_tmpa_bool
- { \@@_error:n { key~width~without~key~tikz } }
+ \int_compare_p:nNn \l_@@_multiplicity_int > 1
+ && \l_@@_dotted_rule_bool
}
-% \end{macrocode}
-% If the final user only wants to draw horizontal rules, he does not need to
-% specify a letter (for the vertical rules in the preamble of the array). On the
-% other hand, if he only wants to draw vertical rules, he does not need to
-% define a command (which is the tool to draw horizontal rules in the array). Of
-% course, a definition of custom lines with no letter and no command would be point-less.
-%
-% \begin{macrocode}
- \bool_lazy_and:nnTF
- { \str_if_empty_p:N \l_@@_letter_str }
- { \str_if_empty_p:N \l_@@_command_str }
- { \@@_error:n { No~letter~and~no~command } }
+ { \@@_error:n { key~multiplicity~with~dotted } }
+ \str_if_empty:NF \l_@@_letter_str
{
- \str_if_empty:NF \l_@@_letter_str
+ \int_compare:nTF { \str_count:N \l_@@_letter_str != 1 }
+ { \@@_error:n { Several~letters } }
{
- \int_compare:nNnTF { \str_count:N \l_@@_letter_str } = 1
- {
- \exp_args:NnV \tl_if_in:NnTF
- \c_@@_forbidden_letters_str \l_@@_letter_str
- { \@@_error:n { Forbidden~letter } }
- {
+ \exp_args:NnV \tl_if_in:NnTF
+ \c_@@_forbidden_letters_str \l_@@_letter_str
+ { \@@_error:n { Forbidden~letter } }
+ {
% \end{macrocode}
% The final user can, locally, redefine a letter of column type. That's
% compatible with the use of |\keys_define:nn|: the definition is local and may
% overwrite a previous definition.
% \begin{macrocode}
- \keys_define:nx { NiceMatrix / ColumnTypes }
- {
- \l_@@_letter_str .code:n =
- { \@@_custom_line_i:n { \exp_not:n { #1 } } }
- }
- }
- }
- { \@@_error:n { Several~letters } }
- }
- \str_if_empty:NF \l_@@_command_str
- {
-% \end{macrocode}
-% The flag |\l_tmpa_bool| means that the key 'tikz' have been used. When the key
-% 'tikz' has not been used, the width of the rule is computed with the
-% multiplicity of the rule.
-% \begin{macrocode}
- \bool_if:NF \l_tmpa_bool
- {
- \dim_set:Nn \l_@@_rule_width_dim
- {
- \arrayrulewidth * \l_@@_tmpc_int
- + \doublerulesep * ( \l_@@_tmpc_int - 1 )
- }
- }
- \@@_define_h_custom_line:nV { #1 } \l_@@_rule_width_dim
- }
- }
- }
+ \keys_define:nx { NiceMatrix / ColumnTypes }
+ {
+ \l_@@_letter_str .code:n =
+ { \@@_v_custom_line:n { \exp_not:n { #1 } } }
+ }
+ }
+ }
+ }
+ \str_if_empty:NF \l_@@_command_str { \@@_h_custom_line:n { #1 } }
+ }
% \end{macrocode}
%
+%
% \begin{macrocode}
\str_const:Nn \c_@@_forbidden_letters_str { lcrpmbVX|()[]!@<> }
% \end{macrocode}
%
% \medskip
-% The previous command |\@@_custom_line:n| uses the following set of keys.
+% The previous command |\@@_custom_line_i:n| uses the following set of keys.
% However, the whole definition of the customized lines (as provided by the
% final user as argument of |custom-line|) will also be used further with
% other sets of keys (for instance |{NiceMatrix/Rules}|). That's why the
-% following set of keys has only entries for a few keys.
+% following set of keys has some keys which are no-op.
% \begin{macrocode}
-\keys_define:nn { NiceMatrix / Custom-Line }
+\keys_define:nn { NiceMatrix / custom-line-bis }
{
- % here, we will use change in the future to use .tl_set:N
- letter .code:n = \str_set:Nn \l_@@_letter_str { #1 } ,
- letter .value_required:n = true ,
- % here, we will use change in the future to use .tl_set:N
- command .code:n = \str_set:Nn \l_@@_command_str { #1 } ,
- command .value_required:n = true ,
- multiplicity .int_set:N = \l_@@_tmpc_int ,
+ multiplicity .int_set:N = \l_@@_multiplicity_int ,
multiplicity .initial:n = 1 ,
multiplicity .value_required:n = true ,
- color .tl_set:N = \l_tmpa_tl ,
- color .value_required:n = true ,
+ color .code:n = \bool_set_true:N \l_@@_color_bool ,
+ color .value_required:n = true ,
+ tikz .code:n = \bool_set_true:N \l_@@_tikz_rule_bool ,
+ tikz .value_required:n = true ,
+ dotted .code:n = \bool_set_true:N \l_@@_dotted_rule_bool ,
+ dotted .value_forbidden:n = true ,
+ total-width .code:n = { } ,
+ total-width .value_required:n = true ,
+ width .code:n = { } ,
+ width .value_required:n = true ,
+ sep-color .code:n = { } ,
+ sep-color .value_required:n = true ,
+ unknown .code:n = \@@_error:n { Unknown~key~for~custom-line }
+ }
% \end{macrocode}
-% When the key |tikz| is used, the rule will be drawn with Tikz by using the set
-% of keys specified in the value of that key |tikz|.
+%
+% The following keys will indicate whether the keys |dotted|, |tikz| and |color|
+% are used in the use of a |custom-line|.
% \begin{macrocode}
- tikz .code:n = \bool_set_true:N \l_tmpa_bool ,
+\bool_new:N \l_@@_dotted_rule_bool
+\bool_new:N \l_@@_tikz_rule_bool
+\bool_new:N \l_@@_color_bool
% \end{macrocode}
-% The key |width| must be used only when the key |tikz| is used. When used, the
-% key |width| specifies the width of the rule: it will be used to reserve space
-% (in the preamble of the array or in the command for the horizontal rules).
+%
+% \bigskip
+% The following keys are used to determine the total width of the line
+% (including the spaces on both sides of the line). The key |width| is
+% deprecated and has been replaced by the key |total-width|.
+%
% \begin{macrocode}
- width .code:n = \dim_set:Nn \l_@@_rule_width_dim { #1 }
- \bool_set_true:N \l_tmpb_bool ,
- width .value_required:n = true ,
- unknown .code:n = \@@_error:n { Unknown~key~for~custom-line }
+\keys_define:nn { NiceMatrix / custom-line-width }
+ {
+ multiplicity .int_set:N = \l_@@_multiplicity_int ,
+ multiplicity .initial:n = 1 ,
+ multiplicity .value_required:n = true ,
+ tikz .code:n = \bool_set_true:N \l_@@_tikz_rule_bool ,
+ total-width .code:n = \dim_set:Nn \l_@@_rule_width_dim { #1 }
+ \bool_set_true:N \l_@@_total_width_bool ,
+ total-width .value_required:n = true ,
+ width .meta:n = { total-width = #1 } ,
+ dotted .code:n = \bool_set_true:N \l_@@_dotted_rule_bool ,
}
% \end{macrocode}
%
% \bigskip
% The following command will create the command that the final user will use in
-% its array to draw a horizontal rule (hence the `|h|` in the name). |#1| is the
-% whole set of keys to pass to |\@@_line:n| and |#2| is the widht of the whole
-% rule.
+% its array to draw an horizontal rule (hence the `|h|` in the name). |#1| is the
+% whole set of keys to pass to |\@@_line:n|.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_define_h_custom_line:nn #1 #2
+\cs_new_protected:Npn \@@_h_custom_line:n #1
{
% \end{macrocode}
% We use |\cs_set:cpn| and not |\cs_new:cpn| because we want a local definition.
@@ -15595,37 +15647,68 @@ version 2005/12/01 or later.
{
\noalign
{
- \skip_vertical:n { #2 }
+ \@@_compute_rule_width:n { #1 }
+ \skip_vertical:n { \l_@@_rule_width_dim }
\tl_gput_right:Nx \g_@@_internal_code_after_tl
- { \@@_hline:n { #1 , position = \int_eval:n { \c@iRow + 1 } } }
+ {
+ \@@_hline:n
+ {
+ #1 ,
+ position = \int_eval:n { \c@iRow + 1 } ,
+ total-width = \dim_use:N \l_@@_rule_width_dim
+ }
+ }
}
}
\seq_put_left:NV \l_@@_custom_line_commands_seq \l_@@_command_str
}
-\cs_generate_variant:Nn \@@_define_h_custom_line:nn { n V }
+\cs_generate_variant:Nn \@@_h_custom_line:nn { n V }
% \end{macrocode}
%
-% The flag |\l_tmpa_bool| means that the key 'tikz' have been used. When the key
-% 'tikz' has not been used, the width of the rule is computed with the
-% multiplicity of the rule.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_custom_line_i:n #1
+\cs_new_protected:Npn \@@_compute_rule_width:n #1
{
- \bool_if:NF \l_tmpa_bool
- {
- \dim_set:Nn \l_@@_rule_width_dim
- {
- \arrayrulewidth * \l_@@_tmpc_int
- + \doublerulesep * ( \l_@@_tmpc_int - 1)
- }
+ \bool_set_false:N \l_@@_tikz_rule_bool
+ \bool_set_false:N \l_@@_total_width_bool
+ \bool_set_false:N \l_@@_dotted_rule_bool
+ \keys_set_known:nn { NiceMatrix / custom-line-width } { #1 }
+ \bool_if:NF \l_@@_total_width_bool
+ {
+ \bool_if:NTF \l_@@_dotted_rule_bool
+ { \dim_set:Nn \l_@@_rule_width_dim { 2 \l_@@_xdots_radius_dim } }
+ {
+ \bool_if:NF \l_@@_tikz_rule_bool
+ {
+ \dim_set:Nn \l_@@_rule_width_dim
+ {
+ \arrayrulewidth * \l_@@_multiplicity_int
+ + \doublerulesep * ( \l_@@_multiplicity_int - 1 )
+ }
+ }
+ }
}
+ }
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_v_custom_line:n #1
+ {
+ \@@_compute_rule_width:n { #1 }
+% \end{macrocode}
+% In the following line, the |\dim_use:N| is mandatory since we do an expansion.
+% \begin{macrocode}
\tl_gput_right:Nx \g_@@_preamble_tl
+ { \exp_not:N ! { \skip_horizontal:n { \dim_use:N \l_@@_rule_width_dim } } }
+ \tl_gput_right:Nx \g_@@_internal_code_after_tl
{
- \exp_not:N !
- { \skip_horizontal:n { \dim_use:N \l_@@_rule_width_dim } }
+ \@@_vline:n
+ {
+ #1 ,
+ position = \int_eval:n { \c@jCol + 1 } ,
+ total-width = \dim_use:N \l_@@_rule_width_dim
+ }
}
- \tl_gput_right:Nx \g_@@_internal_code_after_tl
- { \@@_vline:n { #1 , position = \int_eval:n { \c@jCol + 1 } } }
}
% \end{macrocode}
%
@@ -15641,7 +15724,7 @@ version 2005/12/01 or later.
% |#1|, |#2|, |#3| and |#4|. If this rule would be in the block (it must not be
% drawn), the boolean |\l_tmpa_bool| is set to |false|.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_test_hline_in_block:nnnnn #1 #2 #3 #4
+\cs_new_protected:Npn \@@_test_hline_in_block:nnnnn #1 #2 #3 #4 #5
{
\bool_lazy_all:nT
{
@@ -15656,7 +15739,7 @@ version 2005/12/01 or later.
%
% The same for vertical rules.
% \begin{macrocode}
-\cs_new_protected:Npn \@@_test_vline_in_block:nnnnn #1 #2 #3 #4
+\cs_new_protected:Npn \@@_test_vline_in_block:nnnnn #1 #2 #3 #4 #5
{
\bool_lazy_all:nT
{
@@ -15884,62 +15967,7 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
-%
-% \bigskip
-% \subsection*{The commands to draw dotted lines to separate columns and rows}
-%
-% These commands don't use the normal nodes, the medium nor the large nodes.
-% They only use the |col| nodes and the |row| nodes.
-%
-% \textbf{Horizontal dotted lines}\par\nobreak
-%
-% \medskip
-% The following command must \emph{not} be protected because it's meant to be
-% expanded in a |\noalign|.
-% \begin{macrocode}
-\cs_new:Npn \@@_hdottedline:
- {
- \noalign { \skip_vertical:N 2\l_@@_xdots_radius_dim }
- \@@_hdottedline_i:
- }
-% \end{macrocode}
-%
-% \medskip
-% On the other side, the following command should be protected.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_hdottedline_i:
- {
-% \end{macrocode}
-% We write in the internal |\CodeAfter| the instruction that will actually draw
-% the dotted line. It's not possible to draw this dotted line now because we
-% don't know the length of the line (we don't even know the number of columns).
-% \begin{macrocode}
- \tl_gput_right:Nx \g_@@_internal_code_after_tl
- { \@@_hdottedline:n { \int_use:N \c@iRow } }
- }
-% \end{macrocode}
-%
-%
-% \medskip
-% The command |\@@_hdottedline:n| is the command written in the internal
-% |\CodeAfter| that will actually draw the dotted line. Its argument is the
-% number of the row \emph{before} which we will draw the row.
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_hdottedline:n #1
- { \@@_hline:n { position = #1 , end = \int_use:N \c@jCol , dotted } }
-% \end{macrocode}
-%
%
-%
-% \bigskip
-% \textbf{Vertical dotted lines}\par\nobreak
-%
-% \medskip
-% \begin{macrocode}
-\cs_new_protected:Npn \@@_vdottedline:n #1
- { \@@_vline:n { position = \int_eval:n { #1 + 1 } , dotted } }
-% \end{macrocode}
-%
% \bigskip
% \subsection*{The environment \{NiceMatrixBlock\}}
%
@@ -16935,7 +16963,7 @@ version 2005/12/01 or later.
% |\multicolumn| and the |\diagbox| in that sequence).
% \begin{macrocode}
\seq_gput_left:Nx \g_@@_pos_of_blocks_seq
- { { #1 } { #2 } { #3 } { #4 } { \l_@@_block_name_str } }
+ { { #1 } { #2 } { #3 } { #4 } { \l_@@_block_name_str } }
}
% \end{macrocode}
%
@@ -17441,7 +17469,8 @@ version 2005/12/01 or later.
{
position = ##1 ,
start = \l_@@_tmpd_tl ,
- end = \int_eval:n { \l_tmpb_tl - 1 }
+ end = \int_eval:n { \l_tmpb_tl - 1 } ,
+ total-width = \arrayrulewidth
}
}
}
@@ -18096,7 +18125,7 @@ version 2005/12/01 or later.
hvlines .value_forbidden:n = true ,
name .code:n =
\tl_if_empty:nTF { #1 }
- { \@@_error:n { Invalid~name~format } }
+ { \@@_error:n { Invalid~name } }
{
\regex_match:nnTF { \A[A-Za-z][A-Za-z0-9]*\Z } { #1 }
{
@@ -18107,7 +18136,7 @@ version 2005/12/01 or later.
\seq_gput_right:Nn \g_@@_submatrix_names_seq { #1 }
}
}
- { \@@_error:n { Invalid~name~format } }
+ { \@@_error:n { Invalid~name } }
} ,
rules .code:n = \keys_set:nn { NiceMatrix / rules } { #1 } ,
rules .value_required:n = true ,
@@ -18240,10 +18269,10 @@ version 2005/12/01 or later.
}
}
\dim_compare:nNnTF \l_@@_x_initial_dim = \c_max_dim
- { \@@_error:nn { impossible~delimiter } { left } }
+ { \@@_error:nn { Impossible~delimiter } { left } }
{
\dim_compare:nNnTF \l_@@_x_final_dim = { - \c_max_dim }
- { \@@_error:nn { impossible~delimiter } { right } }
+ { \@@_error:nn { Impossible~delimiter } { right } }
{ \@@_sub_matrix_i:nnnn { #1 } { #4 } { #6 } { #7 } }
}
\endpgfpicture
@@ -18826,39 +18855,47 @@ version 2005/12/01 or later.
% \begin{macrocode}
\NewDocumentCommand \@@_ShowCellNames { }
{
+ \dim_zero_new:N \g_@@_tmpc_dim
+ \dim_zero_new:N \g_@@_tmpd_dim
+ \dim_zero_new:N \g_@@_tmpe_dim
\int_step_inline:nn \c@iRow
{
- \begin { tikzpicture }
+ \begin { pgfpicture }
\@@_qpoint:n { row - ##1 }
\dim_set_eq:NN \l_tmpa_dim \pgf@y
\@@_qpoint:n { row - \int_eval:n { ##1 + 1 } }
\dim_gset:Nn \g_tmpa_dim { ( \l_tmpa_dim + \pgf@y ) / 2 }
\dim_gset:Nn \g_tmpb_dim { \l_tmpa_dim - \pgf@y }
- \end { tikzpicture }
+ \end { pgfpicture }
\int_step_inline:nn \c@jCol
{
\hbox_set:Nn \l_tmpa_box
{ \normalfont \Large \color { red ! 50 } ##1 - ####1 }
- \begin { tikzpicture }
+ \begin { pgfpicture }
\@@_qpoint:n { col - ####1 }
- \dim_set_eq:NN \l_@@_tmpc_dim \pgf@x
+ \dim_gset_eq:NN \g_@@_tmpc_dim \pgf@x
\@@_qpoint:n { col - \int_eval:n { ####1 + 1 } }
- \dim_set:Nn \l_tmpa_dim { \pgf@x - \l_@@_tmpc_dim }
+ \dim_gset:Nn \g_@@_tmpd_dim { \pgf@x - \g_@@_tmpc_dim }
+ \dim_gset_eq:NN \g_@@_tmpe_dim \pgf@x
+ \end { pgfpicture }
\fp_set:Nn \l_tmpa_fp
{
\fp_min:nn
{
\fp_min:nn
- { \dim_ratio:nn { \l_tmpa_dim } { \box_wd:N \l_tmpa_box } }
+ { \dim_ratio:nn { \g_@@_tmpd_dim } { \box_wd:N \l_tmpa_box } }
{ \dim_ratio:nn { \g_tmpb_dim } { \box_ht_plus_dp:N \l_tmpa_box } }
}
{ 1.0 }
}
\box_scale:Nnn \l_tmpa_box { \fp_use:N \l_tmpa_fp } { \fp_use:N \l_tmpa_fp }
+ \pgfpicture
+ \pgfrememberpicturepositiononpagetrue
+ \pgf@relevantforpicturesizefalse
\pgftransformshift
{
\pgfpoint
- { 0.5 * ( \l_@@_tmpc_dim + \pgf@x ) }
+ { 0.5 * ( \g_@@_tmpc_dim + \g_@@_tmpe_dim ) }
{ \dim_use:N \g_tmpa_dim }
}
\pgfnode
@@ -18867,7 +18904,7 @@ version 2005/12/01 or later.
{ \box_use:N \l_tmpa_box }
{ }
{ }
- \end { tikzpicture }
+ \endpgfpicture
}
}
}
@@ -18889,6 +18926,13 @@ version 2005/12/01 or later.
% instruction is executed.
%
% \medskip
+% The boolean |\c_@@_messages_for_Overleaf_bool| corresponds to the key
+% |messages-for-Overleaf|.
+% \begin{macrocode}
+\bool_new:N \c_@@_messages_for_Overleaf_bool
+% \end{macrocode}
+%
+% \medskip
% The boolean |\g_@@_footnotehyper_bool| will indicate if the option
% |footnotehyper| is used.
% \begin{macrocode}
@@ -18904,17 +18948,17 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nnn { Unknown~key~for~package }
+\msg_new:nnnn { nicematrix } { Unknown~key~for~package }
{
The~key~'\l_keys_key_str'~is~unknown. \\
- If~you~go~on,~it~will~be~ignored. \\
+ That~key~will~be~ignored. \\
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
The~available~keys~are~(in~alphabetic~order):~
- allow-letter-for-dotted-lines,~
footnote,~
footnotehyper,~
+ messages-for-Overleaf,~
renew-dots,~and
renew-matrix.
}
@@ -18928,18 +18972,9 @@ version 2005/12/01 or later.
renew-dots .value_forbidden:n = true ,
renew-matrix .code:n = \@@_renew_matrix: ,
renew-matrix .value_forbidden:n = true ,
- transparent .code:n = \@@_fatal:n { Key~transparent } ,
- transparent .value_forbidden:n = true,
+ messages-for-Overleaf .bool_set:N = \c_@@_messages_for_Overleaf_bool ,
footnote .bool_set:N = \c_@@_footnote_bool ,
footnotehyper .bool_set:N = \c_@@_footnotehyper_bool ,
- allow-letter-for-dotted-lines .code:n =
- {
- \group_begin:
- \globaldefs = 1
- \@@_msg_redirect_name:nn { letter-for-dotted-lines } { none }
- \group_end:
- } ,
- allow-letter-for-dotted-lines .value_forbidden:n = true ,
unknown .code:n = \@@_error:n { Unknown~key~for~package }
}
\ProcessKeysOptions { NiceMatrix / Package }
@@ -18954,7 +18989,7 @@ version 2005/12/01 or later.
If~you~want,~you~can~use~the~option~'footnotehyper'~and~the~footnotes~
within~the~environments~of~nicematrix~will~be~extracted~with~the~tools~
of~the~package~footnotehyper.\\
- If~you~go~on,~the~package~footnote~won't~be~loaded.
+ The~package~footnote~won't~be~loaded.
}
% \end{macrocode}
%
@@ -18966,7 +19001,7 @@ version 2005/12/01 or later.
If~you~want,~you~can~use~the~option~'footnote'~and~the~footnotes~
within~the~environments~of~nicematrix~will~be~extracted~with~the~tools~
of~the~package~footnote.\\
- If~you~go~on,~the~package~footnotehyper~won't~be~loaded.
+ The~package~footnotehyper~won't~be~loaded.
}
% \end{macrocode}
%
@@ -19013,8 +19048,15 @@ version 2005/12/01 or later.
% \bigskip
% \subsection*{Error messages of the package}
%
+% \begin{macrocode}
+\bool_if:NTF \c_@@_messages_for_Overleaf_bool
+ { \str_const:Nn \c_@@_available_keys_str { } }
+ {
+ \str_const:Nn \c_@@_available_keys_str
+ { For~a~list~of~the~available~keys,~type~H~<return>. }
+ }
+% \end{macrocode}
%
-%
% \begin{macrocode}
\seq_new:N \g_@@_types_of_matrix_seq
\seq_gset_from_clist:Nn \g_@@_types_of_matrix_seq
@@ -19028,10 +19070,10 @@ version 2005/12/01 or later.
%
% \bigskip
% If the user uses too much columns, the command |\@@_error_too_much_cols:| is
-% executed. This command raises an error but try to give the best information to
-% the user in the error message. The command |\seq_if_in:NVTF| is not expandable
-% and that's why we can't put it in the error message itself. We have to do the
-% test before the |\@@_fatal:n|.
+% triggered. This command raises an error but also tries to give the best
+% information to the user in the error message. The command |\seq_if_in:NVTF| is
+% not expandable and that's why we can't put it in the error message itself. We
+% have to do the test before the |\@@_fatal:n|.
% \begin{macrocode}
\cs_new_protected:Npn \@@_error_too_much_cols:
{
@@ -19060,18 +19102,31 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { negative~weight }
{
+ Negative~weight.\\
The~weight~of~the~'X'~columns~must~be~positive~and~you~have~used~
- the~value~'#1'.~If~you~go~on,~the~absolute~value~will~be~used.
+ the~value~'#1'.\\
+ The~absolute~value~will~be~used.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@@_msg_new:nn { last~col~not~used }
+ {
+ Column~not~used.\\
+ The~key~'last-col'~is~in~force~but~you~have~not~used~that~last~column~
+ in~your~\@@_full_name_env:.~However,~you~can~go~on.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { too~much~cols~for~matrix~with~last~col }
{
- You~try~to~use~more~columns~than~allowed~by~your~
- \@@_full_name_env:.\@@_message_hdotsfor:\ The~maximal~number~of~
- columns~is~\int_eval:n { \l_@@_last_col_int - 1 }~(plus~the~
- exterior~columns).~This~error~is~fatal.
+ Too~much~columns.\\
+ In~the~row~\int_eval:n { \c@jCol - 1 },~
+ you~try~to~use~more~columns~
+ than~allowed~by~your~\@@_full_name_env:.\@@_message_hdotsfor:\
+ The~maximal~number~of~columns~is~\int_eval:n { \l_@@_last_col_int - 1 }~
+ (plus~the~exterior~columns).~This~error~is~fatal.
}
% \end{macrocode}
%
@@ -19079,7 +19134,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { too~much~cols~for~matrix }
{
- You~try~to~use~more~columns~than~allowed~by~your~
+ Too~much~columns.\\
+ In~the~row~\int_eval:n { \c@jCol - 1 },~
+ you~try~to~use~more~columns~than~allowed~by~your~
\@@_full_name_env:.\@@_message_hdotsfor:\ Recall~that~the~maximal~
number~of~columns~for~a~matrix~is~fixed~by~the~LaTeX~counter~
'MaxMatrixCols'.~Its~actual~value~is~\int_use:N \c@MaxMatrixCols.~
@@ -19094,7 +19151,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { too~much~cols~for~array }
{
- You~try~to~use~more~columns~than~allowed~by~your~
+ Too~much~columns.\\
+ In~the~row~\int_eval:n { \c@jCol - 1 },~
+ ~you~try~to~use~more~columns~than~allowed~by~your~
\@@_full_name_env:.\@@_message_hdotsfor:\ The~maximal~number~of~columns~is~
\int_use:N \g_@@_static_num_of_col_int\
~(plus~the~potential~exterior~ones).~
@@ -19105,27 +19164,21 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { hvlines-except-corners }
{
+ Obsolete~key.\\
The~key~'hvlines-except-corners'~is~now~obsolete.~You~should~instead~use~the~
keys~'hvlines'~and~'corners'.\\
- However,~you~can~go~on~for~this~time.~This~message~won't~be~shown~anymore~
- in~this~document.
+ This~error~is~fatal.
}
% \end{macrocode}
%
-% \begin{macrocode}
-\@@_msg_new:nn { last~col~not~used }
- {
- The~key~'last-col'~is~in~force~but~you~have~not~used~that~last~column~
- in~your~\@@_full_name_env:.~However,~you~can~go~on.
- }
-% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { columns~not~used }
{
+ Columns~not~used.\\
The~preamble~of~your~\@@_full_name_env:\ announces~\int_use:N
\g_@@_static_num_of_col_int\ columns~but~you~use~only~\int_use:N \c@jCol.\\
- You~can~go~on~but~the~columns~you~did~not~used~won't~be~created.
+ The~columns~you~did~not~used~won't~be~created.
}
% \end{macrocode}
%
@@ -19133,24 +19186,27 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { in~first~col }
{
+ Erroneous~use.\\
You~can't~use~the~command~#1 in~the~first~column~(number~0)~of~the~array.\\
- If~you~go~on,~this~command~will~be~ignored.
+ That~command~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { in~last~col }
{
+ Erroneous~use.\\
You~can't~use~the~command~#1 in~the~last~column~(exterior)~of~the~array.\\
- If~you~go~on,~this~command~will~be~ignored.
+ That~command~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { in~first~row }
{
+ Erroneous~use.\\
You~can't~use~the~command~#1 in~the~first~row~(number~0)~of~the~array.\\
- If~you~go~on,~this~command~will~be~ignored.
+ That~command~will~be~ignored.
}
% \end{macrocode}
%
@@ -19158,13 +19214,14 @@ version 2005/12/01 or later.
\@@_msg_new:nn { in~last~row }
{
You~can't~use~the~command~#1 in~the~last~row~(exterior)~of~the~array.\\
- If~you~go~on,~this~command~will~be~ignored.
+ That~command~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { double~closing~delimiter }
{
+ Double~delimiter.\\
You~can't~put~a~second~closing~delimiter~"#1"~just~after~a~first~closing~
delimiter.~This~delimiter~will~be~ignored.
}
@@ -19173,25 +19230,28 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { delimiter~after~opening }
{
+ Double~delimiter.\\
You~can't~put~a~second~delimiter~"#1"~just~after~a~first~opening~
- delimiter.~This~delimiter~will~be~ignored.
+ delimiter.~That~delimiter~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { bad~option~for~line-style }
{
+ Bad~line~style.\\
Since~you~haven't~loaded~Tikz,~the~only~value~you~can~give~to~'line-style'~
- is~'standard'.~If~you~go~on,~this~key~will~be~ignored.
+ is~'standard'.~That~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nnn { Unknown~key~for~custom-line }
+\@@_msg_new:nnn { Unknown~key~for~custom-line }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~in~a~'custom-line'.~
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~available~keys,~type~H~<return>.
+ It~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19201,17 +19261,18 @@ version 2005/12/01 or later.
letter,~
multiplicity,~
sep-color,~
- tikz,~and~width.
+ tikz,~and~tota-width.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { Unknown~key~for~xdots }
{
+ Unknown~key.\\
As~for~now,~there~is~only~five~keys~available~here:~'color',~'inter',~
'line-style',~'radius',~
and~'shorten'~(and~you~try~to~use~'\l_keys_key_str').~
- If~you~go~on,~this~key~will~be~ignored.
+ That~key~will~be~ignored.
}
% \end{macrocode}
%
@@ -19219,106 +19280,122 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { Unknown~key~for~rowcolors }
{
+ Unknown~key.\\
As~for~now,~there~is~only~two~keys~available~here:~'cols'~and~'respect-blocks'~
- (and~you~try~to~use~'\l_keys_key_str').~If~you~go~on,~
- this~key~will~be~ignored.
+ (and~you~try~to~use~'\l_keys_key_str')\\
+ That~key~will~be~ignored.
}
% \end{macrocode}
%
%
% \begin{macrocode}
-\@@_msg_new:nn { ampersand~in~light-syntax }
+\@@_msg_new:nn { Construct~too~large }
{
- You~can't~use~an~ampersand~(\token_to_str:N &)~to~separate~columns~because~
- ~you~have~used~the~key~'light-syntax'.~This~error~is~fatal.
+ Construct~too~large.\\
+ Your~command~\token_to_str:N #1
+ can't~be~drawn~because~your~matrix~is~too~small.\\
+ That~command~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { Construct~too~large }
+\@@_msg_new:nn { ampersand~in~light-syntax }
{
- Your~command~\token_to_str:N #1
- can't~be~drawn~because~your~matrix~is~too~small.\\
- If~you~go~on,~this~command~will~be~ignored.
+ Ampersand~forbidden.\\
+ You~can't~use~an~ampersand~(\token_to_str:N &)~to~separate~columns~because~
+ ~the~key~'light-syntax'~is~in~force.~This~error~is~fatal.
}
% \end{macrocode}
%
-%
% \begin{macrocode}
\@@_msg_new:nn { double-backslash~in~light-syntax }
{
- You~can't~use~\token_to_str:N \\~to~separate~rows~because~you~have~used~
- the~key~'light-syntax'.~You~must~use~the~character~'\l_@@_end_of_row_tl'~
+ Double~backslash~forbidden.\\
+ You~can't~use~\token_to_str:N
+ \\~to~separate~rows~because~the~key~'light-syntax'~
+ is~in~force.~You~must~use~the~character~'\l_@@_end_of_row_tl'~
(set~by~the~key~'end-of-row').~This~error~is~fatal.
}
% \end{macrocode}
%
-% \begin{macrocode}
-\@@_msg_new:nn { standard-cline~in~document }
- {
- The~key~'standard-cline'~is~available~only~in~the~preamble.\\
- If~you~go~on~this~command~will~be~ignored.
- }
-% \end{macrocode}
-%
%
% \begin{macrocode}
\@@_msg_new:nn { bad~value~for~baseline }
{
+ Bad~value~for~baseline.\\
The~value~given~to~'baseline'~(\int_use:N \l_tmpa_int)~is~not~
valid.~The~value~must~be~between~\int_use:N \l_@@_first_row_int\ and~
- \int_use:N \g_@@_row_total_int\ or~equal~to~'t',~'c'~or~'b'.\\
- If~you~go~on,~a~value~of~1~will~be~used.
+ \int_use:N \g_@@_row_total_int\ or~equal~to~'t',~'c'~or~'b'~or~of~
+ the~form~'line-i'.\\
+ A~value~of~1~will~be~used.
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { Invalid~name~format }
+\@@_msg_new:nn { Invalid~name }
{
+ Invalid~name.\\
You~can't~give~the~name~'\l_keys_value_tl'~to~a~\token_to_str:N
- \SubMatrix.\\
+ \SubMatrix\ of~your~\@@_full_name_env:.\\
A~name~must~be~accepted~by~the~regular~expression~[A-Za-z][A-Za-z0-9]*.\\
- If~you~go~on,~this~key~will~be~ignored.
+ This~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { Wrong~line~in~SubMatrix }
{
+ Wrong~line.\\
You~try~to~draw~a~#1~line~of~number~'#2'~in~a~
\token_to_str:N \SubMatrix\ of~your~\@@_full_name_env:\ but~that~
- number~is~not~valid.~If~you~go~on,~it~will~be~ignored.
+ number~is~not~valid.~It~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { impossible~delimiter }
+\@@_msg_new:nn { Impossible~delimiter }
{
+ Impossible~delimiter.\\
It's~impossible~to~draw~the~#1~delimiter~of~your~
\token_to_str:N \SubMatrix\ because~all~the~cells~are~empty~
in~that~column.
\bool_if:NT \l_@@_submatrix_slim_bool
{ ~Maybe~you~should~try~without~the~key~'slim'. } \\
- If~you~go~on,~this~\token_to_str:N \SubMatrix\ will~be~ignored.
+ This~\token_to_str:N \SubMatrix\ will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { width~without~X~columns }
{
+ No~X~column.\\
You~have~used~the~key~'width'~but~you~have~put~no~'X'~column. \\
- If~you~go~on,~that~key~will~be~ignored.
+ That~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
+\@@_msg_new:nn { key~multiplicity~with~dotted }
+ {
+ Incompatible~keys. \\
+ You~have~used~the~key~'multiplicity'~with~the~key~'dotted'~
+ in~a~'custom-line'.~They~are~incompatible. \\
+ The~key~'multiplicity'~will~be~discarded.
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
\@@_msg_new:nn { empty~environment }
- { Your~\@@_full_name_env:\ is~empty.~This~error~is~fatal. }
+ {
+ Empty~environment.\\
+ Your~\@@_full_name_env:\ is~empty.~This~error~is~fatal.
+ }
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { Wrong~use~of~v-center }
{
+ Wrong~use~of~v-center.\\
You~should~not~use~the~key~'v-center'~here~because~your~block~is~not~
mono-row.~However,~you~can~go~on.
}
@@ -19327,6 +19404,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { No~letter~and~no~command }
{
+ Erroneous~use.\\
Your~use~of~'custom-line'~is~no-op~since~you~don't~have~used~the~
key~'letter'~(for~a~letter~for~vertical~rules)~nor~the~key~'command'~
(to~draw~horizontal~rules).\\
@@ -19335,45 +19413,28 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { letter-for-dotted-lines }
- {
- The~key~'letter-for-dotted-lines'~is~now~obsolete~(you~should~
- use~'custom-line'~instead).~However,~you~can~go~on~for~this~time.~
- If~you~don't~want~to~see~that~message~again,~you~should~
- load~'nicematrix'~with~the~key~'allow-letter-for-dotted-lines'.~
- However,~'letter-for-dotted-lines'~will~be~deleted~in~a~future~
- version~of~'nicematrix'.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
\@@_msg_new:nn { Forbidden~letter }
{
+ Forbidden~letter.\\
You~can't~use~the~letter~'\l_@@_letter_str'~for~a~customized~line.\\
- If~you~go~on,~it~will~be~ignored.
+ It~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { key~width~without~key~tikz }
- {
- In~'custom-line',~you~have~used~'width'~without~'tikz'.~That's~not~correct.~
- If~you~go~on,~that~key~'width'~will~be~discarded.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
\@@_msg_new:nn { Several~letters }
{
- You~must~use~only~one~letter~as~value~for~the~key~'letter'~(and~
+ Wrong~name.\\
+ You~must~use~only~one~letter~as~value~for~the~key~'letter'~(and~you~
have~used~'\l_@@_letter_str').\\
- If~you~go~on,~it~will~be~ignored.
+ It~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { Delimiter~with~small }
{
+ Delimiter~forbidden.\\
You~can't~put~a~delimiter~in~the~preamble~of~your~\@@_full_name_env:\
because~the~key~'small'~is~in~force.\\
This~error~is~fatal.
@@ -19383,9 +19444,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { unknown~cell~for~line~in~CodeAfter }
{
- Your~command~\token_to_str:N\line\{#1\}\{#2\}~in~the~'code-after'~
+ Unknown~cell.\\
+ Your~command~\token_to_str:N\line\{#1\}\{#2\}~in~
+ the~\token_to_str:N \CodeAfter\ of~your~\@@_full_name_env:\
can't~be~executed~because~a~cell~doesn't~exist.\\
- If~you~go~on~this~command~will~be~ignored.
+ This~command~\token_to_str:N \line\ will~be~ignored.
}
% \end{macrocode}
%
@@ -19393,10 +19456,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Duplicate~name~for~SubMatrix }
{
+ Duplicate~name.\\
The~name~'#1'~is~already~used~for~a~\token_to_str:N \SubMatrix\
in~this~\@@_full_name_env:.\\
- If~you~go~on,~this~key~will~be~ignored.\\
- For~a~list~of~the~names~already~used,~type~H~<return>.
+ This~key~will~be~ignored.\\
+ \bool_if:NF \c_@@_messages_for_Overleaf_bool
+ { For~a~list~of~the~names~already~used,~type~H~<return>. }
}
{
The~names~already~defined~in~this~\@@_full_name_env:\ are:~
@@ -19407,16 +19472,18 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { r~or~l~with~preamble }
{
+ Erroneous~use.\\
You~can't~use~the~key~'\l_keys_key_str'~in~your~\@@_full_name_env:.~
You~must~specify~the~alignment~of~your~columns~with~the~preamble~of~
your~\@@_full_name_env:.\\
- If~you~go~on,~this~key~will~be~ignored.
+ This~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { Hdotsfor~in~col~0 }
{
+ Erroneous~use.\\
You~can't~use~\token_to_str:N \Hdotsfor\ in~an~exterior~column~of~
the~array.~This~error~is~fatal.
}
@@ -19425,38 +19492,41 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { bad~corner }
{
- #1~is~an~incorrect~specification~for~a~corner~(in~the~keys~
- 'corners'~and~'except-corners').~The~available~
- values~are:~NW,~SW,~NE~and~SE.\\
- If~you~go~on,~this~specification~of~corner~will~be~ignored.
+ Bad~corner.\\
+ #1~is~an~incorrect~specification~for~a~corner~(in~the~key~
+ 'corners').~The~available~values~are:~NW,~SW,~NE~and~SE.\\
+ This~specification~of~corner~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { bad~border }
{
+ Bad~border.\\
\l_keys_key_str\space~is~an~incorrect~specification~for~a~border~
(in~the~key~'borders'~of~the~command~\token_to_str:N \Block).~
The~available~values~are:~left,~right,~top~and~bottom~(and~you~can~
also~use~the~key~'tikz'
\bool_if:nF \c_@@_tikz_loaded_bool
{~if~you~load~the~LaTeX~package~'tikz'}).\\
- If~you~go~on,~this~specification~of~border~will~be~ignored.
+ This~specification~of~border~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { tikz~key~without~tikz }
{
+ Tikz~not~loaded.\\
You~can't~use~the~key~'tikz'~for~the~command~'\token_to_str:N
\Block'~because~you~have~not~loaded~Tikz.~
- If~you~go~on,~this~key~will~be~ignored.
+ This~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { last-col~non~empty~for~NiceArray }
{
+ Erroneous~use.\\
In~the~\@@_full_name_env:,~you~must~use~the~key~
'last-col'~without~value.\\
However,~you~can~go~on~for~this~time~
@@ -19468,6 +19538,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { last-col~non~empty~for~NiceMatrixOptions }
{
+ Erroneous~use.\\
In~\NiceMatrixoptions,~you~must~use~the~key~
'last-col'~without~value.\\
However,~you~can~go~on~for~this~time~
@@ -19479,6 +19550,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { Block~too~large~1 }
{
+ Block~too~large.\\
You~try~to~draw~a~block~in~the~cell~#1-#2~of~your~matrix~but~the~matrix~is~
too~small~for~that~block. \\
}
@@ -19487,13 +19559,14 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { Block~too~large~2 }
{
+ Block~too~large.\\
The~preamble~of~your~\@@_full_name_env:\ announces~\int_use:N
\g_@@_static_num_of_col_int\
columns~but~you~use~only~\int_use:N \c@jCol\ and~that's~why~a~block~
specified~in~the~cell~#1-#2~can't~be~drawn.~You~should~add~some~ampersands~
(&)~at~the~end~of~the~first~row~of~your~
\@@_full_name_env:.\\
- If~you~go~on,this~block~and~maybe~others~will~be~ignored.
+ This~block~and~maybe~others~will~be~ignored.
}
% \end{macrocode}
%
@@ -19501,6 +19574,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { unknown~column~type }
{
+ Bad~column~type.\\
The~column~type~'#1'~in~your~\@@_full_name_env:\
is~unknown. \\
This~error~is~fatal.
@@ -19508,57 +19582,51 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { colon~without~arydshln }
- {
- The~column~type~':'~in~your~\@@_full_name_env:\
- is~unknown.~If~you~want~to~use~':'~of~'arydshln',~you~should~
- load~that~package.~If~you~want~a~dotted~line~of~'nicematrix',~you~
- should~use~'\l_@@_letter_for_dotted_lines_str'.\\
- This~error~is~fatal.
- }
-% \end{macrocode}
-%
-% \begin{macrocode}
\@@_msg_new:nn { tabularnote~forbidden }
{
+ Forbidden~command.\\
You~can't~use~the~command~\token_to_str:N\tabularnote\
~in~a~\@@_full_name_env:.~This~command~is~available~only~in~
\{NiceTabular\},~\{NiceArray\}~and~\{NiceMatrix\}. \\
- If~you~go~on,~this~command~will~be~ignored.
+ This~command~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { borders~forbidden }
{
+ Forbidden~key.\\
You~can't~use~the~key~'borders'~of~the~command~\token_to_str:N \Block\
because~the~option~'rounded-corners'~
is~in~force~with~a~non-zero~value.\\
- If~you~go~on,~this~key~will~be~ignored.
+ This~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { bottomrule~without~booktabs }
{
+ booktabs~not~loaded.\\
You~can't~use~the~key~'tabular/bottomrule'~because~you~haven't~
loaded~'booktabs'.\\
- If~you~go~on,~this~key~will~be~ignored.
+ This~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { enumitem~not~loaded }
{
+ enumitem~not~loaded.\\
You~can't~use~the~command~\token_to_str:N\tabularnote\
~because~you~haven't~loaded~'enumitem'.\\
- If~you~go~on,~this~command~will~be~ignored.
+ This~command~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
-\@@_msg_new:nn { tikz~in~custom-line~without~tikz }
+\@@_msg_new:nn { tikz~in~custom-line~without~tikz }
{
+ Tikz~not~loaded.\\
You~have~used~the~key~'tikz'~in~the~definition~of~a~
customized~line~(with~'custom-line')~but~Tikz~is~not~loaded.~
You~can~go~on~but~you~will~have~another~error~if~you~actually~
@@ -19569,24 +19637,27 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { tikz~in~borders~without~tikz }
{
+ Tikz~not~loaded.\\
You~have~used~the~key~'tikz'~in~a~key~'borders'~(of~a~
command~'\token_to_str:N\Block')~but~Tikz~is~not~loaded.~
- If~you~go~on,~that~key~will~be~ignored.
+ That~key~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { color~in~custom-line~with~tikz }
{
+ Erroneous~use.\\
In~a~'custom-line',~you~have~used~both~'tikz'~and~'color',~
which~is~forbidden~(you~should~use~'color'~inside~the~key~'tikz').~
- If~you~go~on,~the~key~'color'~will~be~discarded.
+ The~key~'color'~will~be~discarded.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { Wrong~last~row }
{
+ Wrong~number.\\
You~have~used~'last-row=\int_use:N \l_@@_last_row_int'~but~your~
\@@_full_name_env:\ seems~to~have~\int_use:N \c@iRow \ rows.~
If~you~go~on,~the~value~of~\int_use:N \c@iRow \ will~be~used~for~
@@ -19598,12 +19669,17 @@ version 2005/12/01 or later.
%
% \begin{macrocode}
\@@_msg_new:nn { Yet~in~env }
- { Environments~of~nicematrix~can't~be~nested.\\ This~error~is~fatal. }
+ {
+ Nested~environments.\\
+ Environments~of~nicematrix~can't~be~nested.\\
+ This~error~is~fatal.
+ }
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { Outside~math~mode }
{
+ Outside~math~mode.\\
The~\@@_full_name_env:\ can~be~used~only~in~math~mode~
(and~not~in~\token_to_str:N \vcenter).\\
This~error~is~fatal.
@@ -19613,26 +19689,29 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { One~letter~allowed }
{
+ Bad~name.\\
The~value~of~key~'\l_keys_key_str'~must~be~of~length~1.\\
- If~you~go~on,~it~will~be~ignored.
+ It~will~be~ignored.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nn { varwidth~not~loaded }
{
+ varwidth~not~loaded.\\
You~can't~use~the~column~type~'V'~because~'varwidth'~is~not~
loaded.\\
- If~you~go~on,~your~column~will~behave~like~'p'.
+ Your~column~will~behave~like~'p'.
}
% \end{macrocode}
%
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~Block }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~for~the~command~\token_to_str:N
- \Block.\\ If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~available~keys,~type~H~<return>.
+ \Block.\\ It~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~b,~borders,~c,~draw,~fill,~
@@ -19644,6 +19723,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { Version~of~siunitx~too~old }
{
+ siunitx~too~old.\\
You~can't~use~'S'~columns~because~your~version~of~'siunitx'~
is~too~old.~You~need~at~least~v~3.0.\\
This~error~is~fatal.
@@ -19654,10 +19734,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~Brace }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~for~the~commands~\token_to_str:N
\UnderBrace\ and~\token_to_str:N \OverBrace.\\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~available~keys,~type~H~<return>.
+ It~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~color,~left-shorten,~
@@ -19669,10 +19750,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~CodeAfter }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown.\\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~available~keys~in~\token_to_str:N
- \CodeAfter,~type~H~<return>.
+ It~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19687,10 +19768,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~SubMatrix }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown.\\
- If~you~go~on,~this~key~will~be~ignored. \\
- For~a~list~of~the~available~keys~in~\token_to_str:N
- \SubMatrix,~type~H~<return>.
+ That~key~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19711,9 +19792,10 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~notes }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown.\\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~available~keys~about~notes,~type~H~<return>.
+ That~key~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19733,10 +19815,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~RowStyle }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~for~the~command~
\token_to_str:N \RowStyle. \\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~available~keys,~type~H~<return>.
+ That~key~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19753,10 +19836,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~NiceMatrixOptions }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~for~the~command~
\token_to_str:N \NiceMatrixOptions. \\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~*principal*~available~keys,~type~H~<return>.
+ That~key~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19800,10 +19884,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~NiceArray }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~for~the~environment~
\{NiceArray\}. \\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~*principal*~available~keys,~type~H~<return>.
+ That~key~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19848,6 +19933,8 @@ version 2005/12/01 or later.
tabularnote,~
vlines,~
xdots/color,~
+ xdots/shorten-start,~
+ xdots/shorten-end,~
xdots/shorten~and~
xdots/line-style.
}
@@ -19860,10 +19947,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~NiceMatrix }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~for~the~
\@@_full_name_env:. \\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~*principal*~available~keys,~type~H~<return>.
+ That~key~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19907,6 +19995,8 @@ version 2005/12/01 or later.
t,~
vlines,~
xdots/color,~
+ xdots/shorten-start,~
+ xdots/shorten-end,~
xdots/shorten~and~
xdots/line-style.
}
@@ -19915,10 +20005,11 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Unknown~key~for~NiceTabular }
{
+ Unknown~key.\\
The~key~'\l_keys_key_str'~is~unknown~for~the~environment~
\{NiceTabular\}. \\
- If~you~go~on,~it~will~be~ignored. \\
- For~a~list~of~the~*principal*~available~keys,~type~H~<return>.
+ That~key~will~be~ignored. \\
+ \c_@@_available_keys_str
}
{
The~available~keys~are~(in~alphabetic~order):~
@@ -19962,6 +20053,8 @@ version 2005/12/01 or later.
tabularnote,~
vlines,~
xdots/color,~
+ xdots/shorten-start,~
+ xdots/shorten-end,~
xdots/shorten~and~
xdots/line-style.
}
@@ -19971,13 +20064,14 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nnn { Duplicate~name }
{
+ Duplicate~name.\\
The~name~'\l_keys_value_tl'~is~already~used~and~you~shouldn't~use~
the~same~environment~name~twice.~You~can~go~on,~but,~
maybe,~you~will~have~incorrect~results~especially~
if~you~use~'columns-width=auto'.~If~you~don't~want~to~see~this~
message~again,~use~the~key~'allow-duplicate-names'~in~
'\token_to_str:N \NiceMatrixOptions'.\\
- For~a~list~of~the~names~already~used,~type~H~<return>. \\
+ \c_@@_available_keys_str
}
{
The~names~already~defined~in~this~document~are:~
@@ -19988,8 +20082,9 @@ version 2005/12/01 or later.
% \begin{macrocode}
\@@_msg_new:nn { Option~auto~for~columns-width }
{
+ Erroneous~use.\\
You~can't~give~the~value~'auto'~to~the~key~'columns-width'~here.~
- If~you~go~on,~the~key~will~be~ignored.
+ That~key~will~be~ignored.
}
% \end{macrocode}
%
@@ -20167,9 +20262,6 @@ version 2005/12/01 or later.
%
% The option |columns-width=auto| doesn't need any more a second compilation.
%
-% The options |renew-dots|, |renew-matrix| and |transparent| are now available
-% as package options (as said in the documentation).
-%
% The previous version of \pkg{nicematrix} was incompatible with a recent
% version of \pkg{expl3} (released 2019/09/30). This version is compatible.
%
@@ -20416,9 +20508,6 @@ version 2005/12/01 or later.
%
% It's possible to provide options (between brackets) to the keyword |\CodeAfter|.
%
-% A (non fatal) error is raised when the key |transparent|, which is
-% deprecated, is used.
-%
% \subsection*{Changes between versions 5.10 and 5.11}
%
% It's now possible, in the |code-before| and in the |\CodeAfter|, to use the
@@ -20575,6 +20664,14 @@ version 2005/12/01 or later.
%
% New command |\ShowCellNames| available in the |\CodeBefore| and in the |\CodeAfter|.
%
+% \subsection*{Changes between version 6.9 and 6.10}
+%
+% New keys |xdots/shorten-start| and |xdots/shorten-end|.
+%
+% It's possible to use |\line| in the |\CodeAfter| between two blocks (and not
+% only two cells).
+%
+%
% \PrintIndex
%
% \tableofcontents
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index e6d692f83f..933ab640b6 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ