summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-09-02 21:38:04 +0000
committerKarl Berry <karl@freefriends.org>2020-09-02 21:38:04 +0000
commitc4ee329d9de36c54e6715838a7617a385228e519 (patch)
tree425aed8cb12860211598c572beea774479d8b351 /Master/texmf-dist/tex/latex/l3kernel
parentd59eb254bbc4402d6e35a1e112e652643512faa3 (diff)
l3 (2sep20)
git-svn-id: svn://tug.org/texlive/trunk@56245 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex328
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.ltx40
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty37
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def3
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls9
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def2
21 files changed, 277 insertions, 172 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 007e6bbfaad..34bc67fffcd 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -69,7 +69,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2020-08-07}%
+\def\ExplFileDate{2020-09-01}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -2453,6 +2453,13 @@
\exp_after:wN #3
\exp_after:wN { \exp:w \__exp_eval_register:N #4 }
}
+\cs_new:Npn \exp_args:NNNv #1#2#3#4
+ {
+ \exp_after:wN #1
+ \exp_after:wN #2
+ \exp_after:wN #3
+ \exp_after:wN { \exp:w \__exp_eval_register:c {#4} }
+ }
\cs_new:Npn \exp_args:NcNc #1#2#3#4
{
\exp_after:wN #1
@@ -7160,6 +7167,55 @@
\__sys_const:nn { sys_if_engine_ #1 }
{ \str_if_eq_p:Vn \c_sys_engine_str {#1} }
}
+\str_const:Nx \c_sys_engine_exec_str
+ {
+ \sys_if_engine_pdftex:T { pdf }
+ \sys_if_engine_xetex:T { xe }
+ \sys_if_engine_ptex:T { ep }
+ \sys_if_engine_uptex:T { eup }
+ \sys_if_engine_luatex:T
+ {
+ lua \lua_now:e
+ {
+ if (pcall(require, 'luaharfbuzz')) then ~
+ tex.print("hb") ~
+ end
+ }
+ }
+ tex
+ }
+\str_const:Nx \c_sys_engine_format_str
+ {
+ \cs_if_exist:NTF \fmtname
+ {
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:Vn \fmtname { plain } }
+ { \str_if_eq_p:Vn \fmtname { LaTeX2e } }
+ {
+ \sys_if_engine_pdftex:T
+ { \int_compare:nNnT { \tex_pdfoutput:D } = { 1 } { pdf } }
+ \sys_if_engine_xetex:T { xe }
+ \sys_if_engine_ptex:T { p }
+ \sys_if_engine_uptex:T { up }
+ \sys_if_engine_luatex:T
+ {
+ \int_compare:nNnT { \tex_pdfoutput:D } = { 0 } { dvi }
+ lua
+ }
+ \str_if_eq:VnTF \fmtname { LaTeX2e }
+ { latex }
+ {
+ \bool_lazy_and:nnT
+ { \sys_if_engine_pdftex_p: }
+ { \int_compare_p:nNn { \tex_pdfoutput:D } = { 0 } }
+ { e }
+ tex
+ }
+ }
+ { \fmtname }
+ }
+ { unknown }
+ }
\__sys_const:nn { sys_if_rand_exist }
{ \cs_if_exist_p:N \tex_uniformdeviate:D }
\cs_new_protected:Npn \sys_load_backend:n #1
@@ -7186,22 +7242,35 @@
\str_case:VnF #1
{
{ dvisvgm } { }
- { xdvipdfmx } { }
+ { xdvipdfmx } { \tl_gset:Nn #1 { xetex } }
+ { xetex } { }
}
{
\__kernel_msg_error:nnxx { sys } { wrong-backend }
- #1 { xdvipdfmx }
- \tl_gset:Nn #1 { xdvipdfmx }
+ #1 { xetex }
+ \tl_gset:Nn #1 { xetex }
}
}
{
\sys_if_output_pdf:TF
{
- \str_if_eq:VnF #1 { pdfmode }
+ \str_if_eq:VnTF #1 { pdfmode }
{
- \__kernel_msg_error:nnxx { sys } { wrong-backend }
- #1 { pdfmode }
- \tl_gset:Nn #1 { pdfmode }
+ \sys_if_engine_luatex:TF
+ { \tl_gset:Nn #1 { luatex } }
+ { \tl_gset:Nn #1 { pdftex } }
+ }
+ {
+ \bool_lazy_or:nnF
+ { \str_if_eq_p:Vn #1 { luatex } }
+ { \str_if_eq_p:Vn #1 { pdftex } }
+ {
+ \__kernel_msg_error:nnxx { sys } { wrong-backend }
+ #1 { \sys_if_engine_luatex:TF { luatex } { pdftex } }
+ \sys_if_engine_luatex:TF
+ { \tl_gset:Nn #1 { luatex } }
+ { \tl_gset:Nn #1 { pdftex } }
+ }
}
}
{
@@ -11280,10 +11349,7 @@
\__kernel_ior_open:No \g__file_internal_ior \l__file_full_name_tl
\ior_if_eof:NF \g__file_internal_ior { #2 { \prg_break: } }
}
-\bool_lazy_or:nnF
- { \cs_if_exist_p:N \tex_filesize:D }
- { \sys_if_engine_luatex_p: }
- { \ior_new:N \g__file_internal_ior }
+\ior_new:N \g__file_internal_ior
\cs_new:Npn \file_mdfive_hash:n #1
{ \__file_details:nn {#1} { mdfivesum } }
\cs_new:Npn \file_size:n #1
@@ -11521,7 +11587,7 @@
}
}
{ \cs_new_eq:NN \__file_timestamp:n \tex_filemoddate:D }
-\cs_if_exist:NF \tex_filemoddate:D
+\cs_if_exist:NF \__file_timestamp:n
{
\prg_set_conditional:Npnn \file_compare_timestamp:nNn #1#2#3
{ p , T , F , TF }
@@ -11724,6 +11790,78 @@
}
\cs_new_protected:Npn \__file_id_info_auxiii:w #1 - #2 - #3 - #4 \s__file_stop
{ \tl_set:Nn \ExplFileDate { #1/#2/#3 } }
+\cs_new_protected:Npn \__kernel_dependency_version_check:Nn #1
+ { \exp_args:NV \__kernel_dependency_version_check:nn #1 }
+\cs_new_protected:Npn \__kernel_dependency_version_check:nn #1
+ {
+ \cs_if_exist:NTF \c__kernel_expl_date_tl
+ {
+ \exp_args:NV \__file_kernel_dependency_compare:nnn
+ \c__kernel_expl_date_tl {#1}
+ }
+ { \__file_kernel_dependency_compare:nnn { 0000-00-00 } {#1} }
+ }
+\cs_new_protected:Npn \__file_kernel_dependency_compare:nnn #1 #2 #3
+ {
+ \int_compare:nNnT
+ { \__file_parse_version:w #1 \s__file_stop } <
+ { \__file_parse_version:w #2 \s__file_stop }
+ { \__file_mismatched_dependency_error:nn {#2} {#3} }
+ }
+\cs_new:Npn \__file_parse_version:w #1 - #2 - #3 \s__file_stop {#1#2#3}
+\cs_new_protected:Npn \__file_mismatched_dependency_error:nn #1 #2
+ {
+ \exp_args:NNx \ior_shell_open:Nn \g__file_internal_ior
+ {
+ kpsewhich ~ --all ~
+ --engine = \c_sys_engine_exec_str
+ \c_space_tl \c_sys_engine_format_str
+ \tl_if_empty:NF \development@branch@name { -dev } .fmt
+ }
+ \seq_clear:N \l__file_tmp_seq
+ \ior_map_inline:Nn \g__file_internal_ior
+ { \seq_put_right:Nn \l__file_tmp_seq {##1} }
+ \ior_close:N \g__file_internal_ior
+ \group_begin:
+ \cs_set:Npn \\ { \MessageBreak }
+ \cs_set_eq:NN \ \c_space_tl
+ \@latex@error
+ {
+ Mismatched~LaTeX~support~files~detected. \\
+ Loading~'#2'~aborted!
+ \tl_if_exist:NT \c__kernel_expl_date_tl
+ {
+ \\ \\
+ The~L3~programming~layer~in~the~LaTeX~format \\
+ is~dated~\c__kernel_expl_date_tl,~but~in~your~TeX~
+ tree~the~files~require \\ at~least~#1.
+ }
+ \use_none:n
+ }
+ {
+ \int_compare:nNnTF { \seq_count:N \l__file_tmp_seq } > 1
+ {
+ The~cause~seems~to~be~an~old~format~file~in~the~user~tree. \\
+ LaTeX~found~these~files:
+ \seq_map_tokens:Nn \l__file_tmp_seq { \\~-~\use:n } \\
+ Try~deleting~the~file~in~the~user~tree~then~run~LaTeX~again.
+ }
+ {
+ The~most~likely~causes~are:
+ \\~-~A~recent~format~generation~failed;
+ \\~-~A~stray~format~file~in~the~user~tree~which~needs~
+ to~be~removed~or~rebuilt;
+ \\~-~You~are~running~a~manually~installed~version~of~#2 \\
+ \ \ \ which~is~incompatible~with~the~version~in~LaTeX. \\
+ }
+ \\
+ LaTeX~will~abort~loading~the~incompatible~support~files~
+ but~this~may~lead~to \\ later~errors.~Please~ensure~that~
+ your~LaTeX~format~is~correctly~regenerated.
+ }
+ \group_end:
+ \tex_endinput:D
+ }
\__kernel_msg_new:nnnn { kernel } { file-not-found }
{ File~'#1'~not~found. }
{
@@ -20894,7 +21032,6 @@
%% File: l3str-convert.dtx
\cs_new_protected:Npn \__str_tmp:w { }
\tl_new:N \l__str_internal_tl
-\int_new:N \l__str_internal_int
\tl_new:N \g__str_result_tl
\int_const:Nn \c__str_replacement_char_int { "FFFD }
\int_const:Nn \c__str_max_byte_int { 255 }
@@ -21294,106 +21431,109 @@
\tl_gset:Nx \g__str_result_tl { \tl_tail:N \g__str_result_tl }
}
\cs_new:Npn \__str_encode_clist_char:n #1 { , #1 }
-\cs_new_protected:Npn \str_declare_eight_bit_encoding:nnn #1#2#3
+\cs_new_protected:Npn \__str_declare_eight_bit_encoding:nnnn #1
{
\tl_set:Nn \l__str_internal_tl {#1}
\cs_new_protected:cpn { __str_convert_decode_#1: }
{ \__str_convert_decode_eight_bit:n {#1} }
\cs_new_protected:cpn { __str_convert_encode_#1: }
{ \__str_convert_encode_eight_bit:n {#1} }
- \tl_const:cn { c__str_encoding_#1_tl } {#2}
- \tl_const:cn { c__str_encoding_#1_missing_tl } {#3}
+ \exp_args:Ncc \__str_declare_eight_bit_aux:NNnnn
+ { g__str_decode_#1_intarray } { g__str_encode_#1_intarray }
}
-\cs_new_protected:Npn \__str_convert_decode_eight_bit:n #1
+\cs_new_protected:Npn \__str_declare_eight_bit_aux:NNnnn #1#2#3#4#5
{
- \group_begin:
- \int_zero:N \l__str_internal_int
- \exp_last_unbraced:Nx \__str_decode_eight_bit_load:nn
- { \tl_use:c { c__str_encoding_#1_tl } }
- { \s__str_stop \prg_break: } { }
- \prg_break_point:
- \exp_last_unbraced:Nx \__str_decode_eight_bit_load_missing:n
- { \tl_use:c { c__str_encoding_#1_missing_tl } }
- { \s__str_stop \prg_break: }
- \prg_break_point:
- \flag_clear:n { str_error }
- \__str_convert_gmap:N \__str_decode_eight_bit_char:N
- \__str_if_flag_error:nnx { str_error } { decode-8-bit } {#1}
- \group_end:
- }
-\cs_new_protected:Npn \__str_decode_eight_bit_load:nn #1#2
- {
- \__str_use_none_delimit_by_s_stop:w #1 \s__str_stop
- \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop:
- \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop:
- \tex_toks:D \l__str_internal_int \exp_after:wN { \int_value:w "#2 }
- \int_incr:N \l__str_internal_int
- \__str_decode_eight_bit_load:nn
+ \intarray_new:Nn #1 { 256 }
+ \int_step_inline:nnn { 0 } { 255 }
+ { \intarray_gset:Nnn #1 { 1 + ##1 } {##1} }
+ \__str_declare_eight_bit_loop:Nnn #1
+ #4 { \s__str_stop \prg_break: } { }
+ \prg_break_point:
+ \__str_declare_eight_bit_loop:Nn #1
+ #5 { \s__str_stop \prg_break: }
+ \prg_break_point:
+ \intarray_new:Nn #2 {#3}
+ \int_step_inline:nnn { 0 } { 255 }
+ {
+ \int_compare:nNnF { \intarray_item:Nn #1 { 1 + ##1 } } = { -1 }
+ {
+ \intarray_gset:Nnn #2
+ {
+ 1 +
+ \int_mod:nn { \intarray_item:Nn #1 { 1 + ##1 } }
+ { \intarray_count:N #2 }
+ }
+ {##1}
+ }
+ }
}
-\cs_new_protected:Npn \__str_decode_eight_bit_load_missing:n #1
+\cs_new_protected:Npn \__str_declare_eight_bit_loop:Nnn #1#2#3
{
- \__str_use_none_delimit_by_s_stop:w #1 \s__str_stop
- \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop:
- \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop:
- \tex_toks:D \l__str_internal_int \exp_after:wN
- { \int_use:N \c__str_replacement_char_int }
- \int_incr:N \l__str_internal_int
- \__str_decode_eight_bit_load_missing:n
+ \__str_use_none_delimit_by_s_stop:w #2 \s__str_stop
+ \intarray_gset:Nnn #1 { 1 + "#2 } { "#3 }
+ \__str_declare_eight_bit_loop:Nnn #1
}
-\cs_new:Npn \__str_decode_eight_bit_char:N #1
+\cs_new_protected:Npn \__str_declare_eight_bit_loop:Nn #1#2
{
- #1 \s__str
- \if_int_compare:w \tex_dimen:D `#1 < \l__str_internal_int
- \if_int_compare:w \tex_skip:D \tex_dimen:D `#1 = `#1 \exp_stop_f:
- \tex_the:D \tex_toks:D \tex_dimen:D
- \fi:
- \fi:
- \int_value:w `#1 \s__str
+ \__str_use_none_delimit_by_s_stop:w #2 \s__str_stop
+ \intarray_gset:Nnn #1 { 1 + "#2 } { -1 }
+ \__str_declare_eight_bit_loop:Nn #1
}
-\cs_new_protected:Npn \__str_convert_encode_eight_bit:n #1
+\cs_new_protected:Npn \__str_convert_decode_eight_bit:n #1
{
- \group_begin:
- \int_zero:N \l__str_internal_int
- \exp_last_unbraced:Nx \__str_encode_eight_bit_load:nn
- { \tl_use:c { c__str_encoding_#1_tl } }
- { \s__str_stop \prg_break: } { }
- \prg_break_point:
- \flag_clear:n { str_error }
- \__str_convert_gmap_internal:N \__str_encode_eight_bit_char:n
- \__str_if_flag_error:nnx { str_error } { encode-8-bit } {#1}
- \group_end:
+ \cs_set:Npx \__str_tmp:w
+ {
+ \exp_not:N \__str_decode_eight_bit_aux:Nn
+ \exp_not:c { g__str_decode_#1_intarray }
+ }
+ \flag_clear:n { str_error }
+ \__str_convert_gmap:N \__str_tmp:w
+ \__str_if_flag_error:nnx { str_error } { decode-8-bit } {#1}
}
-\cs_new_protected:Npn \__str_encode_eight_bit_load:nn #1#2
+\cs_new:Npn \__str_decode_eight_bit_aux:Nn #1#2
{
- \__str_use_none_delimit_by_s_stop:w #1 \s__str_stop
- \tex_dimen:D "#2 = \l__str_internal_int sp \scan_stop:
- \tex_skip:D \l__str_internal_int = "#2 sp \scan_stop:
- \exp_args:NNf \tex_toks:D \l__str_internal_int
- { \__str_output_byte:n { "#1 } }
- \int_incr:N \l__str_internal_int
- \__str_encode_eight_bit_load:nn
+ #2 \s__str
+ \exp_args:Nf \__str_decode_eight_bit_aux:n
+ { \intarray_item:Nn #1 { 1 + `#2 } }
+ \s__str
}
-\cs_new:Npn \__str_encode_eight_bit_char:n #1
+\cs_new:Npn \__str_decode_eight_bit_aux:n #1
{
- \if_int_compare:w #1 > \c_max_register_int
+ \if_int_compare:w #1 < \c_zero_int
\flag_raise:n { str_error }
+ \int_value:w \c__str_replacement_char_int
\else:
- \if_int_compare:w \tex_dimen:D #1 < \l__str_internal_int
- \if_int_compare:w \tex_skip:D \tex_dimen:D #1 = #1 \exp_stop_f:
- \tex_the:D \tex_toks:D \tex_dimen:D #1 \exp_stop_f:
- \exp_after:wN \exp_after:wN \exp_after:wN \use_none:nn
- \fi:
- \fi:
- \__str_encode_eight_bit_char_aux:n {#1}
+ #1
\fi:
}
-\cs_new:Npn \__str_encode_eight_bit_char_aux:n #1
+\int_new:N \l__str_modulo_int
+\cs_new_protected:Npn \__str_convert_encode_eight_bit:n #1
{
- \if_int_compare:w #1 > \c__str_max_byte_int
- \flag_raise:n { str_error }
- \else:
- \__str_output_byte:n {#1}
- \fi:
+ \cs_set:Npx \__str_tmp:w
+ {
+ \exp_not:N \__str_encode_eight_bit_aux:NNn
+ \exp_not:c { g__str_encode_#1_intarray }
+ \exp_not:c { g__str_decode_#1_intarray }
+ }
+ \flag_clear:n { str_error }
+ \__str_convert_gmap_internal:N \__str_tmp:w
+ \__str_if_flag_error:nnx { str_error } { encode-8-bit } {#1}
+ }
+\cs_new:Npn \__str_encode_eight_bit_aux:NNn #1#2#3
+ {
+ \exp_args:Nf \__str_encode_eight_bit_aux:nnN
+ {
+ \intarray_item:Nn #1
+ { 1 + \int_mod:nn {#3} { \intarray_count:N #1 } }
+ }
+ {#3}
+ #2
+ }
+\cs_new:Npn \__str_encode_eight_bit_aux:nnN #1#2#3
+ {
+ \int_compare:nNnTF { \intarray_item:Nn #3 { 1 + #1 } } = {#2}
+ { \__str_output_byte:n {#1} }
+ { \flag_raise:n { str_error } }
}
\__kernel_msg_new:nnn { str } { unknown-esc }
{ Escaping~scheme~'#1'~(filtered:~'#2')~unknown. }
@@ -26076,6 +26216,8 @@
\tex_hbox:D to \c_zero_dim
{ \color_group_begin: #1 \color_group_end: }
}
+\cs_new_protected:Npn \hbox_overlap_center:n #1
+ { \hbox_to_zero:n { \tex_hss:D #1 \tex_hss:D } }
\cs_new_protected:Npn \hbox_overlap_left:n #1
{ \hbox_to_zero:n { \tex_hss:D #1 } }
\cs_new_protected:Npn \hbox_overlap_right:n #1
@@ -28376,7 +28518,7 @@
{
\__text_if_recursion_tail_stop_do:Nn #2
{ \__text_expand_letterlike:N #1 }
- \cs_if_eq:NNTF #2 #1
+ \str_if_eq:nnTF {#1} {#2}
{
\__text_use_i_delimit_by_q_recursion_stop:nw
{ \__text_expand_exclude:Nn #1 }
@@ -28691,7 +28833,7 @@
{
\__text_if_recursion_tail_stop_do:Nn #4
{ \use:c { __text_change_case_letterlike_ #1 :nnN } {#1} {#2} #3 }
- \cs_if_eq:NNTF #3 #4
+ \str_if_eq:nnTF {#3} {#4}
{
\__text_use_i_delimit_by_q_recursion_stop:nw
{ \__text_change_case_exclude:nnNn {#1} {#2} #3 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 45e33b3c026..5f590f7eed7 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-08-07}%
+\def\ExplFileDate{2020-09-01}%
\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 a17e63e2bfe..cba131639a6 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
@@ -19,10 +19,12 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2020-08-07}%
+\def\ExplFileDate{2020-09-01}%
\let\ExplLoaderFileDate\ExplFileDate
-\global\expandafter\let\csname\detokenize
- {c__kernel_expl_date_tl}\endcsname\ExplFileDate
+\unless\ifcsname\detokenize{c__kernel_expl_date_tl}\endcsname
+ \global\expandafter\let\csname\detokenize
+ {c__kernel_expl_date_tl}\endcsname\ExplFileDate
+\fi
\everyjob\expandafter{\the\everyjob
\message{L3 programming layer <\ExplFileDate>}%
}
@@ -60,36 +62,6 @@
\expandafter\ifx\csname tex\string _let:D\endcsname\relax
\expandafter\endinput
\fi
-\ifcsname\detokenize{c__kernel_expl_date_tl}\endcsname
- \expandafter\ifx\csname\detokenize
- {c__kernel_expl_date_tl}\endcsname\ExplLoaderFileDate
- \else
- \ExplSyntaxOn
- \__kernel_msg_set:nnn { kernel } { mismatched-expl3 }
- {
- Mismatched~expl3~detected!~Loading~expl3~will~abort.
- \\ \\
- The~version~of~expl3~preloaded~in~LaTeX~is~
- \c__kernel_expl_date_tl,~but~the~version~of~expl3~you~are~
- trying~to~load~is~dated~\ExplLoaderFileDate.~This~is~most~
- likely~due~to~a~stray~format~file~in~the~user~tree.~Please~
- make~sure~that~your~LaTeX~format~is~updated.
- }
- \exp_after:wN \ExplSyntaxOff \use:n
- {
- \__kernel_msg_critical:nn { kernel } { mismatched-expl3 }
- \use:c { fi: } \use:c { fi: }
- }
- \fi
-\else
- \ifodd\csname\detokenize{l__kernel_expl_bool}\endcsname
- \else
- \ExplSyntaxOn
- \bool_if_exist:NF \g__expl_reload_bool
- { \bool_new:N \g__expl_reload_bool }
- \ExplSyntaxOff
- \fi
-\fi
\ifcsname\detokenize{g__expl_reload_bool}\endcsname
\ExplSyntaxOn
\bool_gset_true:N \g__expl_reload_bool
@@ -107,7 +79,7 @@
\keys_define:nn { sys }
{
backend .choices:nn =
- { dvipdfmx , dvips , dvisvgm , pdfmode , xdvipdfmx }
+ { dvipdfmx , dvips , dvisvgm , luatex , pdftex , pdfmode , xdvipdfmx , xetex }
{ \sys_load_backend:n {#1} } ,
check-declarations .code:n =
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 25ce52d3916..25816100603 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-08-07}%
+\def\ExplFileDate{2020-09-01}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
@@ -61,35 +61,20 @@
\expandafter\endinput
\fi
\ifcsname\detokenize{c__kernel_expl_date_tl}\endcsname
- \expandafter\ifx\csname\detokenize
- {c__kernel_expl_date_tl}\endcsname\ExplLoaderFileDate
- \else
- \ExplSyntaxOn
- \__kernel_msg_set:nnn { kernel } { mismatched-expl3 }
- {
- Mismatched~expl3~detected!~Loading~expl3~will~abort.
- \\ \\
- The~version~of~expl3~preloaded~in~LaTeX~is~
- \c__kernel_expl_date_tl,~but~the~version~of~expl3~you~are~
- trying~to~load~is~dated~\ExplLoaderFileDate.~This~is~most~
- likely~due~to~a~stray~format~file~in~the~user~tree.~Please~
- make~sure~that~your~LaTeX~format~is~updated.
- }
- \exp_after:wN \ExplSyntaxOff \use:n
- {
- \__kernel_msg_critical:nn { kernel } { mismatched-expl3 }
- \use:c { fi: } \use:c { fi: }
- }
- \fi
+ \expandafter\@firstofone
\else
\ifodd\csname\detokenize{l__kernel_expl_bool}\endcsname
+ \global\expandafter\let\csname\detokenize
+ {c__kernel_expl_date_tl}\endcsname\ExplLoaderFileDate
+ \expandafter\expandafter
+ \expandafter\@gobble
\else
- \ExplSyntaxOn
- \bool_if_exist:NF \g__expl_reload_bool
- { \bool_new:N \g__expl_reload_bool }
- \ExplSyntaxOff
+ \expandafter\expandafter
+ \expandafter\@firstofone
\fi
\fi
+ {\csname\detokenize{__kernel_dependency_version_check:Nn}\endcsname
+ \ExplLoaderFileDate{expl3.sty}}%
\ifcsname\detokenize{g__expl_reload_bool}\endcsname
\ExplSyntaxOn
\bool_gset_true:N \g__expl_reload_bool
@@ -120,7 +105,7 @@
\keys_define:nn { sys }
{
backend .choices:nn =
- { dvipdfmx , dvips , dvisvgm , pdfmode , xdvipdfmx }
+ { dvipdfmx , dvips , dvisvgm , luatex , pdftex , pdfmode , xdvipdfmx , xetex }
{ \sys_load_backend:n {#1} } ,
check-declarations .code:n =
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def
index 08dcebb1abf..c38e4562a3c 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def
@@ -48,6 +48,9 @@
\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 { 2022-01-01 } { }
+\cs_gset_protected:Npn \str_declare_eight_bit_encoding:nnn #1
+ { \__str_declare_eight_bit_encoding:nnnn {#1} { 1114112 } }
\__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 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 72fbed613d1..529d1f129c6 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -1486,7 +1486,10 @@
\vbox_set:Nn \l__codedoc_macro_box
{
\vbox_unpack_drop:N \l__codedoc_macro_box
- \hbox { \llap { \__codedoc_print_macroname:nN {#1} #2 \ } }
+ \hbox { \llap { \__codedoc_print_macroname:nN {#1} #2
+ \MacroFont % <----- without it the \ is in lmr10 if a link is made
+ \
+ } }
}
\int_incr:N \l__codedoc_macro_int
}
@@ -1834,7 +1837,7 @@
{ \cs_set:Npn \currentfile{#1.dtx} }
\int_compare:nNnTF \@auxout = \@partaux
{ \@latexerr{\string\include\space cannot~be~nested}\@eha }
- { \@docinclude #1 }
+ { \@docinclude {#1} }
}
\cs_gset:Npn \@docinclude #1
{
@@ -1865,7 +1868,7 @@
{
\cs_set_eq:NN \ttfamily\relax
\cs_gset:Npx \filekey
- { \filekey, \thepart = { \ttfamily \currentfile } }
+ { \filekey,~ \thepart = { \ttfamily \currentfile } }
}
\DocInput{\currentfile}
\cs_set_eq:NN \PrintIndex \@ltxdoc@PrintIndex
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
index b8afbc41f0f..45c44f027f7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88591 }
+\__str_declare_eight_bit_encoding:nnnn { iso88591 } { 256 }
{
}
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
index e05851bea25..948529059e4 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso885910 }
+\__str_declare_eight_bit_encoding:nnnn { iso885910 } { 383 }
{
{ A1 } { 0104 }
{ A2 } { 0112 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
index 68edb51da3e..8499b3db482 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso885911 }
+\__str_declare_eight_bit_encoding:nnnn { iso885911 } { 369 }
{
{ A1 } { 0E01 }
{ A2 } { 0E02 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
index cb5df1eadd0..e4a37283767 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso885913 }
+\__str_declare_eight_bit_encoding:nnnn { iso885913 } { 399 }
{
{ A1 } { 201D }
{ A5 } { 201E }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
index 3ba5aff3579..80b71c435db 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso885914 }
+\__str_declare_eight_bit_encoding:nnnn { iso885914 } { 529 }
{
{ A1 } { 1E02 }
{ A2 } { 1E03 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
index 1c021c5be93..c691fac5e6e 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso885915 }
+\__str_declare_eight_bit_encoding:nnnn { iso885915 } { 383 }
{
{ A4 } { 20AC }
{ A6 } { 0160 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
index 67ba3cb920a..a6f069150e4 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso885916 }
+\__str_declare_eight_bit_encoding:nnnn { iso885916 } { 558 }
{
{ A1 } { 0104 }
{ A2 } { 0105 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
index cdd7d72cfba..9535a516311 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88592 }
+\__str_declare_eight_bit_encoding:nnnn { iso88592 } { 399 }
{
{ A1 } { 0104 }
{ A2 } { 02D8 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
index 9f0b8cb57e9..b94b703010b 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88593 }
+\__str_declare_eight_bit_encoding:nnnn { iso88593 } { 384 }
{
{ A1 } { 0126 }
{ A2 } { 02D8 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
index 62d0f99a57a..4187032f3dc 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88594 }
+\__str_declare_eight_bit_encoding:nnnn { iso88594 } { 383 }
{
{ A1 } { 0104 }
{ A2 } { 0138 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
index 5b8e4a52a0a..e69031c44c1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88595 }
+\__str_declare_eight_bit_encoding:nnnn { iso88595 } { 374 }
{
{ A1 } { 0401 }
{ A2 } { 0402 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
index 95461e2fdcf..2d821d5904c 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88596 }
+\__str_declare_eight_bit_encoding:nnnn { iso88596 } { 344 }
{
{ AC } { 060C }
{ BB } { 061B }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
index 6fa05a311f1..73218e58d49 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88597 }
+\__str_declare_eight_bit_encoding:nnnn { iso88597 } { 498 }
{
{ A1 } { 2018 }
{ A2 } { 2019 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
index a4eb5245b17..c0e4dd6e6d6 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88598 }
+\__str_declare_eight_bit_encoding:nnnn { iso88598 } { 308 }
{
{ AA } { 00D7 }
{ BA } { 00F7 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def
index 9c005e3e0cb..914d367b892 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3str-convert.dtx
-\str_declare_eight_bit_encoding:nnn { iso88599 }
+\__str_declare_eight_bit_encoding:nnnn { iso88599 } { 352 }
{
{ D0 } { 011E }
{ DD } { 0130 }