diff options
author | Karl Berry <karl@freefriends.org> | 2020-01-23 21:57:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-01-23 21:57:42 +0000 |
commit | b893c0b81be7cc13062e7f6257084a1765bc91e6 (patch) | |
tree | 938b80d6441ef5a3ecbb9efc0d2747bf517ea501 /Master/texmf-dist/tex/latex/l3kernel | |
parent | 64190a7a9bd900cc15dde29c88e0fb0c9ab9b082 (diff) |
l3kernel (23jan20)
git-svn-id: svn://tug.org/texlive/trunk@53518 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
5 files changed, 86 insertions, 43 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 4e722fd3bee..facf6aa4954 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -67,7 +67,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-01-12}% +\def\ExplFileDate{2020-01-22}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -12655,7 +12655,7 @@ { \__keyval_def_aux:w #1 \q_stop } \cs_new:Npn \__keyval_def_aux:w #1 \q_stop { \exp_not:n {#1} } \__kernel_msg_new:nnnn { kernel } { misplaced-equals-sign } - { Misplaced~equals~sign~in~key-value~input~\msg_line_number: } + { Misplaced~equals~sign~in~key-value~input~\msg_line_context: } { LaTeX~is~attempting~to~parse~some~key-value~input~but~found~ two~equals~signs~not~separated~by~a~comma. @@ -12879,6 +12879,7 @@ \cs_set_nopar:cpx { \c__keys_default_root_tl \l_keys_path_tl } { \exp_not:n {#1} } + \__keys_value_requirement:nn { required } { false } } } \cs_new_protected:Npn \__keys_groups_set:n #1 @@ -13003,6 +13004,12 @@ } } \cs_generate_variant:Nn \__keys_variable_set:NnnN { c } +\cs_new_protected:Npn \__keys_variable_set_required:NnnN #1#2#3#4 + { + \__keys_variable_set:NnnN #1 {#2} {#3} #4 + \__keys_value_requirement:nn { required } { true } + } +\cs_generate_variant:Nn \__keys_variable_set_required:NnnN { c } \cs_new_protected:cpn { \c__keys_props_root_tl .bool_set:N } #1 { \__keys_bool_set:Nn #1 { } } \cs_new_protected:cpn { \c__keys_props_root_tl .bool_set:c } #1 @@ -13048,21 +13055,21 @@ \cs_new_protected:cpn { \c__keys_props_root_tl .default:x } #1 { \exp_args:Nx \__keys_default_set:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_tl .dim_set:N } #1 - { \__keys_variable_set:NnnN #1 { dim } { } n } + { \__keys_variable_set_required:NnnN #1 { dim } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .dim_set:c } #1 - { \__keys_variable_set:cnnN {#1} { dim } { } n } + { \__keys_variable_set_required:cnnN {#1} { dim } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .dim_gset:N } #1 - { \__keys_variable_set:NnnN #1 { dim } { g } n } + { \__keys_variable_set_required:NnnN #1 { dim } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .dim_gset:c } #1 - { \__keys_variable_set:cnnN {#1} { dim } { g } n } + { \__keys_variable_set_required:cnnN {#1} { dim } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .fp_set:N } #1 - { \__keys_variable_set:NnnN #1 { fp } { } n } + { \__keys_variable_set_required:NnnN #1 { fp } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .fp_set:c } #1 - { \__keys_variable_set:cnnN {#1} { fp } { } n } + { \__keys_variable_set_required:cnnN {#1} { fp } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .fp_gset:N } #1 - { \__keys_variable_set:NnnN #1 { fp } { g } n } + { \__keys_variable_set_required:NnnN #1 { fp } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .fp_gset:c } #1 - { \__keys_variable_set:cnnN {#1} { fp } { g } n } + { \__keys_variable_set_required:cnnN {#1} { fp } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .groups:n } #1 { \__keys_groups_set:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_tl .inherit:n } #1 @@ -13076,13 +13083,13 @@ \cs_new_protected:cpn { \c__keys_props_root_tl .initial:x } #1 { \exp_args:Nx \__keys_initialise:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_tl .int_set:N } #1 - { \__keys_variable_set:NnnN #1 { int } { } n } + { \__keys_variable_set_required:NnnN #1 { int } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .int_set:c } #1 - { \__keys_variable_set:cnnN {#1} { int } { } n } + { \__keys_variable_set_required:cnnN {#1} { int } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .int_gset:N } #1 - { \__keys_variable_set:NnnN #1 { int } { g } n } + { \__keys_variable_set_required:NnnN #1 { int } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .int_gset:c } #1 - { \__keys_variable_set:cnnN {#1} { int } { g } n } + { \__keys_variable_set_required:cnnN {#1} { int } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .meta:n } #1 { \__keys_meta_make:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_tl .meta:nn } #1 @@ -13098,13 +13105,13 @@ \cs_new_protected:cpn { \c__keys_props_root_tl .multichoices:xn } #1 { \exp_args:Nx \__keys_multichoices_make:nn #1 } \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_set:N } #1 - { \__keys_variable_set:NnnN #1 { muskip } { } n } + { \__keys_variable_set_required:NnnN #1 { muskip } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_set:c } #1 - { \__keys_variable_set:cnnN {#1} { muskip } { } n } + { \__keys_variable_set_required:cnnN {#1} { muskip } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_gset:N } #1 - { \__keys_variable_set:NnnN #1 { muskip } { g } n } + { \__keys_variable_set_required:NnnN #1 { muskip } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_gset:c } #1 - { \__keys_variable_set:cnnN {#1} { muskip } { g } n } + { \__keys_variable_set_required:cnnN {#1} { muskip } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .prop_put:N } #1 { \__keys_prop_put:Nn #1 { } } \cs_new_protected:cpn { \c__keys_props_root_tl .prop_put:c } #1 @@ -13114,13 +13121,13 @@ \cs_new_protected:cpn { \c__keys_props_root_tl .prop_gput:c } #1 { \__keys_prop_put:cn {#1} { g } } \cs_new_protected:cpn { \c__keys_props_root_tl .skip_set:N } #1 - { \__keys_variable_set:NnnN #1 { skip } { } n } + { \__keys_variable_set_required:NnnN #1 { skip } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .skip_set:c } #1 - { \__keys_variable_set:cnnN {#1} { skip } { } n } + { \__keys_variable_set_required:cnnN {#1} { skip } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .skip_gset:N } #1 - { \__keys_variable_set:NnnN #1 { skip } { g } n } + { \__keys_variable_set_required:NnnN #1 { skip } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .skip_gset:c } #1 - { \__keys_variable_set:cnnN {#1} { skip } { g } n } + { \__keys_variable_set_required:cnnN {#1} { skip } { g } n } \cs_new_protected:cpn { \c__keys_props_root_tl .tl_set:N } #1 { \__keys_variable_set:NnnN #1 { tl } { } n } \cs_new_protected:cpn { \c__keys_props_root_tl .tl_set:c } #1 @@ -13569,7 +13576,7 @@ \cs_set:Npn \__keys_trim_spaces_auxiii:w #1 / { \quark_if_recursion_tail_stop:n {#1} - \tl_trim_spaces:n { / #1 } + / \tl_trim_spaces:n { #1 } \__keys_trim_spaces_auxiii:w } \prg_new_conditional:Npnn \keys_if_exist:nn #1#2 { p , T , F , TF } @@ -27858,7 +27865,7 @@ \TH \th } \tl_new:N \l_text_case_exclude_arg_tl -\tl_set:Nn \l_text_case_exclude_arg_tl { \cite \label \ref } +\tl_set:Nn \l_text_case_exclude_arg_tl { \begin \cite \end \label \ref } \tl_new:N \l_text_math_arg_tl \tl_set:Nn \l_text_math_arg_tl { \ensuremath } \tl_new:N \l_text_math_delims_tl @@ -28103,7 +28110,7 @@ { \str_if_eq:nnTF {#1} { \protect } { \__text_expand_protect:N } - { \__text_expand_cs_expand:N #1 } + { \__text_expand_replace:N #1 } } \cs_new:Npn \__text_expand_protect:N #1 { @@ -28123,15 +28130,51 @@ { \__text_expand_store:n { \protect #1 } } \__text_expand_loop:w } +\cs_new:Npn \__text_expand_replace:N #1 + { + \bool_lazy_and:nnTF + { \cs_if_exist_p:c { l__text_expand_ \token_to_str:N #1 _tl } } + { + \bool_lazy_or_p:nn + { \token_if_cs_p:N #1 } + { \token_if_active_p:N #1 } + } + { + \exp_args:Nv \__text_expand_replace:n + { l__text_expand_ \token_to_str:N #1 _tl } + } + { \__text_expand_cs_expand:N #1 } + } +\cs_new:Npn \__text_expand_replace:n #1 { \__text_expand_loop:w #1 } \cs_new:Npn \__text_expand_cs_expand:N #1 { \__text_if_expandable:NTF #1 - { \exp_after:wN \__text_expand_loop:w #1 } + { + \str_if_eq:nnTF {#1} { \exp_not:n } + { \__text_expand_noexpand:n } + { \exp_after:wN \__text_expand_loop:w #1 } + } { \__text_expand_store:n {#1} \__text_expand_loop:w } } +\cs_new:Npn \__text_expand_noexpand:n #1 + { + \__text_expand_store:n {#1} + \__text_expand_loop:w + } +\cs_new_protected:Npn \text_declare_expand_equivalent:Nn #1#2 + { + \tl_clear_new:c { l__text_expand_ \token_to_str:N #1 _tl } + \tl_set:cn { l__text_expand_ \token_to_str:N #1 _tl } {#2} + } +\cs_generate_variant:Nn \text_declare_expand_equivalent:Nn { c } +\cs_new:Npn \__text_expand_textcomp:NN #1#2 { \exp_not:n {#1} } +\text_declare_expand_equivalent:cn { ?-cmd } { \__text_expand_textcomp:NN } +\text_declare_expand_equivalent:cn { T1-cmd } { \__text_expand_textcomp:NN } +\text_declare_expand_equivalent:cn { TS1-cmd } { \__text_expand_textcomp:NN } +\text_declare_expand_equivalent:cn { TU-cmd } { \__text_expand_textcomp:NN } %% File: l3text-case.dtx \cs_new:Npn \text_lowercase:n #1 { \__text_change_case:nnn { lower } { } {#1} } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 72090ccc347..f01ef0d9a01 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-01-12}% +\def\ExplFileDate{2020-01-22}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 80baec9c93b..3b5be14b9c0 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-01-12}% +\def\ExplFileDate{2020-01-22}% \let\ExplLoaderFileDate\ExplFileDate \everyjob\expandafter{\the\everyjob \message{L3 programming layer <\ExplFileDate>}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 355a6b941f1..384c674b3b7 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-01-12}% +\def\ExplFileDate{2020-01-22}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def index 5623aaa6117..46d71c85211 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def @@ -179,17 +179,17 @@ \cs_gset:Npn \__prg_break: #1 \__prg_break_point: { } \__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \prg_break:n } \cs_gset:Npn \__prg_break:n #1#2 \__prg_break_point: {#1} -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_lower_case:n } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_lowercase:n } \cs_gset:Npn \str_lower_case:n { \str_lowercase:n } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_lower_case:f } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_lowercase:f } \cs_gset:Npn \str_lower_case:f { \str_lowercase:f } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_upper_case:n } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_uppercase:n } \cs_gset:Npn \str_upper_case:n { \str_uppercase:n } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_upper_case:f } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_uppercase:f } \cs_gset:Npn \str_upper_case:f { \str_uppercase:f } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_fold_case:n } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_foldcase:n } \cs_gset:Npn \str_fold_case:n { \str_foldcase:n } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_fold_case:V } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_foldcase:V } \cs_gset:Npn \str_fold_case:V { \str_foldcase:V } \__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_case_e:nn } \cs_gset:Npn \str_case_x:nn { \str_case_e:nn } @@ -269,21 +269,21 @@ \cs_gset:Npn \token_get_arg_spec:N { \cs_argument_spec:N } \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \cs_replacement_spec:N } \cs_gset:Npn \token_get_replacement_spec:N { \cs_replacement_spec:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_lower_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_lowercase:N } \cs_gset:Npn \char_lower_case:N { \char_lowercase:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_upper_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_uppercase:N } \cs_gset:Npn \char_upper_case:N { \char_uppercase:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_mixed_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_titlecase:N } \cs_gset:Npn \char_mixed_case:N { \char_titlecase:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_fold_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_foldcase:N } \cs_gset:Npn \char_fold_case:N { \char_foldcase:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_lower_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_lowercase:N } \cs_gset:Npn \char_str_lower_case:N { \char_str_lowercase:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_upper_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_uppercase:N } \cs_gset:Npn \char_str_upper_case:N { \char_str_uppercase:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_mixed_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_titlecase:N } \cs_gset:Npn \char_str_mixed_case:N { \char_str_titlecase:N } -\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_fold_case:N } +\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_foldcase:N } \cs_gset:Npn \char_str_fold_case:N { \char_str_foldcase:N } \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { -1 } \cs_new_protected:Npn \c_term_ior { -1 \scan_stop: } |