From 522964b40afca63660485cdcfc577b25bdf02e35 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 17 Jul 2020 21:45:53 +0000 Subject: l3 (17jul20) git-svn-id: svn://tug.org/texlive/trunk@55860 c570f23f-e606-0410-a88d-b1316a301751 --- .../l3experimental/l3benchmark/l3benchmark.sty | 2 +- .../tex/latex/l3experimental/l3cctab/l3cctab.sty | 266 ---- .../tex/latex/l3experimental/l3color/l3color.sty | 336 ++++- .../tex/latex/l3experimental/l3draw/l3draw.sty | 4 +- .../latex/l3experimental/l3graphics/l3graphics.sty | 2 +- .../tex/latex/l3experimental/l3pdf/l3pdf.sty | 2 +- .../latex/l3experimental/l3str/l3str-format.sty | 2 +- .../l3experimental/l3sys-shell/l3sys-shell.sty | 2 +- .../tex/latex/l3experimental/xcoffins/xcoffins.sty | 2 +- .../tex/latex/l3experimental/xgalley/l3galley.sty | 2 +- .../tex/latex/l3experimental/xgalley/xgalley.sty | 2 +- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 1308 +++++++++----------- .../tex/latex/l3kernel/expl3-generic.tex | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 2 +- Master/texmf-dist/tex/latex/l3kernel/l3debug.def | 6 + .../tex/latex/l3kernel/l3deprecation.def | 163 --- Master/texmf-dist/tex/latex/l3kernel/l3doc.cls | 2 +- 18 files changed, 845 insertions(+), 1262 deletions(-) delete mode 100644 Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty index 8cfd64a9f3c..7c9d604ad24 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty @@ -20,7 +20,7 @@ %% %% File: l3benchmark.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3benchmark}{2020-06-18}{} +\ProvidesExplPackage{l3benchmark}{2020-07-17}{} {L3 Experimental benchmarking} \sys_if_engine_luatex:TF { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty deleted file mode 100644 index 05010d629cf..00000000000 --- a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty +++ /dev/null @@ -1,266 +0,0 @@ -%% -%% This is file `l3cctab.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% l3cctab.dtx (with options: `package') -%% -%% Copyright (C) 2018-2020 The LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of -%% the LaTeX Project Public License (LPPL), either version 1.3c of -%% this license or (at your option) any later version. The latest -%% version of this license is in the file: -%% -%% http://www.latex-project.org/lppl.txt -%% -%% This file is part of the "l3experimental bundle" (The Work in LPPL) -%% and all files in that bundle must be distributed together. -%% -%% File: l3cctab.dtx -\RequirePackage{expl3} -\ProvidesExplPackage{l3cctab}{2020-06-18}{} - {L3 Experimental category code tables} -\int_new:N \g__cctab_allocate_int -\int_gset:Nn \g__cctab_allocate_int { -1 } -\int_new:N \g__cctab_stack_int -\seq_new:N \g__cctab_stack_seq -\tl_new:N \l__cctab_tmp_tl -\sys_if_engine_luatex:TF - { - \cs_new_protected:Npn \cctab_new:N #1 - { - \__kernel_chk_if_free_cs:N #1 - \newcatcodetable #1 - } - \cs_new_protected:Npn \__cctab_begin:N #1 - { - \seq_gpush:Nx \g__cctab_stack_seq { \tex_the:D \tex_catcodetable:D } - \tex_catcodetable:D #1 - \int_gadd:Nn \g__cctab_stack_int { 2 } - \int_compare:nNnT \g__cctab_stack_int > \c_max_register_int - { \__kernel_msg_fatal:nn { kernel } { cctab-stack-full } } - \tex_savecatcodetable:D \g__cctab_stack_int - \tex_catcodetable:D \g__cctab_stack_int - } - \cs_new_protected:Npn \__cctab_end: - { - \int_gsub:Nn \g__cctab_stack_int { 2 } - \seq_if_empty:NTF \g__cctab_stack_seq - { \tl_set:Nn \l__cctab_tmp_tl { 0 } } - { \seq_gpop:NN \g__cctab_stack_seq \l__cctab_tmp_tl } - \tex_catcodetable:D \l__cctab_tmp_tl \scan_stop: - } - \cs_new_protected:Npn \cctab_gset:Nn #1#2 - { - \group_begin: - #2 \scan_stop: - \tex_savecatcodetable:D #1 - \group_end: - } - } - { - \cs_new_protected:Npn \__cctab_gstore:Nnn #1#2#3 - { - \intarray_gset:cnn - { g__cctab_ \int_use:N #1 _cctab } { #2 + 1 } {#3} - } - \cs_new_protected:Npn \cctab_new:N #1 - { - \int_gadd:Nn \g__cctab_allocate_int { 2 } - \int_const:Nn #1 { \g__cctab_allocate_int } - \intarray_new:cn { g__cctab_ \int_use:N #1 _cctab } { 256 } - \int_step_inline:nn { 256 } - { - \intarray_gset:cnn - { g__cctab_ \int_use:N #1 _cctab } {##1} { 12 } - } - \__cctab_gstore:Nnn #1 { 0 } { 9 } - \__cctab_gstore:Nnn #1 { 13 } { 5 } - \__cctab_gstore:Nnn #1 { 32 } { 10 } - \__cctab_gstore:Nnn #1 { 37 } { 14 } - \int_step_inline:nnn { 65 } { 90 } - { \__cctab_gstore:Nnn #1 {##1} { 11 } } - \__cctab_gstore:Nnn #1 { 92 } { 0 } - \int_step_inline:nnn { 97 } { 122 } - { \__cctab_gstore:Nnn #1 {##1} { 11 } } - \__cctab_gstore:Nnn #1 { 127 } { 15 } - } - \cs_new_protected:Npn \__cctab_begin:N #1 - { - \int_gadd:Nn \g__cctab_stack_int { 2 } - \int_compare:nNnT \g__cctab_stack_int > \c_max_register_int - { \__kernel_msg_fatal:nn { kernel } { cctab-stack-full } } - \cs_if_exist:cF { g__cctab_ \int_use:N \g__cctab_stack_int _cctab } - { - \intarray_new:cn - { g__cctab_ \int_use:N \g__cctab_stack_int _cctab } - { 256 } - } - \int_step_inline:nn { 256 } - { - \intarray_gset:cnn - { g__cctab_ \int_use:N \g__cctab_stack_int _cctab } - {##1} - { \char_value_catcode:n { ##1 - 1 } } - } - \int_step_inline:nn { 256 } - { - \char_set_catcode:nn { ##1 - 1 } - { - \intarray_item:cn - { g__cctab_ \int_use:N #1 _cctab } {##1} - } - } - } - \cs_generate_variant:Nn \intarray_new:Nn { c } - \cs_generate_variant:Nn \intarray_gset:Nnn { c } - \cs_new_protected:Npn \__cctab_end: - { - \int_step_inline:nn { 256 } - { - \char_set_catcode:nn { ##1 - 1 } - { - \intarray_item:cn - { g__cctab_ \int_use:N \g__cctab_stack_int _cctab } - {##1} - } - } - \int_gsub:Nn \g__cctab_stack_int { 2 } - } - \cs_generate_variant:Nn \intarray_item:Nn { c } - \cs_new_protected:Npn \cctab_gset:Nn #1#2 - { - \group_begin: - #2 \scan_stop: - \int_step_inline:nn { 256 } - { - \intarray_gset:cnn { g__cctab_ \int_use:N #1 _cctab } {##1} - { \char_value_catcode:n { ##1 - 1 } } - } - \group_end: - } - } -\cs_generate_variant:Nn \cctab_new:N { c } -\cs_generate_variant:Nn \cctab_gset:Nn { c } -\cs_new_protected:Npn \cctab_begin:N #1 - { \__cctab_chk_if_valid:NT #1 { \__cctab_begin:N #1 } } -\cs_generate_variant:Nn \cctab_begin:N { c } -\cs_new_protected:Npn \cctab_end: - { - \int_compare:nNnTF { \g__cctab_stack_int } = { \c_zero_int } - { \__kernel_msg_error:nn { kernel } { cctab-extra-end } } - { \__cctab_end: } - } -\cs_new_protected:Npn \cctab_select:N #1 - { - \__cctab_chk_if_valid:NT #1 - { - \__cctab_begin:N #1 - \group_insert_after:N \__cctab_end_fast: - } - } -\cs_generate_variant:Nn \cctab_select:N { c } -\cs_new_protected:Npx \__cctab_end_fast: - { - \int_gsub:Nn \exp_not:N \g__cctab_stack_int { 2 } - \sys_if_engine_luatex:T - { \seq_gpop:NN \exp_not:N \g__cctab_stack_seq \exp_not:N \l__cctab_tmp_tl } - } -\prg_new_eq_conditional:NNn \cctab_if_exist:N \cs_if_exist:N - { TF , T , F , p } -\prg_new_eq_conditional:NNn \cctab_if_exist:c \cs_if_exist:c - { TF , T , F , p } -\sys_if_engine_luatex:TF - { - \prg_new_protected_conditional:Npnn \__cctab_chk_if_valid:N #1 - { TF , T , F } - { - \cctab_if_exist:NTF #1 - { - \int_compare:nNnTF {#1-1} < { \e@alloc@ccodetable@count } - { \prg_return_true: } - { - \__kernel_msg_error:nnx { kernel } { invalid-cctab } - { \token_to_str:N #1 } - \prg_return_false: - } - } - { - \__kernel_msg_error:nnx { kernel } { command-not-defined } - { \token_to_str:N #1 } - \prg_return_false: - } - } - } - { - \prg_new_protected_conditional:Npnn \__cctab_chk_if_valid:N #1 - { TF , T , F } - { - \cctab_if_exist:NTF #1 - { - \cs_if_exist:cTF { g__cctab_ \int_use:N #1 _cctab } - { \prg_return_true: } - { - \__kernel_msg_error:nnx { kernel } { invalid-cctab } - { \token_to_str:N #1 } - \prg_return_false: - } - } - { - \__kernel_msg_error:nnx { kernel } { command-not-defined } - { \token_to_str:N #1 } - \prg_return_false: - } - } - } -\cs_new_protected:Npn \cctab_const:Nn #1#2 - { - \cctab_new:N #1 - \cctab_gset:Nn #1 {#2} - } -\cs_generate_variant:Nn \cctab_const:Nn { c } -\cctab_new:N \c_initex_cctab -\cctab_const:Nn \c_code_cctab { } -\cctab_const:Nn \c_document_cctab - { - \char_set_catcode_space:n { 9 } - \char_set_catcode_space:n { 32 } - \char_set_catcode_other:n { 58 } - \char_set_catcode_math_subscript:n { 95 } - \char_set_catcode_active:n { 126 } - } -\cctab_const:Nn \c_other_cctab - { - \int_step_inline:nnn { 0 } { 127 } - { \char_set_catcode_other:n {#1} } - } -\cctab_const:Nn \c_str_cctab - { - \int_step_inline:nnn { 0 } { 127 } - { \char_set_catcode_other:n {#1} } - \char_set_catcode_space:n { 32 } - } -\__kernel_msg_new:nnnn { kernel } { cctab-stack-full } - { The~category~code~table~stack~is~exhausted. } - { - LaTeX~has~been~asked~to~switch~to~a~new~category~code~table,~ - but~there~is~no~more~space~to~do~this! - } -\__kernel_msg_new:nnnn { kernel } { cctab-extra-end } - { Extra~\iow_char:N\\cctab_end:~ignored~\msg_line_context:. } - { - LaTeX~came~across~a~\iow_char:N\\cctab_end:~without~a~matching~ - \iow_char:N\\cctab_begin:N.~This~command~will~be~ignored. - } -\__kernel_msg_new:nnnn { kernel } { invalid-cctab } - { Invalid~\iow_char:N\\catcode~table. } - { - You~can~only~switch~to~a~\iow_char:N\\catcode~table~that~is~ - initialized~using~\iow_char:N\\cctab_new:N~or~ - \iow_char:N\\cctab_const:Nn. - } -%% -%% -%% End of file `l3cctab.sty'. diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty index 5020a57c4dd..3a81714bff8 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty @@ -20,30 +20,24 @@ %% %% File: l3color.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3color}{2020-06-18}{} +\ProvidesExplPackage{l3color}{2020-07-17}{} {L3 Experimental color support} \tl_new:N \l__color_internal_tl \scan_new:N \s__color_mark \prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF } { - \tl_if_exist:cTF { l__color_named_ #1 _tl } + \prop_if_exist:cTF { l__color_named_ #1 _prop } \prg_return_true: \prg_return_false: } +\cs_new:Npn \__color_model:N #1 { \exp_after:wN \use_i:nn #1 } +\cs_new:Npn \__color_values:N #1 { \exp_after:wN \use_ii:nn #1 } \cs_new_protected:Npn \__color_extract:nNN #1#2#3 { - \exp_after:wN \exp_after:wN \exp_after:wN - \__color_extract:NNnn - \exp_after:wN \exp_after:wN \exp_after:wN #2 - \exp_after:wN \exp_after:wN \exp_after:wN #3 - \cs:w l__color_named_ #1 _tl \cs_end: + \tl_set_eq:Nc #2 { l__color_named_ #1 _tl } + \prop_get:cVN { l__color_named_ #1 _prop } #2 #3 } \cs_generate_variant:Nn \__color_extract:nNN { V } -\cs_new_protected:Npn \__color_extract:NNnn #1#2#3#4 - { - \tl_set:Nn #1 {#3} - \tl_set:Nn #2 {#4} - } \cs_new_protected:Npn \__color_convert:nnN #1#2#3 { \__color_convert:nnVN {#1} {#2} #3 #3 } \cs_generate_variant:Nn \__color_convert:nnN { VV } @@ -54,7 +48,7 @@ \tl_set:Nx #4 { \use:c { __color_convert_ #1 _ #2 :w } #3 ~ 0 ~ 0 ~ 0 \s__color_stop } } -\cs_generate_variant:Nn \__color_convert:nnnN { nnV } +\cs_generate_variant:Nn \__color_convert:nnnN { nV , nnV } \cs_new:Npn \__color_convert_gray_rgb:w #1 ~ #2 \s__color_stop { #1 ~ #1 ~ #1 } \cs_new:Npn \__color_convert_gray_cmyk:w #1 ~ #2 \s__color_stop @@ -85,30 +79,61 @@ \tl_new:N \l__color_value_tl \tl_new:N \l__color_next_model_tl \tl_new:N \l__color_next_value_tl -\cs_new_protected:Npn \color_parse:nN #1#2 +\cs_new_protected:Npx \__color_parse:nN #1#2 { - \__color_backend_pickup:N \l__color_current_tl - \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl - \exp_args:Ne \__color_parse:nN { \tl_to_str:n {#1} } #2 + \exp_not:N \__color_backend_pickup:N \exp_not:N \l__color_current_tl + \tl_set:Nx \exp_not:c { l__color_named_ . _tl } + { \exp_not:N \__color_model:N \exp_not:N \l__color_current_tl } + \prop_put:NVx \exp_not:c { l__color_named_ . _prop } + \exp_not:c { l__color_named_ . _tl } + { \exp_not:N \__color_values:N \exp_not:N \l__color_current_tl } + \exp_not:N \exp_args:Ne \exp_not:N \__color_parse_aux:nN + { \exp_not:N \tl_to_str:n {#1} } #2 } -\cs_new_protected:Npn \__color_parse:nN #1#2 +\cs_new_protected:Npn \__color_parse_aux:nN #1#2 { - \tl_if_exist:cTF { l__color_named_ #1 _tl } - { \tl_set_eq:Nc #2 { l__color_named_ #1 _tl } } + \tl_if_exist:cTF { l__color_named_ #1 _prop } + { \__color_parse_set_eq:Nn #2 {#1} } { \__color_parse:Nw #2#1 ! \s__color_stop } \__color_check_model:N #2 } +\cs_new_protected:Npn \__color_parse_set_eq:Nn #1#2 + { + \tl_if_empty:NTF \l_color_fixed_model_tl + { \exp_args:Nv \__color_parse_set_eq:nNn { l__color_named_ #2 _tl } } + { \exp_args:NV \__color_parse_set_eq:nNn \l_color_fixed_model_tl } + #1 {#2} + } +\cs_new_protected:Npn \__color_parse_set_eq:nNn #1#2#3 + { + \prop_get:cnNTF + { l__color_named_ #3 _prop } {#1} + \l__color_value_tl + { \tl_set:Nx #2 { {#1} { \l__color_value_tl } } } + { + \tl_set_eq:Nc \l__color_model_tl { l__color_named_ #3 _tl } + \prop_get:cVN { l__color_named_ #3 _prop } \l__color_model_tl + \l__color_value_tl + \__color_convert:nnN + \l__color_model_tl {#1} \l__color_value_tl + \tl_set:Nx #2 + { + {#1} + { \l__color_value_tl } + } + } + } \cs_new_protected:Npn \__color_parse:Nw #1#2 ! #3 \s__color_stop { \__color_if_defined:nTF {#2} { \tl_if_blank:nTF {#3} - { \tl_set_eq:Nc #1 { l__color_named_ #2 _tl } } + { \__color_parse_set_eq:Nn #1 {#2} } { \__color_parse_loop_init:Nnn #1 {#2} {#3} } } { \__kernel_msg_error:nnn { color } { unknown-color } {#2} - \tl_set_eq:NN \l__color_current_tl \l__color_named_black_tl + \tl_set:Nn \l__color_current_tl { { gray } { 0 } } } } \cs_new_protected:Npn \__color_parse_loop_init:Nnn #1#2#3 @@ -153,24 +178,9 @@ \__color_extract:nNN {#2} \l__color_next_model_tl \l__color_next_value_tl \tl_if_eq:NNF \l__color_model_tl \l__color_next_model_tl { - \str_if_eq:VnT \l__color_model_tl { gray } - { - \use:x - { - \tl_set:Nn \exp_not:N \l__color_model_tl - { \l__color_next_model_tl } - \tl_set:Nn \exp_not:N \l__color_value_tl - { \l__color_next_value_tl } - \tl_set:Nn \exp_not:N \l_next__color_model_tl - { \l__color_model_tl } - \tl_set:Nn \exp_not:N \l_next__color_value_tl - { \l__color_value_tl } - } - } - \__color_convert:VVN - \l__color_next_model_tl - \l__color_model_tl - \l__color_next_value_tl + \str_if_eq:VnTF \l__color_model_tl { gray } + { \__color_parse_gray:n {#2} } + { \__color_parse_std:n {#2} } } \tl_set:Nx \l__color_value_tl { @@ -184,6 +194,27 @@ \__color_parse_break:w } } +\cs_new_protected:Npn \__color_parse_gray:n #1 + { + \tl_set_eq:NN \l__color_model_tl \l__color_next_model_tl + \tl_set:Nn \l__color_next_model_tl { gray } + \exp_args:NnV \__color_convert:nnN { gray } \l__color_model_tl + \l__color_value_tl + \prop_get:cVN { l__color_named_ #1 _prop } \l__color_model_tl + \l__color_next_value_tl + } +\cs_new_protected:Npn \__color_parse_std:n #1 + { + \prop_get:cVNF { l__color_named_ #1 _prop } + \l__color_model_tl + \l__color_next_value_tl + { + \__color_convert:VVN + \l__color_next_model_tl + \l__color_model_tl + \l__color_next_value_tl + } + } \cs_new_protected:Npn \__color_parse_break:w #1 \__color_parse_end: { } \cs_new_protected:Npn \__color_parse_end: { } \cs_new:Npn \__color_parse_mix:Nnnn #1#2#3#4 @@ -334,60 +365,148 @@ \tl_set:Nn \l__color_model_tl {#1} \tl_set:Nn \l__color_value_tl {#2} } -\cs_new_protected:Npn \__color_select: +\cs_new_protected:Npx \__color_select: { - \tl_set_eq:cN { l__color_named_ . _tl } \l__color_current_tl - \__color_select:N \l__color_current_tl + \tl_set:Nx \exp_not:c { l__color_named_ . _tl } + { \exp_not:N \__color_model:N \exp_not:N \l__color_current_tl } + \prop_clear:N \exp_not:c { l__color_named_ . _prop } + \prop_put:NVx \exp_not:c { l__color_named_ . _prop } + \exp_not:c { l__color_named_ . _tl } + { \exp_not:N \__color_values:N \exp_not:N \l__color_current_tl } + \__color_select:N \exp_not:N \l__color_current_tl } \cs_new_protected:Npn \color_select:n #1 { - \color_parse:nN {#1} \l__color_current_tl + \__color_parse:nN {#1} \l__color_current_tl \__color_select: } \cs_new_protected:Npn \color_select:nn #1#2 { - \__color_direct:nnN {#1} {#2} \l__color_current_tl + \__color_select_main:Nw \l__color_current_tl + #1 / / \s__color_mark #2 / / \s__color_stop \__color_select: } -\cs_new_protected:Npn \__color_direct:nnN #1#2#3 +\cs_new_protected:Npn \__color_select_main:Nw + #1 #2 / #3 / #4 \s__color_mark #5 / #6 / #7 \s__color_stop + { + \__color_select:nnN {#2} {#5} #1 + \bool_lazy_or:nnF + { \tl_if_empty_p:N \l_color_fixed_model_tl } + { \str_if_eq_p:nV {#2} \l_color_fixed_model_tl } + { \__color_select_loop:Nw #1 #3 / #4 \s__color_mark #6 / #7 \s__color_stop } + } +\cs_new_protected:Npn \__color_select_loop:Nw + #1 #2 / #3 \s__color_mark #4 / #5 \s__color_stop + { + \str_if_eq:nVTF {#2} \l_color_fixed_model_tl + { \__color_select:nnN {#2} {#4} #1 } + { + \tl_if_blank:nTF {#2} + { \exp_after:wN \__color_select_swap:Nnn \exp_after:wN #1 #1 } + { \__color_select_loop:Nw #1 #3 \s__color_mark #5 \s__color_stop } + } + } +\cs_new_protected:Npn \__color_select:nnN #1#2#3 { \cs_if_exist:cTF { __color_parse_model_ #1 :w } { \tl_set:Nx #3 { \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop } - \__color_check_model:N #3 - } - { - \__kernel_msg_error:nnn { color } { unknown-model } {#1} } + { \__kernel_msg_error:nnn { color } { unknown-model } {#1} } + } +\cs_new_protected:Npn \__color_select_swap:Nnn #1#2#3 + { + \__color_convert:nVnN {#2} \l_color_fixed_model_tl {#3} \l__color_value_tl + \tl_set:Nx #1 + { { \l_color_fixed_model_tl } { \l__color_value_tl } } } \tl_new:N \l__color_named_tl -\cs_new_protected:Npn \__color_store:Nn #1#2 +\cs_new_protected:Npn \color_set:nn #1#2 + { + \exp_args:NV \__color_set:nnn + \l_color_fixed_model_tl {#1} {#2} + } +\cs_new_protected:Npn \__color_set:nnn #1#2#3 { - \str_if_eq:nnF {#2} { . } + \tl_clear:N \l_color_fixed_model_tl + \__color_set:nn {#2} {#3} + \tl_set:Nn \l_color_fixed_model_tl {#1} + } +\cs_new_protected:Npn \__color_set:nn #1#2 + { + \str_if_eq:nnF {#1} { . } { - \tl_clear_new:c { l__color_named_ #2 _tl } - \tl_set_eq:cN { l__color_named_ #2 _tl } #1 + \__color_parse:nN {#2} \l__color_named_tl + \tl_clear_new:c { l__color_named_ #1 _tl } + \tl_set:cx { l__color_named_ #1 _tl } + { \__color_model:N \l__color_named_tl } + \prop_clear_new:c { l__color_named_ #1 _prop } + \prop_put:cvx { l__color_named_ #1 _prop } { l__color_named_ #1 _tl } + { \__color_values:N \l__color_named_tl } + \__color_set:nnw {#1} {#2} #2 ! \s__color_stop } } -\cs_new_protected:Npn \color_set:nn #1#2 +\cs_new_protected:Npn \__color_set:nnw #1#2#3 ! #4 \s__color_stop { - \color_parse:nN {#2} \l__color_named_tl - \__color_store:Nn \l__color_named_tl {#1} + \clist_map_inline:nn { cmyk , gray , rgb } + { + \prop_get:cnNT { l__color_named_ #3 _prop } {##1} \l__color_internal_tl + { + \prop_if_in:cnF { l__color_named_ #1 _prop } {##1} + { + \group_begin: + \tl_set:cn { l__color_named_ #3 _tl } {##1} + \__color_parse:nN {#2} \l__color_internal_tl + \exp_args:NNNV \group_end: + \tl_set:Nn \l__color_internal_tl \l__color_internal_tl + \prop_put:cxx { l__color_named_ #1 _prop } + { \__color_model:N \l__color_internal_tl } + { \__color_values:N \l__color_internal_tl } + } + } + } } \cs_new_protected:Npn \color_set:nnn #1#2#3 { - \__color_direct:nnN {#2} {#3} \l__color_named_tl - \__color_store:Nn \l__color_named_tl {#1} + \str_if_eq:nnF {#1} { . } + { + \tl_clear_new:c { l__color_named_ #1 _tl } + \prop_clear_new:c { l__color_named_ #1 _prop } + \__color_set_loop:nw {#1} #2 / / \s__color_mark #3 / / \s__color_stop + } + } +\cs_new_protected:Npn \__color_set_loop:nw + #1#2 / #3 \s__color_mark #4 / #5 \s__color_stop + { + \tl_if_blank:nF {#2} + { + \__color_select:nnN {#2} {#4} \l__color_named_tl + \tl_set:Nx \l__color_internal_tl { \__color_model:N \l__color_named_tl } + \tl_if_empty:cT { l__color_named_ #1 _tl } + { \tl_set_eq:cN { l__color_named_ #1 _tl } \l__color_internal_tl } + \prop_put:cVx { l__color_named_ #1 _prop } \l__color_internal_tl + { \__color_values:N \l__color_named_tl } + \__color_set_loop:nw {#1} #3 \s__color_mark #5 \s__color_stop + } } \cs_new_protected:Npn \color_set_eq:nn #1#2 { \__color_if_defined:nTF {#2} { \tl_clear_new:c { l__color_named_ #1 _tl } + \prop_clear_new:c { l__color_named_ #1 _prop } \str_if_eq:nnTF {#2} { . } - { \tl_set_eq:cN { l__color_named_ #1 _tl } \l__color_current_tl } - { \tl_set_eq:cc { l__color_named_ #1 _tl } { l__color_named_ #2 _tl } } + { + \tl_set:cx { l__color_named_ #1 _tl } + { \__color_model:N \l__color_current_tl } + \prop_put:cvx { l__color_named_ #1 _prop } { l__color_named_ #1 _tl } + { \__color_values:N \l__color_current_tl } + } + { + \tl_set_eq:cc { l__color_named_ #1 _tl } { l__color_named_ #2 _tl } + \prop_set_eq:cc { l__color_named_ #1 _prop } { l__color_named_ #2 _prop } + } } { \__kernel_msg_error:nnn { color } { unknown-color } {#2} @@ -401,24 +520,101 @@ \color_set:nnn { red } { rgb } { 1 , 0 , 0 } \color_set:nnn { green } { rgb } { 0 , 1 , 0 } \color_set:nnn { blue } { rgb } { 0 , 0 , 1 } +\prop_new:c { l__color_named_._prop } \tl_new:c { l__color_named_._tl } -\tl_set_eq:cN { l__color_named_._tl } \l__color_current_tl +\tl_set:cx { l__color_named_._tl } { \__color_model:N \l__color_current_tl } +\cs_new_protected:Npn \color_export:nnN #1#2#3 + { + \group_begin: + \tl_if_exist:cT { c__color_export_ #2 _tl } + { \tl_set_eq:Nc \l_color_fixed_model_tl { c__color_export_ #2 _tl } } + \__color_parse:nN {#1} #3 + \__color_export:nN {#2} #3 + \exp_args:NNNV \group_end: + \tl_set:Nn #3 #3 + } +\cs_new_protected:Npn \color_export:nnnN #1#2#3#4 + { + \__color_select_main:Nw #4 + #1 / / \s__color_mark #2 / / \s__color_stop + \__color_export:nN {#3} #4 + } +\cs_new_protected:Npn \__color_export:nN #1#2 + { \exp_after:wN \__color_export:nnnN #2 {#1} #2 } +\cs_new:Npn \__color_export:nnnN #1#2#3#4 + { + \cs_if_exist_use:cF { __color_export_format_ #3 :nnN } + { + \__kernel_msg_error:nnn { color } { unknown-export-format } {#3} + \use_none:nnn + } + {#1} {#2} #4 + } +\cs_new_protected:Npn \__color_export_format_backend:nnN #1#2#3 + { \tl_set:Nn #3 { {#1} {#2} } } +\cs_new_protected:Npn \__color_export:nnnNN #1#2#3#4#5 + { + \str_if_eq:nnTF {#2} {#1} + { #5 #4 #3 \s__color_stop } + { + \__color_convert:nnnN {#2} {#1} {#3} #4 + \exp_after:wN #5 \exp_after:wN #4 + #4 \s__color_stop + } + } +\tl_const:Nn \c__color_export_HTML_tl { rgb } +\tl_const:cn { c__color_export_space-sep-cmyk_tl } { cmyk } +\tl_const:cn { c__color_export_space-sep-rgb_tl } { rgb } +\cs_new_protected:cpx { __color_export_format_space-sep-cmyk:nnN } #1#2#3 + { + \exp_not:N \__color_export:nnnNN { cmyk } {#1} {#2} #3 + \exp_not:c { __color_export_space-sep-cmyk:Nw } + } +\cs_new_protected:cpn { __color_export_space-sep-cmyk:Nw } #1#2 \s__color_stop + { \tl_set:Nx #1 {#2} } +\cs_new_protected:Npn \__color_export_format_HTML:nnN #1#2#3 + { \__color_export:nnnNN { rgb } {#1} {#2}#3 \__color_export_HTML:Nw } +\cs_new_protected:cpx { __color_export_format_space-sep-rgb:nnN } #1#2#3 + { + \exp_not:N \__color_export:nnnNN { rgb } {#1} {#2} #3 + \exp_not:c { __color_export_space-sep-rgb:Nw } + } +\cs_new_protected:Npn \__color_export_HTML:Nw #1#2 ~ #3 ~ #4 \s__color_stop + { + \tl_set:Nx #1 + { + \__color_export_HTML:n {#2} + \__color_export_HTML:n {#3} + \__color_export_HTML:n {#4} + } + } +\cs_new:Npn \__color_export_HTML:n #1 + { + \fp_compare:nNnTF {#1} = { 0 } + { 00 } + { \int_to_Hex:n { \fp_to_int:n { #1 * 255 } } } + } +\cs_new_protected:cpn { __color_export_space-sep-rgb:Nw } #1#2 \s__color_stop + { \tl_set:Nx #1 {#2} } \cs_new_protected:Npn \color_show:n #1 { \msg_show:nnxxxx { LaTeX / color } { show } {#1} { - \__color_if_defined:nTF {#1} - { \exp_last_unbraced:Nv \__color_show:nn { l__color_named_ #1 _tl } } - { } + \__color_if_defined:nT {#1} + { + \exp_args:Nv \__color_show:n { l__color_named_ #1 _tl } + \prop_map_function:cN + { l__color_named_ #1 _prop } + \msg_show_item_unbraced:nn + } } { } { } } -\cs_new:Npn \__color_show:nn #1#2 +\cs_new:Npn \__color_show:n #1 { \msg_show_item_unbraced:nn { model } {#1} - \msg_show_item_unbraced:nn { value } {#2} } \__kernel_msg_new:nnnn { color } { unknown-color } { Unknown~color~'#1'. } @@ -426,6 +622,12 @@ LaTeX~has~been~asked~to~use~a~color~named~'#1',~ but~this~has~never~been~defined. } +\__kernel_msg_new:nnnn { color } { unknown-export-format } + { Unknown~export~format~'#1'. } + { + LaTeX~has~been~asked~to~export~a~color~in~format~'#1',~ + but~this~has~never~been~defined. + } \__kernel_msg_new:nnnn { color } { unknown-model } { Unknown~color~model~'#1'. } { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index 8c812a5529c..44b5e3b83c9 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -28,7 +28,7 @@ %% %% File: l3draw.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2020-06-18}{} +\ProvidesExplPackage{l3draw}{2020-07-17}{} {L3 Experimental core drawing support} \RequirePackage { l3color } \scan_new:N \s__draw_mark @@ -1694,7 +1694,7 @@ { \__draw_color:nn { stroke } {#1} } \cs_new_protected:Npn \__draw_color:nn #1#2 { - \color_parse:nN {#2} \l__draw_color_tmp_tl + \color_export:nnN {#2} { backend } \l__draw_color_tmp_tl \exp_after:wN \__draw_color:nnn \l__draw_color_tmp_tl {#1} } \cs_new_protected:Npn \__draw_color:nnn #1#2#3 diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty index 1b43f2d5701..159aa00c175 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty @@ -20,7 +20,7 @@ %% %% File: l3graphics.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3graphics}{2020-06-18}{} +\ProvidesExplPackage{l3graphics}{2020-07-17}{} {L3 Experimental graphics inclusion support} \ior_new:N \l__graphics_tmp_ior \tl_new:N \l__graphics_tmp_tl diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty index 937f0a65c35..d73a05c7a17 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty @@ -20,7 +20,7 @@ %% %% File: l3pdf.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3pdf}{2020-06-18}{} +\ProvidesExplPackage{l3pdf}{2020-07-17}{} {L3 Experimental core PDF support} \scan_new:N \s__pdf_stop \bool_new:N \g__pdf_init_bool 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 444c8280fcd..3137cb8f981 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 \RequirePackage{expl3} -\ProvidesExplPackage{l3str-format}{2020-06-18}{} +\ProvidesExplPackage{l3str-format}{2020-07-17}{} {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/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty index 53e0ebf675b..6270bb99cf8 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty @@ -20,7 +20,7 @@ %% %% File: l3sys-shell.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3sys-shell}{2020-06-18}{} +\ProvidesExplPackage{l3sys-shell}{2020-07-17}{} {L3 Experimental system shell functions} \scan_new:N \s__sys_stop \quark_new:N \q__sys_nil diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty index d87a6c8fc7e..bdcbd292634 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 \RequirePackage{xparse} -\ProvidesExplPackage{xcoffins}{2020-06-18}{} +\ProvidesExplPackage{xcoffins}{2020-07-17}{} {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 00729fb634f..007cd6febd6 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3galley}{2020-06-18}{} +\ProvidesExplPackage{l3galley}{2020-07-17}{} {L3 Experimental galley code} \int_new:N \l__galley_tmp_int \seq_new:N \g__galley_tmpa_seq diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty index ef965f138dd..cfdab78c975 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty @@ -20,7 +20,7 @@ %% %% File: xgalley.dtx \RequirePackage{xparse} -\ProvidesExplPackage{xgalley}{2020-06-18}{} +\ProvidesExplPackage{xgalley}{2020-07-17}{} {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 c954b30dfb2..6779946f1f0 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -39,6 +39,7 @@ %% l3fp-convert.dtx (with options: `package') %% l3fp-random.dtx (with options: `package') %% l3fparray.dtx (with options: `package') +%% l3cctab.dtx (with options: `package') %% l3sort.dtx (with options: `package') %% l3str-convert.dtx (with options: `package') %% l3tl-analysis.dtx (with options: `package') @@ -68,7 +69,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-18}% +\def\ExplFileDate{2020-07-17}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -765,9 +766,7 @@ \__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 @@ -1046,7 +1045,7 @@ \__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 \pagewidth \tex_pagewidth:D \__kernel_primitive:NN \protrudechars \tex_protrudechars:D \__kernel_primitive:NN \pxdimen \tex_pxdimen:D \__kernel_primitive:NN \randomseed \tex_randomseed:D @@ -1305,10 +1304,12 @@ \tex_endgroup:D \tex_ifdefined:D \@@end \tex_let:D \tex_end:D \@@end + \tex_let:D \tex_input:D \@@input +\tex_fi:D +\tex_ifdefined:D \@@hyph \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 @@ -1473,638 +1474,6 @@ \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 - \__kernel_primitive:NN \clubpenalties \etex_clubpenalties:D - \__kernel_primitive:NN \currentgrouplevel \etex_currentgrouplevel:D - \__kernel_primitive:NN \currentgrouptype \etex_currentgrouptype:D - \__kernel_primitive:NN \currentifbranch \etex_currentifbranch:D - \__kernel_primitive:NN \currentiflevel \etex_currentiflevel:D - \__kernel_primitive:NN \currentiftype \etex_currentiftype:D - \__kernel_primitive:NN \detokenize \etex_detokenize:D - \__kernel_primitive:NN \dimexpr \etex_dimexpr:D - \__kernel_primitive:NN \displaywidowpenalties - \etex_displaywidowpenalties:D - \__kernel_primitive:NN \endL \etex_endL:D - \__kernel_primitive:NN \endR \etex_endR:D - \__kernel_primitive:NN \eTeXrevision \etex_eTeXrevision:D - \__kernel_primitive:NN \eTeXversion \etex_eTeXversion:D - \__kernel_primitive:NN \everyeof \etex_everyeof:D - \__kernel_primitive:NN \firstmarks \etex_firstmarks:D - \__kernel_primitive:NN \fontchardp \etex_fontchardp:D - \__kernel_primitive:NN \fontcharht \etex_fontcharht:D - \__kernel_primitive:NN \fontcharic \etex_fontcharic:D - \__kernel_primitive:NN \fontcharwd \etex_fontcharwd:D - \__kernel_primitive:NN \glueexpr \etex_glueexpr:D - \__kernel_primitive:NN \glueshrink \etex_glueshrink:D - \__kernel_primitive:NN \glueshrinkorder \etex_glueshrinkorder:D - \__kernel_primitive:NN \gluestretch \etex_gluestretch:D - \__kernel_primitive:NN \gluestretchorder \etex_gluestretchorder:D - \__kernel_primitive:NN \gluetomu \etex_gluetomu:D - \__kernel_primitive:NN \ifcsname \etex_ifcsname:D - \__kernel_primitive:NN \ifdefined \etex_ifdefined:D - \__kernel_primitive:NN \iffontchar \etex_iffontchar:D - \__kernel_primitive:NN \interactionmode \etex_interactionmode:D - \__kernel_primitive:NN \interlinepenalties \etex_interlinepenalties:D - \__kernel_primitive:NN \lastlinefit \etex_lastlinefit:D - \__kernel_primitive:NN \lastnodetype \etex_lastnodetype:D - \__kernel_primitive:NN \marks \etex_marks:D - \__kernel_primitive:NN \middle \etex_middle:D - \__kernel_primitive:NN \muexpr \etex_muexpr:D - \__kernel_primitive:NN \mutoglue \etex_mutoglue:D - \__kernel_primitive:NN \numexpr \etex_numexpr:D - \__kernel_primitive:NN \pagediscards \etex_pagediscards:D - \__kernel_primitive:NN \parshapedimen \etex_parshapedimen:D - \__kernel_primitive:NN \parshapeindent \etex_parshapeindent:D - \__kernel_primitive:NN \parshapelength \etex_parshapelength:D - \__kernel_primitive:NN \predisplaydirection \etex_predisplaydirection:D - \__kernel_primitive:NN \protected \etex_protected:D - \__kernel_primitive:NN \readline \etex_readline:D - \__kernel_primitive:NN \savinghyphcodes \etex_savinghyphcodes:D - \__kernel_primitive:NN \savingvdiscards \etex_savingvdiscards:D - \__kernel_primitive:NN \scantokens \etex_scantokens:D - \__kernel_primitive:NN \showgroups \etex_showgroups:D - \__kernel_primitive:NN \showifs \etex_showifs:D - \__kernel_primitive:NN \showtokens \etex_showtokens:D - \__kernel_primitive:NN \splitbotmarks \etex_splitbotmarks:D - \__kernel_primitive:NN \splitdiscards \etex_splitdiscards:D - \__kernel_primitive:NN \splitfirstmarks \etex_splitfirstmarks:D - \__kernel_primitive:NN \TeXXeTstate \etex_TeXXeTstate:D - \__kernel_primitive:NN \topmarks \etex_topmarks:D - \__kernel_primitive:NN \tracingassigns \etex_tracingassigns:D - \__kernel_primitive:NN \tracinggroups \etex_tracinggroups:D - \__kernel_primitive:NN \tracingifs \etex_tracingifs:D - \__kernel_primitive:NN \tracingnesting \etex_tracingnesting:D - \__kernel_primitive:NN \tracingscantokens \etex_tracingscantokens:D - \__kernel_primitive:NN \unexpanded \etex_unexpanded:D - \__kernel_primitive:NN \unless \etex_unless:D - \__kernel_primitive:NN \widowpenalties \etex_widowpenalties:D - \__kernel_primitive:NN \pdfannot \pdftex_pdfannot:D - \__kernel_primitive:NN \pdfcatalog \pdftex_pdfcatalog:D - \__kernel_primitive:NN \pdfcompresslevel \pdftex_pdfcompresslevel:D - \__kernel_primitive:NN \pdfcolorstack \pdftex_pdfcolorstack:D - \__kernel_primitive:NN \pdfcolorstackinit \pdftex_pdfcolorstackinit:D - \__kernel_primitive:NN \pdfcreationdate \pdftex_pdfcreationdate:D - \__kernel_primitive:NN \pdfdecimaldigits \pdftex_pdfdecimaldigits:D - \__kernel_primitive:NN \pdfdest \pdftex_pdfdest:D - \__kernel_primitive:NN \pdfdestmargin \pdftex_pdfdestmargin:D - \__kernel_primitive:NN \pdfendlink \pdftex_pdfendlink:D - \__kernel_primitive:NN \pdfendthread \pdftex_pdfendthread:D - \__kernel_primitive:NN \pdffontattr \pdftex_pdffontattr:D - \__kernel_primitive:NN \pdffontname \pdftex_pdffontname:D - \__kernel_primitive:NN \pdffontobjnum \pdftex_pdffontobjnum:D - \__kernel_primitive:NN \pdfgamma \pdftex_pdfgamma:D - \__kernel_primitive:NN \pdfimageapplygamma \pdftex_pdfimageapplygamma:D - \__kernel_primitive:NN \pdfimagegamma \pdftex_pdfimagegamma:D - \__kernel_primitive:NN \pdfgentounicode \pdftex_pdfgentounicode:D - \__kernel_primitive:NN \pdfglyphtounicode \pdftex_pdfglyphtounicode:D - \__kernel_primitive:NN \pdfhorigin \pdftex_pdfhorigin:D - \__kernel_primitive:NN \pdfimagehicolor \pdftex_pdfimagehicolor:D - \__kernel_primitive:NN \pdfimageresolution \pdftex_pdfimageresolution:D - \__kernel_primitive:NN \pdfincludechars \pdftex_pdfincludechars:D - \__kernel_primitive:NN \pdfinclusioncopyfonts - \pdftex_pdfinclusioncopyfonts:D - \__kernel_primitive:NN \pdfinclusionerrorlevel - \pdftex_pdfinclusionerrorlevel:D - \__kernel_primitive:NN \pdfinfo \pdftex_pdfinfo:D - \__kernel_primitive:NN \pdflastannot \pdftex_pdflastannot: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 - \__kernel_primitive:NN \pdflastximagecolordepth - \pdftex_pdflastximagecolordepth:D - \__kernel_primitive:NN \pdflastximagepages \pdftex_pdflastximagepages:D - \__kernel_primitive:NN \pdflinkmargin \pdftex_pdflinkmargin:D - \__kernel_primitive:NN \pdfliteral \pdftex_pdfliteral:D - \__kernel_primitive:NN \pdfminorversion \pdftex_pdfminorversion:D - \__kernel_primitive:NN \pdfnames \pdftex_pdfnames:D - \__kernel_primitive:NN \pdfobj \pdftex_pdfobj:D - \__kernel_primitive:NN \pdfobjcompresslevel - \pdftex_pdfobjcompresslevel:D - \__kernel_primitive:NN \pdfoutline \pdftex_pdfoutline:D - \__kernel_primitive:NN \pdfoutput \pdftex_pdfoutput:D - \__kernel_primitive:NN \pdfpageattr \pdftex_pdfpageattr:D - \__kernel_primitive:NN \pdfpagebox \pdftex_pdfpagebox:D - \__kernel_primitive:NN \pdfpageref \pdftex_pdfpageref:D - \__kernel_primitive:NN \pdfpageresources \pdftex_pdfpageresources:D - \__kernel_primitive:NN \pdfpagesattr \pdftex_pdfpagesattr:D - \__kernel_primitive:NN \pdfrefobj \pdftex_pdfrefobj:D - \__kernel_primitive:NN \pdfrefxform \pdftex_pdfrefxform:D - \__kernel_primitive:NN \pdfrefximage \pdftex_pdfrefximage:D - \__kernel_primitive:NN \pdfrestore \pdftex_pdfrestore:D - \__kernel_primitive:NN \pdfretval \pdftex_pdfretval:D - \__kernel_primitive:NN \pdfsave \pdftex_pdfsave:D - \__kernel_primitive:NN \pdfsetmatrix \pdftex_pdfsetmatrix:D - \__kernel_primitive:NN \pdfstartlink \pdftex_pdfstartlink:D - \__kernel_primitive:NN \pdfstartthread \pdftex_pdfstartthread:D - \__kernel_primitive:NN \pdfsuppressptexinfo - \pdftex_pdfsuppressptexinfo:D - \__kernel_primitive:NN \pdfthread \pdftex_pdfthread:D - \__kernel_primitive:NN \pdfthreadmargin \pdftex_pdfthreadmargin:D - \__kernel_primitive:NN \pdftrailer \pdftex_pdftrailer:D - \__kernel_primitive:NN \pdfuniqueresname \pdftex_pdfuniqueresname:D - \__kernel_primitive:NN \pdfvorigin \pdftex_pdfvorigin:D - \__kernel_primitive:NN \pdfxform \pdftex_pdfxform:D - \__kernel_primitive:NN \pdfxformattr \pdftex_pdfxformattr:D - \__kernel_primitive:NN \pdfxformname \pdftex_pdfxformname:D - \__kernel_primitive:NN \pdfxformresources \pdftex_pdfxformresources:D - \__kernel_primitive:NN \pdfximage \pdftex_pdfximage:D - \__kernel_primitive:NN \pdfximagebbox \pdftex_pdfximagebbox:D - \__kernel_primitive:NN \ifpdfabsdim \pdftex_ifabsdim:D - \__kernel_primitive:NN \ifpdfabsnum \pdftex_ifabsnum:D - \__kernel_primitive:NN \ifpdfprimitive \pdftex_ifprimitive:D - \__kernel_primitive:NN \pdfadjustspacing \pdftex_adjustspacing:D - \__kernel_primitive:NN \pdfcopyfont \pdftex_copyfont:D - \__kernel_primitive:NN \pdfdraftmode \pdftex_draftmode:D - \__kernel_primitive:NN \pdfeachlinedepth \pdftex_eachlinedepth:D - \__kernel_primitive:NN \pdfeachlineheight \pdftex_eachlineheight:D - \__kernel_primitive:NN \pdffilemoddate \pdftex_filemoddate:D - \__kernel_primitive:NN \pdffilesize \pdftex_filesize: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 - \__kernel_primitive:NN \pdfinsertht \pdftex_insertht:D - \__kernel_primitive:NN \pdflastlinedepth \pdftex_lastlinedepth:D - \__kernel_primitive:NN \pdflastxpos \pdftex_lastxpos:D - \__kernel_primitive:NN \pdflastypos \pdftex_lastypos:D - \__kernel_primitive:NN \pdfmapfile \pdftex_mapfile:D - \__kernel_primitive:NN \pdfmapline \pdftex_mapline:D - \__kernel_primitive:NN \pdfmdfivesum \pdftex_mdfivesum:D - \__kernel_primitive:NN \pdfnoligatures \pdftex_noligatures:D - \__kernel_primitive:NN \pdfnormaldeviate \pdftex_normaldeviate:D - \__kernel_primitive:NN \pdfpageheight \pdftex_pageheight:D - \__kernel_primitive:NN \pdfpagewidth \pdftex_pagewidth:D - \__kernel_primitive:NN \pdfpkmode \pdftex_pkmode:D - \__kernel_primitive:NN \pdfpkresolution \pdftex_pkresolution:D - \__kernel_primitive:NN \pdfprimitive \pdftex_primitive:D - \__kernel_primitive:NN \pdfprotrudechars \pdftex_protrudechars:D - \__kernel_primitive:NN \pdfpxdimen \pdftex_pxdimen:D - \__kernel_primitive:NN \pdfrandomseed \pdftex_randomseed:D - \__kernel_primitive:NN \pdfsavepos \pdftex_savepos:D - \__kernel_primitive:NN \pdfstrcmp \pdftex_strcmp:D - \__kernel_primitive:NN \pdfsetrandomseed \pdftex_setrandomseed:D - \__kernel_primitive:NN \pdfshellescape \pdftex_shellescape:D - \__kernel_primitive:NN \pdftracingfonts \pdftex_tracingfonts:D - \__kernel_primitive:NN \pdfuniformdeviate \pdftex_uniformdeviate:D - \__kernel_primitive:NN \pdftexbanner \pdftex_pdftexbanner:D - \__kernel_primitive:NN \pdftexrevision \pdftex_pdftexrevision:D - \__kernel_primitive:NN \pdftexversion \pdftex_pdftexversion:D - \__kernel_primitive:NN \efcode \pdftex_efcode:D - \__kernel_primitive:NN \ifincsname \pdftex_ifincsname:D - \__kernel_primitive:NN \leftmarginkern \pdftex_leftmarginkern:D - \__kernel_primitive:NN \letterspacefont \pdftex_letterspacefont:D - \__kernel_primitive:NN \lpcode \pdftex_lpcode:D - \__kernel_primitive:NN \quitvmode \pdftex_quitvmode:D - \__kernel_primitive:NN \rightmarginkern \pdftex_rightmarginkern:D - \__kernel_primitive:NN \rpcode \pdftex_rpcode:D - \__kernel_primitive:NN \synctex \pdftex_synctex:D - \__kernel_primitive:NN \tagcode \pdftex_tagcode: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 \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 - \__kernel_primitive:NN \XeTeXcharglyph \xetex_charglyph:D - \__kernel_primitive:NN \XeTeXcountfeatures \xetex_countfeatures:D - \__kernel_primitive:NN \XeTeXcountglyphs \xetex_countglyphs:D - \__kernel_primitive:NN \XeTeXcountselectors \xetex_countselectors:D - \__kernel_primitive:NN \XeTeXcountvariations \xetex_countvariations:D - \__kernel_primitive:NN \XeTeXdefaultencoding \xetex_defaultencoding:D - \__kernel_primitive:NN \XeTeXdashbreakstate \xetex_dashbreakstate:D - \__kernel_primitive:NN \XeTeXfeaturecode \xetex_featurecode:D - \__kernel_primitive:NN \XeTeXfeaturename \xetex_featurename:D - \__kernel_primitive:NN \XeTeXfindfeaturebyname - \xetex_findfeaturebyname:D - \__kernel_primitive:NN \XeTeXfindselectorbyname - \xetex_findselectorbyname:D - \__kernel_primitive:NN \XeTeXfindvariationbyname - \xetex_findvariationbyname:D - \__kernel_primitive:NN \XeTeXfirstfontchar \xetex_firstfontchar:D - \__kernel_primitive:NN \XeTeXfonttype \xetex_fonttype:D - \__kernel_primitive:NN \XeTeXgenerateactualtext - \xetex_generateactualtext:D - \__kernel_primitive:NN \XeTeXglyph \xetex_glyph:D - \__kernel_primitive:NN \XeTeXglyphbounds \xetex_glyphbounds:D - \__kernel_primitive:NN \XeTeXglyphindex \xetex_glyphindex:D - \__kernel_primitive:NN \XeTeXglyphname \xetex_glyphname:D - \__kernel_primitive:NN \XeTeXinputencoding \xetex_inputencoding:D - \__kernel_primitive:NN \XeTeXinputnormalization - \xetex_inputnormalization:D - \__kernel_primitive:NN \XeTeXinterchartokenstate - \xetex_interchartokenstate:D - \__kernel_primitive:NN \XeTeXinterchartoks \xetex_interchartoks:D - \__kernel_primitive:NN \XeTeXisdefaultselector - \xetex_isdefaultselector:D - \__kernel_primitive:NN \XeTeXisexclusivefeature - \xetex_isexclusivefeature:D - \__kernel_primitive:NN \XeTeXlastfontchar \xetex_lastfontchar:D - \__kernel_primitive:NN \XeTeXlinebreakskip \xetex_linebreakskip:D - \__kernel_primitive:NN \XeTeXlinebreaklocale \xetex_linebreaklocale:D - \__kernel_primitive:NN \XeTeXlinebreakpenalty \xetex_linebreakpenalty:D - \__kernel_primitive:NN \XeTeXOTcountfeatures \xetex_OTcountfeatures:D - \__kernel_primitive:NN \XeTeXOTcountlanguages \xetex_OTcountlanguages:D - \__kernel_primitive:NN \XeTeXOTcountscripts \xetex_OTcountscripts:D - \__kernel_primitive:NN \XeTeXOTfeaturetag \xetex_OTfeaturetag:D - \__kernel_primitive:NN \XeTeXOTlanguagetag \xetex_OTlanguagetag:D - \__kernel_primitive:NN \XeTeXOTscripttag \xetex_OTscripttag:D - \__kernel_primitive:NN \XeTeXpdffile \xetex_pdffile:D - \__kernel_primitive:NN \XeTeXpdfpagecount \xetex_pdfpagecount:D - \__kernel_primitive:NN \XeTeXpicfile \xetex_picfile:D - \__kernel_primitive:NN \XeTeXselectorname \xetex_selectorname:D - \__kernel_primitive:NN \XeTeXtracingfonts \xetex_tracingfonts:D - \__kernel_primitive:NN \XeTeXupwardsmode \xetex_upwardsmode:D - \__kernel_primitive:NN \XeTeXuseglyphmetrics \xetex_useglyphmetrics:D - \__kernel_primitive:NN \XeTeXvariation \xetex_variation:D - \__kernel_primitive:NN \XeTeXvariationdefault \xetex_variationdefault:D - \__kernel_primitive:NN \XeTeXvariationmax \xetex_variationmax:D - \__kernel_primitive:NN \XeTeXvariationmin \xetex_variationmin:D - \__kernel_primitive:NN \XeTeXvariationname \xetex_variationname:D - \__kernel_primitive:NN \XeTeXrevision \xetex_XeTeXrevision:D - \__kernel_primitive:NN \XeTeXversion \xetex_XeTeXversion:D - \__kernel_primitive:NN \alignmark \luatex_alignmark:D - \__kernel_primitive:NN \aligntab \luatex_aligntab:D - \__kernel_primitive:NN \attribute \luatex_attribute:D - \__kernel_primitive:NN \attributedef \luatex_attributedef:D - \__kernel_primitive:NN \automaticdiscretionary - \luatex_automaticdiscretionary:D - \__kernel_primitive:NN \automatichyphenmode - \luatex_automatichyphenmode:D - \__kernel_primitive:NN \automatichyphenpenalty - \luatex_automatichyphenpenalty:D - \__kernel_primitive:NN \begincsname \luatex_begincsname:D - \__kernel_primitive:NN \breakafterdirmode \luatex_breakafterdirmode:D - \__kernel_primitive:NN \catcodetable \luatex_catcodetable:D - \__kernel_primitive:NN \clearmarks \luatex_clearmarks:D - \__kernel_primitive:NN \crampeddisplaystyle - \luatex_crampeddisplaystyle:D - \__kernel_primitive:NN \crampedscriptscriptstyle - \luatex_crampedscriptscriptstyle:D - \__kernel_primitive:NN \crampedscriptstyle \luatex_crampedscriptstyle:D - \__kernel_primitive:NN \crampedtextstyle \luatex_crampedtextstyle:D - \__kernel_primitive:NN \directlua \luatex_directlua:D - \__kernel_primitive:NN \dviextension \luatex_dviextension:D - \__kernel_primitive:NN \dvifeedback \luatex_dvifeedback:D - \__kernel_primitive:NN \dvivariable \luatex_dvivariable:D - \__kernel_primitive:NN \etoksapp \luatex_etoksapp:D - \__kernel_primitive:NN \etokspre \luatex_etokspre:D - \__kernel_primitive:NN \explicithyphenpenalty - \luatex_explicithyphenpenalty:D - \__kernel_primitive:NN \expanded \luatex_expanded:D - \__kernel_primitive:NN \explicitdiscretionary - \luatex_explicitdiscretionary:D - \__kernel_primitive:NN \firstvalidlanguage \luatex_firstvalidlanguage:D - \__kernel_primitive:NN \fontid \luatex_fontid:D - \__kernel_primitive:NN \formatname \luatex_formatname:D - \__kernel_primitive:NN \hjcode \luatex_hjcode:D - \__kernel_primitive:NN \hpack \luatex_hpack:D - \__kernel_primitive:NN \hyphenationbounds \luatex_hyphenationbounds:D - \__kernel_primitive:NN \hyphenationmin \luatex_hyphenationmin:D - \__kernel_primitive:NN \hyphenpenaltymode \luatex_hyphenpenaltymode:D - \__kernel_primitive:NN \gleaders \luatex_gleaders:D - \__kernel_primitive:NN \initcatcodetable \luatex_initcatcodetable:D - \__kernel_primitive:NN \lastnamedcs \luatex_lastnamedcs:D - \__kernel_primitive:NN \latelua \luatex_latelua:D - \__kernel_primitive:NN \letcharcode \luatex_letcharcode:D - \__kernel_primitive:NN \luaescapestring \luatex_luaescapestring:D - \__kernel_primitive:NN \luafunction \luatex_luafunction:D - \__kernel_primitive:NN \luatexbanner \luatex_luatexbanner:D - \__kernel_primitive:NN \luatexrevision \luatex_luatexrevision:D - \__kernel_primitive:NN \luatexversion \luatex_luatexversion:D - \__kernel_primitive:NN \mathdelimitersmode \luatex_mathdelimitersmode:D - \__kernel_primitive:NN \mathdisplayskipmode - \luatex_mathdisplayskipmode:D - \__kernel_primitive:NN \matheqnogapstep \luatex_matheqnogapstep:D - \__kernel_primitive:NN \mathnolimitsmode \luatex_mathnolimitsmode:D - \__kernel_primitive:NN \mathoption \luatex_mathoption:D - \__kernel_primitive:NN \mathpenaltiesmode \luatex_mathpenaltiesmode:D - \__kernel_primitive:NN \mathrulesfam \luatex_mathrulesfam:D - \__kernel_primitive:NN \mathscriptsmode \luatex_mathscriptsmode:D - \__kernel_primitive:NN \mathscriptboxmode \luatex_mathscriptboxmode:D - \__kernel_primitive:NN \mathstyle \luatex_mathstyle:D - \__kernel_primitive:NN \mathsurroundmode \luatex_mathsurroundmode:D - \__kernel_primitive:NN \mathsurroundskip \luatex_mathsurroundskip:D - \__kernel_primitive:NN \nohrule \luatex_nohrule:D - \__kernel_primitive:NN \nokerns \luatex_nokerns:D - \__kernel_primitive:NN \noligs \luatex_noligs:D - \__kernel_primitive:NN \nospaces \luatex_nospaces:D - \__kernel_primitive:NN \novrule \luatex_novrule:D - \__kernel_primitive:NN \outputbox \luatex_outputbox:D - \__kernel_primitive:NN \pagebottomoffset \luatex_pagebottomoffset:D - \__kernel_primitive:NN \pageleftoffset \luatex_pageleftoffset:D - \__kernel_primitive:NN \pagerightoffset \luatex_pagerightoffset:D - \__kernel_primitive:NN \pagetopoffset \luatex_pagetopoffset:D - \__kernel_primitive:NN \pdfextension \luatex_pdfextension:D - \__kernel_primitive:NN \pdffeedback \luatex_pdffeedback:D - \__kernel_primitive:NN \pdfvariable \luatex_pdfvariable:D - \__kernel_primitive:NN \postexhyphenchar \luatex_postexhyphenchar:D - \__kernel_primitive:NN \posthyphenchar \luatex_posthyphenchar:D - \__kernel_primitive:NN \prebinoppenalty \luatex_prebinoppenalty:D - \__kernel_primitive:NN \predisplaygapfactor - \luatex_predisplaygapfactor:D - \__kernel_primitive:NN \preexhyphenchar \luatex_preexhyphenchar:D - \__kernel_primitive:NN \prehyphenchar \luatex_prehyphenchar:D - \__kernel_primitive:NN \prerelpenalty \luatex_prerelpenalty:D - \__kernel_primitive:NN \savecatcodetable \luatex_savecatcodetable:D - \__kernel_primitive:NN \scantextokens \luatex_scantextokens:D - \__kernel_primitive:NN \setfontid \luatex_setfontid:D - \__kernel_primitive:NN \shapemode \luatex_shapemode:D - \__kernel_primitive:NN \suppressifcsnameerror - \luatex_suppressifcsnameerror:D - \__kernel_primitive:NN \suppresslongerror \luatex_suppresslongerror:D - \__kernel_primitive:NN \suppressmathparerror - \luatex_suppressmathparerror:D - \__kernel_primitive:NN \suppressoutererror \luatex_suppressoutererror:D - \__kernel_primitive:NN \suppressprimitiveerror - \luatex_suppressprimitiveerror:D - \__kernel_primitive:NN \toksapp \luatex_toksapp:D - \__kernel_primitive:NN \tokspre \luatex_tokspre:D - \__kernel_primitive:NN \tpack \luatex_tpack:D - \__kernel_primitive:NN \vpack \luatex_vpack:D - \__kernel_primitive:NN \bodydir \luatex_bodydir:D - \__kernel_primitive:NN \boxdir \luatex_boxdir:D - \__kernel_primitive:NN \leftghost \luatex_leftghost:D - \__kernel_primitive:NN \linedir \luatex_linedir:D - \__kernel_primitive:NN \localbrokenpenalty \luatex_localbrokenpenalty:D - \__kernel_primitive:NN \localinterlinepenalty - \luatex_localinterlinepenalty:D - \__kernel_primitive:NN \localleftbox \luatex_localleftbox:D - \__kernel_primitive:NN \localrightbox \luatex_localrightbox:D - \__kernel_primitive:NN \mathdir \luatex_mathdir:D - \__kernel_primitive:NN \pagedir \luatex_pagedir:D - \__kernel_primitive:NN \pardir \luatex_pardir:D - \__kernel_primitive:NN \rightghost \luatex_rightghost:D - \__kernel_primitive:NN \textdir \luatex_textdir:D - \__kernel_primitive:NN \Uchar \utex_char:D - \__kernel_primitive:NN \Ucharcat \utex_charcat:D - \__kernel_primitive:NN \Udelcode \utex_delcode:D - \__kernel_primitive:NN \Udelcodenum \utex_delcodenum:D - \__kernel_primitive:NN \Udelimiter \utex_delimiter:D - \__kernel_primitive:NN \Udelimiterover \utex_delimiterover:D - \__kernel_primitive:NN \Udelimiterunder \utex_delimiterunder:D - \__kernel_primitive:NN \Uhextensible \utex_hextensible:D - \__kernel_primitive:NN \Umathaccent \utex_mathaccent:D - \__kernel_primitive:NN \Umathaxis \utex_mathaxis:D - \__kernel_primitive:NN \Umathbinbinspacing \utex_binbinspacing:D - \__kernel_primitive:NN \Umathbinclosespacing \utex_binclosespacing:D - \__kernel_primitive:NN \Umathbininnerspacing \utex_bininnerspacing:D - \__kernel_primitive:NN \Umathbinopenspacing \utex_binopenspacing:D - \__kernel_primitive:NN \Umathbinopspacing \utex_binopspacing:D - \__kernel_primitive:NN \Umathbinordspacing \utex_binordspacing:D - \__kernel_primitive:NN \Umathbinpunctspacing \utex_binpunctspacing:D - \__kernel_primitive:NN \Umathbinrelspacing \utex_binrelspacing:D - \__kernel_primitive:NN \Umathchar \utex_mathchar:D - \__kernel_primitive:NN \Umathcharclass \utex_mathcharclass:D - \__kernel_primitive:NN \Umathchardef \utex_mathchardef:D - \__kernel_primitive:NN \Umathcharfam \utex_mathcharfam:D - \__kernel_primitive:NN \Umathcharnum \utex_mathcharnum:D - \__kernel_primitive:NN \Umathcharnumdef \utex_mathcharnumdef:D - \__kernel_primitive:NN \Umathcharslot \utex_mathcharslot:D - \__kernel_primitive:NN \Umathclosebinspacing \utex_closebinspacing:D - \__kernel_primitive:NN \Umathcloseclosespacing - \utex_closeclosespacing:D - \__kernel_primitive:NN \Umathcloseinnerspacing - \utex_closeinnerspacing:D - \__kernel_primitive:NN \Umathcloseopenspacing \utex_closeopenspacing:D - \__kernel_primitive:NN \Umathcloseopspacing \utex_closeopspacing:D - \__kernel_primitive:NN \Umathcloseordspacing \utex_closeordspacing:D - \__kernel_primitive:NN \Umathclosepunctspacing - \utex_closepunctspacing:D - \__kernel_primitive:NN \Umathcloserelspacing \utex_closerelspacing:D - \__kernel_primitive:NN \Umathcode \utex_mathcode:D - \__kernel_primitive:NN \Umathcodenum \utex_mathcodenum:D - \__kernel_primitive:NN \Umathconnectoroverlapmin - \utex_connectoroverlapmin:D - \__kernel_primitive:NN \Umathfractiondelsize \utex_fractiondelsize:D - \__kernel_primitive:NN \Umathfractiondenomdown - \utex_fractiondenomdown:D - \__kernel_primitive:NN \Umathfractiondenomvgap - \utex_fractiondenomvgap:D - \__kernel_primitive:NN \Umathfractionnumup \utex_fractionnumup:D - \__kernel_primitive:NN \Umathfractionnumvgap \utex_fractionnumvgap:D - \__kernel_primitive:NN \Umathfractionrule \utex_fractionrule:D - \__kernel_primitive:NN \Umathinnerbinspacing \utex_innerbinspacing:D - \__kernel_primitive:NN \Umathinnerclosespacing - \utex_innerclosespacing:D - \__kernel_primitive:NN \Umathinnerinnerspacing - \utex_innerinnerspacing:D - \__kernel_primitive:NN \Umathinneropenspacing \utex_inneropenspacing:D - \__kernel_primitive:NN \Umathinneropspacing \utex_inneropspacing:D - \__kernel_primitive:NN \Umathinnerordspacing \utex_innerordspacing:D - \__kernel_primitive:NN \Umathinnerpunctspacing - \utex_innerpunctspacing:D - \__kernel_primitive:NN \Umathinnerrelspacing \utex_innerrelspacing:D - \__kernel_primitive:NN \Umathlimitabovebgap \utex_limitabovebgap:D - \__kernel_primitive:NN \Umathlimitabovekern \utex_limitabovekern:D - \__kernel_primitive:NN \Umathlimitabovevgap \utex_limitabovevgap:D - \__kernel_primitive:NN \Umathlimitbelowbgap \utex_limitbelowbgap:D - \__kernel_primitive:NN \Umathlimitbelowkern \utex_limitbelowkern:D - \__kernel_primitive:NN \Umathlimitbelowvgap \utex_limitbelowvgap:D - \__kernel_primitive:NN \Umathnolimitsubfactor \utex_nolimitsubfactor:D - \__kernel_primitive:NN \Umathnolimitsupfactor \utex_nolimitsupfactor:D - \__kernel_primitive:NN \Umathopbinspacing \utex_opbinspacing:D - \__kernel_primitive:NN \Umathopclosespacing \utex_opclosespacing:D - \__kernel_primitive:NN \Umathopenbinspacing \utex_openbinspacing:D - \__kernel_primitive:NN \Umathopenclosespacing \utex_openclosespacing:D - \__kernel_primitive:NN \Umathopeninnerspacing \utex_openinnerspacing:D - \__kernel_primitive:NN \Umathopenopenspacing \utex_openopenspacing:D - \__kernel_primitive:NN \Umathopenopspacing \utex_openopspacing:D - \__kernel_primitive:NN \Umathopenordspacing \utex_openordspacing:D - \__kernel_primitive:NN \Umathopenpunctspacing \utex_openpunctspacing:D - \__kernel_primitive:NN \Umathopenrelspacing \utex_openrelspacing:D - \__kernel_primitive:NN \Umathoperatorsize \utex_operatorsize:D - \__kernel_primitive:NN \Umathopinnerspacing \utex_opinnerspacing:D - \__kernel_primitive:NN \Umathopopenspacing \utex_opopenspacing:D - \__kernel_primitive:NN \Umathopopspacing \utex_opopspacing:D - \__kernel_primitive:NN \Umathopordspacing \utex_opordspacing:D - \__kernel_primitive:NN \Umathoppunctspacing \utex_oppunctspacing:D - \__kernel_primitive:NN \Umathoprelspacing \utex_oprelspacing:D - \__kernel_primitive:NN \Umathordbinspacing \utex_ordbinspacing:D - \__kernel_primitive:NN \Umathordclosespacing \utex_ordclosespacing:D - \__kernel_primitive:NN \Umathordinnerspacing \utex_ordinnerspacing:D - \__kernel_primitive:NN \Umathordopenspacing \utex_ordopenspacing:D - \__kernel_primitive:NN \Umathordopspacing \utex_ordopspacing:D - \__kernel_primitive:NN \Umathordordspacing \utex_ordordspacing:D - \__kernel_primitive:NN \Umathordpunctspacing \utex_ordpunctspacing:D - \__kernel_primitive:NN \Umathordrelspacing \utex_ordrelspacing:D - \__kernel_primitive:NN \Umathoverbarkern \utex_overbarkern:D - \__kernel_primitive:NN \Umathoverbarrule \utex_overbarrule:D - \__kernel_primitive:NN \Umathoverbarvgap \utex_overbarvgap:D - \__kernel_primitive:NN \Umathoverdelimiterbgap - \utex_overdelimiterbgap:D - \__kernel_primitive:NN \Umathoverdelimitervgap - \utex_overdelimitervgap:D - \__kernel_primitive:NN \Umathpunctbinspacing \utex_punctbinspacing:D - \__kernel_primitive:NN \Umathpunctclosespacing - \utex_punctclosespacing:D - \__kernel_primitive:NN \Umathpunctinnerspacing - \utex_punctinnerspacing:D - \__kernel_primitive:NN \Umathpunctopenspacing \utex_punctopenspacing:D - \__kernel_primitive:NN \Umathpunctopspacing \utex_punctopspacing:D - \__kernel_primitive:NN \Umathpunctordspacing \utex_punctordspacing:D - \__kernel_primitive:NN \Umathpunctpunctspacing\utex_punctpunctspacing:D - \__kernel_primitive:NN \Umathpunctrelspacing \utex_punctrelspacing:D - \__kernel_primitive:NN \Umathquad \utex_quad:D - \__kernel_primitive:NN \Umathradicaldegreeafter - \utex_radicaldegreeafter:D - \__kernel_primitive:NN \Umathradicaldegreebefore - \utex_radicaldegreebefore:D - \__kernel_primitive:NN \Umathradicaldegreeraise - \utex_radicaldegreeraise:D - \__kernel_primitive:NN \Umathradicalkern \utex_radicalkern:D - \__kernel_primitive:NN \Umathradicalrule \utex_radicalrule:D - \__kernel_primitive:NN \Umathradicalvgap \utex_radicalvgap:D - \__kernel_primitive:NN \Umathrelbinspacing \utex_relbinspacing:D - \__kernel_primitive:NN \Umathrelclosespacing \utex_relclosespacing:D - \__kernel_primitive:NN \Umathrelinnerspacing \utex_relinnerspacing:D - \__kernel_primitive:NN \Umathrelopenspacing \utex_relopenspacing:D - \__kernel_primitive:NN \Umathrelopspacing \utex_relopspacing:D - \__kernel_primitive:NN \Umathrelordspacing \utex_relordspacing:D - \__kernel_primitive:NN \Umathrelpunctspacing \utex_relpunctspacing:D - \__kernel_primitive:NN \Umathrelrelspacing \utex_relrelspacing:D - \__kernel_primitive:NN \Umathskewedfractionhgap - \utex_skewedfractionhgap:D - \__kernel_primitive:NN \Umathskewedfractionvgap - \utex_skewedfractionvgap:D - \__kernel_primitive:NN \Umathspaceafterscript \utex_spaceafterscript:D - \__kernel_primitive:NN \Umathstackdenomdown \utex_stackdenomdown:D - \__kernel_primitive:NN \Umathstacknumup \utex_stacknumup:D - \__kernel_primitive:NN \Umathstackvgap \utex_stackvgap:D - \__kernel_primitive:NN \Umathsubshiftdown \utex_subshiftdown:D - \__kernel_primitive:NN \Umathsubshiftdrop \utex_subshiftdrop:D - \__kernel_primitive:NN \Umathsubsupshiftdown \utex_subsupshiftdown:D - \__kernel_primitive:NN \Umathsubsupvgap \utex_subsupvgap:D - \__kernel_primitive:NN \Umathsubtopmax \utex_subtopmax:D - \__kernel_primitive:NN \Umathsupbottommin \utex_supbottommin:D - \__kernel_primitive:NN \Umathsupshiftdrop \utex_supshiftdrop:D - \__kernel_primitive:NN \Umathsupshiftup \utex_supshiftup:D - \__kernel_primitive:NN \Umathsupsubbottommax \utex_supsubbottommax:D - \__kernel_primitive:NN \Umathunderbarkern \utex_underbarkern:D - \__kernel_primitive:NN \Umathunderbarrule \utex_underbarrule:D - \__kernel_primitive:NN \Umathunderbarvgap \utex_underbarvgap:D - \__kernel_primitive:NN \Umathunderdelimiterbgap - \utex_underdelimiterbgap:D - \__kernel_primitive:NN \Umathunderdelimitervgap - \utex_underdelimitervgap:D - \__kernel_primitive:NN \Unosubscript \utex_nosubscript:D - \__kernel_primitive:NN \Unosuperscript \utex_nosuperscript:D - \__kernel_primitive:NN \Uoverdelimiter \utex_overdelimiter:D - \__kernel_primitive:NN \Uradical \utex_radical:D - \__kernel_primitive:NN \Uroot \utex_root:D - \__kernel_primitive:NN \Uskewed \utex_skewed:D - \__kernel_primitive:NN \Uskewedwithdelims \utex_skewedwithdelims:D - \__kernel_primitive:NN \Ustack \utex_stack:D - \__kernel_primitive:NN \Ustartdisplaymath \utex_startdisplaymath:D - \__kernel_primitive:NN \Ustartmath \utex_startmath:D - \__kernel_primitive:NN \Ustopdisplaymath \utex_stopdisplaymath:D - \__kernel_primitive:NN \Ustopmath \utex_stopmath:D - \__kernel_primitive:NN \Usubscript \utex_subscript:D - \__kernel_primitive:NN \Usuperscript \utex_superscript:D - \__kernel_primitive:NN \Uunderdelimiter \utex_underdelimiter:D - \__kernel_primitive:NN \Uvextensible \utex_vextensible:D - \__kernel_primitive:NN \autospacing \ptex_autospacing:D - \__kernel_primitive:NN \autoxspacing \ptex_autoxspacing:D - \__kernel_primitive:NN \dtou \ptex_dtou:D - \__kernel_primitive:NN \epTeXinputencoding \ptex_inputencoding:D - \__kernel_primitive:NN \epTeXversion \ptex_epTeXversion:D - \__kernel_primitive:NN \euc \ptex_euc:D - \__kernel_primitive:NN \ifdbox \ptex_ifdbox:D - \__kernel_primitive:NN \ifddir \ptex_ifddir:D - \__kernel_primitive:NN \ifmdir \ptex_ifmdir:D - \__kernel_primitive:NN \iftbox \ptex_iftbox:D - \__kernel_primitive:NN \iftdir \ptex_iftdir:D - \__kernel_primitive:NN \ifybox \ptex_ifybox:D - \__kernel_primitive:NN \ifydir \ptex_ifydir:D - \__kernel_primitive:NN \inhibitglue \ptex_inhibitglue:D - \__kernel_primitive:NN \inhibitxspcode \ptex_inhibitxspcode:D - \__kernel_primitive:NN \jcharwidowpenalty \ptex_jcharwidowpenalty:D - \__kernel_primitive:NN \jfam \ptex_jfam:D - \__kernel_primitive:NN \jfont \ptex_jfont:D - \__kernel_primitive:NN \jis \ptex_jis:D - \__kernel_primitive:NN \kanjiskip \ptex_kanjiskip:D - \__kernel_primitive:NN \kansuji \ptex_kansuji:D - \__kernel_primitive:NN \kansujichar \ptex_kansujichar:D - \__kernel_primitive:NN \kcatcode \ptex_kcatcode:D - \__kernel_primitive:NN \kuten \ptex_kuten:D - \__kernel_primitive:NN \noautospacing \ptex_noautospacing:D - \__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 - \__kernel_primitive:NN \tate \ptex_tate:D - \__kernel_primitive:NN \tbaselineshift \ptex_tbaselineshift:D - \__kernel_primitive:NN \tfont \ptex_tfont:D - \__kernel_primitive:NN \xkanjiskip \ptex_xkanjiskip:D - \__kernel_primitive:NN \xspcode \ptex_xspcode:D - \__kernel_primitive:NN \ybaselineshift \ptex_ybaselineshift:D - \__kernel_primitive:NN \yoko \ptex_yoko:D - \__kernel_primitive:NN \disablecjktoken \uptex_disablecjktoken:D - \__kernel_primitive:NN \enablecjktoken \uptex_enablecjktoken:D - \__kernel_primitive:NN \forcecjktoken \uptex_forcecjktoken:D - \__kernel_primitive:NN \kchar \uptex_kchar:D - \__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 %% File: l3basics.dtx \tex_let:D \if_true: \tex_iftrue:D \tex_let:D \if_false: \tex_iffalse:D @@ -4601,6 +3970,21 @@ } \prg_generate_conditional_variant:Nnn \tl_if_eq:NN { Nc , c , cc } { p , TF , T , F } +\tl_new:N \l__tl_internal_a_tl +\tl_new:N \l__tl_internal_b_tl +\prg_new_protected_conditional:Npnn \tl_if_eq:Nn #1#2 { T , F , TF } + { + \group_begin: + \tl_set:Nn \l__tl_internal_b_tl {#2} + \exp_after:wN + \group_end: + \if_meaning:w #1 \l__tl_internal_b_tl + \prg_return_true: + \else: + \prg_return_false: + \fi: + } +\prg_generate_conditional_variant:Nnn \tl_if_eq:Nn { c } { TF , T , F } \prg_new_protected_conditional:Npnn \tl_if_eq:nn #1#2 { T , F , TF } { \group_begin: @@ -4614,8 +3998,6 @@ \prg_return_false: \fi: } -\tl_new:N \l__tl_internal_a_tl -\tl_new:N \l__tl_internal_b_tl \cs_new_protected:Npn \tl_if_in:NnT { \exp_args:No \tl_if_in:nnT } \cs_new_protected:Npn \tl_if_in:NnF { \exp_args:No \tl_if_in:nnF } \cs_new_protected:Npn \tl_if_in:NnTF { \exp_args:No \tl_if_in:nnTF } @@ -6443,6 +5825,26 @@ \exp_after:wN #1 \int_value:w \int_eval:w 1 + #2 ; } +\cs_new_protected:Npn \seq_set_map_x:NNn + { \__seq_set_map_x:NNNn \tl_set:Nx } +\cs_new_protected:Npn \seq_gset_map_x:NNn + { \__seq_set_map_x:NNNn \tl_gset:Nx } +\cs_new_protected:Npn \__seq_set_map_x:NNNn #1#2#3#4 + { + \__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} } + #1 #2 { #3 } + \__seq_pop_item_def: + } +\cs_new_protected:Npn \seq_set_map:NNn + { \__seq_set_map:NNNn \tl_set:Nx } +\cs_new_protected:Npn \seq_gset_map:NNn + { \__seq_set_map:NNNn \tl_gset:Nx } +\cs_new_protected:Npn \__seq_set_map:NNNn #1#2#3#4 + { + \__seq_push_item_def:n { \exp_not:n { \__seq_item:n {#4} } } + #1 #2 { #3 } + \__seq_pop_item_def: + } \cs_new:Npn \seq_count:N #1 { \int_eval:n @@ -9716,8 +9118,8 @@ { \tl_set:Nn #3 {##2} } { \tl_set:Nn #3 { \q_no_value } } } -\cs_generate_variant:Nn \prop_get:NnN { NV , No } -\cs_generate_variant:Nn \prop_get:NnN { c , cV , co } +\cs_generate_variant:Nn \prop_get:NnN { NV , Nv , No } +\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co } \cs_new_protected:Npn \prop_pop:NnN #1#2#3 { \__prop_split:NnTF #1 {#2} @@ -9799,13 +9201,13 @@ { #1 #2 { \exp_not:o {#2} \l__prop_internal_tl } } } \cs_generate_variant:Nn \prop_put:Nnn - { NnV , Nno , Nnx , NV , NVV , No , Noo } + { NnV , Nno , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx } \cs_generate_variant:Nn \prop_put:Nnn - { c , cnV , cno , cnx , cV , cVV , co , coo } + { c , cnV , cno , cnx , cV , cVV , cVx , cvx , co , coo , cxx } \cs_generate_variant:Nn \prop_gput:Nnn - { NnV , Nno , Nnx , NV , NVV , No , Noo } + { NnV , Nno , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx } \cs_generate_variant:Nn \prop_gput:Nnn - { c , cnV , cno , cnx , cV , cVV , co , coo } + { c , cnV , cno , cnx , cV , cVV , cVx , cvx , co , coo , cxx } \cs_new_protected:Npn \prop_put_if_new:Nnn { \__prop_put_if_new:NNnn \tl_set:Nx } \cs_new_protected:Npn \prop_gput_if_new:Nnn @@ -9868,7 +9270,7 @@ { \prg_return_false: } } \prg_generate_conditional_variant:Nnn \prop_get:NnN - { NV , No , c , cV , co } { T , F , TF } + { NV , Nv , No , c , cV , cv , co } { T , F , TF } \cs_new:Npn \prop_map_function:NN #1#2 { \exp_after:wN \use_i_ii:nnn @@ -10272,6 +9674,12 @@ { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} } { } { } \iow_log:n } + \__msg_class_new:nn { term } + { + \iow_wrap:nnnN + { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} } + { } { } \iow_term:n + } \__msg_class_new:nn { none } { } \__msg_class_new:nn { show } { @@ -11736,24 +11144,24 @@ \tl_if_blank:eTF { \__file_size:n {#1} } { \seq_map_tokens:Nn \l_file_search_path_seq - { \__file_full_name_aux:nn {#1} } + { \__file_full_name_aux:Nnn \seq_map_break:n {#1} } \cs_if_exist:NT \input@path { \tl_map_tokens:Nn \input@path - { \__file_full_name_aux:nn {#1} } + { \__file_full_name_aux:Nnn \tl_map_break:n {#1} } } \__file_name_end: } { \__file_ext_check:n {#1} } } } -\cs_new:Npn \__file_full_name_aux:nn #1#2 - { \exp_args:Ne \__file_full_name_aux:n { \tl_to_str:n {#2} / #1 } } -\cs_new:Npn \__file_full_name_aux:n #1 +\cs_new:Npn \__file_full_name_aux:Nnn #1#2#3 + { \exp_args:Ne \__file_full_name_aux:nN { \tl_to_str:n {#3} / #2 } #1 } +\cs_new:Npn \__file_full_name_aux:nN #1 #2 { \tl_if_blank:eF { \__file_size:n {#1} } { - \seq_map_break:n + #2 { \__file_ext_check:n {#1} \__file_name_cleanup:w @@ -12194,46 +11602,63 @@ \str_gset:Nn \g_file_curr_name_str {#2} \str_gset:Nn \g_file_curr_ext_str {#3} } -\cs_new_protected:Npn \file_parse_full_name:nNNN #1#2#3#4 +\cs_new:Npn \file_parse_full_name:n #1 + { + \file_parse_full_name_apply:nN {#1} + \prg_do_nothing: + } +\cs_new:Npn \file_parse_full_name_apply:nN #1 { - \exp_after:wN \__file_parse_full_name_auxi:w - \tl_to_str:n { #1 " #1 " } \s__file_stop #2#3#4 + \exp_args:Ne \__file_parse_full_name_auxi:nN + { \__kernel_file_name_sanitize:n {#1} } } -\cs_generate_variant:Nn \file_parse_full_name:nNNN { V } -\cs_new_protected:Npn \__file_parse_full_name_auxi:w - #1 " #2 " #3 \s__file_stop #4#5#6 +\cs_new:Npn \__file_parse_full_name_auxi:nN #1 { - \__file_parse_full_name_split:nNNNTF {#2} / #4 #5 - { \str_if_empty:NT #4 { \str_set:Nn #4 { / } } } - { } - \exp_args:No \__file_parse_full_name_split:nNNNTF {#5} . #5 #6 - { \str_put_left:Nn #6 { . } } - { - \str_set_eq:NN #5 #6 - \str_clear:N #6 - } + \__file_parse_full_name_area:nw { } #1 + / \s__file_stop + } +\cs_new:Npn \__file_parse_full_name_area:nw #1 #2 / #3 \s__file_stop + { + \tl_if_empty:nTF {#3} + { \__file_parse_full_name_base:nw { } #2 . \s__file_stop {#1} } + { \__file_parse_full_name_area:nw { #1 / #2 } #3 \s__file_stop } } -\cs_new_protected:Npn \__file_parse_full_name_split:nNNNTF #1#2#3#4 +\cs_new:Npn \__file_parse_full_name_base:nw #1 #2 . #3 \s__file_stop { - \cs_set_protected:Npn \__file_tmp:w ##1 ##2 #2 ##3 \s__file_stop + \tl_if_empty:nTF {#3} { - \tl_if_empty:nTF {##3} + \tl_if_empty:nTF {#1} { - \str_set:Nn #4 {##2} - \tl_if_empty:nTF {##1} - { - \str_clear:N #3 - \use_ii:nn - } - { - \str_set:Nx #3 { \str_tail:n {##1} } - \use_i:nn - } + \tl_if_empty:nTF {#2} + { \__file_parse_full_name_tidy:nnnN { } { } } + { \__file_parse_full_name_tidy:nnnN { .#2 } { } } } - { \__file_tmp:w { ##1 #2 ##2 } ##3 \s__file_stop } + { \__file_parse_full_name_tidy:nnnN {#1} { .#2 } } + } + { \__file_parse_full_name_base:nw { #1 . #2 } #3 \s__file_stop } + } +\cs_new:Npn \__file_parse_full_name_tidy:nnnN #1 #2 #3 #4 + { + \exp_args:Nee #4 + { + \str_if_eq:nnF {#3} { / } { \use_none:n } + #3 \prg_do_nothing: } - \__file_tmp:w { } #1 #2 \s__file_stop + { \use_none:n #1 \prg_do_nothing: } + {#2} + } +\cs_new_protected:Npn \file_parse_full_name:nNNN #1 #2 #3 #4 + { + \file_parse_full_name_apply:nN {#1} + \__file_full_name_assign:nnnNNN #2 #3 #4 } +\cs_new_protected:Npn \__file_full_name_assign:nnnNNN #1 #2 #3 #4 #5 #6 + { + \str_set:Nn #4 {#1} + \str_set:Nn #5 {#2} + \str_set:Nn #6 {#3} + } +\cs_generate_variant:Nn \file_parse_full_name:nNNN { V } \cs_new_protected:Npn \file_show_list: { \__file_list:N \msg_show:nnxxxx } \cs_new_protected:Npn \file_log_list: { \__file_list:N \msg_log:nnxxxx } \cs_new_protected:Npn \__file_list:N #1 @@ -14126,24 +13551,23 @@ \cs_generate_variant:Nn \intarray_count:N { c } \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 +\cs_new:Npn \__intarray_bounds:NNnTF #1#2#3 { \if_int_compare:w 1 > #3 \exp_stop_f: - \__intarray_bounds_error:NNn #1 #2 {#3} - #5 + \__intarray_bounds_error:NNnw #1 #2 {#3} \else: \if_int_compare:w #3 > \intarray_count:N #2 \exp_stop_f: - \__intarray_bounds_error:NNn #1 #2 {#3} - #5 - \else: - #4 + \__intarray_bounds_error:NNnw #1 #2 {#3} \fi: \fi: + \use_i:nn } -\cs_new:Npn \__intarray_bounds_error:NNn #1#2#3 +\cs_new:Npn \__intarray_bounds_error:NNnw #1#2#3#4 \use_i:nn #5#6 { + #4 #1 { kernel } { out-of-bounds } { \token_to_str:N #2 } {#3} { \intarray_count:N #2 } + #6 } \cs_new_protected:Npn \__kernel_intarray_gset:Nnn #1#2#3 { \__intarray_entry:w #2 #1 #3 \c__intarray_sp_dim } @@ -15749,22 +15173,23 @@ \cs_new:Npn \__fp_parse_exponent:N #1 { \if:w e \if:w E \exp_not:N #1 e \else: \exp_not:N #1 \fi: - \exp_after:wN \__fp_parse_exponent_aux:N + \exp_after:wN \__fp_parse_exponent_aux:NN + \exp_after:wN #1 \exp:w \else: 0 \__fp_parse_return_semicolon:w #1 \fi: \__fp_parse_expand:w } -\cs_new:Npn \__fp_parse_exponent_aux:N #1 +\cs_new:Npn \__fp_parse_exponent_aux:NN #1#2 { - \if_int_compare:w \if_catcode:w \scan_stop: \exp_not:N #1 - 0 \else: `#1 \fi: > `9 \exp_stop_f: - 0 \exp_after:wN ; \exp_after:wN e + \if_int_compare:w \if_catcode:w \scan_stop: \exp_not:N #2 + 0 \else: `#2 \fi: > `9 \exp_stop_f: + 0 \exp_after:wN ; \exp_after:wN #1 \else: \exp_after:wN \__fp_parse_exponent_sign:N \fi: - #1 + #2 } \cs_new:Npn \__fp_parse_exponent_sign:N #1 { @@ -20684,6 +20109,361 @@ } \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: l3cctab.dtx +\seq_new:N \g__cctab_stack_seq +\seq_new:N \g__cctab_unused_seq +\seq_new:N \g__cctab_group_seq +\int_new:N \g__cctab_allocate_int +\tl_new:N \l__cctab_internal_a_tl +\tl_new:N \l__cctab_internal_b_tl +\prop_new:N \g__cctab_endlinechar_prop +\sys_if_engine_luatex:TF + { + \cs_new_protected:Npn \cctab_new:N #1 + { + \__kernel_chk_if_free_cs:N #1 + \__cctab_new:N #1 + } + \cs_new_eq:NN \__cctab_new:N \newcatcodetable + } + { + \cs_new_protected:Npn \__cctab_new:N #1 + { \intarray_new:Nn #1 { 257 } } + \cs_new_protected:Npn \__cctab_gstore:Nnn #1#2#3 + { \intarray_gset:Nnn #1 { \int_eval:n { #2 + 1 } } {#3} } + \cs_new_protected:Npn \cctab_new:N #1 + { + \__kernel_chk_if_free_cs:N #1 + \__cctab_new:N #1 + \int_step_inline:nn { 256 } + { \__kernel_intarray_gset:Nnn #1 {##1} { 12 } } + \__kernel_intarray_gset:Nnn #1 { 257 } { 13 } + \__cctab_gstore:Nnn #1 { 0 } { 9 } + \__cctab_gstore:Nnn #1 { 13 } { 5 } + \__cctab_gstore:Nnn #1 { 32 } { 10 } + \__cctab_gstore:Nnn #1 { 37 } { 14 } + \int_step_inline:nnn { 65 } { 90 } + { \__cctab_gstore:Nnn #1 {##1} { 11 } } + \__cctab_gstore:Nnn #1 { 92 } { 0 } + \int_step_inline:nnn { 97 } { 122 } + { \__cctab_gstore:Nnn #1 {##1} { 11 } } + \__cctab_gstore:Nnn #1 { 127 } { 15 } + } + } +\cs_generate_variant:Nn \cctab_new:N { c } +\sys_if_engine_luatex:TF + { + \cs_new_protected:Npn \__cctab_gset:n #1 + { \exp_args:Nf \__cctab_gset_aux:n { \int_eval:n {#1} } } + \cs_new_protected:Npn \__cctab_gset_aux:n #1 + { + \tex_savecatcodetable:D #1 \scan_stop: + \int_compare:nNnTF { \tex_endlinechar:D } = { 13 } + { \prop_gremove:Nn \g__cctab_endlinechar_prop {#1} } + { + \prop_gput:NnV \g__cctab_endlinechar_prop {#1} + \tex_endlinechar:D + } + } + } + { + \cs_new_protected:Npn \__cctab_gset:n #1 + { + \int_step_inline:nn { 256 } + { + \__kernel_intarray_gset:Nnn #1 {##1} + { \char_value_catcode:n { ##1 - 1 } } + } + \__kernel_intarray_gset:Nnn #1 { 257 } + { \tex_endlinechar:D } + } + } +\cs_new_protected:Npn \cctab_gset:Nn #1#2 + { + \__cctab_chk_if_valid:NT #1 + { + \group_begin: + \cctab_select:N \c_initex_cctab + #2 \scan_stop: + \__cctab_gset:n {#1} + \group_end: + } + } +\cs_generate_variant:Nn \cctab_gset:Nn { c } +\sys_if_engine_luatex:T + { + \__cctab_new:N \g__cctab_internal_cctab + \cs_new:Npn \__cctab_internal_cctab_name: + { + g__cctab_internal + \tex_romannumeral:D \tex_currentgrouplevel:D + _cctab + } + } +\cs_new_protected:Npn \cctab_select:N #1 + { \__cctab_chk_if_valid:NT #1 { \__cctab_select:N #1 } } +\cs_generate_variant:Nn \cctab_select:N { c } +\sys_if_engine_luatex:TF + { + \cs_new_protected:Npn \__cctab_select:N #1 + { + \tex_catcodetable:D #1 + \prop_get:NVNTF \g__cctab_endlinechar_prop #1 \l__cctab_internal_a_tl + { \int_set:Nn \tex_endlinechar:D { \l__cctab_internal_a_tl } } + { \int_set:Nn \tex_endlinechar:D { 13 } } + \cs_if_exist:cF { \__cctab_internal_cctab_name: } + { \exp_args:Nc \__cctab_new:N { \__cctab_internal_cctab_name: } } + \exp_args:Nc \tex_savecatcodetable:D { \__cctab_internal_cctab_name: } + \exp_args:Nc \tex_catcodetable:D { \__cctab_internal_cctab_name: } + } + } + { + \cs_new_protected:Npn \__cctab_select:N #1 + { + \int_step_inline:nn { 256 } + { + \char_set_catcode:nn { ##1 - 1 } + { \__kernel_intarray_item:Nn #1 {##1} } + } + \int_set:Nn \tex_endlinechar:D + { \__kernel_intarray_item:Nn #1 { 257 } } + } + } +\sys_if_engine_luatex:TF + { + \cs_new_protected:Npn \__cctab_begin_aux: + { + \__cctab_new:N \g__cctab_next_cctab + \tl_set:NV \l__cctab_internal_a_tl \g__cctab_next_cctab + \cs_undefine:N \g__cctab_next_cctab + } + } + { + \cs_new_protected:Npn \__cctab_begin_aux: + { + \int_gincr:N \g__cctab_allocate_int + \exp_args:Nc \__cctab_new:N + { g__cctab_ \int_use:N \g__cctab_allocate_int _cctab } + \exp_args:NNc \tl_set:Nn \l__cctab_internal_a_tl + { g__cctab_ \int_use:N \g__cctab_allocate_int _cctab } + } + } +\cs_new_protected:Npn \cctab_begin:N #1 + { + \__cctab_chk_if_valid:NT #1 + { + \seq_gpop:NNF \g__cctab_unused_seq \l__cctab_internal_a_tl + { \__cctab_begin_aux: } + \exp_args:Nx \__cctab_chk_group_begin:n + { \__cctab_nesting_number:N \l__cctab_internal_a_tl } + \seq_gpush:NV \g__cctab_stack_seq \l__cctab_internal_a_tl + \exp_args:NV \__cctab_gset:n \l__cctab_internal_a_tl + \__cctab_select:N #1 + } + } +\cs_generate_variant:Nn \cctab_begin:N { c } +\cs_new_protected:Npn \cctab_end: + { + \seq_gpop:NNTF \g__cctab_stack_seq \l__cctab_internal_a_tl + { + \seq_gpush:NV \g__cctab_unused_seq \l__cctab_internal_a_tl + \exp_args:Nx \__cctab_chk_group_end:n + { \__cctab_nesting_number:N \l__cctab_internal_a_tl } + \__cctab_select:N \l__cctab_internal_a_tl + } + { \__kernel_msg_error:nn { kernel } { cctab-extra-end } } + } +\cs_new_protected:Npn \__cctab_chk_group_begin:n #1 + { + \seq_gpush:Nx \g__cctab_group_seq + { \int_use:N \tex_currentgrouplevel:D } + \cs_set_eq:cN { __cctab_group_ #1 _chk: } \prg_do_nothing: + } +\cs_new_protected:Npn \__cctab_chk_group_end:n #1 + { + \seq_gpop:NN \g__cctab_group_seq \l__cctab_internal_b_tl + \bool_lazy_and:nnF + { + \int_compare_p:nNn + { \tex_currentgrouplevel:D } = { \l__cctab_internal_b_tl } + } + { \cs_if_exist_p:c { __cctab_group_ #1 _chk: } } + { + \__kernel_msg_error:nnx { kernel } { cctab-group-mismatch } + { + \int_sign:n + { \tex_currentgrouplevel:D - \l__cctab_internal_b_tl } + } + } + \cs_undefine:c { __cctab_group_ #1 _chk: } + } +\sys_if_engine_luatex:TF + { \cs_new:Npn \__cctab_nesting_number:N #1 {#1} } + { + \cs_new:Npn \__cctab_nesting_number:N #1 + { + \exp_after:wN \exp_after:wN \exp_after:wN \__cctab_nesting_number:w + \exp_after:wN \token_to_str:N #1 + } + \use:x + { + \cs_new:Npn \exp_not:N \__cctab_nesting_number:w + ##1 \tl_to_str:n { g__cctab_ } ##2 \tl_to_str:n { _cctab } {##2} + } + } +\cs_if_exist:NT \hook_gput_code:nnn + { + \hook_gput_code:nnn { enddocument/end } { kernel } + { + \seq_if_empty:NF \g__cctab_stack_seq + { \__kernel_msg_error:nn { kernel } { cctab-missing-end } } + } + } +\prg_new_eq_conditional:NNn \cctab_if_exist:N \cs_if_exist:N + { TF , T , F , p } +\prg_new_eq_conditional:NNn \cctab_if_exist:c \cs_if_exist:c + { TF , T , F , p } +\prg_new_protected_conditional:Npnn \__cctab_chk_if_valid:N #1 + { TF , T , F } + { + \cctab_if_exist:NTF #1 + { + \__cctab_chk_if_valid_aux:NTF #1 + { \prg_return_true: } + { + \__kernel_msg_error:nnx { kernel } { invalid-cctab } + { \token_to_str:N #1 } + \prg_return_false: + } + } + { + \__kernel_msg_error:nnx { kernel } { command-not-defined } + { \token_to_str:N #1 } + \prg_return_false: + } + } +\sys_if_engine_luatex:TF + { + \cs_new_protected:Npn \__cctab_chk_if_valid_aux:NTF #1 + { + \int_compare:nNnTF {#1-1} < { \e@alloc@ccodetable@count } + } + } + { + \cs_new_protected:Npn \__cctab_chk_if_valid_aux:NTF #1 + { + \exp_args:Nf \str_if_in:nnTF + { \cs_meaning:N #1 } + { select~font~cmr10~at~ } + } + } +\cs_new_protected:Npn \cctab_const:Nn #1#2 + { + \cctab_new:N #1 + \cctab_gset:Nn #1 {#2} + } +\cs_generate_variant:Nn \cctab_const:Nn { c } +\cctab_new:N \c_initex_cctab +\cctab_const:Nn \c_other_cctab + { + \cctab_select:N \c_initex_cctab + \int_set:Nn \tex_endlinechar:D { -1 } + \int_step_inline:nnn { 0 } { 127 } + { \char_set_catcode_other:n {#1} } + } +\cctab_const:Nn \c_str_cctab + { + \cctab_select:N \c_other_cctab + \char_set_catcode_space:n { 32 } + } +\cs_if_exist:NTF \@expl@finalise@setup@@ + { \tl_gput_right:Nn \@expl@finalise@setup@@ } + { \use:n } + { + \__cctab_new:N \c_code_cctab + \group_begin: + \int_set:Nn \tex_endlinechar:D { 32 } + \char_set_catcode_invalid:n { 0 } + \bool_lazy_or:nnTF + { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: } + { \int_step_function:nN { 31 } \char_set_catcode_invalid:n } + { \int_step_function:nN { 31 } \char_set_catcode_active:n } + \int_step_function:nnN { 33 } { 64 } \char_set_catcode_other:n + \int_step_function:nnN { 65 } { 90 } \char_set_catcode_letter:n + \int_step_function:nnN { 91 } { 96 } \char_set_catcode_other:n + \int_step_function:nnN { 97 } { 122 } \char_set_catcode_letter:n + \char_set_catcode_ignore:n { 9 } % tab + \char_set_catcode_other:n { 10 } % lf + \char_set_catcode_active:n { 12 } % ff + \char_set_catcode_end_line:n { 13 } % cr + \char_set_catcode_ignore:n { 32 } % space + \char_set_catcode_parameter:n { 35 } % hash + \char_set_catcode_math_toggle:n { 36 } % dollar + \char_set_catcode_comment:n { 37 } % percent + \char_set_catcode_alignment:n { 38 } % ampersand + \char_set_catcode_letter:n { 58 } % colon + \char_set_catcode_escape:n { 92 } % backslash + \char_set_catcode_math_superscript:n { 94 } % circumflex + \char_set_catcode_letter:n { 95 } % underscore + \char_set_catcode_group_begin:n { 123 } % left brace + \char_set_catcode_other:n { 124 } % pipe + \char_set_catcode_group_end:n { 125 } % right brace + \char_set_catcode_space:n { 126 } % tilde + \char_set_catcode_invalid:n { 127 } % ^^? + \__cctab_gset:n { \c_code_cctab } + \group_end: + \cctab_const:Nn \c_document_cctab + { + \cctab_select:N \c_code_cctab + \int_set:Nn \tex_endlinechar:D { 13 } + \char_set_catcode_space:n { 9 } + \char_set_catcode_space:n { 32 } + \char_set_catcode_other:n { 58 } + \char_set_catcode_math_subscript:n { 95 } + \char_set_catcode_active:n { 126 } + } + } +\__kernel_msg_new:nnnn { kernel } { cctab-stack-full } + { The~category~code~table~stack~is~exhausted. } + { + LaTeX~has~been~asked~to~switch~to~a~new~category~code~table,~ + but~there~is~no~more~space~to~do~this! + } +\__kernel_msg_new:nnnn { kernel } { cctab-extra-end } + { Extra~\iow_char:N\\cctab_end:~ignored~\msg_line_context:. } + { + LaTeX~came~across~a~\iow_char:N\\cctab_end:~without~a~matching~ + \iow_char:N\\cctab_begin:N.~This~command~will~be~ignored. + } +\__kernel_msg_new:nnnn { kernel } { cctab-missing-end } + { Missing~\iow_char:N\\cctab_end:~before~end~of~TeX~run. } + { + LaTeX~came~across~more~\iow_char:N\\cctab_begin:N~than~ + \iow_char:N\\cctab_end:. + } +\__kernel_msg_new:nnnn { kernel } { invalid-cctab } + { Invalid~\iow_char:N\\catcode~table. } + { + You~can~only~switch~to~a~\iow_char:N\\catcode~table~that~is~ + initialized~using~\iow_char:N\\cctab_new:N~or~ + \iow_char:N\\cctab_const:Nn. + } +\__kernel_msg_new:nnnn { kernel } { cctab-group-mismatch } + { + \iow_char:N\\cctab_end:~occurred~in~a~ + \int_case:nn {#1} + { + { 0 } { different~group } + { 1 } { higher~group~level } + { -1 } { lower~group~level } + } ~than~ + the~matching~\iow_char:N\\cctab_begin:N. + } + { + Catcode~tables~and~groups~must~be~properly~nested,~but~ + you~tried~to~interleave~them.~LaTeX~will~try~to~proceed,~ + but~results~may~be~unexpected. + } %% File l3sort.dtx \seq_new:N \g__sort_internal_seq \tl_new:N \g__sort_internal_tl @@ -24471,7 +24251,7 @@ \cs_new_protected:Npn \__regex_show_item_exact_cs:n #1 { \seq_set_split:Nnn \l__regex_internal_seq { \scan_stop: } {#1} - \seq_set_map:NNn \l__regex_internal_seq + \seq_set_map_x:NNn \l__regex_internal_seq \l__regex_internal_seq { \iow_char:N\\##1 } \__regex_show_one:n { control~sequence~ \seq_use:Nn \l__regex_internal_seq { ~or~ } } @@ -25626,7 +25406,7 @@ { \flag_height:n { __regex_end } } { \flag_height:n { __regex_begin } } } - \seq_set_map:NNn \l__regex_internal_seq \l__regex_internal_seq {##1} + \seq_set_map_x:NNn \l__regex_internal_seq \l__regex_internal_seq {##1} \exp_args:NNNo \group_end: \tl_set:Nn #1 { \l__regex_internal_seq } @@ -30627,16 +30407,6 @@ #1 #2 { #3 } \__seq_pop_item_def: } -\cs_new_protected:Npn \seq_set_map:NNn - { \__seq_set_map:NNNn \tl_set:Nx } -\cs_new_protected:Npn \seq_gset_map:NNn - { \__seq_set_map:NNNn \tl_gset:Nx } -\cs_new_protected:Npn \__seq_set_map:NNNn #1#2#3#4 - { - \__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} } - #1 #2 { #3 } - \__seq_pop_item_def: - } \cs_new_protected:Npn \seq_set_from_inline_x:Nnn { \__seq_set_from_inline_x:NNnn \tl_set:Nx } \cs_new_protected:Npn \seq_gset_from_inline_x:Nnn @@ -31070,6 +30840,52 @@ { \c_sys_jobname_str } { 2017-01-01 } \__deprecation_old:Nnn \c_minus_one { -1 } { 2019-01-01 } +\__deprecation_old:Nnn \c_zero + { 0 } { 2020-01-01 } +\__deprecation_old:Nnn \c_one + { 1 } { 2020-01-01 } +\__deprecation_old:Nnn \c_two + { 2 } { 2020-01-01 } +\__deprecation_old:Nnn \c_three + { 3 } { 2020-01-01 } +\__deprecation_old:Nnn \c_four + { 4 } { 2020-01-01 } +\__deprecation_old:Nnn \c_five + { 5 } { 2020-01-01 } +\__deprecation_old:Nnn \c_six + { 6 } { 2020-01-01 } +\__deprecation_old:Nnn \c_seven + { 7 } { 2020-01-01 } +\__deprecation_old:Nnn \c_eight + { 8 } { 2020-01-01 } +\__deprecation_old:Nnn \c_nine + { 9 } { 2020-01-01 } +\__deprecation_old:Nnn \c_ten + { 10 } { 2020-01-01 } +\__deprecation_old:Nnn \c_eleven + { 11 } { 2020-01-01 } +\__deprecation_old:Nnn \c_twelve + { 12 } { 2020-01-01 } +\__deprecation_old:Nnn \c_thirteen + { 13 } { 2020-01-01 } +\__deprecation_old:Nnn \c_fourteen + { 14 } { 2020-01-01 } +\__deprecation_old:Nnn \c_fifteen + { 15 } { 2020-01-01 } +\__deprecation_old:Nnn \c_sixteen + { 16 } { 2020-01-01 } +\__deprecation_old:Nnn \c_thirty_two + { 32 } { 2020-01-01 } +\__deprecation_old:Nnn \c_one_hundred + { 100 } { 2020-01-01 } +\__deprecation_old:Nnn \c_two_hundred_fifty_five + { 255 } { 2020-01-01 } +\__deprecation_old:Nnn \c_two_hundred_fifty_six + { 256 } { 2020-01-01 } +\__deprecation_old:Nnn \c_one_thousand + { 1000 } { 2020-01-01 } +\__deprecation_old:Nnn \c_ten_thousand + { 10000 } { 2020-01-01 } \__deprecation_old:Nnn \dim_case:nnn { \dim_case:nnF } { 2015-07-14 } \__deprecation_old:Nnn \file_add_path:nN @@ -31110,6 +30926,12 @@ { \iow_show_list: } { 2019-01-01 } \__deprecation_old:Nnn \iow_log_streams: { \iow_log_list: } { 2019-01-01 } +\__deprecation_old:Nnn \lua_escape_x:n + { \lua_escape:e } { 2020-01-01 } +\__deprecation_old:Nnn \lua_now_x:n + { \lua_now:e } { 2020-01-01 } +\__deprecation_old_protected:Nnn \lua_shipout_x:n + { \lua_shipout_e:n } { 2020-01-01 } \__deprecation_old:Nnn \luatex_if_engine_p: { \sys_if_engine_luatex_p: } { 2017-01-01 } \__deprecation_old:Nnn \luatex_if_engine:F @@ -31118,6 +30940,12 @@ { \sys_if_engine_luatex:T } { 2017-01-01 } \__deprecation_old:Nnn \luatex_if_engine:TF { \sys_if_engine_luatex:TF } { 2017-01-01 } +\__deprecation_old_protected:Nnn \msg_interrupt:nnn + { [Defined~error~message] } { 2020-01-01 } +\__deprecation_old_protected:Nnn \msg_log:n + { \iow_log:n } { 2020-01-01 } +\__deprecation_old_protected:Nnn \msg_term:n + { \iow_term:n } { 2020-01-01 } \__deprecation_old:Nnn \pdftex_if_engine_p: { \sys_if_engine_pdftex_p: } { 2017-01-01 } \__deprecation_old:Nnn \pdftex_if_engine:F @@ -31144,8 +30972,28 @@ { \str_case:nnF } { 2015-07-14 } \__deprecation_old:Nnn \str_case:onn { \str_case:onF } { 2015-07-14 } +\__deprecation_old:Nnn \str_case_x:nn + { \str_case_e:nn } { 2020-01-01 } \__deprecation_old:Nnn \str_case_x:nnn { \str_case_e:nnF } { 2015-07-14 } +\__deprecation_old:Nnn \str_case_x:nnT + { \str_case_e:nnT } { 2020-01-01 } +\__deprecation_old:Nnn \str_case_x:nnTF + { \str_case_e:nnTF } { 2020-01-01 } +\__deprecation_old:Nnn \str_case_x:nnF + { \str_case_e:nnF } { 2020-01-01 } +\__deprecation_old:Nnn \str_if_eq_x_p:nn + { \str_if_eq_p:ee } { 2020-01-01 } +\__deprecation_old:Nnn \str_if_eq_x:nnT + { \str_if_eq:eeT } { 2020-01-01 } +\__deprecation_old:Nnn \str_if_eq_x:nnF + { \str_if_eq:eeF } { 2020-01-01 } +\__deprecation_old:Nnn \str_if_eq_x:nnTF + { \str_if_eq:eeTF } { 2020-01-01 } +\__deprecation_old_protected:Nnn \tl_show_analysis:N + { \tl_analysis_show:N } { 2020-01-01 } +\__deprecation_old_protected:Nnn \tl_show_analysis:n + { \tl_analysis_show:n } { 2020-01-01 } \__deprecation_old:Nnn \tl_case:cnn { \tl_case:cnF } { 2015-07-14 } \__deprecation_old:Nnn \tl_case:Nnn @@ -31164,50 +31012,6 @@ { \sys_if_engine_xetex:T } { 2017-01-01 } \__deprecation_old:Nnn \xetex_if_engine:TF { \sys_if_engine_xetex:TF } { 2017-01-01 } -\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 } - } - } - { 2020-01-01 } - } - \__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 } - { \cs_set_eq:Nc #2 { tex_ \cs_to_str:N #1 :D } } - } - \__kernel_primitives: - } \group_begin: \cs_set_protected:Npn \ProvidesExplFile { diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 52f1e1edb19..fd282142ce5 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-18}% +\def\ExplFileDate{2020-07-17}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index b385a59bd6e..e9c2f3e0dd2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-18}% +\def\ExplFileDate{2020-07-17}% \let\ExplLoaderFileDate\ExplFileDate \everyjob\expandafter{\the\everyjob \message{L3 programming layer <\ExplFileDate>}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 17df13adb3f..d42516b6d24 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-06-18}% +\def\ExplFileDate{2020-07-17}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def index 8f0b6e73e4d..e995f3daa77 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def @@ -497,6 +497,7 @@ \box_gset_eq:NN \box_gset_eq_drop:NN \box_gset_to_last:N + \cctab_gset:Nn \clist_gset_eq:NN \dim_gset_eq:NN \dim_gzero:N @@ -554,6 +555,7 @@ { } { \bool_const:Nn + \cctab_const:Nn \dim_const:Nn \int_const:Nn \intarray_const_from_clist:Nn @@ -578,6 +580,10 @@ { \__kernel_chk_cs_exist:N #1 } { } { \cs_generate_variant:Nn } + \__kernel_patch:nnn + { \__kernel_chk_var_scope:NN g #1 } + { } + { \cctab_new:N } \__kernel_patch:nnn { \__kernel_chk_var_scope:NN g #1 } { } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def index f088cf38802..08dcebb1abf 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def @@ -36,149 +36,6 @@ \cs_gset_protected:Npn \vbox_unpack_clear:N { \vbox_unpack_drop:N } \cs_generate_variant:Nn \vbox_unpack_clear:N { c } -\cs_gset_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 - } -\cs_set_protected:Npn \__int_deprecated_constants:Nn #1#2 - { - \cs_if_free:NT #1 - { \int_const:Nn #1 {#2} } - } -\__int_deprecated_constants:nn { \__int_deprecated_constants:Nn } { } -\__kernel_deprecation_code:nn - { - \__int_deprecated_constants:nn - { \exp_after:wN \__kernel_deprecation_error:Nnn \exp_not:N } - { { 2020-01-01 } } - } - { - \__int_deprecated_constants:nn - { - \exp_after:wN \use:nnn - \exp_after:wN \__int_constdef:Nw \exp_not:N - } - { \exp_stop_f: } - } -\cs_gset_eq:NN \__int_value:w \int_value:w -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \lua_now:e } -\cs_gset:Npn \lua_now_x:n #1 { \__lua_now:n {#1} } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \lua_escape:e } -\cs_gset:Npn \lua_escape_x:n #1 { \__lua_escape:n {#1} } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \lua_shipout_e:n } -\cs_gset_protected:Npn \lua_shipout_x:n #1 { \__lua_shipout:n {#1} } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \iow_log:n } -\cs_gset_protected:Npn \msg_log:n #1 - { - \iow_log:n { ................................................. } - \iow_wrap:nnnN { . ~ #1} { . ~ } { } \iow_log:n - \iow_log:n { ................................................. } - } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \iow_term:n } -\cs_gset_protected:Npn \msg_term:n #1 - { - \iow_term:n { ************************************************* } - \iow_wrap:nnnN { * ~ #1} { * ~ } { } \iow_term:n - \iow_term:n { ************************************************* } - } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { [Defined~error~message] } -\cs_gset_protected:Npn \msg_interrupt:nnn #1#2#3 - { - \tl_if_empty:nTF {#3} - { - \__msg_old_interrupt_wrap:nn { \\ \c__msg_no_info_text_tl } - {#1 \\\\ #2 \\\\ \c__msg_continue_text_tl } - } - { - \__msg_old_interrupt_wrap:nn { \\ #3 } - {#1 \\\\ #2 \\\\ \c__msg_help_text_tl } - } - } -\cs_gset_protected:Npn \__msg_old_interrupt_wrap:nn #1#2 - { - \iow_wrap:nnnN {#1} { | ~ } { } \__msg_old_interrupt_more_text:n - \iow_wrap:nnnN {#2} { ! ~ } { } \__msg_old_interrupt_text:n - } -\cs_gset_protected:Npn \__msg_old_interrupt_more_text:n #1 - { - \exp_args:Nx \tex_errhelp:D - { - |''''''''''''''''''''''''''''''''''''''''''''''' - #1 \iow_newline: - |............................................... - } - } -\group_begin: - \char_set_lccode:nn {`\{} {`\ } - \char_set_lccode:nn {`\}} {`\ } - \char_set_lccode:nn {`\&} {`\!} - \char_set_catcode_active:N \& -\tex_lowercase:D - { - \group_end: - \cs_gset_protected:Npn \__msg_old_interrupt_text:n #1 - { - \iow_term:x - { - \iow_newline: - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - \iow_newline: - ! - } - \__kernel_iow_with:Nnn \tex_newlinechar:D { `\^^J } - { - \__kernel_iow_with:Nnn \tex_errorcontextlines:D { -1 } - { - \group_begin: - \cs_set_protected:Npn & - { - \tex_errmessage:D - { - #1 - \use_none:n - { ............................................ } - } - } - \exp_after:wN - \group_end: - & - } - } - } - } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \prg_break_point:Nn } -\cs_gset:Npn \__prg_break_point:Nn { \prg_break_point:Nn } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \prg_break_point: } -\cs_gset:Npn \__prg_break_point: { \prg_break_point: } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \prg_map_break:Nn } -\cs_gset:Npn \__prg_map_break:Nn #1 \__prg_break_point:Nn - { \prg_map_break:Nn #1 \prg_break_point:Nn } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \prg_break: } -\cs_gset:Npn \__prg_break: #1 \__prg_break_point: { } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \prg_break:n } -\cs_gset:Npn \__prg_break:n #1#2 \__prg_break_point: {#1} \__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_lowercase:n } \cs_gset:Npn \str_lower_case:n { \str_lowercase:n } \__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_lowercase:f } @@ -191,22 +48,6 @@ \cs_gset:Npn \str_fold_case:n { \str_foldcase:n } \__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_foldcase:V } \cs_gset:Npn \str_fold_case:V { \str_foldcase:V } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_case_e:nn } -\cs_gset:Npn \str_case_x:nn { \str_case_e:nn } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_case_e:nnT } -\cs_gset:Npn \str_case_x:nnT { \str_case_e:nnT } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_case_e:nnF } -\cs_gset:Npn \str_case_x:nnF { \str_case_e:nnF } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_case_e:nnTF } -\cs_gset:Npn \str_case_x:nnTF { \str_case_e:nnTF } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_if_eq_p:ee } -\cs_gset:Npn \str_if_eq_x_p:nn { \str_if_eq_p:ee } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_if_eq:eeT } -\cs_gset:Npn \str_if_eq_x:nnT { \str_if_eq:eeT } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_if_eq:eeF } -\cs_gset:Npn \str_if_eq_x:nnF { \str_if_eq:eeF } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_if_eq:eeTF } -\cs_gset:Npn \str_if_eq_x:nnTF { \str_if_eq:eeTF } \__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_inline:Nn } \cs_gset:Npn \seq_indexed_map_inline:Nn { \seq_map_indexed_inline:Nn } \__kernel_patch_deprecation:nnNNpn { 2022-07-01 } { \seq_map_indexed_function:NN } @@ -263,10 +104,6 @@ \__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \text_titlecase:nn } \cs_gset:Npn \tl_mixed_case:nn #1#2 { \text_titlecase:nn {#1} {#2} } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \tl_analysis_show:N } -\cs_gset_protected:Npn \tl_show_analysis:N { \tl_analysis_show:N } -\__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \tl_analysis_show:n } -\cs_gset_protected:Npn \tl_show_analysis:n { \tl_analysis_show:n } \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \cs_prefix_spec:N } \cs_gset:Npn \token_get_prefix_spec:N { \cs_prefix_spec:N } \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \cs_argument_spec:N } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 5ffd3862e04..72fbed613d1 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -1618,7 +1618,7 @@ { \seq_set_map:NNn \l__codedoc_tmpa_seq \g__codedoc_nested_names_seq - { \exp_not:n { \__codedoc_macro_end_wrap_item:n {##1} } } + { \__codedoc_macro_end_wrap_item:n {##1} } End~ definition~ for~ \int_compare:nTF { \seq_count:N \l__codedoc_tmpa_seq <= 3 } { -- cgit v1.2.3