From 49d5e8cc281cf2335112eb5488cd83afd96eeb04 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 26 Jun 2022 03:00:46 +0000 Subject: CTAN sync 202206260300 --- .../latex/contrib/nicematrix/nicematrix-french.pdf | Bin 504127 -> 504636 bytes .../latex/contrib/nicematrix/nicematrix-french.tex | 76 +- macros/latex/contrib/nicematrix/nicematrix.dtx | 1145 +++++++++++--------- macros/latex/contrib/nicematrix/nicematrix.pdf | Bin 1526205 -> 1541634 bytes 4 files changed, 661 insertions(+), 560 deletions(-) (limited to 'macros/latex/contrib/nicematrix') diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf index 00a0f24a25..1350f7ab39 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix-french.pdf and b/macros/latex/contrib/nicematrix/nicematrix-french.pdf 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: @@ -8352,6 +8366,17 @@ version 2005/12/01 or later. % The following command creates a |row| node (and not a row of nodes!). % \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. @@ -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~. } { 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~. } + } +% \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~. + 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~. + This~key~will~be~ignored.\\ + \bool_if:NF \c_@@_messages_for_Overleaf_bool + { For~a~list~of~the~names~already~used,~type~H~. } } { 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~. + \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~. + 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~. + 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~. + 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~. + 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~. + 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~. + 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~. + 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~. + 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~. + 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~. \\ + \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 Binary files a/macros/latex/contrib/nicematrix/nicematrix.pdf and b/macros/latex/contrib/nicematrix/nicematrix.pdf differ -- cgit v1.2.3