diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-02 20:08:24 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-02 20:08:24 +0000 |
commit | 790939792f8200853def4dba78e14d267e3c4cba (patch) | |
tree | 3eee7abff0ec6ba5491b937456438cd207fe3dd0 /Master/texmf-dist | |
parent | 8f46e1651666d3fe5fea9504101d072a7310d32b (diff) |
nicematrix (2sep23)
git-svn-id: svn://tug.org/texlive/trunk@68151 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf | bin | 939983 -> 940839 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf | bin | 584003 -> 588214 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex | 74 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf | bin | 602607 -> 604351 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex | 74 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx | 123 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty | 101 |
7 files changed, 252 insertions, 120 deletions
diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf Binary files differindex 9f6fdcb2d2f..558543af0d5 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-code.pdf diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf Binary files differindex ffb5945c23b..786f5acc729 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.pdf diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex index cbb86d0723a..688885eee9a 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex @@ -1070,6 +1070,7 @@ Il reste néanmoins possible de définir un spécificateur, nommé par exemple + \subsubsection{La commande \textbackslash cline} \label{remark-cline} @@ -1222,7 +1223,38 @@ En particulier, cette remarque explique la différence entre la commande standar 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} @@ -1682,10 +1714,14 @@ $\begin{pNiceArray}{cccc:c} \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,6 +3099,10 @@ x & \Ldots & & & & x 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} @@ -3121,7 +3161,9 @@ commande |\Hdotsfor| est utilisable même lorsque l'extension \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 @@ mathématique avec |\scriptstyle|. \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 @@ $\begin{bNiceMatrix}[margin,hvlines] \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 @@ sont marqués). Il est possible de désactiver cette fonctionnalité avec la clà \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 @@ p.~\pageref{corners}) risque d'être erronée dans certaines circonstances. \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 @@ pointillées (TikZ doit être chargé). 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 @@ pointillées (TikZ doit être chargé). 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 @@ Le document |nicematrix.pdf| (fourni avec l'extension \pkg{nicematrix}) contient 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 diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf Binary files differindex 9bfc22dfcd5..1c8fbe1e24a 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex index 77c4e8d9f93..b2da527927e 100644 --- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex +++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.tex @@ -1185,7 +1185,39 @@ command |\hline| and the command |\Hline| provided by \pkg{nicematrix}. 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} @@ -1637,7 +1669,7 @@ $\left(\begin{NiceArray}{cccc:c} \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,6 +3024,10 @@ x & \Ldots & & & & x 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} @@ -3049,7 +3085,9 @@ Remark: Unlike the command |\hdotsfor| of \pkg{amsmath}, the command |\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 @@ same argument in the caption of the tabular.} \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 @@ may be wrong in some circonstances. \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 @@ not longer dotted (TikZ should be loaded). 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 @@ not longer dotted (TikZ should be loaded). 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 @@ $\begin{pNiceArray}{ccc|cc}[first-row,last-col,margin] \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 @@ The successive versions of the file |nicematrix.sty| provided by TeXLive are ava \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|. diff --git a/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx b/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx index 39677ce1088..9a4e6cc8639 100644 --- a/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx +++ b/Master/texmf-dist/source/latex/nicematrix/nicematrix-code.dtx @@ -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 @@ version 2005/12/01 or later. % % 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 @@ version 2005/12/01 or later. { \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@jCol + 1 } , - multiplicity = \int_use:N \l_tmpa_int , - total-width = \dim_use:N \l_tmpa_dim - } + position = \int_eval:n { \c@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 @@ version 2005/12/01 or later. 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 @@ version 2005/12/01 or later. { \peek_meaning:NTF \Hline { \@@_Hline_ii:nn { #1 + 1 } } - { \@@_Hline_iii:n { #1 } } + { \@@_Hline_iii:n { #1 } } } } % \end{macrocode} @@ -11360,16 +11374,13 @@ version 2005/12/01 or later. % \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 @@ version 2005/12/01 or later. \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 @@ version 2005/12/01 or later. % 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 @@ version 2005/12/01 or later. % |\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 @@ version 2005/12/01 or later. \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 @@ version 2005/12/01 or later. footnotehyper,~ messages-for-Overleaf,~ no-test-for-array,~ - renew-dots,~and + renew-dots,~and~ renew-matrix. } % \end{macrocode} @@ -15897,11 +15919,18 @@ version 2005/12/01 or later. % \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} diff --git a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty index 9c5f41a0223..fb29e18004d 100644 --- a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty +++ b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty @@ -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 - { - \arrayrulewidth * \l_tmpa_int - + \doublerulesep * ( \l_tmpa_int - 1) - } - \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 + \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 { - \__nicematrix_vline:n - { - position = \int_eval:n { \c@jCol + 1 } , - multiplicity = \int_use:N \l_tmpa_int , - total-width = \dim_use:N \l_tmpa_dim - } + position = \int_eval:n { \c@jCol + 1 } , + multiplicity = \int_use:N \l_tmpa_int , + total-width = \dim_use:N \l__nicematrix_rule_width_dim , + #2 } - \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,12 +6144,8 @@ } \cs_set:Npn \__nicematrix_Hline_ii:nn #1 #2 { \__nicematrix_Hline_i:n { #1 } } \cs_set:Npn \__nicematrix_Hline_iii:n #1 - { - \peek_meaning:NTF [ - { \__nicematrix_Hline_iv:nw { #1 } } - { \__nicematrix_Hline_iv:nw { #1 } [ ] } - } -\cs_set:Npn \__nicematrix_Hline_iv:nw #1 [ #2 ] + { \__nicematrix_collect_options:n { \__nicematrix_Hline_iv:nn { #1 } } } +\cs_set:Npn \__nicematrix_Hline_iv:nn #1 #2 { \__nicematrix_compute_rule_width:n { multiplicity = #1 , #2 } \skip_vertical:n { \l__nicematrix_rule_width_dim } @@ -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. \\ |