summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/nicematrix
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-09-19 20:44:15 +0000
committerKarl Berry <karl@freefriends.org>2019-09-19 20:44:15 +0000
commit9203d6cf20ce502dd5734b6580acb245defcc6ab (patch)
treed4954edce2a1850fd7d4647eb74f366e8770a95e /Master/texmf-dist/tex/latex/nicematrix
parent51711e46c424b5b68b40cce263215c7bd0a79a10 (diff)
nicematrix (19sep19)
git-svn-id: svn://tug.org/texlive/trunk@52125 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/nicematrix')
-rw-r--r--Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty218
1 files changed, 125 insertions, 93 deletions
diff --git a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty
index 82a4d074ac7..37d5a35b98a 100644
--- a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty
+++ b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty
@@ -18,8 +18,9 @@
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
%%
-\def\myfileversion{3.1}
-\def\myfiledate{2019/09/04}
+% \iffalse meta-comment
+\def\myfileversion{3.2}
+\def\myfiledate{2019/09/19}
\RequirePackage{tikz}
\usetikzlibrary{fit}
\RequirePackage{expl3}[2019/02/15]
@@ -90,6 +91,11 @@
}
{ }
}
+\dim_new:N \l__nm_inter_dots_dim
+\dim_set:Nn \l__nm_inter_dots_dim { 0.45 em }
+\dim_new:N \l__nm_radius_dim
+\dim_set:Nn \l__nm_radius_dim { 0.53 pt }
+\str_new:N \g__nm_type_env_str
\int_new:N \l__nm_first_row_int
\int_set:Nn \l__nm_first_row_int 1
\int_new:N \g__nm_first_row_int
@@ -165,15 +171,12 @@
\dim_new:N \g__nm_extra_right_margin_dim
\keys_define:nn { NiceMatrix / Global }
{
+ small .bool_set:N = \l__nm_small_bool ,
hlines .bool_set:N = \l__nm_hlines_bool ,
parallelize-diags .bool_set:N = \l__nm_parallelize_diags_bool ,
- parallelize-diags .default:n = true ,
renew-dots .bool_set:N = \l__nm_renew_dots_bool ,
- renew-dots .default:n = true ,
nullify-dots .bool_set:N = \l__nm_nullify_dots_bool ,
- nullify-dots .default:n = true ,
create-extra-nodes .bool_set:N = \l__nm_extra_nodes_bool ,
- create-extra-nodes .default:n = true,
left-margin .dim_set:N = \l__nm_left_margin_dim ,
left-margin .default:n = \arraycolsep ,
right-margin .dim_set:N = \l__nm_right_margin_dim ,
@@ -251,7 +254,6 @@
\__nm_renew_matrix:
\bool_set_true:N \l__nm_renew_dots_bool ,
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 }
{ \__nm_error:n { Option~auto~for~columns-width } }
@@ -305,6 +307,7 @@
{ \int_max:nn \g__nm_col_total_int \g__nm_col_int }
\hbox_set:Nw \l_tmpa_box
\c_math_toggle_token
+ \bool_if:NT \l__nm_small_bool \scriptstyle
\int_compare:nNnTF \g__nm_row_int = \c_zero_int
\l__nm_code_for_first_row_tl
{
@@ -472,6 +475,11 @@
}
\cs_new_protected:Npn \__nm_pre_array:
{
+ \bool_if:NT \l__nm_small_bool
+ {
+ \cs_set:Npn \arraystretch { 0.47 }
+ \dim_set:Nn \arraycolsep { 1.45 pt }
+ }
\bool_if:NT \l__nm_auto_columns_width_bool
{
\group_insert_after:N \__nm_write_max_cell_width:
@@ -501,6 +509,7 @@
\bool_gset_eq:NN \g__nm_NiceArray_bool \l__nm_NiceArray_bool
\bool_gset_eq:NN \g__nm_last_row_without_value_bool
\l__nm_last_row_without_value_bool
+ \bool_gset_eq:NN \g__nm_small_bool \l__nm_small_bool
\cs_set:Npn \ialign
{
\bool_if:NTF \c__nm_colortbl_loaded_bool
@@ -513,6 +522,18 @@
}
{ \everycr { \__nm_everycr: } }
\tabskip = \c_zero_skip
+ \dim_gzero_new:N \g__nm_dp_row_zero_dim
+ \dim_gset:Nn \g__nm_dp_row_zero_dim { \box_dp:N \@arstrutbox }
+ \dim_gzero_new:N \g__nm_ht_row_zero_dim
+ \dim_gset:Nn \g__nm_ht_row_zero_dim { \box_ht:N \@arstrutbox }
+ \dim_gzero_new:N \g__nm_ht_row_one_dim
+ \dim_gset:Nn \g__nm_ht_row_one_dim { \box_ht:N \@arstrutbox }
+ \dim_gzero_new:N \g__nm_dp_ante_last_row_dim
+ \dim_gset:Nn \g__nm_dp_ante_last_row_dim { \box_dp:N \@arstrutbox }
+ \dim_gzero_new:N \g__nm_ht_last_row_dim
+ \dim_gset:Nn \g__nm_ht_last_row_dim { \box_ht:N \@arstrutbox }
+ \dim_gzero_new:N \g__nm_dp_last_row_dim
+ \dim_gset:Nn \g__nm_dp_last_row_dim { \box_dp:N \@arstrutbox }
\cs_set:Npn \ialign
{
\everycr { }
@@ -564,12 +585,6 @@
\cs_set_eq:NN \NC@find@W \relax
\__nm_renewcolumntype:nn w { }
\__nm_renewcolumntype:nn W { \cs_set_eq:NN \hss \hfil }
- \dim_gzero_new:N \g__nm_dp_row_zero_dim
- \dim_gzero_new:N \g__nm_ht_row_zero_dim
- \dim_gzero_new:N \g__nm_ht_row_one_dim
- \dim_gzero_new:N \g__nm_dp_ante_last_row_dim
- \dim_gzero_new:N \g__nm_ht_last_row_dim
- \dim_gzero_new:N \g__nm_dp_last_row_dim
\tl_set_rescan:Nno
\l__nm_letter_for_dotted_lines_str { } \l__nm_letter_for_dotted_lines_str
\exp_args:NV \newcolumntype \l__nm_letter_for_dotted_lines_str
@@ -599,6 +614,8 @@
}
\NewDocumentEnvironment { NiceArrayWithDelims } { m m O { } m ! O { } }
{
+ \str_if_empty:NT \g__nm_type_env_str
+ { \str_gset:Nn \g__nm_type_env_str { NiceArrayWithDelims } }
\__nm_adapt_S_column:
\__nm_test_if_math_mode:
\bool_if:NT \l__nm_in_env_bool { \__nm_fatal:n { Yet~in~env } }
@@ -707,43 +724,21 @@
}
\int_compare:nNnTF \l__nm_first_row_int = \c_zero_int
{
- \dim_compare:nNnTF
- { \g__nm_ht_row_one_dim + \g__nm_dp_row_zero_dim + \lineskiplimit }
- > \baselineskip
- {
- \dim_set:Nn \l_tmpa_dim
- {
- \g__nm_ht_row_one_dim + \g__nm_dp_row_zero_dim + \lineskip
- + \g__nm_ht_row_zero_dim - \g__nm_ht_row_one_dim
- }
- }
+ \dim_set:Nn \l_tmpa_dim
{
- \dim_set:Nn \l_tmpa_dim
- { \baselineskip + \g__nm_ht_row_zero_dim - \g__nm_ht_row_one_dim }
+ \g__nm_ht_row_one_dim + \g__nm_dp_row_zero_dim
+ + \lineskip
+ + \g__nm_ht_row_zero_dim - \g__nm_ht_row_one_dim
}
}
{ \dim_zero:N \l_tmpa_dim }
\int_compare:nNnTF \l__nm_last_row_int > { -2 }
{
- \dim_compare:nNnTF
- {
- \g__nm_ht_last_row_dim + \g__nm_dp_ante_last_row_dim + \lineskiplimit
- }
- >
- \baselineskip
- {
- \dim_set:Nn \l_tmpb_dim
- {
- \g__nm_ht_last_row_dim + \g__nm_dp_ante_last_row_dim + \lineskip
- + \g__nm_dp_last_row_dim - \g__nm_dp_ante_last_row_dim
- }
- }
+ \dim_set:Nn \l_tmpb_dim
{
- \dim_set:Nn \l_tmpb_dim
- {
- \baselineskip
- + \g__nm_dp_last_row_dim - \g__nm_dp_ante_last_row_dim
- }
+ \g__nm_ht_last_row_dim + \g__nm_dp_ante_last_row_dim
+ + \lineskip
+ + \g__nm_dp_last_row_dim - \g__nm_dp_ante_last_row_dim
}
}
{ \dim_zero:N \l_tmpb_dim }
@@ -813,6 +808,7 @@
\__nm_begin_of_row:
\hbox_set:Nw \l_tmpa_box
\c_math_toggle_token
+ \bool_if:NT \l__nm_small_bool \scriptstyle
\l__nm_code_for_first_col_tl
}
l
@@ -873,6 +869,7 @@
{ \int_max:nn \g__nm_col_total_int \g__nm_col_int }
\hbox_set:Nw \l_tmpa_box
\c_math_toggle_token
+ \bool_if:NT \l__nm_small_bool \scriptstyle
\l__nm_code_for_last_col_tl
}
l
@@ -926,41 +923,50 @@
\NewDocumentEnvironment { NiceArray } { }
{
\bool_set_true:N \l__nm_NiceArray_bool
+ \str_if_empty:NT \g__nm_type_env_str
+ { \str_gset:Nn \g__nm_type_env_str { NiceArray } }
\NiceArrayWithDelims . .
}
{ \endNiceArrayWithDelims }
\NewDocumentEnvironment { pNiceArray } { }
{
+ \str_gset:Nn \g__nm_type_env_str { pNiceArray }
\__nm_test_if_math_mode:
\NiceArrayWithDelims ( )
}
{ \endNiceArrayWithDelims }
\NewDocumentEnvironment { bNiceArray } { }
{
+ \str_gset:Nn \g__nm_type_env_str { bNiceArray }
\__nm_test_if_math_mode:
\NiceArrayWithDelims [ ]
}
{ \endNiceArrayWithDelims }
\NewDocumentEnvironment { BNiceArray } { }
{
+ \str_gset:Nn \g__nm_type_env_str { BNiceArray }
\__nm_test_if_math_mode:
\NiceArrayWithDelims \{ \}
}
{ \endNiceArrayWithDelims }
\NewDocumentEnvironment { vNiceArray } { }
{
+ \str_gset:Nn \g__nm_type_env_str { vNiceArray }
\__nm_test_if_math_mode:
\NiceArrayWithDelims | |
}
{ \endNiceArrayWithDelims }
\NewDocumentEnvironment { VNiceArray } { }
{
+ \str_gset:Nn \g__nm_type_env_str { VNiceArray }
\__nm_test_if_math_mode:
\NiceArrayWithDelims \| \|
}
{ \endNiceArrayWithDelims }
\NewDocumentEnvironment { NiceMatrix } { ! O { } }
{
+ \str_if_empty:NT \g__nm_type_env_str
+ { \str_gset:Nn \g__nm_type_env_str { NiceMatrix } }
\__nm_test_if_math_mode:
\bool_if:NT \l__nm_in_env_bool { \__nm_fatal:n { Yet~in~env } }
\bool_set_true:N \l__nm_in_env_bool
@@ -986,35 +992,40 @@
\skip_horizontal:n \g__nm_extra_right_margin_dim
}
\NewDocumentEnvironment { pNiceMatrix } { }
- {
- \__nm_test_if_math_mode:
- \left( \begin{NiceMatrix}
- }
- { \end{NiceMatrix} \right) }
+ {
+ \str_gset:Nn \g__nm_type_env_str { pNiceMatrix }
+ \__nm_test_if_math_mode:
+ \left( \begin{NiceMatrix}
+ }
+ { \end{NiceMatrix} \right) }
\NewDocumentEnvironment { bNiceMatrix } { }
- {
- \__nm_test_if_math_mode:
- \left[ \begin{NiceMatrix}
- }
- { \end{NiceMatrix} \right] }
+ {
+ \str_gset:Nn \g__nm_type_env_str { bNiceMatrix }
+ \__nm_test_if_math_mode:
+ \left[ \begin{NiceMatrix}
+ }
+ { \end{NiceMatrix} \right] }
\NewDocumentEnvironment { BNiceMatrix } { }
- {
- \__nm_test_if_math_mode:
- \left\{ \begin{NiceMatrix}
- }
- { \end{NiceMatrix} \right\} }
+ {
+ \str_gset:Nn \g__nm_type_env_str { BNiceMatrix }
+ \__nm_test_if_math_mode:
+ \left\{ \begin{NiceMatrix}
+ }
+ { \end{NiceMatrix} \right\} }
\NewDocumentEnvironment { vNiceMatrix } { }
- {
- \__nm_test_if_math_mode:
- \left\lvert \begin{NiceMatrix}
- }
- { \end{NiceMatrix} \right\rvert }
+ {
+ \str_gset:Nn \g__nm_type_env_str { vNiceMatrix }
+ \__nm_test_if_math_mode:
+ \left\lvert \begin{NiceMatrix}
+ }
+ { \end{NiceMatrix} \right\rvert }
\NewDocumentEnvironment { VNiceMatrix } { }
- {
- \__nm_test_if_math_mode:
- \left\lVert \begin{NiceMatrix}
- }
- { \end{NiceMatrix} \right\rVert }
+ {
+ \str_gset:Nn \g__nm_type_env_str { VNiceMatrix }
+ \__nm_test_if_math_mode:
+ \left\lVert \begin{NiceMatrix}
+ }
+ { \end{NiceMatrix} \right\rVert }
\cs_new_protected:Nn \__nm_write_max_cell_width:
{
\bool_if:NF \l__nm_block_auto_columns_width_bool
@@ -1136,6 +1147,11 @@
\int_zero_new:N \l__nm_final_j_int
\bool_set_false:N \l__nm_initial_open_bool
\bool_set_false:N \l__nm_final_open_bool
+ \bool_if:NT \g__nm_small_bool
+ {
+ \dim_set:Nn \l__nm_radius_dim { 0.37 pt }
+ \dim_set:Nn \l__nm_inter_dots_dim { 0.25 em }
+ }
\g__nm_Hdotsfor_lines_tl
\g__nm_Vdots_lines_tl
\g__nm_Ddots_lines_tl
@@ -1155,6 +1171,7 @@
\g__nm_code_after_tl
\tl_gclear:N \g__nm_code_after_tl
\group_end:
+ \str_gclear:N \g__nm_type_env_str
}
\cs_new_protected:Nn \__nm_find_extremities_of_line:nnnn
{
@@ -1563,33 +1580,33 @@
\bool_if:NTF \l__nm_final_open_bool
{
\int_set:Nn \l_tmpa_int
- { \dim_ratio:nn \l__nm_l_dim { 0.45 em } }
+ { \dim_ratio:nn \l__nm_l_dim \l__nm_inter_dots_dim }
}
{
\int_set:Nn \l_tmpa_int
- { \dim_ratio:nn { \l__nm_l_dim - 0.3 em } { 0.45 em } }
+ { \dim_ratio:nn { \l__nm_l_dim - 0.3 em } \l__nm_inter_dots_dim }
}
}
{
\bool_if:NTF \l__nm_final_open_bool
{
\int_set:Nn \l_tmpa_int
- { \dim_ratio:nn { \l__nm_l_dim - 0.3 em } { 0.45 em } }
+ { \dim_ratio:nn { \l__nm_l_dim - 0.3 em } \l__nm_inter_dots_dim }
}
{
\int_set:Nn \l_tmpa_int
- { \dim_ratio:nn { \l__nm_l_dim - 0.6 em } { 0.45 em }}
+ { \dim_ratio:nn { \l__nm_l_dim - 0.6 em } \l__nm_inter_dots_dim}
}
}
\dim_set:Nn \l_tmpa_dim
{
( \g__nm_x_final_dim - \g__nm_x_initial_dim ) *
- \dim_ratio:nn { 0.45 em } \l__nm_l_dim
+ \dim_ratio:nn \l__nm_inter_dots_dim \l__nm_l_dim
}
\dim_set:Nn \l_tmpb_dim
{
( \g__nm_y_final_dim - \g__nm_y_initial_dim ) *
- \dim_ratio:nn { 0.45 em } \l__nm_l_dim
+ \dim_ratio:nn \l__nm_inter_dots_dim \l__nm_l_dim
}
\int_set:Nn \l_tmpb_int
{
@@ -1601,14 +1618,14 @@
{
( \g__nm_x_final_dim - \g__nm_x_initial_dim ) *
\dim_ratio:nn
- { \l__nm_l_dim - 0.45 em * \l_tmpa_int } { \l__nm_l_dim * 2 } *
+ { \l__nm_l_dim - \l__nm_inter_dots_dim * \l_tmpa_int } { \l__nm_l_dim * 2 } *
\l_tmpb_int
}
\dim_gadd:Nn \g__nm_y_initial_dim
{
( \g__nm_y_final_dim - \g__nm_y_initial_dim ) *
\dim_ratio:nn
- { \l__nm_l_dim - 0.45 em * \l_tmpa_int }
+ { \l__nm_l_dim - \l__nm_inter_dots_dim * \l_tmpa_int }
{ \l__nm_l_dim * 2 } *
\l_tmpb_int
}
@@ -1617,7 +1634,7 @@
{
\pgfpathcircle
{ \pgfpoint { \g__nm_x_initial_dim } { \g__nm_y_initial_dim } }
- { 0.53 pt }
+ { \l__nm_radius_dim }
\pgfusepath { fill }
\dim_gadd:Nn \g__nm_x_initial_dim \l_tmpa_dim
\dim_gadd:Nn \g__nm_y_initial_dim \l_tmpb_dim
@@ -1771,7 +1788,18 @@
{
\cs_set:Npn \__nm_dotfill:
{
- \cleaders \hbox_to_wd:nn { .44 em } { \hss . \hss } \hfill
+ \bool_if:NT \l__nm_small_bool
+ { \dim_set:Nn \l__nm_inter_dots_dim { 0.25 em } }
+ \cleaders
+ \hbox_to_wd:nn
+ { \l__nm_inter_dots_dim }
+ {
+ \c_math_toggle_token
+ \bool_if:NT \l__nm_small_bool \scriptstyle
+ \hss . \hss
+ \c_math_toggle_token
+ }
+ \hfill
\skip_horizontal:n \c_zero_dim
}
}
@@ -2160,10 +2188,10 @@
\__nm_msg_new:nn { Wrong~last~row }
{
You~have~used~'last-row=\int_use:N \g__nm_last_row_int'~but~your~environment~
- \{\@currenvir\}~seems~to~have~\int_use:N \g__nm_row_int\
- rows~(remark~that~you~can~use~'last-row'~without~value).~If~you~go~on,
- ~the~value~of~\int_use:N \g__nm_row_int\
- will~be~used~for~last~row.
+ \{\g__nm_type_env_str\}~seems~to~have~\int_use:N \g__nm_row_int\
+ rows.~If~you~go~on,~the~value~of~\int_use:N \g__nm_row_int\
+ will~be~used~for~last~row.~You~can~avoid~this~problem~by~using~'last-row'~
+ without~value~(more~compilations~might~be~necessary).
}
\__nm_msg_new:nn { Draft~mode }
{ The~compilation~is~in~draft~mode:~the~dotted~lines~won't~be~drawn. }
@@ -2175,7 +2203,7 @@
}
\__nm_msg_new:nn { Outside~math~mode }
{
- The~environment~\{\@currenvir\}~can~be~used~only~in~math~mode~
+ The~environment~\{\g__nm_type_env_str\}~can~be~used~only~in~math~mode~
(and~not~in~\token_to_str:N \vcenter).\\
This~error~is~fatal.
}
@@ -2202,7 +2230,7 @@
For~a~list~of~the~available~keys,~type~H~<return>.
}
{
- The~available~keys~are~(in~alphabetic~order):~
+ The~available~options~are~(in~alphabetic~order):~
allow-duplicate-names,~
code-for-first-col,~
code-for-first-row,~
@@ -2217,6 +2245,7 @@
renew-dots,~
renew-matrix,~
right-margin,~
+ small,~
and~transparent
}
\__nm_msg_new:nnn { Unknown~option~for~NiceArray }
@@ -2246,6 +2275,7 @@
parallelize-diags,~
renew-dots,~
right-margin,~
+ small,~
and~t.
}
\__nm_msg_new:nnn { Unknown~option~for~NiceMatrix }
@@ -2267,13 +2297,14 @@
name,~
nullify-dots,~
parallelize-diags,~
- renew-dots~
- and~right-margin.
+ renew-dots,~
+ right-margin~
+ and~small.
}
\__nm_msg_new:nnn { Unknown~option~for~pNiceArray }
{
The~option~'\tl_use:N\l_keys_key_tl'~is~unknown~for~the~environment~
- \{\@currenvir\}. \\
+ \{\g__nm_type_env_str\}. \\
If~you~go~on,~it~will~be~ignored. \\
For~a~list~of~the~available~options,~type~H~<return>.
}
@@ -2298,17 +2329,18 @@
nullify-dots,~
parallelize-diags,~
renew-dots,~
- and~right-margin.
+ right-margin~
+ and~small.
}
\__nm_msg_new:nnn { Duplicate~name }
{
The~name~'\l_keys_value_tl'~is~already~used~and~you~shouldn't~use~
the~same~environment~name~twice.~You~can~go~on,~but,~
maybe,~you~will~have~incorrect~results~especially~
- if~you~use~'columns-width=auto'. \\
+ if~you~use~'columns-width=auto'.~If~you~use~nicematrix~inside~some~
+ environments~of~amsmath,~this~error~may~be~an~artefact.~In~this~case,
+ use~the~option~'allow-duplicate-names'.\\
For~a~list~of~the~names~already~used,~type~H~<return>. \\
- If~you~don't~want~to~see~this~message~again,~use~the~option~
- 'allow-duplicate-names'.
}
{
The~names~already~defined~in~this~document~are:~
@@ -2321,7 +2353,7 @@
}
\__nm_msg_new:nn { Zero~row }
{
- There~is~a~problem.~Maybe~your~environment~\{\@currenvir\}~is~empty.~
+ There~is~a~problem.~Maybe~your~environment~\{\g__nm_type_env_str\}~is~empty.~
Maybe~you~have~used~l,~c~and~r~instead~of~L,~C~and~R~in~the~preamble~
of~your~environment. \\
If~you~go~on,~the~result~may~be~incorrect.
@@ -2329,7 +2361,7 @@
\__nm_msg_new:nn { Use~of~:~in~first~position }
{
You~can't~use~the~column~specifier~'\l__nm_letter_for_dotted_lines_str'~in~the~
- first~position~of~the~preamble~of~the~environment~\{\@currenvir\}. \\
+ first~position~of~the~preamble~of~the~environment~\{\g__nm_type_env_str\}. \\
If~you~go~on,~this~dotted~line~will~be~ignored.
}
\cs_new:Npn \__nm_seq_mapthread_function:NNN #1 #2 #3