diff options
author | Karl Berry <karl@freefriends.org> | 2019-09-19 20:44:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-09-19 20:44:15 +0000 |
commit | 9203d6cf20ce502dd5734b6580acb245defcc6ab (patch) | |
tree | d4954edce2a1850fd7d4647eb74f366e8770a95e /Master/texmf-dist/tex/latex/nicematrix | |
parent | 51711e46c424b5b68b40cce263215c7bd0a79a10 (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.sty | 218 |
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 |