diff options
author | Karl Berry <karl@freefriends.org> | 2020-02-08 22:18:19 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-02-08 22:18:19 +0000 |
commit | 1e577f4d47b9f2960d200a56482fe5e121a7cbce (patch) | |
tree | 6d0454e96b1674e0903b115bb60bc7c9abc57122 /Master/texmf-dist/source/latex/nicematrix | |
parent | d40a26c699d6f0303ec54ea646d5eb96b4ab54bf (diff) |
nicematrix (8feb20)
git-svn-id: svn://tug.org/texlive/trunk@53721 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/nicematrix')
-rw-r--r-- | Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx | 230 |
1 files changed, 127 insertions, 103 deletions
diff --git a/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx b/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx index bbbc805d70e..2752f0dd6fc 100644 --- a/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx +++ b/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx @@ -15,8 +15,8 @@ % % \fi % \iffalse -\def\myfileversion{3.10} -\def\myfiledate{2020/01/22} +\def\myfileversion{3.11} +\def\myfiledate{2020/02/07} % % %<*batchfile> @@ -1267,8 +1267,8 @@ c & c & b & a & e % two arguments. The first argument is the size of the block with the syntax % $i$\verb|-|$j$ where $i$ is the number of rows of the block and $j$ its number % of columns. The second argument is the content of the block (composed in math -% mode). -% +% mode). A Tikz node corresponding to the merged cells is created with the name +% ``\textsl{name}-$i$-$j$'' where \textsl{name} is the name given to the array. % % % \medskip @@ -2248,6 +2248,31 @@ c & c & b & a & e % % |\ExplSyntaxOff| % \end{scope} +% +% \vspace{1cm} +% We recall that, for a rectangle of merged cells (with the command |\Block|), a +% Tikz node is created for the set of merged cells with the name $i$|-|$j$ where +% $i$ and $j$ are the number of the row and the number of the column of the +% upper left cell (where the command |\Block| has been issued). +% +% \medskip +% \begin{BVerbatim}[baseline=c,boxwidth=11.6cm] +% $\begin{pNiceMatrix}% +% [margin, +% code-after = { \tikz \node [~emphase#highlight = (1-1)@] {} ; } ] +% \Block{3-3}<\Large>{A} & & & 0 \\ +% & \hspace*{1cm} & & \Vdots \\ +% & & & 0 \\ +% 0 & \Cdots& 0 & 0 +% \end{pNiceMatrix}$ +% \end{BVerbatim} +% $\begin{pNiceMatrix}[margin, +% code-after = { \tikz \node [highlight = (1-1)] {} ; } ] +% \Block{3-3}<\Large>{A} & & & 0 \\ +% & \hspace*{1cm} & & \Vdots \\ +% & & & 0 \\ +% 0 & \Cdots& 0 & 0 +% \end{pNiceMatrix}$ % % \vspace{1cm} % Considerer now the following matrix which we have named |example|. @@ -2432,7 +2457,7 @@ c & c & b & a & e % key |first-col|. % \begin{Verbatim} % \begin{bNiceArray}{CC>{\strut}CCC}[name=A,first-col] -% & a_{11} & \Cdots & & & a_{nn} \\ +% & a_{11} & \Cdots & & & a_{1n} \\ % & \Vdots & & & & \Vdots \\ % L_i & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\ % & \Vdots & & & & \Vdots \\ @@ -2477,7 +2502,7 @@ c & c & b & a & e % b_{n1} & \Cdots & b_{nj} & \Cdots & b_{nn} % \end{bNiceArray} \\ \\ % \begin{bNiceArray}{CC>{\strut}CCC}[name=A,first-col] -% & a_{11} & \Cdots & & & a_{nn} \\ +% & a_{11} & \Cdots & & & a_{1n} \\ % & \Vdots & & & & \Vdots \\ % L_i & a_{i1} & \Cdots & a_{ik} & \Cdots & a_{in} \\ % & \Vdots & & & & \Vdots \\ @@ -2548,7 +2573,7 @@ c & c & b & a & e {nicematrix} {\myfiledate} {\myfileversion} - {Several features to improve the typesetting of mathematical matrices with TikZ} + {Mathematical matrices with TikZ} % \end{macrocode} % % \bigskip @@ -3429,8 +3454,8 @@ c & c & b & a & e % |\l_@@_code_for_first_row_tl| and \emph{al} don't apply in the corners of the % matrix. % \begin{macrocode} - \int_compare:nNnTF \c@iRow = \c_zero_int - { \int_compare:nNnT \c@jCol > \c_zero_int \l_@@_code_for_first_row_tl } + \int_compare:nNnTF \c@iRow = 0 + { \int_compare:nNnT \c@jCol > 0 \l_@@_code_for_first_row_tl } { \int_compare:nNnT \c@iRow = \l_@@_last_row_int \l_@@_code_for_last_row_tl @@ -3447,8 +3472,8 @@ c & c & b & a & e { \int_gincr:N \c@iRow \dim_gset_eq:NN \g_@@_dp_ante_last_row_dim \g_@@_dp_last_row_dim - \dim_gzero:N \g_@@_dp_last_row_dim - \dim_gzero:N \g_@@_ht_last_row_dim + \dim_gset:Nn \g_@@_dp_last_row_dim { \box_dp:N \@arstrutbox } + \dim_gset:Nn \g_@@_ht_last_row_dim { \box_ht:N \@arstrutbox } } % \end{macrocode} % @@ -3460,7 +3485,7 @@ c & c & b & a & e % \begin{macrocode} \cs_new_protected:Npn \@@_actualization_for_first_and_last_row: { - \int_compare:nNnT \c@iRow = \c_zero_int + \int_compare:nNnT \c@iRow = 0 { \dim_gset:Nn \g_@@_dp_row_zero_dim { \dim_max:nn \g_@@_dp_row_zero_dim { \box_dp:N \l_tmpa_box } } @@ -3549,11 +3574,11 @@ c & c & b & a & e { > { \hbox_set:Nw \l_tmpa_box - \_@@_Cell: + \@@_Cell: } c < { - \_@@_end_Cell: + \@@_end_Cell: \hbox_set_end: #2 \tikz [ remember~picture ] @@ -3774,7 +3799,6 @@ c & c & b & a & e \dim_gzero_new:N \g_@@_ht_row_one_dim \dim_gset:Nn \g_@@_ht_row_one_dim { \box_ht:N \@arstrutbox } \dim_gzero_new:N \g_@@_dp_ante_last_row_dim - \dim_gset:Nn \g_@@_dp_ante_last_row_dim { \box_dp:N \@arstrutbox } \dim_gzero_new:N \g_@@_ht_last_row_dim \dim_gset:Nn \g_@@_ht_last_row_dim { \box_ht:N \@arstrutbox } \dim_gzero_new:N \g_@@_dp_last_row_dim @@ -4095,7 +4119,7 @@ c & c & b & a & e % We construct the preamble of the array in |\l_tmpa_tl|. % \begin{macrocode} \tl_set:Nn \l_tmpa_tl { #4 } - \int_compare:nNnTF \l_@@_first_col_int = \c_zero_int + \int_compare:nNnTF \l_@@_first_col_int = 0 { \tl_put_left:NV \l_tmpa_tl \c_@@_preamble_first_col_tl } { \bool_if:NT \l_@@_NiceArray_bool @@ -4142,7 +4166,7 @@ c & c & b & a & e % Now, the box containing the array is constructed (in |\l_@@_the_array_box|). % However, we have some computations to do before inserting that box in the TeX % flow (mainly because the exterior columns are in overlapping positions). -% +% % \bigskip % \begin{macrocode} \int_compare:nNnT \l_@@_last_row_int > { -2 } @@ -4155,42 +4179,17 @@ c & c & b & a & e \int_gset_eq:NN \l_@@_last_row_int \c@iRow } } - } -% \end{macrocode} -% -% Now, we compute |\l_tmpa_dim| which is the vertical dimension of the ``first -% row'' above the array (when the key |first-row| is used). -% \begin{macrocode} - \int_compare:nNnTF \l_@@_first_row_int = \c_zero_int - { - \dim_set:Nn \l_tmpa_dim - { \g_@@_dp_row_zero_dim + \lineskip + \g_@@_ht_row_zero_dim } - } - { \dim_zero:N \l_tmpa_dim } -% \end{macrocode} -% We compute |\l_tmpb_dim| which is the vertical dimension of the ``last row'' -% below the array (when the key |last-row| is used). A value of $-2$ for -% |\l_@@_last_row_int| means that there is no ``last row''.\footnote{A value of -% $-1$ for |\l_@@_last_row_int| means that there is a ``last row'' but the -% number of that row is unknown (the user have not set the value with the option -% |last row|).} -% \begin{macrocode} - \int_compare:nNnTF \l_@@_last_row_int > { -2 } - { - \dim_set:Nn \l_tmpb_dim - { \g_@@_ht_last_row_dim + \lineskip + \g_@@_dp_last_row_dim } - } - { \dim_zero:N \l_tmpb_dim } + } % \end{macrocode} % % \bigskip -% Now, we begin the real construction in the output flow of TeX. First, we take +% \textbf{Now, we begin the real construction in the output flow of TeX}. First, we take % into account a potential ``first column'' (we remind that this ``first % column'' has been constructed in an overlapping position and that we have % computed its width in |\g_@@_width_first_col_dim|: see % p.~\pageref{overlap-left}). % \begin{macrocode} - \int_compare:nNnT \l_@@_first_col_int = \c_zero_int + \int_compare:nNnT \l_@@_first_col_int = 0 { \skip_horizontal:n \arraycolsep \skip_horizontal:n \g_@@_width_first_col_dim @@ -4204,13 +4203,12 @@ c & c & b & a & e % \begin{macrocode} \bool_if:NTF \l_@@_NiceArray_bool { - \int_compare:nNnT \l_@@_first_row_int = \c_zero_int + \int_compare:nNnTF \l_@@_first_row_int = 0 { - \str_if_eq:VnTF \l_@@_pos_env_str { t } - { - \box_move_up:nn - { \l_tmpa_dim - \g_@@_ht_row_zero_dim + \g_@@_ht_row_one_dim } - } + \str_if_eq:VnT \l_@@_pos_env_str { t } + { + \box_move_up:nn { \g_@@_dp_row_zero_dim + \g_@@_ht_row_one_dim } + } } { \int_compare:nNnT \l_@@_last_row_int > 0 @@ -4218,10 +4216,7 @@ c & c & b & a & e \str_if_eq:VnT \l_@@_pos_env_str { b } { \box_move_down:nn - { - \l_tmpb_dim - - \g_@@_dp_last_row_dim + \g_@@_dp_ante_last_row_dim - } + { \g_@@_ht_last_row_dim + \g_@@_dp_ante_last_row_dim } } } } @@ -4229,9 +4224,34 @@ c & c & b & a & e } % \end{macrocode} % -% Now, in the case of an environment |{pNiceArray}|, |{bNiceArray}|, etc. +% Now, in the case of an environment |{pNiceArray}|, |{bNiceArray}|, etc. We +% compute |\l_tmpa_dim| which is the total height of the ``first row'' above the +% array (when the key |first-row| is used). % \begin{macrocode} { + \int_compare:nNnTF \l_@@_first_row_int = 0 + { + \dim_set:Nn \l_tmpa_dim + { \g_@@_dp_row_zero_dim + \g_@@_ht_row_zero_dim } + } + { \dim_zero:N \l_tmpa_dim } +% \end{macrocode} +% We compute |\l_tmpb_dim| which is the total height of the ``last row'' +% below the array (when the key |last-row| is used). A value of $-2$ for +% |\l_@@_last_row_int| means that there is no ``last row''.\footnote{A value of +% $-1$ for |\l_@@_last_row_int| means that there is a ``last row'' but the +% number of that row is unknown (the user have not set the value with the option +% |last row|).} +% \begin{macrocode} + \int_compare:nNnTF \l_@@_last_row_int > { -2 } + { + \dim_set:Nn \l_tmpb_dim + { \g_@@_ht_last_row_dim + \g_@@_dp_last_row_dim } + } + { \dim_zero:N \l_tmpb_dim } +% \end{macrocode} +% +% \begin{macrocode} \hbox_set:Nn \l_tmpa_box { \c_math_toggle_token @@ -4239,8 +4259,8 @@ c & c & b & a & e \vcenter { % \end{macrocode} -% We take into account the ``first row'' (we have previously computed its size -% in |\l_tmpa_dim|). +% We take into account the ``first row'' (we have previously computed its total +% height in |\l_tmpa_dim|). % \begin{macrocode} \skip_vertical:n { - \l_tmpa_dim } \hbox:n @@ -4250,8 +4270,8 @@ c & c & b & a & e \skip_horizontal:n { - \arraycolsep } } % \end{macrocode} -% We take into account the ``last row'' (we have previously computed its size -% in |\l_tmpb_dim|). +% We take into account the ``last row'' (we have previously computed its total +% height in |\l_tmpb_dim|). % \begin{macrocode} \skip_vertical:n { - \l_tmpb_dim } } @@ -4263,9 +4283,9 @@ c & c & b & a & e \box_use_drop:N \l_tmpa_box } % \end{macrocode} -% We take into account a potential ``last column'' (this ``last -% column'' has been constructed in an overlapping position and we have computed -% its width in |\g_@@_width_last_col_dim|: see p.~\pageref{overlap-right}). +% We take into account a potential ``last column'' (this ``last column'' has +% been constructed in an overlapping position and we have computed its width in +% |\g_@@_width_last_col_dim|: see p.~\pageref{overlap-right}). % \begin{macrocode} \bool_if:NT \g_@@_last_col_found_bool { @@ -4489,7 +4509,7 @@ c & c & b & a & e % \begin{macrocode} \bool_if:nT { - \int_compare_p:nNn \c@iRow > \c_zero_int + \int_compare_p:nNn \c@iRow > 0 && ( \int_compare_p:nNn \l_@@_last_row_int < 0 @@ -4586,7 +4606,7 @@ c & c & b & a & e % \begin{macrocode} \bool_if:nT { - \int_compare_p:nNn \c@iRow > \c_zero_int + \int_compare_p:nNn \c@iRow > 0 && ( \int_compare_p:nNn \l_@@_last_row_int < 0 @@ -4879,7 +4899,7 @@ c & c & b & a & e % \begin{macrocode} \cs_new_protected:Nn \@@_after_array: { - \int_compare:nNnTF \c@iRow > \c_zero_int + \int_compare:nNnTF \c@iRow > 0 \@@_after_array_i: { \@@_error:n { Zero~row } @@ -5375,7 +5395,7 @@ c & c & b & a & e \cs_if_free:cT { @@ _ dotted _ #1 - #2 } { \bool_set_false:N \l_@@_impossible_line_bool - \@@_find_extremities_of_line:nnnn { #1 } { #2 } \c_zero_int \c_one_int + \@@_find_extremities_of_line:nnnn { #1 } { #2 } 0 \c_one_int \bool_if:NF \l_@@_impossible_line_bool \@@_actually_draw_Ldots: } } @@ -5445,7 +5465,7 @@ c & c & b & a & e \cs_if_free:cT { @@ _ dotted _ #1 - #2 } { \bool_set_false:N \l_@@_impossible_line_bool - \@@_find_extremities_of_line:nnnn { #1 } { #2 } \c_zero_int \c_one_int + \@@_find_extremities_of_line:nnnn { #1 } { #2 } 0 \c_one_int \bool_if:NF \l_@@_impossible_line_bool { \@@_retrieve_coords:xx @@ -5501,7 +5521,7 @@ c & c & b & a & e \cs_if_free:cT { @@ _ dotted _ #1 - #2 } { \bool_set_false:N \l_@@_impossible_line_bool - \@@_find_extremities_of_line:nnnn { #1 } { #2 } \c_one_int \c_zero_int + \@@_find_extremities_of_line:nnnn { #1 } { #2 } \c_one_int 0 \bool_if:NF \l_@@_impossible_line_bool { \@@_retrieve_coords:xx @@ -6191,7 +6211,7 @@ c & c & b & a & e && ! \l_@@_exterior_arraycolsep_bool && - \int_compare_p:nNn \l_@@_first_col_int > \c_zero_int + \int_compare_p:nNn \l_@@_first_col_int > 0 } { \skip_horizontal:n { - \arraycolsep } } \hbox_to_wd:nn @@ -6213,7 +6233,7 @@ c & c & b & a & e % We should allow the letter ``|:|'' in the first position of the preamble % but that would need a special programmation. % \begin{macrocode} - \int_compare:nNnTF #1 = \c_zero_int + \int_compare:nNnTF #1 = 0 { \@@_error:n { Use~of~:~in~first~position } } { \bool_if:NF \c_@@_draft_bool @@ -6300,7 +6320,7 @@ c & c & b & a & e % with |\newcolumntype|: % \begin{Verbatim}[commandchars=\~\#\+] % \newcolumntype { | } -% { ! { \int_compare:nNnF \c@iRow = \c_zero_int \vline } } +% { ! { \int_compare:nNnF \c@iRow = 0 \vline } } % \end{Verbatim} % % However, this code fails if the user uses "\DefineShortVerb{\|}" of @@ -6318,20 +6338,20 @@ c & c & b & a & e % \begin{macrocode} \cs_new_protected:Npn \@@_vline: { - \int_compare:nNnTF \l_@@_first_col_int = \c_zero_int + \int_compare:nNnTF \l_@@_first_col_int = 0 { - \int_compare:nNnTF \c@jCol = \c_zero_int + \int_compare:nNnTF \c@jCol = 0 { - \int_compare:nNnTF \l_@@_first_row_int = \c_zero_int + \int_compare:nNnTF \l_@@_first_row_int = 0 { - \int_compare:nNnF \c@iRow = \c_zero_int + \int_compare:nNnF \c@iRow = 0 { \int_compare:nNnF \c@iRow = \l_@@_last_row_int \@@_vline_i: } } { - \int_compare:nNnF \c@iRow = \c_zero_int + \int_compare:nNnF \c@iRow = 0 { \int_compare:nNnF \c@iRow = \l_@@_last_row_int \@@_vline_i: @@ -6339,7 +6359,7 @@ c & c & b & a & e } } { - \int_compare:nNnF \c@iRow = \c_zero_int + \int_compare:nNnF \c@iRow = 0 { \int_compare:nNnF \c@iRow = \l_@@_last_row_int \@@_vline_i: @@ -6347,7 +6367,7 @@ c & c & b & a & e } } { - \int_compare:nNnTF \c@jCol = \c_zero_int + \int_compare:nNnTF \c@jCol = 0 { \int_compare:nNnF \c@iRow = { -1 } { @@ -6356,7 +6376,7 @@ c & c & b & a & e } } { - \int_compare:nNnF \c@iRow = \c_zero_int + \int_compare:nNnF \c@iRow = 0 { \int_compare:nNnF \c@iRow = \l_@@_last_row_int \@@_vline_i: @@ -6396,7 +6416,7 @@ c & c & b & a & e % \begin{macrocode} \cs_new:Npn \@@_OnlyMainNiceMatrix:n #1 { - \int_compare:nNnF \c@iRow = \c_zero_int + \int_compare:nNnF \c@iRow = 0 { \int_compare:nNnF \c@iRow = \l_@@_last_row_int { #1 } } } % \end{macrocode} @@ -7010,15 +7030,15 @@ c & c & b & a & e \@@_set_size:n #4 \q_stop \begin { NiceArrayWithDelims } { #1 } { #2 } { * { \l_@@_nb_cols_int } { C } } [ #3 , #5 , #7 ] - \int_compare:nNnT \l_@@_first_row_int = \c_zero_int + \int_compare:nNnT \l_@@_first_row_int = 0 { - \int_compare:nNnT \l_@@_first_col_int = \c_zero_int { & } + \int_compare:nNnT \l_@@_first_col_int = 0 { & } \prg_replicate:nn { \l_@@_nb_cols_int - 1 } { & } \int_compare:nNnT \l_@@_last_col_int > { -1 } { & } \\ } \prg_replicate:nn \l_@@_nb_rows_int { - \int_compare:nNnT \l_@@_first_col_int = \c_zero_int { & } + \int_compare:nNnT \l_@@_first_col_int = 0 { & } % \end{macrocode} % You put |{ }| before |#6| to avoid a hasty expansion of an eventual % |\arabic{iRow}| at the beginning of the row which would result in an incorrect @@ -7030,7 +7050,7 @@ c & c & b & a & e } \int_compare:nNnT \l_@@_last_row_int > { -2 } { - \int_compare:nNnT \l_@@_first_col_int = \c_zero_int { & } + \int_compare:nNnT \l_@@_first_col_int = 0 { & } \prg_replicate:nn { \l_@@_nb_cols_int - 1 } { & } \int_compare:nNnT \l_@@_last_col_int > { -1 } { & } \\ } @@ -7372,7 +7392,7 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~option~'last-col' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim + \int_zero:N \l_@@_last_col_int \pNiceArray } { \endpNiceArray } @@ -7383,7 +7403,7 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~option~'last-col' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim + \int_zero:N \l_@@_last_col_int \bNiceArray } { \endbNiceArray } @@ -7394,7 +7414,7 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~option~'last-col' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim + \int_zero:N \l_@@_last_col_int \BNiceArray } { \endBNiceArray } @@ -7405,7 +7425,7 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~option~'last-col' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim + \int_zero:N \l_@@_last_col_int \vNiceArray } { \endvNiceArray } @@ -7416,7 +7436,7 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~option~'last-col' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim + \int_zero:N \l_@@_last_col_int \VNiceArray } { \endVNiceArray } @@ -7427,8 +7447,8 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~options~'last-col'~and~'first-row' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim - \int_set:Nn \l_@@_first_row_int \c_zero_int + \int_zero:N \l_@@_last_col_int + \int_zero:N \l_@@_first_row_int \pNiceArray } { \endpNiceArray } @@ -7439,8 +7459,8 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~options~'last-col'~and~'first-row' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim - \int_set:Nn \l_@@_first_row_int \c_zero_int + \int_zero:N \l_@@_last_col_int + \int_zero:N \l_@@_first_row_int \bNiceArray } { \endbNiceArray } @@ -7451,8 +7471,8 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~options~'last-col'~and~'first-row' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim - \int_set:Nn \l_@@_first_row_int \c_zero_int + \int_zero:N \l_@@_last_col_int + \int_zero:N \l_@@_first_row_int \BNiceArray } { \endBNiceArray } @@ -7463,8 +7483,8 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~options~'last-col'~and~'first-row' } - \bool_set_true:N \l_@@_last_col_bool - \int_set:Nn \l_@@_first_row_int \c_zero_int + \int_zero:N \l_@@_last_col_int + \int_zero:N \l_@@_first_row_int \vNiceArray } { \endvNiceArray } @@ -7475,8 +7495,8 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~options~'last-col'~and~'first-row' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim - \int_set:Nn \l_@@_first_row_int \c_zero_int + \int_zero:N \l_@@_last_col_int + \int_zero:N \l_@@_first_row_int \VNiceArray } { \endVNiceArray } @@ -7487,7 +7507,7 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~option~'last-col' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim + \int_zero:N \l_@@_last_col_int \NiceArrayWithDelims } { \endNiceArrayWithDelims } @@ -7498,8 +7518,8 @@ c & c & b & a & e { \@@_error:nn { Obsolete~environment } { the~options~'last-col'~and~'first-row' } - \int_set:Nn \l_@@_last_col_int \c_zero_dim - \int_set:Nn \l_@@_first_row_int \c_zero_int + \int_zero:N \l_@@_last_col_int + \int_zero:N \l_@@_first_row_int \NiceArrayWithDelims } { \endNiceArrayWithDelims } @@ -7738,6 +7758,10 @@ c & c & b & a & e % New option |light-syntax| (and |end-of-row|). % % New option |dotted-lines-margin| for fine tuning of the dotted lines. +% +% \subsection*{Changes between versions 3.10 and 3.11} +% +% Correction of a bug linked to |first-row| and |last-row|. % % \PrintIndex % |