From 9fe464819ed0a8c536f116bb55dbd39dd32cd904 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 8 Feb 2020 03:02:17 +0000 Subject: CTAN sync 202002080302 --- .../latex/contrib/nicematrix/nicematrix-french.pdf | Bin 311089 -> 312439 bytes .../latex/contrib/nicematrix/nicematrix-french.tex | 43 +++- macros/latex/contrib/nicematrix/nicematrix.dtx | 230 ++++++++++++--------- macros/latex/contrib/nicematrix/nicematrix.pdf | Bin 690785 -> 693305 bytes 4 files changed, 164 insertions(+), 109 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 45b40e96ba..31d18ea42e 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 c4324295c3..05af9a1b73 100644 --- a/macros/latex/contrib/nicematrix/nicematrix-french.tex +++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex @@ -514,7 +514,7 @@ L'extension \pkg{nicematrix} fournit une option appelée |transparent| qui perme manière transparente dans les environnements de l'\pkg{amsmath} : |{matrix}|, |{pmatrix}|, etc. En fait, cette option est un alias pour la conjonction de deux options : |renew-dots| et |renew-matrix|.\footnote{Comme toutes les autres options, les options |renew-dots|, |renew-matrix| et |transparent| peuvent être fixées avec la commande - |\NiceMatrixOptions|, mais elles peuvent aussi être passées en options du |\usepackage| (ce sont les trois + |\NiceMatrixOptions|, mais elles peuvent aussi être passées en option du |\usepackage| (ce sont les trois seules).} \smallskip @@ -1215,7 +1215,9 @@ d'un rectangle de cases fusionnées. La commande |\Block| doit être utilisée dans la case supérieure gauche du bloc avec deux arguments. Le premier argument est la taille de ce bloc avec la syntaxe $i$-$j$ où $i$ est le nombre de rangées et $j$ le nombre de -colonnes du bloc. Le deuxième argument, est, sans surprise, le contenu du bloc (en mode mathématique). +colonnes du bloc. Le deuxième argument, est, sans surprise, le contenu du bloc (en mode mathématique). Un nœud Tikz +correspondant à l'ensemble des cellules fusionnées est créé sous le nom «\textsl{nom}-$i$-$j$» où \textsl{nom} est +le nom donné au tableau. \medskip \begin{BVerbatim}[baseline=c,boxwidth=10.6cm] @@ -1379,7 +1381,7 @@ $C = \pAutoNiceMatrix{3-3}{C_{\arabic{iRow},\arabic{jCol}}}$ Dans les environnements de \pkg{nicematrix}, on peut bien entendu ajouter des filets horizontaux entre les lignes avec la commande~|\hline|. Par souci de commodité, l'extension \pkg{nicematrix} fournit l'option |hlines| qui impose -directement que tous les filets horizontaux soient tracés (à l'exception, très naturelle, du filet avanet +directement que tous les filets horizontaux soient tracés (à l'exception, très naturelle, du filet avant l'éventuelle «première rangée» et après l'éventuelle «dernière rangée»). \medskip @@ -1668,7 +1670,7 @@ l'environnement |{array}| n'était probablement pas une bonne idée\footnote{Dan remove it [in |{matrix}|] (perhaps we should instead remove it from array in general, but that's a harder task).} Il est possible de supprimer les espaces pour un environnement |{array}| donné par une construction du type |\begin{array}{@{}ccccc@{}}...\end{array}|.}. L'environnement |{matrix}| et ses variantes (|{pmatrix}|, -|{vmatrix}|, etc.) de \pkg{amsmath} prefèrent supprimer ces espaces avec des instructions explicites +|{vmatrix}|, etc.) de \pkg{amsmath} préfèrent supprimer ces espaces avec des instructions explicites |\hskip -\arraycolsep|. L'extension \pkg{nicematrix} fait de même dans \emph{tous} ses environnements y compris l'environnement |{NiceArray}|. Néanmoins, si l'utilisateur souhaite que l'environnement |{NiceArray}| se comporte par défaut comme l'environnement |{array}| de \pkg{array} (par exemple pour faciliter l'adaptation d'un document @@ -2156,6 +2158,35 @@ les \emph{blend modes}. Néanmoins, le code suivant, dans le préambule du docum |\ExplSyntaxOff| \end{scope} +\vspace{1cm} +On rappelle que dans le cas d'un ensemble de cellules fusionnées (avec la commande |\Block|), un nœud Tikz est créé +pour l'ensemble des cellules avec pour nom $i$|-|$j$ où $i$ et $j$ sont les numéros de ligne et de colonne de +la cellule en haut à gauche (où a été utilisée la commande |\Block|). + +\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} On considère maintenant la matrice suivante que l'on a appelée |exemple|. @@ -2331,7 +2362,7 @@ b_{11} & \Cdots & b_{1j} & \Cdots & b_{1n} \\ La matrice $A$ a une «première colonne» (pour $L_i$) d'où l'option |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 \\ @@ -2376,7 +2407,7 @@ b_{11} & \Cdots & b_{1j} & \Cdots & b_{1n} \\ 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 \\ diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx index bbbc805d70..2752f0dd6f 100644 --- a/macros/latex/contrib/nicematrix/nicematrix.dtx +++ b/macros/latex/contrib/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 % diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf index c4738a0111..a9862fd6a3 100644 Binary files a/macros/latex/contrib/nicematrix/nicematrix.pdf and b/macros/latex/contrib/nicematrix/nicematrix.pdf differ -- cgit v1.2.3