summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/nicematrix/nicematrix.dtx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-05-09 03:01:47 +0000
committerNorbert Preining <norbert@preining.info>2022-05-09 03:01:47 +0000
commitfe29944c3d5256062708e9b1ae62dc378f9d9993 (patch)
tree2ff3c511d0cb27649150f24bcafec31af12d8faa /macros/latex/contrib/nicematrix/nicematrix.dtx
parentce1c001f7db86ff8f09c1203b965ed9f44531d7a (diff)
CTAN sync 202205090301
Diffstat (limited to 'macros/latex/contrib/nicematrix/nicematrix.dtx')
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx253
1 files changed, 134 insertions, 119 deletions
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index 74e7b7c98f..c95554cfac 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -15,8 +15,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.8}
-\def\myfiledate{2022/03/11}
+\def\myfileversion{6.8a}
+\def\myfiledate{2022/05/08}
%
%
%<*batchfile>
@@ -101,6 +101,8 @@ version 2005/12/01 or later.
\makeatother
+
+
\begin{document}
\DocInput{nicematrix.dtx}
\end{document}
@@ -1181,59 +1183,7 @@ version 2005/12/01 or later.
% It's possible to use the command |\diagbox| in a |\Block|.
%
%
-% \subsection{Dotted rules}
-%
-% \label{dotted}
-%
-% In the environments of the package \pkg{nicematrix}, it's possible to use
-% the command |\hdottedline| (provided by \pkg{nicematrix}) which is a
-% counterpart of the classical command |\hline|.
-%
-% \medskip
-% \begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
-% \begin{pNiceMatrix}
-% 1 & 2 & 3 & 4 & 5 \\
-% ~emphase#\hdottedline@
-% 6 & 7 & 8 & 9 & 10 \\
-% 11 & 12 & 13 & 14 & 15
-% \end{pNiceMatrix}
-% \end{BVerbatim}
-% $\begin{pNiceMatrix}
-% 1 & 2 & 3 & 4 & 5 \\
-% \hdottedline
-% 6 & 7 & 8 & 9 & 10 \\
-% 11 & 12 & 13 & 14 & 15
-% \end{pNiceMatrix}$
-%
-%
-% \bigskip
-% In the environments with an explicit preamble (like |{NiceTabular}|,
-% |{NiceArray}|, etc.), it's possible to draw a vertical dotted line with the
-% specifier ``|:|''.
-%
-% \medskip
-% \begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
-% \left(\begin{NiceArray}{cccc~emphase#:@c}
-% 1 & 2 & 3 & 4 & 5 \\
-% 6 & 7 & 8 & 9 & 10 \\
-% 11 & 12 & 13 & 14 & 15
-% \end{NiceArray}\right)
-% \end{BVerbatim}
-% $\left(\begin{NiceArray}{cccc:c}
-% 1 & 2 & 3 & 4 & 5 \\
-% 6 & 7 & 8 & 9 & 10 \\
-% 11 & 12 & 13 & 14 & 15
-% \end{NiceArray}\right)$
-%
%
-% \bigskip
-% \emph{Remark}: In the package \pkg{array} (on which the package
-% \pkg{nicematrix} relies), horizontal and vertical rules make the array larger
-% or wider by a quantity equal to the width of the rule\footnote{In fact, with
-% \pkg{array}, this is true only for |\hline| and ``"|"'' but not for |\cline|:
-% cf p.~\pageref{remark-cline}}. In \pkg{nicematrix}, the dotted lines drawn by
-% |\hdottedline| and ``|:|'' do likewise.
-%
%
% \subsection{Commands for customized rules}
% \label{custom-line}
@@ -1274,36 +1224,12 @@ version 2005/12/01 or later.
% \item the key |sep-color| sets the color between two successive rules (should be
% used only in conjonction with |multiplicity|).
% \end{itemize}
-%
-% \bigskip
-% \item \emph{Second possibility}\par\nobreak
-%
-% The key |dotted| forces a style with dotted rules such as those created by
-% |\hdottedline| or the letter ``|:|'' in the preamble (cf.
-% p.~\pageref{dotted}). The key |color| may be used also in that case.
%
-% \bigskip
-% \item \colorbox{yellow!50}{\textbf{New 6.6}}\enskip \emph{Third
-% possibility}\par\nobreak
-%
-% It's possible to use the key |tikz| (if Tikz is loaded). In that case, the
-% rule is drawn directly with Tikz by using as parameters the value of the key
-% |tikz| which must be a list of \textsl{key=value} pairs which may be applied
-% to a Tikz path.
-%
-% By default, no space is reserved for the rule that will be drawn with Tikz. It
-% possible to specify a reservation (horizontal for a vertical rule and vertical
-% for an horizontal one) with the key |width|. That value of that key, is, in
-% some ways, the width of the rule that will be drawn (\pkg{nicematrix} does not
-% compute that width from the characteristics of the rule specified in |tikz|).
-% \end{itemize}
-%
-% \bigskip
+% \medskip
% That system may be used, in particular, for the definition of commands and
% letters to draw rules with a specific color (and those rules will respect the
-% blocks as do all rules of \pkg{nicematrix}).
-%
-%
+% blocks and corners as do all the rules of \pkg{nicematrix}).
+%
% \medskip
% \begin{Verbatim}
% \begin{NiceTabular}{lcIcIc}~emphase#[custom-line = {letter=I, color=blue}]@
@@ -1318,6 +1244,23 @@ version 2005/12/01 or later.
% \end{NiceTabular}
% \end{Verbatim}
%
+%
+% \bigskip
+% \item \colorbox{yellow!50}{\textbf{New 6.6}}\enskip \emph{Second
+% possibility}\par\nobreak
+%
+% It's possible to use the key |tikz| (if Tikz is loaded). In that case, the
+% rule is drawn directly with Tikz by using as parameters the value of the key
+% |tikz| which must be a list of \textsl{key=value} pairs which may be applied
+% to a Tikz path.
+%
+% By default, no space is reserved for the rule that will be drawn with Tikz. It
+% is possible to specify a reservation (horizontal for a vertical rule and
+% vertical for an horizontal one) with the key |width|. That value of that key,
+% is, in some ways, the width of the rule that will be drawn (\pkg{nicematrix}
+% does not compute that width from the characteristics of the rule specified in
+% |tikz|).
+%
%
% \begin{center}
% \begin{NiceTabular}{lcIcIc}[custom-line = {letter=I, color=blue}]
@@ -1333,40 +1276,33 @@ version 2005/12/01 or later.
% \end{center}
%
% \bigskip
-% Here is an example of the key |tikz|.
-%
-% \begin{Verbatim}
-% \documentclass{article}
-% \usepackage{nicematrix,tikz}
-% \usetikzlibrary{decorations.pathmorphing}
+% Here is an example with the key |dotted| of Tikz.
%
+% \begin{BVerbatim}[boxwidth=9cm,baseline=c]
% \NiceMatrixOptions
% {
% custom-line =
% {
% letter = I ,
-% ~emphase#tikz = { decorate, decoration = { coil, aspect = 0 } }}@ ,
-% ~emphase#width = 2 mm@
+% ~emphase#tikz = dotted@ ,
+% ~emphase#width = \pgflinewidth@
% }
% }
%
-% \begin{document}
% \begin{NiceTabular}{cIcIc}
% one & two & three \\
% four & five & six \\
% seven & eight & nine
% \end{NiceTabular}
-% \end{document}
-% \end{Verbatim}
-%
-% \begin{center}
+% \end{BVerbatim}
+% \begin{scope}
% \NiceMatrixOptions
% {
% custom-line =
% {
% letter = I ,
-% tikz = { decorate, decoration = { coil, aspect = 0 } } ,
-% width = 2 mm
+% tikz = dotted ,
+% width = \pgflinewidth
% }
% }
% \begin{NiceTabular}{cIcIc}
@@ -1374,9 +1310,81 @@ version 2005/12/01 or later.
% four & five & six \\
% seven & eight & nine
% \end{NiceTabular}
-% \end{center}
+% \end{scope}
+%
+% \bigskip
+% \item \emph{Third possibility} : the key |dotted|
+% \label{dotted}
+%
+% As one can see, the dots of a dotted line of Tikz have the shape of a square,
+% and not a circle. That's why the extension \pkg{nicematrix} provides in the
+% key |custom-line| a key |dotted| which will draw rounded dots. The value of
+% the key |width| is, in this case, preset to the diameter of the dots. Those
+% dotted rules are also used by \pkg{nicematrix} to draw continuous dotted rules
+% between cells of the matrix with |\Cdots|, |\Vdots|, etc. (cf. p.~\pageref{Cdots}).
+%
+% In fact, \pkg{nicematrix} defines by default the command |\hdottedline| and the
+% letter ``|:|'' for those dotted rules.\footnote{However, it's possible to
+% overwrite those definitions with a |custom-line| (in order, for example, to
+% switch to dashed lines).}
+%
+%\smallskip
+%\begin{BVerbatim}
+%
+% \NiceMatrixOptions % ~textsl#présent dans nicematrix.sty@
+% {
+% custom-line =
+% {
+% letter = : ,
+% command = hdottedline ,
+% ~emphase#dotted@
+% }
+% }
+% \end{BVerbatim}
+%
+% Thus, it's possible to use the command |\hdottedline| to draw a horizontal
+% dotted rule.
+%
+% \medskip
+% \begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
+% \begin{pNiceMatrix}
+% 1 & 2 & 3 & 4 & 5 \\
+% ~emphase#\hdottedline@
+% 6 & 7 & 8 & 9 & 10 \\
+% 11 & 12 & 13 & 14 & 15
+% \end{pNiceMatrix}
+% \end{BVerbatim}
+% $\begin{pNiceMatrix}
+% 1 & 2 & 3 & 4 & 5 \\
+% \hdottedline
+% 6 & 7 & 8 & 9 & 10 \\
+% 11 & 12 & 13 & 14 & 15
+% \end{pNiceMatrix}$
%
%
+% \bigskip
+% In the environments with an explicit preamble (like |{NiceTabular}|,
+% |{NiceArray}|, etc.), it's possible to draw a vertical dotted line with the
+% specifier ``|:|''.
+%
+% \medskip
+% \begin{BVerbatim}[baseline=c,boxwidth=9.5cm]
+% \left(\begin{NiceArray}{cccc~emphase#:@c}
+% 1 & 2 & 3 & 4 & 5 \\
+% 6 & 7 & 8 & 9 & 10 \\
+% 11 & 12 & 13 & 14 & 15
+% \end{NiceArray}\right)
+% \end{BVerbatim}
+% $\left(\begin{NiceArray}{cccc:c}
+% 1 & 2 & 3 & 4 & 5 \\
+% 6 & 7 & 8 & 9 & 10 \\
+% 11 & 12 & 13 & 14 & 15
+% \end{NiceArray}\right)$
+%
+% \end{itemize}
+%
+%
+%
%\section{The color of the rows and columns}
%
% \subsection{Use of colortbl}
@@ -2092,9 +2100,6 @@ version 2005/12/01 or later.
%
% \label{varwidth}
%
-% \colorbox{yellow!50}{\textbf{New 6.3}}
-%
-% \smallskip
% Let's recall first the behaviour of the environment |{varwidth}| of the
% eponymous package \pkg{varwidth}. That environment is similar to the classical
% environment |{minipage}| but the width provided in the argument is only the
@@ -3168,8 +3173,6 @@ version 2005/12/01 or later.
% \subsection{The commands \textbackslash OverBrace and \textbackslash
% UnderBrace in the \textbackslash CodeAfter}
%
-% \colorbox{yellow!50}{\textbf{New 6.4}}
-%
% The commands |\OverBrace| and |\UnderBrace| provide a way to put
% horizontal braces on a part of the array. These commands take in three
% arguments:
@@ -3347,6 +3350,12 @@ version 2005/12/01 or later.
% the environment of \pkg{nicematrix}. Thus, it's possible to use it on the
% title inserted by |\caption| in an environment |{table}| of LaTeX.
%
+% \colorbox{yellow!50}{\textbf{New 6.8}}\enskip If several commands
+% |\tabularnote| are used in a tabular with the same argument, only one note is
+% inserted at the end of the tabular (but all the labels are composed, of
+% course). It's possible to control that feature with the key
+% |notes/detect-duplicates|.
+%
% \item It's possible to create a reference to a tabular note created by |\tabularnote|
% (with the usual command |\label| used after the |\tabularnote|).
% \end{itemize}
@@ -3370,11 +3379,11 @@ version 2005/12/01 or later.
% Last name & First name & Length of life \\
% \midrule
% Churchill & Wiston & 91\\
-% Nightingale~emphase#\tabularnote{Considered as the first nurse of!
-% ~emphase#history.}\tabularnote{Nicknamed ``the Lady with the Lamp''.}!
-% & Florence & 90 \\
+% Nightingale~emphase#\tabularnote{Considered as the first nurse of history}!
+% ~emphase#\tabularnote{Nicknamed ``the Lady with the Lamp''.}!
+% & Florence~emphase#\tabularnote{This note is shared by two references.}! & 90 \\
% Schoelcher & Victor & 89~emphase#\tabularnote{The label of the note is overlapping.}!\\
-% Touchet & Marie & 89 \\
+% Touchet & Marie~emphase#\tabularnote{This note is shared by two references.}! & 89 \\
% Wallis & John & 87 \\
% \bottomrule
% \end{NiceTabular}
@@ -3397,9 +3406,9 @@ version 2005/12/01 or later.
% Churchill & Wiston & 91\\
% Nightingale\tabularnote{Considered as the first nurse of
% history.}\tabularnote{Nicknamed ``the Lady with the Lamp''.}
-% & Florence & 90 \\
+% & Florence\tabularnote{This note is shared by two references.} & 90 \\
% Schoelcher & Victor & 89\tabularnote{The label of the note is overlapping.}\\
-% Touchet & Marie & 89 \\
+% Touchet & Marie\tabularnote{This note is shared by two references.} & 89 \\
% Wallis & John & 87 \\
% \bottomrule
% \end{NiceTabular}
@@ -3549,12 +3558,10 @@ version 2005/12/01 or later.
% It's also possible to add |\raggedright| or |\RaggedRight| in that key (|\RaggedRight|
% is a command of \pkg{ragged2e}).
%
-% \item \colorbox{yellow!50}{\textbf{New 6.8}}\enskip Since the version 6.8, the
-% duplicates in the notes of a tabular are detected by default: if several
-% commands |\tabularnote| are used in a tabular with the same argument, only one
-% note is inserted at the end of the tabular (but all the labels are composed,
-% of course). It's possible to de-activate that feature with the key
-% |notes/detect-duplicates| (whose initial value is |true|).
+% \item The key |notes/detect-duplicates| activates the detection of the commands
+% |\tabularnotes| with the same argument.
+%
+% Initial value : |true|
% \end{itemize}
%
%
@@ -11061,12 +11068,16 @@ version 2005/12/01 or later.
% by LaTeX for incorrect nested environments).
% \begin{macrocode}
{
- \peek_meaning_ignore_spaces:NTF \end \@@_analyze_end:Nn
+ \peek_remove_spaces:n
+ {
+ \peek_meaning:NTF \end
+ \@@_analyze_end:Nn
% \end{macrocode}
% Here is the call to |\array| (we have a dedicated macro |\@@_array:| because
% of compatibility with the classes \cls{revtex4-1} and \cls{revtex4-2}).
% \begin{macrocode}
- { \exp_args:NV \@@_array: \g_@@_preamble_tl }
+ { \exp_args:NV \@@_array: \g_@@_preamble_tl }
+ }
}
{
\@@_create_col_nodes:
@@ -13926,6 +13937,7 @@ version 2005/12/01 or later.
% \begin{macrocode}
\NewDocumentCommand \@@_RowStyle:n { O { } m }
{
+ \tl_clear:N \l_tmpa_tl
\keys_set:nn { NiceMatrix / RowStyle } { #1 }
% \end{macrocode}
% If the key |rowcolor| has been used.
@@ -15321,9 +15333,12 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_set:Npn \@@_Hline_i:n #1
{
- \peek_meaning_ignore_spaces:NTF \Hline
- { \@@_Hline_ii:nn { #1 + 1 } }
- { \@@_Hline_iii:n { #1 } }
+ \peek_remove_spaces:n
+ {
+ \peek_meaning:NTF \Hline
+ { \@@_Hline_ii:nn { #1 + 1 } }
+ { \@@_Hline_iii:n { #1 } }
+ }
}
% \end{macrocode}
%