diff options
author | Karl Berry <karl@freefriends.org> | 2021-06-20 19:57:12 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-06-20 19:57:12 +0000 |
commit | 94b0aea54634a3d04d70edb84500ecc3199c0637 (patch) | |
tree | 24f019680a376ce0a1eee6517ee1a7c403863099 /Master/texmf-dist/tex/latex/nicematrix | |
parent | 59f59ffea07a4bccccd50ec4e1255cae1740a1da (diff) |
nicematrix (20jun21)
git-svn-id: svn://tug.org/texlive/trunk@59657 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 | 316 |
1 files changed, 132 insertions, 184 deletions
diff --git a/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty b/Master/texmf-dist/tex/latex/nicematrix/nicematrix.sty index 51469a73836..92d14db3298 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{5.15b} -\def\myfiledate{2021/06/05} +\def\myfileversion{5.16} +\def\myfiledate{2021/06/20} \RequirePackage{pgfcore} \usepgfmodule{shapes} \RequirePackage{l3keys2e} @@ -78,6 +78,18 @@ { } \cs_if_exist:NT \rvtx@ifformat@geq { \bool_set_true:N \c__nicematrix_revtex_bool } \cs_generate_variant:Nn \tl_if_single_token_p:n { V } +\regex_const:Nn \c__nicematrix_columncolor_regex { \c { columncolor } } +\cs_new_protected:Npn \__nicematrix_provide_pgfsyspdfmark: + { + \iow_now:Nn \@mainaux + { + \ExplSyntaxOn + \cs_if_free:NT \pgfsyspdfmark + { \cs_set_eq:NN \pgfsyspdfmark \@gobblethree } + \ExplSyntaxOff + } + \cs_gset_eq:NN \__nicematrix_provide_pgfsyspdfmark: \prg_do_nothing: + } \ProvideDocumentCommand \iddots { } { \mathinner @@ -234,36 +246,30 @@ } } } -\cs_set_protected:Npn \__nicematrix_adapt_S_column: +\AtBeginDocument { - \bool_if:NT \c__nicematrix_siunitx_loaded_bool + \cs_set_eq:NN \__nicematrix_adapt_S_column: \prg_do_nothing: + \bool_lazy_and:nnT + { \c__nicematrix_siunitx_loaded_bool } + { ! \cs_if_exist_p:N \siunitx_cell_begin:w } { - \group_begin: - \@temptokena = { } - \cs_set_eq:NN \NC@find \prg_do_nothing: - \NC@rewrite@S { } - \tl_gset:NV \g_tmpa_tl \@temptokena - \group_end: - \tl_new:N \c__nicematrix_table_collect_begin_tl - \tl_set:Nx \l_tmpa_tl { \tl_item:Nn \g_tmpa_tl 2 } - \tl_gset:Nx \c__nicematrix_table_collect_begin_tl { \tl_item:Nn \l_tmpa_tl 1 } - \tl_new:N \c__nicematrix_table_print_tl - \tl_gset:Nx \c__nicematrix_table_print_tl { \tl_item:Nn \g_tmpa_tl { -1 } } - \cs_gset_eq:NN \__nicematrix_adapt_S_column: \prg_do_nothing: + \cs_set_protected:Npn \__nicematrix_adapt_S_column: + { + \group_begin: + \@temptokena = { } + \cs_set_eq:NN \NC@find \prg_do_nothing: + \NC@rewrite@S { } + \tl_gset:NV \g_tmpa_tl \@temptokena + \group_end: + \tl_new:N \c__nicematrix_table_collect_begin_tl + \tl_set:Nx \l_tmpa_tl { \tl_item:Nn \g_tmpa_tl 2 } + \tl_gset:Nx \c__nicematrix_table_collect_begin_tl { \tl_item:Nn \l_tmpa_tl 1 } + \tl_new:N \c__nicematrix_table_print_tl + \tl_gset:Nx \c__nicematrix_table_print_tl { \tl_item:Nn \g_tmpa_tl { -1 } } + \cs_gset_eq:NN \__nicematrix_adapt_S_column: \prg_do_nothing: + } } } -\regex_const:Nn \c__nicematrix_columncolor_regex { \c { columncolor } } -\cs_new_protected:Npn \__nicematrix_provide_pgfsyspdfmark: - { - \iow_now:Nn \@mainaux - { - \ExplSyntaxOn - \cs_if_free:NT \pgfsyspdfmark - { \cs_set_eq:NN \pgfsyspdfmark \@gobblethree } - \ExplSyntaxOff - } - \cs_gset_eq:NN \__nicematrix_provide_pgfsyspdfmark: \prg_do_nothing: - } \bool_new:N \c__nicematrix_define_L_C_R_bool \cs_new_protected:Npn \__nicematrix_define_L_C_R: { @@ -293,6 +299,7 @@ \dim_new:N \l__nicematrix_tabular_width_dim \bool_new:N \l__nicematrix_Matrix_bool \bool_new:N \g__nicematrix_rotate_bool +\tl_new:N \g__nicematrix_aux_tl \cs_new_protected:Npn \__nicematrix_test_if_math_mode: { \if_mode_math: \else: @@ -337,6 +344,8 @@ \seq_new:N \g__nicematrix_pos_of_stroken_blocks_seq \seq_new:N \l__nicematrix_corners_cells_seq \seq_new:N \g__nicematrix_submatrix_names_seq +\seq_new:N \g__nicematrix_multicolumn_cells_seq +\seq_new:N \g__nicematrix_multicolumn_sizes_seq \int_new:N \l__nicematrix_row_min_int \int_new:N \l__nicematrix_row_max_int \int_new:N \l__nicematrix_col_min_int @@ -1173,18 +1182,20 @@ \bool_if:NT \c__nicematrix_booktabs_loaded_bool { \tl_put_left:Nn \@BTnormal \__nicematrix_create_row_node: } \box_clear_new:N \l__nicematrix_cell_box - \cs_if_exist:NT \theiRow - { \int_set_eq:NN \l__nicematrix_old_iRow_int \c@iRow } - \int_gzero_new:N \c@iRow - \cs_if_exist:NT \thejCol - { \int_set_eq:NN \l__nicematrix_old_jCol_int \c@jCol } - \int_gzero_new:N \c@jCol \normalbaselines \bool_if:NT \l__nicematrix_small_bool { \cs_set_nopar:Npn \arraystretch { 0.47 } \dim_set:Nn \arraycolsep { 1.45 pt } } + \bool_if:NT \g__nicematrix_recreate_cell_nodes_bool + { + \tl_put_right:Nn \__nicematrix_begin_of_row: + { + \pgfsys@markposition + { \__nicematrix_env: - row - \int_use:N \c@iRow - base } + } + } \cs_set_nopar:Npn \ialign { \bool_if:NTF \c__nicematrix_colortbl_loaded_bool @@ -1239,8 +1250,8 @@ \cs_set_eq:NN \NotEmpty \__nicematrix_NotEmpty: \bool_if:NT \l__nicematrix_colortbl_like_bool \__nicematrix_colortbl_like: \bool_if:NT \l__nicematrix_renew_dots_bool \__nicematrix_renew_dots: - \seq_gclear_new:N \g__nicematrix_multicolumn_cells_seq - \seq_gclear_new:N \g__nicematrix_multicolumn_sizes_seq + \seq_gclear:N \g__nicematrix_multicolumn_cells_seq + \seq_gclear:N \g__nicematrix_multicolumn_sizes_seq \int_gset:Nn \c@iRow { \l__nicematrix_first_row_int - 1 } \int_gzero_new:N \g__nicematrix_row_total_int \int_gzero_new:N \g__nicematrix_col_total_int @@ -1257,8 +1268,21 @@ } \cs_new_protected:Npn \__nicematrix_pre_array: { - \seq_gclear:N \g__nicematrix_submatrix_seq - \bool_if:NT \l__nicematrix_code_before_bool \__nicematrix_exec_code_before: + \cs_if_exist:NT \theiRow { \int_set_eq:NN \l__nicematrix_old_iRow_int \c@iRow } + \int_gzero_new:N \c@iRow + \cs_if_exist:NT \thejCol { \int_set_eq:NN \l__nicematrix_old_jCol_int \c@jCol } + \int_gzero_new:N \c@jCol + \int_compare:nNnT \l__nicematrix_last_row_int = { -1 } + { + \bool_set_true:N \l__nicematrix_last_row_without_value_bool + \bool_if:NT \g__nicematrix_aux_found_bool + { \int_set:Nn \l__nicematrix_last_row_int { \seq_item:Nn \c__nicematrix_size_seq 3 } } + } + \int_compare:nNnT \l__nicematrix_last_col_int = { -1 } + { + \bool_if:NT \g__nicematrix_aux_found_bool + { \int_set:Nn \l__nicematrix_last_col_int { \seq_item:Nn \c__nicematrix_size_seq 6 } } + } \int_compare:nNnT \l__nicematrix_last_row_int > { -2 } { \tl_put_right:Nn \__nicematrix_update_for_first_and_last_row: @@ -1269,43 +1293,11 @@ { \dim_max:nn \g__nicematrix_dp_last_row_dim { \box_dp:N \l__nicematrix_cell_box } } } } - \int_compare:nNnT \l__nicematrix_last_row_int = { -1 } - { - \bool_set_true:N \l__nicematrix_last_row_without_value_bool - \str_if_empty:NTF \l__nicematrix_name_str - { - \cs_if_exist:cT { __nicematrix_last_row_ \int_use:N \g__nicematrix_env_int } - { - \int_set:Nn \l__nicematrix_last_row_int - { \use:c { __nicematrix_last_row_ \int_use:N \g__nicematrix_env_int } } - } - } - { - \cs_if_exist:cT { __nicematrix_last_row_ \l__nicematrix_name_str } - { - \int_set:Nn \l__nicematrix_last_row_int - { \use:c { __nicematrix_last_row_ \l__nicematrix_name_str } } - } - } - } - \int_compare:nNnT \l__nicematrix_last_col_int = { -1 } - { - \str_if_empty:NTF \l__nicematrix_name_str - { - \cs_if_exist:cT { __nicematrix_last_col_ \int_use:N \g__nicematrix_env_int } - { - \int_set:Nn \l__nicematrix_last_col_int - { \use:c { __nicematrix_last_col_ \int_use:N \g__nicematrix_env_int } } - } - } - { - \cs_if_exist:cT { __nicematrix_last_col_ \l__nicematrix_name_str } - { - \int_set:Nn \l__nicematrix_last_col_int - { \use:c { __nicematrix_last_col_ \l__nicematrix_name_str } } - } - } - } + \seq_gclear:N \g__nicematrix_submatrix_seq + \bool_if:NT \l__nicematrix_code_before_bool \__nicematrix_exec_code_before: + \seq_gclear:N \g__nicematrix_pos_of_blocks_seq + \seq_gclear_new:N \g__nicematrix_multicolumn_cells_seq + \seq_gclear_new:N \g__nicematrix_multicolumn_sizes_seq \__nicematrix_pre_array_ii: \box_clear_new:N \l__nicematrix_the_array_box \bool_if:NT \c__nicematrix_define_L_C_R_bool \__nicematrix_define_L_C_R: @@ -1339,31 +1331,21 @@ } \cs_new_protected:Npn \__nicematrix_pre_code_before: { - \int_zero_new:N \c@iRow - \int_set:Nn \c@iRow - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 2 } - \int_zero_new:N \c@jCol - \int_set:Nn \c@jCol - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 4 } - \int_compare:nNnF \l__nicematrix_last_row_int = { -2 } - { \int_decr:N \c@iRow } - \int_compare:nNnF \l__nicematrix_last_col_int = { -2 } - { \int_decr:N \c@jCol } + \int_set:Nn \c@iRow { \seq_item:Nn \c__nicematrix_size_seq 2 } + \int_set:Nn \c@jCol { \seq_item:Nn \c__nicematrix_size_seq 5 } + \int_set_eq:NN \g__nicematrix_row_total_int { \seq_item:Nn \c__nicematrix_size_seq 3 } + \int_set_eq:NN \g__nicematrix_col_total_int { \seq_item:Nn \c__nicematrix_size_seq 6 } \pgfsys@markposition { \__nicematrix_env: - position } \pgfsys@getposition { \__nicematrix_env: - position } \__nicematrix_picture_position: \pgfpicture \pgf@relevantforpicturesizefalse - \int_step_inline:nnn - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 1 } - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 2 + 1 } + \int_step_inline:nnn \l__nicematrix_first_row_int { \g__nicematrix_row_total_int + 1 } { \pgfsys@getposition { \__nicematrix_env: - row - ##1 } \__nicematrix_node_position: \pgfcoordinate { \__nicematrix_env: - row - ##1 } { \pgfpointdiff \__nicematrix_picture_position: \__nicematrix_node_position: } } - \int_step_inline:nnn - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 3 } - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 4 + 1 } + \int_step_inline:nnn \l__nicematrix_first_col_int { \g__nicematrix_col_total_int + 1 } { \pgfsys@getposition { \__nicematrix_env: - col - ##1 } \__nicematrix_node_position: \pgfcoordinate { \__nicematrix_env: - col - ##1 } @@ -1389,12 +1371,6 @@ \cs_set_eq:NN \columncolor \__nicematrix_columncolor \cs_set_eq:NN \chessboardcolors \__nicematrix_chessboardcolors \cs_set_eq:NN \SubMatrix \__nicematrix_SubMatrix_in_code_before - \seq_if_exist:cT - { c__nicematrix_corners_cells_ \int_use:N \g__nicematrix_env_int _ seq } - { - \seq_set_eq:Nc \l__nicematrix_corners_cells_seq - { c__nicematrix_corners_cells_ \int_use:N \g__nicematrix_env_int _ seq } - } } \cs_new_protected:Npn \__nicematrix_exec_code_before: { @@ -1426,7 +1402,7 @@ } \cs_new_protected:Npn \__nicematrix_CodeBefore:w #1 \q_stop { - \seq_if_exist:cT { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } + \bool_if:NT \g__nicematrix_aux_found_bool { \__nicematrix_pre_code_before: #1 @@ -1434,13 +1410,12 @@ } \cs_new_protected:Npn \__nicematrix_recreate_cell_nodes: { - \int_step_inline:nnn - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 1 } - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 2 } + \int_step_inline:nnn \l__nicematrix_first_row_int \g__nicematrix_row_total_int { - \int_step_inline:nnn - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 3 } - { \seq_item:cn { __nicematrix_size_ \int_use:N \g__nicematrix_env_int _ seq } 4 } + \pgfsys@getposition { \__nicematrix_env: - ##1 - base } \__nicematrix_node_position: + \pgfcoordinate { \__nicematrix_env: - row - ##1 - base } + { \pgfpointdiff \__nicematrix_picture_position: \__nicematrix_node_position: } + \int_step_inline:nnn \l__nicematrix_first_col_int \g__nicematrix_col_total_int { \cs_if_exist:cT { pgf @ sys @ pdf @ mark @ pos @ \__nicematrix_env: - ##1 - ####1 - NW } @@ -1458,6 +1433,7 @@ } } } + \__nicematrix_create_extra_nodes: } \NewDocumentEnvironment { NiceArrayWithDelims } { m m O { } m ! O { } t \CodeBefore } @@ -1494,11 +1470,18 @@ \seq_gclear:N \g__nicematrix_pos_of_blocks_seq \seq_gclear:N \g__nicematrix_pos_of_stroken_blocks_seq \seq_gclear:N \g__nicematrix_pos_of_xdots_seq - \tl_if_exist:cT { g__nicematrix_code_before_ \int_use:N \g__nicematrix_env_int _ tl } + \tl_gclear_new:N \g__nicematrix_code_before_tl + \bool_gset_false:N \g__nicematrix_aux_found_bool + \tl_if_exist:cT { c__nicematrix _ \int_use:N \g__nicematrix_env_int _ tl } + { + \bool_gset_true:N \g__nicematrix_aux_found_bool + \use:c { c__nicematrix _ \int_use:N \g__nicematrix_env_int _ tl } + } + \tl_gclear:N \g__nicematrix_aux_tl + \tl_if_empty:NF \g__nicematrix_code_before_tl { \bool_set_true:N \l__nicematrix_code_before_bool - \exp_args:NNv \tl_put_right:Nn \l__nicematrix_code_before_tl - { g__nicematrix_code_before_ \int_use:N \g__nicematrix_env_int _ tl } + \tl_put_right:NV \l__nicematrix_code_before_tl \g__nicematrix_code_before_tl } \bool_if:NTF \l__nicematrix_NiceArray_bool { \keys_set:nn { NiceMatrix / NiceArray } } @@ -1612,6 +1595,13 @@ \group_end: \__nicematrix_after_array: \egroup + \iow_now:Nn \@mainaux { \ExplSyntaxOn } + \iow_now:Nx \@mainaux + { + \tl_gset:cn { c__nicematrix_ \int_use:N \g__nicematrix_env_int _ tl } + \iow_newline: { \iow_newline: \exp_not:V \g__nicematrix_aux_tl } + } + \iow_now:Nn \@mainaux { \ExplSyntaxOff } \bool_if:NT \c__nicematrix_footnote_bool \endsavenotes } \cs_new_protected:Npn \__nicematrix_construct_preamble: @@ -1624,7 +1614,7 @@ \exp_args:NV \@temptokena \g__nicematrix_preamble_tl \@tempswatrue \@whilesw \if@tempswa \fi { \@tempswafalse \the \NC@list } - \int_gzero_new:N \c@jCol + \int_gzero:N \c@jCol \tl_gclear:N \g__nicematrix_preamble_tl \tl_if_eq:NnTF \l__nicematrix_vlines_clist { all } { @@ -2506,70 +2496,42 @@ \bool_if:NT \g__nicematrix_last_col_found_bool { \int_set_eq:NN \l__nicematrix_last_col_int \g__nicematrix_col_total_int } \bool_if:NT \l__nicematrix_last_col_without_value_bool + { \int_set_eq:NN \l__nicematrix_last_col_int \g__nicematrix_col_total_int } + \bool_if:NT \l__nicematrix_last_row_without_value_bool + { \int_set_eq:NN \l__nicematrix_last_row_int \g__nicematrix_row_total_int } + \tl_gput_right:Nx \g__nicematrix_aux_tl { - \dim_set_eq:NN \l__nicematrix_last_col_int \g__nicematrix_col_total_int - \iow_shipout:Nn \@mainaux \ExplSyntaxOn - \iow_shipout:Nx \@mainaux + \seq_gset_from_clist:Nn \exp_not:N \c__nicematrix_size_seq { - \cs_gset:cpn { __nicematrix_last_col_ \int_use:N \g__nicematrix_env_int } - { \int_use:N \g__nicematrix_col_total_int } + \int_use:N \l__nicematrix_first_row_int , + \int_use:N \c@iRow , + \int_use:N \g__nicematrix_row_total_int , + \int_use:N \l__nicematrix_first_col_int , + \int_use:N \c@jCol , + \int_use:N \g__nicematrix_col_total_int } - \str_if_empty:NF \l__nicematrix_name_str - { - \iow_shipout:Nx \@mainaux - { - \cs_gset:cpn { __nicematrix_last_col_ \l__nicematrix_name_str } - { \int_use:N \g__nicematrix_col_total_int } - } - } - \iow_shipout:Nn \@mainaux \ExplSyntaxOff + \iow_newline: } - \bool_if:NT \l__nicematrix_last_row_without_value_bool + \seq_if_empty:NF \g__nicematrix_pos_of_blocks_seq { - \dim_set_eq:NN \l__nicematrix_last_row_int \g__nicematrix_row_total_int - \bool_if:NF \l__nicematrix_light_syntax_bool + \tl_gput_right:Nx \g__nicematrix_aux_tl { - \iow_shipout:Nn \@mainaux \ExplSyntaxOn - \iow_shipout:Nx \@mainaux - { - \cs_gset:cpn { __nicematrix_last_row_ \int_use:N \g__nicematrix_env_int } - { \int_use:N \g__nicematrix_row_total_int } - } - \str_if_empty:NF \l__nicematrix_name_str - { - \iow_shipout:Nx \@mainaux - { - \cs_gset:cpn { __nicematrix_last_row_ \l__nicematrix_name_str } - { \int_use:N \g__nicematrix_row_total_int } - } - } - \iow_shipout:Nn \@mainaux \ExplSyntaxOff + \seq_gset_from_clist:Nn \exp_not:N \g__nicematrix_pos_of_blocks_seq + { \seq_use:Nnnn \g__nicematrix_pos_of_blocks_seq , , , } + \iow_newline: } } - \bool_if:NT \l__nicematrix_code_before_bool + \seq_if_empty:NF \g__nicematrix_multicolumn_cells_seq { - \iow_now:Nn \@mainaux \ExplSyntaxOn - \iow_now:Nx \@mainaux - { \seq_clear_new:c { __nicematrix_size _ \int_use:N \g__nicematrix_env_int _ seq } } - \iow_now:Nx \@mainaux + \tl_gput_right:Nx \g__nicematrix_aux_tl { - \seq_gset_from_clist:cn { __nicematrix_size _ \int_use:N \g__nicematrix_env_int _ seq } - { - \int_use:N \l__nicematrix_first_row_int , - \int_use:N \g__nicematrix_row_total_int , - \int_use:N \l__nicematrix_first_col_int , - \bool_lazy_and:nnTF - { \int_compare_p:nNn \l__nicematrix_last_col_int > { -2 } } - { \bool_not_p:n \g__nicematrix_last_col_found_bool } - \__nicematrix_succ:n - \int_use:N - \g__nicematrix_col_total_int - } - \seq_gset_from_clist:cn - { c__nicematrix_pos_of_blocks_ \int_use:N \g__nicematrix_env_int _ seq } - { \seq_use:Nnnn \g__nicematrix_pos_of_blocks_seq , , , } + \seq_gset_from_clist:Nn \exp_not:N \g__nicematrix_multicolumn_cells_seq + { \seq_use:Nnnn \g__nicematrix_multicolumn_cells_seq , , , } + \iow_newline: + \seq_gset_from_clist:Nn \exp_not:N \g__nicematrix_multicolumn_sizes_seq + { \seq_use:Nnnn \g__nicematrix_multicolumn_sizes_seq , , , } + \iow_newline: } - \iow_now:Nn \@mainaux \ExplSyntaxOff } \__nicematrix_create_diag_nodes: \bool_if:NT \l__nicematrix_parallelize_diags_bool @@ -2636,14 +2598,12 @@ { \cs_set_protected:Npn \rectanglecolor { } \cs_set_protected:Npn \columncolor { } - \iow_now:Nn \@mainaux \ExplSyntaxOn - \iow_now:Nx \@mainaux + \tl_gput_right:Nx \g__nicematrix_aux_tl { - \tl_gset:cn - { g__nicematrix_code_before_ \int_use:N \g__nicematrix_env_int _ tl } + \tl_gset:Nn \exp_not:N \g__nicematrix_code_before_tl { \exp_not:V \g_nicematrix_code_before_tl } + \iow_newline: } - \iow_now:Nn \@mainaux \ExplSyntaxOff \bool_set_true:N \l__nicematrix_code_before_bool } % \bool_if:NT \l__nicematrix_code_before_bool \__nicematrix_write_aux_for_cell_nodes: @@ -4025,14 +3985,9 @@ \tl_set:Nn \l__nicematrix_cols_tl { - } \keys_set:nn { NiceMatrix / rowcolors } { #5 } \bool_set_true:N \l_tmpa_bool - \bool_lazy_and:nnT - \l__nicematrix_respect_blocks_bool - { - \cs_if_exist_p:c - { c__nicematrix_pos_of_blocks_ \int_use:N \g__nicematrix_env_int _ seq } } + \bool_if:NT \l__nicematrix_respect_blocks_bool { - \seq_set_eq:Nc \l_tmpb_seq - { c__nicematrix_pos_of_blocks_ \int_use:N \g__nicematrix_env_int _ seq } + \seq_set_eq:NN \l_tmpb_seq \g__nicematrix_pos_of_blocks_seq \seq_set_filter:NNn \l_tmpa_seq \l_tmpb_seq { \__nicematrix_not_in_exterior_p:nnnn ##1 } } @@ -4053,12 +4008,7 @@ \int_do_until:nNnn \l_tmpa_int > \l_tmpc_int { \int_set_eq:NN \l_tmpb_int \l_tmpa_int - \bool_lazy_and:nnT - \l__nicematrix_respect_blocks_bool - { - \cs_if_exist_p:c - { c__nicematrix_pos_of_blocks_ \int_use:N \g__nicematrix_env_int _ seq } - } + \bool_if:NT \l__nicematrix_respect_blocks_bool { \seq_set_filter:NNn \l_tmpb_seq \l_tmpa_seq { \__nicematrix_intersect_our_row_p:nnnn ####1 } @@ -4592,14 +4542,12 @@ } \seq_if_empty:NF \l__nicematrix_corners_cells_seq { - \iow_now:Nn \@mainaux \ExplSyntaxOn - \iow_now:Nx \@mainaux + \tl_gput_right:Nx \g__nicematrix_aux_tl { - \seq_gset_from_clist:cn - { c__nicematrix_corners_cells_ \int_use:N \g__nicematrix_env_int _ seq } + \seq_set_from_clist:Nn \exp_not:N \l__nicematrix_corners_cells_seq { \seq_use:Nnnn \l__nicematrix_corners_cells_seq , , , } + \iow_newline: } - \iow_now:Nn \@mainaux \ExplSyntaxOff } } \cs_new_protected:Npn \__nicematrix_compute_a_corner:nnnnnn #1 #2 #3 #4 #5 #6 |