summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/nicematrix/README.md28
-rw-r--r--Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdfbin370325 -> 373723 bytes
-rw-r--r--Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx180
-rw-r--r--Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty66
4 files changed, 186 insertions, 88 deletions
diff --git a/Master/texmf-dist/doc/latex/nicematrix/README.md b/Master/texmf-dist/doc/latex/nicematrix/README.md
index 3b5de617204..e25ae7d342a 100644
--- a/Master/texmf-dist/doc/latex/nicematrix/README.md
+++ b/Master/texmf-dist/doc/latex/nicematrix/README.md
@@ -1,10 +1,26 @@
-The LaTeX extension nicematrix is distributed under the LPPL 1.3 license.
+# Readme for the package nicematrix
-This extension has been written by F. Pantigny (fpantigny@wanadoo.fr).
+## License
+The LaTeX extension `nicematrix` is distributed under the LPPL 1.3 license.
-This extension is entirely contained in a single file : nicematrix.sty
+## Presentation
+This extension has been written by F. Pantigny (`fpantigny@wanadoo.fr`).
-The LaTeX package nicematrix provides new environments similar to the classical environments
-array and matrix but with some additional features. Among these features are the
+The LaTeX package `nicematrix` provides new environments similar to the classical environments
+`{array}` and `{matrix}` but with some additional features. Among these features are the
possibilities to fix the width of the columns, to draw continuous ellipsis dots between the cells
-of the array and to add an exterior line and an exterior column. \ No newline at end of file
+of the array and to add an exterior line and an exterior column.
+
+
+## Installation
+
+The package `nicematrix` is present in the distributions MiKTeX, TeXLive and MacTeX.
+
+For a manual installation:
+
+* put the files `nicematrix.ins` dans `nicematrix.dtx` in the same directory;
+* run `latex nicematrix.ins`.
+
+The file `nicematrix.sty` will be generated.
+
+The file `nicematrix.sty` is the only file necessary to use the extension `nicematrix`.
diff --git a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf
index 4a4306c9a63..067d1339fc2 100644
--- a/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf
+++ b/Master/texmf-dist/doc/latex/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx b/Master/texmf-dist/source/latex/nicematrix/nicematrix.dtx
index 8994c044fc2..5069c020944 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{2.1.1}
-\def\myfiledate{2018/09/16}
+\def\myfileversion{2.1.2}
+\def\myfiledate{2018/10/05}
%
%
%<*batchfile>
@@ -64,6 +64,7 @@ version 2005/12/01 or later.
\setlength{\columnseprule}{0.4pt}
\usepackage{colortbl}
\usepackage{arydshln}
+\usepackage{footnotehyper}
\parindent 0pt
\DisableCrossrefs
@@ -96,15 +97,18 @@ version 2005/12/01 or later.
%
%
% \medskip
+% \begin{savenotes}
% \begin{minipage}{0.6\linewidth}
% This package provides some new tools to draw mathematical matrices. The main features are the following:
%
-% \textbullet\ continuous dotted lines;
+% \textbullet\ continuous dotted lines\footnote{If the class option |draft| is used, these dotted lines will not be
+% drawn for a faster compilation.};
%
% \textbullet\ a first row and a last column for labels;
%
% \textbullet\ a control of the width of the columns.
% \end{minipage}
+% \end{savenotes}
% \hspace{1.4cm}
% $\vcenter{
% \begin{bNiceArrayRC}{CCCC}%
@@ -222,9 +226,9 @@ version 2005/12/01 or later.
%
% \smallskip
% Each of them must be used alone in the cell of the array and it draws a dotted line between the first non-empty
-% cells\footnote{The precise definition of a ``non-empty cell'' is given below.} on both sides of the current cell.
-% Of course, for |\Ldots| and |\Cdots|, it's an horizontal line; for |\Vdots|, it's a vertical line and for
-% |\Ddots| and |\Iddots| diagonal ones.\par\nobreak
+% cells\footnote{The precise definition of a ``non-empty cell'' is given below (cf. p.~\pageref{empty-cells}).} on
+% both sides of the current cell. Of course, for |\Ldots| and |\Cdots|, it's an horizontal line; for |\Vdots|, it's
+% a vertical line and for |\Ddots| and |\Iddots| diagonal ones.\par\nobreak
% \bigskip
% \begin{BVerbatim}[baseline=c,boxwidth=10cm]
% \begin{bNiceMatrix}
@@ -492,6 +496,9 @@ version 2005/12/01 or later.
% The command |\hdotsfor| of \pkg{amsmath} takes an optional argument (between square brackets) which is
% used for fine tuning of the space beetween two consecutive dots. For homogeneity, |\Hdotsfor| has
% also an optional argument but this argument is discarded silently.
+%
+% Remark: Unlike the command |\hdotsfor| of \pkg{amsmath}, the command |\Hdotsfor| is compatible with the extension
+% \pkg{colortbl}.
%
% \subsection{How to generate the continuous dotted lines transparently}
%
@@ -543,8 +550,8 @@ version 2005/12/01 or later.
%
% The package \pkg{nicematrix} creates a Tikz node for each cell of the considered array. These nodes are used to
% draw the dotted lines between the cells of the matrix. However, the user may wish to use directly these nodes.
-% It's possible. First, the user have to give a name to the matrix (with a key called |name|). Then, the nodes are
-% accessible through the names ``\textsl{name}-$i$-$j$'' where \textsl{name} is the name given to the matrix and
+% It's possible. First, the user have to give a name to the array (with the key called |name|). Then, the nodes are
+% accessible through the names ``\textsl{name}-$i$-$j$'' where \textsl{name} is the name given to the array and
% $i$ and $j$ the number of the row and the column of the considered cell.
%
% \medskip
@@ -834,7 +841,7 @@ version 2005/12/01 or later.
%
%
% \bigskip
-% In fact, the environment |{pNiceArrayC}| and its variants are based upon an more general environment, called
+% In fact, the environment |{pNiceArrayC}| and its variants are based upon a more general environment, called
% |{NiceArrayCwithDelims}|. The first two mandatory arguments of this environment are the left and right delimiters
% used in the construction of the matrix. It's possible to use |{NiceArrayCwithDelims}| if we want to use atypical
% delimiters.
@@ -1173,6 +1180,7 @@ version 2005/12/01 or later.
%
% \subsection{The ``empty'' cells}
%
+% \label{empty-cells}
% An instruction like |\Ldots|, |\Cdots|, etc. tries to determine the first non-empty cells on both sides. However,
% a empty cell is not necessarily a cell with no TeX content (that is to say a cell with no token between the two
% ampersands~|&|). Indeed, a cell with contents |\hspace*{1cm}| may be considered as empty.
@@ -1223,10 +1231,19 @@ version 2005/12/01 or later.
% |\NiceMatrixOptions|. With this option, |{NiceArray}| will insert the same horizontal spaces as the environment
% |{array}|.
%
-% This option is also for ``compatibility'' since the package \pkg{nicematrix} provides a more precise control with
+% This option is only for ``compatibility'' since the package \pkg{nicematrix} provides a more precise control with
% the options |left-margin|, |right-margin|, |extra-left-margin| and |extra-right-margin|.
%
%
+% \subsection{The class option draft}
+%
+% The package \pkg{nicematrix} is rather slow when drawing the dotted lines (generated by |\Cdots|, |\Ldots|, |\Ddots|,
+% etc.).\footnote{The main reason is that we want dotted lines with round dots (and not square dots) with the same
+% space on both extremities of the lines. To achieve this goal, we have to construct our own systeme of dotted
+% lines.}
+%
+% That's why, when the class option |draft| is used, the dotted lines are not drawn, for a faster compilation.
+%
% \subsection{A technical problem with the argument of \textbackslash\textbackslash}
%
% For technical, reasons, if you use the optional argument of the command |\\|, the vertical space added will also
@@ -1301,27 +1318,30 @@ version 2005/12/01 or later.
% possible to use |-- cycle| in |code-after|.
%
%
-% \subsection{Compatibility with dcolumn}
+% \subsection{Compatibility with the extension dcolumn}
%
+% \label{dcolumn}
% If we want to make \pkg{nicematrix} compatible with \pkg{dcolumn}, it's necessary to patch the commands
% |\DC@endcentre| and |\DC@endright| as follow.
%
% \bigskip
-% |\def\DC@endcentre{$\egroup|
-%
-% |\ifdim \wd\z@>\wd\tw@|
%
-% |\setbox\tw@=\hbox to\wd\z@{\unhbox\tw@\hfill}%|
-%
-% |\else|
+% \begin{scope}
+% \fvset{commandchars=\~\#\+}
+% \begin{Verbatim}
+% \def\DC@endcentre{$\egroup
+% \ifdim \wd\z@>\wd\tw@
+% \setbox\tw@=\hbox to\wd\z@{\unhbox\tw@\hfill}%
+% \else
+% \setbox\z@=\hbox to\wd\tw@{\hfill\unhbox\z@}\fi
+% ~emphase#\@@_Cell:+\box\z@\box\tw@ ~emphase#\@@_end_Cell:+}
+% \end{Verbatim}
%
-% |\setbox\z@=\hbox to\wd\tw@{\hfill\unhbox\z@}\fi|
-%
-% |\@@_Cell:\box\z@\box\tw@ \@@_end_Cell:}|
-%
-% \medskip
-% |\def\DC@endright{$\hfil\egroup \@@_Cell:\box\z@\box\tw@ \@@_end_Cell:}|
-%
+% \begin{Verbatim}
+% \def\DC@endright{$\hfil\egroup ~emphase#\@@_Cell:+\box\z@\box\tw@ ~emphase#\@@_end_Cell:+}
+% \end{Verbatim}
+% \end{scope}
+%
%
%
% \section{Examples}
@@ -1845,7 +1865,8 @@ version 2005/12/01 or later.
%
% \section{Implementation}
%
-% By default, the package \pkg{nicematrix} doesn't patch any existing code.
+% By default, the package \pkg{nicematrix} doesn't patch any existing code.\footnote{If we want \pkg{nicematrix}
+% compatible with \pkg{dcolumn}, we have to patch \pkg{dcolumn}: cf. p.~\pageref{dcolumn}.}
%
% \smallskip
% However, when the option |renew-dots| is used, the commands |\cdots|, |\ldots|, |\dots|, |\vdots|, |\ddots| and
@@ -1885,19 +1906,23 @@ version 2005/12/01 or later.
{Several features to improve the typesetting of mathematical matrices with TikZ}
% \end{macrocode}
%
-% The command for the treatment of the options of |\usepackage| is at the end of this package for technical reasons.
+% \bigskip
+% We test if the class option |draft| has been used. In this case, we raise the flag |\c_@@_draft_bool| because we
+% won't draw the dotted lines if the option |draft| is used.
+% \begin{macrocode}
+\bool_new:N \c_@@_draft_bool
+\DeclareOption {draft} {\bool_set_true:N \c_@@_draft_bool}
+\DeclareOption* {}
+\ProcessOptions \relax
+% \end{macrocode}
%
+% The command for the treatment of the options of |\usepackage| is at the end of this package for technical reasons.
+%
% \bigskip
% We load \pkg{array} and \pkg{amsmath}.
% \begin{macrocode}
\RequirePackage{array}
\RequirePackage{amsmath}
-% \end{macrocode}
-%
-% \bigskip
-% The package \pkg{xparse} will be used to define the environment |{NiceMatrix}|, its variants and the
-% document-level commands (|\NiceMatrixOptions|, etc.).
-% \begin{macrocode}
\RequirePackage{xparse}
% \end{macrocode}
%
@@ -1978,7 +2003,7 @@ version 2005/12/01 or later.
%
% The token list |\l_@@_pos_env_tl| will contain one of the three values |t|, |c| or |b| and will indicate the
% position of the environment as in the option of the environment |{array}|. For the environment |{pNiceMatrix}|,
-% |{pNiceArrayC}|,|{pNiceArrayRC}| and their variants, the value will programmatically be fixed to |c|. For the
+% |{pNiceArrayC}|, |{pNiceArrayRC}| and their variants, the value will programmatically be fixed to |c|. For the
% environment |{NiceArray}|, however, the three values |t|, |c| and |b| are possible.
% \begin{macrocode}
\tl_new:N \l_@@_pos_env_tl
@@ -1994,7 +2019,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% The flag |\l_@@_parallelize_diags_bool| controls wether the diagonals are parallelized. The default
+% The flag |\l_@@_parallelize_diags_bool| controls wether the diagonals are parallelized. The initial value
% is~|true|.
% \begin{macrocode}
\bool_new:N \l_@@_parallelize_diags_bool
@@ -2065,7 +2090,7 @@ version 2005/12/01 or later.
\dim_new:N \g_@@_extra_right_margin_dim
% \end{macrocode}
%
-%
+%
% \bigskip
% We define a set of options which will be used with the command |NiceMatrixOptions|.\footnote{Before the version
% 1.3, the names of the options were in ``camel-case style'' (like |ParallelizeDiagonals|) which was not a good idea. In
@@ -2122,8 +2147,8 @@ version 2005/12/01 or later.
% \bigskip
% Idem for the first row in environments like |{pNiceArrayRC}|.
% \begin{macrocode}
- code-for-first-row .tl_set:N = \l_@@_code_for_first_row_tl,
- code-for-first-row .value_required:n = true,
+ code-for-first-row .tl_set:N = \l_@@_code_for_first_row_tl,
+ code-for-first-row .value_required:n = true,
% \end{macrocode}
%
% \bigskip
@@ -2150,6 +2175,7 @@ version 2005/12/01 or later.
create-extra-nodes .default:n = true,
% \end{macrocode}
%
+%
% \bigskip
% \begin{macrocode}
left-margin .dim_set:N = \l_@@_left_margin_dim,
@@ -2459,6 +2485,49 @@ version 2005/12/01 or later.
nested.~We~can~go~on,~but,~maybe,~you~will~have~errors~or~an~incorrect~
result.}
% \end{macrocode}
+%
+%
+% \bigskip
+% The command |\@@_define_dots:| will be used in the environment |{NiceArray}| to define the commands |\Ldots|,
+% |\Cdots|, etc.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_define_dots:
+ {\cs_set_eq:NN \Ldots \@@_Ldots
+ \cs_set_eq:NN \Cdots \@@_Cdots
+ \cs_set_eq:NN \Vdots \@@_Vdots
+ \cs_set_eq:NN \Ddots \@@_Ddots
+ \cs_set_eq:NN \Iddots \@@_Iddots
+ \bool_if:NT \l_@@_renew_dots_bool
+ {\cs_set_eq:NN \ldots \@@_Ldots
+ \cs_set_eq:NN \cdots \@@_Cdots
+ \cs_set_eq:NN \vdots \@@_Vdots
+ \cs_set_eq:NN \ddots \@@_Ddots
+ \cs_set_eq:NN \iddots \@@_Iddots
+ \cs_set_eq:NN \dots \@@_Ldots
+ \cs_set_eq:NN \hdotsfor \@@_Hdotsfor}}
+% \end{macrocode}
+%
+% \bigskip
+% With |\@@_define_dots_to_nil:|, the commands like |\Ldots|, |\Cdots|, are defined, but with no effect. This
+% command will be used if the class option |draft| is used.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_define_dots_to_nil:
+ {\cs_set_eq:NN \Ldots \prg_do_nothing:
+ \cs_set_eq:NN \Cdots \prg_do_nothing:
+ \cs_set_eq:NN \Vdots \prg_do_nothing:
+ \cs_set_eq:NN \Ddots \prg_do_nothing:
+ \cs_set_eq:NN \Iddots \prg_do_nothing:
+ \bool_if:NT \l_@@_renew_dots_bool
+ {\cs_set_eq:NN \ldots \prg_do_nothing:
+ \cs_set_eq:NN \cdots \prg_do_nothing:
+ \cs_set_eq:NN \vdots \prg_do_nothing:
+ \cs_set_eq:NN \ddots \prg_do_nothing:
+ \cs_set_eq:NN \iddots \prg_do_nothing:
+ \cs_set_eq:NN \dots \prg_do_nothing:
+ \cs_set_eq:NN \hdotsfor \@@_Hdotsfor}}
+% \end{macrocode}
+%
+%
% \bigskip
% First, we test if we are yet in an environment |{NiceArray}| (nested environment are forbidden). It's easy to
% test whether we are in an environment |{NiceArray}| : a special command |\@@_in_NiceArray:| is defined.
@@ -2470,9 +2539,8 @@ version 2005/12/01 or later.
% We deactivate Tikz externalization (since we use Tikz pictures with the options |overlay| and
% |remember picture|, there would be errors).
% \begin{macrocode}
- \ifcsname tikz@library@external@loaded\endcsname
- \tikzset{external/export = false}
- \fi
+ \cs_if_exist:NT \tikz@library@external@loaded
+ {\tikzset{external/export = false}}
\cs_set:Npn \@@_in_NiceArray: {--Void--}
\aftergroup \@@_after_array:
\tl_gclear_new:N \g_@@_lines_to_draw_tl
@@ -2586,24 +2654,15 @@ version 2005/12/01 or later.
\makebox[##2][##1]{\box_use:N \l_tmpa_box}}}
% \end{macrocode}
%
-% The commands |\Ldots|, |\Cdots|, etc. will be defined only in the environment |{NiceArray}|.
+% The commands |\Ldots|, |\Cdots|, etc. will be defined only in the environment |{NiceArray}|. If the class option
+% |draft| is used, these commands will be defined to be no-op (the dotted lines are not drawn).
% \begin{macrocode}
- \cs_set_eq:NN \Ldots \@@_Ldots
- \cs_set_eq:NN \Cdots \@@_Cdots
- \cs_set_eq:NN \Vdots \@@_Vdots
- \cs_set_eq:NN \Ddots \@@_Ddots
- \cs_set_eq:NN \Iddots \@@_Iddots
+ \bool_if:NTF \c_@@_draft_bool
+ \@@_define_dots_to_nil:
+ \@@_define_dots:
\cs_set_eq:NN \Hspace \@@_Hspace:
\cs_set_eq:NN \Hdotsfor \@@_Hdotsfor
\cs_set_eq:NN \multicolumn \@@_multicolumn:nnn
- \bool_if:NT \l_@@_renew_dots_bool
- {\cs_set_eq:NN \ldots \@@_Ldots
- \cs_set_eq:NN \cdots \@@_Cdots
- \cs_set_eq:NN \vdots \@@_Vdots
- \cs_set_eq:NN \ddots \@@_Ddots
- \cs_set_eq:NN \iddots \@@_Iddots
- \cs_set_eq:NN \dots \@@_Ldots
- \cs_set_eq:NN \hdotsfor \@@_Hdotsfor}
% \end{macrocode}
%
%
@@ -2816,9 +2875,8 @@ version 2005/12/01 or later.
% \begin{macrocode}
\cs_new_protected:Nn \@@_after_array:
{\group_begin:
- \ifcsname tikz@library@external@loaded\endcsname
- \tikzset{external/export = false}
- \fi
+ \cs_if_exist:NT \tikz@library@external@loaded
+ {\tikzset{external/export = false}}
% \end{macrocode}
% Now, the definition of the counters |\g_@@_column_int| and |\g_@@_column_total_int| change: |\g_@@_column_int|
% will be the number of columns without the exterior column (in an environment like |{pNiceArrayC}|) and
@@ -2887,7 +2945,7 @@ version 2005/12/01 or later.
% \end{macrocode}
%
% \bigskip
-% A dotted line will be said \emph{open} in one of its extremity when it stops on the edge of the matrix and \emph{closed}
+% A dotted line will be said \emph{open} in one of its extremities when it stops on the edge of the matrix and \emph{closed}
% otherwise. In the following matrix, the dotted line is closed on its left extremity and open on its right.
% \[ \begin{pNiceMatrix}
% a+b+c & a+b & a\\
@@ -2896,7 +2954,8 @@ version 2005/12/01 or later.
% \end{pNiceMatrix}\]
% For a closed extremity, we use the normal node and for a open one, we use the ``medium node'' (the medium and
% large nodes are created with |\@@_create_extra_nodes:| if they have not been created yet).
-% \[ \begin{pNiceMatrix}[code-after = {\begin{tikzpicture}
+% \[ \begin{pNiceMatrix}[create-extra-nodes,
+% code-after = {\begin{tikzpicture}
% \node [highlight, fit={(2-1)}] {} ;
% \node [highlight, fit={(2-3-medium)}] {} ;
% \end{tikzpicture}
@@ -4140,6 +4199,9 @@ version 2005/12/01 or later.
% Tikz externalization. In any case, it's not possible to externalize the Tikz elements constructed by
% \pkg{nicematrix} because they use the options |overlay| and |remember picture|.}
%
+% \subsection{Changes between version 2.1 and 2.1.2}
+% Option |draft|: with this option, the dotted lines are not drawn (quicker).
+%
% \endinput
% Local Variables:
% TeX-fold-mode: nil
diff --git a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty
index 2b86f50602f..f56c1921546 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{2.1.1}
-\def\myfiledate{2018/09/16}
+\def\myfileversion{2.1.2}
+\def\myfiledate{2018/10/05}
\RequirePackage{tikz}
\usetikzlibrary{fit}
\RequirePackage{l3keys2e}
@@ -28,6 +28,10 @@
{\myfiledate}
{\myfileversion}
{Several features to improve the typesetting of mathematical matrices with TikZ}
+\bool_new:N \c__nm_draft_bool
+\DeclareOption {draft} {\bool_set_true:N \c__nm_draft_bool}
+\DeclareOption* {}
+\ProcessOptions \relax
\RequirePackage{array}
\RequirePackage{amsmath}
\RequirePackage{xparse}
@@ -91,8 +95,8 @@
NullifyDots .meta:n = nullify-dots,
code-for-last-col .tl_set:N = \l__nm_code_for_last_col_tl,
code-for-last-col .value_required:n = true,
- code-for-first-row .tl_set:N = \l__nm_code_for_first_row_tl,
- code-for-first-row .value_required:n = true,
+ code-for-first-row .tl_set:N = \l__nm_code_for_first_row_tl,
+ code-for-first-row .value_required:n = true,
exterior-arraycolsep .bool_set:N = \l__nm_exterior_arraycolsep_bool ,
exterior-arraycolsep .default:n = true,
columns-width .code:n = \str_if_eq:nnTF {#1} {auto}
@@ -284,12 +288,39 @@
{Environments~\{NiceArray\}~(or~\{NiceMatrix\},~etc.)~can't~be~
nested.~We~can~go~on,~but,~maybe,~you~will~have~errors~or~an~incorrect~
result.}
+\cs_new_protected:Npn \__nm_define_dots:
+ {\cs_set_eq:NN \Ldots \__nm_Ldots
+ \cs_set_eq:NN \Cdots \__nm_Cdots
+ \cs_set_eq:NN \Vdots \__nm_Vdots
+ \cs_set_eq:NN \Ddots \__nm_Ddots
+ \cs_set_eq:NN \Iddots \__nm_Iddots
+ \bool_if:NT \l__nm_renew_dots_bool
+ {\cs_set_eq:NN \ldots \__nm_Ldots
+ \cs_set_eq:NN \cdots \__nm_Cdots
+ \cs_set_eq:NN \vdots \__nm_Vdots
+ \cs_set_eq:NN \ddots \__nm_Ddots
+ \cs_set_eq:NN \iddots \__nm_Iddots
+ \cs_set_eq:NN \dots \__nm_Ldots
+ \cs_set_eq:NN \hdotsfor \__nm_Hdotsfor}}
+\cs_new_protected:Npn \__nm_define_dots_to_nil:
+ {\cs_set_eq:NN \Ldots \prg_do_nothing:
+ \cs_set_eq:NN \Cdots \prg_do_nothing:
+ \cs_set_eq:NN \Vdots \prg_do_nothing:
+ \cs_set_eq:NN \Ddots \prg_do_nothing:
+ \cs_set_eq:NN \Iddots \prg_do_nothing:
+ \bool_if:NT \l__nm_renew_dots_bool
+ {\cs_set_eq:NN \ldots \prg_do_nothing:
+ \cs_set_eq:NN \cdots \prg_do_nothing:
+ \cs_set_eq:NN \vdots \prg_do_nothing:
+ \cs_set_eq:NN \ddots \prg_do_nothing:
+ \cs_set_eq:NN \iddots \prg_do_nothing:
+ \cs_set_eq:NN \dots \prg_do_nothing:
+ \cs_set_eq:NN \hdotsfor \__nm_Hdotsfor}}
\NewDocumentEnvironment {NiceArray} {O{} m O{}}
{\cs_if_exist:NT \__nm_in_NiceArray:
{\__nm_msg_error:n {We~are~yet~in~an~environment~NiceArray}}
- \ifcsname tikz@library@external@loaded\endcsname
- \tikzset{external/export = false}
- \fi
+ \cs_if_exist:NT \tikz@library@external@loaded
+ {\tikzset{external/export = false}}
\cs_set:Npn \__nm_in_NiceArray: {--Void--}
\aftergroup \__nm_after_array:
\tl_gclear_new:N \g__nm_lines_to_draw_tl
@@ -348,22 +379,12 @@
\hbox_set_end:
\cs_set_eq:NN \hss \hfil
\makebox[##2][##1]{\box_use:N \l_tmpa_box}}}
- \cs_set_eq:NN \Ldots \__nm_Ldots
- \cs_set_eq:NN \Cdots \__nm_Cdots
- \cs_set_eq:NN \Vdots \__nm_Vdots
- \cs_set_eq:NN \Ddots \__nm_Ddots
- \cs_set_eq:NN \Iddots \__nm_Iddots
+ \bool_if:NTF \c__nm_draft_bool
+ \__nm_define_dots_to_nil:
+ \__nm_define_dots:
\cs_set_eq:NN \Hspace \__nm_Hspace:
\cs_set_eq:NN \Hdotsfor \__nm_Hdotsfor
\cs_set_eq:NN \multicolumn \__nm_multicolumn:nnn
- \bool_if:NT \l__nm_renew_dots_bool
- {\cs_set_eq:NN \ldots \__nm_Ldots
- \cs_set_eq:NN \cdots \__nm_Cdots
- \cs_set_eq:NN \vdots \__nm_Vdots
- \cs_set_eq:NN \ddots \__nm_Ddots
- \cs_set_eq:NN \iddots \__nm_Iddots
- \cs_set_eq:NN \dots \__nm_Ldots
- \cs_set_eq:NN \hdotsfor \__nm_Hdotsfor}
\seq_gclear_new:N \g__nm_empty_cells_seq
\seq_gclear_new:N \g__nm_multicolumn_cells_seq
\seq_gclear_new:N \g__nm_multicolumn_sizes_seq
@@ -433,9 +454,8 @@
{\int_use:N \g__nm_column_int}}}
\cs_new_protected:Nn \__nm_after_array:
{\group_begin:
- \ifcsname tikz@library@external@loaded\endcsname
- \tikzset{external/export = false}
- \fi
+ \cs_if_exist:NT \tikz@library@external@loaded
+ {\tikzset{external/export = false}}
\int_gset_eq:NN \g__nm_column_int \g__nm_column_total_int
\bool_if:NT \l__nm_exterior_column_bool {\int_gdecr:N \g__nm_column_int}
\seq_gclear_new:N \g__nm_yet_drawn_seq