From 3768cf87942daac44d14a6bd2cb2d2ede497b8d0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 30 Mar 2023 20:05:05 +0000 Subject: l3 (30mar23) git-svn-id: svn://tug.org/texlive/trunk@66710 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 164 ++++++++++++++++++--- .../tex/latex/l3kernel/expl3-generic.tex | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 2 +- 4 files changed, 143 insertions(+), 27 deletions(-) (limited to 'Master/texmf-dist/tex/latex/l3kernel') diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 8f2c6f05dd8..a163950e5ff 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -71,7 +71,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-02-22}% +\def\ExplFileDate{2023-03-30}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -957,6 +957,7 @@ Type H for immediate help}\def~{\errmessage{% \__kernel_primitive:NN \dvivariable \tex_dvivariable:D \__kernel_primitive:NN \eTeXglueshrinkorder \tex_eTeXglueshrinkorder:D \__kernel_primitive:NN \eTeXgluestretchorder \tex_eTeXgluestretchorder:D + \__kernel_primitive:NN \endlocalcontrol \tex_endlocalcontrol:D \__kernel_primitive:NN \etoksapp \tex_etoksapp:D \__kernel_primitive:NN \etokspre \tex_etokspre:D \__kernel_primitive:NN \exceptionpenalty \tex_exceptionpenalty:D @@ -28485,6 +28486,7 @@ Type H for immediate help}\def~{\errmessage{% \int_new:N \l__color_internal_int \tl_new:N \l__color_internal_tl \scan_new:N \s__color_mark +\bool_new:N \l__color_ignore_error_bool \prg_new_conditional:Npnn \color_if_exist:n #1 { p , T, F, TF } { \prop_if_exist:cTF { l__color_named_ #1 _prop } @@ -28651,17 +28653,11 @@ Type H for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__color_parse_loop:w #1 ! #2 ! #3 ! #4 ! #5 \s__color_stop { - \bool_lazy_or:nnF - { \tl_if_blank_p:n {#1} } - { \int_compare_p:nNn {#1} = { 100 } } + \tl_if_blank:nF {#1} { - \int_compare:nNnTF {#1} = { 0 } - { - \tl_if_blank:nTF {#2} - { \__color_extract:nNN { white } } - { \__color_extract:nNN {#2} } - \l__color_model_tl \l__color_value_tl - } + \bool_lazy_and:nnTF + { \fp_compare_p:nNn {#1} > { 0 } } + { \fp_compare_p:nNn {#1} < { 100 } } { \use:x { @@ -28669,11 +28665,29 @@ Type H for immediate help}\def~{\errmessage{% { \tl_if_blank:nTF {#2} { white } {#2} } } } + { \__color_parse_loop_check:nn {#1} {#2} } } \tl_if_blank:nF {#3} { \__color_parse_loop:w #3 ! #4 ! #5 \s__color_stop } \__color_parse_end: } +\cs_new_protected:Npn \__color_parse_loop_check:nn #1#2 + { + \bool_if:NF \l__color_ignore_error_bool + { + \bool_lazy_or:nnT + { \fp_compare_p:nNn {#1} < { 0 } } + { \fp_compare_p:nNn {#1} > { 100 } } + { \msg_error:nnnnn { color } { out-of-range } {#1} { 0 } { 100 } } + } + \fp_compare:nNnF {#1} > \c_zero_fp + { + \tl_if_blank:nTF {#2} + { \__color_extract:nNN { white } } + { \__color_extract:nNN {#2} } + \l__color_model_tl \l__color_value_tl + } + } \cs_new_protected:Npn \__color_parse_loop:nn #1#2 { \color_if_exist:nTF {#2} @@ -29184,6 +29198,7 @@ Type H for immediate help}\def~{\errmessage{% \prop_if_in:cnF { l__color_named_ #1 _prop } {##1} { \group_begin: + \bool_set_true:N \l__color_ignore_error_bool \tl_set:cn { l__color_named_ #3 _tl } {##1} \__color_parse:nN {#2} \l__color_internal_tl \exp_args:NNNV \group_end: @@ -30109,6 +30124,13 @@ Type H for immediate help}\def~{\errmessage{% LaTeX~was~asked~to~define~a~new~color~model~called~'#1',~but~ this~color~model~already~exists. } +\msg_new:nnnn { color } { out-of-range } + { Input~value~#1~out~of~range~[#2,~#3]. } + { + LaTeX~was~expecting~a~value~in~the~range~[#2,~#3]~as~part~of~a~color,~ + but~you~gave~#1.~LaTeX~will~assume~you~meant~the~limit~of~the~range~ + and~continue. + } \msg_new:nnnn { color } { separation-alternative-model } { Separation~color~space~'#1'~require~an~alternative~model. } { @@ -33503,11 +33525,23 @@ Type H for immediate help}\def~{\errmessage{% { \bool_lazy_and:nnTF { \__text_change_case_if_greek_p:n {#4} } - { ! \__text_codepoint_compare_p:nNn {#4} = { "0374 } } { - \exp_args:Ne \__text_change_case_upper_el:nnn + ! \bool_lazy_or_p:nn + { \__text_codepoint_compare_p:nNn {#4} = { "0374 } } + { \__text_codepoint_compare_p:nNn {#4} = { "037E } } + } + { + \__text_change_case_if_greek_spacing_diacritic:nTF {#4} { - \codepoint_to_nfd:n { \__text_codepoint_from_chars:Nw #4 } + \__text_change_case_store:n {#4} + \__text_change_case_loop:nnw + } + { + \exp_args:Ne \__text_change_case_upper_el:nnn + { + \codepoint_to_nfd:n + { \__text_codepoint_from_chars:Nw #4 } + } } {#2} {#3} } @@ -33805,6 +33839,84 @@ Type H for immediate help}\def~{\errmessage{% \fi: \fi: } +\prg_new_conditional:Npnn \__text_change_case_if_greek_spacing_diacritic:n + #1 { TF } + { + \exp_args:Nf \__text_change_case_if_greek_spacing_diacritic:n + { \int_eval:n { \__text_codepoint_from_chars:Nw #1 } } + } +\cs_new:Npn \__text_change_case_if_greek_spacing_diacritic:n #1 + { + \if_int_compare:w #1 < "1FBD \exp_stop_f: + \if_int_compare:w #1 = "037A \exp_stop_f: + \prg_return_true: + \else: + \prg_return_false: + \fi: + \else: + \if_int_compare:w #1 = "1FBD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FBF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FC0 \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FC1 \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FCD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FCE \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FCF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FDD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FDE \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FDF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FED \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FEE \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FEF \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FFD \exp_stop_f: + \prg_return_true: + \else: + \if_int_compare:w #1 = "1FFE \exp_stop_f: + \prg_return_true: + \else: + \prg_return_false: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + \fi: + } \prg_new_conditional:Npnn \__text_change_case_if_greek_diacritic:n #1 { TF , p } { @@ -33825,11 +33937,7 @@ Type H for immediate help}\def~{\errmessage{% \if_int_compare:w #1 = "0314 \exp_stop_f: \prg_return_true: \else: - \if_int_compare:w #1 = "0343 \exp_stop_f: - \prg_return_true: - \else: - \prg_return_false: - \fi: + \prg_return_false: \fi: \fi: \fi: @@ -33903,9 +34011,13 @@ Type H for immediate help}\def~{\errmessage{% } \cs_new:Npn \__text_change_case_boundary_upper_el:nnn #1#2#3 { - \bool_lazy_or:nnTF - { \__text_codepoint_compare_p:nNn {#3} = { "03AE } } - { \__text_codepoint_compare_p:nNn {#3} = { "1F22 } } + \bool_lazy_any:nTF + { + { \__text_codepoint_compare_p:nNn {#3} = { "0389 } } + { \__text_codepoint_compare_p:nNn {#3} = { "03AE } } + { \__text_codepoint_compare_p:nNn {#3} = { "1F22 } } + { \__text_codepoint_compare_p:nNn {#3} = { "1F2A } } + } { \__text_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} } { \__text_change_case_loop:nnw {#1} {#2} #3 } } @@ -35605,7 +35717,9 @@ Type H for immediate help}\def~{\errmessage{% { { pdftex } { - \fp_eval:n { round(\int_use:N \tex_pdftexversion:D / 100 , 2) } + \int_div_truncate:nn { \tex_pdftexversion:D } { 100 } + . + \int_mod:nn { \tex_pdftexversion:D } { 100 } . \tex_pdftexrevision:D } @@ -35624,7 +35738,9 @@ Type H for immediate help}\def~{\errmessage{% } { luatex } { - \fp_eval:n { round(\int_use:N \tex_luatexversion:D / 100, 2) } + \int_div_truncate:nn { \tex_luatexversion:D } { 100 } + . + \int_mod:nn { \tex_luatexversion:D } { 100 } . \tex_luatexrevision:D } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 336d9a99481..198d834f086 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{2023-02-22}% +\def\ExplFileDate{2023-03-30}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index e94af3111e7..2dd58eebb4f 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{2023-02-22}% +\def\ExplFileDate{2023-03-30}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 84451c96975..787ffb3187b 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{2023-02-22}% +\def\ExplFileDate{2023-03-30}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% -- cgit v1.2.3