texlive[64433] Master/texmf-dist: nicematrix (18sep22)

commits+karl at tug.org commits+karl at tug.org
Sun Sep 18 21:45:01 CEST 2022


Revision: 64433
          http://tug.org/svn/texlive?view=revision&revision=64433
Author:   karl
Date:     2022-09-18 21:45:00 +0200 (Sun, 18 Sep 2022)
Log Message:
-----------
nicematrix (18sep22)

Modified Paths:
--------------
    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/source/latex/nicematrix/nicematrix.dtx
    trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty

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	2022-09-18 19:44:20 UTC (rev 64432)
+++ trunk/Master/texmf-dist/doc/latex/nicematrix/nicematrix-french.tex	2022-09-18 19:45:00 UTC (rev 64433)
@@ -24,7 +24,6 @@
 \usepackage{shortvrb}
 \MakeShortVerb{\|}
 
-
 \usepackage{fancyvrb}
 \fvset{commandchars=\~\#\@,formatcom=\color{gray}}
 
@@ -967,13 +966,13 @@
 \end{itemize}
 \item Les coins sont créés par la clé |corners| détaillée un peu plus loin : cf.
 p.~\pageref{corners}.
-\item Pour les rangées et colonnes extérieures, cf.~\pageref{exterior}.
+\item Pour les rangées et colonnes extérieures, cf. p.~\pageref{exterior}.
 \end{itemize}
 
 En particulier, cette remarque explique la différence entre la commande standard
 |\hline| et la commande |\Hline| proposée par \pkg{nicematrix}.
 
-\colorbox{yellow!50}{\textbf{Nouveau 6.13}}\enskip La command |\Hline| admet
+\colorbox{yellow!50}{\textbf{Nouveau 6.13}}\enskip 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}.
@@ -1183,7 +1182,7 @@
 Il est possible de définir des commandes et des lettres pour des filets
 personnalisés avec la clé |custom-line|, utilisable dans |\NiceMatrixOptions| ou
 bien dans un environnement. Cette clé prend en argument une liste de paires de
-la forme \textsl{clé=valeur}. Il y a d'abord deux clés pour spécifier les outils
+la forme \textsl{clé=valeur}. Il y a d'abord trois clés pour spécifier les outils
 qui permettront d'utiliser ce nouveau type de filet.
 
 \begin{itemize}
@@ -1792,9 +1791,51 @@
 Stéphanie \\
 \end{NiceTabular}
 
+\bigskip
+On peut aussi utiliser dans la commande |\rowlistcolors| une série de couleurs
+définie par la commande |\definecolorseries| de \pkg{xcolor} (et initialisée
+avec la commande |\resetcolorseries|\footnote{Pour l'initialisation, on a
+  utilisé dans l'exemple qui suit le compteur |iRow| qui, quand il est utilisé
+  dans le |\CodeBefore| (ou le |\CodeAfter|) désigne le nombre de rangées du
+  tableau : cf~p.~\pageref{iRow}. Cela permet un ajustement de la gradation des
+  couleurs à la taille du tableau.}).
+
+\smallskip
+\begin{BVerbatim}[boxwidth=12cm,baseline=c]
+\begin{NiceTabular}{c}
+\CodeBefore
+   ~emphase#\definecolorseries{BlueWhite}{rgb}{last}{blue}{white}@
+   ~emphase#\resetcolorseries{\value{iRow}}{BlueWhite}@
+   ~emphase#\rowlistcolors{1}{BlueWhite!!+}@
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{c}
+\CodeBefore
+   \definecolorseries{BlueWhite}{rgb}{last}{blue}{white}
+   \resetcolorseries[\value{iRow}]{BlueWhite}
+   \rowlistcolors{1}{BlueWhite!!+}
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+
 \end{itemize}
 
-\medskip
+
+\vspace{1cm}
 On rappelle que toutes les commandes de coloriage que l'on vient de décrire ne
 colorient pas les cases qui sont dans les «coins». Dans l'exemple suivant, on
 utilise la clé |corners| pour demander de considérer le coin \emph{north east} (NE).
@@ -3332,7 +3373,7 @@
 \subsection{La légendes des tableaux}
 
 \colorbox{yellow!50}{\bfseries Nouveau 6.12}\enskip L'environnement
-|{NiceTabular}| proposent des clés |caption|, |short-caption| et |label| à
+|{NiceTabular}| propose des clés |caption|, |short-caption| et |label| à
 utiliser lorsque le tableau est inséré dans un environnment flottant
 (typiquement un environnement |{table}|).
 
@@ -3462,7 +3503,7 @@
 
 \colorbox{yellow!50}{\textbf{Nouveau 6.13} }\enskip Une syntaxe alternative est
 proposée : il est possible d'utiliser l'environnement |{TabularNote}| à la fin de
-l'environnement |{NiceTabular}| (mais \emph{avant} l'eventuel |\CodeAfter|).
+l'environnement |{NiceTabular}| (mais \emph{avant} l'éventuel |\CodeAfter|).
 
 \item Si l'extension \pkg{booktabs} a été chargée (avant ou après
 \pkg{nicematrix}), la clé |notes/bottomrule| permet de faire tracer un
@@ -3917,6 +3958,8 @@
 
 \subsection{Les compteurs iRow et jCol}
 
+\label{iRow}
+
 Dans les cases du tableau, il est possible d'utiliser les compteurs LaTeX |iRow|
 et |jCol| qui représentent le numéro de la rangée courante et le numéro de la
 colonne courante\footnote{On rappelle que le numéro de la «première rangée» (si

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

Modified: trunk/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx	2022-09-18 19:44:20 UTC (rev 64432)
+++ trunk/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx	2022-09-18 19:45:00 UTC (rev 64433)
@@ -17,8 +17,8 @@
 %
 % \fi
 % \iffalse
-\def\myfileversion{6.13}
-\def\myfiledate{2022/08/24}
+\def\myfileversion{6.13a}
+\def\myfiledate{2022/09/17}
 %
 %
 %<*batchfile>
@@ -1200,7 +1200,7 @@
 % It's also possible to define commands and letters for customized rules with
 % the key |custom-line| available in |\NiceMatrixOptions| and in the options of
 % individual environments. That key takes in as argument a list of
-% \textsl{key=value} pairs. First, there is two keys to define the tools which
+% \textsl{key=value} pairs. First, there is three keys to define the tools which
 % will be used to use that new type of rule.
 % 
 % \begin{itemize}
@@ -1754,7 +1754,6 @@
 % arguments for the colors, this command takes in an argument which is a
 % (comma-separated) list of colors. In that list, the symbol |=| represent a
 % color identical to the previous one.
-% \end{itemize}
 %
 % \smallskip
 % \begin{BVerbatim}[boxwidth=10cm,baseline=c]
@@ -1784,8 +1783,49 @@
 % Alexandra \\
 % \end{NiceTabular}
 %
+% \bigskip
+% It's also possible to use in the command |\rowlistcolors| a color series
+% defined by the command |\definecolorseries| of \pkg{xcolor} (and initialized
+% with the command |\resetcolorseries|\footnote{For the initialization, in the
+% following example, you have used the counter |iRow| which, when used in the
+% |\CodeBefore| (and in the |\CodeAfter|) corresponds to the number of rows of
+% the array: cf.~p~\pageref{iRow}. That leads to an adjustement of the gradation
+% of the colors to the size of the tabular.}).
 %
-% \medskip
+% \smallskip
+% \begin{BVerbatim}[boxwidth=12cm,baseline=c]
+% \begin{NiceTabular}{c}
+% \CodeBefore
+%    ~emphase#\definecolorseries{BlueWhite}{rgb}{last}{blue}{white}@
+%    ~emphase#\resetcolorseries{\value{iRow}}{BlueWhite}@
+%    ~emphase#\rowlistcolors{1}{BlueWhite!!+}@
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+% \end{BVerbatim}
+% \begin{NiceTabular}{c}
+% \CodeBefore
+%    \definecolorseries{BlueWhite}{rgb}{last}{blue}{white}
+%    \resetcolorseries[\value{iRow}]{BlueWhite}
+%    \rowlistcolors{1}{BlueWhite!!+}
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+% \end{itemize}
+%
+% \vspace{1cm}
 % We recall that all the color commands we have described don't color the cells
 % which are in the ``corners''. In the following example, we use the key
 % |corners| to require the determination of the corner \emph{north east} (NE).
@@ -3876,6 +3916,8 @@
 %
 % \subsection{The counters iRow and jCol}
 %
+% \label{iRow}
+% 
 % In the cells of the array, it's possible to use the LaTeX counters |iRow| and
 % |jCol| which represent the number of the current row and the number of the
 % current column\footnote{We recall that the exterior ``first row'' (if it
@@ -5888,8 +5930,79 @@
   }
 %    \end{macrocode}
 %
+% \bigskip
+% \subsection*{Security test}
+%
+% Within the package \pkg{nicematrix}, we will have to test whether a cell of a
+% |{NiceTabular}| is empty. For the cells of the columns of type |p|, |b|, |m|,
+% |X| and |V|, we will test whether the cell is syntactically empty (that is to
+% say that there is only spaces between the ampersands |&|). That test will be
+% done with the command |\@@_test_if_empty:| by testing if the two first tokens
+% in the cells are (during the TeX process) are |\ignorespaces| and |\unskip|.
+%
+% However, if, one day, there is a changement in the implementation of
+% \pkg{array}, maybe that this test will be broken (and \pkg{nicematrix} also).
+%
+% That's why, by security, we will take a test in a small |{tabular}| composed
+% in the box |\l_tmpa_box| used as sandbox.
 % 
+%   \begin{macrocode}
+\@@_msg_new:nn { Internal~error }
+  { 
+    A~fatal~internal~error~have~occurred.\\
+    If~you~see~this~message,~contact~the~author~of~the~package~'nicematrix'~
+    because~this~error~should~not~have~occurred.
+  }
+%    \end{macrocode}
+% 
 % \bigskip
+%    \begin{macrocode}
+\@@_msg_new:nn { mdwtab~loaded }
+  { 
+    The~packages~'mdwtab'~and~'nicematrix'~are~incompatible.~
+    This~error~is~fatal.
+  }
+%    \end{macrocode}
+% 
+% \bigskip
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_security_test:n #1 
+  {
+    \peek_meaning:NTF \ignorespaces
+      { \@@_security_test_i:w }
+      { \@@_fatal:n { Internal~error } }
+    #1 
+  }
+%    \end{macrocode}
+%
+% \bigskip
+%    \begin{macrocode}
+\cs_new_protected:Npn \@@_security_test_i:w \ignorespaces #1
+  {
+    \peek_meaning:NF \unskip { \@@_fatal:n { Internal~error } }
+    #1 
+  }
+%    \end{macrocode}
+%
+% \bigskip
+% Here, the box |\l_tmpa_box| will be used as sandbox to take our security test. 
+%    \begin{macrocode}
+\hook_gput_code:nnn { begindocument } { . }
+  {
+    \@ifpackageloaded { mdwtab }
+      { \@@_fatal:n { mdwtab~loaded } }
+      {
+        \hbox_set:Nn \l_tmpa_box
+          {
+            \begin { tabular } { c > { \@@_security_test:n } c c }
+            text & & text
+            \end { tabular }
+          }
+      } 
+  }
+%    \end{macrocode}
+% 
+% \bigskip
 % \subsection*{Technical  definitions}
 %
 %   \begin{macrocode}
@@ -8497,7 +8610,7 @@
 % we use the following technic:
 % \begin{itemize}
 % \item for the columns of type |p|, |m|, |b|, |V| (of \pkg{varwidth}) or |X|,
-% we test whether the cell is syntacticly empty with |\@@_test_if_empty:| and
+% we test whether the cell is syntactically empty with |\@@_test_if_empty:| and
 % |\@@_test_if_empty_for_S:| 
 % \item if the width of the box |\l_@@_cell_box| (created with the content of
 % the cell) is equal to zero, we consider the cell as empty (however,
@@ -10580,7 +10693,14 @@
     \peek_meaning:NT \unskip 
       {
         \tl_gput_right:Nn \g_@@_cell_after_hook_tl 
-          { \box_set_wd:Nn \l_@@_cell_box \c_zero_dim }
+          { 
+            \box_set_wd:Nn \l_@@_cell_box \c_zero_dim 
+%    \end{macrocode}
+% We put the following code in order to have a column with the correct width
+% even when all the cells of the column are empty.
+%    \begin{macrocode}
+            \skip_horizontal:N \l_@@_col_width_dim 
+          }
       }
     #1
   }
@@ -11031,8 +11151,9 @@
     \@whilesw \if at tempswa \fi { \@tempswafalse \the \NC at list }
     \tl_gclear:N \g_@@_preamble_tl 
     \exp_after:wN \@@_patch_m_preamble:n \the \@temptokena \q_stop
-    \tl_gset_eq:NN #1 \g_@@_preamble_tl 
     \group_end:
+    \tl_set_eq:NN #1 \g_@@_preamble_tl 
+    % \group_end:
   }
 %    \end{macrocode}
 % 
@@ -12434,7 +12555,7 @@
         \bool_if:NTF \l_@@_in_code_after_bool
           { \@@_error_or_warning:n { TabularNote~in~CodeAfter } }
           {
-            \tl_if_empty:NF \g_@@_taublarnote_tl
+            \tl_if_empty:NF \g_@@_tabularnote_tl
               { \tl_gput_right:Nn \g_@@_tabularnote_tl { \par } }
             \tl_gput_right:Nn \g_@@_tabularnote_tl { ##1 } 
           }
@@ -17359,7 +17480,7 @@
               {
                 { \int_compare_p:nNn { #2 } = 1 }
                 { \dim_compare_p:n { \l_@@_col_width_dim >= \c_zero_dim } }
-                { ! \l_@@_respect_arraystretch_bool }
+                { ! \g_@@_rotate_bool } % added 2022/09/16
               }
 %    \end{macrocode}
 % When the block is mono-column in a column with a fixed width (eg |p{3cm}|).

Modified: trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty	2022-09-18 19:44:20 UTC (rev 64432)
+++ trunk/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty	2022-09-18 19:45:00 UTC (rev 64433)
@@ -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.13}
-\def\myfiledate{2022/08/24}
+\def\myfileversion{6.13a}
+\def\myfiledate{2022/09/17}
 \RequirePackage{pgfcore}
 \usepgfmodule{shapes}
 \RequirePackage{l3keys2e}
@@ -70,6 +70,42 @@
     \__nicematrix_warning:n { #1 }
     \__nicematrix_gredirect_none:n { #1 }
   }
+\__nicematrix_msg_new:nn { Internal~error }
+  {
+    A~fatal~internal~error~have~occurred.\\
+    If~you~see~this~message,~contact~the~author~of~the~package~'nicematrix'~
+    because~this~error~should~not~have~occurred.
+  }
+\__nicematrix_msg_new:nn { mdwtab~loaded }
+  {
+    The~packages~'mdwtab'~and~'nicematrix'~are~incompatible.~
+    This~error~is~fatal.
+  }
+\cs_new_protected:Npn \__nicematrix_security_test:n #1
+  {
+    \peek_meaning:NTF \ignorespaces
+      { \__nicematrix_security_test_i:w }
+      { \__nicematrix_fatal:n { Internal~error } }
+    #1
+  }
+\cs_new_protected:Npn \__nicematrix_security_test_i:w \ignorespaces #1
+  {
+    \peek_meaning:NF \unskip { \__nicematrix_fatal:n { Internal~error } }
+    #1
+  }
+\hook_gput_code:nnn { begindocument } { . }
+  {
+    \@ifpackageloaded { mdwtab }
+      { \__nicematrix_fatal:n { mdwtab~loaded } }
+      {
+        \hbox_set:Nn \l_tmpa_box
+          {
+            \begin { tabular } { c > { \__nicematrix_security_test:n } c c }
+            text & & text
+            \end { tabular }
+          }
+      }
+  }
 \tl_new:N \l__nicematrix_argspec_tl
 \cs_generate_variant:Nn \seq_set_split:Nnn { N V n }
 \cs_generate_variant:Nn \keys_define:nn { n x }
@@ -2226,7 +2262,10 @@
     \peek_meaning:NT \unskip
       {
         \tl_gput_right:Nn \g__nicematrix_cell_after_hook_tl
-          { \box_set_wd:Nn \l__nicematrix_cell_box \c_zero_dim }
+          {
+            \box_set_wd:Nn \l__nicematrix_cell_box \c_zero_dim
+            \skip_horizontal:N \l__nicematrix_col_width_dim
+          }
       }
     #1
   }
@@ -2513,8 +2552,9 @@
     \@whilesw \if at tempswa \fi { \@tempswafalse \the \NC at list }
     \tl_gclear:N \g__nicematrix_preamble_tl
     \exp_after:wN \__nicematrix_patch_m_preamble:n \the \@temptokena \q_stop
-    \tl_gset_eq:NN #1 \g__nicematrix_preamble_tl
     \group_end:
+    \tl_set_eq:NN #1 \g__nicematrix_preamble_tl
+    % \group_end:
   }
 \cs_new:Npn \__nicematrix_multicolumn:nnn #1 #2 #3
   {
@@ -3367,7 +3407,7 @@
         \bool_if:NTF \l__nicematrix_in_code_after_bool
           { \__nicematrix_error_or_warning:n { TabularNote~in~CodeAfter } }
           {
-            \tl_if_empty:NF \g__nicematrix_taublarnote_tl
+            \tl_if_empty:NF \g__nicematrix_tabularnote_tl
               { \tl_gput_right:Nn \g__nicematrix_tabularnote_tl { \par } }
             \tl_gput_right:Nn \g__nicematrix_tabularnote_tl { ##1 }
           }
@@ -6335,7 +6375,7 @@
               {
                 { \int_compare_p:nNn { #2 } = 1 }
                 { \dim_compare_p:n { \l__nicematrix_col_width_dim >= \c_zero_dim } }
-                { ! \l__nicematrix_respect_arraystretch_bool }
+                { ! \g__nicematrix_rotate_bool } % added 2022/09/16
               }
               {
                 \begin { minipage } [ \l__nicematrix_vpos_of_block_tl ]



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