texlive[68151] Master/texmf-dist: nicematrix (2sep23)

commits+karl at tug.org commits+karl at tug.org
Sat Sep 2 22:08:25 CEST 2023


Revision: 68151
          http://tug.org/svn/texlive?view=revision&revision=68151
Author:   karl
Date:     2023-09-02 22:08:24 +0200 (Sat, 02 Sep 2023)
Log Message:
-----------
nicematrix (2sep23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf
    trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf
    trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex
    trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf
    trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex
    trunk/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx
    trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty

Modified: trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex	2023-09-02 20:08:13 UTC (rev 68150)
+++ trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex	2023-09-02 20:08:24 UTC (rev 68151)
@@ -1070,6 +1070,7 @@
 
 
 
+
 \subsubsection{La commande  \textbackslash cline}
 
 \label{remark-cline}
@@ -1222,9 +1223,40 @@
 
 La commande |\Hline| admet entre crochets un argument optionnel qui est une
 liste de couples \textsl{clé=valeur} qui décrivent un filet. Pour la description
-de ces clés, voir |custom-line| p.~\pageref{custom-line}.
+de ces clés, voir |custom-line| p.~\pageref{custom-line}.\footnote{Remarque
+  technique. Si l'utilisateur définit une commande par-dessus la commande
+  |\Hline|, il doit veiller à ce qu'elle soit \emph{développable} au sens de
+  TeX (en utilisant |\NewExpandableDocumentCommand| de LaTeX3, |\newcommand| de
+  LaTeX ou même |\def| de TeX). Exemple :
+  |\newcommand{\RedLine}{\Hline{color=red}}|}
 
+\bigskip
+\colorbox{yellow!50}{\textbf{Nouveau 6.23}}\enskip 
+
+De même que la commande |\Hline|, le specificateur «\verb+|+» admet entre crochets
+des options qui caractérisent le filet à tracer. 
+
 \medskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{NiceTabular}{|c~emphase#|[color=blue]@c|}
+\Hline
+a & b \\
+~emphase#\Hline[color=red]@
+c & d \\
+\Hline
+\end{NiceTabular}
+\end{BVerbatim}
+%
+\begin{NiceTabular}{|c|[color=blue]c|}
+\Hline
+a & b \\
+\Hline[color=red]
+c & d \\
+\Hline
+\end{NiceTabular}
+
+
+\medskip
 \subsubsection{Les clés hlines et vlines}
 
 \index{hlines|see{Filets}}
@@ -1682,10 +1714,14 @@
 \end{pNiceArray}$
 \end{itemize}
 
+
+
+
+
 \index{custom-line|)}
 \index{Filets@\textbf{Filets dans les tableaux}|)}
 
-\section{Les couleurs des rangées et des colonnes}
+\section{Les couleurs de fond des rangées et des colonnes}
 
 \index{Couleur!de fond pour les cases}
 
@@ -3063,7 +3099,11 @@
 L'option |nullify-dots| «smashe» les instructions |\Ldots| (et ses variantes)
 horizontalement mais aussi verticalement.
 
+\medskip
+Attention : la clé |nullify-dots| a un nom qui peut prêter à confusion ; elle
+n'implique pas que la ligne en pointillés ne sera pas tracée !
 
+
 \subsection{Les commandes \textbackslash Hdotsfor et \textbackslash Vdotsfor}
 
 \indexcommand{Hdotsfor}
@@ -3121,7 +3161,9 @@
 \pkg{colortbl}\footnote{On rappelle que lorsque l'extension \pkg{xcolor} est
   chargée avec l'option |table|, l'extension \pkg{colortbl} est chargée.}
 est chargée (mais vous risquez d'avoir des problèmes si vous utilisez
-|\rowcolor| sur la même rangée que |\Hdotsfor|).
+|\rowcolor| sur la même rangée que |\Hdotsfor|). Néanmoins, dans le cadre de
+\pkg{nicematrix}, on conseille de ne pas utiliser \pkg{colortbl} mais d'utiliser
+les outils de nicematrix pour le coloriage des tableaux.
 
 \medskip
 L'extension \pkg{nicematrix} propose aussi une commande |\Vdotsfor| similaire à
@@ -3229,7 +3271,7 @@
 
 \smallskip
 \colorbox{yellow!50}{\textbf{Nouveau 6.22}}\enskip La version 6.22 introduit un
-nouveau label spécifié par le caractère~«|:|» pour un label situé sur la ligne
+nouveau label spécifié par le caractère~«|:|» pour un label situé \emph{sur} la ligne
 elle-même. Ce label est en fait composé sur un fond blanc qui est superposé sur
 la ligne en pointillés (voir un exemple p.~\pageref{ex:colon}).
 
@@ -3431,7 +3473,7 @@
 
 \index{Pointillés@\textbf{Pointillés (lignes en ---)}|)}
 
-\section{Délimiteurs dans le préambule de l'environnement}
+\subsection{Délimiteurs dans le préambule de l'environnement}
 
 \index{blkarray@\pkg{blkarray} (extension)}
 
@@ -4194,9 +4236,8 @@
 \item Il est possible de référencer une note de tableau (avec la commande
 |\label| placée après le |\tabularnote|).
 
-\item \colorbox{yellow!50}{\textbf{Nouveau 6.19}} La commande |\tabularnote|
-admet un argument optionnel (entre crochets) qui permet de changer le symbole de
-l'appel de note. 
+\item La commande |\tabularnote| admet un argument optionnel (entre crochets)
+qui permet de changer le symbole de l'appel de note.
 
 \emph{Exemple} : |\tabularnote[$\star$]{Une note...}|.
 \end{itemize}
@@ -5862,10 +5903,11 @@
 \medskip
 L'extension \pkg{nicematrix} n'est pas parfaitement compatible avec l'extension
 \pkg{arydshln} (parce que cette extension redéfinit de nombreuses commandes
-internes de \pkg{array}). De toutes manières, dans le cadre de \pkg{nicematrix},
-il est conseillé de tracer les filets en tiretés avec les commandes de
-\pkg{nicematrix} en créant un style de ligne personnalisé avec |custom-line| :
-cf.~p.~\pageref{custom-line}.
+internes de \pkg{array}) et les colonnes |V| de l'extension \pkg{boldline} ne
+sont pas prises en charge (car la lettre |V| est réservée pour les colonnes |V|
+de \pkg{varwidth}). De toutes manières, \pkg{nicematrix} fournit, avec la clé
+|custom-line| (cf. partie \ref{custom-line}, p.~\pageref{custom-line}) des
+outils pour définir des filets en tiretés ou de différentes épaisseurs.
 
 \medskip
 Les colonnes |d| de l'extension \pkg{dcolumn} ne sont pas prises en compte (mais
@@ -6240,8 +6282,7 @@
 1& & & \Vdots & & & & \Vdots \\
 & \Ddots[line-style=standard] \\
 & & 1 \\
-\Cdots[color=blue,line-style=dashed]&   &  & \blue 0 &
-\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
+\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
 & & & & 1 \\
 & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\
 & & & & & & 1 \\
@@ -6264,8 +6305,7 @@
 1& & & \Vdots & & & & \Vdots \\
 & \Ddots[line-style=standard] \\
 & & 1 \\
-\Cdots[color=blue,line-style=dashed]&   &  & \blue 0 &
-\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
+\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
 & & & & 1 \\
 & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\
 & & & & & & 1 \\
@@ -7052,7 +7092,7 @@
 une traduction anglaise de la documentation ici présente ainsi qu'un historique
 des versions. 
 
-Le document |nicematrix-code.pdf| (fourni également avec l'extension \pkg{nicematrix}
+Le document |nicematrix-code.pdf| (fourni également avec l'extension \pkg{nicematrix})
 contient le code LaTeX commenté (à partir du fichier |nicematrix-code.dtx|).
 
 \medskip

Modified: trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex	2023-09-02 20:08:13 UTC (rev 68150)
+++ trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex	2023-09-02 20:08:24 UTC (rev 68151)
@@ -1185,8 +1185,40 @@
 
 The key |\Hline| takes in an optional argument (between square brackets) which
 is a list of \textsl{key=value} pairs. For the description of those keys, see
-|custom-line| on p.~\pageref{custom-line}.
+|custom-line| on p.~\pageref{custom-line}.\footnote{Technical remark: If the
+  user wants to write a command over the command |\Hline|, it shall be ensured
+  that this new command is expandable in the TeX sens (by using, for instance,
+  |\NewExpandableDocumentCommand| of LaTeX3, |\newcommand| of LaTeX or |\def| of
+  TeX). Example: |\newcommand{\RedLine}{\Hline[color=red]}|}
 
+
+\bigskip
+\colorbox{yellow!50}{\textbf{New 6.23}}\enskip 
+
+As well as the command |\Hline|, the specifier ``\verb+|+'' supports a optional
+argument between square brackets for the characteristics of the rule.
+
+\medskip
+\begin{BVerbatim}[baseline=c,boxwidth=10cm]
+\begin{NiceTabular}{|c~emphase#|[color=blue]@c|}
+\Hline
+a & b \\
+~emphase#\Hline[color=red]@
+c & d \\
+\Hline
+\end{NiceTabular}
+\end{BVerbatim}
+%
+\begin{NiceTabular}{|c|[color=blue]c|}
+\Hline
+a & b \\
+\Hline[color=red]
+c & d \\
+\Hline
+\end{NiceTabular}
+
+
+
 \subsubsection{The keys hlines and vlines}
 
 \index{hlines|see{Rules}}
@@ -1637,7 +1669,7 @@
 \index{Rules@\textbf{Rules in the tabulars}|)}
 
 
-\section{The color of the rows and columns}
+\section{The color of the background of the rows and columns}
 
 \index{Colour!of the cells}
 
@@ -2992,8 +3024,12 @@
 The option |nullify-dots| smashes the instructions |\Ldots| (and the variants)
 horizontally but also vertically.
 
+\medskip
+Caution : the key |nullify-dots| has a name that may be confusing; that key does
+not imply that the dotted rules won't be drawn!
 
 
+
 \subsection{The commands \textbackslash Hdotsfor and \textbackslash Vdotsfor}
 
 \indexcommand{Hdotsfor}
@@ -3049,7 +3085,9 @@
 |\Hdotsfor| may be used even when the package \pkg{colortbl}\footnote{We
 recall that when \pkg{xcolor} is loaded with the option |table|, the
 package \pkg{colortbl} is loaded.} is loaded (but you might have problem if
-you use |\rowcolor| on the same row as |\Hdotsfor|). 
+you use |\rowcolor| on the same row as |\Hdotsfor|). However, when using
+\pkg{nicematrix}, it's recommended to use the coloring tools provided by
+\pkg{nicematrix} instead of \pkg{colortbl}.
 
 \bigskip
 The package \pkg{nicematrix} also provides a command |\Vdotsfor| similar to
@@ -4102,9 +4140,8 @@
 \item It's possible to create a reference to a tabular note created by |\tabularnote|
 (with the usual command |\label| used after the |\tabularnote|).
 
-\item \colorbox{yellow!50}{\textbf{New 6.19}} The command |\tabularnote| has an
-optional argument (between square brackets) to change the symbol of the
-reference of the note.
+\item The command |\tabularnote| has an optional argument (between square
+brackets) to change the symbol of the reference of the note.
 
 \emph{Example}: |\tabularnote[$\star$]{A footnote...}|
 \end{itemize}
@@ -5746,10 +5783,12 @@
 
 \bigskip
 The package \pkg{nicematrix} is not fully compatible with the package
-\pkg{arydshln} (because this package redefines many internals of \pkg{array}).
-By any means, in the context of \pkg{nicematrix}, it's recommended to draw
-dashed rules with the tools provided by \pkg{nicematrix}, by creating a
-customized line style with |custom-line|: cf.~p.~\pageref{custom-line}.
+\pkg{arydshln} (because this package redefines many internals of \pkg{array})
+and does support the columns~|V| of \pkg{boldline} (because the letter |V| is
+reserved for the columns~|V| of \pkg{varwidth}). By any means, \pkg{nicematrix}
+provides, with the key |custom-line| (cf. part~\ref{custom-line},
+p.~\pageref{custom-line}), tools to draw dashed rules and rules of different
+widths. 
 
 \bigskip
 The columns |d| of \pkg{dcolumn} are not supported (but it's possible to use
@@ -6116,8 +6155,7 @@
 1& & & \Vdots & & & & \Vdots \\
 & \Ddots[line-style=standard] \\
 & & 1 \\
-\Cdots[color=blue,line-style=dashed]&   &  & \blue 0 &
-\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
+\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
 & & & & 1 \\
 & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\
 & & & & & & 1 \\
@@ -6141,8 +6179,7 @@
 1& & & \Vdots & & & & \Vdots \\
 & \Ddots[line-style=standard] \\
 & & 1 \\
-\Cdots[color=blue,line-style=dashed]&   &  & \blue 0 &
-\Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
+\Cdots & & & \blue 0 & \Cdots & & & \blue 1 & & & \Cdots & \blue \leftarrow i \\
 & & & & 1 \\
 & & &\Vdots & & \Ddots[line-style=standard] & & \Vdots \\
 & & & & & & 1 \\
@@ -6188,7 +6225,7 @@
 
 \interitem
 \label{ex:colon}
-If you want the lable \emph{on the line}, you should use the special token~``|:|'':
+If you want the label \emph{on the line}, you should use the special token~``|:|'':
 
 \begin{Verbatim}
 \NiceMatrixOptions{xdots={horizontal-labels,line-style = <->}}
@@ -6924,6 +6961,13 @@
 \nolinkurl{https:www.tug.org/svn/texlive/trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty}
 }
 
+\subsection*{Changes between version 6.22 and 6.23}
+
+The specifier ``\verb+|+'' in the preambles of the environments has now an
+optional argument.
+
+Correction of several bugs.
+
 \subsection*{Changes between version 6.21 and 6.22}
 
 Key |opacity| for the command |\Block|.

Modified: trunk/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx	2023-09-02 20:08:13 UTC (rev 68150)
+++ trunk/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx	2023-09-02 20:08:24 UTC (rev 68151)
@@ -17,8 +17,8 @@
 %
 % \fi
 % \iffalse
-\def\myfileversion{6.22}
-\def\myfiledate{2023/08/14}
+\def\myfileversion{6.23}
+\def\myfiledate{2023/09/02}
 %
 %
 %<*batchfile>
@@ -331,6 +331,9 @@
 %
 % the command |\G| takes in an arbitrary number of optional arguments between
 % square brackets.
+%
+% Be careful: that command is \emph{not} ``fully expandable'' (because of
+% |\peek_meaning:NTF|). 
 % 
 % \bigskip
 %    \begin{macrocode}
@@ -4945,37 +4948,43 @@
   {
     \str_if_eq:nnTF { #1 } | 
       { \@@_patch_preamble_iii:n | }
+      {
+        \str_if_eq:nnTF { #1 } [
+          { \@@_patch_preamble_iii_ii:nw { } [ }
+          { \@@_patch_preamble_iii_ii:nw { #1 } [ ] }
+      }
+  }
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_patch_preamble_iii_ii:nw #1 [ #2 ]
+  {
+    \@@_compute_rule_width:n { multiplicity = \l_tmpa_int , #2 }
+    \tl_gput_right:Nx \g_@@_preamble_tl
       { 
-        \dim_set:Nn \l_tmpa_dim 
-          { 
-            \arrayrulewidth * \l_tmpa_int 
-            + \doublerulesep * ( \l_tmpa_int - 1) 
-          } 
-        \tl_gput_right:Nx \g_@@_preamble_tl
-          { 
 %    \end{macrocode}
 % Here, the command |\dim_eval:n| is mandatory.
 %    \begin{macrocode}
-            \exp_not:N ! { \skip_horizontal:n { \dim_eval:n { \l_tmpa_dim } } }  
-          }
-        \tl_gput_right:Nx \g_@@_pre_code_after_tl
+        \exp_not:N ! { \skip_horizontal:n { \dim_eval:n { \l_@@_rule_width_dim } } }  
+      }
+    \tl_gput_right:Nx \g_@@_pre_code_after_tl
+      { 
+        \@@_vline:n
           { 
-            \@@_vline:n
-              { 
-                position = \int_eval:n { \c at jCol + 1 } ,
-                multiplicity = \int_use:N \l_tmpa_int ,
-                total-width = \dim_use:N \l_tmpa_dim  
-              } 
+            position = \int_eval:n { \c at jCol + 1 } ,
+            multiplicity = \int_use:N \l_tmpa_int ,
+            total-width = \dim_use:N \l_@@_rule_width_dim ,
+            #2
+          } 
 %    \end{macrocode}
 % We don't have provided value for |start| nor for |end|, which means that the
 % rule will cover (potentially) all the rows of the array.
 % 
 %    \begin{macrocode}
-          }
-        \int_zero:N \l_tmpa_int
-        \str_if_eq:nnT { #1 } { \q_stop } { \bool_gset_true:N \g_tmpb_bool } 
-        \@@_patch_preamble:n #1 
       }
+    \int_zero:N \l_tmpa_int
+    \str_if_eq:nnT { #1 } { \q_stop } { \bool_gset_true:N \g_tmpb_bool } 
+    \@@_patch_preamble:n #1 
   }
 %    \end{macrocode}
 % 
@@ -9405,7 +9414,12 @@
                 middle = \exp_not:n { #6 }
               } 
           }   
-        \prg_replicate:nn { #2 - 1 } { & \multicolumn { 1 } { c } { } }
+        \prg_replicate:nn { #2 - 1 } 
+          { 
+            & 
+            \multicolumn { 1 } { c } { }
+            \cs_set_eq:NN \CodeAfter \@@_CodeAfter_i: % added 2023-08-26
+          }
       } 
   }
 %    \end{macrocode}
@@ -11350,7 +11364,7 @@
       {
        \peek_meaning:NTF \Hline
          { \@@_Hline_ii:nn { #1 + 1 } } 
-         { \@@_Hline_iii:n { #1 } }
+         { \@@_Hline_iii:n { #1 } } 
       }
   }
 %    \end{macrocode}
@@ -11360,16 +11374,13 @@
 %    \end{macrocode}
 % 
 %    \begin{macrocode}
-\cs_set:Npn \@@_Hline_iii:n #1
-  {
-    \peek_meaning:NTF [
-      { \@@_Hline_iv:nw { #1 } }
-      { \@@_Hline_iv:nw { #1 } [ ] }
-  }
+\cs_set:Npn \@@_Hline_iii:n #1  
+  { \@@_collect_options:n { \@@_Hline_iv:nn { #1 } } }
 %    \end{macrocode}
+% 
 %
 %    \begin{macrocode}
-\cs_set:Npn \@@_Hline_iv:nw #1 [ #2 ]
+\cs_set:Npn \@@_Hline_iv:nn #1 #2 
   {
     \@@_compute_rule_width:n { multiplicity = #1 , #2 }
     \skip_vertical:n { \l_@@_rule_width_dim }
@@ -11994,10 +12005,14 @@
     \keys_set:nn { NiceMatrix / NiceMatrixBlock } { #1 }
     \bool_if:NT \l_@@_block_auto_columns_width_bool
       {
-        \cs_if_exist:cT { @@_max_cell_width_ \int_use:N \g_@@_NiceMatrixBlock_int }
+        \cs_if_exist:cT 
+          { @@_max_cell_width_ \int_use:N \g_@@_NiceMatrixBlock_int }
           {
-            \exp_args:NNc \dim_set:Nn \l_@@_columns_width_dim
-              { @@_max_cell_width _ \int_use:N \g_@@_NiceMatrixBlock_int } 
+            \exp_args:NNx \dim_set:Nn \l_@@_columns_width_dim
+              { 
+                \use:c 
+                  { @@_max_cell_width _ \int_use:N \g_@@_NiceMatrixBlock_int }
+              } 
           } 
       }
   }
@@ -12010,20 +12025,29 @@
 % the counter |\l_@@_first_env_block_int|). 
 %    \begin{macrocode}
   { 
-    \bool_if:NT \l_@@_block_auto_columns_width_bool
+    \legacy_if:nTF { measuring@ }
+%    \end{macrocode}
+% If |{NiceMatrixBlock}| is used in an environment of \pkg{amsmath} such as
+% |{align}|: cf. question 694957 on TeX StackExchange. The most important line
+% in that case is the following one.
+%    \begin{macrocode}
+      { \int_gdecr:N \g_@@_NiceMatrixBlock_int }
       {
-        \iow_shipout:Nn \@mainaux \ExplSyntaxOn
-        \iow_shipout:Nx \@mainaux         
-          { 
-            \cs_gset:cpn 
-              { @@ _ max _ cell _ width _ \int_use:N \g_@@_NiceMatrixBlock_int } 
+        \bool_if:NT \l_@@_block_auto_columns_width_bool
+          {
+            \iow_shipout:Nn \@mainaux \ExplSyntaxOn
+            \iow_shipout:Nx \@mainaux         
+              { 
+                \cs_gset:cpn 
+                  { @@ _ max _ cell _ width _ \int_use:N \g_@@_NiceMatrixBlock_int } 
 %    \end{macrocode}
 % For technical reasons, we have to include the width of a potential rule on the
 % right side of the cells.
 %    \begin{macrocode}
-              { \dim_eval:n { \g_@@_max_cell_width_dim + \arrayrulewidth } }
+                  { \dim_eval:n { \g_@@_max_cell_width_dim + \arrayrulewidth } }
+              }
+            \iow_shipout:Nn \@mainaux \ExplSyntaxOff
           }
-        \iow_shipout:Nn \@mainaux \ExplSyntaxOff
       }
     \ignorespacesafterend
   }
@@ -12434,8 +12458,6 @@
 % |\NewExpandableDocumentCommand| because it has an optional argument between
 % |<| and |>|. It's mandatory to use an expandable command.
 %
-%
-%
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_Block: { \@@_collect_options:n { \@@_Block_i: } }
 %    \end{macrocode}
@@ -13146,7 +13168,7 @@
         \tl_gput_right:Nx \g_nicematrix_code_after_tl
           { 
             \@@_stroke_block:nnn
-              { \exp_not:n { #5 } } 
+              { \exp_not:n { #5 } } % #5 are the options
               { #1 - #2 } 
               { \int_use:N \l_@@_last_row_int - \int_use:N \l_@@_last_col_int } 
           }  
@@ -15314,7 +15336,7 @@
     footnotehyper,~
     messages-for-Overleaf,~
     no-test-for-array,~
-    renew-dots,~and
+    renew-dots,~and~
     renew-matrix.
   }
 %    \end{macrocode}
@@ -15897,11 +15919,18 @@
 %    \end{macrocode}
 % 
 %    \begin{macrocode}
-\@@_msg_new:nn { width~without~X~columns }
+\@@_msg_new:nnn { width~without~X~columns }
   {
     You~have~used~the~key~'width'~but~you~have~put~no~'X'~column.~
     That~key~will~be~ignored.
   }
+  {
+    This~message~is~the~message~'width~without~X~columns'~
+    of~the~module~'nicematrix'.~
+    The~experimented~users~can~disable~that~message~with~
+    \token_to_str:N \msg_redirect_name:nnn.\\
+  }
+
 %    \end{macrocode}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty	2023-09-02 20:08:13 UTC (rev 68150)
+++ trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty	2023-09-02 20:08:24 UTC (rev 68151)
@@ -18,8 +18,8 @@
 %% and version 1.3 or later is part of all distributions of
 %% LaTeX version 2005/12/01 or later.
 %% 
-\def\myfileversion{6.22}
-\def\myfiledate{2023/08/14}
+\def\myfileversion{6.23}
+\def\myfiledate{2023/09/02}
 \RequirePackage{pgfcore}
 \usepgfmodule{shapes}
 \RequirePackage{l3keys2e}
@@ -2191,28 +2191,31 @@
     \str_if_eq:nnTF { #1 } |
       { \__nicematrix_patch_preamble_iii:n | }
       {
-        \dim_set:Nn \l_tmpa_dim
+        \str_if_eq:nnTF { #1 } [
+          { \__nicematrix_patch_preamble_iii_ii:nw { } [ }
+          { \__nicematrix_patch_preamble_iii_ii:nw { #1 } [ ] }
+      }
+  }
+\cs_new_protected:Npn \__nicematrix_patch_preamble_iii_ii:nw #1 [ #2 ]
+  {
+    \__nicematrix_compute_rule_width:n { multiplicity = \l_tmpa_int , #2 }
+    \tl_gput_right:Nx \g__nicematrix_preamble_tl
+      {
+        \exp_not:N ! { \skip_horizontal:n { \dim_eval:n { \l__nicematrix_rule_width_dim } } }
+      }
+    \tl_gput_right:Nx \g__nicematrix_pre_code_after_tl
+      {
+        \__nicematrix_vline:n
           {
-            \arrayrulewidth * \l_tmpa_int
-            + \doublerulesep * ( \l_tmpa_int - 1)
+            position = \int_eval:n { \c at jCol + 1 } ,
+            multiplicity = \int_use:N \l_tmpa_int ,
+            total-width = \dim_use:N \l__nicematrix_rule_width_dim ,
+            #2
           }
-        \tl_gput_right:Nx \g__nicematrix_preamble_tl
-          {
-            \exp_not:N ! { \skip_horizontal:n { \dim_eval:n { \l_tmpa_dim } } }
-          }
-        \tl_gput_right:Nx \g__nicematrix_pre_code_after_tl
-          {
-            \__nicematrix_vline:n
-              {
-                position = \int_eval:n { \c at jCol + 1 } ,
-                multiplicity = \int_use:N \l_tmpa_int ,
-                total-width = \dim_use:N \l_tmpa_dim
-              }
-          }
-        \int_zero:N \l_tmpa_int
-        \str_if_eq:nnT { #1 } { \q_stop } { \bool_gset_true:N \g_tmpb_bool }
-        \__nicematrix_patch_preamble:n #1
       }
+    \int_zero:N \l_tmpa_int
+    \str_if_eq:nnT { #1 } { \q_stop } { \bool_gset_true:N \g_tmpb_bool }
+    \__nicematrix_patch_preamble:n #1
   }
 \cs_new_protected:Npn \__nicematrix_patch_preamble_xiv:n #1
   {
@@ -4944,7 +4947,12 @@
                 middle = \exp_not:n { #6 }
               }
           }
-        \prg_replicate:nn { #2 - 1 } { & \multicolumn { 1 } { c } { } }
+        \prg_replicate:nn { #2 - 1 }
+          {
+            &
+            \multicolumn { 1 } { c } { }
+            \cs_set_eq:NN \CodeAfter \__nicematrix_CodeAfter_i: % added 2023-08-26
+          }
       }
   }
 \cs_new_protected:Npn \__nicematrix_Hdotsfor:nnnn #1 #2 #3 #4
@@ -6136,13 +6144,9 @@
   }
 \cs_set:Npn \__nicematrix_Hline_ii:nn #1 #2 { \__nicematrix_Hline_i:n { #1 } }
 \cs_set:Npn \__nicematrix_Hline_iii:n #1
+  { \__nicematrix_collect_options:n { \__nicematrix_Hline_iv:nn { #1 } } }
+\cs_set:Npn \__nicematrix_Hline_iv:nn #1 #2
   {
-    \peek_meaning:NTF [
-      { \__nicematrix_Hline_iv:nw { #1 } }
-      { \__nicematrix_Hline_iv:nw { #1 } [ ] }
-  }
-\cs_set:Npn \__nicematrix_Hline_iv:nw #1 [ #2 ]
-  {
     \__nicematrix_compute_rule_width:n { multiplicity = #1 , #2 }
     \skip_vertical:n { \l__nicematrix_rule_width_dim }
     \tl_gput_right:Nx \g__nicematrix_pre_code_after_tl
@@ -6529,24 +6533,32 @@
     \keys_set:nn { NiceMatrix / NiceMatrixBlock } { #1 }
     \bool_if:NT \l__nicematrix_block_auto_columns_width_bool
       {
-        \cs_if_exist:cT { __nicematrix_max_cell_width_ \int_use:N \g__nicematrix_NiceMatrixBlock_int }
+        \cs_if_exist:cT
+          { __nicematrix_max_cell_width_ \int_use:N \g__nicematrix_NiceMatrixBlock_int }
           {
-            \exp_args:NNc \dim_set:Nn \l__nicematrix_columns_width_dim
-              { __nicematrix_max_cell_width _ \int_use:N \g__nicematrix_NiceMatrixBlock_int }
+            \exp_args:NNx \dim_set:Nn \l__nicematrix_columns_width_dim
+              {
+                \use:c
+                  { __nicematrix_max_cell_width _ \int_use:N \g__nicematrix_NiceMatrixBlock_int }
+              }
           }
       }
   }
   {
-    \bool_if:NT \l__nicematrix_block_auto_columns_width_bool
+    \legacy_if:nTF { measuring@ }
+      { \int_gdecr:N \g__nicematrix_NiceMatrixBlock_int }
       {
-        \iow_shipout:Nn \@mainaux \ExplSyntaxOn
-        \iow_shipout:Nx \@mainaux
+        \bool_if:NT \l__nicematrix_block_auto_columns_width_bool
           {
-            \cs_gset:cpn
-              { __nicematrix _ max _ cell _ width _ \int_use:N \g__nicematrix_NiceMatrixBlock_int }
-              { \dim_eval:n { \g__nicematrix_max_cell_width_dim + \arrayrulewidth } }
+            \iow_shipout:Nn \@mainaux \ExplSyntaxOn
+            \iow_shipout:Nx \@mainaux
+              {
+                \cs_gset:cpn
+                  { __nicematrix _ max _ cell _ width _ \int_use:N \g__nicematrix_NiceMatrixBlock_int }
+                  { \dim_eval:n { \g__nicematrix_max_cell_width_dim + \arrayrulewidth } }
+              }
+            \iow_shipout:Nn \@mainaux \ExplSyntaxOff
           }
-        \iow_shipout:Nn \@mainaux \ExplSyntaxOff
       }
     \ignorespacesafterend
   }
@@ -7211,7 +7223,7 @@
         \tl_gput_right:Nx \g_nicematrix_code_after_tl
           {
             \__nicematrix_stroke_block:nnn
-              { \exp_not:n { #5 } }
+              { \exp_not:n { #5 } } % #5 are the options
               { #1 - #2 }
               { \int_use:N \l__nicematrix_last_row_int - \int_use:N \l__nicematrix_last_col_int }
           }
@@ -8686,7 +8698,7 @@
     footnotehyper,~
     messages-for-Overleaf,~
     no-test-for-array,~
-    renew-dots,~and
+    renew-dots,~and~
     renew-matrix.
   }
 \keys_define:nn { NiceMatrix / Package }
@@ -9085,11 +9097,18 @@
       { ~Maybe~you~should~try~without~the~key~'slim'. } \\
     This~\token_to_str:N \SubMatrix\ will~be~ignored.
   }
-\__nicematrix_msg_new:nn { width~without~X~columns }
+\__nicematrix_msg_new:nnn { width~without~X~columns }
   {
     You~have~used~the~key~'width'~but~you~have~put~no~'X'~column.~
     That~key~will~be~ignored.
   }
+  {
+    This~message~is~the~message~'width~without~X~columns'~
+    of~the~module~'nicematrix'.~
+    The~experimented~users~can~disable~that~message~with~
+    \token_to_str:N \msg_redirect_name:nnn.\\
+  }
+
 \__nicematrix_msg_new:nn { key~multiplicity~with~dotted }
   {
     Incompatible~keys. \\



More information about the tex-live-commits mailing list.