diff options
author | Karl Berry <karl@freefriends.org> | 2018-05-13 21:56:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-05-13 21:56:47 +0000 |
commit | e6d38f40f0132914020c723840be3489c4b692f0 (patch) | |
tree | dac2c281e93cba461b3ff2c1e4b8e34aad401716 /Master/texmf-dist/tex/latex | |
parent | 55be422dc01e60cfae781a9a4a310a96c9e99256 (diff) |
l3 (13may18)
git-svn-id: svn://tug.org/texlive/trunk@47705 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
20 files changed, 2424 insertions, 1073 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty index f7dbbcc9d9c..2c6a256c808 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty @@ -20,7 +20,7 @@ %% %% File: l3color.dtx Copyright(C) 2017-2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3color}{2018-04-30}{} +\ProvidesExplPackage{l3color}{2018-05-12}{} {L3 Experimental color support} \tl_new:N \l__color_tmp_tl \prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index f991619ccc9..a10b21221ac 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -27,7 +27,7 @@ %% %% File: l3draw.dtx Copyright(C) 2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2018-04-30}{} +\ProvidesExplPackage{l3draw}{2018-05-12}{} {L3 Experimental core drawing support} \RequirePackage { l3color } %% File: l3draw-boxes.dtx Copyright(C) 2018 The LaTeX3 Project diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty index e2a1f762f08..e56a46d4da1 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty @@ -20,7 +20,7 @@ %% %% File: l3str-convert.dtx Copyright (C) 2013-2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3str-convert}{2018-04-30}{} +\ProvidesExplPackage{l3str-convert}{2018-05-12}{} {L3 Experimental string encoding conversions} \cs_if_exist:NF \use_ii_i:nn { \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty index d23bafdc9a2..ddb42af9343 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -20,7 +20,7 @@ %% %% File: l3str-format.dtx Copyright (C) 2012-2018 The LaTeX3 Project \RequirePackage{expl3} -\ProvidesExplPackage{l3str-format}{2018-04-30}{} +\ProvidesExplPackage{l3str-format}{2018-05-12}{} {L3 Experimental string formatting} \cs_generate_variant:Nn \use:nn { nf } \cs_generate_variant:Nn \use:nnn { fnf } diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty index 55155b60800..7dc752d1b07 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty @@ -20,7 +20,7 @@ %% %% File: xcoffins.dtx Copyright(C) 2010-2012,2014,2016-2018 The LaTeX3 Project \RequirePackage{xparse} -\ProvidesExplPackage{xcoffins}{2018-04-30}{} +\ProvidesExplPackage{xcoffins}{2018-05-12}{} {L3 Experimental design level coffins} \keys_define:nn { coffin } { diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty index 5b7b539bd92..8842c475e02 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -33,7 +33,7 @@ }% \endinput } -\ProvidesExplPackage{l3galley}{2018-04-30}{} +\ProvidesExplPackage{l3galley}{2018-05-12}{} {L3 Experimental galley code} \int_new:N \l__galley_tmp_int \seq_new:N \g__galley_tmpa_seq @@ -87,7 +87,7 @@ \int_new:N \l__galley_group_level_int \cs_new_protected:Npn \__galley_initialise_variables: { - \int_set:Nn \l__galley_group_level_int { \etex_currentgrouplevel:D } + \int_set:Nn \l__galley_group_level_int { \tex_currentgrouplevel:D } \bool_gset_true:N \g__galley_begin_level_bool \bool_gset_false:N \g__galley_cutout_active_bool \seq_gclear:N \g__galley_cutout_left_seq @@ -263,7 +263,7 @@ } \__galley_parshape_set: } - \int_compare:nNnT \l__galley_group_level_int = \etex_currentgrouplevel:D + \int_compare:nNnT \l__galley_group_level_int = \tex_currentgrouplevel:D { \bool_lazy_and:nnT { \seq_if_empty_p:N \g__galley_cutout_left_seq } @@ -664,8 +664,8 @@ { \galley_vspace_set_single:n {#1} } { \dim_compare:nNnT - { \etex_glueexpr:D \g__galley_interpar_vspace_user_tl } - < { \etex_glueexpr:D (#1) \scan_stop: } + { \tex_glueexpr:D \g__galley_interpar_vspace_user_tl } + < { \tex_glueexpr:D (#1) \scan_stop: } { \galley_vspace_set_single:n {#1} } } } @@ -677,7 +677,7 @@ \dim_new:N \l_galley_par_begin_skip \cs_new_eq:NN \l_galley_par_end_skip \tex_parfillskip:D \cs_new_eq:NN \l_galley_par_indent_dim \tex_parindent:D -\cs_new_eq:NN \l_galley_last_line_fit_int \etex_lastlinefit:D +\cs_new_eq:NN \l_galley_last_line_fit_int \tex_lastlinefit:D \cs_new_protected:Npn \galley_interword_spacing_set:N #1 { \bool_if:NTF #1 @@ -727,7 +727,7 @@ \clist_new:N \l_galley_line_penalties_clist \cs_new_protected:Npn \galley_display_widow_penalties_set:n #1 { - \etex_displaywidowpenalties:D + \tex_displaywidowpenalties:D \int_eval:n { \clist_count:n {#1} + 1 } \exp_stop_f: \clist_map_function:nN {#1} \__galley_set_aux:n 0 \exp_stop_f: @@ -735,7 +735,7 @@ \cs_generate_variant:Nn \galley_display_widow_penalties_set:n { V , v } \cs_new_protected:Npn \galley_widow_penalties_set:n #1 { - \etex_widowpenalties:D + \tex_widowpenalties:D \int_eval:n { \clist_count:n {#1} + 1 } \exp_stop_f: \clist_map_function:nN {#1} \__galley_set_aux:n 0 \exp_stop_f: @@ -756,7 +756,7 @@ \cs_generate_variant:Nn \galley_interline_penalties_set:n { V , v } \cs_new_protected:Npn \galley_display_club_penalties_set:n #1 { - \etex_clubpenalties:D + \tex_clubpenalties:D \int_eval:n { \clist_count:n {#1} + 1 } \exp_stop_f: \clist_map_function:nN {#1} \__galley_set_aux:n 0 \exp_stop_f: @@ -765,9 +765,9 @@ \cs_generate_variant:Nn \galley_display_club_penalties_set:n { V , v } \cs_new_protected:Npn \galley_interline_penalty_set:n #1 { - \int_compare:nNnTF { \etex_interlinepenalties:D 0 } = 0 + \int_compare:nNnTF { \tex_interlinepenalties:D 0 } = 0 { - \etex_interlinepenalties:D 1 = \int_eval:n {#1} \exp_stop_f: + \tex_interlinepenalties:D 1 = \int_eval:n {#1} \exp_stop_f: \__galley_calc_interline_penalties: } { @@ -775,8 +775,8 @@ { \int_eval:n { - \etex_interlinepenalties:D ##1 - - \etex_interlinepenalties:D \etex_interlinepenalties:D 0 + \tex_interlinepenalties:D ##1 + - \tex_interlinepenalties:D \tex_interlinepenalties:D 0 + #1 } \exp_stop_f: @@ -787,16 +787,16 @@ } \cs_new_protected:Npn \__galley_set_interline_penalty:nn #1#2 { - \etex_interlinepenalties:D - \etex_interlinepenalties:D 0 \exp_stop_f: + \tex_interlinepenalties:D + \tex_interlinepenalties:D 0 \exp_stop_f: \int_step_function:nN {#1} \__galley_set_interline_penalty_auxi:n - \int_step_function:nnN { #1 + 1 } { \etex_interlinepenalties:D 0 - 1 } + \int_step_function:nnN { #1 + 1 } { \tex_interlinepenalties:D 0 - 1 } \__galley_set_interline_penalty_auxii:n \int_eval:n {#2} \exp_stop_f: } \cs_new:Npn \__galley_set_interline_penalty_auxi:n #1 - { \etex_interlinepenalties:D \int_eval:n {#1} \exp_stop_f: } + { \tex_interlinepenalties:D \int_eval:n {#1} \exp_stop_f: } \cs_new:Npn \__galley_set_interline_penalty_auxii:n #1 { } \cs_new_protected:Npn \__galley_calc_interline_penalties: { @@ -807,19 +807,19 @@ { \int_max:nn { \clist_count:N \l_galley_line_penalties_clist + 1 } - { \etex_clubpenalties:D 0 } + { \tex_clubpenalties:D 0 } } } { \clist_count:N \l_galley_line_penalties_clist } } \cs_new_protected:Npn \__galley_calc_interline_penalties:nn #1#2 { - \etex_interlinepenalties:D #1 ~ + \tex_interlinepenalties:D #1 ~ \int_step_function:nN {#2} \__galley_calc_interline_penalties_auxi:n \int_step_function:nnN { #2 + 1 } { #1 - 1 } \__galley_calc_interline_penalties_auxii:n - \etex_interlinepenalties:D \etex_interlinepenalties:D 0 \exp_stop_f: + \tex_interlinepenalties:D \tex_interlinepenalties:D 0 \exp_stop_f: } \cs_new:Npn \__galley_calc_interline_penalties_auxi:n #1 { @@ -827,7 +827,7 @@ { \clist_item:Nn \l_galley_line_penalties_clist {#1} + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1} - - \etex_clubpenalties:D #1 ~ + - \tex_clubpenalties:D #1 ~ } \exp_stop_f: } @@ -835,9 +835,9 @@ { \int_eval:n { - \etex_interlinepenalties:D \etex_interlinepenalties:D 0 \exp_stop_f: + \tex_interlinepenalties:D \tex_interlinepenalties:D 0 \exp_stop_f: + 0 \clist_item:Nn \l_galley_club_penalties_clist {#1} - - \etex_clubpenalties:D #1 ~ + - \tex_clubpenalties:D #1 ~ } \exp_stop_f: } @@ -849,37 +849,37 @@ { \clist_set:Nx #1 { - \int_step_function:nN { \etex_clubpenalties:D 0 - 1 } + \int_step_function:nN { \tex_clubpenalties:D 0 - 1 } \__galley_save_display_club_penalties:n } } \cs_new:Npn \__galley_save_display_club_penalties:n #1 - { \int_value:w \etex_clubpenalties:D \int_eval:n {#1} , } + { \int_value:w \tex_clubpenalties:D \int_eval:n {#1} , } \cs_new_protected:Npn \galley_save_display_widow_penalties:N #1 { \clist_set:Nx #1 { - \int_step_function:nN { \etex_displaywidowpenalties:D 0 - 1 } + \int_step_function:nN { \tex_displaywidowpenalties:D 0 - 1 } \__galley_save_display_widow_penalties:n } } \cs_new:Npn \__galley_save_display_widow_penalties:n #1 { - \int_value:w \etex_displaywidowpenalties:D + \int_value:w \tex_displaywidowpenalties:D \int_eval:n {#1} , } \cs_new_protected:Npn \galley_save_widow_penalties:N #1 { \clist_set:Nx #1 { - \int_step_function:nN { \etex_widowpenalties:D 0 - 1 } + \int_step_function:nN { \tex_widowpenalties:D 0 - 1 } \__galley_save_widow_penalties:n } } \cs_new:Npn \__galley_save_widow_penalties:n #1 - { \int_value:w \etex_widowpenalties:D \int_eval:n {#1} , } + { \int_value:w \tex_widowpenalties:D \int_eval:n {#1} , } \cs_new_protected:Npn \galley_interline_penalty: - { \int_value:w \etex_interlinepenalties:D \etex_interlinepenalties:D 0 \exp_stop_f: } + { \int_value:w \tex_interlinepenalties:D \tex_interlinepenalties:D 0 \exp_stop_f: } \__kernel_msg_new:nnn { galley } { no-line-to-end } { There's~no~line~here~to~end. } \cs_set:Npn \clearpage diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty index 2f7a529d783..aa605b1bfc0 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty @@ -21,7 +21,7 @@ %% File: xgalley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach %% (C) 2010-2012,2014,2016-2018 The LaTeX3 Project \RequirePackage{xparse} -\ProvidesExplPackage{xgalley}{2018-04-30}{} +\ProvidesExplPackage{xgalley}{2018-05-12}{} {L3 Experimental galley} \RequirePackage{xparse,xtemplate,l3galley} \clist_new:N \l__galley_tmpa_clist diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 29aaa3c2673..3d3a5e42fb7 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -24,6 +24,7 @@ %% l3file.dtx (with options: `package') %% l3skip.dtx (with options: `package') %% l3keys.dtx (with options: `package') +%% l3intarray.dtx (with options: `package') %% l3fp.dtx (with options: `package') %% l3fp-aux.dtx (with options: `package') %% l3fp-traps.dtx (with options: `package') @@ -37,7 +38,7 @@ %% l3fp-trig.dtx (with options: `package') %% l3fp-convert.dtx (with options: `package') %% l3fp-random.dtx (with options: `package') -%% l3intarray.dtx (with options: `package') +%% l3fparray.dtx (with options: `package') %% l3sort.dtx (with options: `package') %% l3tl-analysis.dtx (with options: `package') %% l3regex.dtx (with options: `package') @@ -239,8 +240,8 @@ \LineBreak These are available in the engines\LineBreak - pdfTeX v1.40\LineBreak - - XeTeX v0.9994\LineBreak - - LuaTeX v0.70\LineBreak + - XeTeX v0.99992\LineBreak + - LuaTeX v0.76\LineBreak - e-(u)pTeX mid-2012\LineBreak or later.\LineBreak \LineBreak @@ -249,14 +250,21 @@ \expandafter\ifx\csname pdfstrcmp\endcsname\relax \else \expandafter\ifx\csname pdftexversion\endcsname\relax - 1% + \expandafter\ifx\csname Ucharcat\endcsname\relax + \ifx\csname kanjiskip\endcsname\relax + \else + 1% + \fi + \else + 1% + \fi \else \ifnum\pdftexversion<140 \else 1\fi \fi \fi \expandafter\ifx\csname directlua\endcsname\relax \else - \ifnum\luatexversion<70 \else 1\fi + \ifnum\luatexversion<76 \else 1\fi \fi =0 % \newlinechar`\^^J % @@ -685,6 +693,775 @@ \__kernel_primitive:NN \xleaders \tex_xleaders:D \__kernel_primitive:NN \xspaceskip \tex_xspaceskip:D \__kernel_primitive:NN \year \tex_year:D + \__kernel_primitive:NN \beginL \tex_beginL:D + \__kernel_primitive:NN \beginR \tex_beginR:D + \__kernel_primitive:NN \botmarks \tex_botmarks:D + \__kernel_primitive:NN \clubpenalties \tex_clubpenalties:D + \__kernel_primitive:NN \currentgrouplevel \tex_currentgrouplevel:D + \__kernel_primitive:NN \currentgrouptype \tex_currentgrouptype:D + \__kernel_primitive:NN \currentifbranch \tex_currentifbranch:D + \__kernel_primitive:NN \currentiflevel \tex_currentiflevel:D + \__kernel_primitive:NN \currentiftype \tex_currentiftype:D + \__kernel_primitive:NN \detokenize \tex_detokenize:D + \__kernel_primitive:NN \dimexpr \tex_dimexpr:D + \__kernel_primitive:NN \displaywidowpenalties \tex_displaywidowpenalties:D + \__kernel_primitive:NN \endL \tex_endL:D + \__kernel_primitive:NN \endR \tex_endR:D + \__kernel_primitive:NN \eTeXrevision \tex_eTeXrevision:D + \__kernel_primitive:NN \eTeXversion \tex_eTeXversion:D + \__kernel_primitive:NN \everyeof \tex_everyeof:D + \__kernel_primitive:NN \firstmarks \tex_firstmarks:D + \__kernel_primitive:NN \fontchardp \tex_fontchardp:D + \__kernel_primitive:NN \fontcharht \tex_fontcharht:D + \__kernel_primitive:NN \fontcharic \tex_fontcharic:D + \__kernel_primitive:NN \fontcharwd \tex_fontcharwd:D + \__kernel_primitive:NN \glueexpr \tex_glueexpr:D + \__kernel_primitive:NN \glueshrink \tex_glueshrink:D + \__kernel_primitive:NN \glueshrinkorder \tex_glueshrinkorder:D + \__kernel_primitive:NN \gluestretch \tex_gluestretch:D + \__kernel_primitive:NN \gluestretchorder \tex_gluestretchorder:D + \__kernel_primitive:NN \gluetomu \tex_gluetomu:D + \__kernel_primitive:NN \ifcsname \tex_ifcsname:D + \__kernel_primitive:NN \ifdefined \tex_ifdefined:D + \__kernel_primitive:NN \iffontchar \tex_iffontchar:D + \__kernel_primitive:NN \interactionmode \tex_interactionmode:D + \__kernel_primitive:NN \interlinepenalties \tex_interlinepenalties:D + \__kernel_primitive:NN \lastlinefit \tex_lastlinefit:D + \__kernel_primitive:NN \lastnodetype \tex_lastnodetype:D + \__kernel_primitive:NN \marks \tex_marks:D + \__kernel_primitive:NN \middle \tex_middle:D + \__kernel_primitive:NN \muexpr \tex_muexpr:D + \__kernel_primitive:NN \mutoglue \tex_mutoglue:D + \__kernel_primitive:NN \numexpr \tex_numexpr:D + \__kernel_primitive:NN \pagediscards \tex_pagediscards:D + \__kernel_primitive:NN \parshapedimen \tex_parshapedimen:D + \__kernel_primitive:NN \parshapeindent \tex_parshapeindent:D + \__kernel_primitive:NN \parshapelength \tex_parshapelength:D + \__kernel_primitive:NN \predisplaydirection \tex_predisplaydirection:D + \__kernel_primitive:NN \protected \tex_protected:D + \__kernel_primitive:NN \readline \tex_readline:D + \__kernel_primitive:NN \savinghyphcodes \tex_savinghyphcodes:D + \__kernel_primitive:NN \savingvdiscards \tex_savingvdiscards:D + \__kernel_primitive:NN \scantokens \tex_scantokens:D + \__kernel_primitive:NN \showgroups \tex_showgroups:D + \__kernel_primitive:NN \showifs \tex_showifs:D + \__kernel_primitive:NN \showtokens \tex_showtokens:D + \__kernel_primitive:NN \splitbotmarks \tex_splitbotmarks:D + \__kernel_primitive:NN \splitdiscards \tex_splitdiscards:D + \__kernel_primitive:NN \splitfirstmarks \tex_splitfirstmarks:D + \__kernel_primitive:NN \TeXXeTstate \tex_TeXXeTstate:D + \__kernel_primitive:NN \topmarks \tex_topmarks:D + \__kernel_primitive:NN \tracingassigns \tex_tracingassigns:D + \__kernel_primitive:NN \tracinggroups \tex_tracinggroups:D + \__kernel_primitive:NN \tracingifs \tex_tracingifs:D + \__kernel_primitive:NN \tracingnesting \tex_tracingnesting:D + \__kernel_primitive:NN \tracingscantokens \tex_tracingscantokens:D + \__kernel_primitive:NN \unexpanded \tex_unexpanded:D + \__kernel_primitive:NN \unless \tex_unless:D + \__kernel_primitive:NN \widowpenalties \tex_widowpenalties:D + \__kernel_primitive:NN \pdfannot \tex_pdfannot:D + \__kernel_primitive:NN \pdfcatalog \tex_pdfcatalog:D + \__kernel_primitive:NN \pdfcompresslevel \tex_pdfcompresslevel:D + \__kernel_primitive:NN \pdfcolorstack \tex_pdfcolorstack:D + \__kernel_primitive:NN \pdfcolorstackinit \tex_pdfcolorstackinit:D + \__kernel_primitive:NN \pdfcreationdate \tex_pdfcreationdate:D + \__kernel_primitive:NN \pdfdecimaldigits \tex_pdfdecimaldigits:D + \__kernel_primitive:NN \pdfdest \tex_pdfdest:D + \__kernel_primitive:NN \pdfdestmargin \tex_pdfdestmargin:D + \__kernel_primitive:NN \pdfendlink \tex_pdfendlink:D + \__kernel_primitive:NN \pdfendthread \tex_pdfendthread:D + \__kernel_primitive:NN \pdffontattr \tex_pdffontattr:D + \__kernel_primitive:NN \pdffontname \tex_pdffontname:D + \__kernel_primitive:NN \pdffontobjnum \tex_pdffontobjnum:D + \__kernel_primitive:NN \pdfgamma \tex_pdfgamma:D + \__kernel_primitive:NN \pdfimageapplygamma \tex_pdfimageapplygamma:D + \__kernel_primitive:NN \pdfimagegamma \tex_pdfimagegamma:D + \__kernel_primitive:NN \pdfgentounicode \tex_pdfgentounicode:D + \__kernel_primitive:NN \pdfglyphtounicode \tex_pdfglyphtounicode:D + \__kernel_primitive:NN \pdfhorigin \tex_pdfhorigin:D + \__kernel_primitive:NN \pdfimagehicolor \tex_pdfimagehicolor:D + \__kernel_primitive:NN \pdfimageresolution \tex_pdfimageresolution:D + \__kernel_primitive:NN \pdfincludechars \tex_pdfincludechars:D + \__kernel_primitive:NN \pdfinclusioncopyfonts \tex_pdfinclusioncopyfonts:D + \__kernel_primitive:NN \pdfinclusionerrorlevel + \tex_pdfinclusionerrorlevel:D + \__kernel_primitive:NN \pdfinfo \tex_pdfinfo:D + \__kernel_primitive:NN \pdflastannot \tex_pdflastannot:D + \__kernel_primitive:NN \pdflastlink \tex_pdflastlink:D + \__kernel_primitive:NN \pdflastobj \tex_pdflastobj:D + \__kernel_primitive:NN \pdflastxform \tex_pdflastxform:D + \__kernel_primitive:NN \pdflastximage \tex_pdflastximage:D + \__kernel_primitive:NN \pdflastximagecolordepth + \tex_pdflastximagecolordepth:D + \__kernel_primitive:NN \pdflastximagepages \tex_pdflastximagepages:D + \__kernel_primitive:NN \pdflinkmargin \tex_pdflinkmargin:D + \__kernel_primitive:NN \pdfliteral \tex_pdfliteral:D + \__kernel_primitive:NN \pdfminorversion \tex_pdfminorversion:D + \__kernel_primitive:NN \pdfnames \tex_pdfnames:D + \__kernel_primitive:NN \pdfobj \tex_pdfobj:D + \__kernel_primitive:NN \pdfobjcompresslevel \tex_pdfobjcompresslevel:D + \__kernel_primitive:NN \pdfoutline \tex_pdfoutline:D + \__kernel_primitive:NN \pdfoutput \tex_pdfoutput:D + \__kernel_primitive:NN \pdfpageattr \tex_pdfpageattr:D + \__kernel_primitive:NN \pdfpagebox \tex_pdfpagebox:D + \__kernel_primitive:NN \pdfpageref \tex_pdfpageref:D + \__kernel_primitive:NN \pdfpageresources \tex_pdfpageresources:D + \__kernel_primitive:NN \pdfpagesattr \tex_pdfpagesattr:D + \__kernel_primitive:NN \pdfrefobj \tex_pdfrefobj:D + \__kernel_primitive:NN \pdfrefxform \tex_pdfrefxform:D + \__kernel_primitive:NN \pdfrefximage \tex_pdfrefximage:D + \__kernel_primitive:NN \pdfrestore \tex_pdfrestore:D + \__kernel_primitive:NN \pdfretval \tex_pdfretval:D + \__kernel_primitive:NN \pdfsave \tex_pdfsave:D + \__kernel_primitive:NN \pdfsetmatrix \tex_pdfsetmatrix:D + \__kernel_primitive:NN \pdfstartlink \tex_pdfstartlink:D + \__kernel_primitive:NN \pdfstartthread \tex_pdfstartthread:D + \__kernel_primitive:NN \pdfsuppressptexinfo \tex_pdfsuppressptexinfo:D + \__kernel_primitive:NN \pdfthread \tex_pdfthread:D + \__kernel_primitive:NN \pdfthreadmargin \tex_pdfthreadmargin:D + \__kernel_primitive:NN \pdftrailer \tex_pdftrailer:D + \__kernel_primitive:NN \pdfuniqueresname \tex_pdfuniqueresname:D + \__kernel_primitive:NN \pdfvorigin \tex_pdfvorigin:D + \__kernel_primitive:NN \pdfxform \tex_pdfxform:D + \__kernel_primitive:NN \pdfxformattr \tex_pdfxformattr:D + \__kernel_primitive:NN \pdfxformname \tex_pdfxformname:D + \__kernel_primitive:NN \pdfxformresources \tex_pdfxformresources:D + \__kernel_primitive:NN \pdfximage \tex_pdfximage:D + \__kernel_primitive:NN \pdfximagebbox \tex_pdfximagebbox:D + \__kernel_primitive:NN \ifpdfabsdim \tex_ifabsdim:D + \__kernel_primitive:NN \ifpdfabsnum \tex_ifabsnum:D + \__kernel_primitive:NN \ifpdfprimitive \tex_ifprimitive:D + \__kernel_primitive:NN \pdfadjustspacing \tex_adjustspacing:D + \__kernel_primitive:NN \pdfcopyfont \tex_copyfont:D + \__kernel_primitive:NN \pdfdraftmode \tex_draftmode:D + \__kernel_primitive:NN \pdfeachlinedepth \tex_eachlinedepth:D + \__kernel_primitive:NN \pdfeachlineheight \tex_eachlineheight:D + \__kernel_primitive:NN \pdffilemoddate \tex_filemoddate:D + \__kernel_primitive:NN \pdffilesize \tex_filesize:D + \__kernel_primitive:NN \pdffirstlineheight \tex_firstlineheight:D + \__kernel_primitive:NN \pdffontexpand \tex_fontexpand:D + \__kernel_primitive:NN \pdffontsize \tex_fontsize:D + \__kernel_primitive:NN \pdfignoreddimen \tex_ignoreddimen:D + \__kernel_primitive:NN \pdfinsertht \tex_insertht:D + \__kernel_primitive:NN \pdflastlinedepth \tex_lastlinedepth:D + \__kernel_primitive:NN \pdflastxpos \tex_lastxpos:D + \__kernel_primitive:NN \pdflastypos \tex_lastypos:D + \__kernel_primitive:NN \pdfmapfile \tex_mapfile:D + \__kernel_primitive:NN \pdfmapline \tex_mapline:D + \__kernel_primitive:NN \pdfmdfivesum \tex_mdfivesum:D + \__kernel_primitive:NN \pdfnoligatures \tex_noligatures:D + \__kernel_primitive:NN \pdfnormaldeviate \tex_normaldeviate:D + \__kernel_primitive:NN \pdfpageheight \tex_pageheight:D + \__kernel_primitive:NN \pdfpagewidth \tex_pagewidth:D + \__kernel_primitive:NN \pdfpkmode \tex_pkmode:D + \__kernel_primitive:NN \pdfpkresolution \tex_pkresolution:D + \__kernel_primitive:NN \pdfprimitive \tex_primitive:D + \__kernel_primitive:NN \pdfprotrudechars \tex_protrudechars:D + \__kernel_primitive:NN \pdfpxdimen \tex_pxdimen:D + \__kernel_primitive:NN \pdfrandomseed \tex_randomseed:D + \__kernel_primitive:NN \pdfsavepos \tex_savepos:D + \__kernel_primitive:NN \pdfstrcmp \tex_strcmp:D + \__kernel_primitive:NN \pdfsetrandomseed \tex_setrandomseed:D + \__kernel_primitive:NN \pdfshellescape \tex_shellescape:D + \__kernel_primitive:NN \pdftracingfonts \tex_tracingfonts:D + \__kernel_primitive:NN \pdfuniformdeviate \tex_uniformdeviate:D + \__kernel_primitive:NN \pdftexbanner \tex_pdftexbanner:D + \__kernel_primitive:NN \pdftexrevision \tex_pdftexrevision:D + \__kernel_primitive:NN \pdftexversion \tex_pdftexversion:D + \__kernel_primitive:NN \efcode \tex_efcode:D + \__kernel_primitive:NN \ifincsname \tex_ifincsname:D + \__kernel_primitive:NN \leftmarginkern \tex_leftmarginkern:D + \__kernel_primitive:NN \letterspacefont \tex_letterspacefont:D + \__kernel_primitive:NN \lpcode \tex_lpcode:D + \__kernel_primitive:NN \quitvmode \tex_quitvmode:D + \__kernel_primitive:NN \rightmarginkern \tex_rightmarginkern:D + \__kernel_primitive:NN \rpcode \tex_rpcode:D + \__kernel_primitive:NN \synctex \tex_synctex:D + \__kernel_primitive:NN \tagcode \tex_tagcode:D + \tex_long:D \tex_def:D \use_ii:nn #1#2 {#2} + \tex_long:D \tex_def:D \use_none:n #1 { } + \tex_long:D \tex_def:D \__kernel_primitive:NN #1#2 + { + \tex_ifdefined:D #1 + \tex_expandafter:D \use_ii:nn + \tex_fi:D + \use_none:n { \tex_global:D \tex_let:D #2 #1 } + } + \__kernel_primitive:NN \suppressfontnotfounderror + \tex_suppressfontnotfounderror:D + \__kernel_primitive:NN \XeTeXcharclass \tex_XeTeXcharclass:D + \__kernel_primitive:NN \XeTeXcharglyph \tex_XeTeXcharglyph:D + \__kernel_primitive:NN \XeTeXcountfeatures \tex_XeTeXcountfeatures:D + \__kernel_primitive:NN \XeTeXcountglyphs \tex_XeTeXcountglyphs:D + \__kernel_primitive:NN \XeTeXcountselectors \tex_XeTeXcountselectors:D + \__kernel_primitive:NN \XeTeXcountvariations \tex_XeTeXcountvariations:D + \__kernel_primitive:NN \XeTeXdefaultencoding \tex_XeTeXdefaultencoding:D + \__kernel_primitive:NN \XeTeXdashbreakstate \tex_XeTeXdashbreakstate:D + \__kernel_primitive:NN \XeTeXfeaturecode \tex_XeTeXfeaturecode:D + \__kernel_primitive:NN \XeTeXfeaturename \tex_XeTeXfeaturename:D + \__kernel_primitive:NN \XeTeXfindfeaturebyname + \tex_XeTeXfindfeaturebyname:D + \__kernel_primitive:NN \XeTeXfindselectorbyname + \tex_XeTeXfindselectorbyname:D + \__kernel_primitive:NN \XeTeXfindvariationbyname + \tex_XeTeXfindvariationbyname:D + \__kernel_primitive:NN \XeTeXfirstfontchar \tex_XeTeXfirstfontchar:D + \__kernel_primitive:NN \XeTeXfonttype \tex_XeTeXfonttype:D + \__kernel_primitive:NN \XeTeXgenerateactualtext + \tex_XeTeXgenerateactualtext:D + \__kernel_primitive:NN \XeTeXglyph \tex_XeTeXglyph:D + \__kernel_primitive:NN \XeTeXglyphbounds \tex_XeTeXglyphbounds:D + \__kernel_primitive:NN \XeTeXglyphindex \tex_XeTeXglyphindex:D + \__kernel_primitive:NN \XeTeXglyphname \tex_XeTeXglyphname:D + \__kernel_primitive:NN \XeTeXinputencoding \tex_XeTeXinputencoding:D + \__kernel_primitive:NN \XeTeXinputnormalization + \tex_XeTeXinputnormalization:D + \__kernel_primitive:NN \XeTeXinterchartokenstate + \tex_XeTeXinterchartokenstate:D + \__kernel_primitive:NN \XeTeXinterchartoks \tex_XeTeXinterchartoks:D + \__kernel_primitive:NN \XeTeXisdefaultselector + \tex_XeTeXisdefaultselector:D + \__kernel_primitive:NN \XeTeXisexclusivefeature + \tex_XeTeXisexclusivefeature:D + \__kernel_primitive:NN \XeTeXlastfontchar \tex_XeTeXlastfontchar:D + \__kernel_primitive:NN \XeTeXlinebreakskip \tex_XeTeXlinebreakskip:D + \__kernel_primitive:NN \XeTeXlinebreaklocale \tex_XeTeXlinebreaklocale:D + \__kernel_primitive:NN \XeTeXlinebreakpenalty \tex_XeTeXlinebreakpenalty:D + \__kernel_primitive:NN \XeTeXOTcountfeatures \tex_XeTeXOTcountfeatures:D + \__kernel_primitive:NN \XeTeXOTcountlanguages \tex_XeTeXOTcountlanguages:D + \__kernel_primitive:NN \XeTeXOTcountscripts \tex_XeTeXOTcountscripts:D + \__kernel_primitive:NN \XeTeXOTfeaturetag \tex_XeTeXOTfeaturetag:D + \__kernel_primitive:NN \XeTeXOTlanguagetag \tex_XeTeXOTlanguagetag:D + \__kernel_primitive:NN \XeTeXOTscripttag \tex_XeTeXOTscripttag:D + \__kernel_primitive:NN \XeTeXpdffile \tex_XeTeXpdffile:D + \__kernel_primitive:NN \XeTeXpdfpagecount \tex_XeTeXpdfpagecount:D + \__kernel_primitive:NN \XeTeXpicfile \tex_XeTeXpicfile:D + \__kernel_primitive:NN \XeTeXrevision \tex_XeTeXrevision:D + \__kernel_primitive:NN \XeTeXselectorname \tex_XeTeXselectorname:D + \__kernel_primitive:NN \XeTeXtracingfonts \tex_XeTeXtracingfonts:D + \__kernel_primitive:NN \XeTeXupwardsmode \tex_XeTeXupwardsmode:D + \__kernel_primitive:NN \XeTeXuseglyphmetrics \tex_XeTeXuseglyphmetrics:D + \__kernel_primitive:NN \XeTeXvariation \tex_XeTeXvariation:D + \__kernel_primitive:NN \XeTeXvariationdefault \tex_XeTeXvariationdefault:D + \__kernel_primitive:NN \XeTeXvariationmax \tex_XeTeXvariationmax:D + \__kernel_primitive:NN \XeTeXvariationmin \tex_XeTeXvariationmin:D + \__kernel_primitive:NN \XeTeXvariationname \tex_XeTeXvariationname:D + \__kernel_primitive:NN \XeTeXversion \tex_XeTeXversion:D + \__kernel_primitive:NN \mdfivesum \tex_mdfivesum:D + \__kernel_primitive:NN \ifprimitive \tex_ifprimitive:D + \__kernel_primitive:NN \primitive \tex_primitive:D + \__kernel_primitive:NN \shellescape \tex_shellescape:D + \__kernel_primitive:NN \alignmark \tex_alignmark:D + \__kernel_primitive:NN \aligntab \tex_aligntab:D + \__kernel_primitive:NN \attribute \tex_attribute:D + \__kernel_primitive:NN \attributedef \tex_attributedef:D + \__kernel_primitive:NN \automaticdiscretionary + \tex_automaticdiscretionary:D + \__kernel_primitive:NN \automatichyphenmode \tex_automatichyphenmode:D + \__kernel_primitive:NN \automatichyphenpenalty + \tex_automatichyphenpenalty:D + \__kernel_primitive:NN \begincsname \tex_begincsname:D + \__kernel_primitive:NN \breakafterdirmode \tex_breakafterdirmode:D + \__kernel_primitive:NN \catcodetable \tex_catcodetable:D + \__kernel_primitive:NN \clearmarks \tex_clearmarks:D + \__kernel_primitive:NN \crampeddisplaystyle \tex_crampeddisplaystyle:D + \__kernel_primitive:NN \crampedscriptscriptstyle + \tex_crampedscriptscriptstyle:D + \__kernel_primitive:NN \crampedscriptstyle \tex_crampedscriptstyle:D + \__kernel_primitive:NN \crampedtextstyle \tex_crampedtextstyle:D + \__kernel_primitive:NN \directlua \tex_directlua:D + \__kernel_primitive:NN \dviextension \tex_dviextension:D + \__kernel_primitive:NN \dvifeedback \tex_dvifeedback:D + \__kernel_primitive:NN \dvivariable \tex_dvivariable:D + \__kernel_primitive:NN \etoksapp \tex_etoksapp:D + \__kernel_primitive:NN \etokspre \tex_etokspre:D + \__kernel_primitive:NN \explicithyphenpenalty \tex_explicithyphenpenalty:D + \__kernel_primitive:NN \expanded \tex_expanded:D + \__kernel_primitive:NN \explicitdiscretionary \tex_explicitdiscretionary:D + \__kernel_primitive:NN \firstvalidlanguage \tex_firstvalidlanguage:D + \__kernel_primitive:NN \fontid \tex_fontid:D + \__kernel_primitive:NN \formatname \tex_formatname:D + \__kernel_primitive:NN \hjcode \tex_hjcode:D + \__kernel_primitive:NN \hpack \tex_hpack:D + \__kernel_primitive:NN \hyphenationbounds \tex_hyphenationbounds:D + \__kernel_primitive:NN \hyphenationmin \tex_hyphenationmin:D + \__kernel_primitive:NN \hyphenpenaltymode \tex_hyphenpenaltymode:D + \__kernel_primitive:NN \gleaders \tex_gleaders:D + \__kernel_primitive:NN \initcatcodetable \tex_initcatcodetable:D + \__kernel_primitive:NN \lastnamedcs \tex_lastnamedcs:D + \__kernel_primitive:NN \latelua \tex_latelua:D + \__kernel_primitive:NN \letcharcode \tex_letcharcode:D + \__kernel_primitive:NN \luaescapestring \tex_luaescapestring:D + \__kernel_primitive:NN \luafunction \tex_luafunction:D + \__kernel_primitive:NN \luatexbanner \tex_luatexbanner:D + \__kernel_primitive:NN \luatexrevision \tex_luatexrevision:D + \__kernel_primitive:NN \luatexversion \tex_luatexversion:D + \__kernel_primitive:NN \mathdelimitersmode \tex_mathdelimitersmode:D + \__kernel_primitive:NN \mathdisplayskipmode \tex_mathdisplayskipmode:D + \__kernel_primitive:NN \matheqnogapstep \tex_matheqnogapstep:D + \__kernel_primitive:NN \mathnolimitsmode \tex_mathnolimitsmode:D + \__kernel_primitive:NN \mathoption \tex_mathoption:D + \__kernel_primitive:NN \mathpenaltiesmode \tex_mathpenaltiesmode:D + \__kernel_primitive:NN \mathrulesfam \tex_mathrulesfam:D + \__kernel_primitive:NN \mathscriptsmode \tex_mathscriptsmode:D + \__kernel_primitive:NN \mathscriptboxmode \tex_mathscriptboxmode:D + \__kernel_primitive:NN \mathstyle \tex_mathstyle:D + \__kernel_primitive:NN \mathsurroundmode \tex_mathsurroundmode:D + \__kernel_primitive:NN \mathsurroundskip \tex_mathsurroundskip:D + \__kernel_primitive:NN \nohrule \tex_nohrule:D + \__kernel_primitive:NN \nokerns \tex_nokerns:D + \__kernel_primitive:NN \noligs \tex_noligs:D + \__kernel_primitive:NN \nospaces \tex_nospaces:D + \__kernel_primitive:NN \novrule \tex_novrule:D + \__kernel_primitive:NN \outputbox \tex_outputbox:D + \__kernel_primitive:NN \pagebottomoffset \tex_pagebottomoffset:D + \__kernel_primitive:NN \pageleftoffset \tex_pageleftoffset:D + \__kernel_primitive:NN \pagerightoffset \tex_pagerightoffset:D + \__kernel_primitive:NN \pagetopoffset \tex_pagetopoffset:D + \__kernel_primitive:NN \pdfextension \tex_pdfextension:D + \__kernel_primitive:NN \pdffeedback \tex_pdffeedback:D + \__kernel_primitive:NN \pdfvariable \tex_pdfvariable:D + \__kernel_primitive:NN \postexhyphenchar \tex_postexhyphenchar:D + \__kernel_primitive:NN \posthyphenchar \tex_posthyphenchar:D + \__kernel_primitive:NN \prebinoppenalty \tex_prebinoppenalty:D + \__kernel_primitive:NN \predisplaygapfactor \tex_predisplaygapfactor:D + \__kernel_primitive:NN \preexhyphenchar \tex_preexhyphenchar:D + \__kernel_primitive:NN \prehyphenchar \tex_prehyphenchar:D + \__kernel_primitive:NN \prerelpenalty \tex_prerelpenalty:D + \__kernel_primitive:NN \savecatcodetable \tex_savecatcodetable:D + \__kernel_primitive:NN \scantextokens \tex_scantextokens:D + \__kernel_primitive:NN \setfontid \tex_setfontid:D + \__kernel_primitive:NN \shapemode \tex_shapemode:D + \__kernel_primitive:NN \suppressifcsnameerror \tex_suppressifcsnameerror:D + \__kernel_primitive:NN \suppresslongerror \tex_suppresslongerror:D + \__kernel_primitive:NN \suppressmathparerror \tex_suppressmathparerror:D + \__kernel_primitive:NN \suppressoutererror \tex_suppressoutererror:D + \__kernel_primitive:NN \suppressprimitiveerror + \tex_suppressprimitiveerror:D + \__kernel_primitive:NN \toksapp \tex_toksapp:D + \__kernel_primitive:NN \tokspre \tex_tokspre:D + \__kernel_primitive:NN \tpack \tex_tpack:D + \__kernel_primitive:NN \vpack \tex_vpack:D + \__kernel_primitive:NN \bodydir \tex_bodydir:D + \__kernel_primitive:NN \boxdir \tex_boxdir:D + \__kernel_primitive:NN \leftghost \tex_leftghost:D + \__kernel_primitive:NN \linedir \tex_linedir:D + \__kernel_primitive:NN \localbrokenpenalty \tex_localbrokenpenalty:D + \__kernel_primitive:NN \localinterlinepenalty \tex_localinterlinepenalty:D + \__kernel_primitive:NN \localleftbox \tex_localleftbox:D + \__kernel_primitive:NN \localrightbox \tex_localrightbox:D + \__kernel_primitive:NN \mathdir \tex_mathdir:D + \__kernel_primitive:NN \pagedir \tex_pagedir:D + \__kernel_primitive:NN \pardir \tex_pardir:D + \__kernel_primitive:NN \rightghost \tex_rightghost:D + \__kernel_primitive:NN \textdir \tex_textdir:D + \__kernel_primitive:NN \adjustspacing \tex_adjustspacing:D + \__kernel_primitive:NN \copyfont \tex_copyfont:D + \__kernel_primitive:NN \draftmode \tex_draftmode:D + \__kernel_primitive:NN \expandglyphsinfont \tex_fontexpand:D + \__kernel_primitive:NN \ifabsdim \tex_ifabsdim:D + \__kernel_primitive:NN \ifabsnum \tex_ifabsnum:D + \__kernel_primitive:NN \ignoreligaturesinfont \tex_ignoreligaturesinfont:D + \__kernel_primitive:NN \insertht \tex_insertht:D + \__kernel_primitive:NN \lastsavedboxresourceindex + \tex_pdflastxform:D + \__kernel_primitive:NN \lastsavedimageresourceindex + \tex_pdflastximage:D + \__kernel_primitive:NN \lastsavedimageresourcepages + \tex_pdflastximagepages:D + \__kernel_primitive:NN \lastxpos \tex_lastxpos:D + \__kernel_primitive:NN \lastypos \tex_lastypos:D + \__kernel_primitive:NN \normaldeviate \tex_normaldeviate:D + \__kernel_primitive:NN \outputmode \tex_pdfoutput:D + \__kernel_primitive:NN \pageheight \tex_pageheight:D + \__kernel_primitive:NN \pagewidth \tex_pagewith:D + \__kernel_primitive:NN \protrudechars \tex_protrudechars:D + \__kernel_primitive:NN \pxdimen \tex_pxdimen:D + \__kernel_primitive:NN \randomseed \tex_randomseed:D + \__kernel_primitive:NN \useboxresource \tex_pdfrefxform:D + \__kernel_primitive:NN \useimageresource \tex_pdfrefximage:D + \__kernel_primitive:NN \savepos \tex_savepos:D + \__kernel_primitive:NN \saveboxresource \tex_pdfxform:D + \__kernel_primitive:NN \saveimageresource \tex_pdfximage:D + \__kernel_primitive:NN \setrandomseed \tex_setrandomseed:D + \__kernel_primitive:NN \tracingfonts \tex_tracingfonts:D + \__kernel_primitive:NN \uniformdeviate \tex_uniformdeviate:D + \__kernel_primitive:NN \Uchar \tex_Uchar:D + \__kernel_primitive:NN \Ucharcat \tex_Ucharcat:D + \__kernel_primitive:NN \Udelcode \tex_Udelcode:D + \__kernel_primitive:NN \Udelcodenum \tex_Udelcodenum:D + \__kernel_primitive:NN \Udelimiter \tex_Udelimiter:D + \__kernel_primitive:NN \Udelimiterover \tex_Udelimiterover:D + \__kernel_primitive:NN \Udelimiterunder \tex_Udelimiterunder:D + \__kernel_primitive:NN \Uhextensible \tex_Uhextensible:D + \__kernel_primitive:NN \Umathaccent \tex_Umathaccent:D + \__kernel_primitive:NN \Umathaxis \tex_Umathaxis:D + \__kernel_primitive:NN \Umathbinbinspacing \tex_Umathbinbinspacing:D + \__kernel_primitive:NN \Umathbinclosespacing \tex_Umathbinclosespacing:D + \__kernel_primitive:NN \Umathbininnerspacing \tex_Umathbininnerspacing:D + \__kernel_primitive:NN \Umathbinopenspacing \tex_Umathbinopenspacing:D + \__kernel_primitive:NN \Umathbinopspacing \tex_Umathbinopspacing:D + \__kernel_primitive:NN \Umathbinordspacing \tex_Umathbinordspacing:D + \__kernel_primitive:NN \Umathbinpunctspacing \tex_Umathbinpunctspacing:D + \__kernel_primitive:NN \Umathbinrelspacing \tex_Umathbinrelspacing:D + \__kernel_primitive:NN \Umathchar \tex_Umathchar:D + \__kernel_primitive:NN \Umathcharclass \tex_Umathcharclass:D + \__kernel_primitive:NN \Umathchardef \tex_Umathchardef:D + \__kernel_primitive:NN \Umathcharfam \tex_Umathcharfam:D + \__kernel_primitive:NN \Umathcharnum \tex_Umathcharnum:D + \__kernel_primitive:NN \Umathcharnumdef \tex_Umathcharnumdef:D + \__kernel_primitive:NN \Umathcharslot \tex_Umathcharslot:D + \__kernel_primitive:NN \Umathclosebinspacing \tex_Umathclosebinspacing:D + \__kernel_primitive:NN \Umathcloseclosespacing + \tex_Umathcloseclosespacing:D + \__kernel_primitive:NN \Umathcloseinnerspacing + \tex_Umathcloseinnerspacing:D + \__kernel_primitive:NN \Umathcloseopenspacing \tex_Umathcloseopenspacing:D + \__kernel_primitive:NN \Umathcloseopspacing \tex_Umathcloseopspacing:D + \__kernel_primitive:NN \Umathcloseordspacing \tex_Umathcloseordspacing:D + \__kernel_primitive:NN \Umathclosepunctspacing + \tex_Umathclosepunctspacing:D + \__kernel_primitive:NN \Umathcloserelspacing \tex_Umathcloserelspacing:D + \__kernel_primitive:NN \Umathcode \tex_Umathcode:D + \__kernel_primitive:NN \Umathcodenum \tex_Umathcodenum:D + \__kernel_primitive:NN \Umathconnectoroverlapmin + \tex_Umathconnectoroverlapmin:D + \__kernel_primitive:NN \Umathfractiondelsize \tex_Umathfractiondelsize:D + \__kernel_primitive:NN \Umathfractiondenomdown + \tex_Umathfractiondenomdown:D + \__kernel_primitive:NN \Umathfractiondenomvgap + \tex_Umathfractiondenomvgap:D + \__kernel_primitive:NN \Umathfractionnumup \tex_Umathfractionnumup:D + \__kernel_primitive:NN \Umathfractionnumvgap \tex_Umathfractionnumvgap:D + \__kernel_primitive:NN \Umathfractionrule \tex_Umathfractionrule:D + \__kernel_primitive:NN \Umathinnerbinspacing \tex_Umathinnerbinspacing:D + \__kernel_primitive:NN \Umathinnerclosespacing + \tex_Umathinnerclosespacing:D + \__kernel_primitive:NN \Umathinnerinnerspacing + \tex_Umathinnerinnerspacing:D + \__kernel_primitive:NN \Umathinneropenspacing \tex_Umathinneropenspacing:D + \__kernel_primitive:NN \Umathinneropspacing \tex_Umathinneropspacing:D + \__kernel_primitive:NN \Umathinnerordspacing \tex_Umathinnerordspacing:D + \__kernel_primitive:NN \Umathinnerpunctspacing + \tex_Umathinnerpunctspacing:D + \__kernel_primitive:NN \Umathinnerrelspacing \tex_Umathinnerrelspacing:D + \__kernel_primitive:NN \Umathlimitabovebgap \tex_Umathlimitabovebgap:D + \__kernel_primitive:NN \Umathlimitabovekern \tex_Umathlimitabovekern:D + \__kernel_primitive:NN \Umathlimitabovevgap \tex_Umathlimitabovevgap:D + \__kernel_primitive:NN \Umathlimitbelowbgap \tex_Umathlimitbelowbgap:D + \__kernel_primitive:NN \Umathlimitbelowkern \tex_Umathlimitbelowkern:D + \__kernel_primitive:NN \Umathlimitbelowvgap \tex_Umathlimitbelowvgap:D + \__kernel_primitive:NN \Umathnolimitsubfactor \tex_Umathnolimitsubfactor:D + \__kernel_primitive:NN \Umathnolimitsupfactor \tex_Umathnolimitsupfactor:D + \__kernel_primitive:NN \Umathopbinspacing \tex_Umathopbinspacing:D + \__kernel_primitive:NN \Umathopclosespacing \tex_Umathopclosespacing:D + \__kernel_primitive:NN \Umathopenbinspacing \tex_Umathopenbinspacing:D + \__kernel_primitive:NN \Umathopenclosespacing \tex_Umathopenclosespacing:D + \__kernel_primitive:NN \Umathopeninnerspacing \tex_Umathopeninnerspacing:D + \__kernel_primitive:NN \Umathopenopenspacing \tex_Umathopenopenspacing:D + \__kernel_primitive:NN \Umathopenopspacing \tex_Umathopenopspacing:D + \__kernel_primitive:NN \Umathopenordspacing \tex_Umathopenordspacing:D + \__kernel_primitive:NN \Umathopenpunctspacing \tex_Umathopenpunctspacing:D + \__kernel_primitive:NN \Umathopenrelspacing \tex_Umathopenrelspacing:D + \__kernel_primitive:NN \Umathoperatorsize \tex_Umathoperatorsize:D + \__kernel_primitive:NN \Umathopinnerspacing \tex_Umathopinnerspacing:D + \__kernel_primitive:NN \Umathopopenspacing \tex_Umathopopenspacing:D + \__kernel_primitive:NN \Umathopopspacing \tex_Umathopopspacing:D + \__kernel_primitive:NN \Umathopordspacing \tex_Umathopordspacing:D + \__kernel_primitive:NN \Umathoppunctspacing \tex_Umathoppunctspacing:D + \__kernel_primitive:NN \Umathoprelspacing \tex_Umathoprelspacing:D + \__kernel_primitive:NN \Umathordbinspacing \tex_Umathordbinspacing:D + \__kernel_primitive:NN \Umathordclosespacing \tex_Umathordclosespacing:D + \__kernel_primitive:NN \Umathordinnerspacing \tex_Umathordinnerspacing:D + \__kernel_primitive:NN \Umathordopenspacing \tex_Umathordopenspacing:D + \__kernel_primitive:NN \Umathordopspacing \tex_Umathordopspacing:D + \__kernel_primitive:NN \Umathordordspacing \tex_Umathordordspacing:D + \__kernel_primitive:NN \Umathordpunctspacing \tex_Umathordpunctspacing:D + \__kernel_primitive:NN \Umathordrelspacing \tex_Umathordrelspacing:D + \__kernel_primitive:NN \Umathoverbarkern \tex_Umathoverbarkern:D + \__kernel_primitive:NN \Umathoverbarrule \tex_Umathoverbarrule:D + \__kernel_primitive:NN \Umathoverbarvgap \tex_Umathoverbarvgap:D + \__kernel_primitive:NN \Umathoverdelimiterbgap + \tex_Umathoverdelimiterbgap:D + \__kernel_primitive:NN \Umathoverdelimitervgap + \tex_Umathoverdelimitervgap:D + \__kernel_primitive:NN \Umathpunctbinspacing \tex_Umathpunctbinspacing:D + \__kernel_primitive:NN \Umathpunctclosespacing + \tex_Umathpunctclosespacing:D + \__kernel_primitive:NN \Umathpunctinnerspacing + \tex_Umathpunctinnerspacing:D + \__kernel_primitive:NN \Umathpunctopenspacing \tex_Umathpunctopenspacing:D + \__kernel_primitive:NN \Umathpunctopspacing \tex_Umathpunctopspacing:D + \__kernel_primitive:NN \Umathpunctordspacing \tex_Umathpunctordspacing:D + \__kernel_primitive:NN \Umathpunctpunctspacing + \tex_Umathpunctpunctspacing:D + \__kernel_primitive:NN \Umathpunctrelspacing \tex_Umathpunctrelspacing:D + \__kernel_primitive:NN \Umathquad \tex_Umathquad:D + \__kernel_primitive:NN \Umathradicaldegreeafter + \tex_Umathradicaldegreeafter:D + \__kernel_primitive:NN \Umathradicaldegreebefore + \tex_Umathradicaldegreebefore:D + \__kernel_primitive:NN \Umathradicaldegreeraise + \tex_Umathradicaldegreeraise:D + \__kernel_primitive:NN \Umathradicalkern \tex_Umathradicalkern:D + \__kernel_primitive:NN \Umathradicalrule \tex_Umathradicalrule:D + \__kernel_primitive:NN \Umathradicalvgap \tex_Umathradicalvgap:D + \__kernel_primitive:NN \Umathrelbinspacing \tex_Umathrelbinspacing:D + \__kernel_primitive:NN \Umathrelclosespacing \tex_Umathrelclosespacing:D + \__kernel_primitive:NN \Umathrelinnerspacing \tex_Umathrelinnerspacing:D + \__kernel_primitive:NN \Umathrelopenspacing \tex_Umathrelopenspacing:D + \__kernel_primitive:NN \Umathrelopspacing \tex_Umathrelopspacing:D + \__kernel_primitive:NN \Umathrelordspacing \tex_Umathrelordspacing:D + \__kernel_primitive:NN \Umathrelpunctspacing \tex_Umathrelpunctspacing:D + \__kernel_primitive:NN \Umathrelrelspacing \tex_Umathrelrelspacing:D + \__kernel_primitive:NN \Umathskewedfractionhgap + \tex_Umathskewedfractionhgap:D + \__kernel_primitive:NN \Umathskewedfractionvgap + \tex_Umathskewedfractionvgap:D + \__kernel_primitive:NN \Umathspaceafterscript \tex_Umathspaceafterscript:D + \__kernel_primitive:NN \Umathstackdenomdown \tex_Umathstackdenomdown:D + \__kernel_primitive:NN \Umathstacknumup \tex_Umathstacknumup:D + \__kernel_primitive:NN \Umathstackvgap \tex_Umathstackvgap:D + \__kernel_primitive:NN \Umathsubshiftdown \tex_Umathsubshiftdown:D + \__kernel_primitive:NN \Umathsubshiftdrop \tex_Umathsubshiftdrop:D + \__kernel_primitive:NN \Umathsubsupshiftdown \tex_Umathsubsupshiftdown:D + \__kernel_primitive:NN \Umathsubsupvgap \tex_Umathsubsupvgap:D + \__kernel_primitive:NN \Umathsubtopmax \tex_Umathsubtopmax:D + \__kernel_primitive:NN \Umathsupbottommin \tex_Umathsupbottommin:D + \__kernel_primitive:NN \Umathsupshiftdrop \tex_Umathsupshiftdrop:D + \__kernel_primitive:NN \Umathsupshiftup \tex_Umathsupshiftup:D + \__kernel_primitive:NN \Umathsupsubbottommax \tex_Umathsupsubbottommax:D + \__kernel_primitive:NN \Umathunderbarkern \tex_Umathunderbarkern:D + \__kernel_primitive:NN \Umathunderbarrule \tex_Umathunderbarrule:D + \__kernel_primitive:NN \Umathunderbarvgap \tex_Umathunderbarvgap:D + \__kernel_primitive:NN \Umathunderdelimiterbgap + \tex_Umathunderdelimiterbgap:D + \__kernel_primitive:NN \Umathunderdelimitervgap + \tex_Umathunderdelimitervgap:D + \__kernel_primitive:NN \Unosubscript \tex_Unosubscript:D + \__kernel_primitive:NN \Unosuperscript \tex_Unosuperscript:D + \__kernel_primitive:NN \Uoverdelimiter \tex_Uoverdelimiter:D + \__kernel_primitive:NN \Uradical \tex_Uradical:D + \__kernel_primitive:NN \Uroot \tex_Uroot:D + \__kernel_primitive:NN \Uskewed \tex_Uskewed:D + \__kernel_primitive:NN \Uskewedwithdelims \tex_Uskewedwithdelims:D + \__kernel_primitive:NN \Ustack \tex_Ustack:D + \__kernel_primitive:NN \Ustartdisplaymath \tex_Ustartdisplaymath:D + \__kernel_primitive:NN \Ustartmath \tex_Ustartmath:D + \__kernel_primitive:NN \Ustopdisplaymath \tex_Ustopdisplaymath:D + \__kernel_primitive:NN \Ustopmath \tex_Ustopmath:D + \__kernel_primitive:NN \Usubscript \tex_Usubscript:D + \__kernel_primitive:NN \Usuperscript \tex_Usuperscript:D + \__kernel_primitive:NN \Uunderdelimiter \tex_Uunderdelimiter:D + \__kernel_primitive:NN \Uvextensible \tex_Uvextensible:D + \__kernel_primitive:NN \autospacing \tex_autospacing:D + \__kernel_primitive:NN \autoxspacing \tex_autoxspacing:D + \__kernel_primitive:NN \dtou \tex_dtou:D + \__kernel_primitive:NN \epTeXinputencoding \tex_epTeXinputencoding:D + \__kernel_primitive:NN \epTeXversion \tex_epTeXversion:D + \__kernel_primitive:NN \euc \tex_euc:D + \__kernel_primitive:NN \ifdbox \tex_ifdbox:D + \__kernel_primitive:NN \ifddir \tex_ifddir:D + \__kernel_primitive:NN \ifmdir \tex_ifmdir:D + \__kernel_primitive:NN \iftbox \tex_iftbox:D + \__kernel_primitive:NN \iftdir \tex_iftdir:D + \__kernel_primitive:NN \ifybox \tex_ifybox:D + \__kernel_primitive:NN \ifydir \tex_ifydir:D + \__kernel_primitive:NN \inhibitglue \tex_inhibitglue:D + \__kernel_primitive:NN \inhibitxspcode \tex_inhibitxspcode:D + \__kernel_primitive:NN \jcharwidowpenalty \tex_jcharwidowpenalty:D + \__kernel_primitive:NN \jfam \tex_jfam:D + \__kernel_primitive:NN \jfont \tex_jfont:D + \__kernel_primitive:NN \jis \tex_jis:D + \__kernel_primitive:NN \kanjiskip \tex_kanjiskip:D + \__kernel_primitive:NN \kansuji \tex_kansuji:D + \__kernel_primitive:NN \kansujichar \tex_kansujichar:D + \__kernel_primitive:NN \kcatcode \tex_kcatcode:D + \__kernel_primitive:NN \kuten \tex_kuten:D + \__kernel_primitive:NN \noautospacing \tex_noautospacing:D + \__kernel_primitive:NN \noautoxspacing \tex_noautoxspacing:D + \__kernel_primitive:NN \postbreakpenalty \tex_postbreakpenalty:D + \__kernel_primitive:NN \prebreakpenalty \tex_prebreakpenalty:D + \__kernel_primitive:NN \ptexminorversion \tex_ptexminorversion:D + \__kernel_primitive:NN \ptexrevision \tex_ptexrevision:D + \__kernel_primitive:NN \ptexversion \tex_ptexversion:D + \__kernel_primitive:NN \showmode \tex_showmode:D + \__kernel_primitive:NN \sjis \tex_sjis:D + \__kernel_primitive:NN \tate \tex_tate:D + \__kernel_primitive:NN \tbaselineshift \tex_tbaselineshift:D + \__kernel_primitive:NN \tfont \tex_tfont:D + \__kernel_primitive:NN \xkanjiskip \tex_xkanjiskip:D + \__kernel_primitive:NN \xspcode \tex_xspcode:D + \__kernel_primitive:NN \ybaselineshift \tex_ybaselineshift:D + \__kernel_primitive:NN \yoko \tex_yoko:D + \__kernel_primitive:NN \disablecjktoken \tex_disablecjktoken:D + \__kernel_primitive:NN \enablecjktoken \tex_enablecjktoken:D + \__kernel_primitive:NN \forcecjktoken \tex_forcecjktoken:D + \__kernel_primitive:NN \kchar \tex_kchar:D + \__kernel_primitive:NN \kchardef \tex_kchardef:D + \__kernel_primitive:NN \kuten \tex_kuten:D + \__kernel_primitive:NN \ucs \tex_ucs:D + \__kernel_primitive:NN \uptexrevision \tex_uptexrevision:D + \__kernel_primitive:NN \uptexversion \tex_uptexversion:D +\tex_endgroup:D +\tex_ifdefined:D \@@end + \tex_let:D \tex_end:D \@@end + \tex_let:D \tex_everydisplay:D \frozen@everydisplay + \tex_let:D \tex_everymath:D \frozen@everymath + \tex_let:D \tex_hyphen:D \@@hyph + \tex_let:D \tex_input:D \@@input + \tex_let:D \tex_italiccorrection:D \@@italiccorr + \tex_let:D \tex_underline:D \@@underline + \tex_ifdefined:D \@@shipout + \tex_let:D \tex_shipout:D \@@shipout + \tex_fi:D + \tex_begingroup:D + \tex_edef:D \l_tmpa_tl { \tex_string:D \shipout } + \tex_edef:D \l_tmpb_tl { \tex_meaning:D \shipout } + \tex_ifx:D \l_tmpa_tl \l_tmpb_tl + \tex_else:D + \tex_expandafter:D \@tfor \tex_expandafter:D \@tempa \tex_string:D := + \CROP@shipout + \dup@shipout + \GPTorg@shipout + \LL@shipout + \mem@oldshipout + \opem@shipout + \pgfpages@originalshipout + \pr@shipout + \Shipout + \verso@orig@shipout + \do + { + \tex_edef:D \l_tmpb_tl + { \tex_expandafter:D \tex_meaning:D \@tempa } + \tex_ifx:D \l_tmpa_tl \l_tmpb_tl + \tex_global:D \tex_expandafter:D \tex_let:D + \tex_expandafter:D \tex_shipout:D \@tempa + \tex_fi:D + } + \tex_fi:D + \tex_endgroup:D + \tex_let:D \tex_tracingfonts:D \tex_undefined:D + \tex_ifdefined:D \pdftracingfonts + \tex_let:D \tex_tracingfonts:D \pdftracingfonts + \tex_else:D + \tex_ifdefined:D \tex_directlua:D + \tex_directlua:D { tex.enableprimitives("@@", {"tracingfonts"}) } + \tex_let:D \tex_tracingfonts:D \luatextracingfonts + \tex_fi:D + \tex_fi:D +\tex_fi:D +\tex_ifdefined:D \luatexsuppressfontnotfounderror + \tex_let:D \tex_alignmark:D \luatexalignmark + \tex_let:D \tex_aligntab:D \luatexaligntab + \tex_let:D \tex_attribute:D \luatexattribute + \tex_let:D \tex_attributedef:D \luatexattributedef + \tex_let:D \tex_catcodetable:D \luatexcatcodetable + \tex_let:D \tex_clearmarks:D \luatexclearmarks + \tex_let:D \tex_crampeddisplaystyle:D \luatexcrampeddisplaystyle + \tex_let:D \tex_crampedscriptscriptstyle:D + \luatexcrampedscriptscriptstyle + \tex_let:D \tex_crampedscriptstyle:D \luatexcrampedscriptstyle + \tex_let:D \tex_crampedtextstyle:D \luatexcrampedtextstyle + \tex_let:D \tex_fontid:D \luatexfontid + \tex_let:D \tex_formatname:D \luatexformatname + \tex_let:D \tex_gleaders:D \luatexgleaders + \tex_let:D \tex_initcatcodetable:D \luatexinitcatcodetable + \tex_let:D \tex_latelua:D \luatexlatelua + \tex_let:D \tex_luaescapestring:D \luatexluaescapestring + \tex_let:D \tex_luafunction:D \luatexluafunction + \tex_let:D \tex_mathstyle:D \luatexmathstyle + \tex_let:D \tex_nokerns:D \luatexnokerns + \tex_let:D \tex_noligs:D \luatexnoligs + \tex_let:D \tex_outputbox:D \luatexoutputbox + \tex_let:D \tex_pageleftoffset:D \luatexpageleftoffset + \tex_let:D \tex_pagetopoffset:D \luatexpagetopoffset + \tex_let:D \tex_postexhyphenchar:D \luatexpostexhyphenchar + \tex_let:D \tex_posthyphenchar:D \luatexposthyphenchar + \tex_let:D \tex_preexhyphenchar:D \luatexpreexhyphenchar + \tex_let:D \tex_prehyphenchar:D \luatexprehyphenchar + \tex_let:D \tex_savecatcodetable:D \luatexsavecatcodetable + \tex_let:D \tex_scantextokens:D \luatexscantextokens + \tex_let:D \tex_suppressifcsnameerror:D + \luatexsuppressifcsnameerror + \tex_let:D \tex_suppresslongerror:D \luatexsuppresslongerror + \tex_let:D \tex_suppressmathparerror:D + \luatexsuppressmathparerror + \tex_let:D \tex_suppressoutererror:D \luatexsuppressoutererror + \tex_let:D \tex_Uchar:D \luatexUchar + \tex_let:D \tex_suppressfontnotfounderror:D + \luatexsuppressfontnotfounderror + \tex_let:D \tex_bodydir:D \luatexbodydir + \tex_let:D \tex_boxdir:D \luatexboxdir + \tex_let:D \tex_leftghost:D \luatexleftghost + \tex_let:D \tex_localbrokenpenalty:D \luatexlocalbrokenpenalty + \tex_let:D \tex_localinterlinepenalty:D + \luatexlocalinterlinepenalty + \tex_let:D \tex_localleftbox:D \luatexlocalleftbox + \tex_let:D \tex_localrightbox:D \luatexlocalrightbox + \tex_let:D \tex_mathdir:D \luatexmathdir + \tex_let:D \tex_pagebottomoffset:D \luatexpagebottomoffset + \tex_let:D \tex_pagedir:D \luatexpagedir + \tex_let:D \tex_pageheight:D \luatexpageheight + \tex_let:D \tex_pagerightoffset:D \luatexpagerightoffset + \tex_let:D \tex_pagewidth:D \luatexpagewidth + \tex_let:D \tex_pardir:D \luatexpardir + \tex_let:D \tex_rightghost:D \luatexrightghost + \tex_let:D \tex_textdir:D \luatextextdir +\tex_fi:D +\tex_ifnum:D 0 + \tex_ifdefined:D \tex_pdftexversion:D 1 \tex_fi:D + \tex_ifdefined:D \tex_luatexversion:D 1 \tex_fi:D + = 0 % + \tex_let:D \tex_mapfile:D \tex_undefined:D + \tex_let:D \tex_mapline:D \tex_undefined:D +\tex_fi:D +\tex_ifdefined:D \tex_luatexversion:D + \tex_let:D \tex_pdftexbanner:D \tex_undefined:D + \tex_let:D \tex_pdftexrevision:D \tex_undefined:D + \tex_let:D \tex_pdftexversion:D \tex_undefined:D +\tex_fi:D +\tex_ifdefined:D \normalend + \tex_let:D \tex_end:D \normalend + \tex_let:D \tex_everyjob:D \normaleveryjob + \tex_let:D \tex_input:D \normalinput + \tex_let:D \tex_language:D \normallanguage + \tex_let:D \tex_mathop:D \normalmathop + \tex_let:D \tex_month:D \normalmonth + \tex_let:D \tex_outer:D \normalouter + \tex_let:D \tex_over:D \normalover + \tex_let:D \tex_vcenter:D \normalvcenter + \tex_let:D \tex_unexpanded:D \normalunexpanded + \tex_let:D \tex_expanded:D \normalexpanded +\tex_fi:D +\tex_ifdefined:D \normalitaliccorrection + \tex_let:D \tex_hoffset:D \normalhoffset + \tex_let:D \tex_italiccorrection:D \normalitaliccorrection + \tex_let:D \tex_voffset:D \normalvoffset + \tex_let:D \tex_showtokens:D \normalshowtokens + \tex_let:D \tex_bodydir:D \spac_directions_normal_body_dir + \tex_let:D \tex_pagedir:D \spac_directions_normal_page_dir +\tex_fi:D +\tex_ifdefined:D \normalleft + \tex_let:D \tex_left:D \normalleft + \tex_let:D \tex_middle:D \normalmiddle + \tex_let:D \tex_right:D \normalright +\tex_fi:D +\tex_begingroup:D + \tex_long:D \tex_def:D \use_ii:nn #1#2 {#2} + \tex_long:D \tex_def:D \use_none:n #1 { } + \tex_long:D \tex_def:D \__kernel_primitive:NN #1#2 + { + \tex_ifdefined:D #1 + \tex_expandafter:D \use_ii:nn + \tex_fi:D + \use_none:n { \tex_global:D \tex_let:D #2 #1 } + } + \tex_xdef:D \__kernel_primitives: + { + \tex_unexpanded:D + { \__kernel_primitive:NN \beginL \etex_beginL:D \__kernel_primitive:NN \beginR \etex_beginR:D \__kernel_primitive:NN \botmarks \etex_botmarks:D @@ -781,7 +1558,7 @@ \pdftex_pdfinclusionerrorlevel:D \__kernel_primitive:NN \pdfinfo \pdftex_pdfinfo:D \__kernel_primitive:NN \pdflastannot \pdftex_pdflastannot:D - \__kernel_primitive:NN \pdflastlink \pfdftex_pdflastlink:D + \__kernel_primitive:NN \pdflastlink \pdftex_pdflastlink:D \__kernel_primitive:NN \pdflastobj \pdftex_pdflastobj:D \__kernel_primitive:NN \pdflastxform \pdftex_pdflastxform:D \__kernel_primitive:NN \pdflastximage \pdftex_pdflastximage:D @@ -834,7 +1611,7 @@ \__kernel_primitive:NN \pdfeachlineheight \pdftex_eachlineheight:D \__kernel_primitive:NN \pdffilemoddate \pdftex_filemoddate:D \__kernel_primitive:NN \pdffilesize \pdftex_filesize:D - \__kernel_primitive:NN \pdffirstlineheigh \pdftex_firstlineheight:D + \__kernel_primitive:NN \pdffirstlineheight \pdftex_firstlineheight:D \__kernel_primitive:NN \pdffontexpand \pdftex_fontexpand:D \__kernel_primitive:NN \pdffontsize \pdftex_fontsize:D \__kernel_primitive:NN \pdfignoreddimen \pdftex_ignoreddimen:D @@ -874,15 +1651,42 @@ \__kernel_primitive:NN \rpcode \pdftex_rpcode:D \__kernel_primitive:NN \synctex \pdftex_synctex:D \__kernel_primitive:NN \tagcode \pdftex_tagcode:D - \tex_long:D \tex_def:D \use_ii:nn #1#2 {#2} - \tex_long:D \tex_def:D \use_none:n #1 { } - \tex_long:D \tex_def:D \__kernel_primitive:NN #1#2 - { - \etex_ifdefined:D #1 - \tex_expandafter:D \use_ii:nn - \tex_fi:D - \use_none:n { \tex_global:D \tex_let:D #2 #1 } - } + \__kernel_primitive:NN \mdfivesum \pdftex_mdfivesum:D + \__kernel_primitive:NN \ifprimitive \pdftex_ifprimitive:D + \__kernel_primitive:NN \primitive \pdftex_primitive:D + \__kernel_primitive:NN \shellescape \pdftex_shellescape:D + \__kernel_primitive:NN \adjustspacing \pdftex_adjustspacing:D + \__kernel_primitive:NN \copyfont \pdftex_copyfont:D + \__kernel_primitive:NN \draftmode \pdftex_draftmode:D + \__kernel_primitive:NN \expandglyphsinfont \pdftex_fontexpand:D + \__kernel_primitive:NN \ifabsdim \pdftex_ifabsdim:D + \__kernel_primitive:NN \ifabsnum \pdftex_ifabsnum:D + \__kernel_primitive:NN \ignoreligaturesinfont + \pdftex_ignoreligaturesinfont:D + \__kernel_primitive:NN \insertht \pdftex_insertht:D + \__kernel_primitive:NN \lastsavedboxresourceindex + \pdftex_pdflastxform:D + \__kernel_primitive:NN \lastsavedimageresourceindex + \pdftex_pdflastximage:D + \__kernel_primitive:NN \lastsavedimageresourcepages + \pdftex_pdflastximagepages:D + \__kernel_primitive:NN \lastxpos \pdftex_lastxpos:D + \__kernel_primitive:NN \lastypos \pdftex_lastypos:D + \__kernel_primitive:NN \normaldeviate \pdftex_normaldeviate:D + \__kernel_primitive:NN \outputmode \pdftex_pdfoutput:D + \__kernel_primitive:NN \pageheight \pdftex_pageheight:D + \__kernel_primitive:NN \pagewidth \pdftex_pagewith:D + \__kernel_primitive:NN \protrudechars \pdftex_protrudechars:D + \__kernel_primitive:NN \pxdimen \pdftex_pxdimen:D + \__kernel_primitive:NN \randomseed \pdftex_randomseed:D + \__kernel_primitive:NN \useboxresource \pdftex_pdfrefxform:D + \__kernel_primitive:NN \useimageresource \pdftex_pdfrefximage:D + \__kernel_primitive:NN \savepos \pdftex_savepos:D + \__kernel_primitive:NN \saveboxresource \pdftex_pdfxform:D + \__kernel_primitive:NN \saveimageresource \pdftex_pdfximage:D + \__kernel_primitive:NN \setrandomseed \pdftex_setrandomseed:D + \__kernel_primitive:NN \tracingfonts \pdftex_tracingfonts:D + \__kernel_primitive:NN \uniformdeviate \pdftex_uniformdeviate:D \__kernel_primitive:NN \suppressfontnotfounderror \xetex_suppressfontnotfounderror:D \__kernel_primitive:NN \XeTeXcharclass \xetex_charclass:D @@ -943,10 +1747,6 @@ \__kernel_primitive:NN \XeTeXvariationname \xetex_variationname:D \__kernel_primitive:NN \XeTeXrevision \xetex_XeTeXrevision:D \__kernel_primitive:NN \XeTeXversion \xetex_XeTeXversion:D - \__kernel_primitive:NN \mdfivesum \pdftex_mdfivesum:D - \__kernel_primitive:NN \ifprimitive \pdftex_ifprimitive:D - \__kernel_primitive:NN \primitive \pdftex_primitive:D - \__kernel_primitive:NN \shellescape \pdftex_shellescape:D \__kernel_primitive:NN \alignmark \luatex_alignmark:D \__kernel_primitive:NN \aligntab \luatex_aligntab:D \__kernel_primitive:NN \attribute \luatex_attribute:D @@ -1060,38 +1860,6 @@ \__kernel_primitive:NN \pardir \luatex_pardir:D \__kernel_primitive:NN \rightghost \luatex_rightghost:D \__kernel_primitive:NN \textdir \luatex_textdir:D - \__kernel_primitive:NN \adjustspacing \pdftex_adjustspacing:D - \__kernel_primitive:NN \copyfont \pdftex_copyfont:D - \__kernel_primitive:NN \draftmode \pdftex_draftmode:D - \__kernel_primitive:NN \expandglyphsinfont \pdftex_fontexpand:D - \__kernel_primitive:NN \ifabsdim \pdftex_ifabsdim:D - \__kernel_primitive:NN \ifabsnum \pdftex_ifabsnum:D - \__kernel_primitive:NN \ignoreligaturesinfont - \pdftex_ignoreligaturesinfont:D - \__kernel_primitive:NN \insertht \pdftex_insertht:D - \__kernel_primitive:NN \lastsavedboxresourceindex - \pdftex_pdflastxform:D - \__kernel_primitive:NN \lastsavedimageresourceindex - \pdftex_pdflastximage:D - \__kernel_primitive:NN \lastsavedimageresourcepages - \pdftex_pdflastximagepages:D - \__kernel_primitive:NN \lastxpos \pdftex_lastxpos:D - \__kernel_primitive:NN \lastypos \pdftex_lastypos:D - \__kernel_primitive:NN \normaldeviate \pdftex_normaldeviate:D - \__kernel_primitive:NN \outputmode \pdftex_pdfoutput:D - \__kernel_primitive:NN \pageheight \pdftex_pageheight:D - \__kernel_primitive:NN \pagewidth \pdftex_pagewith:D - \__kernel_primitive:NN \protrudechars \pdftex_protrudechars:D - \__kernel_primitive:NN \pxdimen \pdftex_pxdimen:D - \__kernel_primitive:NN \randomseed \pdftex_randomseed:D - \__kernel_primitive:NN \useboxresource \pdftex_pdfrefxform:D - \__kernel_primitive:NN \useimageresource \pdftex_pdfrefximage:D - \__kernel_primitive:NN \savepos \pdftex_savepos:D - \__kernel_primitive:NN \saveboxresource \pdftex_pdfxform:D - \__kernel_primitive:NN \saveimageresource \pdftex_pdfximage:D - \__kernel_primitive:NN \setrandomseed \pdftex_setrandomseed:D - \__kernel_primitive:NN \tracingfonts \pdftex_tracingfonts:D - \__kernel_primitive:NN \uniformdeviate \pdftex_uniformdeviate:D \__kernel_primitive:NN \Uchar \utex_char:D \__kernel_primitive:NN \Ucharcat \utex_charcat:D \__kernel_primitive:NN \Udelcode \utex_delcode:D @@ -1287,6 +2055,8 @@ \__kernel_primitive:NN \noautoxspacing \ptex_noautoxspacing:D \__kernel_primitive:NN \postbreakpenalty \ptex_postbreakpenalty:D \__kernel_primitive:NN \prebreakpenalty \ptex_prebreakpenalty:D + \__kernel_primitive:NN \ptexminorversion \ptex_ptexminorversion:D + \__kernel_primitive:NN \ptexrevision \ptex_ptexrevision:D \__kernel_primitive:NN \ptexversion \ptex_ptexversion:D \__kernel_primitive:NN \showmode \ptex_showmode:D \__kernel_primitive:NN \sjis \ptex_sjis:D @@ -1304,171 +2074,19 @@ \__kernel_primitive:NN \kchardef \uptex_kchardef:D \__kernel_primitive:NN \kuten \uptex_kuten:D \__kernel_primitive:NN \ucs \uptex_ucs:D + \__kernel_primitive:NN \uptexrevision \uptex_uptexrevision:D \__kernel_primitive:NN \uptexversion \uptex_uptexversion:D + } + } + \__kernel_primitives: \tex_endgroup:D -\etex_ifdefined:D \@@end - \tex_let:D \tex_end:D \@@end - \tex_let:D \tex_everydisplay:D \frozen@everydisplay - \tex_let:D \tex_everymath:D \frozen@everymath - \tex_let:D \tex_hyphen:D \@@hyph - \tex_let:D \tex_input:D \@@input - \tex_let:D \tex_italiccorrection:D \@@italiccorr - \tex_let:D \tex_underline:D \@@underline - \etex_ifdefined:D \@@shipout - \tex_let:D \tex_shipout:D \@@shipout - \tex_fi:D - \tex_begingroup:D - \tex_edef:D \l_tmpa_tl { \tex_string:D \shipout } - \tex_edef:D \l_tmpb_tl { \tex_meaning:D \shipout } - \tex_ifx:D \l_tmpa_tl \l_tmpb_tl - \tex_else:D - \tex_expandafter:D \@tfor \tex_expandafter:D \@tempa \tex_string:D := - \CROP@shipout - \dup@shipout - \GPTorg@shipout - \LL@shipout - \mem@oldshipout - \opem@shipout - \pgfpages@originalshipout - \pr@shipout - \Shipout - \verso@orig@shipout - \do - { - \tex_edef:D \l_tmpb_tl - { \tex_expandafter:D \tex_meaning:D \@tempa } - \tex_ifx:D \l_tmpa_tl \l_tmpb_tl - \tex_global:D \tex_expandafter:D \tex_let:D - \tex_expandafter:D \tex_shipout:D \@tempa - \tex_fi:D - } - \tex_fi:D - \tex_endgroup:D - \tex_let:D \pdftex_tracingfonts:D \tex_undefined:D - \etex_ifdefined:D \pdftracingfonts - \tex_let:D \pdftex_tracingfonts:D \pdftracingfonts - \tex_else:D - \etex_ifdefined:D \luatex_directlua:D - \luatex_directlua:D { tex.enableprimitives("@@", {"tracingfonts"}) } - \tex_let:D \pdftex_tracingfonts:D \luatextracingfonts - \tex_fi:D - \tex_fi:D -\tex_fi:D -\etex_ifdefined:D \luatexsuppressfontnotfounderror - \tex_let:D \luatex_alignmark:D \luatexalignmark - \tex_let:D \luatex_aligntab:D \luatexaligntab - \tex_let:D \luatex_attribute:D \luatexattribute - \tex_let:D \luatex_attributedef:D \luatexattributedef - \tex_let:D \luatex_catcodetable:D \luatexcatcodetable - \tex_let:D \luatex_clearmarks:D \luatexclearmarks - \tex_let:D \luatex_crampeddisplaystyle:D \luatexcrampeddisplaystyle - \tex_let:D \luatex_crampedscriptscriptstyle:D - \luatexcrampedscriptscriptstyle - \tex_let:D \luatex_crampedscriptstyle:D \luatexcrampedscriptstyle - \tex_let:D \luatex_crampedtextstyle:D \luatexcrampedtextstyle - \tex_let:D \luatex_fontid:D \luatexfontid - \tex_let:D \luatex_formatname:D \luatexformatname - \tex_let:D \luatex_gleaders:D \luatexgleaders - \tex_let:D \luatex_initcatcodetable:D \luatexinitcatcodetable - \tex_let:D \luatex_latelua:D \luatexlatelua - \tex_let:D \luatex_luaescapestring:D \luatexluaescapestring - \tex_let:D \luatex_luafunction:D \luatexluafunction - \tex_let:D \luatex_mathstyle:D \luatexmathstyle - \tex_let:D \luatex_nokerns:D \luatexnokerns - \tex_let:D \luatex_noligs:D \luatexnoligs - \tex_let:D \luatex_outputbox:D \luatexoutputbox - \tex_let:D \luatex_pageleftoffset:D \luatexpageleftoffset - \tex_let:D \luatex_pagetopoffset:D \luatexpagetopoffset - \tex_let:D \luatex_postexhyphenchar:D \luatexpostexhyphenchar - \tex_let:D \luatex_posthyphenchar:D \luatexposthyphenchar - \tex_let:D \luatex_preexhyphenchar:D \luatexpreexhyphenchar - \tex_let:D \luatex_prehyphenchar:D \luatexprehyphenchar - \tex_let:D \luatex_savecatcodetable:D \luatexsavecatcodetable - \tex_let:D \luatex_scantextokens:D \luatexscantextokens - \tex_let:D \luatex_suppressifcsnameerror:D - \luatexsuppressifcsnameerror - \tex_let:D \luatex_suppresslongerror:D \luatexsuppresslongerror - \tex_let:D \luatex_suppressmathparerror:D - \luatexsuppressmathparerror - \tex_let:D \luatex_suppressoutererror:D \luatexsuppressoutererror - \tex_let:D \utex_char:D \luatexUchar - \tex_let:D \xetex_suppressfontnotfounderror:D - \luatexsuppressfontnotfounderror - \tex_let:D \luatex_bodydir:D \luatexbodydir - \tex_let:D \luatex_boxdir:D \luatexboxdir - \tex_let:D \luatex_leftghost:D \luatexleftghost - \tex_let:D \luatex_localbrokenpenalty:D \luatexlocalbrokenpenalty - \tex_let:D \luatex_localinterlinepenalty:D - \luatexlocalinterlinepenalty - \tex_let:D \luatex_localleftbox:D \luatexlocalleftbox - \tex_let:D \luatex_localrightbox:D \luatexlocalrightbox - \tex_let:D \luatex_mathdir:D \luatexmathdir - \tex_let:D \luatex_pagebottomoffset:D \luatexpagebottomoffset - \tex_let:D \luatex_pagedir:D \luatexpagedir - \tex_let:D \pdftex_pageheight:D \luatexpageheight - \tex_let:D \luatex_pagerightoffset:D \luatexpagerightoffset - \tex_let:D \pdftex_pagewidth:D \luatexpagewidth - \tex_let:D \luatex_pardir:D \luatexpardir - \tex_let:D \luatex_rightghost:D \luatexrightghost - \tex_let:D \luatex_textdir:D \luatextextdir -\tex_fi:D -\tex_ifnum:D 0 - \etex_ifdefined:D \pdftex_pdftexversion:D 1 \tex_fi:D - \etex_ifdefined:D \luatex_luatexversion:D 1 \tex_fi:D - = 0 % - \tex_let:D \pdftex_mapfile:D \tex_undefined:D - \tex_let:D \pdftex_mapline:D \tex_undefined:D -\tex_fi:D -\etex_ifdefined:D \XeTeXdelcode - \tex_let:D \utex_delcode:D \XeTeXdelcode - \tex_let:D \utex_delcodenum:D \XeTeXdelcodenum - \tex_let:D \utex_delimiter:D \XeTeXdelimiter - \tex_let:D \utex_mathaccent:D \XeTeXmathaccent - \tex_let:D \utex_mathchar:D \XeTeXmathchar - \tex_let:D \utex_mathchardef:D \XeTeXmathchardef - \tex_let:D \utex_mathcharnum:D \XeTeXmathcharnum - \tex_let:D \utex_mathcharnumdef:D \XeTeXmathcharnumdef - \tex_let:D \utex_mathcode:D \XeTeXmathcode - \tex_let:D \utex_mathcodenum:D \XeTeXmathcodenum -\tex_fi:D -\etex_ifdefined:D \luatex_luatexversion:D - \tex_let:D \pdftex_pdftexbanner:D \tex_undefined:D - \tex_let:D \pdftex_pdftexrevision:D \tex_undefined:D - \tex_let:D \pdftex_pdftexversion:D \tex_undefined:D -\tex_fi:D -\etex_ifdefined:D \normalend - \tex_let:D \tex_end:D \normalend - \tex_let:D \tex_everyjob:D \normaleveryjob - \tex_let:D \tex_input:D \normalinput - \tex_let:D \tex_language:D \normallanguage - \tex_let:D \tex_mathop:D \normalmathop - \tex_let:D \tex_month:D \normalmonth - \tex_let:D \tex_outer:D \normalouter - \tex_let:D \tex_over:D \normalover - \tex_let:D \tex_vcenter:D \normalvcenter - \tex_let:D \etex_unexpanded:D \normalunexpanded - \tex_let:D \luatex_expanded:D \normalexpanded -\tex_fi:D -\etex_ifdefined:D \normalitaliccorrection - \tex_let:D \tex_hoffset:D \normalhoffset - \tex_let:D \tex_italiccorrection:D \normalitaliccorrection - \tex_let:D \tex_voffset:D \normalvoffset - \tex_let:D \etex_showtokens:D \normalshowtokens - \tex_let:D \luatex_bodydir:D \spac_directions_normal_body_dir - \tex_let:D \luatex_pagedir:D \spac_directions_normal_page_dir -\tex_fi:D -\etex_ifdefined:D \normalleft - \tex_let:D \tex_left:D \normalleft - \tex_let:D \tex_middle:D \normalmiddle - \tex_let:D \tex_right:D \normalright -\tex_fi:D %% File: l3basics.dtx Copyright (C) 1990-2018 The LaTeX3 project \tex_let:D \if_true: \tex_iftrue:D \tex_let:D \if_false: \tex_iffalse:D \tex_let:D \or: \tex_or:D \tex_let:D \else: \tex_else:D \tex_let:D \fi: \tex_fi:D -\tex_let:D \reverse_if:N \etex_unless:D +\tex_let:D \reverse_if:N \tex_unless:D \tex_let:D \if:w \tex_if:D \tex_let:D \if_charcode:w \tex_if:D \tex_let:D \if_catcode:w \tex_ifcat:D @@ -1477,20 +2095,20 @@ \tex_let:D \if_mode_horizontal: \tex_ifhmode:D \tex_let:D \if_mode_vertical: \tex_ifvmode:D \tex_let:D \if_mode_inner: \tex_ifinner:D -\tex_let:D \if_cs_exist:N \etex_ifdefined:D -\tex_let:D \if_cs_exist:w \etex_ifcsname:D +\tex_let:D \if_cs_exist:N \tex_ifdefined:D +\tex_let:D \if_cs_exist:w \tex_ifcsname:D \tex_let:D \cs:w \tex_csname:D \tex_let:D \cs_end: \tex_endcsname:D \tex_let:D \exp_after:wN \tex_expandafter:D \tex_let:D \exp_not:N \tex_noexpand:D -\tex_let:D \exp_not:n \etex_unexpanded:D +\tex_let:D \exp_not:n \tex_unexpanded:D \tex_let:D \exp:w \tex_romannumeral:D \tex_chardef:D \exp_end: = 0 ~ \tex_let:D \token_to_meaning:N \tex_meaning:D \tex_let:D \cs_meaning:N \tex_meaning:D -\tex_let:D \tl_to_str:n \etex_detokenize:D +\tex_let:D \tl_to_str:n \tex_detokenize:D \tex_let:D \token_to_str:N \tex_string:D -\tex_let:D \__kernel_tl_to_str:w \etex_detokenize:D +\tex_let:D \__kernel_tl_to_str:w \tex_detokenize:D \tex_let:D \scan_stop: \tex_relax:D \tex_let:D \group_begin: \tex_begingroup:D \tex_let:D \group_end: \tex_endgroup:D @@ -1513,26 +2131,26 @@ { \tl_to_str:n {undefined} } } \tex_let:D \token_to_meaning:c = \cs_meaning:c -\tex_chardef:D \c_zero = 0 ~ -\etex_ifdefined:D \luatex_luatexversion:D +\tex_chardef:D \c_zero_int = 0 ~ +\tex_ifdefined:D \tex_luatexversion:D \tex_chardef:D \c_max_register_int = 65 535 ~ \tex_else:D \tex_mathchardef:D \c_max_register_int = 32 767 ~ \tex_fi:D \tex_let:D \cs_set_nopar:Npn \tex_def:D \tex_let:D \cs_set_nopar:Npx \tex_edef:D -\etex_protected:D \tex_long:D \tex_def:D \cs_set:Npn +\tex_protected:D \tex_long:D \tex_def:D \cs_set:Npn { \tex_long:D \tex_def:D } -\etex_protected:D \tex_long:D \tex_def:D \cs_set:Npx +\tex_protected:D \tex_long:D \tex_def:D \cs_set:Npx { \tex_long:D \tex_edef:D } -\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npn - { \etex_protected:D \tex_def:D } -\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npx - { \etex_protected:D \tex_edef:D } -\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npn - { \etex_protected:D \tex_long:D \tex_def:D } -\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npx - { \etex_protected:D \tex_long:D \tex_edef:D } +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npn + { \tex_protected:D \tex_def:D } +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npx + { \tex_protected:D \tex_edef:D } +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npn + { \tex_protected:D \tex_long:D \tex_def:D } +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npx + { \tex_protected:D \tex_long:D \tex_edef:D } \tex_let:D \cs_gset_nopar:Npn \tex_gdef:D \tex_let:D \cs_gset_nopar:Npx \tex_xdef:D \cs_set_protected:Npn \cs_gset:Npn @@ -1540,13 +2158,13 @@ \cs_set_protected:Npn \cs_gset:Npx { \tex_long:D \tex_xdef:D } \cs_set_protected:Npn \cs_gset_protected_nopar:Npn - { \etex_protected:D \tex_gdef:D } + { \tex_protected:D \tex_gdef:D } \cs_set_protected:Npn \cs_gset_protected_nopar:Npx - { \etex_protected:D \tex_xdef:D } + { \tex_protected:D \tex_xdef:D } \cs_set_protected:Npn \cs_gset_protected:Npn - { \etex_protected:D \tex_long:D \tex_gdef:D } + { \tex_protected:D \tex_long:D \tex_gdef:D } \cs_set_protected:Npn \cs_gset_protected:Npx - { \etex_protected:D \tex_long:D \tex_xdef:D } + { \tex_protected:D \tex_long:D \tex_xdef:D } \cs_set_nopar:Npn \l__exp_internal_tl { } \cs_set:Npn \use:c #1 { \cs:w #1 \cs_end: } \cs_set_protected:Npn \use:x #1 @@ -1554,7 +2172,7 @@ \cs_set_nopar:Npx \l__exp_internal_tl {#1} \l__exp_internal_tl } -\cs_set:Npn \use_x:n #1 { \luatex_expanded:D {#1} } +\cs_set:Npn \use_x:n #1 { \tex_expanded:D {#1} } \cs_set:Npn \use:n #1 {#1} \cs_set:Npn \use:nn #1#2 {#1#2} \cs_set:Npn \use:nnn #1#2#3 {#1#2#3} @@ -1607,6 +2225,26 @@ { \__kernel_msg_error:nnn { kernel } { debug } {##1} } } } + \cs_set_protected:Npn \__debug_all_on: + { + \debug_on:n + { + check-declarations , + check-expressions , + deprecation , + log-functions , + } + } + \cs_set_protected:Npn \__debug_all_off: + { + \debug_off:n + { + check-declarations , + check-expressions , + deprecation , + log-functions , + } + } } { \cs_set_protected:Npn \debug_on:n #1 @@ -1900,43 +2538,43 @@ \cs_set:Npn \prg_return_false: { \exp_after:wN \use_ii:nn \exp:w} \cs_set_protected:Npn \prg_set_conditional:Npnn - { \__prg_generate_conditional_parm:nnNpnn { set } { } } + { \__prg_generate_conditional_parm:NNNpnn \cs_set:Npn e } \cs_set_protected:Npn \prg_new_conditional:Npnn - { \__prg_generate_conditional_parm:nnNpnn { new } { } } + { \__prg_generate_conditional_parm:NNNpnn \cs_new:Npn e } \cs_set_protected:Npn \prg_set_protected_conditional:Npnn - { \__prg_generate_conditional_parm:nnNpnn { set } { _protected } } + { \__prg_generate_conditional_parm:NNNpnn \cs_set_protected:Npn p } \cs_set_protected:Npn \prg_new_protected_conditional:Npnn - { \__prg_generate_conditional_parm:nnNpnn { new } { _protected } } -\cs_set_protected:Npn \__prg_generate_conditional_parm:nnNpnn #1#2#3#4# + { \__prg_generate_conditional_parm:NNNpnn \cs_new_protected:Npn p } +\cs_set_protected:Npn \__prg_generate_conditional_parm:NNNpnn #1#2#3#4# { \use:x { - \__prg_generate_conditional:nnNnnnnn + \__prg_generate_conditional:nnNNNnnn \cs_split_function:N #3 } - {#1} {#2} {#4} + #1 #2 {#4} } \cs_set_protected:Npn \prg_set_conditional:Nnn - { \__prg_generate_conditional_count:nnNnn { set } { } } + { \__prg_generate_conditional_count:NNNnn \cs_set:Npn e } \cs_set_protected:Npn \prg_new_conditional:Nnn - { \__prg_generate_conditional_count:nnNnn { new } { } } + { \__prg_generate_conditional_count:NNNnn \cs_new:Npn e } \cs_set_protected:Npn \prg_set_protected_conditional:Nnn - { \__prg_generate_conditional_count:nnNnn { set } { _protected } } + { \__prg_generate_conditional_count:NNNnn \cs_set_protected:Npn p } \cs_set_protected:Npn \prg_new_protected_conditional:Nnn - { \__prg_generate_conditional_count:nnNnn { new } { _protected } } -\cs_set_protected:Npn \__prg_generate_conditional_count:nnNnn #1#2#3 + { \__prg_generate_conditional_count:NNNnn \cs_new_protected:Npn p } +\cs_set_protected:Npn \__prg_generate_conditional_count:NNNnn #1#2#3 { \use:x { - \__prg_generate_conditional_count:nnNnnnn + \__prg_generate_conditional_count:nnNNNnn \cs_split_function:N #3 } - {#1} {#2} + #1 #2 } -\cs_set_protected:Npn \__prg_generate_conditional_count:nnNnnnn #1#2#3#4#5 +\cs_set_protected:Npn \__prg_generate_conditional_count:nnNNNnn #1#2#3#4#5 { \__kernel_cs_parm_from_arg_count:nnF - { \__prg_generate_conditional:nnNnnnnn {#1} {#2} #3 {#4} {#5} } + { \__prg_generate_conditional:nnNNNnnn {#1} {#2} #3 #4 #5 } { \tl_count:n {#2} } { \__kernel_msg_error:nnxx { kernel } { bad-number-of-arguments } @@ -1945,7 +2583,7 @@ \use_none:nn } } -\cs_set_protected:Npn \__prg_generate_conditional:nnNnnnnn #1#2#3#4#5#6#7#8 +\cs_set_protected:Npn \__prg_generate_conditional:nnNNNnnn #1#2#3#4#5#6#7#8 { \if_meaning:w \c_false_bool #3 \__kernel_msg_error:nnx { kernel } { missing-colon } @@ -1954,64 +2592,84 @@ \fi: \use:x { - \exp_not:N \__prg_generate_conditional:nnnnnnw - \exp_not:n { {#4} {#5} {#1} {#2} {#6} {#8} } + \exp_not:N \__prg_generate_conditional:NNnnnnNw + \exp_not:n { #4 #5 {#1} {#2} {#6} } + \__prg_generate_conditional_test:w + #8 \q_mark + \__prg_generate_conditional_fast:nw + \prg_return_true: \else: \prg_return_false: \fi: \q_mark + \use_none:n + \exp_not:n { {#8} \use_i_ii:nnn } \tl_to_str:n {#7} \exp_not:n { , \q_recursion_tail , \q_recursion_stop } } } -\cs_set_protected:Npn \__prg_generate_conditional:nnnnnnw #1#2#3#4#5#6#7 , +\cs_set:Npn \__prg_generate_conditional_test:w + #1 \prg_return_true: \else: \prg_return_false: \fi: \q_mark #2 + { #2 {#1} } +\cs_set:Npn \__prg_generate_conditional_fast:nw #1#2 \exp_not:n #3 + { \exp_not:n { {#1} \use_i:nn } } +\cs_set_protected:Npn \__prg_generate_conditional:NNnnnnNw #1#2#3#4#5#6#7#8 , { - \if_meaning:w \q_recursion_tail #7 + \if_meaning:w \q_recursion_tail #8 \exp_after:wN \use_none_delimit_by_q_recursion_stop:w \fi: - \use:c { __prg_generate_ #7 _form:wnnnnnn } - \tl_if_empty:nF {#7} + \use:c { __prg_generate_ #8 _form:wNNnnnnN } + \tl_if_empty:nF {#8} { \__kernel_msg_error:nnxx { kernel } { conditional-form-unknown } - {#7} { \token_to_str:c { #3 : #4 } } + {#8} { \token_to_str:c { #3 : #4 } } } - \use_none:nnnnnnn + \use_none:nnnnnnnn \q_stop - {#1} {#2} {#3} {#4} {#5} {#6} - \__prg_generate_conditional:nnnnnnw {#1} {#2} {#3} {#4} {#5} {#6} + #1 #2 {#3} {#4} {#5} {#6} #7 + \__prg_generate_conditional:NNnnnnNw #1 #2 {#3} {#4} {#5} {#6} #7 } -\cs_set_protected:Npn \__prg_generate_p_form:wnnnnnn - #1 \q_stop #2#3#4#5#6#7 +\cs_set_protected:Npn \__prg_generate_p_form:wNNnnnnN + #1 \q_stop #2#3#4#5#6#7#8 { - \if_meaning:w \scan_stop: #3 \scan_stop: + \if_meaning:w e #3 \exp_after:wN \use_i:nn \else: \exp_after:wN \use_ii:nn \fi: { - \exp_args:cc { cs_ #2 #3 :Npn } { #4 _p: #5 } #6 - { #7 \exp_end: \c_true_bool \c_false_bool } + #8 + { \exp_args:Nc #2 { #4 _p: #5 } #6 } + { { #7 \exp_end: \c_true_bool \c_false_bool } } + { #7 \__prg_p_true:w \fi: \c_false_bool } } { \__kernel_msg_error:nnx { kernel } { protected-predicate } { \token_to_str:c { #4 _p: #5 } } } } -\cs_set_protected:Npn \__prg_generate_T_form:wnnnnnn - #1 \q_stop #2#3#4#5#6#7 +\cs_set_protected:Npn \__prg_generate_T_form:wNNnnnnN + #1 \q_stop #2#3#4#5#6#7#8 { - \exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 T } #6 - { #7 \exp_end: \use:n \use_none:n } + #8 + { \exp_args:Nc #2 { #4 : #5 T } #6 } + { { #7 \exp_end: \use:n \use_none:n } } + { #7 \exp_after:wN \use_ii:nn \fi: \use_none:n } } -\cs_set_protected:Npn \__prg_generate_F_form:wnnnnnn - #1 \q_stop #2#3#4#5#6#7 +\cs_set_protected:Npn \__prg_generate_F_form:wNNnnnnN + #1 \q_stop #2#3#4#5#6#7#8 { - \exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 F } #6 - { #7 \exp_end: { } } + #8 + { \exp_args:Nc #2 { #4 : #5 F } #6 } + { { #7 \exp_end: { } } } + { #7 \exp_after:wN \use_none:nn \fi: \use:n } } -\cs_set_protected:Npn \__prg_generate_TF_form:wnnnnnn - #1 \q_stop #2#3#4#5#6#7 +\cs_set_protected:Npn \__prg_generate_TF_form:wNNnnnnN + #1 \q_stop #2#3#4#5#6#7#8 { - \exp_args:cc { cs_ #2 #3 :Npn } { #4 : #5 TF } #6 - { #7 \exp_end: } + #8 + { \exp_args:Nc #2 { #4 : #5 TF } #6 } + { { #7 \exp_end: } } + { #7 \exp_after:wN \use_ii:nnn \fi: \use_ii:nn } } +\cs_set:Npn \__prg_p_true:w \fi: \c_false_bool { \fi: \c_true_bool } \cs_set_protected:Npn \prg_set_eq_conditional:NNn { \__prg_set_eq_conditional:NNNn \cs_set_eq:cc } \cs_set_protected:Npn \prg_new_eq_conditional:NNn @@ -2083,9 +2741,9 @@ \if:w \token_to_str:N \ \__cs_to_str:w \fi: \exp_after:wN \__cs_to_str:N \token_to_str:N } -\cs_set:Npn \__cs_to_str:N #1 { \c_zero } +\cs_set:Npn \__cs_to_str:N #1 { \c_zero_int } \cs_set:Npn \__cs_to_str:w #1 \__cs_to_str:N - { - \int_value:w \fi: \exp_after:wN \c_zero } + { - \int_value:w \fi: \exp_after:wN \c_zero_int } \cs_set_protected:Npn \__cs_tmp:w #1 { \cs_set:Npn \cs_split_function:N ##1 @@ -2747,6 +3405,12 @@ \exp_after:wN #2 \exp:w \__exp_eval_register:N #3 } +\cs_new:Npn \exp_last_unbraced:NNf #1#2#3 + { + \exp_after:wN #1 + \exp_after:wN #2 + \exp:w \exp_end_continue_f:w #3 + } \cs_new:Npn \exp_last_unbraced:Nco #1#2#3 { \exp_after:wN #1 \cs:w #2 \exp_after:wN \cs_end: #3 } \cs_new:Npn \exp_last_unbraced:NcV #1#2#3 @@ -2764,22 +3428,37 @@ \exp_after:wN #3 \exp:w \__exp_eval_register:N #4 } +\cs_new:Npn \exp_last_unbraced:NNNf #1#2#3#4 + { + \exp_after:wN #1 + \exp_after:wN #2 + \exp_after:wN #3 + \exp:w \exp_end_continue_f:w #4 + } \cs_new:Npn \exp_last_unbraced:Nno { \::n \::o_unbraced \::: } \cs_new:Npn \exp_last_unbraced:Noo { \::o \::o_unbraced \::: } \cs_new:Npn \exp_last_unbraced:Nfo { \::f \::o_unbraced \::: } \cs_new:Npn \exp_last_unbraced:NnNo { \::n \::N \::o_unbraced \::: } \cs_new:Npn \exp_last_unbraced:NNNNo #1#2#3#4#5 { \exp_after:wN #1 \exp_after:wN #2 \exp_after:wN #3 \exp_after:wN #4 #5 } +\cs_new:Npn \exp_last_unbraced:NNNNf #1#2#3#4#5 + { + \exp_after:wN #1 + \exp_after:wN #2 + \exp_after:wN #3 + \exp_after:wN #4 + \exp:w \exp_end_continue_f:w #5 + } \cs_new_protected:Npn \exp_last_unbraced:Nx { \::x_unbraced \::: } \cs_new:Npn \exp_last_two_unbraced:Noo #1#2#3 { \exp_after:wN \__exp_last_two_unbraced:noN \exp_after:wN {#3} {#2} #1 } \cs_new:Npn \__exp_last_two_unbraced:noN #1#2#3 { \exp_after:wN #3 #2 #1 } -\cs_new_eq:NN \__kernel_exp_not:w \etex_unexpanded:D +\cs_new_eq:NN \__kernel_exp_not:w \tex_unexpanded:D \cs_new:Npn \exp_not:c #1 { \exp_after:wN \exp_not:N \cs:w #1 \cs_end: } \cs_new:Npn \exp_not:o #1 { \__kernel_exp_not:w \exp_after:wN {#1} } \cs_new:Npn \exp_not:f #1 - { \etex_unexpanded:D \exp_after:wN { \exp:w \exp_end_continue_f:w #1 } } + { \tex_unexpanded:D \exp_after:wN { \exp:w \exp_end_continue_f:w #1 } } \cs_new:Npn \exp_not:V #1 { \__kernel_exp_not:w \exp_after:wN @@ -3287,7 +3966,7 @@ } { \group_begin: - \exp_args:No \etex_everyeof:D + \exp_args:No \tex_everyeof:D { \c__tl_rescan_marker_tl \exp_not:N } \int_compare:nNnT \tex_endlinechar:D = { 32 } { \int_set:Nn \tex_endlinechar:D { -1 } } @@ -3305,7 +3984,7 @@ { \exp_after:wN \__tl_rescan:w \exp_after:wN \prg_do_nothing: - \etex_scantokens:D {#1} + \tex_scantokens:D {#1} } } \exp_args:Nno \use:nn @@ -3355,7 +4034,7 @@ \exp_not:n { \cs_set:Npn \__tl_rescan:w ##1 } \exp_after:wN \__tl_rescan:w \exp_after:wN \prg_do_nothing: - \etex_scantokens:D {#1} + \tex_scantokens:D {#1} } \c__tl_rescan_marker_tl } @@ -3370,7 +4049,7 @@ = { 10 } { ~ } \exp_after:wN \__tl_rescan:w \exp_after:wN \prg_do_nothing: - \etex_scantokens:D { #2 #1 } + \tex_scantokens:D { #2 #1 } } } \group_end: @@ -3456,7 +4135,13 @@ \cs_generate_variant:Nn \tl_remove_all:Nn { c } \cs_generate_variant:Nn \tl_gremove_all:Nn { c } \prg_new_conditional:Npnn \tl_if_blank:n #1 { p , T , F , TF } - { \__tl_if_empty_return:o { \use_none:n #1 ? } } + { + \__tl_if_empty_if:o { \use_none:n #1 ? } + \prg_return_true: + \else: + \prg_return_false: + \fi: + } \prg_generate_conditional_variant:Nnn \tl_if_blank:n { V , o } { p , T , F , TF } \prg_new_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF } @@ -3480,17 +4165,19 @@ } \prg_generate_conditional_variant:Nnn \tl_if_empty:n { V } { p , TF , T , F } -\cs_new:Npn \__tl_if_empty_return:o #1 +\cs_new:Npn \__tl_if_empty_if:o #1 { \exp_after:wN \if_meaning:w \exp_after:wN \q_nil \__kernel_tl_to_str:w \exp_after:wN {#1} \q_nil + } +\prg_new_conditional:Npnn \tl_if_empty:o #1 { p , TF , T , F } + { + \__tl_if_empty_if:o {#1} \prg_return_true: \else: \prg_return_false: \fi: - } -\prg_new_conditional:Npnn \tl_if_empty:o #1 { p , TF , T , F } - { \__tl_if_empty_return:o {#1} } + } \prg_new_conditional:Npnn \tl_if_eq:NN #1#2 { p , T , F , TF } { \if_meaning:w #1 #2 @@ -3506,13 +4193,13 @@ \group_begin: \tl_set:Nn \l__tl_internal_a_tl {#1} \tl_set:Nn \l__tl_internal_b_tl {#2} - \if_meaning:w \l__tl_internal_a_tl \l__tl_internal_b_tl - \group_end: - \prg_return_true: - \else: - \group_end: - \prg_return_false: - \fi: + \exp_after:wN + \group_end: + \if_meaning:w \l__tl_internal_a_tl \l__tl_internal_b_tl + \prg_return_true: + \else: + \prg_return_false: + \fi: } \tl_new:N \l__tl_internal_a_tl \tl_new:N \l__tl_internal_b_tl @@ -3991,7 +4678,7 @@ { \__kernel_iow_with:Nnn \tex_errorcontextlines:D { -1 } { - \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN + \tex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \l__tl_internal_a_tl } } } @@ -4115,11 +4802,11 @@ { p , T , F , TF } \prg_new_eq_conditional:NNn \str_if_empty:c \tl_if_empty:c { p , T , F , TF } -\cs_new:Npn \__str_if_eq_x:nn #1#2 { \pdftex_strcmp:D {#1} {#2} } -\cs_if_exist:NT \luatex_luatexversion:D +\cs_new:Npn \__str_if_eq_x:nn #1#2 { \tex_strcmp:D {#1} {#2} } +\cs_if_exist:NT \tex_luatexversion:D { - \cs_set_eq:NN \lua_escape_x:n \luatex_luaescapestring:D - \cs_set_eq:NN \lua_now_x:n \luatex_directlua:D + \cs_set_eq:NN \lua_escape_x:n \tex_luaescapestring:D + \cs_set_eq:NN \lua_now_x:n \tex_directlua:D \cs_set:Npn \__str_if_eq_x:nn #1#2 { \lua_now_x:n @@ -4711,26 +5398,30 @@ { c } { p , T , F , TF } \prg_new_conditional:Npnn \quark_if_nil:n #1 { p, T , F , TF } { - \__quark_if_empty_return:o + \__quark_if_empty_if:o { \__quark_if_nil:w {} #1 {} ? ! \q_nil ? ? ! } + \prg_return_true: + \else: + \prg_return_false: + \fi: } \cs_new:Npn \__quark_if_nil:w #1 \q_nil #2 ? #3 ? ! { #1 #2 } \prg_new_conditional:Npnn \quark_if_no_value:n #1 { p, T , F , TF } { - \__quark_if_empty_return:o + \__quark_if_empty_if:o { \__quark_if_no_value:w {} #1 {} ? ! \q_no_value ? ? ! } + \prg_return_true: + \else: + \prg_return_false: + \fi: } \cs_new:Npn \__quark_if_no_value:w #1 \q_no_value #2 ? #3 ? ! { #1 #2 } \prg_generate_conditional_variant:Nnn \quark_if_nil:n { V , o } { p , TF , T , F } -\cs_new:Npn \__quark_if_empty_return:o #1 +\cs_new:Npn \__quark_if_empty_if:o #1 { \exp_after:wN \if_meaning:w \exp_after:wN \q_nil \__kernel_tl_to_str:w \exp_after:wN {#1} \q_nil - \prg_return_true: - \else: - \prg_return_false: - \fi: } \tl_new:N \g__scan_marks_tl \__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN s #1 } { } @@ -5294,7 +5985,7 @@ \seq_new:N \g_tmpb_seq %% File: l3int.dtx Copyright (C) 1990-2018 The LaTeX3 Project \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:w \tex_numexpr:D \cs_new_eq:NN \__int_eval_end: \tex_relax:D \cs_new_eq:NN \if_int_odd:w \tex_ifodd:D \cs_new_eq:NN \if_case:w \tex_ifcase:D @@ -5389,6 +6080,13 @@ } \cs_new:Npn \__int_mod:ww #1; #2; { #1 - ( \__int_div_truncate:NwNw #1 ; #2 ; ) * #2 } +\cs_new:Npn \__kernel_int_add:nnn #1#2#3 + { + \int_value:w \__int_eval:w #1 + \if_int_compare:w #2 < \c_zero_int \exp_after:wN \reverse_if:N \fi: + \if_int_compare:w #1 < \c_zero_int + #2 + #3 \else: + #3 + #2 \fi: + \__int_eval_end: + } \cs_new_protected:Npn \int_new:N #1 { \__kernel_chk_if_free_cs:N #1 @@ -5401,7 +6099,7 @@ { {#1} { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_const:Nn } } \cs_new_protected:Npn \int_const:Nn #1#2 { - \int_compare:nNnTF {#2} < \c_zero + \int_compare:nNnTF {#2} < \c_zero_int { \int_new:N #1 \tex_global:D @@ -5421,12 +6119,12 @@ } \cs_generate_variant:Nn \int_const:Nn { c } \if_int_odd:w 0 - \cs_if_exist:NT \luatex_luatexversion:D { 1 } - \cs_if_exist:NT \uptex_disablecjktoken:D - { \if_int_compare:w \ptex_jis:D "2121 = "3000 ~ 1 \fi: } - \cs_if_exist:NT \xetex_XeTeXversion:D { 1 } ~ - \cs_if_exist:NTF \uptex_disablecjktoken:D - { \cs_new_eq:NN \__int_constdef:Nw \uptex_kchardef:D } + \cs_if_exist:NT \tex_luatexversion:D { 1 } + \cs_if_exist:NT \tex_disablecjktoken:D + { \if_int_compare:w \tex_jis:D "2121 = "3000 ~ 1 \fi: } + \cs_if_exist:NT \tex_XeTeXversion:D { 1 } ~ + \cs_if_exist:NTF \tex_disablecjktoken:D + { \cs_new_eq:NN \__int_constdef:Nw \tex_kchardef:D } { \cs_new_eq:NN \__int_constdef:Nw \tex_chardef:D } \__int_constdef:Nw \c__int_max_constdef_int 1114111 ~ \else: @@ -5434,9 +6132,9 @@ \tex_mathchardef:D \c__int_max_constdef_int 32767 ~ \fi: \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } -\cs_new_protected:Npn \int_zero:N #1 { #1 = \c_zero } +\cs_new_protected:Npn \int_zero:N #1 { #1 = \c_zero_int } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } -\cs_new_protected:Npn \int_gzero:N #1 { \tex_global:D #1 = \c_zero } +\cs_new_protected:Npn \int_gzero:N #1 { \tex_global:D #1 = \c_zero_int } \cs_generate_variant:Nn \int_zero:N { c } \cs_generate_variant:Nn \int_gzero:N { c } \cs_new_protected:Npn \int_zero_new:N #1 @@ -5481,16 +6179,16 @@ \cs_generate_variant:Nn \int_gsub:Nn { c } \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \int_incr:N #1 - { \tex_advance:D #1 \c_one } + { \tex_advance:D #1 \c_one_int } \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \int_decr:N #1 - { \tex_advance:D #1 - \c_one } + { \tex_advance:D #1 - \c_one_int } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \int_gincr:N #1 - { \tex_global:D \tex_advance:D #1 \c_one } + { \tex_global:D \tex_advance:D #1 \c_one_int } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \int_gdecr:N #1 - { \tex_global:D \tex_advance:D #1 - \c_one } + { \tex_global:D \tex_advance:D #1 - \c_one_int } \cs_generate_variant:Nn \int_incr:N { c } \cs_generate_variant:Nn \int_decr:N { c } \cs_generate_variant:Nn \int_gincr:N { c } @@ -5507,7 +6205,7 @@ \cs_new:Npn \int_use:c #1 { \tex_the:D \cs:w #1 \cs_end: } \cs_new_protected:Npn \__int_compare_error: { - \if_int_compare:w \c_zero \c_zero \fi: + \if_int_compare:w \c_zero_int \c_zero_int \fi: = \__int_compare_error: } @@ -5515,7 +6213,7 @@ #1#2 \q_stop { { } - \c_zero \fi: + \c_zero_int \fi: \__kernel_msg_expandable_error:nnn { kernel } { unknown-comparison } {#1} \prg_return_false: @@ -5631,10 +6329,10 @@ { { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_even:n } } \prg_new_conditional:Npnn \int_if_even:n #1 { p , T , F , TF} { - \if_int_odd:w \__int_eval:w #1 \__int_eval_end: - \prg_return_false: - \else: + \reverse_if:N \if_int_odd:w \__int_eval:w #1 \__int_eval_end: \prg_return_true: + \else: + \prg_return_false: \fi: } \cs_new:Npn \int_while_do:nn #1#2 @@ -5717,10 +6415,10 @@ } \cs_new:Npn \__int_step:wwwN #1; #2; #3; #4 { - \int_compare:nNnTF {#2} > \c_zero + \int_compare:nNnTF {#2} > \c_zero_int { \__int_step:NwnnN > } { - \int_compare:nNnTF {#2} = \c_zero + \int_compare:nNnTF {#2} = \c_zero_int { \__kernel_msg_expandable_error:nnn { kernel } { zero-step } {#4} @@ -6142,34 +6840,13 @@ \cs_generate_variant:Nn \int_log:N { c } \cs_new_protected:Npn \int_log:n { \msg_log_eval:Nn \int_eval:n } -\int_const:Nn \c_one { 1 } -\int_const:Nn \c_two { 2 } -\int_const:Nn \c_three { 3 } -\int_const:Nn \c_four { 4 } -\int_const:Nn \c_five { 5 } -\int_const:Nn \c_six { 6 } -\int_const:Nn \c_seven { 7 } -\int_const:Nn \c_eight { 8 } -\int_const:Nn \c_nine { 9 } -\int_const:Nn \c_ten { 10 } -\int_const:Nn \c_eleven { 11 } -\int_const:Nn \c_twelve { 12 } -\int_const:Nn \c_thirteen { 13 } -\int_const:Nn \c_fourteen { 14 } -\int_const:Nn \c_fifteen { 15 } -\int_const:Nn \c_sixteen { 16 } -\int_const:Nn \c_thirty_two { 32 } -\int_const:Nn \c_two_hundred_fifty_five { 255 } -\int_const:Nn \c_two_hundred_fifty_six { 256 } -\int_const:Nn \c_one_hundred { 100 } -\int_const:Nn \c_one_thousand { 1000 } -\int_const:Nn \c_ten_thousand { 10000 } +\int_const:Nn \c_one_int { 1 } \int_const:Nn \c_max_int { 2 147 483 647 } \int_const:Nn \c_max_char_int { \if_int_odd:w 0 - \cs_if_exist:NT \luatex_luatexversion:D { 1 } - \cs_if_exist:NT \xetex_XeTeXversion:D { 1 } ~ + \cs_if_exist:NT \tex_luatexversion:D { 1 } + \cs_if_exist:NT \tex_XeTeXversion:D { 1 } ~ "10FFFF \else: "FF @@ -6184,6 +6861,46 @@ \__kernel_deprecation_code:nn { \__kernel_deprecation_error:Nnn \c_minus_one { -1 } { 2018-12-31 } } { \tex_let:D \c_minus_one \c__int_minus_one } +\cs_new_protected:Npn \__int_deprecated_constants:nn #1#2 + { + #1 \c_zero { 0 } #2 + #1 \c_one { 1 } #2 + #1 \c_two { 2 } #2 + #1 \c_three { 3 } #2 + #1 \c_four { 4 } #2 + #1 \c_five { 5 } #2 + #1 \c_six { 6 } #2 + #1 \c_seven { 7 } #2 + #1 \c_eight { 8 } #2 + #1 \c_nine { 9 } #2 + #1 \c_ten { 10 } #2 + #1 \c_eleven { 11 } #2 + #1 \c_twelve { 12 } #2 + #1 \c_thirteen { 13 } #2 + #1 \c_fourteen { 14 } #2 + #1 \c_fifteen { 15 } #2 + #1 \c_sixteen { 16 } #2 + #1 \c_thirty_two { 32 } #2 + #1 \c_one_hundred { 100 } #2 + #1 \c_two_hundred_fifty_five { 255 } #2 + #1 \c_two_hundred_fifty_six { 256 } #2 + #1 \c_one_thousand { 1000 } #2 + #1 \c_ten_thousand { 10000 } #2 + } +\__int_deprecated_constants:nn { \int_const:Nn } { } +\__kernel_deprecation_code:nn + { + \__int_deprecated_constants:nn + { \__kernel_deprecation_error:Nnn } { { 2019-12-31 } } + } + { + \__int_deprecated_constants:nn + { + \exp_after:wN \use:nnn + \exp_after:wN \__int_constdef:Nw \exp_not:N + } + { \exp_stop_f: } + } \cs_new_eq:NN \__int_value:w \int_value:w %% File: l3flag.dtx Copyright (C) 2011-2018 The LaTeX3 Project \cs_new_protected:Npn \flag_new:n #1 @@ -6287,10 +7004,16 @@ \cs_generate_variant:Nn \bool_gset_eq:NN { Nc, cN, cc } \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \bool_set:Nn #1#2 - { \tex_chardef:D #1 = \bool_if_p:n {#2} } + { + \exp_last_unbraced:NNNf + \tex_chardef:D #1 = { \bool_if_p:n {#2} } + } \__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \bool_gset:Nn #1#2 - { \tex_global:D \tex_chardef:D #1 = \bool_if_p:n {#2} } + { + \exp_last_unbraced:NNNNf + \tex_global:D \tex_chardef:D #1 = { \bool_if_p:n {#2} } + } \cs_generate_variant:Nn \bool_set:Nn { c } \cs_generate_variant:Nn \bool_gset:Nn { c } \prg_new_conditional:Npnn \bool_if:N #1 { p , T , F , TF } @@ -6333,14 +7056,17 @@ \prg_return_false: \fi: } -\cs_new:Npn \bool_if_p:n #1 +\cs_new:Npn \bool_if_p:n { \exp_args:Nf \__bool_if_p:n } +\cs_new:Npn \__bool_if_p:n #1 { + \tl_if_empty:oT { \use_none:nn #1 . } { \__bool_if_p_aux:w } \group_align_safe_begin: \exp_after:wN \group_align_safe_end: \exp:w \exp_end_continue_f:w % ( \__bool_get_next:NN \use_i:nnnn #1 ) } +\cs_new:Npn \__bool_if_p_aux:w #1 \use_i:nnnn #2#3 {#2} \cs_new:Npn \__bool_get_next:NN #1#2 { \use:c @@ -6380,42 +7106,67 @@ \cs_new:cpn { __bool_|_0: } | { \__bool_get_next:NN \use_i:nnnn } \cs_new:cpn { __bool_|_1: } | { \__bool_get_next:NN \use_iii:nnnn } \cs_new:cpn { __bool_|_2: } | { \__bool_get_next:NN \use_iii:nnnn } -\prg_new_conditional:Npnn \bool_lazy_all:n #1 { p , T , F , TF } +\cs_new:Npn \bool_lazy_all_p:n #1 { \__bool_lazy_all:n #1 \q_recursion_tail \q_recursion_stop } +\prg_new_conditional:Npnn \bool_lazy_all:n #1 { T , F , TF } + { + \if_predicate:w \bool_lazy_all_p:n {#1} + \prg_return_true: + \else: + \prg_return_false: + \fi: + } \cs_new:Npn \__bool_lazy_all:n #1 { - \quark_if_recursion_tail_stop_do:nn {#1} { \prg_return_true: } + \quark_if_recursion_tail_stop_do:nn {#1} { \c_true_bool } \bool_if:nF {#1} - { \use_i_delimit_by_q_recursion_stop:nw { \prg_return_false: } } + { \use_i_delimit_by_q_recursion_stop:nw { \c_false_bool } } \__bool_lazy_all:n } \prg_new_conditional:Npnn \bool_lazy_and:nn #1#2 { p , T , F , TF } { - \bool_if:nTF {#1} - { \bool_if:nTF {#2} { \prg_return_true: } { \prg_return_false: } } - { \prg_return_false: } + \if_predicate:w + \bool_if:nTF {#1} { \bool_if_p:n {#2} } { \c_false_bool } + \prg_return_true: + \else: + \prg_return_false: + \fi: } -\prg_new_conditional:Npnn \bool_lazy_any:n #1 { p , T , F , TF } +\cs_new:Npn \bool_lazy_any_p:n #1 { \__bool_lazy_any:n #1 \q_recursion_tail \q_recursion_stop } +\prg_new_conditional:Npnn \bool_lazy_any:n #1 { T , F , TF } + { + \if_predicate:w \bool_lazy_any_p:n {#1} + \prg_return_true: + \else: + \prg_return_false: + \fi: + } \cs_new:Npn \__bool_lazy_any:n #1 { - \quark_if_recursion_tail_stop_do:nn {#1} { \prg_return_false: } + \quark_if_recursion_tail_stop_do:nn {#1} { \c_false_bool } \bool_if:nT {#1} - { \use_i_delimit_by_q_recursion_stop:nw { \prg_return_true: } } + { \use_i_delimit_by_q_recursion_stop:nw { \c_true_bool } } \__bool_lazy_any:n } \prg_new_conditional:Npnn \bool_lazy_or:nn #1#2 { p , T , F , TF } { - \bool_if:nTF {#1} - { \prg_return_true: } - { \bool_if:nTF {#2} { \prg_return_true: } { \prg_return_false: } } + \if_predicate:w + \bool_if:nTF {#1} { \c_true_bool } { \bool_if_p:n {#2} } + \prg_return_true: + \else: + \prg_return_false: + \fi: } \cs_new:Npn \bool_not_p:n #1 { \bool_if_p:n { ! ( #1 ) } } -\cs_new:Npn \bool_xor_p:nn #1#2 +\prg_new_conditional:Npnn \bool_xor:nn #1#2 { p , T , F , TF } { - \int_compare:nNnTF { \bool_if_p:n {#1} } = { \bool_if_p:n {#2} } - \c_false_bool - \c_true_bool + \bool_if:nT {#1} \reverse_if:N + \if_predicate:w \bool_if_p:n {#2} + \prg_return_true: + \else: + \prg_return_false: + \fi: } \cs_new:Npn \bool_while_do:Nn #1#2 { \bool_if:NT #1 { #2 \bool_while_do:Nn #1 {#2} } } @@ -6512,9 +7263,9 @@ \prg_new_conditional:Npnn \mode_if_math: { p , T , F , TF } { \if_mode_math: \prg_return_true: \else: \prg_return_false: \fi: } \cs_new:Npn \group_align_safe_begin: - { \if_int_compare:w \if_false: { \fi: `} = \c_zero \fi: } + { \if_int_compare:w \if_false: { \fi: `} = \c_zero_int \fi: } \cs_new:Npn \group_align_safe_end: - { \if_int_compare:w `{ = \c_zero } \fi: } + { \if_int_compare:w `{ = \c_zero_int } \fi: } \int_new:N \g__kernel_prg_map_int \__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \prg_break_point:Nn } \cs_new:Npn \__prg_break_point:Nn { \prg_break_point:Nn } @@ -6554,17 +7305,17 @@ } \str_const:Nx \c_sys_engine_str { - \cs_if_exist:NT \luatex_luatexversion:D { luatex } - \cs_if_exist:NT \pdftex_pdftexversion:D { pdftex } - \cs_if_exist:NT \ptex_kanjiskip:D + \cs_if_exist:NT \tex_luatexversion:D { luatex } + \cs_if_exist:NT \tex_pdftexversion:D { pdftex } + \cs_if_exist:NT \tex_kanjiskip:D { \bool_lazy_and:nnTF - { \cs_if_exist_p:N \uptex_disablecjktoken:D } - { \int_compare_p:nNn { \ptex_jis:D "2121 } = { "3000 } } + { \cs_if_exist_p:N \tex_disablecjktoken:D } + { \int_compare_p:nNn { \tex_jis:D "2121 } = { "3000 } } { uptex } { ptex } } - \cs_if_exist:NT \xetex_XeTeXversion:D { xetex } + \cs_if_exist:NT \tex_XeTeXversion:D { xetex } } \tl_map_inline:nn { { luatex } { pdftex } { ptex } { uptex } { xetex } } { @@ -6574,7 +7325,7 @@ \str_const:Nx \c_sys_output_str { \int_compare:nNnTF - { \cs_if_exist_use:NF \pdftex_pdfoutput:D { 0 } } > { 0 } + { \cs_if_exist_use:NF \tex_pdfoutput:D { 0 } } > { 0 } { pdf } { dvi } } @@ -6582,6 +7333,8 @@ { \str_if_eq_x_p:nn \c_sys_output_str { dvi } } \__sys_const:nn { sys_if_output_pdf } { \str_if_eq_x_p:nn \c_sys_output_str { pdf } } +\__sys_const:nn { sys_if_rand_exist } + { \cs_if_exist_p:N \tex_uniformdeviate:D } %% File: l3clist.dtx Copyright (C) 2004-2011 Frank Mittelbach, %% The LaTeX3 project %% (C) 2012-2018 The LaTeX3 Project @@ -7338,7 +8091,7 @@ { #3 \exp_after:wN \exp_end: - \utex_charcat:D #1 \exp_stop_f: #2 \exp_stop_f: + \tex_Ucharcat:D #1 \exp_stop_f: #2 \exp_stop_f: } \cs_new_eq:NN \__char_generate_auxii:nnw \__char_generate_aux:nnw \cs_gset:Npn \__char_generate_aux:nnw #1#2#3 \exp_end: @@ -8510,7 +9263,7 @@ { \__kernel_iow_with:Nnn \tex_errorcontextlines:D { -1 } { - \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN + \tex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \l__msg_internal_tl } } } @@ -8812,7 +9565,8 @@ \__kernel_msg_new:nnnn { kernel } { overflow } { Integers~larger~than~2^{30}-1~cannot~be~stored~in~arrays. } { - An~attempt~was~made~to~store~#3~at~position~#2~in~the~array~'#1'.~ + An~attempt~was~made~to~store~#3~ + \tl_if_empty:nF {#2} { at~position~#2~ } in~the~array~'#1'.~ The~largest~allowed~value~#4~will~be~used~instead. } \__kernel_msg_new:nnnn { kernel } { out-of-bounds } @@ -8984,6 +9738,8 @@ { is~empty \\>~ . } { contains~the~items~(without~outer~braces): #2 . } } +\__kernel_msg_new:nnn { kernel } { show-intarray } + { The~integer~array~#1~contains~#2~items: \\ #3 . } \__kernel_msg_new:nnn { kernel } { show-prop } { The~property~list~#1~ @@ -9164,7 +9920,7 @@ \exp_args:Nno \use:n { \int_set:Nn \tex_endlinechar:D { -1 } - \etex_readline:D #1 to #2 + \tex_readline:D #1 to #2 \int_set:Nn \tex_endlinechar:D } { \int_use:N \tex_endlinechar:D } } @@ -9204,7 +9960,7 @@ { \bool_lazy_and:nnTF { \sys_if_engine_luatex_p: } - { \int_compare_p:nNn \luatex_luatexversion:D > { 80 } } + { \int_compare_p:nNn \tex_luatexversion:D > { 80 } } { 128 } { 16 } } @@ -9901,7 +10657,7 @@ %% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project %% (C) 2012-2018 The LaTeX3 Project \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:w \tex_dimexpr:D \cs_new_eq:NN \__dim_eval_end: \tex_relax:D \cs_new_protected:Npn \dim_new:N #1 { @@ -10073,7 +10829,7 @@ { #1 \prg_return_false: \else: \prg_return_true: \fi: } \cs_new_protected:Npn \__dim_compare_error: { - \if_int_compare:w \c_zero \c_zero \fi: + \if_int_compare:w \c_zero_int \c_zero_int \fi: = \__dim_compare_error: } @@ -10323,15 +11079,15 @@ \__kernel_patch_args:nnnNNpn { #1 ##1 } { } - { {##1} { \__kernel_chk_expr:nNnN {##2} \etex_glueexpr:D { } #3 } } + { {##1} { \__kernel_chk_expr:nNnN {##2} \tex_glueexpr:D { } #3 } } #2 #3 } \__skip_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \skip_set:Nn #1#2 - { #1 ~ \etex_glueexpr:D #2 \scan_stop: } + { #1 ~ \tex_glueexpr:D #2 \scan_stop: } \__skip_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \skip_gset:Nn #1#2 - { \tex_global:D #1 ~ \etex_glueexpr:D #2 \scan_stop: } + { \tex_global:D #1 ~ \tex_glueexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \skip_set:Nn { c } \cs_generate_variant:Nn \skip_gset:Nn { c } \cs_new_protected:Npn \skip_set_eq:NN #1#2 { #1 = #2 } @@ -10340,18 +11096,18 @@ \cs_generate_variant:Nn \skip_gset_eq:NN { c , Nc , cc } \__skip_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \skip_add:Nn #1#2 - { \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: } + { \tex_advance:D #1 by \tex_glueexpr:D #2 \scan_stop: } \__skip_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \skip_gadd:Nn #1#2 - { \tex_global:D \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: } + { \tex_global:D \tex_advance:D #1 by \tex_glueexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \skip_add:Nn { c } \cs_generate_variant:Nn \skip_gadd:Nn { c } \__skip_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \skip_sub:Nn #1#2 - { \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: } + { \tex_advance:D #1 by - \tex_glueexpr:D #2 \scan_stop: } \__skip_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \skip_gsub:Nn #1#2 - { \tex_global:D \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: } + { \tex_global:D \tex_advance:D #1 by - \tex_glueexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \skip_sub:Nn { c } \cs_generate_variant:Nn \skip_gsub:Nn { c } \prg_new_conditional:Npnn \skip_if_eq:nn #1#2 { p , T , F , TF } @@ -10366,44 +11122,44 @@ { { \__kernel_chk_expr:nNnN - {##1} \etex_glueexpr:D { } \skip_if_finite:n + {##1} \tex_glueexpr:D { } \skip_if_finite:n } } \prg_new_conditional:Npnn \skip_if_finite:n ##1 { p , T , F , TF } { \exp_after:wN \__skip_if_finite:wwNw - \skip_use:N \etex_glueexpr:D ##1 ; \prg_return_false: + \skip_use:N \tex_glueexpr:D ##1 ; \prg_return_false: #1 ; \prg_return_true: \q_stop } \cs_new:Npn \__skip_if_finite:wwNw ##1 #1 ##2 ; ##3 ##4 \q_stop {##3} } \exp_args:No \__skip_tmp:w { \tl_to_str:n { fil } } \__kernel_patch_args:nNNpn - { { \__kernel_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } } + { { \__kernel_chk_expr:nNnN {#1} \tex_glueexpr:D { } \skip_eval:n } } \cs_new:Npn \skip_eval:n #1 - { \skip_use:N \etex_glueexpr:D #1 \scan_stop: } + { \skip_use:N \tex_glueexpr:D #1 \scan_stop: } \cs_new_eq:NN \skip_use:N \tex_the:D \cs_new:Npn \skip_use:c #1 { \tex_the:D \cs:w #1 \cs_end: } \cs_new_eq:NN \skip_horizontal:N \tex_hskip:D \__kernel_patch_args:nNNpn { { - \__kernel_chk_expr:nNnN {#1} \etex_glueexpr:D { } + \__kernel_chk_expr:nNnN {#1} \tex_glueexpr:D { } \skip_horizontal:n } } \cs_new:Npn \skip_horizontal:n #1 - { \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: } + { \skip_horizontal:N \tex_glueexpr:D #1 \scan_stop: } \cs_new_eq:NN \skip_vertical:N \tex_vskip:D \__kernel_patch_args:nNNpn { { - \__kernel_chk_expr:nNnN {#1} \etex_glueexpr:D { } + \__kernel_chk_expr:nNnN {#1} \tex_glueexpr:D { } \skip_vertical:n } } \cs_new:Npn \skip_vertical:n #1 - { \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: } + { \skip_vertical:N \tex_glueexpr:D #1 \scan_stop: } \cs_generate_variant:Nn \skip_horizontal:N { c } \cs_generate_variant:Nn \skip_vertical:N { c } \cs_new_eq:NN \skip_show:N \__kernel_register_show:N @@ -10460,17 +11216,17 @@ {##1} { \__kernel_chk_expr:nNnN {##2} - \etex_muexpr:D { \etex_mutoglue:D } #3 + \tex_muexpr:D { \tex_mutoglue:D } #3 } } #2 #3 } \__skip_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \muskip_set:Nn #1#2 - { #1 ~ \etex_muexpr:D #2 \scan_stop: } + { #1 ~ \tex_muexpr:D #2 \scan_stop: } \__skip_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \muskip_gset:Nn #1#2 - { \tex_global:D #1 ~ \etex_muexpr:D #2 \scan_stop: } + { \tex_global:D #1 ~ \tex_muexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \muskip_set:Nn { c } \cs_generate_variant:Nn \muskip_gset:Nn { c } \__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } @@ -10481,29 +11237,29 @@ \cs_generate_variant:Nn \muskip_gset_eq:NN { c , Nc , cc } \__skip_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \muskip_add:Nn #1#2 - { \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: } + { \tex_advance:D #1 by \tex_muexpr:D #2 \scan_stop: } \__skip_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \muskip_gadd:Nn #1#2 - { \tex_global:D \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: } + { \tex_global:D \tex_advance:D #1 by \tex_muexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \muskip_add:Nn { c } \cs_generate_variant:Nn \muskip_gadd:Nn { c } \__skip_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \muskip_sub:Nn #1#2 - { \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: } + { \tex_advance:D #1 by - \tex_muexpr:D #2 \scan_stop: } \__skip_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \muskip_gsub:Nn #1#2 - { \tex_global:D \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: } + { \tex_global:D \tex_advance:D #1 by - \tex_muexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \muskip_sub:Nn { c } \cs_generate_variant:Nn \muskip_gsub:Nn { c } \__kernel_patch_args:nNNpn { { - \__kernel_chk_expr:nNnN {#1} \etex_muexpr:D - { \etex_mutoglue:D } \muskip_eval:n + \__kernel_chk_expr:nNnN {#1} \tex_muexpr:D + { \tex_mutoglue:D } \muskip_eval:n } } \cs_new:Npn \muskip_eval:n #1 - { \muskip_use:N \etex_muexpr:D #1 \scan_stop: } + { \muskip_use:N \tex_muexpr:D #1 \scan_stop: } \cs_new_eq:NN \muskip_use:N \tex_the:D \cs_generate_variant:Nn \muskip_use:N { c } \cs_new_eq:NN \muskip_show:N \__kernel_register_show:N @@ -11457,9 +12213,240 @@ { is~undefined. } { has~the~properties: #2 . } } +%% File: l3intarray.dtx Copyright (C) 2017-2018 The LaTeX3 Project +\cs_new_eq:NN \__intarray_entry:w \tex_fontdimen:D +\cs_new_eq:NN \__intarray_count:w \tex_hyphenchar:D +\int_new:N \l__intarray_loop_int +\dim_const:Nn \c__intarray_sp_dim { 1 sp } +\int_new:N \g__intarray_font_int +\__kernel_msg_new:nnn { kernel } { negative-array-size } + { Size~of~array~may~not~be~negative:~#1 } +\cs_new_protected:Npn \__intarray_new:N #1 + { + \__kernel_chk_if_free_cs:N #1 + \int_gincr:N \g__intarray_font_int + \tex_global:D \tex_font:D #1 + = cmr10~at~ \g__intarray_font_int \c__intarray_sp_dim \scan_stop: + \int_step_inline:nn { 8 } + { \__kernel_intarray_gset:Nnn #1 {##1} \c_zero_int } + } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN g #1 } { } +\cs_new_protected:Npn \intarray_new:Nn #1#2 + { + \__intarray_new:N #1 + \__intarray_count:w #1 = \int_eval:n {#2} \scan_stop: + \int_compare:nNnT { \intarray_count:N #1 } < 0 + { + \__kernel_msg_error:nnx { kernel } { negative-array-size } + { \intarray_count:N #1 } + } + \int_compare:nNnT { \intarray_count:N #1 } > 0 + { \__kernel_intarray_gset:Nnn #1 { \intarray_count:N #1 } { 0 } } + } +\cs_new:Npn \intarray_count:N #1 { \int_value:w \__intarray_count:w #1 } +\cs_new:Npn \__intarray_signed_max_dim:n #1 + { \int_value:w \int_compare:nNnT {#1} < 0 { - } \c_max_dim } +\cs_new:Npn \__intarray_bounds:NNnTF #1#2#3#4#5 + { + \if_int_compare:w 1 > #3 \exp_stop_f: + \__intarray_bounds_error:NNn #1 #2 {#3} + #5 + \else: + \if_int_compare:w #3 > \intarray_count:N #2 \exp_stop_f: + \__intarray_bounds_error:NNn #1 #2 {#3} + #5 + \else: + #4 + \fi: + \fi: + } +\cs_new:Npn \__intarray_bounds_error:NNn #1#2#3 + { + #1 { kernel } { out-of-bounds } + { \token_to_str:N #2 } {#3} { \intarray_count:N #2 } + } +\cs_new_protected:Npn \__kernel_intarray_gset:Nnn #1#2#3 + { \__intarray_entry:w #2 #1 #3 \c__intarray_sp_dim } +\cs_new_protected:Npn \intarray_gset:Nnn #1#2#3 + { + \exp_after:wN \__intarray_gset:Nww + \exp_after:wN #1 + \int_value:w \int_eval:n {#2} \exp_after:wN ; + \int_value:w \int_eval:n {#3} ; + } +\cs_new_protected:Npn \__intarray_gset:Nww #1#2 ; #3 ; + { + \__intarray_bounds:NNnTF \__kernel_msg_error:nnxxx #1 {#2} + { + \__intarray_gset_overflow_test:nw {#3} + \__kernel_intarray_gset:Nnn #1 {#2} {#3} + } + { } + } +\cs_if_exist:NTF \tex_ifabsnum:D + { + \cs_new_protected:Npn \__intarray_gset_overflow_test:nw #1 + { + \tex_ifabsnum:D #1 > \c_max_dim + \exp_after:wN \__intarray_gset_overflow:NNnn + \fi: + } + } + { + \cs_new_protected:Npn \__intarray_gset_overflow_test:nw #1 + { + \if_int_compare:w \int_abs:n {#1} > \c_max_dim + \exp_after:wN \__intarray_gset_overflow:NNnn + \fi: + } + } +\cs_new_protected:Npn \__intarray_gset_overflow:NNnn #1#2#3#4 + { + \__kernel_msg_error:nnxxxx { kernel } { overflow } + { \token_to_str:N #2 } {#3} {#4} { \__intarray_signed_max_dim:n {#4} } + #1 #2 {#3} { \__intarray_signed_max_dim:n {#4} } + } +\cs_new_protected:Npn \intarray_gzero:N #1 + { + \int_zero:N \l__intarray_loop_int + \prg_replicate:nn { \intarray_count:N #1 } + { + \int_incr:N \l__intarray_loop_int + \__intarray_entry:w \l__intarray_loop_int #1 \c_zero_dim + } + } +\cs_new:Npn \__kernel_intarray_item:Nn #1#2 + { \int_value:w \__intarray_entry:w #2 #1 } +\cs_new:Npn \intarray_item:Nn #1#2 + { + \exp_after:wN \__intarray_item:Nw + \exp_after:wN #1 + \int_value:w \int_eval:n {#2} ; + } +\cs_new:Npn \__intarray_item:Nw #1#2 ; + { + \__intarray_bounds:NNnTF \__kernel_msg_expandable_error:nnfff #1 {#2} + { \__kernel_intarray_item:Nn #1 {#2} } + { 0 } + } +\cs_new:Npn \intarray_rand_item:N #1 + { \intarray_item:Nn #1 { \int_rand:n { \intarray_count:N #1 } } } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN c #1 } { } +\cs_new_protected:Npn \intarray_const_from_clist:Nn #1#2 + { + \__intarray_new:N #1 + \int_zero:N \l__intarray_loop_int + \clist_map_inline:nn {#2} + { \exp_args:Nf \__intarray_const_from_clist:nN { \int_eval:n {##1} } #1 } + \__intarray_count:w #1 \l__intarray_loop_int + } +\cs_new_protected:Npn \__intarray_const_from_clist:nN #1#2 + { + \int_incr:N \l__intarray_loop_int + \__intarray_gset_overflow_test:nw {#1} + \__kernel_intarray_gset:Nnn #2 \l__intarray_loop_int {#1} + } +\cs_new:Npn \intarray_to_clist:N #1 { \__intarray_to_clist:Nn #1 { , } } +\cs_new:Npn \__intarray_to_clist:Nn #1#2 + { + \int_compare:nNnF { \intarray_count:N #1 } = \c_zero_int + { + \exp_last_unbraced:Nf \use_none:n + { \__intarray_to_clist:w 1 ; #1 {#2} \prg_break_point: } + } + } +\cs_new:Npn \__intarray_to_clist:w #1 ; #2#3 + { + \if_int_compare:w #1 > \__intarray_count:w #2 + \prg_break:n + \fi: + #3 \__kernel_intarray_item:Nn #2 {#1} + \exp_after:wN \__intarray_to_clist:w + \int_value:w \int_eval:w #1 + \c_one_int ; #2 {#3} + } +\cs_new_protected:Npn \intarray_show:N { \__intarray_show:NN \msg_show:nnxxxx } +\cs_generate_variant:Nn \intarray_show:N { c } +\cs_new_protected:Npn \intarray_log:N { \__intarray_show:NN \msg_log:nnxxxx } +\cs_generate_variant:Nn \intarray_log:N { c } +\cs_new_protected:Npn \__intarray_show:NN #1#2 + { + \__kernel_chk_defined:NT #2 + { + #1 { LaTeX/kernel } { show-intarray } + { \token_to_str:N #2 } + { \intarray_count:N #2 } + { >~ \__intarray_to_clist:Nn #2 { , ~ } } + { } + } + } +\cs_new_protected:Npn \intarray_gset_rand:Nn #1 + { \intarray_gset_rand:Nnn #1 { 1 } } +\sys_if_rand_exist:TF + { + \cs_new_protected:Npn \intarray_gset_rand:Nnn #1#2#3 + { + \__intarray_gset_rand:Nff #1 + { \int_eval:n {#2} } { \int_eval:n {#3} } + } + \cs_new_protected:Npn \__intarray_gset_rand:Nnn #1#2#3 + { + \int_compare:nNnTF {#2} > {#3} + { + \__kernel_msg_expandable_error:nnnn + { kernel } { randint-backward-range } {#2} {#3} + \__intarray_gset_rand:Nnn #1 {#3} {#2} + } + { + \__intarray_gset_overflow_test:nw {#2} + \__intarray_gset_rand_auxi:Nnnn #1 { } {#2} {#3} + } + } + \cs_generate_variant:Nn \__intarray_gset_rand:Nnn { Nff } + \cs_new_protected:Npn \__intarray_gset_rand_auxi:Nnnn #1#2#3#4 + { + \__intarray_gset_overflow_test:nw {#4} + \__intarray_gset_rand_auxii:Nnnn #1 { } {#4} {#3} + } + \cs_new_protected:Npn \__intarray_gset_rand_auxii:Nnnn #1#2#3#4 + { + \exp_args:NNf \__intarray_gset_rand_auxiii:Nnnn #1 + { \int_eval:n { #3 - #4 + 1 } } {#4} {#3} + } + \cs_new_protected:Npn \__intarray_gset_rand_auxiii:Nnnn #1#2#3#4 + { + \exp_args:NNf \__intarray_gset_all_same:Nn #1 + { + \int_compare:nNnTF {#2} > \c__kernel_randint_max_int + { + \exp_stop_f: + \int_eval:n { \__kernel_randint:nn {#3} {#4} } + } + { + \exp_stop_f: + \int_eval:n { \__kernel_randint:n {#2} - 1 + #3 } + } + } + } + \cs_new_protected:Npn \__intarray_gset_all_same:Nn #1#2 + { + \int_zero:N \l__intarray_loop_int + \prg_replicate:nn { \intarray_count:N #1 } + { + \int_incr:N \l__intarray_loop_int + \__kernel_intarray_gset:Nnn #1 \l__intarray_loop_int {#2} + } + } + } + { + \cs_new_protected:Npn \intarray_gset_rand:Nnn #1#2#3 + { + \__kernel_msg_error:nnn { kernel } { fp-no-random } + { \intarray_gset_rand:Nnn #1 {#2} {#3} } + } + } %% File: l3fp.dtx Copyright (C) 2011-2018 The LaTeX3 Project %% File: l3fp-aux.dtx Copyright(C) 2011-2018 The LaTeX3 Project -\cs_new_eq:NN \__fp_int_eval:w \etex_numexpr:D +\cs_new_eq:NN \__fp_int_eval:w \tex_numexpr:D \cs_new_eq:NN \__fp_int_eval_end: \scan_stop: \cs_new_eq:NN \__fp_int_to_roman:w \tex_romannumeral:D \cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: } @@ -11835,17 +12822,17 @@ #2 \s__fp_mark { #3 #1 } #4 } -\cs_new:Npn \__fp_str_if_eq_x:nn #1#2 { \pdftex_strcmp:D {#1} {#2} } +\cs_new:Npn \__fp_str_if_eq_x:nn #1#2 { \tex_strcmp:D {#1} {#2} } \sys_if_engine_luatex:T { \cs_set:Npn \__fp_str_if_eq_x:nn #1#2 { - \luatex_directlua:D + \tex_directlua:D { l3kernel.strcmp ( - " \luatex_luaescapestring:D {#1}", - " \luatex_luaescapestring:D {#2}" + " \tex_luaescapestring:D {#1}", + " \tex_luaescapestring:D {#2}" ) } } @@ -13615,63 +14602,6 @@ \exp:w \exp_end_continue_f:w \__fp_tuple_mapthread_loop_o:nw {#1} #4 @ } -\cs_new:Npn \fp_function:Nw #1 - { - \exp_after:wN \__fp_function_apply:nw - \exp_after:wN #1 - \exp:w - \__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w - } -\cs_new_protected:Npn \fp_new_function:Npn #1#2# - { - \__fp_new_function:Ncfnn #1 - { __fp_user_ \cs_to_str:N #1 } - { \int_eval:n { \tl_count:n {#2} / 2 } } - {#2} - } -\cs_new_protected:Npn \__fp_new_function:NNnnn #1#2#3#4#5 - { - \cs_new:Npn #1 - { - \exp_after:wN \__fp_function_apply:nw \exp_after:wN - { - \exp_after:wN \__fp_function_args:Nwn - \exp_after:wN #2 - \int_value:w #3 \exp_after:wN ; \exp_after:wN - } - \exp:w - \__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w - } - \cs_new:Npn #2 #4 {#5} - } -\cs_generate_variant:Nn \__fp_new_function:NNnnn { Ncf } -\cs_new:Npn \__fp_function_args:Nwn #1#2; #3 - { - \int_compare:nNnTF { \tl_count:n {#3} } = {#2} - { #1 #3 } - { - \__kernel_msg_expandable_error:nnnnn - { kernel } { fp-num-args } { #1() } {#2} {#2} - \c_nan_fp - } - } -\cs_new:Npn \__fp_function_apply:nw #1#2 @ - { - \__fp_parse:n - { - \__fp_function_store:wwNwnn #2 - \s__fp_mark \__fp_function_store:wwNwnn ; - \s__fp_mark \__fp_function_store_end:wnnn - \s__fp_stop { } { } {#1} - } - \s__fp_mark - } -\cs_new:Npn \__fp_function_store:wwNwnn - #1; #2 \s__fp_mark #3#4 \s__fp_stop #5#6 - { #3 #2 \s__fp_mark #3#4 \s__fp_stop { #5 #6 } { { #1; } } } -\cs_new:Npn \__fp_function_store_end:wnnn - #1 \s__fp_stop #2#3#4 - { #4 {#2} } \__kernel_msg_new:nnn { kernel } { fp-deprecated } { '#1'~deprecated;~use~'#2' } \__kernel_msg_new:nnn { kernel } { unknown-fp-word } @@ -15743,112 +16673,107 @@ } \cs_new:Npn \__fp_exp_Taylor_break:Nww #1 #2; #3 \s_stop { \__fp_fixed_add_one:wN #2 ; } +\intarray_const_from_clist:Nn \c__fp_exp_intarray + { + 1 , 1 1105 1709 , 1 1807 5647 , 1 6248 1171 , + 1 , 1 1221 4027 , 1 5816 0169 , 1 8339 2107 , + 1 , 1 1349 8588 , 1 0757 6003 , 1 1039 8374 , + 1 , 1 1491 8246 , 1 9764 1270 , 1 3178 2485 , + 1 , 1 1648 7212 , 1 7070 0128 , 1 1468 4865 , + 1 , 1 1822 1188 , 1 0039 0508 , 1 9748 7537 , + 1 , 1 2013 7527 , 1 0747 0476 , 1 5216 2455 , + 1 , 1 2225 5409 , 1 2849 2467 , 1 6045 7954 , + 1 , 1 2459 6031 , 1 1115 6949 , 1 6638 0013 , + 1 , 1 2718 2818 , 1 2845 9045 , 1 2353 6029 , + 1 , 1 7389 0560 , 1 9893 0650 , 1 2272 3043 , + 2 , 1 2008 5536 , 1 9231 8766 , 1 7740 9285 , + 2 , 1 5459 8150 , 1 0331 4423 , 1 9078 1103 , + 3 , 1 1484 1315 , 1 9102 5766 , 1 0342 1116 , + 3 , 1 4034 2879 , 1 3492 7351 , 1 2260 8387 , + 4 , 1 1096 6331 , 1 5842 8458 , 1 5992 6372 , + 4 , 1 2980 9579 , 1 8704 1728 , 1 2747 4359 , + 4 , 1 8103 0839 , 1 2757 5384 , 1 0077 1000 , + 5 , 1 2202 6465 , 1 7948 0671 , 1 6516 9579 , + 9 , 1 4851 6519 , 1 5409 7902 , 1 7796 9107 , + 14 , 1 1068 6474 , 1 5815 2446 , 1 2146 9905 , + 18 , 1 2353 8526 , 1 6837 0199 , 1 8540 7900 , + 22 , 1 5184 7055 , 1 2858 7072 , 1 4640 8745 , + 27 , 1 1142 0073 , 1 8981 5684 , 1 2836 6296 , + 31 , 1 2515 4386 , 1 7091 9167 , 1 0062 6578 , + 35 , 1 5540 6223 , 1 8439 3510 , 1 0525 7117 , + 40 , 1 1220 4032 , 1 9431 7840 , 1 8020 0271 , + 44 , 1 2688 1171 , 1 4181 6135 , 1 4484 1263 , + 87 , 1 7225 9737 , 1 6812 5749 , 1 2581 7748 , + 131 , 1 1942 4263 , 1 9524 1255 , 1 9365 8421 , + 174 , 1 5221 4696 , 1 8976 4143 , 1 9505 8876 , + 218 , 1 1403 5922 , 1 1785 2837 , 1 4107 3977 , + 261 , 1 3773 0203 , 1 0092 9939 , 1 8234 0143 , + 305 , 1 1014 2320 , 1 5473 5004 , 1 5094 5533 , + 348 , 1 2726 3745 , 1 7211 2566 , 1 5673 6478 , + 391 , 1 7328 8142 , 1 2230 7421 , 1 7051 8866 , + 435 , 1 1970 0711 , 1 1401 7046 , 1 9938 8888 , + 869 , 1 3881 1801 , 1 9428 4368 , 1 5764 8232 , + 1303 , 1 7646 2009 , 1 8905 4704 , 1 8893 1073 , + 1738 , 1 1506 3559 , 1 7005 0524 , 1 9009 7592 , + 2172 , 1 2967 6283 , 1 8402 3667 , 1 0689 6630 , + 2606 , 1 5846 4389 , 1 5650 2114 , 1 7278 5046 , + 3041 , 1 1151 7900 , 1 5080 6878 , 1 2914 4154 , + 3475 , 1 2269 1083 , 1 0850 6857 , 1 8724 4002 , + 3909 , 1 4470 3047 , 1 3316 5442 , 1 6408 6591 , + 4343 , 1 8806 8182 , 1 2566 2921 , 1 5872 6150 , + 8686 , 1 7756 0047 , 1 2598 6861 , 1 0458 3204 , + 13029 , 1 6830 5723 , 1 7791 4884 , 1 1932 7351 , + 17372 , 1 6015 5609 , 1 3095 3052 , 1 3494 7574 , + 21715 , 1 5297 7951 , 1 6443 0315 , 1 3251 3576 , + 26058 , 1 4665 6719 , 1 0099 3379 , 1 5527 2929 , + 30401 , 1 4108 9724 , 1 3326 3186 , 1 5271 5665 , + 34744 , 1 3618 6973 , 1 3140 0875 , 1 3856 4102 , + 39087 , 1 3186 9209 , 1 6113 3900 , 1 6705 9685 , + } \cs_new:Npn \__fp_exp_pos_large:NnnNwn #1#2#3 #4#5; #6 { - \exp_after:wN \exp_after:wN - \cs:w __fp_exp_large_ \__fp_int_to_roman:w #6 :wN \exp_after:wN \cs_end: + \exp_after:wN \exp_after:wN \exp_after:wN \__fp_exp_large:NwN + \exp_after:wN \exp_after:wN \exp_after:wN #6 \exp_after:wN \c__fp_one_fixed_tl \int_value:w #3 #4 \exp_stop_f: #5 00000 ; } -\cs_new:Npn \__fp_exp_large:w #1 \or: #2 \fi: - { \fi: \__fp_fixed_mul:wwn #1; } -\cs_new:Npn \__fp_exp_large_v:wN #1; #2 - { - \if_case:w #2 ~ \exp_after:wN \__fp_fixed_continue:wn \or: - + 4343 \__fp_exp_large:w {8806}{8182}{2566}{2921}{5872}{6150} \or: - + 8686 \__fp_exp_large:w {7756}{0047}{2598}{6861}{0458}{3204} \or: - + 13029 \__fp_exp_large:w {6830}{5723}{7791}{4884}{1932}{7351} \or: - + 17372 \__fp_exp_large:w {6015}{5609}{3095}{3052}{3494}{7574} \or: - + 21715 \__fp_exp_large:w {5297}{7951}{6443}{0315}{3251}{3576} \or: - + 26058 \__fp_exp_large:w {4665}{6719}{0099}{3379}{5527}{2929} \or: - + 30401 \__fp_exp_large:w {4108}{9724}{3326}{3186}{5271}{5665} \or: - + 34744 \__fp_exp_large:w {3618}{6973}{3140}{0875}{3856}{4102} \or: - + 39087 \__fp_exp_large:w {3186}{9209}{6113}{3900}{6705}{9685} \or: - \fi: - #1; - \__fp_exp_large_iv:wN - } -\cs_new:Npn \__fp_exp_large_iv:wN #1; #2 - { - \if_case:w #2 ~ \exp_after:wN \__fp_fixed_continue:wn \or: - + 435 \__fp_exp_large:w {1970}{0711}{1401}{7046}{9938}{8888} \or: - + 869 \__fp_exp_large:w {3881}{1801}{9428}{4368}{5764}{8232} \or: - + 1303 \__fp_exp_large:w {7646}{2009}{8905}{4704}{8893}{1073} \or: - + 1738 \__fp_exp_large:w {1506}{3559}{7005}{0524}{9009}{7592} \or: - + 2172 \__fp_exp_large:w {2967}{6283}{8402}{3667}{0689}{6630} \or: - + 2606 \__fp_exp_large:w {5846}{4389}{5650}{2114}{7278}{5046} \or: - + 3041 \__fp_exp_large:w {1151}{7900}{5080}{6878}{2914}{4154} \or: - + 3475 \__fp_exp_large:w {2269}{1083}{0850}{6857}{8724}{4002} \or: - + 3909 \__fp_exp_large:w {4470}{3047}{3316}{5442}{6408}{6591} \or: - \fi: - #1; - \__fp_exp_large_iii:wN - } -\cs_new:Npn \__fp_exp_large_iii:wN #1; #2 - { - \if_case:w #2 ~ \exp_after:wN \__fp_fixed_continue:wn \or: - + 44 \__fp_exp_large:w {2688}{1171}{4181}{6135}{4484}{1263} \or: - + 87 \__fp_exp_large:w {7225}{9737}{6812}{5749}{2581}{7748} \or: - + 131 \__fp_exp_large:w {1942}{4263}{9524}{1255}{9365}{8421} \or: - + 174 \__fp_exp_large:w {5221}{4696}{8976}{4143}{9505}{8876} \or: - + 218 \__fp_exp_large:w {1403}{5922}{1785}{2837}{4107}{3977} \or: - + 261 \__fp_exp_large:w {3773}{0203}{0092}{9939}{8234}{0143} \or: - + 305 \__fp_exp_large:w {1014}{2320}{5473}{5004}{5094}{5533} \or: - + 348 \__fp_exp_large:w {2726}{3745}{7211}{2566}{5673}{6478} \or: - + 391 \__fp_exp_large:w {7328}{8142}{2230}{7421}{7051}{8866} \or: - \fi: - #1; - \__fp_exp_large_ii:wN - } -\cs_new:Npn \__fp_exp_large_ii:wN #1; #2 - { - \if_case:w #2 ~ \exp_after:wN \__fp_fixed_continue:wn \or: - + 5 \__fp_exp_large:w {2202}{6465}{7948}{0671}{6516}{9579} \or: - + 9 \__fp_exp_large:w {4851}{6519}{5409}{7902}{7796}{9107} \or: - + 14 \__fp_exp_large:w {1068}{6474}{5815}{2446}{2146}{9905} \or: - + 18 \__fp_exp_large:w {2353}{8526}{6837}{0199}{8540}{7900} \or: - + 22 \__fp_exp_large:w {5184}{7055}{2858}{7072}{4640}{8745} \or: - + 27 \__fp_exp_large:w {1142}{0073}{8981}{5684}{2836}{6296} \or: - + 31 \__fp_exp_large:w {2515}{4386}{7091}{9167}{0062}{6578} \or: - + 35 \__fp_exp_large:w {5540}{6223}{8439}{3510}{0525}{7117} \or: - + 40 \__fp_exp_large:w {1220}{4032}{9431}{7840}{8020}{0271} \or: - \fi: - #1; - \__fp_exp_large_i:wN - } -\cs_new:Npn \__fp_exp_large_i:wN #1; #2 - { - \if_case:w #2 ~ \exp_after:wN \__fp_fixed_continue:wn \or: - + 1 \__fp_exp_large:w {2718}{2818}{2845}{9045}{2353}{6029} \or: - + 1 \__fp_exp_large:w {7389}{0560}{9893}{0650}{2272}{3043} \or: - + 2 \__fp_exp_large:w {2008}{5536}{9231}{8766}{7740}{9285} \or: - + 2 \__fp_exp_large:w {5459}{8150}{0331}{4423}{9078}{1103} \or: - + 3 \__fp_exp_large:w {1484}{1315}{9102}{5766}{0342}{1116} \or: - + 3 \__fp_exp_large:w {4034}{2879}{3492}{7351}{2260}{8387} \or: - + 4 \__fp_exp_large:w {1096}{6331}{5842}{8458}{5992}{6372} \or: - + 4 \__fp_exp_large:w {2980}{9579}{8704}{1728}{2747}{4359} \or: - + 4 \__fp_exp_large:w {8103}{0839}{2757}{5384}{0077}{1000} \or: - \fi: - #1; - \__fp_exp_large_:wN - } -\cs_new:Npn \__fp_exp_large_:wN #1; #2 - { - \if_case:w #2 ~ \exp_after:wN \__fp_fixed_continue:wn \or: - + 1 \__fp_exp_large:w {1105}{1709}{1807}{5647}{6248}{1171} \or: - + 1 \__fp_exp_large:w {1221}{4027}{5816}{0169}{8339}{2107} \or: - + 1 \__fp_exp_large:w {1349}{8588}{0757}{6003}{1039}{8374} \or: - + 1 \__fp_exp_large:w {1491}{8246}{9764}{1270}{3178}{2485} \or: - + 1 \__fp_exp_large:w {1648}{7212}{7070}{0128}{1468}{4865} \or: - + 1 \__fp_exp_large:w {1822}{1188}{0039}{0508}{9748}{7537} \or: - + 1 \__fp_exp_large:w {2013}{7527}{0747}{0476}{5216}{2455} \or: - + 1 \__fp_exp_large:w {2225}{5409}{2849}{2467}{6045}{7954} \or: - + 1 \__fp_exp_large:w {2459}{6031}{1115}{6949}{6638}{0013} \or: - \fi: - #1; - \__fp_exp_large_after:wwn +\cs_new:Npn \__fp_exp_large:NwN #1#2; #3 + { + \if_case:w #3 ~ + \exp_after:wN \__fp_fixed_continue:wn + \else: + \exp_after:wN \__fp_exp_intarray:w + \int_value:w \__fp_int_eval:w 36 * #1 + 4 * #3 \exp_after:wN ; + \fi: + #2; + { + \if_meaning:w 0 #1 + \exp_after:wN \__fp_exp_large_after:wwn + \else: + \exp_after:wN \__fp_exp_large:NwN + \int_value:w \__fp_int_eval:w #1 - 1 \exp_after:wN \scan_stop: + \fi: + } } +\cs_new:Npn \__fp_exp_intarray:w #1 ; + { + + + \__kernel_intarray_item:Nn \c__fp_exp_intarray + { \__fp_int_eval:w #1 - 3 \scan_stop: } + \exp_after:wN \use_i:nnn + \exp_after:wN \__fp_fixed_mul:wwn + \int_value:w 0 + \exp_after:wN \__fp_exp_intarray_aux:w + \int_value:w \__kernel_intarray_item:Nn + \c__fp_exp_intarray { \__fp_int_eval:w #1 - 2 } + \exp_after:wN \__fp_exp_intarray_aux:w + \int_value:w \__kernel_intarray_item:Nn + \c__fp_exp_intarray { \__fp_int_eval:w #1 - 1 } + \exp_after:wN \__fp_exp_intarray_aux:w + \int_value:w \__kernel_intarray_item:Nn \c__fp_exp_intarray {#1} ; ; + } +\cs_new:Npn \__fp_exp_intarray_aux:w 1 #1#2#3#4#5 ; { ; {#1#2#3#4} {#5} } \cs_new:Npn \__fp_exp_large_after:wwn #1; #2; #3 { \__fp_exp_Taylor:Nnnwn ? { } { } 0 #2; {} #3 @@ -16031,7 +16956,11 @@ \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:NwN + \exp_after:wN 5 + \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 ; @@ -16274,193 +17203,273 @@ {#1}#2{0000}{0000}; { \__fp_trigd_small:ww 2, } } -\cs_new:Npx \__fp_trig_inverse_two_pi: - { - \exp_not:n { \exp_after:wN \use_none:n \token_to_str:N } - \cs:w , , ! - 0000000000000000159154943091895335768883763372514362034459645740 ~ - 4564487476673440588967976342265350901138027662530859560728427267 ~ - 5795803689291184611457865287796741073169983922923996693740907757 ~ - 3077746396925307688717392896217397661693362390241723629011832380 ~ - 1142226997557159404618900869026739561204894109369378440855287230 ~ - 9994644340024867234773945961089832309678307490616698646280469944 ~ - 8652187881574786566964241038995874139348609983868099199962442875 ~ - 5851711788584311175187671605465475369880097394603647593337680593 ~ - 0249449663530532715677550322032477781639716602294674811959816584 ~ - 0606016803035998133911987498832786654435279755070016240677564388 ~ - 8495713108801221993761476813777647378906330680464579784817613124 ~ - 2731406996077502450029775985708905690279678513152521001631774602 ~ - 0924811606240561456203146484089248459191435211575407556200871526 ~ - 6068022171591407574745827225977462853998751553293908139817724093 ~ - 5825479707332871904069997590765770784934703935898280871734256403 ~ - 6689511662545705943327631268650026122717971153211259950438667945 ~ - 0376255608363171169525975812822494162333431451061235368785631136 ~ - 3669216714206974696012925057833605311960859450983955671870995474 ~ - 6510431623815517580839442979970999505254387566129445883306846050 ~ - 7852915151410404892988506388160776196993073410389995786918905980 ~ - 9373777206187543222718930136625526123878038753888110681406765434 ~ - 0828278526933426799556070790386060352738996245125995749276297023 ~ - 5940955843011648296411855777124057544494570217897697924094903272 ~ - 9477021664960356531815354400384068987471769158876319096650696440 ~ - 4776970687683656778104779795450353395758301881838687937766124814 ~ - 9530599655802190835987510351271290432315804987196868777594656634 ~ - 6221034204440855497850379273869429353661937782928735937843470323 ~ - 0237145837923557118636341929460183182291964165008783079331353497 ~ - 7909974586492902674506098936890945883050337030538054731232158094 ~ - 3197676032283131418980974982243833517435698984750103950068388003 ~ - 9786723599608024002739010874954854787923568261139948903268997427 ~ - 0834961149208289037767847430355045684560836714793084567233270354 ~ - 8539255620208683932409956221175331839402097079357077496549880868 ~ - 6066360968661967037474542102831219251846224834991161149566556037 ~ - 9696761399312829960776082779901007830360023382729879085402387615 ~ - 5744543092601191005433799838904654921248295160707285300522721023 ~ - 6017523313173179759311050328155109373913639645305792607180083617 ~ - 9548767246459804739772924481092009371257869183328958862839904358 ~ - 6866663975673445140950363732719174311388066383072592302759734506 ~ - 0548212778037065337783032170987734966568490800326988506741791464 ~ - 6835082816168533143361607309951498531198197337584442098416559541 ~ - 5225064339431286444038388356150879771645017064706751877456059160 ~ - 8716857857939226234756331711132998655941596890719850688744230057 ~ - 5191977056900382183925622033874235362568083541565172971088117217 ~ - 9593683256488518749974870855311659830610139214454460161488452770 ~ - 2511411070248521739745103866736403872860099674893173561812071174 ~ - 0478899368886556923078485023057057144063638632023685201074100574 ~ - 8592281115721968003978247595300166958522123034641877365043546764 ~ - 6456565971901123084767099309708591283646669191776938791433315566 ~ - 5066981321641521008957117286238426070678451760111345080069947684 ~ - 2235698962488051577598095339708085475059753626564903439445420581 ~ - 7886435683042000315095594743439252544850674914290864751442303321 ~ - 3324569511634945677539394240360905438335528292434220349484366151 ~ - 4663228602477666660495314065734357553014090827988091478669343492 ~ - 2737602634997829957018161964321233140475762897484082891174097478 ~ - 2637899181699939487497715198981872666294601830539583275209236350 ~ - 6853889228468247259972528300766856937583659722919824429747406163 ~ - 8183113958306744348516928597383237392662402434501997809940402189 ~ - 6134834273613676449913827154166063424829363741850612261086132119 ~ - 9863346284709941839942742955915628333990480382117501161211667205 ~ - 1912579303552929241134403116134112495318385926958490443846807849 ~ - 0973982808855297045153053991400988698840883654836652224668624087 ~ - 2540140400911787421220452307533473972538149403884190586842311594 ~ - 6322744339066125162393106283195323883392131534556381511752035108 ~ - 7459558201123754359768155340187407394340363397803881721004531691 ~ - 8295194879591767395417787924352761740724605939160273228287946819 ~ - 3649128949714953432552723591659298072479985806126900733218844526 ~ - 7943350455801952492566306204876616134365339920287545208555344144 ~ - 0990512982727454659118132223284051166615650709837557433729548631 ~ - 2041121716380915606161165732000083306114606181280326258695951602 ~ - 4632166138576614804719932707771316441201594960110632830520759583 ~ - 4850305079095584982982186740289838551383239570208076397550429225 ~ - 9847647071016426974384504309165864528360324933604354657237557916 ~ - 1366324120457809969715663402215880545794313282780055246132088901 ~ - 8742121092448910410052154968097113720754005710963406643135745439 ~ - 9159769435788920793425617783022237011486424925239248728713132021 ~ - 7667360756645598272609574156602343787436291321097485897150713073 ~ - 9104072643541417970572226547980381512759579124002534468048220261 ~ - 7342299001020483062463033796474678190501811830375153802879523433 ~ - 4195502135689770912905614317878792086205744999257897569018492103 ~ - 2420647138519113881475640209760554895793785141404145305151583964 ~ - 2823265406020603311891586570272086250269916393751527887360608114 ~ - 5569484210322407772727421651364234366992716340309405307480652685 ~ - 0930165892136921414312937134106157153714062039784761842650297807 ~ - 8606266969960809184223476335047746719017450451446166382846208240 ~ - 8673595102371302904443779408535034454426334130626307459513830310 ~ - 2293146934466832851766328241515210179422644395718121717021756492 ~ - 1964449396532222187658488244511909401340504432139858628621083179 ~ - 3939608443898019147873897723310286310131486955212620518278063494 ~ - 5711866277825659883100535155231665984394090221806314454521212978 ~ - 9734471488741258268223860236027109981191520568823472398358013366 ~ - 0683786328867928619732367253606685216856320119489780733958419190 ~ - 6659583867852941241871821727987506103946064819585745620060892122 ~ - 8416394373846549589932028481236433466119707324309545859073361878 ~ - 6290631850165106267576851216357588696307451999220010776676830946 ~ - 9814975622682434793671310841210219520899481912444048751171059184 ~ - 4139907889455775184621619041530934543802808938628073237578615267 ~ - 7971143323241969857805637630180884386640607175368321362629671224 ~ - 2609428540110963218262765120117022552929289655594608204938409069 ~ - 0760692003954646191640021567336017909631872891998634341086903200 ~ - 5796637103128612356988817640364252540837098108148351903121318624 ~ - 7228181050845123690190646632235938872454630737272808789830041018 ~ - 9485913673742589418124056729191238003306344998219631580386381054 ~ - 2457893450084553280313511884341007373060595654437362488771292628 ~ - 9807423539074061786905784443105274262641767830058221486462289361 ~ - 9296692992033046693328438158053564864073184440599549689353773183 ~ - 6726613130108623588021288043289344562140479789454233736058506327 ~ - 0439981932635916687341943656783901281912202816229500333012236091 ~ - 8587559201959081224153679499095448881099758919890811581163538891 ~ - 6339402923722049848375224236209100834097566791710084167957022331 ~ - 7897107102928884897013099533995424415335060625843921452433864640 ~ - 3432440657317477553405404481006177612569084746461432976543900008 ~ - 3826521145210162366431119798731902751191441213616962045693602633 ~ - 6102355962140467029012156796418735746835873172331004745963339773 ~ - 2477044918885134415363760091537564267438450166221393719306748706 ~ - 2881595464819775192207710236743289062690709117919412776212245117 ~ - 2354677115640433357720616661564674474627305622913332030953340551 ~ - 3841718194605321501426328000879551813296754972846701883657425342 ~ - 5016994231069156343106626043412205213831587971115075454063290657 ~ - 0248488648697402872037259869281149360627403842332874942332178578 ~ - 7750735571857043787379693402336902911446961448649769719434527467 ~ - 4429603089437192540526658890710662062575509930379976658367936112 ~ - 8137451104971506153783743579555867972129358764463093757203221320 ~ - 2460565661129971310275869112846043251843432691552928458573495971 ~ - 5042565399302112184947232132380516549802909919676815118022483192 ~ - 5127372199792134331067642187484426215985121676396779352982985195 ~ - 8545392106957880586853123277545433229161989053189053725391582222 ~ - 9232597278133427818256064882333760719681014481453198336237910767 ~ - 1255017528826351836492103572587410356573894694875444694018175923 ~ - 0609370828146501857425324969212764624247832210765473750568198834 ~ - 5641035458027261252285503154325039591848918982630498759115406321 ~ - 0354263890012837426155187877318375862355175378506956599570028011 ~ - 5841258870150030170259167463020842412449128392380525772514737141 ~ - 2310230172563968305553583262840383638157686828464330456805994018 ~ - 7001071952092970177990583216417579868116586547147748964716547948 ~ - 8312140431836079844314055731179349677763739898930227765607058530 ~ - 4083747752640947435070395214524701683884070908706147194437225650 ~ - 2823145872995869738316897126851939042297110721350756978037262545 ~ - 8141095038270388987364516284820180468288205829135339013835649144 ~ - 3004015706509887926715417450706686888783438055583501196745862340 ~ - 8059532724727843829259395771584036885940989939255241688378793572 ~ - 7967951654076673927031256418760962190243046993485989199060012977 ~ - 7469214532970421677817261517850653008552559997940209969455431545 ~ - 2745856704403686680428648404512881182309793496962721836492935516 ~ - 2029872469583299481932978335803459023227052612542114437084359584 ~ - 9443383638388317751841160881711251279233374577219339820819005406 ~ - 3292937775306906607415304997682647124407768817248673421685881509 ~ - 9133422075930947173855159340808957124410634720893194912880783576 ~ - 3115829400549708918023366596077070927599010527028150868897828549 ~ - 4340372642729262103487013992868853550062061514343078665396085995 ~ - 0058714939141652065302070085265624074703660736605333805263766757 ~ - 2018839497277047222153633851135483463624619855425993871933367482 ~ - 0422097449956672702505446423243957506869591330193746919142980999 ~ - 3424230550172665212092414559625960554427590951996824313084279693 ~ - 7113207021049823238195747175985519501864630940297594363194450091 ~ - 9150616049228764323192129703446093584259267276386814363309856853 ~ - 2786024332141052330760658841495858718197071242995959226781172796 ~ - 4438853796763139274314227953114500064922126500133268623021550837 - \cs_end: +\intarray_const_from_clist:Nn \c__fp_trig_intarray + { + 100000000, 100000000, 115915494, 130918953, 135768883, 176337251, + 143620344, 159645740, 145644874, 176673440, 158896797, 163422653, + 150901138, 102766253, 108595607, 128427267, 157958036, 189291184, + 161145786, 152877967, 141073169, 198392292, 139966937, 140907757, + 130777463, 196925307, 168871739, 128962173, 197661693, 136239024, + 117236290, 111832380, 111422269, 197557159, 140461890, 108690267, + 139561204, 189410936, 193784408, 155287230, 199946443, 140024867, + 123477394, 159610898, 132309678, 130749061, 166986462, 180469944, + 186521878, 181574786, 156696424, 110389958, 174139348, 160998386, + 180991999, 162442875, 158517117, 188584311, 117518767, 116054654, + 175369880, 109739460, 136475933, 137680593, 102494496, 163530532, + 171567755, 103220324, 177781639, 171660229, 146748119, 159816584, + 106060168, 103035998, 113391198, 174988327, 186654435, 127975507, + 100162406, 177564388, 184957131, 108801221, 199376147, 168137776, + 147378906, 133068046, 145797848, 117613124, 127314069, 196077502, + 145002977, 159857089, 105690279, 167851315, 125210016, 131774602, + 109248116, 106240561, 145620314, 164840892, 148459191, 143521157, + 154075562, 100871526, 160680221, 171591407, 157474582, 172259774, + 162853998, 175155329, 139081398, 117724093, 158254797, 107332871, + 190406999, 175907657, 170784934, 170393589, 182808717, 134256403, + 166895116, 162545705, 194332763, 112686500, 126122717, 197115321, + 112599504, 138667945, 103762556, 108363171, 116952597, 158128224, + 194162333, 143145106, 112353687, 185631136, 136692167, 114206974, + 169601292, 150578336, 105311960, 185945098, 139556718, 170995474, + 165104316, 123815517, 158083944, 129799709, 199505254, 138756612, + 194458833, 106846050, 178529151, 151410404, 189298850, 163881607, + 176196993, 107341038, 199957869, 118905980, 193737772, 106187543, + 122271893, 101366255, 126123878, 103875388, 181106814, 106765434, + 108282785, 126933426, 179955607, 107903860, 160352738, 199624512, + 159957492, 176297023, 159409558, 143011648, 129641185, 157771240, + 157544494, 157021789, 176979240, 194903272, 194770216, 164960356, + 153181535, 144003840, 168987471, 176915887, 163190966, 150696440, + 147769706, 187683656, 177810477, 197954503, 153395758, 130188183, + 186879377, 166124814, 195305996, 155802190, 183598751, 103512712, + 190432315, 180498719, 168687775, 194656634, 162210342, 104440855, + 149785037, 192738694, 129353661, 193778292, 187359378, 143470323, + 102371458, 137923557, 111863634, 119294601, 183182291, 196416500, + 187830793, 131353497, 179099745, 186492902, 167450609, 189368909, + 145883050, 133703053, 180547312, 132158094, 131976760, 132283131, + 141898097, 149822438, 133517435, 169898475, 101039500, 168388003, + 197867235, 199608024, 100273901, 108749548, 154787923, 156826113, + 199489032, 168997427, 108349611, 149208289, 103776784, 174303550, + 145684560, 183671479, 130845672, 133270354, 185392556, 120208683, + 193240995, 162211753, 131839402, 109707935, 170774965, 149880868, + 160663609, 168661967, 103747454, 121028312, 119251846, 122483499, + 111611495, 166556037, 196967613, 199312829, 196077608, 127799010, + 107830360, 102338272, 198790854, 102387615, 157445430, 192601191, + 100543379, 198389046, 154921248, 129516070, 172853005, 122721023, + 160175233, 113173179, 175931105, 103281551, 109373913, 163964530, + 157926071, 180083617, 195487672, 146459804, 173977292, 144810920, + 109371257, 186918332, 189588628, 139904358, 168666639, 175673445, + 114095036, 137327191, 174311388, 106638307, 125923027, 159734506, + 105482127, 178037065, 133778303, 121709877, 134966568, 149080032, + 169885067, 141791464, 168350828, 116168533, 114336160, 173099514, + 198531198, 119733758, 144420984, 116559541, 152250643, 139431286, + 144403838, 183561508, 179771645, 101706470, 167518774, 156059160, + 187168578, 157939226, 123475633, 117111329, 198655941, 159689071, + 198506887, 144230057, 151919770, 156900382, 118392562, 120338742, + 135362568, 108354156, 151729710, 188117217, 195936832, 156488518, + 174997487, 108553116, 159830610, 113921445, 144601614, 188452770, + 125114110, 170248521, 173974510, 138667364, 103872860, 109967489, + 131735618, 112071174, 104788993, 168886556, 192307848, 150230570, + 157144063, 163863202, 136852010, 174100574, 185922811, 115721968, + 100397824, 175953001, 166958522, 112303464, 118773650, 143546764, + 164565659, 171901123, 108476709, 193097085, 191283646, 166919177, + 169387914, 133315566, 150669813, 121641521, 100895711, 172862384, + 126070678, 145176011, 113450800, 169947684, 122356989, 162488051, + 157759809, 153397080, 185475059, 175362656, 149034394, 145420581, + 178864356, 183042000, 131509559, 147434392, 152544850, 167491429, + 108647514, 142303321, 133245695, 111634945, 167753939, 142403609, + 105438335, 152829243, 142203494, 184366151, 146632286, 102477666, + 166049531, 140657343, 157553014, 109082798, 180914786, 169343492, + 127376026, 134997829, 195701816, 119643212, 133140475, 176289748, + 140828911, 174097478, 126378991, 181699939, 148749771, 151989818, + 172666294, 160183053, 195832752, 109236350, 168538892, 128468247, + 125997252, 183007668, 156937583, 165972291, 198244297, 147406163, + 181831139, 158306744, 134851692, 185973832, 137392662, 140243450, + 119978099, 140402189, 161348342, 173613676, 144991382, 171541660, + 163424829, 136374185, 106122610, 186132119, 198633462, 184709941, + 183994274, 129559156, 128333990, 148038211, 175011612, 111667205, + 119125793, 103552929, 124113440, 131161341, 112495318, 138592695, + 184904438, 146807849, 109739828, 108855297, 104515305, 139914009, + 188698840, 188365483, 166522246, 168624087, 125401404, 100911787, + 142122045, 123075334, 173972538, 114940388, 141905868, 142311594, + 163227443, 139066125, 116239310, 162831953, 123883392, 113153455, + 163815117, 152035108, 174595582, 101123754, 135976815, 153401874, + 107394340, 136339780, 138817210, 104531691, 182951948, 179591767, + 139541778, 179243527, 161740724, 160593916, 102732282, 187946819, + 136491289, 149714953, 143255272, 135916592, 198072479, 198580612, + 169007332, 118844526, 179433504, 155801952, 149256630, 162048766, + 116134365, 133992028, 175452085, 155344144, 109905129, 182727454, + 165911813, 122232840, 151166615, 165070983, 175574337, 129548631, + 120411217, 116380915, 160616116, 157320000, 183306114, 160618128, + 103262586, 195951602, 146321661, 138576614, 180471993, 127077713, + 116441201, 159496011, 106328305, 120759583, 148503050, 179095584, + 198298218, 167402898, 138551383, 123957020, 180763975, 150429225, + 198476470, 171016426, 197438450, 143091658, 164528360, 132493360, + 143546572, 137557916, 113663241, 120457809, 196971566, 134022158, + 180545794, 131328278, 100552461, 132088901, 187421210, 192448910, + 141005215, 149680971, 113720754, 100571096, 134066431, 135745439, + 191597694, 135788920, 179342561, 177830222, 137011486, 142492523, + 192487287, 113132021, 176673607, 156645598, 127260957, 141566023, + 143787436, 129132109, 174858971, 150713073, 191040726, 143541417, + 197057222, 165479803, 181512759, 157912400, 125344680, 148220261, + 173422990, 101020483, 106246303, 137964746, 178190501, 181183037, + 151538028, 179523433, 141955021, 135689770, 191290561, 143178787, + 192086205, 174499925, 178975690, 118492103, 124206471, 138519113, + 188147564, 102097605, 154895793, 178514140, 141453051, 151583964, + 128232654, 106020603, 131189158, 165702720, 186250269, 191639375, + 115278873, 160608114, 155694842, 110322407, 177272742, 116513642, + 134366992, 171634030, 194053074, 180652685, 109301658, 192136921, + 141431293, 171341061, 157153714, 106203978, 147618426, 150297807, + 186062669, 169960809, 118422347, 163350477, 146719017, 145045144, + 161663828, 146208240, 186735951, 102371302, 190444377, 194085350, + 134454426, 133413062, 163074595, 113830310, 122931469, 134466832, + 185176632, 182415152, 110179422, 164439571, 181217170, 121756492, + 119644493, 196532222, 118765848, 182445119, 109401340, 150443213, + 198586286, 121083179, 139396084, 143898019, 114787389, 177233102, + 186310131, 148695521, 126205182, 178063494, 157118662, 177825659, + 188310053, 151552316, 165984394, 109022180, 163144545, 121212978, + 197344714, 188741258, 126822386, 102360271, 109981191, 152056882, + 134723983, 158013366, 106837863, 128867928, 161973236, 172536066, + 185216856, 132011948, 197807339, 158419190, 166595838, 167852941, + 124187182, 117279875, 106103946, 106481958, 157456200, 160892122, + 184163943, 173846549, 158993202, 184812364, 133466119, 170732430, + 195458590, 173361878, 162906318, 150165106, 126757685, 112163575, + 188696307, 145199922, 100107766, 176830946, 198149756, 122682434, + 179367131, 108412102, 119520899, 148191244, 140487511, 171059184, + 141399078, 189455775, 118462161, 190415309, 134543802, 180893862, + 180732375, 178615267, 179711433, 123241969, 185780563, 176301808, + 184386640, 160717536, 183213626, 129671224, 126094285, 140110963, + 121826276, 151201170, 122552929, 128965559, 146082049, 138409069, + 107606920, 103954646, 119164002, 115673360, 117909631, 187289199, + 186343410, 186903200, 157966371, 103128612, 135698881, 176403642, + 152540837, 109810814, 183519031, 121318624, 172281810, 150845123, + 169019064, 166322359, 138872454, 163073727, 128087898, 130041018, + 194859136, 173742589, 141812405, 167291912, 138003306, 134499821, + 196315803, 186381054, 124578934, 150084553, 128031351, 118843410, + 107373060, 159565443, 173624887, 171292628, 198074235, 139074061, + 178690578, 144431052, 174262641, 176783005, 182214864, 162289361, + 192966929, 192033046, 169332843, 181580535, 164864073, 118444059, + 195496893, 153773183, 167266131, 130108623, 158802128, 180432893, + 144562140, 147978945, 142337360, 158506327, 104399819, 132635916, + 168734194, 136567839, 101281912, 120281622, 195003330, 112236091, + 185875592, 101959081, 122415367, 194990954, 148881099, 175891989, + 108115811, 163538891, 163394029, 123722049, 184837522, 142362091, + 100834097, 156679171, 100841679, 157022331, 178971071, 102928884, + 189701309, 195339954, 124415335, 106062584, 139214524, 133864640, + 134324406, 157317477, 155340540, 144810061, 177612569, 108474646, + 114329765, 143900008, 138265211, 145210162, 136643111, 197987319, + 102751191, 144121361, 169620456, 193602633, 161023559, 162140467, + 102901215, 167964187, 135746835, 187317233, 110047459, 163339773, + 124770449, 118885134, 141536376, 100915375, 164267438, 145016622, + 113937193, 106748706, 128815954, 164819775, 119220771, 102367432, + 189062690, 170911791, 194127762, 112245117, 123546771, 115640433, + 135772061, 166615646, 174474627, 130562291, 133320309, 153340551, + 138417181, 194605321, 150142632, 180008795, 151813296, 175497284, + 167018836, 157425342, 150169942, 131069156, 134310662, 160434122, + 105213831, 158797111, 150754540, 163290657, 102484886, 148697402, + 187203725, 198692811, 149360627, 140384233, 128749423, 132178578, + 177507355, 171857043, 178737969, 134023369, 102911446, 196144864, + 197697194, 134527467, 144296030, 189437192, 154052665, 188907106, + 162062575, 150993037, 199766583, 167936112, 181374511, 104971506, + 115378374, 135795558, 167972129, 135876446, 130937572, 103221320, + 124605656, 161129971, 131027586, 191128460, 143251843, 143269155, + 129284585, 173495971, 150425653, 199302112, 118494723, 121323805, + 116549802, 190991967, 168151180, 122483192, 151273721, 199792134, + 133106764, 121874844, 126215985, 112167639, 167793529, 182985195, + 185453921, 106957880, 158685312, 132775454, 133229161, 198905318, + 190537253, 191582222, 192325972, 178133427, 181825606, 148823337, + 160719681, 101448145, 131983362, 137910767, 112550175, 128826351, + 183649210, 135725874, 110356573, 189469487, 154446940, 118175923, + 106093708, 128146501, 185742532, 149692127, 164624247, 183221076, + 154737505, 168198834, 156410354, 158027261, 125228550, 131543250, + 139591848, 191898263, 104987591, 115406321, 103542638, 190012837, + 142615518, 178773183, 175862355, 117537850, 169565995, 170028011, + 158412588, 170150030, 117025916, 174630208, 142412449, 112839238, + 105257725, 114737141, 123102301, 172563968, 130555358, 132628403, + 183638157, 168682846, 143304568, 105994018, 170010719, 152092970, + 117799058, 132164175, 179868116, 158654714, 177489647, 116547948, + 183121404, 131836079, 184431405, 157311793, 149677763, 173989893, + 102277656, 107058530, 140837477, 152640947, 143507039, 152145247, + 101683884, 107090870, 161471944, 137225650, 128231458, 172995869, + 173831689, 171268519, 139042297, 111072135, 107569780, 137262545, + 181410950, 138270388, 198736451, 162848201, 180468288, 120582913, + 153390138, 135649144, 130040157, 106509887, 192671541, 174507066, + 186888783, 143805558, 135011967, 145862340, 180595327, 124727843, + 182925939, 157715840, 136885940, 198993925, 152416883, 178793572, + 179679516, 154076673, 192703125, 164187609, 162190243, 104699348, + 159891990, 160012977, 174692145, 132970421, 167781726, 115178506, + 153008552, 155999794, 102099694, 155431545, 127458567, 104403686, + 168042864, 184045128, 181182309, 179349696, 127218364, 192935516, + 120298724, 169583299, 148193297, 183358034, 159023227, 105261254, + 121144370, 184359584, 194433836, 138388317, 175184116, 108817112, + 151279233, 137457721, 193398208, 119005406, 132929377, 175306906, + 160741530, 149976826, 147124407, 176881724, 186734216, 185881509, + 191334220, 175930947, 117385515, 193408089, 157124410, 163472089, + 131949128, 180783576, 131158294, 100549708, 191802336, 165960770, + 170927599, 101052702, 181508688, 197828549, 143403726, 142729262, + 110348701, 139928688, 153550062, 106151434, 130786653, 196085995, + 100587149, 139141652, 106530207, 100852656, 124074703, 166073660, + 153338052, 163766757, 120188394, 197277047, 122215363, 138511354, + 183463624, 161985542, 159938719, 133367482, 104220974, 149956672, + 170250544, 164232439, 157506869, 159133019, 137469191, 142980999, + 134242305, 150172665, 121209241, 145596259, 160554427, 159095199, + 168243130, 184279693, 171132070, 121049823, 123819574, 171759855, + 119501864, 163094029, 175943631, 194450091, 191506160, 149228764, + 132319212, 197034460, 193584259, 126727638, 168143633, 109856853, + 127860243, 132141052, 133076065, 188414958, 158718197, 107124299, + 159592267, 181172796, 144388537, 196763139, 127431422, 179531145, + 100064922, 112650013, 132686230, 121550837, } \cs_new:Npn \__fp_trig_large:ww #1, #2#3#4#5#6; { - \exp_after:wN \__fp_trig_large_auxi:wwwwww - \int_value:w \__fp_int_eval:w (#1 - 32) / 64 \exp_after:wN , + \exp_after:wN \__fp_trig_large_auxi:w \int_value:w \__fp_int_eval:w (#1 - 4) / 8 \exp_after:wN , - \int_value:w #1 \__fp_trig_inverse_two_pi: ; + \int_value:w #1 , ; {#2}{#3}{#4}{#5} ; } -\cs_new:Npn \__fp_trig_large_auxi:wwwwww #1, #2, #3, #4! +\cs_new:Npn \__fp_trig_large_auxi:w #1, #2, { - \prg_replicate:nn {#1} { \__fp_trig_large_auxii:ww } - \prg_replicate:nn { #2 - #1 * 8 } - { \__fp_trig_large_auxiii:wNNNNNNNN } - \prg_replicate:nn { #3 - #2 * 8 } - { \__fp_trig_large_auxiv:wN } - \prg_replicate:nn { 8 } { \__fp_pack_twice_four:wNNNNNNNN } - \__fp_trig_large_auxv:www - ; + \exp_after:wN \exp_after:wN + \exp_after:wN \__fp_trig_large_auxii:w + \cs:w + use_none:n \prg_replicate:nn { #2 - #1 * 8 } { n } + \exp_after:wN + \cs_end: + \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 1 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 2 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 3 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 4 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 5 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 6 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 7 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 8 \scan_stop: } + \exp_after:wN \__fp_trig_large_auxiii:w \int_value:w + \__kernel_intarray_item:Nn \c__fp_trig_intarray + { \__fp_int_eval:w #1 + 9 \scan_stop: } + \exp_stop_f: + } +\cs_new:Npn \__fp_trig_large_auxii:w + { + \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN + \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN + \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN + \__fp_pack_twice_four:wNNNNNNNN \__fp_pack_twice_four:wNNNNNNNN + \__fp_trig_large_auxv:www ; } -\cs_new:Npn \__fp_trig_large_auxii:ww #1; #2 ~ { #1; } -\cs_new:Npn \__fp_trig_large_auxiii:wNNNNNNNN - #1; #2#3#4#5#6#7#8#9 { #1; } -\cs_new:Npn \__fp_trig_large_auxiv:wN #1; #2 { #1; } +\cs_new:Npn \__fp_trig_large_auxiii:w 1 { \exp_stop_f: } \cs_new:Npn \__fp_trig_large_auxv:www #1; #2; #3; { \exp_after:wN \__fp_use_i_until_s:nw @@ -17131,7 +18140,7 @@ \exp_after:wN \__fp_from_dim_test:ww \exp_after:wN 0 \exp_after:wN , - \int_value:w \etex_glueexpr:D #1 ; + \int_value:w \tex_glueexpr:D #1 ; } \cs_new:Npn \__fp_from_dim_test:ww #1, #2 { @@ -17200,85 +18209,70 @@ { \__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 +\sys_if_rand_exist:F { \__kernel_msg_new:nnn { kernel } { fp-no-random } - { Random~numbers~unavailable } + { Random~numbers~unavailable~for~#1 } \cs_new:Npn \__fp_rand_o:Nw ? #1 @ { - \__kernel_msg_expandable_error:nn { kernel } { fp-no-random } + \__kernel_msg_expandable_error:nnn { kernel } { fp-no-random } + { fp~rand } \exp_after:wN \c_nan_fp } \cs_new_eq:NN \__fp_randint_o:Nw \__fp_rand_o:Nw \cs_new:Npn \int_rand:nn #1#2 { - \__kernel_msg_expandable_error:nn { kernel } { fp-no-random } + \__kernel_msg_expandable_error:nnn { kernel } { fp-no-random } + { \int_rand:nn {#1} {#2} } \int_eval:n {#1} } + \cs_new:Npn \int_rand:n #1 + { + \__kernel_msg_expandable_error:nnn { kernel } { fp-no-random } + { \int_rand:n {#1} } + 1 + } } -\cs_if_exist:NT \pdftex_uniformdeviate:D +\sys_if_rand_exist:T { - \cs_new:Npn \__fp_rand_uniform: - { \pdftex_uniformdeviate:D \c__fp_rand_size_int } - \int_const:Nn \c__fp_rand_size_int { 268 435 456 } - \int_const:Nn \c__fp_rand_four_int { 268 430 000 } - \int_const:Nn \c__fp_rand_eight_int { 200 000 000 } - \cs_new:Npn \__fp_rand_myriads:n #1 + \int_const:Nn \c__kernel_randint_max_int { 131071 } + \cs_new:Npn \__kernel_randint:n #1 { - \__fp_rand_myriads_loop:nn #1 - { ? \use_i_delimit_by_q_stop:nw \__fp_rand_myriads_last: } - { ? \use_none_delimit_by_q_stop:w } \q_stop + (#1 * \tex_uniformdeviate:D 16384 + + \tex_uniformdeviate:D #1 + 8192 ) / 16384 } - \cs_new:Npn \__fp_rand_myriads_loop:nn #1#2 + \cs_new:Npn \__fp_rand_myriads:n #1 + { \__fp_rand_myriads_loop:w #1 \prg_break: X \prg_break_point: ; } + \cs_new:Npn \__fp_rand_myriads_loop:w #1 X { - \use_none:n #2 + #1 \exp_after:wN \__fp_rand_myriads_get:w - \int_value:w \__fp_rand_uniform: ; {#1}{#2} - } - \cs_new:Npn \__fp_rand_myriads_get:w #1 ; - { - \if_int_compare:w #1 < \c__fp_rand_eight_int - \exp_after:wN \use_none:n - \int_value:w \__fp_int_eval:w - \c__fp_rand_eight_int + #1 \__fp_int_eval_end: - \exp_after:wN \use_i:nnn - \else: - \if_int_compare:w #1 < \c__fp_rand_four_int - \exp_after:wN \use_none:nnnnn - \int_value:w \__fp_int_eval:w - \c__fp_rand_four_int + #1 \__fp_int_eval_end: - \exp_after:wN \exp_after:wN \exp_after:wN \use_i:nn - \fi: - \fi: - \__fp_rand_myriads_loop:nn - } - \cs_new:Npn \__fp_rand_myriads_last: - { - \exp_after:wN \__fp_rand_myriads_last:w - \int_value:w \__fp_rand_uniform: ; - } - \cs_new:Npn \__fp_rand_myriads_last:w #1 ; - { - \if_int_compare:w #1 < \c__fp_rand_four_int - \exp_after:wN \use_none:nnnnn - \int_value:w \__fp_int_eval:w - \c__fp_rand_four_int + #1 \__fp_int_eval_end: - \else: - \exp_after:wN \__fp_rand_myriads_last: - \fi: + \int_value:w \__fp_int_eval:w 9999 + + \__kernel_randint:n { 10000 } + \__fp_rand_myriads_loop:w } + \cs_new:Npn \__fp_rand_myriads_get:w 1 #1 ; { ; {#1} } \cs_new:Npn \__fp_rand_o:Nw ? #1 @ { \tl_if_empty:nTF {#1} - { \__fp_rand_o: } + { + \exp_after:wN \__fp_rand_o:w + \exp:w \exp_end_continue_f:w + \__fp_rand_myriads:n { XXXX } { 0000 } { 0000 } ; 0 + } { \__kernel_msg_expandable_error:nnnnn { kernel } { fp-num-args } { rand() } { 0 } { 0 } \exp_after:wN \c_nan_fp } } - \cs_new:Npn \__fp_rand_o: - { \__fp_parse_o:n { . \__fp_rand_myriads:n { xxxx } } } + \cs_new:Npn \__fp_rand_o:w ; + { + \exp_after:wN \__fp_sanitize:Nw + \exp_after:wN 0 + \int_value:w \__fp_int_eval:w \c_zero_int + \__fp_fixed_to_float_o:wN + } \cs_new:Npn \__fp_randint_o:Nw ? { \__fp_parse_function_one_two:nnw @@ -17292,7 +18286,7 @@ { \if_meaning:w 1 #1 \if_int_compare:w - \use_i_delimit_by_q_stop:nw #3 \q_stop > \c__fp_prec_int + \__fp_use_i_until_s:nw #3 ; > \c__fp_prec_int 1 \exp_stop_f: \fi: \fi: @@ -17304,9 +18298,9 @@ \if_case:w \__fp_randint_badarg:w #1; \__fp_randint_badarg:w #2; - \fp_compare:nNnTF { #1; } > { #2; } { 1 } { 0 } \exp_stop_f: - \exp_after:wN \exp_after:wN \exp_after:wN \__fp_randint_e:wnn - \__fp_parse:n { #2; - #1; } { #1; } { #2; } + \if:w 1 \__fp_compare_back:ww #2; #1; 1 \exp_stop_f: \fi: + 0 \exp_stop_f: + \__fp_randint_auxi_o:ww #1; #2; \or: \__fp_invalid_operation_tl_o:ff { randint } { \__fp_array_to_clist:n { #1; #2; } } @@ -17314,178 +18308,353 @@ \fi: \exp_after:wN \exp_end: } - \cs_new:Npn \__fp_randint_e:wnn #1; + \cs_new:Npn \__fp_randint_auxi_o:ww #1 ; #2 ; #3 \exp_end: { - \exp_after:wN \__fp_randint_e:wwNnn - \int_value:w \__fp_rand_uniform: \exp_after:wN ; - \exp:w \exp_end_continue_f:w - \fp_compare:nNnTF { #1 ; } < \c__fp_rand_size_int - { \fp_to_int:n { #1 ; + 1 } ; \__fp_randint_narrow_e:nnnn } - { - \fp_to_int:n { floor(#1 ; * 1e-8 + 1) } ; - \__fp_randint_wide_e:nnnn - } + \fi: + \__fp_randint_auxii:wn #2 ; + { \__fp_randint_auxii:wn #1 ; \__fp_randint_auxiii_o:ww } } - \cs_new:Npn \__fp_randint_e:wwNnn #1 ; #2 ; + \cs_new:Npn \__fp_randint_auxii:wn \s__fp \__fp_chk:w 1#1#2#3 ; { - \exp_after:wN \__fp_randint_e:wwwNnn - \int_value:w \int_mod:nn {#1} {#2} ; #1 ; #2 ; + \exp_after:wN \__fp_ep_to_fixed:wwn + \int_value:w \__fp_int_eval:w + #2 - \c__fp_prec_int , #3 {0000} {0000} ; + { + \if_meaning:w 0 #1 + \exp_after:wN \use_i:nnnn + \exp_after:wN \__fp_fixed_add_one:wN + \fi: + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl + } + \__fp_fixed_continue:wn } - \cs_new:Npn \__fp_randint_e:wwwNnn #1 ; #2 ; #3 ; #4 + \cs_new:Npn \__fp_randint_auxiii_o:ww #1 ; #2 ; { - \int_compare:nNnTF { #2 - #1 + #3 } > \c__fp_rand_size_int - { - \exp_after:wN \__fp_randint_e:wwNnn - \int_value:w \__fp_rand_uniform: ; #3 ; #4 - } - { #4 {#1} {#3} } + \__fp_fixed_add:wwn #2 ; + {0000} {0000} {0000} {0001} {0000} {0000} ; + \__fp_fixed_sub:wwn #1 ; + { + \exp_after:wN \use_i:nn + \exp_after:wN \__fp_fixed_mul_add:wwwn + \exp:w \exp_end_continue_f:w \__fp_rand_myriads:n { XXXXXX } ; + } + #1 ; + \__fp_randint_auxiv_o:ww + #2 ; + \__fp_randint_auxv_o:w #1 ; @ } - \cs_new:Npn \__fp_randint_narrow_e:nnnn #1#2#3#4 - { \__fp_parse_o:n { #3 + #1 } \exp:w } - \cs_new:Npn \__fp_randint_wide_e:nnnn #1#2#3#4 + \cs_new:Npn \__fp_randint_auxiv_o:ww #1#2#3#4#5 ; #6#7#8#9 { - \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_randint_wide_e:wnnn - \__fp_parse:n { #3 + #1e8 + \__fp_rand_myriads:n { xx } } - {#2} {#3} {#4} + \if_int_compare:w + \if_int_compare:w #1#2 > #6#7 \exp_stop_f: 1 \else: + \if_int_compare:w #1#2 < #6#7 \exp_stop_f: - \fi: \fi: + #3#4 > #8#9 \exp_stop_f: + \__fp_use_i_until_s:nw + \fi: + \__fp_randint_auxv_o:w {#1}{#2}{#3}{#4}#5 } - \cs_new:Npn \__fp_randint_wide_e:wnnn #1 ; #2#3#4 + \cs_new:Npn \__fp_randint_auxv_o:w #1#2#3#4#5 ; #6 @ { - \fp_compare:nNnTF { #1 ; } > {#4} - { - \exp_after:wN \__fp_randint_e:wwNnn - \int_value:w \__fp_rand_uniform: ; #2 ; - \__fp_randint_wide_e:nnnn {#3} {#4} - } - { \__fp_exp_after_o:w #1 ; \exp:w } + \exp_after:wN \__fp_sanitize:Nw + \int_value:w + \if_int_compare:w #1 < 10000 \exp_stop_f: + 2 + \else: + 0 + \exp_after:wN \exp_after:wN + \exp_after:wN \__fp_reverse_args:Nww + \fi: + \exp_after:wN \__fp_fixed_sub:wwn \c__fp_one_fixed_tl + {#1} {#2} {#3} {#4} {0000} {0000} ; + { + \exp_after:wN \exp_stop_f: + \int_value:w \__fp_int_eval:w \c__fp_prec_int + \__fp_fixed_to_float_o:wN + } + 0 + \exp:w \exp_after:wN \exp_end: } \cs_new:Npn \int_rand:nn #1#2 { - \exp_after:wN \__fp_randint:ww - \int_value:w \int_eval:n {#1} \exp_after:wN ; - \int_value:w \int_eval:n {#2} ; + \int_eval:n + { + \exp_after:wN \__fp_randint:ww + \int_value:w \int_eval:n {#1} \exp_after:wN ; + \int_value:w \int_eval:n {#2} ; + } } \cs_new:Npn \__fp_randint:ww #1; #2; { - \int_compare:nNnTF {#1} > {#2} - { - \__kernel_msg_expandable_error:nnnn - { kernel } { randint-backward-range } {#1} {#2} - \__fp_randint:ww #2; #1; - } - { - \int_compare:nNnTF {#1} > 0 - { \int_compare:nNnTF { #2 - #1 } < \c__fp_rand_size_int } - { \int_compare:nNnTF {#2} < { #1 + \c__fp_rand_size_int } } - { - \int_eval:n - { - #1 + - \exp_args:Nf \__fp_randint_narrow:n - { \int_eval:n { #2 - #1 + 1 } } - } - } - { \fp_to_int:n { randint(#1,#2) } } - } + \if_int_compare:w #1 > #2 \exp_stop_f: + \__kernel_msg_expandable_error:nnnn + { kernel } { randint-backward-range } {#1} {#2} + \__fp_randint:ww #2; #1; + \else: + \if_int_compare:w \__fp_int_eval:w #2 + \if_int_compare:w #1 > \c_zero_int + - #1 < \__fp_int_eval:w + \else: + < \__fp_int_eval:w #1 + + \fi: + \c__kernel_randint_max_int + \__fp_int_eval_end: + \__kernel_randint:n + { \__fp_int_eval:w #2 - #1 + 1 \__fp_int_eval_end: } + - 1 + #1 + \else: + \__kernel_randint:nn {#1} {#2} + \fi: + \fi: } - \cs_new:Npn \__fp_randint_narrow:n #1 + \cs_new:Npn \__kernel_randint:nn #1#2 { - \exp_args:Nf \__fp_randint_narrow:nn - { \int_div_truncate:nn \c__fp_rand_size_int {#1} } {#1} + #1 + \exp_after:wN \__fp_randint_wide_aux:w + \int_value:w + \exp_after:wN \__fp_randint_split_o:Nw + \tex_uniformdeviate:D 268435456 ; + \int_value:w + \exp_after:wN \__fp_randint_split_o:Nw + \tex_uniformdeviate:D 268435456 ; + \int_value:w + \exp_after:wN \__fp_randint_split_o:Nw + \int_value:w \__fp_int_eval:w 131072 + + \exp_after:wN \__fp_randint_split_o:Nw + \int_value:w + \__kernel_int_add:nnn {#2} { -#1 } { -\c_max_int } ; + . } - \cs_new:Npn \__fp_randint_narrow:nn #1 + \cs_new:Npn \__fp_randint_split_o:Nw #1#2 ; { - \exp_args:Nf \__fp_randint_narrow:nnn - { - \int_div_truncate:nn - { \pdftex_uniformdeviate:D \c__fp_rand_size_int } {#1} - } - {#1} + \if_meaning:w 0 #1 + 0 \exp_after:wN ; \int_value:w 0 + \else: + \exp_after:wN \__fp_randint_split_aux:w + \int_value:w \__fp_int_eval:w (#1#2 - 8192) / 16384 ; + + #1#2 + \fi: + \exp_after:wN ; } - \cs_new:Npn \__fp_randint_narrow:nnn #1#2#3 + \cs_new:Npn \__fp_randint_split_aux:w #1 ; { - \int_compare:nNnTF {#1} < {#3} - {#1} - { \__fp_randint_narrow:nn {#2} {#3} } + #1 \exp_after:wN ; + \int_value:w \__fp_int_eval:w - #1 * 16384 + } + \cs_new:Npn \__fp_randint_wide_aux:w #1;#2; #3;#4; #5;#6;#7; . + { + \exp_after:wN \__fp_randint_wide_auxii:w + \int_value:w \__fp_int_eval:w #5 * #3 + #6 * #1 + + (#5 * #4 + #6 * #3 + #7 * #1 + + (#5 * #2 + #7 * #3 + + (16384 * #6 + #7) * (16384 * #4 + #2) / 268435456) / 16384 + ) / 16384 \exp_after:wN ; + \int_value:w \__fp_int_eval:w (#5 + #6) * 16384 + #7 ; + #1 ; #5 ; + } + \cs_new:Npn \__fp_randint_wide_auxii:w #1; #2; #3; #4; + { + \if_int_odd:w 0 + \if_int_compare:w #1 = #2 \else: \exp_stop_f: \fi: + \if_int_compare:w #4 = \c_zero_int 1 \fi: + \if_int_compare:w #3 = 16383 ~ 1 \fi: + \exp_stop_f: + \exp_after:wN \prg_break: + \fi: + \if_int_compare:w #4 < 8 \exp_stop_f: + + #4 * #3 * 16384 + \else: + + 8 * #3 * 16384 + (#4 - 8) * #3 * 16384 + \fi: + + #1 + \prg_break_point: + } + \cs_new:Npn \int_rand:n #1 + { + \int_eval:n + { \exp_args:Nf \__fp_randint:n { \int_eval:n {#1} } } + } + \cs_new:Npn \__fp_randint:n #1 + { + \if_int_compare:w #1 < 1 \exp_stop_f: + \__kernel_msg_expandable_error:nnnn + { kernel } { randint-backward-range } { 1 } {#1} + \__fp_randint:ww #1; 1; + \else: + \if_int_compare:w #1 > \c__kernel_randint_max_int + \__kernel_randint:nn { 1 } {#1} + \else: + \__kernel_randint:n {#1} + \fi: + \fi: } } -%% File: l3intarray.dtx Copyright (C) 2017-2018 The LaTeX3 Project -\dim_const:Nn \c__intarray_sp_dim { 1 sp } -\int_new:N \g__intarray_font_int -\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN g #1 } { } -\cs_new_protected:Npn \intarray_new:Nn #1#2 +%% File: l3fparray.dtx Copyright (C) 2018 The LaTeX3 Project +\int_new:N \g__fp_array_int +\int_new:N \l__fp_array_loop_int +\cs_new_protected:Npn \fparray_new:Nn #1#2 { - \__kernel_chk_if_free_cs:N #1 - \int_gincr:N \g__intarray_font_int - \tex_global:D \tex_font:D #1 - = cmr10~at~ \g__intarray_font_int \c__intarray_sp_dim \scan_stop: - \tex_hyphenchar:D #1 = \int_eval:n {#2} \scan_stop: - \int_compare:nNnT { \tex_hyphenchar:D #1 } > 0 - { \tex_fontdimen:D \tex_hyphenchar:D #1 #1 = \c_zero_dim } - \int_step_inline:nn { 8 } { \tex_fontdimen:D ##1 #1 = \c_zero_dim } + \tl_new:N #1 + \prg_replicate:nn { 3 } + { + \int_gincr:N \g__fp_array_int + \exp_args:NNc \tl_gput_right:Nn #1 + { g__fp_array_ \__fp_int_to_roman:w \g__fp_array_int _intarray } + } + \exp_last_unbraced:Nfo \__fp_array_new:nNNNN + { \int_eval:n {#2} } #1 #1 } -\cs_new:Npn \intarray_count:N #1 { \tex_the:D \tex_hyphenchar:D #1 } -\cs_new:Npn \__intarray_bounds:NNnTF #1#2#3#4#5 +\cs_new_protected:Npn \__fp_array_new:nNNNN #1#2#3#4#5 + { + \int_compare:nNnTF {#1} < 0 + { + \__kernel_msg_error:nnn { kernel } { negative-array-size } {#1} + \cs_undefine:N #1 + \int_gsub:Nn \g__fp_array_int { 3 } + } + { + \intarray_new:Nn #2 {#1} + \intarray_new:Nn #3 {#1} + \intarray_new:Nn #4 {#1} + } + } +\cs_new:Npn \fparray_count:N #1 + { + \exp_after:wN \use_i:nnn + \exp_after:wN \intarray_count:N #1 + } +\cs_new:Npn \__fp_array_bounds:NNnTF #1#2#3#4#5 { \if_int_compare:w 1 > #3 \exp_stop_f: - \__intarray_bounds_error:NNn #1 #2 {#3} + \__fp_array_bounds_error:NNn #1 #2 {#3} #5 \else: - \if_int_compare:w #3 > \intarray_count:N #2 \exp_stop_f: - \__intarray_bounds_error:NNn #1 #2 {#3} + \if_int_compare:w #3 > \fparray_count:N #2 \exp_stop_f: + \__fp_array_bounds_error:NNn #1 #2 {#3} #5 \else: #4 \fi: \fi: } -\cs_new:Npn \__intarray_bounds_error:NNn #1#2#3 +\cs_new:Npn \__fp_array_bounds_error:NNn #1#2#3 { #1 { kernel } { out-of-bounds } - { \token_to_str:N #2 } {#3} { \intarray_count:N #2 } + { \token_to_str:N #2 } {#3} { \fparray_count:N #2 } } -\cs_new_protected:Npn \__kernel_intarray_gset:Nnn #1#2#3 - { \tex_fontdimen:D #2 #1 #3 \c__intarray_sp_dim } -\cs_new_protected:Npn \intarray_gset:Nnn #1#2#3 +\cs_new_protected:Npn \fparray_gset:Nnn #1#2#3 { - \exp_after:wN \__intarray_gset:Nww + \exp_after:wN \exp_after:wN + \exp_after:wN \__fp_array_gset:NNNNww + \exp_after:wN #1 \exp_after:wN #1 \int_value:w \int_eval:n {#2} \exp_after:wN ; - \int_value:w \int_eval:n {#3} ; + \exp:w \exp_end_continue_f:w \__fp_parse:n {#3} } -\cs_new_protected:Npn \__intarray_gset:Nww #1#2 ; #3 ; +\cs_new_protected:Npn \__fp_array_gset:NNNNww #1#2#3#4#5 ; #6 ; { - \__intarray_bounds:NNnTF \__kernel_msg_error:nnxxx #1 {#2} + \__fp_array_bounds:NNnTF \__kernel_msg_error:nnxxx #4 {#5} { - \if_int_compare:w \int_abs:n {#3} > \c_max_dim - \exp_after:wN \__intarray_gset_overflow:NNnn - \fi: - \__kernel_intarray_gset:Nnn #1 {#2} {#3} + \exp_after:wN \__fp_change_func_type:NNN + \__fp_use_i_until_s:nw #6 ; + \__fp_array_gset:w + \__fp_array_gset_recover:Nw + #6 ; {#5} #1 #2 #3 } { } } -\cs_new_protected:Npn \__intarray_gset_overflow:NNnn #1#2#3#4 +\cs_new_protected:Npn \__fp_array_gset_recover:Nw #1#2 ; { - \__kernel_msg_error:nnxxxx { kernel } { overflow } - { \token_to_str:N #2 } {#3} {#4} - { \int_value:w \int_compare:nNnT {#4} < 0 { - } \c_max_dim } - \__kernel_intarray_gset:Nnn #2 {#3} - { \int_value:w \int_compare:nNnT {#4} < 0 { - } \c_max_dim } + \__fp_error:nffn { fp-unknown-type } { \tl_to_str:n { #2 ; } } { } { } + \exp_after:wN #1 \c_nan_fp } -\cs_new:Npn \__kernel_intarray_item:Nn #1#2 - { \int_value:w \tex_fontdimen:D #2 #1 } -\cs_new:Npn \intarray_item:Nn #1#2 +\cs_new_protected:Npn \__fp_array_gset:w \s__fp \__fp_chk:w #1#2 { - \exp_after:wN \__intarray_item:Nw + \if_case:w #1 \exp_stop_f: + \__fp_case_return:nw { \__fp_array_gset_special:nnNNN {#2} } + \or: \exp_after:wN \__fp_array_gset_normal:w + \or: \__fp_case_return:nw { \__fp_array_gset_special:nnNNN { #2 3 } } + \or: \__fp_case_return:nw { \__fp_array_gset_special:nnNNN { 1 } } + \fi: + \s__fp \__fp_chk:w #1 #2 + } +\cs_new_protected:Npn \__fp_array_gset_normal:w + \s__fp \__fp_chk:w 1 #1 #2 #3#4#5 ; #6#7#8#9 + { + \__kernel_intarray_gset:Nnn #7 {#6} {#2} + \__kernel_intarray_gset:Nnn #8 {#6} + { \if_meaning:w 2 #1 3 \else: 1 \fi: #3#4 } + \__kernel_intarray_gset:Nnn #9 {#6} { 1 \use:nn #5 } + } +\cs_new_protected:Npn \__fp_array_gset_special:nnNNN #1#2#3#4#5 + { + \__kernel_intarray_gset:Nnn #3 {#2} {#1} + \__kernel_intarray_gset:Nnn #4 {#2} {0} + \__kernel_intarray_gset:Nnn #5 {#2} {0} + } +\cs_new_protected:Npn \fparray_gzero:N #1 + { + \int_zero:N \l__fp_array_loop_int + \prg_replicate:nn { \fparray_count:N #1 } + { + \int_incr:N \l__fp_array_loop_int + \exp_after:wN \__fp_array_gset_special:nnNNN + \exp_after:wN 0 + \exp_after:wN \l__fp_array_loop_int + #1 + } + } +\cs_new:Npn \fparray_item:Nn #1#2 + { + \exp_after:wN \__fp_array_item:NwN \exp_after:wN #1 \int_value:w \int_eval:n {#2} ; + \__fp_to_decimal:w } -\cs_new:Npn \__intarray_item:Nw #1#2 ; +\cs_new:Npn \fparray_item_to_tl:Nn #1#2 { - \__intarray_bounds:NNnTF \__kernel_msg_expandable_error:nnfff #1 {#2} - { \__kernel_intarray_item:Nn #1 {#2} } - { 0 } + \exp_after:wN \__fp_array_item:NwN + \exp_after:wN #1 + \int_value:w \int_eval:n {#2} ; + \__fp_to_tl:w } +\cs_new:Npn \__fp_array_item:NwN #1#2 ; #3 + { + \__fp_array_bounds:NNnTF \__kernel_msg_expandable_error:nnfff #1 {#2} + { \exp_after:wN \__fp_array_item:NNNnN #1 {#2} #3 } + { \exp_after:wN #3 \c_nan_fp } + } +\cs_new:Npn \__fp_array_item:NNNnN #1#2#3#4 + { + \exp_after:wN \__fp_array_item:N + \int_value:w \__kernel_intarray_item:Nn #2 {#4} \exp_after:wN ; + \int_value:w \__kernel_intarray_item:Nn #3 {#4} \exp_after:wN ; + \int_value:w \__kernel_intarray_item:Nn #1 {#4} ; + } +\cs_new:Npn \__fp_array_item:N #1 + { + \if_meaning:w 0 #1 \exp_after:wN \__fp_array_item_special:w \fi: + \__fp_array_item:w #1 + } +\cs_new:Npn \__fp_array_item:w #1 #2#3#4#5 #6 ; 1 #7 ; + { + \exp_after:wN \__fp_array_item_normal:w + \int_value:w \if_meaning:w #1 1 0 \else: 2 \fi: \exp_stop_f: + #7 ; {#2#3#4#5} {#6} ; + } +\cs_new:Npn \__fp_array_item_special:w #1 ; #2 ; #3 ; #4 + { + \exp_after:wN #4 + \exp:w \exp_end_continue_f:w + \if_case:w #3 \exp_stop_f: + \exp_after:wN \c_zero_fp + \or: \exp_after:wN \c_nan_fp + \or: \exp_after:wN \c_minus_zero_fp + \or: \exp_after:wN \c_inf_fp + \else: \exp_after:wN \c_minus_inf_fp + \fi: + } +\cs_new:Npn \__fp_array_item_normal:w #1 #2#3#4#5 #6 ; #7 ; #8 ; #9 + { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} ; } %% File l3sort.dtx (C) Copyright 2012-2018 The LaTeX3 Project \seq_new:N \g__sort_internal_seq \tl_new:N \g__sort_internal_tl @@ -18177,13 +19346,13 @@ \exp_after:wN \prg_break: \fi: \tex_the:D \tex_toks:D #1 \s__tl - \if_case:w \etex_gluestretch:D \tex_skip:D #1 \exp_stop_f: + \if_case:w \tex_gluestretch:D \tex_skip:D #1 \exp_stop_f: \token_to_str:N A \or: 1 \or: 1 \else: 2 \fi: - \if_int_odd:w \etex_gluestretch:D \tex_skip:D #1 \exp_stop_f: + \if_int_odd:w \tex_gluestretch:D \tex_skip:D #1 \exp_stop_f: \exp_after:wN \__tl_analysis_b_special_char:wN \int_value:w \else: \exp_after:wN \__tl_analysis_b_special_space:w \int_value:w @@ -18334,7 +19503,7 @@ \cs_new_protected:Npn \tl_show_analysis:n #1 { \tl_analysis_show:n {#1} } %% File: l3regex.dtx Copyright (C) 2011-2018 The LaTeX3 Project -\cs_new_eq:NN \__regex_int_eval:w \etex_numexpr:D +\cs_new_eq:NN \__regex_int_eval:w \tex_numexpr:D \cs_new_protected:Npn \__regex_standard_escapechar: { \int_set:Nn \tex_escapechar:D { `\\ } } \cs_new:Npn \__regex_toks_use:w { \tex_the:D \tex_toks:D } @@ -18823,6 +19992,18 @@ \cs_new_eq:NN \l__regex_internal_regex \c__regex_no_match_regex \seq_new:N \l__regex_show_prefix_seq \int_new:N \l__regex_show_lines_int +\prg_new_conditional:Npnn \__regex_two_if_eq:NNNN #1#2#3#4 { TF } + { + \if_meaning:w #1 #3 + \if:w #2 #4 + \prg_return_true: + \else: + \prg_return_false: + \fi: + \else: + \prg_return_false: + \fi: + } \cs_new_protected:Npn \__regex_get_digits:NTFw #1#2#3#4#5 { \__regex_if_raw_digit:NNTF #4 #5 @@ -19049,7 +20230,7 @@ } \cs_new_protected:Npn \__regex_compile_quantifier_lazyness:nnNN #1#2#3#4 { - \str_if_eq:nnTF { #3 #4 } { \__regex_compile_special:N ? } + \__regex_two_if_eq:NNNNTF #3 #4 \__regex_compile_special:N ? { \tl_build_put_right:Nn \l__regex_build_tl { \if_false: { \fi: } { #1 } { #2 } \c_true_bool } @@ -19096,8 +20277,7 @@ } \cs_new_protected:Npn \__regex_compile_quantifier_braced_auxii:w #1#2 { - \str_if_eq_x:nnTF - { #1 #2 } { \__regex_compile_special:N \c_right_brace_str } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N \c_right_brace_str { \exp_args:No \__regex_compile_quantifier_lazyness:nnNN { \int_use:N \l__regex_internal_a_int } { -1 } @@ -19110,8 +20290,7 @@ } \cs_new_protected:Npn \__regex_compile_quantifier_braced_auxiii:w #1#2 { - \str_if_eq_x:nnTF - { #1 #2 } { \__regex_compile_special:N \c_right_brace_str } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N \c_right_brace_str { \if_int_compare:w \l__regex_internal_a_int > \l__regex_internal_b_int @@ -19145,7 +20324,7 @@ { \__regex_if_in_class:TF { - \str_if_eq:nnTF {#2#3} { \__regex_compile_special:N - } + \__regex_two_if_eq:NNNNTF #2 #3 \__regex_compile_special:N - { \__regex_compile_range:Nw #1 } { \__regex_compile_one:n @@ -19324,7 +20503,7 @@ \cs_new_protected:Npn \__regex_compile_class:TFNN #1#2#3#4 { \l__regex_mode_int = \int_value:w \l__regex_mode_int 3 \exp_stop_f: - \str_if_eq:nnTF { #3 #4 } { \__regex_compile_special:N ^ } + \__regex_two_if_eq:NNNNTF #3 #4 \__regex_compile_special:N ^ { \tl_build_put_right:Nn \l__regex_build_tl { #2 { \if_false: } \fi: } \__regex_compile_class:NN @@ -19361,7 +20540,7 @@ } \cs_new_protected:Npn \__regex_compile_class_posix:NNNNw #1#2#3#4#5#6 { - \str_if_eq:nnTF { #5 #6 } { \__regex_compile_special:N ^ } + \__regex_two_if_eq:NNNNTF #5 #6 \__regex_compile_special:N ^ { \bool_set_false:N \l__regex_internal_bool \tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: @@ -19381,8 +20560,9 @@ } \cs_new_protected:Npn \__regex_compile_class_posix_end:w #1#2#3#4 { - \str_if_eq:nnTF { #1 #2 #3 #4 } - { \__regex_compile_special:N : \__regex_compile_special:N ] } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N : + { \__regex_two_if_eq:NNNNTF #3 #4 \__regex_compile_special:N ] } + { \use_ii:nn } { \cs_if_exist:cTF { __regex_posix_ \l__regex_internal_a_tl : } { @@ -19450,7 +20630,7 @@ } \cs_new_protected:Npn \__regex_compile_lparen:w #1#2#3#4 { - \str_if_eq:nnTF { #1 #2 } { \__regex_compile_special:N ? } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N ? { \cs_if_exist_use:cF { __regex_compile_special_group_\token_to_str:N #4 :w } @@ -19485,7 +20665,7 @@ { \__regex_compile_group_begin:N \__regex_group_resetting:nnnN } \cs_new_protected:Npn \__regex_compile_special_group_i:w #1#2 { - \str_if_eq:nnTF { #1 #2 } { \__regex_compile_special:N ) } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N ) { \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseless_equal:n } @@ -19502,8 +20682,9 @@ } \cs_new_protected:cpn { __regex_compile_special_group_-:w } #1#2#3#4 { - \str_if_eq:nnTF { #1 #2 #3 #4 } - { \__regex_compile_raw:N i \__regex_compile_special:N ) } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_raw:N i + { \__regex_two_if_eq:NNNNTF #3 #4 \__regex_compile_special:N ) } + { \use_ii:nn } { \cs_set:Npn \__regex_item_equal:n { \__regex_item_caseful_equal:n } @@ -19564,7 +20745,7 @@ \c__regex_catcode_in_class_mode_int \fi: \int_zero:N \l__regex_catcodes_int - \str_if_eq:nnTF { #1 #2 } { \__regex_compile_special:N ^ } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N ^ { \bool_set_false:N \l__regex_catcodes_bool \__regex_compile_c_lbrack_loop:NN @@ -19690,8 +20871,7 @@ \__regex_if_in_class_or_catcode:TF { \__regex_compile_raw_error:N u #1 #2 } { - \str_if_eq_x:nnTF {#1#2} - { \__regex_compile_special:N \c_left_brace_str } + \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N \c_left_brace_str { \tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: \__regex_compile_u_loop:NN @@ -20746,9 +21926,8 @@ } \cs_new_protected:Npn \__regex_replacement_g:w #1#2 { - \str_if_eq_x:nnTF - { #1#2 } - { \__regex_replacement_normal:n \c_left_brace_str } + \__regex_two_if_eq:NNNNTF + #1 #2 \__regex_replacement_normal:n \c_left_brace_str { \l__regex_internal_a_int = \__regex_replacement_g_digits:NN } { \__regex_replacement_error:NNN g #1 #2 } } @@ -20806,9 +21985,8 @@ } \cs_new_protected:Npn \__regex_replacement_u:w #1#2 { - \str_if_eq_x:nnTF - { #1#2 } - { \__regex_replacement_normal:n \c_left_brace_str } + \__regex_two_if_eq:NNNNTF + #1 #2 \__regex_replacement_normal:n \c_left_brace_str { \__regex_replacement_cu_aux:Nw \exp_not:V } { \__regex_replacement_error:NNN u #1#2 } } @@ -20833,11 +22011,7 @@ #2 #3 } { - \str_if_eq:nnTF - { #2#3 } - { - \__regex_replacement_normal:n ( % ) - } + \__regex_two_if_eq:NNNNTF #2 #3 \__regex_replacement_normal:n ( { \seq_push:NV \l__regex_replacement_category_seq \l__regex_replacement_category_tl @@ -21570,7 +22744,7 @@ } { } %% File: l3box.dtx Copyright (C) 2005-2018 The LaTeX3 Project -\cs_new_eq:NN \__box_dim_eval:w \etex_dimexpr:D +\cs_new_eq:NN \__box_dim_eval:w \tex_dimexpr:D \__kernel_patch_args:nNNpn { { @@ -21683,12 +22857,12 @@ { \box_log:Nnn #1 \c_max_int \c_max_int } \cs_generate_variant:Nn \box_log:N { c } \cs_new_protected:Npn \box_log:Nnn - { \exp_args:No \__box_log:nNnn { \tex_the:D \etex_interactionmode:D } } + { \exp_args:No \__box_log:nNnn { \tex_the:D \tex_interactionmode:D } } \cs_new_protected:Npn \__box_log:nNnn #1#2#3#4 { - \int_set:Nn \etex_interactionmode:D { 0 } + \int_set:Nn \tex_interactionmode:D { 0 } \__box_show:NNff 0 #2 { \int_eval:n {#3} } { \int_eval:n {#4} } - \int_set:Nn \etex_interactionmode:D {#1} + \int_set:Nn \tex_interactionmode:D {#1} } \cs_generate_variant:Nn \box_log:Nnn { c } \cs_new_protected:Npn \__box_show:NNnn #1#2#3#4 @@ -23064,9 +24238,9 @@ Poles~of~coffin~#1 : #3 . } %% File: l3luatex.dtx Copyright (C) 2010-2018 The LaTeX3 Project -\cs_new_eq:NN \__luatex_escape_x:n \luatex_luaescapestring:D -\cs_new_eq:NN \__luatex_now_x:n \luatex_directlua:D -\cs_new_eq:NN \__luatex_shipout_x:n \luatex_latelua:D +\cs_new_eq:NN \__luatex_escape_x:n \tex_luaescapestring:D +\cs_new_eq:NN \__luatex_now_x:n \tex_directlua:D +\cs_new_eq:NN \__luatex_shipout_x:n \tex_latelua:D \cs_undefine:N \lua_escape_x:n \cs_undefine:N \lua_now_x:n \cs_new:Npn \lua_now_x:n #1 { \__luatex_now_x:n {#1} } @@ -23112,7 +24286,7 @@ \bool_lazy_or:nnTF { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: } { \group_begin: - \cs_set_eq:NN \__char_generate:w \utex_char:D + \cs_set_eq:NN \__char_generate:w \tex_Uchar:D \ior_open:Nn \g__char_data_ior { UnicodeData.txt } \cs_set_protected:Npn \__char_data_auxi:w #1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 ; #8 ; #9 ; @@ -23126,7 +24300,10 @@ { \tl_const:cx { c__char_mixed_case_ \__char_generate:w "#1 _tl } - { \__char_generate:w "#7 } + { + \char_generate:nn { "#7 } + { \char_value_catcode:n { "#7 } } + } } } } @@ -23146,7 +24323,10 @@ { \tl_const:cx { c__char_fold_case_ \__char_generate:w "#1 _tl } - { \__char_generate:w "#3 } + { + \char_generate:nn { "#3 } + { \char_value_catcode:n { "#3 } } + } } } { @@ -23158,10 +24338,15 @@ { \tl_const:cx { c__char_fold_case_ \__char_generate:w "#1 _tl } { - \__char_generate:w "#2 \exp_stop_f: - \__char_generate:w "#3 \exp_stop_f: + \char_generate:nn { "#2 } + { \char_value_catcode:n { "#2 } } + \char_generate:nn { "#3 } + { \char_value_catcode:n { "#3 } } \tl_if_blank:nF {#4} - { \__char_generate:w "#4 } + { + \char_generate:nn { "#4 } + { \char_value_catcode:n { "#4 } } + } } } \ior_str_map_inline:Nn \g__char_data_ior @@ -23189,10 +24374,15 @@ { \tl_const:cx { c__char_ #2 _case_ \__char_generate:w "#1 _tl } { - \__char_generate:w "#3 \exp_stop_f: - \__char_generate:w "#4 \exp_stop_f: + \char_generate:nn { "#3 } + { \char_value_catcode:n { "#3 } } + \char_generate:nn { "#4 } + { \char_value_catcode:n { "#4 } } \tl_if_blank:nF {#5} - { \__char_generate:w "#5 } + { + \char_generate:nn { "#5 } + { \char_value_catcode:n { "#5 } } + } } } } @@ -23233,8 +24423,8 @@ %% File: l3candidates.dtx Copyright (C) 2012-2018 The LaTeX3 Project \cs_new_protected:Npx \mode_leave_vertical: { - \cs_if_exist:NTF \pdftex_quitvmode:D - { \pdftex_quitvmode:D } + \cs_if_exist:NTF \tex_quitvmode:D + { \tex_quitvmode:D } { \exp_not:n { @@ -23601,7 +24791,7 @@ \file_get_full_name:nN {#1} \l__file_full_name_str \str_set:Nx #3 { - \use:c { pdftex_file #2 :D } \exp_after:wN + \use:c { tex_file #2 :D } \exp_after:wN { \l__file_full_name_str } } } @@ -23626,7 +24816,7 @@ \file_get_full_name:nN {#1} \l__file_full_name_str \tl_set:Nx #2 { - \pdftex_mdfivesum:D file \exp_after:wN + \tex_mdfivesum:D file \exp_after:wN { \l__file_full_name_str } } } @@ -23726,6 +24916,12 @@ \tex_global:D \tex_chardef:D #1 = \bool_if_p:n {#2} } \cs_generate_variant:Nn \bool_const:Nn { c } +\cs_new_protected:Npn \bool_set_inverse:N #1 + { \bool_if:NTF #1 { \bool_set_false:N } { \bool_set_true:N } #1 } +\cs_generate_variant:Nn \bool_set_inverse:N { c } +\cs_new_protected:Npn \bool_gset_inverse:N #1 + { \bool_if:NTF #1 { \bool_gset_false:N } { \bool_gset_true:N } #1 } +\cs_generate_variant:Nn \bool_gset_inverse:N { c } \cs_new:Npn \prop_count:N #1 { \int_eval:n @@ -23835,7 +25031,7 @@ { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n } } \cs_generate_variant:Nn \seq_const_from_clist:Nn { c } -\cs_if_exist:NTF \pdftex_uniformdeviate:D +\cs_if_exist:NTF \tex_uniformdeviate:D { \int_new:N \l__seq_internal_a_int \int_new:N \l__seq_internal_b_int @@ -23866,7 +25062,7 @@ { \int_incr:N \l__seq_internal_a_int \int_set:Nn \l__seq_internal_b_int - { 1 + \pdftex_uniformdeviate:D \l__seq_internal_a_int } + { 1 + \tex_uniformdeviate:D \l__seq_internal_a_int } \tex_toks:D \l__seq_internal_a_int = \tex_toks:D \l__seq_internal_b_int \tex_toks:D \l__seq_internal_b_int @@ -23882,15 +25078,51 @@ } { \cs_new_protected:Npn \seq_shuffle:N #1 - { \__kernel_msg_error:nn { kernel } { fp-no-random } } + { + \__kernel_msg_error:nnn { kernel } { fp-no-random } + { \seq_shuffle:N #1 } + } \cs_new_eq:NN \seq_gshuffle:N \seq_shuffle:N } +\cs_new:Npn \seq_indexed_map_function:NN #1#2 + { + \__seq_indexed_map:NN #1#2 + \prg_break_point:Nn \seq_map_break: { } + } +\cs_new_protected:Npn \seq_indexed_map_inline:Nn #1#2 + { + \int_gincr:N \g__kernel_prg_map_int + \cs_gset_protected:cpn + { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } ##1##2 {#2} + \exp_args:NNc \__seq_indexed_map:NN #1 + { __seq_map_ \int_use:N \g__kernel_prg_map_int :w } + \prg_break_point:Nn \seq_map_break: + { \int_gdecr:N \g__kernel_prg_map_int } + } +\cs_new:Npn \__seq_indexed_map:NN #1#2 + { + \exp_after:wN \__seq_indexed_map:Nw + \exp_after:wN #2 + \int_value:w 1 + \exp_after:wN \use_i:nn + \exp_after:wN ; + #1 + \prg_break: \__seq_item:n { } \prg_break_point: + } +\cs_new:Npn \__seq_indexed_map:Nw #1#2 ; #3 \__seq_item:n #4 + { + #3 + #1 {#2} {#4} + \exp_after:wN \__seq_indexed_map:Nw + \exp_after:wN #1 + \int_value:w \int_eval:w 1 + #2 ; + } \cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4 { \skip_if_finite:nTF {#1} { - #3 = \etex_gluestretch:D #1 \scan_stop: - #4 = \etex_glueshrink:D #1 \scan_stop: + #3 = \tex_gluestretch:D #1 \scan_stop: + #4 = \tex_glueshrink:D #1 \scan_stop: } { #3 = \c_zero_skip @@ -23898,22 +25130,90 @@ #2 } } -\__sys_const:nn { sys_if_rand_exist } - { \cs_if_exist_p:N \pdftex_uniformdeviate:D } -\cs_new:Npn \sys_rand_seed: { \tex_the:D \pdftex_randomseed:D } -\cs_if_exist:NF \pdftex_randomseed:D - { \cs_set:Npn \sys_rand_seed: { 0 } } -\cs_new_protected:Npn \sys_gset_rand_seed:n #1 - { \pdftex_setrandomseed:D \int_eval:n {#1} \exp_stop_f: } +\str_const:Nx \c_sys_engine_version_str + { + \str_case:on \c_sys_engine_str + { + { pdftex } + { + \fp_eval:n { round(\int_use:N \tex_pdftexversion:D / 100 , 2) } + . + \tex_pdftexrevision:D + } + { ptex } + { + \cs_if_exist:NT \tex_ptexversion:D + { + p + \int_use:N \tex_ptexversion:D + \int_use:N \tex_ptexminorversion:D + \tex_ptexrevision:D + - + \int_use:N \tex_epTeXversion:D + } + } + { luatex } + { + \fp_eval:n { round(\int_use:N \tex_luatexversion:D / 100, 2) } + . + \tex_luatexrevision:D + } + { uptex } + { + \cs_if_exist:NT \tex_ptexversion:D + { + p + \int_use:N \tex_ptexversion:D + \int_use:N \tex_ptexminorversion:D + \tex_ptexrevision:D + - + u + \int_use:N \tex_uptexversion:D + \tex_uptexrevision:D + - + \int_use:N \tex_epTeXversion:D + } + } + { xetex } + { + \int_use:N \tex_XeTeXversion:D + . + \tex_XeTeXrevision:D + } + } + } +\sys_if_rand_exist:TF + { \cs_new:Npn \sys_rand_seed: { \tex_the:D \tex_randomseed:D } } + { + \cs_new:Npn \sys_rand_seed: + { + \int_value:w + \__kernel_msg_expandable_error:nnn { kernel } { fp-no-random } + { \sys_rand_seed: } + \c_zero_int + } + } +\sys_if_rand_exist:TF + { + \cs_new_protected:Npn \sys_gset_rand_seed:n #1 + { \tex_setrandomseed:D \int_eval:n {#1} \exp_stop_f: } + } + { + \cs_new_protected:Npn \sys_gset_rand_seed:n #1 + { + \__kernel_msg_error:nnn { kernel } { fp-no-random } + { \sys_gset_rand_seed:n {#1} } + } + } \int_const:Nn \c_sys_shell_escape_int { \sys_if_engine_luatex:TF { - \luatex_directlua:D + \tex_directlua:D { tex.sprint(status.shell_escape~or~os.execute()) } } { - \pdftex_shellescape:D + \tex_shellescape:D } } \__sys_const:nn { sys_if_shell } @@ -23953,12 +25253,16 @@ \prg_new_conditional:Npnn \tl_if_single_token:n #1 { p , T , F , TF } { \tl_if_head_is_N_type:nTF {#1} - { \__tl_if_empty_return:o { \use_none:n #1 } } + { \__tl_if_empty_if:o { \use_none:n #1 } } { \tl_if_empty:nTF {#1} - { \prg_return_false: } - { \__tl_if_empty_return:o { \exp:w \exp_end_continue_f:w #1 } } + { \if_false: } + { \__tl_if_empty_if:o { \exp:w \exp_end_continue_f:w #1 } } } + \prg_return_true: + \else: + \prg_return_false: + \fi: } \cs_new:Npn \tl_reverse_tokens:n #1 { @@ -24013,7 +25317,7 @@ { \__kernel_file_missing:n {#4} } { \group_begin: - \exp_args:No \etex_everyeof:D + \exp_args:No \tex_everyeof:D { \c__tl_rescan_marker_tl \exp_not:N } #3 \scan_stop: \exp_after:wN \__tl_from_file_do:w @@ -24040,7 +25344,7 @@ { \__kernel_file_missing:n {#4} } { \group_begin: - \etex_everyeof:D { \exp_not:N } + \tex_everyeof:D { \exp_not:N } #3 \scan_stop: \tl_set:Nx \l__tl_internal_a_tl { \tex_input:D \l__tl_file_name_str \c_space_token } @@ -25302,7 +26606,7 @@ %% File: l3deprecation.dtx (C) Copyright 2017-2018 The LaTeX3 Project \cs_new_protected:Npn \__kernel_deprecation_error:Nnn #1#2#3 { - \etex_protected:D \tex_outer:D \tex_edef:D #1 + \tex_protected:D \tex_outer:D \tex_edef:D #1 { \exp_not:N \__kernel_msg_expandable_error:nnnnn { kernel } { deprecated-command } @@ -25393,6 +26697,53 @@ \cs_set_protected:Npn \__cs_generate_variant_loop_warning:nnxxxx { \__kernel_msg_warning:nnxxxx } } +\cs_new_protected:Npn \__deprecation_primitive:NN #1#2 { } +\exp_last_unbraced:NNNNo + \cs_new:Npn \__deprecation_primitive:w #1 { \token_to_str:N _ } { } +\__kernel_deprecation_code:nn + { + \cs_set_protected:Npn \__kernel_primitive:NN #1 + { + \exp_after:wN \__deprecation_primitive:NN + \exp_after:wN #1 + \exp_not:N + } + \cs_set_protected:Npn \__deprecation_primitive:NN #1#2 + { + \tex_let:D #2 \scan_stop: + \exp_args:NNx \__kernel_deprecation_error:Nnn #2 + { + \iow_char:N \\ + \cs_if_exist:NTF #1 + { \cs_to_str:N #1 } + { + tex_ + \exp_last_unbraced:Nf + \__deprecation_primitive:w { \cs_to_str:N #2 } + } + } + { 2019-12-31 } + } + \__kernel_primitives: + } + { + \cs_set_protected:Npn \__kernel_primitive:NN #1 + { + \exp_after:wN \__deprecation_primitive:NN + \exp_after:wN #1 + \exp_not:N + } + \cs_set_protected:Npn \__deprecation_primitive:NN #1#2 + { + \tex_let:D #2 #1 + \cs_if_exist:cT { tex_ \cs_to_str:N #1 :D } + { + \exp_args:NNc \cs_set_eq:NN #2 + { tex_ \cs_to_str:N #1 :D } + } + } + \__kernel_primitives: + } %% %% %% End of file `expl3-code.tex'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index b9eda3b5899..2df1c910341 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -90,8 +90,8 @@ { xdvipdfmx } { \bool_lazy_and:nnTF - { \cs_if_exist_p:N \pdftex_pdfoutput:D } - { \int_compare_p:nNn \pdftex_pdfoutput:D > 0 } + { \cs_if_exist_p:N \tex_pdfoutput:D } + { \int_compare_p:nNn \tex_pdfoutput:D > 0 } { pdfmode } { dvips } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index d913db3a652..4de17f6298d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -1998,10 +1998,10 @@ } \tl_if_empty:NF \l__codedoc_tmpa_tl { - \int_set:Nn \l__codedoc_tmpa_int { \etex_interactionmode:D } + \int_set:Nn \l__codedoc_tmpa_int { \tex_interactionmode:D } \errorstopmode \ClassError { l3doc } { \l__codedoc_tmpa_tl } { } - \int_set:Nn \etex_interactionmode:D { \l__codedoc_tmpa_int } + \int_set:Nn \tex_interactionmode:D { \l__codedoc_tmpa_int } } } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index 13effe3d15c..de75c2d9b48 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvidpfmx.def}{2018-04-30}{} + {l3dvidpfmx.def}{2018-05-12}{} {L3 Experimental driver: dvipdfmx} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def index 161a7b3d201..1ec0b43e968 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvips.def}{2018-04-30}{} + {l3dvips.def}{2018-05-12}{} {L3 Experimental driver: dvips} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def index d446e114be2..d27c61decba 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvisvgm.def}{2018-04-30}{} + {l3dvisvgm.def}{2018-05-12}{} {L3 Experimental driver: dvisvgm} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def index 85caa134571..091b078e79c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3pdfmode.def}{2018-04-30}{} + {l3pdfmode.def}{2018-05-12}{} {L3 Experimental driver: PDF mode} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 @@ -99,45 +99,45 @@ { \__driver_color_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } } \cs_new_protected:Npx \__driver_color_select:n #1 { - \cs_if_exist:NTF \luatex_pdfextension:D - { \luatex_pdfextension:D colorstack } - { \pdftex_pdfcolorstack:D } + \cs_if_exist:NTF \tex_pdfextension:D + { \tex_pdfextension:D colorstack } + { \tex_pdfcolorstack:D } \exp_not:N \l__driver_color_stack_int push {#1} \group_insert_after:N \exp_not:N \__driver_color_reset: } \cs_generate_variant:Nn \__driver_color_select:n { x } \cs_new_protected:Npx \__driver_color_reset: { - \cs_if_exist:NTF \luatex_pdfextension:D - { \luatex_pdfextension:D colorstack } - { \pdftex_pdfcolorstack:D } + \cs_if_exist:NTF \tex_pdfextension:D + { \tex_pdfextension:D colorstack } + { \tex_pdfcolorstack:D } \exp_not:N \l__driver_color_stack_int pop \scan_stop: } \cs_new_protected:Npx \__driver_literal_pdf:n #1 { - \cs_if_exist:NTF \luatex_pdfextension:D - { \luatex_pdfextension:D literal } - { \pdftex_pdfliteral:D } + \cs_if_exist:NTF \tex_pdfextension:D + { \tex_pdfextension:D literal } + { \tex_pdfliteral:D } { \exp_not:N \exp_not:n {#1} } } \cs_generate_variant:Nn \__driver_literal_pdf:n { x } \cs_new_protected:Npx \__driver_scope_begin: { - \cs_if_exist:NTF \luatex_pdfextension:D - { \luatex_pdfextension:D save \scan_stop: } - { \pdftex_pdfsave:D } + \cs_if_exist:NTF \tex_pdfextension:D + { \tex_pdfextension:D save \scan_stop: } + { \tex_pdfsave:D } } \cs_new_protected:Npx \__driver_scope_end: { - \cs_if_exist:NTF \luatex_pdfextension:D - { \luatex_pdfextension:D restore \scan_stop: } - { \pdftex_pdfrestore:D } + \cs_if_exist:NTF \tex_pdfextension:D + { \tex_pdfextension:D restore \scan_stop: } + { \tex_pdfrestore:D } } \cs_new_protected:Npx \__driver_matrix:n #1 { - \cs_if_exist:NTF \luatex_pdfextension:D - { \luatex_pdfextension:D setmatrix } - { \pdftex_pdfsetmatrix:D } + \cs_if_exist:NTF \tex_pdfextension:D + { \tex_pdfextension:D setmatrix } + { \tex_pdfsetmatrix:D } { \exp_not:N \exp_not:n {#1} } } \cs_generate_variant:Nn \__driver_matrix:n { x } @@ -231,7 +231,7 @@ } \cs_new_protected:Npn \__driver_image_getbb_auxii:n #1 { - \tex_immediate:D \pdftex_pdfximage:D + \tex_immediate:D \tex_pdfximage:D \bool_lazy_or:nnT { \l_image_interpolate_bool } { ! \tl_if_empty_p:N \l_image_decodearray_tl } @@ -250,16 +250,16 @@ { \l_image_pagebox_tl } {#1} \hbox_set:Nn \l__driver_tmp_box - { \pdftex_pdfrefximage:D \pdftex_pdflastximage:D } + { \tex_pdfrefximage:D \tex_pdflastximage:D } \dim_set:Nn \l_image_urx_dim { \box_wd:N \l__driver_tmp_box } \dim_set:Nn \l_image_ury_dim { \box_ht:N \l__driver_tmp_box } \int_const:cn { c__driver_image_ #1 \l__driver_image_attr_tl _int } - { \tex_the:D \pdftex_pdflastximage:D } + { \tex_the:D \tex_pdflastximage:D } \image_bb_save:x { #1 \l__driver_image_attr_tl } } \cs_new_protected:Npn \__driver_image_include_jpg:n #1 { - \pdftex_pdfrefximage:D + \tex_pdfrefximage:D \int_use:c { c__driver_image_ #1 \l__driver_image_attr_tl _int } } \cs_new_eq:NN \__driver_image_include_pdf:n \__driver_image_include_jpg:n diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def index 73cdee51f42..b855c6fcd65 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3xdvidpfmx.def}{2018-04-30}{} + {l3xdvidpfmx.def}{2018-05-12}{} {L3 Experimental driver: xdvipdfmx} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 @@ -197,14 +197,14 @@ { \int_zero:N \l_image_page_int \tl_clear:N \l_image_pagebox_tl - \__driver_image_getbb_auxi:nN {#1} \xetex_picfile:D + \__driver_image_getbb_auxi:nN {#1} \tex_XeTeXpicfile:D } \cs_new_eq:NN \__driver_image_getbb_png:n \__driver_image_getbb_jpg:n \cs_new_protected:Npn \__driver_image_getbb_pdf:n #1 { \tl_clear:N \l_image_decode_tl \bool_set_false:N \l_image_interpolate_bool - \__driver_image_getbb_auxi:nN {#1} \xetex_pdffile:D + \__driver_image_getbb_auxi:nN {#1} \tex_XeTeXpdffile:D } \cs_new_protected:Npn \__driver_image_getbb_auxi:nN #1#2 { @@ -246,7 +246,7 @@ \cs_new:Npn \__driver_image_getbb_pagebox:w #1 box {#1} \cs_new_protected:Npn \__driver_image_include_pdf:n #1 { - \xetex_pdffile:D "#1" ~ + \tex_XeTeXpdffile:D "#1" ~ \int_compare:nNnT \l_image_page_int > 0 { page~ \int_use:N \l_image_page_int } \__driver_image_getbb_auxiv:VnNnn \l_image_pagebox_tl diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty index c9a7b8bd214..f802661268a 100644 --- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3keys2e}{2018-04-30}{} +\ProvidesExplPackage{l3keys2e}{2018-05-12}{} {LaTeX2e option processing using LaTeX3 keys} \cs_generate_variant:Nn \clist_put_right:Nn { Nv } \cs_generate_variant:Nn \keys_if_exist:nnT { nx } diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty index f59202b1a41..694620c5ffd 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty @@ -33,7 +33,7 @@ \endinput } \RequirePackage{xparse} -\ProvidesExplPackage{xfp}{2018-04-30}{} +\ProvidesExplPackage{xfp}{2018-05-12}{} {L3 Floating point unit} \NewExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} } \NewExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} } diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty index 70b1ec306ec..c572992f6d8 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty @@ -34,7 +34,7 @@ \endinput } \RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate} -\ProvidesExplPackage{xfrac}{2018-04-30}{} +\ProvidesExplPackage{xfrac}{2018-05-12}{} {L3 Experimental split-level fractions} \keys_define:nn { xfrac } { diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty index a5b1d40d9f5..6eda5ffc2e8 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty @@ -36,7 +36,7 @@ }% \endinput } -\ProvidesExplPackage{xparse}{2018-04-30}{} +\ProvidesExplPackage{xparse}{2018-05-12}{} {L3 Experimental document command parser} \tl_new:N \l__xparse_arg_spec_tl \tl_new:N \l__xparse_args_tl diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty index acf38424271..ee38ffd7f69 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty @@ -36,7 +36,7 @@ }% \endinput } -\ProvidesExplPackage{xtemplate}{2018-04-30}{} +\ProvidesExplPackage{xtemplate}{2018-05-12}{} {L3 Experimental prototype document functions} \tl_const:Nn \c__xtemplate_code_root_tl { template~code~>~ } \tl_const:Nn \c__xtemplate_defaults_root_tl { template~defaults~>~ } |