diff options
author | Karl Berry <karl@freefriends.org> | 2017-03-19 22:13:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2017-03-19 22:13:10 +0000 |
commit | a9b5c8812a42ed9fc7bd6323b1185a096ecb7c0e (patch) | |
tree | 3130ecf7e791b7a7bf9587e8d8d3a339921de401 /Master/texmf-dist/tex/latex/l3kernel | |
parent | dd8d54441efc71090eb7f91c1315b3d08ddbdcdc (diff) |
l3 (19mar17)
git-svn-id: svn://tug.org/texlive/trunk@43548 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
33 files changed, 540 insertions, 654 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 08580e71110..99c00c3f9e3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -58,10 +58,8 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileName{expl3}% -\def\ExplFileDescription{L3 programming layer}% -\def\ExplFileDate{2017/03/11}% -\def\ExplFileVersion{6988}% +\def\ExplFileDate{2017/03/18}% +\def\ExplFileVersion{7019}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -103,23 +101,22 @@ \fi \next \begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname ver@\ExplFileName -code.tex\endcsname\relax - \expandafter\edef\csname ver@\ExplFileName -code.tex\endcsname +\expandafter\ifx\csname ver@expl3-code.tex\endcsname\relax + \expandafter\edef\csname ver@expl3-code.tex\endcsname {% \ExplFileDate\space v\ExplFileVersion\space - \ExplFileDescription\space + L3 programming layer }% \else \expandafter\endinput \fi \immediate\write-1 % {% - Package: - \ExplFileName\space - \ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription\space - (code)% + Package: expl3 + \ExplFileDate\space v\ExplFileVersion\space + L3 programming layer (code)% }% -%% File: l3bootstrap.dtx Copyright (C) 2011-2016 The LaTeX3 project +%% File: l3bootstrap.dtx Copyright (C) 2011-2017 The LaTeX3 project \begingroup \csname protected\endcsname\gdef\GetIdInfo {% @@ -150,7 +147,6 @@ }% \fi \tempa - \GetIdInfoLog }% \csname protected\endcsname\gdef\GetIdInfoAuxII$#1 #2.#3 #4 #5 #6$% {% @@ -179,18 +175,7 @@ {% \def\ExplFileDate{#1/#2/#3}% }% - \csname protected\endcsname\gdef\GetIdInfoLog - {% - \immediate\write-1 % - {% - L3 Module: - \ExplFileName\space - \ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription - }% - }% \endgroup -\GetIdInfo$Id: l3bootstrap.dtx 6805 2016-12-28 22:15:52Z joseph $ - {L3 Bootstrap code}% \begingroup \expandafter\ifx\csname directlua\endcsname\relax \else @@ -268,7 +253,7 @@ \fi \expandafter\ifx\csname directlua\endcsname\relax \else - \ifnum\luatexversion<40 \else 1\fi + \ifnum\luatexversion<70 \else 1\fi \fi =0 % \newlinechar`\^^J % @@ -365,8 +350,6 @@ \bool_set_true:N \l__kernel_expl_bool } %% File: l3names.dtx Copyright (C) 1990-2017 The LaTeX3 project -\GetIdInfo$Id: l3names.dtx 6962 2017-02-19 22:58:35Z joseph $ - {L3 Namespace for primitives} \let \tex_global:D \global \let \tex_let:D \let \begingroup @@ -1368,8 +1351,6 @@ \tex_let:D \tex_right:D \normalright \tex_fi:D %% File: l3basics.dtx Copyright (C) 1990-2017 The LaTeX3 project -\GetIdInfo$Id: l3basics.dtx 6929 2017-02-14 15:53:00Z bruno $ - {L3 Basic definitions} \tex_let:D \if_true: \tex_iftrue:D \tex_let:D \if_false: \tex_iffalse:D \tex_let:D \or: \tex_or:D @@ -2123,9 +2104,7 @@ \cs_new_eq:NN \__prg_break_point: \prg_do_nothing: \cs_new:Npn \__prg_break: #1 \__prg_break_point: { } \cs_new:Npn \__prg_break:n #1#2 \__prg_break_point: {#1} -%% File: l3expan.dtx Copyright (C) 1990-2016 The LaTeX3 project -\GetIdInfo$Id: l3expan.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Argument expansion} +%% File: l3expan.dtx Copyright (C) 1990-2017 The LaTeX3 project \cs_new:Npn \__exp_arg_next:nnn #1#2#3 { #2 \::: { #3 {#1} } } \cs_new:Npn \__exp_arg_next:Nnn #1#2#3 { #2 \::: { #3 #1 } } \cs_new:Npn \::: #1 {#1} @@ -2573,8 +2552,6 @@ \__cs_generate_internal_variant_loop:n } %% File: l3tl.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\GetIdInfo$Id: l3tl.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Token lists} \cs_new_protected:Npn \tl_new:N #1 { \__chk_if_free_cs:N #1 @@ -3477,8 +3454,6 @@ \tex_uppercase:D {#1} } %% File: l3str.dtx Copyright (C) 2011-2017 The LaTeX3 Project -\GetIdInfo$Id: l3str.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Strings} \group_begin: \cs_set_protected:Npn \__str_tmp:n #1 { @@ -4125,8 +4100,6 @@ } \group_end: %% File: l3seq.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\GetIdInfo$Id: l3seq.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Sequences and stacks} \cs_new:Npn \__seq_item:n { \__msg_kernel_expandable_error:nn { kernel } { misused-sequence } @@ -4657,8 +4630,6 @@ \seq_new:N \g_tmpa_seq \seq_new:N \g_tmpb_seq %% File: l3int.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\GetIdInfo$Id: l3int.dtx 6949 2017-02-18 16:04:10Z joseph $ - {L3 Integers} \cs_new_eq:NN \__int_value:w \tex_number:D \cs_new_eq:NN \__int_eval:w \etex_numexpr:D \cs_new_eq:NN \__int_eval_end: \tex_relax:D @@ -5456,8 +5427,6 @@ \int_new:N \g_tmpb_int \cs_new_eq:NN \c_minus_one \m@ne %% File: l3flag.dtx Copyright (C) 2011-2012,2014-2017 The LaTeX3 Project -\GetIdInfo$Id: l3flag.dtx 6969 2017-02-20 18:32:23Z bruno $ - {L3 Flags} \cs_new_protected:Npn \flag_new:n #1 { \cs_new:cpn { flag~#1 } ##1 ; @@ -5542,9 +5511,7 @@ \fi: } \fi: -%% File: l3quark.dtx Copyright (C) 1990-2016 The LaTeX3 Project -\GetIdInfo$Id: l3quark.dtx 6947 2017-02-17 21:27:18Z bruno $ - {L3 Quarks} +%% File: l3quark.dtx Copyright (C) 1990-2017 The LaTeX3 Project \cs_new_protected:Npn \quark_new:N #1 { \tl_const:Nn #1 {#1} } \quark_new:N \q_nil \quark_new:N \q_mark @@ -5652,8 +5619,6 @@ \cs_new:Npn \__use_none_delimit_by_s__stop:w #1 \s__stop { } \__scan_new:N \s__seq %% File: l3prg.dtx Copyright (C) 2005-2017 The LaTeX3 Project -\GetIdInfo$Id: l3prg.dtx 6906 2017-02-12 20:07:58Z bruno $ - {L3 Control structures} \cs_new_eq:NN \if_bool:N \tex_ifodd:D \cs_new_eq:NN \if_predicate:w \tex_ifodd:D \cs_new_protected:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool } @@ -5952,8 +5917,6 @@ %% File: l3clist.dtx Copyright (C) 2004-2011 Frank Mittelbach, %% The LaTeX3 project %% (C) 2012-2017 The LaTeX3 Project -\GetIdInfo$Id: l3clist.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Comma separated lists} \cs_new_eq:NN \c_empty_clist \c_empty_tl \tl_new:N \l__clist_internal_clist \cs_new_protected:Npn \__clist_tmp:w { } @@ -6496,9 +6459,7 @@ \clist_new:N \l_tmpb_clist \clist_new:N \g_tmpa_clist \clist_new:N \g_tmpb_clist -%% File: l3token.dtx Copyright (C) 2005-2016 The LaTeX3 Project -\GetIdInfo$Id: l3token.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Experimental token manipulation} +%% File: l3token.dtx Copyright (C) 2005-2017 The LaTeX3 Project \cs_new_protected:Npn \char_set_catcode:nn #1#2 { \tex_catcode:D \__int_eval:w #1 \__int_eval_end: @@ -7233,8 +7194,6 @@ { \scan_stop: } } %% File: l3prop.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\GetIdInfo$Id: l3prop.dtx 6906 2017-02-12 20:07:58Z bruno $ - {L3 Property lists} \__scan_new:N \s__prop \cs_new:Npn \__prop_pair:wn #1 \s__prop #2 { \__msg_kernel_expandable_error:nn { kernel } { misused-prop } } @@ -7507,9 +7466,7 @@ \cs_new_protected:Npn \prop_log:N { \__msg_log_next: \prop_show:N } \cs_generate_variant:Nn \prop_log:N { c } -%% File: l3msg.dtx Copyright (C) 2009-2016 The LaTeX3 Project -\GetIdInfo$Id: l3msg.dtx 6966 2017-02-20 03:39:43Z bruno $ - {L3 Messages} +%% File: l3msg.dtx Copyright (C) 2009-2017 The LaTeX3 Project \tl_new:N \l__msg_internal_tl \bool_new:N \l__msg_line_context_bool \tl_const:Nn \c__msg_text_prefix_tl { msg~text~>~ } @@ -8341,8 +8298,6 @@ \ \ => \ \ \tl_to_str:n {#2} } %% File: l3file.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\GetIdInfo$Id: l3file.dtx 6964 2017-02-20 02:59:41Z bruno $ - {L3 File and I/O operations} \tl_new:N \g_file_current_name_tl \cs_if_exist:NT \@currname { \tl_gset_eq:NN \g_file_current_name_tl \@currname } @@ -9038,8 +8993,6 @@ } %% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project %% (C) 2012-2017 The LaTeX3 Project -\GetIdInfo$Id: l3skip.dtx 6968 2017-02-20 16:08:44Z bruno $ - {L3 Dimensions and skips} \cs_new_eq:NN \if_dim:w \tex_ifdim:D \cs_new_eq:NN \__dim_eval:w \etex_dimexpr:D \cs_new_eq:NN \__dim_eval_end: \tex_relax:D @@ -9457,8 +9410,6 @@ \muskip_new:N \g_tmpa_muskip \muskip_new:N \g_tmpb_muskip %% File: l3keys.dtx Copyright (C) 2006-2017 The LaTeX3 Project -\GetIdInfo$Id: l3keys.dtx 6906 2017-02-12 20:07:58Z bruno $ - {L3 Key-value interfaces} \tl_new:N \l__keyval_key_tl \tl_new:N \l__keyval_value_tl \tl_new:N \l__keyval_sanitise_tl @@ -10381,8 +10332,6 @@ { is~undefined. } } %% File: l3fp.dtx Copyright (C) 2011-2017 The LaTeX3 Project -\GetIdInfo$Id: l3fp.dtx 6987 2017-03-11 01:06:52Z bruno $ - {L3 Floating points} %% File: l3fp-aux.dtx Copyright(C) 2011-2014,2016-2017 The LaTeX3 Project \cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: } \cs_new:Npn \__fp_use_s:n #1 { #1; } @@ -10416,24 +10365,19 @@ \int_const:Nn \c__fp_half_prec_int { 8 } \int_const:Nn \c__fp_block_int { 4 } \int_const:Nn \c__fp_myriad_int { 10000 } +\int_const:Nn \c__fp_minus_min_exponent_int { 10000 } \int_const:Nn \c__fp_max_exponent_int { 10000 } \int_const:Nn \c__fp_max_exp_exponent_int { 5 } +\tl_const:Nx \c__fp_overflowing_fp + { + \s__fp \__fp_chk:w 1 0 + { \int_eval:n { \c__fp_max_exponent_int + 1 } } + {1000} {0000} {0000} {0000} ; + } \cs_new:Npn \__fp_zero_fp:N #1 { \s__fp \__fp_chk:w 0 #1 \s__fp_underflow ; } \cs_new:Npn \__fp_inf_fp:N #1 { \s__fp \__fp_chk:w 2 #1 \s__fp_overflow ; } -\cs_new:Npn \__fp_min_fp:N #1 - { - \s__fp \__fp_chk:w 1 #1 - { \int_eval:n { - \c__fp_max_exponent_int } } - {1000} {0000} {0000} {0000} ; - } -\cs_new:Npn \__fp_max_fp:N #1 - { - \s__fp \__fp_chk:w 1 #1 - { \int_use:N \c__fp_max_exponent_int } - {9999} {9999} {9999} {9999} ; - } \cs_new:Npn \__fp_exponent:w \s__fp \__fp_chk:w #1 { \if_meaning:w 1 #1 @@ -10449,8 +10393,8 @@ { \if_case:w \if_int_compare:w #2 > \c__fp_max_exponent_int 1 ~ \else: - \if_int_compare:w #2 < - \c__fp_max_exponent_int 2 ~ \else: - \if_meaning:w 1 #1 3 ~ \else: 0 ~ \fi: \fi: \fi: + \if_int_compare:w #2 < - \c__fp_minus_min_exponent_int 2 ~ \else: + \if_meaning:w 1 #1 3 ~ \fi: \fi: \fi: 0 ~ \or: \exp_after:wN \__fp_overflow:w \or: \exp_after:wN \__fp_underflow:w \or: \exp_after:wN \__fp_sanitize_zero:w @@ -10470,16 +10414,6 @@ { } #1 } -\cs_new:Npn \__fp_exp_after_o:nw #1 \s__fp \__fp_chk:w #2 - { - \if_meaning:w 1 #2 - \exp_after:wN \__fp_exp_after_normal:nNNw - \else: - \exp_after:wN \__fp_exp_after_special:nNNw - \fi: - { #1 } - #2 - } \cs_new:Npn \__fp_exp_after_f:nw #1 \s__fp \__fp_chk:w #2 { \if_meaning:w 1 #2 @@ -10538,6 +10472,27 @@ { #1 {#2#3#4#5} {#6#7#8#9} ; } \cs_new:Npn \__fp_pack_eight:wNNNNNNNN #1; #2#3#4#5 #6#7#8#9 { #1 {#2#3#4#5#6#7#8#9} ; } +\cs_new:Npn \__fp_basics_pack_low:NNNNNw #1 #2#3#4#5 #6; + { + #1 - 1 ; {#2#3#4#5} {#6} ; } +\cs_new:Npn \__fp_basics_pack_high:NNNNNw #1 #2#3#4#5 #6; + { + \if_meaning:w 2 #1 + \__fp_basics_pack_high_carry:w + \fi: + ; {#2#3#4#5} {#6} + } +\cs_new:Npn \__fp_basics_pack_high_carry:w \fi: ; #1 + { \fi: + 1 ; {1000} } +\cs_new:Npn \__fp_basics_pack_weird_low:NNNNw #1 #2#3#4 #5; + { + \if_meaning:w 2 #1 + + 1 + \fi: + \__int_eval_end: + #2#3#4; {#5} ; + } +\cs_new:Npn \__fp_basics_pack_weird_high:NNNNNNNNw + 1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} } \cs_new:Npn \__fp_decimate:nNnnnn #1 { \cs:w @@ -10596,32 +10551,22 @@ { \fi: \__fp_exp_after_o:w \s__fp #3 ; } \cs_new:Npn \__fp_case_return_ii_o:ww #1 \fi: #2 \s__fp #3 ; { \fi: \__fp_exp_after_o:w } -\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3; { TF , T , F , p } +\prg_new_conditional:Npnn \__fp_int:w \s__fp \__fp_chk:w #1 #2 #3 #4; + { TF , T , F , p } { \if_case:w #1 \exp_stop_f: \prg_return_true: - \or: \__fp_int_normal:nnnnn #3 + \or: + \if_charcode:w 0 + \__fp_decimate:nNnnnn { \c__fp_prec_int - #3 } + \__fp_use_i_until_s:nw #4 + \prg_return_true: + \else: + \prg_return_false: + \fi: \else: \prg_return_false: \fi: } -\cs_new:Npn \__fp_int_normal:nnnnn #1 #2#3#4#5 - { - \if_int_compare:w #1 > 0 \exp_stop_f: - \__fp_decimate:nNnnnn { \c__fp_prec_int - #1 } - \__fp_int_test:Nw - {#2} {#3} {#4} {#5} - \else: - \prg_return_false: - \fi: - } -\cs_new:Npn \__fp_int_test:Nw #1#2; - { - \if_meaning:w 0 #1 - \prg_return_true: - \else: - \prg_return_false: - \fi: - } \cs_new:Npn \__fp_small_int:wTF \s__fp \__fp_chk:w #1#2 { \if_case:w #1 \exp_stop_f: @@ -10640,27 +10585,23 @@ \cs_new:Npn \__fp_small_int_true:wTF #1; #2#3 { #2 {#1} } \cs_new:Npn \__fp_small_int_normal:NnwTF #1#2#3; { - \if_int_compare:w #2 > 0 \exp_stop_f: - \__fp_decimate:nNnnnn { \c__fp_prec_int - #2 } - \__fp_small_int_test:NnnwNnw - #3 #1 {#2} - \else: - \exp_after:wN \use_iii:nnn - \fi: - ; + \__fp_decimate:nNnnnn { \c__fp_prec_int - #2 } + \__fp_small_int_test:NnnwNw + #3 #1 } -\cs_new:Npn \__fp_small_int_test:NnnwNnw #1#2#3#4; #5#6 +\cs_new:Npn \__fp_small_int_test:NnnwNw #1#2#3#4; #5 { \if_meaning:w 0 #1 \exp_after:wN \__fp_small_int_true:wTF \__int_value:w \if_meaning:w 2 #5 - \fi: - \if_int_compare:w #6 > \c__fp_half_prec_int + \if_int_compare:w #2 > 0 \exp_stop_f: 1 0000 0000 \else: #3 \fi: + \exp_after:wN ; \else: - \use_i:nn + \exp_after:wN \use_ii:nn \fi: } \cs_new:Npn \__fp_array_count:n #1 @@ -10693,7 +10634,7 @@ '\token_to_str:N \fp_to_scientific:N',~or~other~ conversion~functions. } -%% File: l3fp-traps.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project +%% File: l3fp-traps.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project \flag_new:n { fp_invalid_operation } \flag_new:n { fp_division_by_zero } \flag_new:n { fp_overflow } @@ -10727,7 +10668,7 @@ { \cs_set:Npn \__fp_invalid_operation:nnw ##1##2##3; } { #1 - \__fp_error:nnfn { invalid } {##2} { \fp_to_tl:n { ##3; } } { } + \__fp_error:nnfn { fp-invalid } {##2} { \fp_to_tl:n { ##3; } } { } \flag_raise:n { fp_invalid_operation } ##1 } @@ -10735,7 +10676,7 @@ { \cs_set:Npn \__fp_invalid_operation_o:Nww ##1##2; ##3; } { #1 - \__fp_error:nffn { invalid-ii } + \__fp_error:nffn { fp-invalid-ii } { \fp_to_tl:n { ##2; } } { \fp_to_tl:n { ##3; } } {##1} \flag_raise:n { fp_invalid_operation } \exp_after:wN \c_nan_fp @@ -10744,7 +10685,7 @@ { \cs_set:Npn \__fp_invalid_operation_tl_o:ff ##1##2 } { #1 - \__fp_error:nffn { invalid } {##1} {##2} { } + \__fp_error:nffn { fp-invalid } {##1} {##2} { } \flag_raise:n { fp_invalid_operation } \exp_after:wN \c_nan_fp } @@ -10761,7 +10702,7 @@ { \cs_set:Npn \__fp_division_by_zero_o:Nnw ##1##2##3; } { #1 - \__fp_error:nnfn { zero-div } {##2} { \fp_to_tl:n { ##3; } } { } + \__fp_error:nnfn { fp-zero-div } {##2} { \fp_to_tl:n { ##3; } } { } \flag_raise:n { fp_division_by_zero } \exp_after:wN ##1 } @@ -10769,7 +10710,7 @@ { \cs_set:Npn \__fp_division_by_zero_o:NNww ##1##2##3; ##4; } { #1 - \__fp_error:nffn { zero-div-ii } + \__fp_error:nffn { fp-zero-div-ii } { \fp_to_tl:n { ##3; } } { \fp_to_tl:n { ##4; } } {##2} \flag_raise:n { fp_division_by_zero } \exp_after:wN ##1 @@ -10798,7 +10739,7 @@ { #1 \__fp_error:nffn - { flow \if_meaning:w 1 ##1 -to \fi: } + { fp-flow \if_meaning:w 1 ##1 -to \fi: } { \fp_to_tl:n { \s__fp \__fp_chk:w ##1##2##3; } } { \token_if_eq_meaning:NNF 0 ##2 { - } #4 } {#2} @@ -10820,8 +10761,8 @@ \cs_new:Npn \__fp_invalid_operation_o:nw { \__fp_invalid_operation:nnw { \exp_after:wN \c_nan_fp } } \cs_generate_variant:Nn \__fp_invalid_operation_o:nw { f } -\cs_new:Npn \__fp_error:nnnn #1 - { \__msg_kernel_expandable_error:nnnnn { kernel } { fp - #1 } } +\cs_new:Npn \__fp_error:nnnn + { \__msg_kernel_expandable_error:nnnnn { kernel } } \cs_generate_variant:Nn \__fp_error:nnnn { nnf, nff } \__msg_kernel_new:nnnn { kernel } { unknown-fpu-exception } { @@ -10861,7 +10802,42 @@ { Invalid~operation~ #1 (#2) } \__msg_kernel_new:nnn { kernel } { fp-invalid-ii } { Invalid~operation~ (#1) #3 (#2) } -%% File: l3fp-round.dtx Copyright(C) 2011-2012,2014-2016 The LaTeX3 Project +%% File: l3fp-round.dtx Copyright(C) 2011-2012,2014-2017 The LaTeX3 Project +\cs_new:Npn \__fp_parse_word_trunc:N + { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_zero:NNN } +\cs_new:Npn \__fp_parse_word_floor:N + { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_ninf:NNN } +\cs_new:Npn \__fp_parse_word_ceil:N + { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_pinf:NNN } +\cs_new:Npn \__fp_parse_word_round:N #1#2 + { + \if_meaning:w + #2 + \__fp_parse_round:Nw \__fp_round_to_pinf:NNN + \else: + \if_meaning:w 0 #2 + \__fp_parse_round:Nw \__fp_round_to_zero:NNN + \else: + \if_meaning:w - #2 + \__fp_parse_round:Nw \__fp_round_to_ninf:NNN + \fi: + \fi: + \fi: + \__fp_parse_function:NNN + \__fp_round_o:Nw \__fp_round_to_nearest:NNN #1 + #2 + } +\cs_new:Npn \__fp_parse_round:Nw + #1 #2 \__fp_round_to_nearest:NNN #3#4 { #2 #1 #3 } +\cs_new:Npn \__fp_parse_round_deprecation_error:Nw + #1 #2 \__fp_round_to_nearest:NNN #3#4 + { + \__fp_error:nnfn { fp-deprecated } { round#4() } + { + \str_case:nn {#2} + { { + } { ceil } { 0 } { trunc } { - } { floor } } + } { } + #2 #1 #3 + } \int_const:Nn \c__fp_five_int { 5 } \cs_new:Npn \__fp_round_return_one: { \exp_after:wN 1 \exp_after:wN \exp_stop_f: \exp:w } @@ -10987,14 +10963,14 @@ \or: \__fp_round:Nww #1 #2 \exp:w \else: \__fp_round:Nwww #1 #2 @ \exp:w \fi: - \exp_end_continue_f:w + \exp_after:wN \exp_end: } \cs_new:Npn \__fp_round_no_arg_o:Nw #1 { \cs_if_eq:NNTF #1 \__fp_round_to_nearest:NNN - { \__fp_error:nnnn { num-args } { round () } { 1 } { 3 } } + { \__fp_error:nnnn { fp-num-args } { round () } { 1 } { 3 } } { - \__fp_error:nffn { num-args } + \__fp_error:nffn { fp-num-args } { \__fp_round_name_from_cs:N #1 () } { 1 } { 2 } } \exp_after:wN \c_nan_fp @@ -11015,12 +10991,12 @@ #2 ; #3 ; } { - \__fp_error:nnnn { num-args } { round () } { 1 } { 3 } + \__fp_error:nnnn { fp-num-args } { round () } { 1 } { 3 } \exp_after:wN \c_nan_fp } } { - \__fp_error:nffn { num-args } + \__fp_error:nffn { fp-num-args } { \__fp_round_name_from_cs:N #1 () } { 1 } { 2 } \exp_after:wN \c_nan_fp } @@ -11211,22 +11187,23 @@ \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {#2} \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1 } -\group_begin: - \char_set_catcode_letter:N \@ - \cs_if_exist:NT \@unexpandable@protect - { - \cs_gset:cpn { __fp_exp_after_?_f:nw } #1#2 - { - \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1 - \str_if_eq:nnTF {#2} { \protect } - { - \cs_if_eq:NNTF #2 \@unexpandable@protect { \use_i:nn } { \use:n } - { \__msg_kernel_expandable_error:nnn { kernel } { fp-robust-cmd } } - } - { \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {#2} } - } - } -\group_end: +\cs_set_protected:Npn \__fp_tmp:w #1 + { + \cs_if_exist:NT #1 + { + \cs_gset:cpn { __fp_exp_after_?_f:nw } ##1##2 + { + \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w ##1 + \str_if_eq:nnTF {##2} { \protect } + { + \cs_if_eq:NNTF ##2 #1 { \use_i:nn } { \use:n } + { \__msg_kernel_expandable_error:nnn { kernel } { fp-robust-cmd } } + } + { \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {##2} } + } + } + } +\exp_args:Nc \__fp_tmp:w { @unexpandable@protect } \cs_new:Npn \__fp_parse_one_register:NN #1#2 { \exp_after:wN \__fp_parse_infix_after_operand:NwN @@ -11762,37 +11739,37 @@ \exp_after:wN \__fp_sanitize:wN \__int_value:w \__int_eval:w 0 \__fp_parse_strim_zeros:N } -\group_begin: - \char_set_catcode_letter:N ( - \char_set_catcode_letter:N ) - \cs_new:Npn \__fp_parse_prefix_(:Nw #1 - { - \exp_after:wN \__fp_parse_lparen_after:NwN - \exp_after:wN #1 - \exp:w - \if_int_compare:w #1 = \c__fp_prec_funcii_int - \__fp_parse_operand:Nw \c__fp_prec_comma_int - \else: - \__fp_parse_operand:Nw \c__fp_prec_paren_int - \fi: - \__fp_parse_expand:w - } - \cs_new:Npn \__fp_parse_lparen_after:NwN #1#2 @ #3 - { - \token_if_eq_meaning:NNTF #3 \__fp_parse_infix_):N - { - \__fp_exp_after_array_f:w #2 \s__fp_stop - \exp_after:wN \__fp_parse_infix:NN - \exp_after:wN #1 - \exp:w \__fp_parse_expand:w - } - { - \__msg_kernel_expandable_error:nnn - { kernel } { fp-missing } { ) } - #2 @ \use_none:n #3 - } - } -\group_end: +\cs_new:cpn { __fp_parse_prefix_(:Nw } #1 + { + \exp_after:wN \__fp_parse_lparen_after:NwN + \exp_after:wN #1 + \exp:w + \if_int_compare:w #1 = \c__fp_prec_funcii_int + \__fp_parse_operand:Nw \c__fp_prec_comma_int + \else: + \__fp_parse_operand:Nw \c__fp_prec_paren_int + \fi: + \__fp_parse_expand:w + } +\cs_new:Npx \__fp_parse_lparen_after:NwN #1#2 @ #3 + { + \exp_not:N \token_if_eq_meaning:NNTF #3 + \exp_not:c { __fp_parse_infix_):N } + { + \exp_not:N \__fp_exp_after_array_f:w #2 \s__fp_stop + \exp_not:N \exp_after:wN + \exp_not:N \__fp_parse_infix:NN + \exp_not:N \exp_after:wN #1 + \exp_not:N \exp:w + \exp_not:N \__fp_parse_expand:w + } + { + \exp_not:N \__msg_kernel_expandable_error:nnn + { kernel } { fp-missing } { ) } + #2 @ + \exp_not:N \use_none:n #3 + } + } \cs_new:cpn { __fp_parse_prefix_):Nw } #1 { \if_int_compare:w #1 = \c__fp_prec_comma_int @@ -11843,12 +11820,12 @@ \exp:w \exp_end_continue_f:w \__fp_parse_infix:NN } } -\cs_new:Npn \__fp_parse_unary_function:nNN #1#2#3 +\cs_new:Npn \__fp_parse_unary_function:NNN #1#2#3 { \exp_after:wN \__fp_parse_apply_unary:NNNwN \exp_after:wN #3 \exp_after:wN #2 - \cs:w __fp_#1_o:w \exp_after:wN \cs_end: + \exp_after:wN #1 \exp:w \__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w } @@ -11861,68 +11838,6 @@ \exp:w \__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_word_acot:N - { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_i:nn } -\cs_new:Npn \__fp_parse_word_acotd:N - { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_ii:nn } -\cs_new:Npn \__fp_parse_word_atan:N - { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_i:nn } -\cs_new:Npn \__fp_parse_word_atand:N - { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_ii:nn } -\cs_new:Npn \__fp_parse_word_max:N - { \__fp_parse_function:NNN \__fp_minmax_o:Nw 2 } -\cs_new:Npn \__fp_parse_word_min:N - { \__fp_parse_function:NNN \__fp_minmax_o:Nw 0 } -\cs_new:Npn \__fp_parse_word_rand:N - { \__fp_parse_function:NNN \__fp_rand_o:Nw ? } -\cs_new:Npn \__fp_parse_word_randint:N - { \__fp_parse_function:NNN \__fp_randint_o:Nw ? } -\cs_new:Npn \__fp_parse_word_abs:N - { \__fp_parse_unary_function:nNN { set_sign } 0 } -\cs_new:Npn \__fp_parse_word_exp:N - { \__fp_parse_unary_function:nNN {exp} ? } -\cs_new:Npn \__fp_parse_word_ln:N - { \__fp_parse_unary_function:nNN {ln} ? } -\cs_new:Npn \__fp_parse_word_sign:N - { \__fp_parse_unary_function:nNN {sign} ? } -\cs_new:Npn \__fp_parse_word_sqrt:N - { \__fp_parse_unary_function:nNN {sqrt} ? } -\tl_map_inline:nn - { - {acos} {acsc} {asec} {asin} - {cos} {cot} {csc} {sec} {sin} {tan} - } - { - \cs_new:cpn { __fp_parse_word_#1:N } - { \__fp_parse_unary_function:nNN {#1} \use_i:nn } - \cs_new:cpn { __fp_parse_word_#1d:N } - { \__fp_parse_unary_function:nNN {#1} \use_ii:nn } - } -\cs_new:Npn \__fp_parse_word_trunc:N - { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_zero:NNN } -\cs_new:Npn \__fp_parse_word_floor:N - { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_ninf:NNN } -\cs_new:Npn \__fp_parse_word_ceil:N - { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_pinf:NNN } -\cs_new:Npn \__fp_parse_word_round:N #1#2 - { - \if_meaning:w + #2 - \__fp_parse_round:Nw \__fp_round_to_pinf:NNN - \else: - \if_meaning:w 0 #2 - \__fp_parse_round:Nw \__fp_round_to_zero:NNN - \else: - \if_meaning:w - #2 - \__fp_parse_round:Nw \__fp_round_to_ninf:NNN - \fi: - \fi: - \fi: - \__fp_parse_function:NNN - \__fp_round_o:Nw \__fp_round_to_nearest:NNN #1 - #2 - } -\cs_new:Npn \__fp_parse_round:Nw - #1 #2 \__fp_round_to_nearest:NNN #3#4 { #2 #1 #3 } \cs_new:Npn \__fp_parse:n #1 { \exp:w @@ -11965,8 +11880,6 @@ \__fp_exp_after_f:nw { \__fp_parse_infix:NN #1 } #2; } -\group_begin: - \char_set_catcode_letter:N \* \cs_new:Npn \__fp_parse_infix:NN #1 #2 { \if_catcode:w \scan_stop: \exp_not:N #2 @@ -11997,111 +11910,118 @@ #1 #2 } - \cs_new:Npn \__fp_parse_infix_check:NNN #1#2#3 - { - \if_meaning:w \scan_stop: #1 - \__msg_kernel_expandable_error:nnn - { kernel } { fp-missing } { * } - \exp_after:wN \__fp_parse_infix_*:N - \exp_after:wN #2 - \exp_after:wN #3 - \else: - \exp_after:wN #1 - \exp_after:wN #2 - \exp:w \exp_after:wN \__fp_parse_expand:w - \fi: - } -\group_end: +\cs_new:Npx \__fp_parse_infix_check:NNN #1#2#3 + { + \exp_not:N \if_meaning:w \scan_stop: #1 + \exp_not:N \__msg_kernel_expandable_error:nnn + { kernel } { fp-missing } { * } + \exp_not:N \exp_after:wN + \exp_not:c { __fp_parse_infix_*:N } + \exp_not:N \exp_after:wN #2 + \exp_not:N \exp_after:wN #3 + \exp_not:N \else: + \exp_not:N \exp_after:wN #1 + \exp_not:N \exp_after:wN #2 + \exp_not:N \exp:w + \exp_not:N \exp_after:wN + \exp_not:N \__fp_parse_expand:w + \exp_not:N \fi: + } \cs_new:Npn \__fp_parse_infix_mark:NNN #1#2#3 { #3 #1 } \cs_new:Npn \__fp_parse_infix_end:N #1 { @ \use_none:n \__fp_parse_infix_end:N } -\group_begin: - \char_set_catcode_letter:N \) - \cs_new:Npn \__fp_parse_infix_):N #1 - { - \if_int_compare:w #1 < \c__fp_prec_paren_int - \__msg_kernel_expandable_error:nnn { kernel } { fp-extra } { ) } - \exp_after:wN \__fp_parse_infix:NN - \exp_after:wN #1 - \exp:w \exp_after:wN \__fp_parse_expand:w - \else: - \exp_after:wN @ - \exp_after:wN \use_none:n - \exp_after:wN \__fp_parse_infix_):N - \fi: - } -\group_end: -\group_begin: - \char_set_catcode_letter:N \, - \cs_new:Npn \__fp_parse_infix_,:N #1 - { - \if_int_compare:w #1 > \c__fp_prec_comma_int - \exp_after:wN @ - \exp_after:wN \use_none:n - \exp_after:wN \__fp_parse_infix_,:N - \else: - \if_int_compare:w #1 < \c__fp_prec_comma_int - \__fp_parse_infix_comma_error:w +\cs_set_protected:Npn \__fp_tmp:w #1 + { + \cs_new:Npn #1 ##1 + { + \if_int_compare:w ##1 < \c__fp_prec_paren_int + \__msg_kernel_expandable_error:nnn { kernel } { fp-extra } { ) } + \exp_after:wN \__fp_parse_infix:NN + \exp_after:wN ##1 + \exp:w \exp_after:wN \__fp_parse_expand:w + \else: + \exp_after:wN @ + \exp_after:wN \use_none:n + \exp_after:wN #1 \fi: - \exp_after:wN \__fp_parse_infix_comma:w - \exp:w \__fp_parse_operand:Nw \c__fp_prec_comma_int - \exp_after:wN \__fp_parse_expand:w - \fi: - } - \cs_new:Npn \__fp_parse_infix_comma:w #1 @ - { #1 @ \use_none:n } - \cs_new:Npn \__fp_parse_infix_comma_error:w #1 \exp:w - { - \fi: - \__msg_kernel_expandable_error:nn { kernel } { fp-extra-comma } - \exp_after:wN @ - \exp_after:wN \__fp_parse_apply_binary:NwNwN - \exp_after:wN , - \exp:w - } - \cs_new:Npn \__fp_,_o:ww #1 - { - \if_meaning:w \s__fp #1 - \exp_after:wN \__fp_use_i_until_s:nw - \exp_after:wN \__fp_,_o:ww - \fi: - \exp_after:wN \c_nan_fp - #1 - } -\group_end: -\group_begin: - \cs_set:Npn \+ { } - \char_set_catcode_other:N \& - \char_set_catcode_letter:N \^ - \char_set_catcode_letter:N \/ - \char_set_catcode_letter:N \- - \char_set_catcode_letter:N \+ - \cs_set_protected:Npn \__fp_tmp:w #1#2#3#4 - { - \cs_new:Npn #1 ##1 - { - \if_int_compare:w ##1 < #3 - \exp_after:wN @ - \exp_after:wN \__fp_parse_apply_binary:NwNwN - \exp_after:wN #2 - \exp:w - \__fp_parse_operand:Nw #4 - \exp_after:wN \__fp_parse_expand:w - \else: - \exp_after:wN @ - \exp_after:wN \use_none:n - \exp_after:wN #1 + } + } +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_):N } +\cs_set_protected:Npn \__fp_tmp:w #1 + { + \cs_new:Npn #1 ##1 + { + \if_int_compare:w ##1 > \c__fp_prec_comma_int + \exp_after:wN @ + \exp_after:wN \use_none:n + \exp_after:wN #1 + \else: + \if_int_compare:w ##1 < \c__fp_prec_comma_int + \__fp_parse_infix_comma_error:w \fi: - } - } - \__fp_tmp:w \__fp_parse_infix_^:N ^ \c__fp_prec_hatii_int \c__fp_prec_hat_int - \__fp_tmp:w \__fp_parse_infix_/:N / \c__fp_prec_times_int \c__fp_prec_times_int - \__fp_tmp:w \__fp_parse_infix_mul:N * \c__fp_prec_times_int \c__fp_prec_times_int - \__fp_tmp:w \__fp_parse_infix_-:N - \c__fp_prec_plus_int \c__fp_prec_plus_int - \__fp_tmp:w \__fp_parse_infix_+:N + \c__fp_prec_plus_int \c__fp_prec_plus_int - \__fp_tmp:w \__fp_parse_infix_and:N & \c__fp_prec_and_int \c__fp_prec_and_int - \__fp_tmp:w \__fp_parse_infix_or:N | \c__fp_prec_or_int \c__fp_prec_or_int -\group_end: + \exp_after:wN \__fp_parse_infix_comma:w + \exp:w \__fp_parse_operand:Nw \c__fp_prec_comma_int + \exp_after:wN \__fp_parse_expand:w + \fi: + } + } +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_,:N } +\cs_new:Npn \__fp_parse_infix_comma:w #1 @ + { #1 @ \use_none:n } +\cs_new:Npn \__fp_parse_infix_comma_error:w #1 \exp:w + { + \fi: + \__msg_kernel_expandable_error:nn { kernel } { fp-extra-comma } + \exp_after:wN @ + \exp_after:wN \__fp_parse_apply_binary:NwNwN + \exp_after:wN , + \exp:w + } +\cs_set_protected:Npn \__fp_tmp:w #1 + { + \cs_new:Npn #1 ##1 + { + \if_meaning:w \s__fp ##1 + \exp_after:wN \__fp_use_i_until_s:nw + \exp_after:wN #1 + \fi: + \exp_after:wN \c_nan_fp + ##1 + } + } +\exp_args:Nc \__fp_tmp:w { __fp_,_o:ww } +\cs_set_protected:Npn \__fp_tmp:w #1#2#3#4 + { + \cs_new:Npn #1 ##1 + { + \if_int_compare:w ##1 < #3 + \exp_after:wN @ + \exp_after:wN \__fp_parse_apply_binary:NwNwN + \exp_after:wN #2 + \exp:w + \__fp_parse_operand:Nw #4 + \exp_after:wN \__fp_parse_expand:w + \else: + \exp_after:wN @ + \exp_after:wN \use_none:n + \exp_after:wN #1 + \fi: + } + } +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_^:N } ^ + \c__fp_prec_hatii_int \c__fp_prec_hat_int +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_/:N } / + \c__fp_prec_times_int \c__fp_prec_times_int +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_mul:N } * + \c__fp_prec_times_int \c__fp_prec_times_int +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_-:N } - + \c__fp_prec_plus_int \c__fp_prec_plus_int +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_+:N } + + \c__fp_prec_plus_int \c__fp_prec_plus_int +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_and:N } & + \c__fp_prec_and_int \c__fp_prec_and_int +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_or:N } | + \c__fp_prec_or_int \c__fp_prec_or_int \cs_new:cpn { __fp_parse_infix_(:N } #1 { \__fp_parse_infix_juxtapose:N #1 ( } \cs_new:Npn \__fp_parse_infix_juxtapose:N #1 @@ -12122,88 +12042,71 @@ { \if_catcode:w ^ \tl_to_str:n { #3 #5 } ^ \else: - \__fp_error:nffn { invalid-ii } + \__fp_error:nffn { fp-invalid-ii } { \__fp_array_to_clist:n { #2; #3 } } { \__fp_array_to_clist:n { #4; #5 } } { } \fi: \__fp_parse_apply_binary:NwNwN #1 #2;@ * #4;@ } -\group_begin: - \char_set_catcode_letter:N ^ - \cs_new:cpn { __fp_parse_infix_*:N } #1#2 - { - \if:w * \exp_not:N #2 - \exp_after:wN \__fp_parse_infix_^:N - \exp_after:wN #1 - \else: - \exp_after:wN \__fp_parse_infix_mul:N - \exp_after:wN #1 - \exp_after:wN #2 - \fi: - } -\group_end: -\group_begin: - \char_set_catcode_letter:N \| - \char_set_catcode_letter:N \& - \cs_new:Npn \__fp_parse_infix_|:N #1#2 - { - \if:w | \exp_not:N #2 - \exp_after:wN \__fp_parse_infix_|:N - \exp_after:wN #1 - \exp:w \exp_after:wN \__fp_parse_expand:w - \else: - \exp_after:wN \__fp_parse_infix_or:N - \exp_after:wN #1 - \exp_after:wN #2 - \fi: - } - \cs_new:Npn \__fp_parse_infix_&:N #1#2 - { - \if:w & \exp_not:N #2 - \exp_after:wN \__fp_parse_infix_&:N - \exp_after:wN #1 - \exp:w \exp_after:wN \__fp_parse_expand:w - \else: - \exp_after:wN \__fp_parse_infix_and:N - \exp_after:wN #1 - \exp_after:wN #2 - \fi: - } -\group_end: -\group_begin: - \char_set_catcode_letter:N \? - \cs_new:Npn \__fp_parse_infix_?:N #1 - { - \if_int_compare:w #1 < \c__fp_prec_quest_int - \exp_after:wN @ - \exp_after:wN \__fp_ternary:NwwN - \exp:w - \__fp_parse_operand:Nw \c__fp_prec_quest_int - \exp_after:wN \__fp_parse_expand:w - \else: - \exp_after:wN @ - \exp_after:wN \use_none:n - \exp_after:wN \__fp_parse_infix_?:N - \fi: - } - \cs_new:Npn \__fp_parse_infix_::N #1 - { - \if_int_compare:w #1 < \c__fp_prec_quest_int - \__msg_kernel_expandable_error:nnnn - { kernel } { fp-missing } { ? } { ~for~?: } - \exp_after:wN @ - \exp_after:wN \__fp_ternary_auxii:NwwN - \exp:w - \__fp_parse_operand:Nw \c__fp_prec_colon_int - \exp_after:wN \__fp_parse_expand:w - \else: - \exp_after:wN @ - \exp_after:wN \use_none:n - \exp_after:wN \__fp_parse_infix_::N - \fi: - } -\group_end: +\cs_set_protected:Npn \__fp_tmp:w #1 + { + \cs_new:cpn { __fp_parse_infix_*:N } ##1##2 + { + \if:w * \exp_not:N ##2 + \exp_after:wN #1 + \exp_after:wN ##1 + \else: + \exp_after:wN \__fp_parse_infix_mul:N + \exp_after:wN ##1 + \exp_after:wN ##2 + \fi: + } + } +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_^:N } +\cs_set_protected:Npn \__fp_tmp:w #1#2#3 + { + \cs_new:Npn #1 ##1##2 + { + \if:w #2 \exp_not:N ##2 + \exp_after:wN #1 + \exp_after:wN ##1 + \exp:w \exp_after:wN \__fp_parse_expand:w + \else: + \exp_after:wN #3 + \exp_after:wN ##1 + \exp_after:wN ##2 + \fi: + } + } +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_|:N } | \__fp_parse_infix_or:N +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_&:N } & \__fp_parse_infix_and:N +\cs_set_protected:Npn \__fp_tmp:w #1#2#3#4 + { + \cs_new:Npn #1 ##1 + { + \if_int_compare:w ##1 < \c__fp_prec_quest_int + #4 + \exp_after:wN @ + \exp_after:wN #2 + \exp:w + \__fp_parse_operand:Nw #3 + \exp_after:wN \__fp_parse_expand:w + \else: + \exp_after:wN @ + \exp_after:wN \use_none:n + \exp_after:wN #1 + \fi: + } + } +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_?:N } + \__fp_ternary:NwwN \c__fp_prec_quest_int { } +\exp_args:Nc \__fp_tmp:w { __fp_parse_infix_::N } + \__fp_ternary_auxii:NwwN \c__fp_prec_colon_int + { + \__msg_kernel_expandable_error:nnnn + { kernel } { fp-missing } { ? } { ~for~?: } + } \cs_new:cpn { __fp_parse_infix_<:N } #1 { \__fp_parse_compare:NNNNNNN #1 1 0 0 0 0 < } \cs_new:cpn { __fp_parse_infix_=:N } #1 @@ -12239,11 +12142,7 @@ \cs_new:Npn \__fp_parse_compare_auxi:NNNNNNN #1#2#3#4#5#6#7 { \if_case:w - \if_catcode:w \scan_stop: \exp_not:N #7 - 4 \exp_stop_f: - \else: - \__int_eval:w `#7 - `< \__int_eval_end: - \fi: + \__int_eval:w \exp_after:wN ` \token_to_str:N #7 - `< \__int_eval_end: \__fp_parse_compare_auxii:NNNNN #2#2#4#5#6 \or: \__fp_parse_compare_auxii:NNNNN #2#3#2#5#6 \or: \__fp_parse_compare_auxii:NNNNN #2#3#4#2#6 @@ -12372,6 +12271,8 @@ \cs_new:Npn \__fp_function_store_end:wnnn #1 \s__fp_stop #2#3#4 { #4 {#2} } +\__msg_kernel_new:nnn { kernel } { fp-deprecated } + { '#1'~deprecated;~use~'#2' } \__msg_kernel_new:nnn { kernel } { unknown-fp-word } { Unknown~fp~word~#1. } \__msg_kernel_new:nnn { kernel } { fp-missing } @@ -12395,7 +12296,11 @@ \__msg_kernel_new:nnn { kernel } { fp-robust-cmd } { Robust~command~#1 invalid~in~fp~expression! } } -%% File: l3fp-logic.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project +%% File: l3fp-logic.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project +\cs_new:Npn \__fp_parse_word_max:N + { \__fp_parse_function:NNN \__fp_minmax_o:Nw 2 } +\cs_new:Npn \__fp_parse_word_min:N + { \__fp_parse_function:NNN \__fp_minmax_o:Nw 0 } \prg_new_eq_conditional:NNn \fp_if_exist:N \cs_if_exist:N { TF , T , F , p } \prg_new_eq_conditional:NNn \fp_if_exist:c \cs_if_exist:c { TF , T , F , p } \prg_new_conditional:Npnn \fp_compare:n #1 { p , T , F , TF } @@ -12551,7 +12456,7 @@ \token_if_eq_meaning:NNTF #2 0 { \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#6} } { - \__fp_error:nnfn { bad-step } { } + \__fp_error:nnfn { fp-bad-step } { } { \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 ; } } {#6} } \use_none:nnnnn @@ -12562,7 +12467,7 @@ { \fp_compare:nNnTF {#2} = {#3} { - \__fp_error:nffn { tiny-step } + \__fp_error:nffn { fp-tiny-step } { \fp_to_tl:n {#3} } { \fp_to_tl:n {#4} } {#6} } { @@ -12629,18 +12534,6 @@ { \fi: \fi: #2 } \cs_new:Npn \__fp_minmax_break_o:w #1 \fi: \fi: #2 \s__fp #3; #4; { \fi: \__fp_exp_after_o:w \s__fp #3; } -\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2; @ - { - \if_case:w #1 \exp_stop_f: - \__fp_case_return_same_o:w - \or: \exp_after:wN \__fp_sign_aux_o:w - \or: \exp_after:wN \__fp_sign_aux_o:w - \else: \__fp_case_return_same_o:w - \fi: - \s__fp \__fp_chk:w #1 #2; - } -\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 ; - { \__fp_exp_after_o:w \s__fp \__fp_chk:w 1#2{1}{1000}{0000}{0000}{0000}; } \cs_new:cpn { __fp_not_o:w } #1 \s__fp \__fp_chk:w #2#3; @ { \if_meaning:w 0 #2 @@ -12717,28 +12610,13 @@ \__fp_exp_after_array_f:w #3 \s__fp_stop #4 #1 } -%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project -\cs_new:Npn \__fp_basics_pack_low:NNNNNw #1 #2#3#4#5 #6; - { + #1 - 1 ; {#2#3#4#5} {#6} ; } -\cs_new:Npn \__fp_basics_pack_high:NNNNNw #1 #2#3#4#5 #6; - { - \if_meaning:w 2 #1 - \__fp_basics_pack_high_carry:w - \fi: - ; {#2#3#4#5} {#6} - } -\cs_new:Npn \__fp_basics_pack_high_carry:w \fi: ; #1 - { \fi: + 1 ; {1000} } -\cs_new:Npn \__fp_basics_pack_weird_low:NNNNw #1 #2#3#4 #5; - { - \if_meaning:w 2 #1 - + 1 - \fi: - \__int_eval_end: - #2#3#4; {#5} ; - } -\cs_new:Npn \__fp_basics_pack_weird_high:NNNNNNNNw - 1 #1#2#3#4 #5#6#7#8 #9; { ; {#1#2#3#4} {#5#6#7#8} {#9} } +%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project +\cs_new:Npn \__fp_parse_word_abs:N + { \__fp_parse_unary_function:NNN \__fp_set_sign_o:w 0 } +\cs_new:Npn \__fp_parse_word_sign:N + { \__fp_parse_unary_function:NNN \__fp_sign_o:w ? } +\cs_new:Npn \__fp_parse_word_sqrt:N + { \__fp_parse_unary_function:NNN \__fp_sqrt_o:w ? } \cs_new:cpx { __fp_-_o:ww } \s__fp { \exp_not:c { __fp_+_o:ww } @@ -12788,13 +12666,8 @@ \else: \__fp_case_use:nw { - \if_meaning:w #1 #4 - \exp_after:wN \__fp_invalid_operation_o:Nww - \exp_after:wN + - \else: - \exp_after:wN \__fp_invalid_operation_o:Nww - \exp_after:wN - - \fi: + \exp_last_unbraced:Nf \__fp_invalid_operation_o:Nww + { \token_if_eq_meaning:NNTF #1 #4 + - } } \fi: \s__fp \__fp_chk:w 2 #2 #3; @@ -13477,6 +13350,18 @@ \__int_value:w \__int_eval:w #6 + 19999 - #1 ; \exp_after:wN ; } +\cs_new:Npn \__fp_sign_o:w ? \s__fp \__fp_chk:w #1#2; @ + { + \if_case:w #1 \exp_stop_f: + \__fp_case_return_same_o:w + \or: \exp_after:wN \__fp_sign_aux_o:w + \or: \exp_after:wN \__fp_sign_aux_o:w + \else: \__fp_case_return_same_o:w + \fi: + \s__fp \__fp_chk:w #1 #2; + } +\cs_new:Npn \__fp_sign_aux_o:w \s__fp \__fp_chk:w #1 #2 #3 ; + { \exp_after:wN \__fp_set_sign_o:w \exp_after:wN #2 \c_one_fp @ } \cs_new:Npn \__fp_set_sign_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ { \exp_after:wN \__fp_exp_after_o:w @@ -13487,9 +13372,9 @@ \if_case:w #3 \exp_stop_f: #1 \or: 1 \or: 0 \fi: \exp_stop_f: #4; } -%% File: l3fp-extended.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project +%% File: l3fp-extended.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project \tl_const:Nn \c__fp_one_fixed_tl - { {10000} {0000} {0000} {0000} {0000} {0000} } + { {10000} {0000} {0000} {0000} {0000} {0000} ; } \cs_new:Npn \__fp_fixed_continue:wn #1; #2 { #2 #1; } \cs_new:Npn \__fp_fixed_add_one:wN #1#2; #3 { @@ -13854,22 +13739,22 @@ {15000}{0000}{0000}{0000}{0000}{0000}; \__fp_fixed_mul:wwn #1; } -\cs_new:Npn \__fp_ep_to_float:wwN #1, - { + \__int_eval:w #1 \__fp_fixed_to_float:wN } -\cs_new:Npn \__fp_ep_inv_to_float:wwN #1,#2; +\cs_new:Npn \__fp_ep_to_float_o:wwN #1, + { + \__int_eval:w #1 \__fp_fixed_to_float_o:wN } +\cs_new:Npn \__fp_ep_inv_to_float_o:wwN #1,#2; { \__fp_ep_div:wwwwn 1,{1000}{0000}{0000}{0000}{0000}{0000}; #1,#2; - \__fp_ep_to_float:wwN + \__fp_ep_to_float_o:wwN } -\cs_new:Npn \__fp_fixed_inv_to_float:wN - { \__fp_ep_inv_to_float:wwN 0, } -\cs_new:Npn \__fp_fixed_to_float_rad:wN #1; +\cs_new:Npn \__fp_fixed_inv_to_float_o:wN + { \__fp_ep_inv_to_float_o:wwN 0, } +\cs_new:Npn \__fp_fixed_to_float_rad_o:wN #1; { \__fp_fixed_mul:wwn #1; {5729}{5779}{5130}{8232}{0876}{7981}; - { \__fp_ep_to_float:wwN 2, } + { \__fp_ep_to_float_o:wwN 2, } } -\cs_new:Npn \__fp_fixed_to_float:Nw #1#2; { \__fp_fixed_to_float:wN #2; #1 } -\cs_new:Npn \__fp_fixed_to_float:wN #1#2#3#4#5#6; #7 +\cs_new:Npn \__fp_fixed_to_float_o:Nw #1#2; { \__fp_fixed_to_float_o:wN #2; #1 } +\cs_new:Npn \__fp_fixed_to_float_o:wN #1#2#3#4#5#6; #7 { + \__int_eval:w \c__fp_block_int % for the 8-digit-at-the-start thing. \exp_after:wN \exp_after:wN @@ -13925,15 +13810,19 @@ \__int_value:w \__int_eval:w 1 #3#4 + 1 ; } %% File: l3fp-expo.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project -\tl_const:Nn \c__fp_ln_i_fixed_tl { {0000}{0000}{0000}{0000}{0000}{0000} } -\tl_const:Nn \c__fp_ln_ii_fixed_tl { {6931}{4718}{0559}{9453}{0941}{7232} } -\tl_const:Nn \c__fp_ln_iii_fixed_tl {{10986}{1228}{8668}{1096}{9139}{5245} } -\tl_const:Nn \c__fp_ln_iv_fixed_tl {{13862}{9436}{1119}{8906}{1883}{4464} } -\tl_const:Nn \c__fp_ln_vi_fixed_tl {{17917}{5946}{9228}{0550}{0081}{2477} } -\tl_const:Nn \c__fp_ln_vii_fixed_tl {{19459}{1014}{9055}{3133}{0510}{5353} } -\tl_const:Nn \c__fp_ln_viii_fixed_tl{{20794}{4154}{1679}{8359}{2825}{1696} } -\tl_const:Nn \c__fp_ln_ix_fixed_tl {{21972}{2457}{7336}{2193}{8279}{0490} } -\tl_const:Nn \c__fp_ln_x_fixed_tl {{23025}{8509}{2994}{0456}{8401}{7991} } +\cs_new:Npn \__fp_parse_word_exp:N + { \__fp_parse_unary_function:NNN \__fp_exp_o:w ? } +\cs_new:Npn \__fp_parse_word_ln:N + { \__fp_parse_unary_function:NNN \__fp_ln_o:w ? } +\tl_const:Nn \c__fp_ln_i_fixed_tl { {0000}{0000}{0000}{0000}{0000}{0000};} +\tl_const:Nn \c__fp_ln_ii_fixed_tl { {6931}{4718}{0559}{9453}{0941}{7232};} +\tl_const:Nn \c__fp_ln_iii_fixed_tl {{10986}{1228}{8668}{1096}{9139}{5245};} +\tl_const:Nn \c__fp_ln_iv_fixed_tl {{13862}{9436}{1119}{8906}{1883}{4464};} +\tl_const:Nn \c__fp_ln_vi_fixed_tl {{17917}{5946}{9228}{0550}{0081}{2477};} +\tl_const:Nn \c__fp_ln_vii_fixed_tl {{19459}{1014}{9055}{3133}{0510}{5353};} +\tl_const:Nn \c__fp_ln_viii_fixed_tl{{20794}{4154}{1679}{8359}{2825}{1696};} +\tl_const:Nn \c__fp_ln_ix_fixed_tl {{21972}{2457}{7336}{2193}{8279}{0490};} +\tl_const:Nn \c__fp_ln_x_fixed_tl {{23025}{8509}{2994}{0456}{8401}{7991};} \cs_new:Npn \__fp_ln_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ { \if_meaning:w 2 #3 @@ -14097,7 +13986,7 @@ \if_int_compare:w #1 = 1 \exp_stop_f: \__fp_ln_Taylor_break:w \fi: - \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl ; #1; + \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1; \__fp_fixed_add:wwn #2; \__fp_fixed_mul:wwn #3; { @@ -14119,12 +14008,12 @@ \else: \exp_after:wN \exp_after:wN \exp_after:wN \__fp_fixed_add:wwn \fi: - #3 ; #2 ; + #3 #2 ; } \cs_new:Npn \__fp_ln_exponent:wn #1; #2 { \if_case:w #2 \exp_stop_f: - 0 \__fp_case_return:nw { \__fp_fixed_to_float:Nw 2 } + 0 \__fp_case_return:nw { \__fp_fixed_to_float_o:Nw 2 } \or: \exp_after:wN \__fp_ln_exponent_one:ww \__int_value:w \else: @@ -14143,25 +14032,25 @@ \cs_new:Npn \__fp_ln_exponent_one:ww 1; #1; { 0 - \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl ; #1; - \__fp_fixed_to_float:wN 0 + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_ln_x_fixed_tl #1; + \__fp_fixed_to_float_o:wN 0 } \cs_new:Npn \__fp_ln_exponent_small:NNww #1#2#3; #4#5#6#7#8#9; { 4 \exp_after:wN \__fp_fixed_mul:wwn - \c__fp_ln_x_fixed_tl ; + \c__fp_ln_x_fixed_tl {#3}{0000}{0000}{0000}{0000}{0000} ; #2 {0000}{#4}{#5}{#6}{#7}{#8}; - \__fp_fixed_to_float:wN #1 + \__fp_fixed_to_float_o:wN #1 } \cs_new:Npn \__fp_exp_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ { \if_case:w #2 \exp_stop_f: \__fp_case_return_o:Nw \c_one_fp \or: - \exp_after:wN \__fp_exp_normal:w + \exp_after:wN \__fp_exp_normal_o:w \or: \if_meaning:w 0 #3 \exp_after:wN \__fp_case_return_o:Nw @@ -14175,55 +14064,53 @@ \fi: \s__fp \__fp_chk:w #2#3#4; } -\cs_new:Npn \__fp_exp_normal:w \s__fp \__fp_chk:w 1#1 +\cs_new:Npn \__fp_exp_normal_o:w \s__fp \__fp_chk:w 1#1 { \if_meaning:w 0 #1 - \__fp_exp_pos:NNwnw + \__fp_fixed_to_float:wN + \__fp_exp_pos_o:NNwnw + \__fp_fixed_to_float_o:wN \else: - \__fp_exp_pos:NNwnw - \__fp_fixed_inv_to_float:wN + \__fp_exp_pos_o:NNwnw - \__fp_fixed_inv_to_float_o:wN \fi: } -\cs_new:Npn \__fp_exp_pos:NNwnw #1#2#3 \fi: #4#5; +\cs_new:Npn \__fp_exp_pos_o:NNwnw #1#2#3 \fi: #4#5; { \fi: - \exp_after:wN \__fp_sanitize:Nw - \exp_after:wN 0 - \__int_value:w #1 \__int_eval:w - \if_int_compare:w #4 < - \c__fp_half_prec_int - 1 - \exp_after:wN \__fp_add_big_i_o:wNww - \__int_value:w \__int_eval:w 1 - #4 ; - 0 {1000}{0000}{0000}{0000} ; #5; - \exp:w - \else: - \if_int_compare:w #4 > \c__fp_max_exp_exponent_int - \exp_after:wN \__fp_exp_overflow: - \exp:w + \if_int_compare:w #4 > \c__fp_max_exp_exponent_int + \token_if_eq_charcode:NNTF + #1 + { \__fp_exp_overflow:NN \__fp_overflow:w \c_inf_fp } + { \__fp_exp_overflow:NN \__fp_underflow:w \c_zero_fp } + \exp:w + \else: + \exp_after:wN \__fp_sanitize:Nw + \exp_after:wN 0 + \__int_value:w #1 \__int_eval:w + \if_int_compare:w #4 < 0 \exp_stop_f: + \exp_after:wN \use_i:nn \else: - \if_int_compare:w #4 < 0 \exp_stop_f: - \exp_after:wN \use_i:nn - \else: - \exp_after:wN \use_ii:nn - \fi: - { - 0 - \__fp_decimate:nNnnnn { - #4 } - \__fp_exp_Taylor:Nnnwn - } - { - \__fp_decimate:nNnnnn { \c__fp_prec_int - #4 } - \__fp_exp_pos_large:NnnNwn - } - #5 - {#4} - #1 #2 0 - \exp:w + \exp_after:wN \use_ii:nn \fi: - \fi: + { + 0 + \__fp_decimate:nNnnnn { - #4 } + \__fp_exp_Taylor:Nnnwn + } + { + \__fp_decimate:nNnnnn { \c__fp_prec_int - #4 } + \__fp_exp_pos_large:NnnNwn + } + #5 + {#4} + #1 #2 0 + \exp:w + \fi: \exp_after:wN \exp_end: } -\cs_new:Npn \__fp_exp_overflow: - { + 2 * \c__fp_max_exponent_int ; {1000} {0000} {0000} {0000} ; } +\cs_new:Npn \__fp_exp_overflow:NN #1#2 + { + \exp_after:wN \exp_after:wN + \exp_after:wN #1 + \exp_after:wN #2 + } \cs_new:Npn \__fp_exp_Taylor:Nnnwn #1#2#3 #4; #5 #6 { #6 @@ -14256,7 +14143,6 @@ \exp_after:wN \exp_after:wN \cs:w __fp_exp_large_ \__int_to_roman:w #6 :wN \exp_after:wN \cs_end: \exp_after:wN \c__fp_one_fixed_tl - \exp_after:wN ; \__int_value:w #3 #4 \exp_stop_f: #5 00000 ; } @@ -14379,7 +14265,7 @@ \fi: { \if_meaning:w 1 #1 - \exp_after:wN \__fp_pow_normal:ww + \exp_after:wN \__fp_pow_normal_o:ww \else: \exp_after:wN \__fp_pow_zero_or_inf:ww \fi: @@ -14411,7 +14297,7 @@ \fi: \s__fp \__fp_chk:w #3#4 } -\cs_new:Npn \__fp_pow_normal:ww +\cs_new:Npn \__fp_pow_normal_o:ww \s__fp \__fp_chk:w 1 #1#2#3; \s__fp \__fp_chk:w #4#5 { \if_int_compare:w \__str_if_eq_x:nn { #2 #3 } @@ -14423,7 +14309,7 @@ \fi: \if_case:w #4 \exp_stop_f: \or: - \exp_after:wN \__fp_pow_npos:Nww + \exp_after:wN \__fp_pow_npos_o:Nww \exp_after:wN #5 \or: \if_meaning:w 2 #5 \exp_after:wN \reverse_if:N \fi: @@ -14440,7 +14326,7 @@ \s__fp \__fp_chk:w 1 #1 {#2} #3 ; \s__fp \__fp_chk:w #4 #5 } -\cs_new:Npn \__fp_pow_npos:Nww #1 \s__fp \__fp_chk:w 1#2#3 +\cs_new:Npn \__fp_pow_npos_o:Nww #1 \s__fp \__fp_chk:w 1#2#3 { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN 0 @@ -14448,11 +14334,11 @@ \if:w #1 \if_int_compare:w #3 > 0 \exp_stop_f: 0 \else: 2 \fi: \exp_after:wN \__fp_pow_npos_aux:NNnww \exp_after:wN + - \exp_after:wN \__fp_fixed_to_float:wN + \exp_after:wN \__fp_fixed_to_float_o:wN \else: \exp_after:wN \__fp_pow_npos_aux:NNnww \exp_after:wN - - \exp_after:wN \__fp_fixed_inv_to_float:wN + \exp_after:wN \__fp_fixed_inv_to_float_o:wN \fi: {#3} } @@ -14464,7 +14350,7 @@ \__fp_pow_exponent:wnN {#3} \__fp_fixed_mul:wwn #8 {0000}{0000} ; \__fp_pow_B:wwN #7; - #1 #2 0 % fixed_to_float:wN + #1 #2 0 % fixed_to_float_o:wN } \cs_new:Npn \__fp_pow_exponent:wnN #1; #2 { @@ -14516,7 +14402,7 @@ \cs_new:Npn \__fp_pow_C_overflow:w #1; #2; #3 { + 2 * \c__fp_max_exponent_int - \exp_after:wN \__fp_fixed_continue:wn \c__fp_one_fixed_tl ; + \exp_after:wN \__fp_fixed_continue:wn \c__fp_one_fixed_tl } \cs_new:Npn \__fp_pow_C_neg:w #1 ; 1 { @@ -14540,7 +14426,7 @@ \fi: } \cs_new:Npn \__fp_pow_C_pack:w - { \exp_after:wN \__fp_exp_large_v:wN \c__fp_one_fixed_tl ; } + { \exp_after:wN \__fp_exp_large_v:wN \c__fp_one_fixed_tl } \cs_new:Npn \__fp_pow_neg:www \s__fp \__fp_chk:w #1#2; #3; #4; { \if_case:w \__fp_pow_neg_case:w #4 ; @@ -14596,7 +14482,34 @@ \fi: \fi: } -%% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016 The LaTeX3 Project +%% File: l3fp-trig.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project +\tl_map_inline:nn + { + {acos} {acsc} {asec} {asin} + {cos} {cot} {csc} {sec} {sin} {tan} + } + { + \cs_new:cpx { __fp_parse_word_#1:N } + { + \exp_not:N \__fp_parse_unary_function:NNN + \exp_not:c { __fp_#1_o:w } + \exp_not:N \use_i:nn + } + \cs_new:cpx { __fp_parse_word_#1d:N } + { + \exp_not:N \__fp_parse_unary_function:NNN + \exp_not:c { __fp_#1_o:w } + \exp_not:N \use_ii:nn + } + } +\cs_new:Npn \__fp_parse_word_acot:N + { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_i:nn } +\cs_new:Npn \__fp_parse_word_acotd:N + { \__fp_parse_function:NNN \__fp_acot_o:Nw \use_ii:nn } +\cs_new:Npn \__fp_parse_word_atan:N + { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_i:nn } +\cs_new:Npn \__fp_parse_word_atand:N + { \__fp_parse_function:NNN \__fp_atan_o:Nw \use_ii:nn } \cs_new:Npn \__fp_sin_o:w #1 \s__fp \__fp_chk:w #2#3#4; @ { \if_case:w #2 \exp_stop_f: @@ -14604,7 +14517,7 @@ \or: \__fp_case_use:nw { \__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww - \__fp_ep_to_float:wwN #3 0 + \__fp_ep_to_float_o:wwN #3 0 } \or: \__fp_case_use:nw { \__fp_invalid_operation_o:fw { #1 { sin } { sind } } } @@ -14619,7 +14532,7 @@ \or: \__fp_case_use:nw { \__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww - \__fp_ep_to_float:wwN 0 2 + \__fp_ep_to_float_o:wwN 0 2 } \or: \__fp_case_use:nw { \__fp_invalid_operation_o:fw { #1 { cos } { cosd } } } @@ -14634,7 +14547,7 @@ \or: \__fp_case_use:nw { \__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww - \__fp_ep_inv_to_float:wwN #3 0 + \__fp_ep_inv_to_float_o:wwN #3 0 } \or: \__fp_case_use:nw { \__fp_invalid_operation_o:fw { #1 { csc } { cscd } } } @@ -14649,7 +14562,7 @@ \or: \__fp_case_use:nw { \__fp_trig:NNNNNwn #1 \__fp_sin_series_o:NNwwww - \__fp_ep_inv_to_float:wwN 0 2 + \__fp_ep_inv_to_float_o:wwN 0 2 } \or: \__fp_case_use:nw { \__fp_invalid_operation_o:fw { #1 { sec } { secd } } } @@ -15098,7 +15011,7 @@ { \exp_after:wN \__fp_sanitize:Nw \exp_after:wN #1 - \__int_value:w \__int_eval:w \__fp_ep_to_float:wwN + \__int_value:w \__int_eval:w \__fp_ep_to_float_o:wwN } #1 } @@ -15154,7 +15067,7 @@ \exp_after:wN #2 \__int_value:w \__int_eval:w \if_meaning:w 2 #5 7 - \fi: #3 \exp_after:wN ; - \c__fp_one_fixed_tl ; + \c__fp_one_fixed_tl {0000}{0000}{0000}{0000}{0000}{0000}; 0,{0000}{0000}{0000}{0000}{0000}{0000}; #1 } @@ -15220,7 +15133,7 @@ \if_int_compare:w #1 = -1 \exp_stop_f: \__fp_atan_Taylor_break:w \fi: - \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl ; #1; + \exp_after:wN \__fp_fixed_div_int:wwN \c__fp_one_fixed_tl #1; \__fp_rrot:www \__fp_fixed_mul_sub_back:wwwn #2; #3; { \exp_after:wN \__fp_atan_Taylor_loop:www @@ -15249,7 +15162,7 @@ \__int_value:w \__int_eval:w #2 / 2 ; #2; } } - { #7 \__fp_fixed_to_float:wN \__fp_fixed_to_float_rad:wN } + { #7 \__fp_fixed_to_float_o:wN \__fp_fixed_to_float_rad_o:wN } #1 } \cs_new:Npn \__fp_atan_combine_aux:ww #1; #2; @@ -15325,7 +15238,7 @@ } \cs_new:Npn \__fp_asin_isqrt:wn #1; { - \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl ; #1; + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl #1; { \__fp_fixed_add_one:wN #1; \__fp_fixed_continue:wn { \__fp_ep_mul:wwwwn 0, } 0, @@ -15375,7 +15288,7 @@ { \__fp_asin_auxi_o:NnNww #1 {#3} #4 } } } -%% File: l3fp-convert.dtx Copyright(C) 2011-2014,2016 The LaTeX3 Project +%% File: l3fp-convert.dtx Copyright(C) 2011-2014,2016,2017 The LaTeX3 Project \cs_new:Npn \__fp_trim_zeros:w #1 ; { \__fp_trim_zeros_loop:w #1 @@ -15401,18 +15314,15 @@ \or: \__fp_case_use:nw { - \exp_args:Nf \__fp_invalid_operation:nnw - { - \__fp_expand:n - { { 1.000000000000000e } \int_use:N \c__fp_max_exponent_int } - } + \__fp_invalid_operation:nnw + { \fp_to_scientific:N \c__fp_overflowing_fp } { fp_to_scientific } } \or: \__fp_case_use:nw { \__fp_invalid_operation:nnw - { 0.000000000000000e0 } + { \fp_to_scientific:N \c_zero_fp } { fp_to_scientific } } \fi: @@ -15446,10 +15356,7 @@ \__fp_case_use:nw { \__fp_invalid_operation:nnw - { - \exp_after:wN \exp_after:wN \exp_after:wN 1 - \prg_replicate:nn \c__fp_max_exponent_int 0 - } + { \fp_to_decimal:N \c__fp_overflowing_fp } { fp_to_decimal } } \or: @@ -15618,7 +15525,11 @@ } \exp_not:N \__fp_array_to_clist_loop:Nw } -%% File: l3fp-random.dtx Copyright (C) 2016 The LaTeX3 Project +%% File: l3fp-random.dtx Copyright (C) 2016,2017 The LaTeX3 Project +\cs_new:Npn \__fp_parse_word_rand:N + { \__fp_parse_function:NNN \__fp_rand_o:Nw ? } +\cs_new:Npn \__fp_parse_word_randint:N + { \__fp_parse_function:NNN \__fp_randint_o:Nw ? } \cs_if_exist:NF \pdftex_uniformdeviate:D { \__msg_kernel_new:nnn { kernel } { fp-no-random } @@ -15835,8 +15746,6 @@ \fp_new:N \g_tmpa_fp \fp_new:N \g_tmpb_fp %% File l3sort.dtx (C) Copyright 2012,2014-2017 The LaTeX3 Project -\GetIdInfo$Id: l3sort.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Sorting functions} \int_new:N \l__sort_length_int \int_new:N \l__sort_min_int \int_new:N \l__sort_top_int @@ -16249,9 +16158,7 @@ \cs_gset_eq:NN \sort_reversed: \sort_return_swapped: \sort_return_swapped: } -%% File: l3box.dtx Copyright (C) 2005-2016 The LaTeX3 Project -\GetIdInfo$Id: l3box.dtx 6943 2017-02-17 16:47:59Z bruno $ - {L3 Experimental boxes} +%% File: l3box.dtx Copyright (C) 2005-2017 The LaTeX3 Project \cs_new_protected:Npn \box_new:N #1 { \__chk_if_free_cs:N #1 @@ -16457,8 +16364,6 @@ \cs_new_protected:Npn \vbox_set_split_to_ht:NNn #1#2#3 { \tex_setbox:D #1 \tex_vsplit:D #2 to \__dim_eval:w #3 \__dim_eval_end: } %% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project -\GetIdInfo$Id: l3coffins.dtx 6906 2017-02-12 20:07:58Z bruno $ - {L3 Coffin code layer} \box_new:N \l__coffin_internal_box \dim_new:N \l__coffin_internal_dim \tl_new:N \l__coffin_internal_tl @@ -17264,9 +17169,7 @@ > ~ wd~=~#4 \\ Poles~of~coffin~#1 : } -%% File: l3color.dtx Copyright(C) 2011,2012,2014,2016 The LaTeX3 Project -\GetIdInfo$Id: l3color.dtx 6805 2016-12-28 22:15:52Z joseph $ - {L3 Experimental color support} +%% File: l3color.dtx Copyright(C) 2011,2012,2014,2016,2017 The LaTeX3 Project \cs_new_eq:NN \color_group_begin: \group_begin: \cs_new_protected:Npn \color_group_end: { @@ -17290,8 +17193,6 @@ } } %% File: l3sys.dtx Copyright (C) 2015-2017 The LaTeX3 Project -\GetIdInfo$Id: l3sys.dtx 6976 2017-02-22 16:49:53Z stonezeng $ - {L3 Experimental system/runtime functions} \str_const:Nx \c_sys_jobname_str { \tex_jobname:D } \int_const:Nn \c_sys_minute_int { \int_mod:nn { \tex_time:D } { 60 } } @@ -17378,8 +17279,6 @@ \str_const:Nn \c_sys_output_str { dvi } } %% File: l3deprecation.dtx (C) Copyright 2017 The LaTeX3 Project -\GetIdInfo$Id: l3deprecation.dtx 6966 2017-02-20 03:39:43Z bruno $ - {L3 Deprecation errors} \cs_new_protected:Npn \__deprecation_error:Nnn #1#2#3 { \etex_protected:D \tex_outer:D \tex_edef:D #1 @@ -17431,11 +17330,10 @@ \__deprecation_error:Nnn \c_minus_one { - 1 } { 2018-12-31 } \__deprecation_error:Nnn \sort_ordered: { \sort_return_same: } { 2018-12-31 } \__deprecation_error:Nnn \sort_reversed: { \sort_return_swapped: } { 2018-12-31 } + \cs_set_eq:NN \__fp_parse_round:Nw \__fp_parse_round_deprecation_error:Nw \cs_set_eq:NN \deprecation_error: \scan_stop: } %% File: l3candidates.dtx Copyright (C) 2012-2017 The LaTeX3 Project -\GetIdInfo$Id: l3candidates.dtx 6967 2017-02-20 14:51:30Z bruno $ - {L3 Experimental additions to l3kernel} \fp_new:N \l__box_angle_fp \fp_new:N \l__box_cos_fp \fp_new:N \l__box_sin_fp @@ -19524,8 +19422,6 @@ \cs_new_protected:Npn \peek_N_type:F { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: } %% File: l3luatex.dtx Copyright (C) 2010-2017 The LaTeX3 Project -\GetIdInfo$Id: l3luatex.dtx 6953 2017-02-18 19:07:54Z joseph $ - {L3 Experimental LuaTeX-specific functions} \cs_new:Npn \lua_now_x:n #1 { \luatex_directlua:D {#1} } \cs_new:Npn \lua_now:n #1 { \lua_now_x:n { \exp_not:n {#1} } } \cs_new_protected:Npn \lua_shipout_x:n #1 { \luatex_latelua:D {#1} } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index f6a01c367e5..4a963470869 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,10 +19,8 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileName{expl3}% -\def\ExplFileDescription{L3 programming layer}% -\def\ExplFileDate{2017/03/11}% -\def\ExplFileVersion{6988}% +\def\ExplFileDate{2017/03/18}% +\def\ExplFileVersion{7019}% \let\ExplLoaderFileVersion\ExplFileVersion \begingroup \def\tempa{LaTeX2e}% @@ -37,22 +35,22 @@ \expandafter\endgroup \next \begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname ver@\ExplFileName -generic.tex\endcsname\relax +\expandafter\ifx\csname ver@expl3-generic.tex\endcsname\relax \else \immediate\write-1 {% - Package \ExplFileName\space Info: The package is already loaded.% + Package expl3 Info: The package is already loaded.% }% \expandafter\endinput \fi \immediate\write-1 {% - Package: \ExplFileName\space + Package: expl3 \ExplFileDate\space v\ExplFileVersion\space - \ExplFileDescription\space (loader)% + L3 programming layer (loader)% }% -\expandafter\edef\csname ver@\ExplFileName -generic.tex\endcsname - {\ExplFileDate\space v\ExplFileVersion\space \ExplFileDescription}% +\expandafter\edef\csname ver@expl3-generic.tex\endcsname + {\ExplFileDate\space v\ExplFileVersion\space L3 programming layer}% \expandafter\edef\csname l@expl@tidy@tl\endcsname {% \catcode64=\the\catcode64\relax diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index a17198feaa2..f5e9fc4e40f 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,15 +19,13 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileName{expl3}% -\def\ExplFileDescription{L3 programming layer}% -\def\ExplFileDate{2017/03/11}% -\def\ExplFileVersion{6988}% +\def\ExplFileDate{2017/03/18}% +\def\ExplFileVersion{7019}% \let\ExplLoaderFileVersion\ExplFileVersion -\ProvidesPackage{\ExplFileName} +\ProvidesPackage{expl3} [% \ExplFileDate\space v\ExplFileVersion\space - \ExplFileDescription\space (loader) + L3 programming layer (loader) ]% \newcommand\expl@create@bool@option[2]% {% @@ -73,7 +71,6 @@ \expandafter\ifx\csname tex\string _let:D\endcsname\relax \expandafter\endinput \fi -\protected\def\GetIdInfoLog{} \AtBeginDocument { \cs_if_exist:NF \color diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty index 8d22345ea4e..d8acdbed580 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3basics} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty index e9dc07fa3ed..8555b517dc8 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3bootstrap} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty index 1c4210422ca..7fd4c58fba7 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3box} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty index 14fcf8058e1..f6d6c1ba1e5 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3candidates} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty index dd9d31d8f8b..91f96a31976 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3clist} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty index d21f7355a24..30f183f5d0e 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3coffins} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3color.sty b/Master/texmf-dist/tex/latex/l3kernel/l3color.sty index 05f2b8ddf78..170fcb5324a 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3color.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3color} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 7a7d0125084..3f34f8a113f 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -18,20 +18,16 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File: l3doc.dtx Copyright (C) 1990-2016 The LaTeX3 project -\let \filenameOld \ExplFileName +%% File: l3doc.dtx Copyright (C) 1990-2017 The LaTeX3 project \let \filedateOld \ExplFileDate \let \fileversionOld \ExplFileVersion -\let \filedescriptionOld \ExplFileDescription \RequirePackage{expl3,xparse,calc} -\GetIdInfo$Id: l3doc.dtx 6943 2017-02-17 16:47:59Z bruno $ - {L3 Experimental documentation class} -\ProvidesExplClass - {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} -\let \ExplFileName \filenameOld +\def\ExplFileDate{2017/03/18} +\def\ExplFileVersion{7019} +\ProvidesExplClass{l3doc}{\ExplFileDate}{\ExplFileVersion} + {L3 Experimental documentation class} \let \ExplFileDate \filedateOld \let \ExplFileVersion \fileversionOld -\let \ExplFileDescription \filedescriptionOld \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq \seq_new:N \g_doc_macros_seq diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex index 3970ba6d68d..c357fd7c80a 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/l3docstrip.tex @@ -18,10 +18,9 @@ %% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% -%% File l3dosctrip.dtx Copyright (C) 2012,2016 The LaTeX3 Project -\def\ExplFileDate{2012/06/08} -\def\ExplFileName{l3docstrip} -\def\ExplFileVersion{3787} +%% File l3dosctrip.dtx Copyright (C) 2012,2016,2017 The LaTeX3 Project +\def\ExplFileDate{2017/03/18} +\def\ExplFileVersion{7019} \input docstrip % \def\checkOption<#1{% \ifcase diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index 6a5afa728e8..671b5a044d2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -19,8 +19,8 @@ %% and all files in that bundle must be distributed together. %% %% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project -\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $ - {L3 Experimental drivers} +\def\ExplFileDate{2017/03/18} +\def\ExplFileVersion{7019} \ProvidesExplFile {l3dvidpfmx.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: dvipdfmx} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def index fb26087e4ba..690e0f23169 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def @@ -19,8 +19,8 @@ %% and all files in that bundle must be distributed together. %% %% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project -\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $ - {L3 Experimental drivers} +\def\ExplFileDate{2017/03/18} +\def\ExplFileVersion{7019} \ProvidesExplFile {l3dvips.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: dvips} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def index d5379bf5d97..12784d943c1 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def @@ -19,8 +19,8 @@ %% and all files in that bundle must be distributed together. %% %% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project -\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $ - {L3 Experimental drivers} +\def\ExplFileDate{2017/03/18} +\def\ExplFileVersion{7019} \ProvidesExplFile {l3dvisvgm.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: dvisvgm} @@ -145,7 +145,7 @@ \l__driver_draw_scope_int \g__driver_draw_scope_int \group_begin: - \int_gset:Nn \g__driver_draw_scope_int { 0 } + \int_gzero:N \g__driver_draw_scope_int } \cs_new_protected:Npn \__driver_draw_scope_end: { diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty index 455ec98d0ab..40b9a4ce3e2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3expan} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty index eb76909636c..c0be015254c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3file} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty index 1ac705c5c59..ef82a4fb713 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3fp} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty index 3529066aa8a..10eb3bcc2f9 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3int} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty index ea33c518740..43011e63129 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3keys} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty index 87644efb700..29aaa04fa60 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3msg} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty index b5c22bc8cc5..db14da323a5 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3names} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def index d2a281110ad..f21db61784d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -19,8 +19,8 @@ %% and all files in that bundle must be distributed together. %% %% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project -\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $ - {L3 Experimental drivers} +\def\ExplFileDate{2017/03/18} +\def\ExplFileVersion{7019} \ProvidesExplFile {l3pdfmode.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: PDF mode} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty index 36a7a09c787..3b981245675 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3prg} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty index 25633620189..dda20c8bc8b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3prop} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty b/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty index f668e406861..c762c1376ca 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3quark} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty index a3435add4a2..84de19a58cf 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3seq} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty index e214622b9bf..857f24cbfc1 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3skip} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty b/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty index 45b856aa623..15695d28116 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3sort.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3sort} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str.sty b/Master/texmf-dist/tex/latex/l3kernel/l3str.sty index a55118cf9de..8a9eddb49e0 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3str.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3str.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3str} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty index ef759c91bfc..9d888a679cc 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3tl} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty index 53a0c877062..5621182916a 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3oldmodules.dtx Copyright (C) 2014,2016,2017 The LaTeX3 Project -\def\ExplFileDate{2017/03/11} +\def\ExplFileDate{2017/03/18} \def\old@liii@module@name {l3token} \ProvidesPackage\old@liii@module@name diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def index 0e754eee695..63796a63121 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def @@ -19,8 +19,8 @@ %% and all files in that bundle must be distributed together. %% %% File: l3drivers.dtx Copyright(C) 2011-2017 The LaTeX3 Project -\GetIdInfo$Id: l3drivers.dtx 6954 2017-02-18 20:26:11Z joseph $ - {L3 Experimental drivers} +\def\ExplFileDate{2017/03/18} +\def\ExplFileVersion{7019} \ProvidesExplFile {l3xdvidpfmx.def}{\ExplFileDate}{\ExplFileVersion} {L3 Experimental driver: xdvipdfmx} |