summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-05-06 21:05:39 +0000
committerKarl Berry <karl@freefriends.org>2019-05-06 21:05:39 +0000
commit193cab8a30e478915acdb6f30960653d0b54f61a (patch)
tree756f0ff0955ee3e7bc432be2f111acf1037d3e14 /Master/texmf-dist/tex/latex
parente72ea92bdfffdb77681710ed4098d42eb1b48126 (diff)
l3kernel (6may19)
git-svn-id: svn://tug.org/texlive/trunk@51024 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex73
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def3
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def81
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def3
7 files changed, 123 insertions, 43 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index d4f679dc452..82d11da2357 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -64,7 +64,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2019-05-03}%
+\def\ExplFileDate{2019-05-05}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -5731,7 +5731,7 @@
\quark_if_recursion_tail_stop_do:Nn #2
{ \__str_change_case_end:wn }
\__str_change_case_output:fw
- { \use:c { char_ #1 _case:N } #2 }
+ { \use:c { char_str_ #1 _case:N } #2 }
\__str_change_case_loop:nw {#1}
}
\str_const:Nx \c_ampersand_str { \cs_to_str:N \& }
@@ -26448,7 +26448,10 @@
\cs_new:Npn \char_mixed_case:N #1
{
\tl_if_exist:cTF { c__char_mixed_case_ \token_to_str:N #1 _tl }
- { \tl_use:c { c__char_mixed_case_ \token_to_str:N #1 _tl } }
+ {
+ \__char_change_case_multi:v
+ { c__char_mixed_case_ \token_to_str:N #1 _tl }
+ }
{ \char_upper_case:N #1 }
}
\cs_new:Npn \char_fold_case:N #1
@@ -26456,19 +26459,79 @@
\cs_new:Npn \__char_change_case:nNN #1#2#3
{
\tl_if_exist:cTF { c__char_ #1 _case_ \token_to_str:N #3 _tl }
- { \tl_use:c { c__char_ #1 _case_ \token_to_str:N #3 _tl } }
+ {
+ \__char_change_case_multi:v
+ { c__char_ #1 _case_ \token_to_str:N #3 _tl }
+ }
{ \exp_args:Nf \__char_change_case:nN { #2 { `#3 } } #3 }
}
\cs_new:Npn \__char_change_case:nN #1#2
{
\int_compare:nNnTF {#1} = 0
- {#2}
+ { \__char_change_case:N #2 }
{ \char_generate:nn {#1} { \char_value_catcode:n {#1} } }
}
+\cs_new:Npn \__char_change_case_multi:n #1
+ { \__char_change_case_multi:NNNw #1 \q_no_value \q_no_value \q_stop }
+\cs_new:Npn \__char_change_case_multi:NNNw #1#2#3#4 \q_stop
+ {
+ \quark_if_no_value:NTF #3
+ {
+ \quark_if_no_value:NTF #2
+ { \__char_change_case:N #1 }
+ { \__char_change_case:NN #1#2 }
+ }
+ { \__char_change_case:NNN #1#2#3 }
+ }
+\cs_generate_variant:Nn \__char_change_case_multi:n { v }
+\cs_new:Npn \__char_change_case:NN #1#2
+ {
+ \exp_args:Nnf \use:nn
+ { \__char_change_case:N #1 }
+ { \__char_change_case:N #2 }
+ }
+\cs_new:Npn \__char_change_case:NNN #1#2#3
+ {
+ \exp_args:Nnff \use:nnn
+ { \__char_change_case:N #1 }
+ { \__char_change_case:N #2 }
+ { \__char_change_case:N #3 }
+ }
+\cs_new:Npn \__char_change_case:N #1
+ { \char_generate:nn { `#1 } { \char_value_catcode:n { `#1 } } }
\bool_lazy_or:nnF { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: }
{
\cs_set_eq:NN \__char_change_case:nN \use_ii:nn
}
+\cs_new:Npn \char_str_lower_case:N #1
+ { \__char_str_change_case:nNN { lower } \char_value_lccode:n #1 }
+\cs_new:Npn \char_str_upper_case:N #1
+ { \__char_str_change_case:nNN { upper } \char_value_uccode:n #1 }
+\cs_new:Npn \char_str_mixed_case:N #1
+ {
+ \tl_if_exist:cTF { c__char_mixed_case_ \token_to_str:N #1 _tl }
+ { \tl_to_str:c { c__char_mixed_case_ \token_to_str:N #1 _tl } }
+ { \char_str_upper_case:N #1 }
+ }
+\cs_new:Npn \char_str_fold_case:N #1
+ { \__char_str_change_case:nNN { fold } \char_value_lccode:n #1 }
+\cs_new:Npn \__char_str_change_case:nNN #1#2#3
+ {
+ \tl_if_exist:cTF { c__char_ #1 _case_ \token_to_str:N #3 _tl }
+ { \tl_to_str:c { c__char_ #1 _case_ \token_to_str:N #3 _tl } }
+ { \exp_args:Nf \__char_str_change_case:nN { #2 { `#3 } } #3 }
+ }
+\cs_new:Npn \__char_str_change_case:nN #1#2
+ {
+ \int_compare:nNnTF {#1} = 0
+ { \tl_to_str:n {#2} }
+ { \char_generate:nn {#1} { 12 } }
+ }
+\bool_lazy_or:nnF { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: }
+ {
+ \cs_set:Npn \__char_str_change_case:nN #1#2
+ { \tl_to_str:n {#2} }
+ }
\cs_new:Npn \char_codepoint_to_bytes:n #1
{
\exp_args:Nf \__char_codepoint_to_bytes_auxi:n
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 26c183ef620..e4401cb552c 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{2019-05-03}%
+\def\ExplFileDate{2019-05-05}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\def\tempa{LaTeX2e}%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index fd5e7fa0e6c..d017eb98e2e 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{2019-05-03}%
+\def\ExplFileDate{2019-05-05}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index 720da5d79c7..97bde0a30b9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -543,7 +543,7 @@
}
}
\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2
- { \__driver_pdf_link_begin:n { #1 /A << /S /GoTo /D ( #2 ) >> } }
+ { \__driver_pdf_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2
{ \__driver_pdf_link_begin:n {#1#2} }
\cs_new_protected:Npn \__driver_pdf_link_begin:n #1
@@ -554,7 +554,6 @@
bann
<<
/Type /Annot
- /Subtype /Link
#1
>>
}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index feb19384f46..ee2d45c8aa1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -929,8 +929,16 @@
\int_new:N \g__driver_pdf_link_sf_int
\bool_new:N \g__driver_pdf_link_math_bool
\bool_new:N \g__driver_pdf_link_bool
+\tl_new:N \l__driver_breaklink_obj_tl
+\tl_set:Nn \l__driver_breaklink_obj_tl
+ { /_objdef ~ { driver.obj \int_use:N \g__driver_pdf_link_int } }
+\tl_new:N \l__driver_breaklink_pdfmark_tl
+\tl_set:Nn \l__driver_breaklink_pdfmark_tl { pdfmark }
+\cs_new_protected:Npn \__driver_breaklink_postscript:n #1 { }
+\cs_generate_variant:Nn \__driver_breaklink_postscript:n { x }
+\cs_new_eq:NN \__driver_breaklink_usebox:N \box_use:N
\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2
- { \__driver_pdf_link_begin:nw { #1 /A << /S /GoTo /D ( #2 ) >> } }
+ { \__driver_pdf_link_begin:nw { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2
{ \__driver_pdf_link_begin:nw {#1#2} }
\cs_new_protected:Npn \__driver_pdf_link_begin:nw #1
@@ -943,17 +951,7 @@
\bool_gset_true:N \g__driver_pdf_link_bool
\__driver_pdf_annotation:nnnn { 3pt } { 3pt } { 0pt } { }
\__driver_postscript:n
- { /driver.link.dict ( /Subtype /Link #1 ) def }
- \int_gincr:N \g__driver_pdf_object_int
- \int_gset_eq:NN \g__driver_pdf_link_int \g__driver_pdf_object_int
- \__driver_postscript:x
- {
- /driver.link.obj
- {
- { driver.obj \int_use:N \g__driver_pdf_link_int \c_space_tl driver.cvs }
- }
- def
- }
+ { /driver.link.dict ( #1 ) def }
\tl_gset:Nn \g__driver_pdf_link_dict_tl {#1}
\__driver_pdf_link_sf_save:
\mode_if_math:TF
@@ -985,20 +983,31 @@
}
\box_move_down:nn { \box_dp:N \l__driver_pdf_content_box }
{ \hbox:n { \__driver_postscript:n { driver.save.linkll } } }
- \__driver_postscript:n { driver.bordertracking.begin }
- \hbox_unpack:N \l__driver_pdf_content_box
- \__driver_postscript:n { driver.bordertracking.end }
+ \__driver_breaklink_postscript:n { driver.bordertracking.begin }
+ \__driver_breaklink_usebox:N \l__driver_pdf_content_box
+ \__driver_breaklink_postscript:n { driver.bordertracking.end }
\box_move_up:nn { \box_ht:N \l__driver_pdf_content_box }
{
\hbox:n
{ \__driver_postscript:n { driver.save.linkur } }
}
+ \int_gincr:N \g__driver_pdf_object_int
+ \int_gset_eq:NN \g__driver_pdf_link_int \g__driver_pdf_object_int
+ \__driver_breaklink_postscript:x
+ {
+ /driver.link.obj
+ {
+ { driver.obj \int_use:N \g__driver_pdf_link_int \c_space_tl driver.cvs }
+ }
+ def
+ }
\__driver_postscript:x
{
mark
- \g__driver_pdf_link_dict_tl /Subtype /Link ~
+ \l__driver_breaklink_obj_tl
+ \g__driver_pdf_link_dict_tl \c_space_tl
driver.rect
- /ANN ~ driver.pdfmark
+ /ANN ~ \l__driver_breaklink_pdfmark_tl
}
\__driver_pdf_link_sf_restore:
\bool_gset_false:N \g__driver_pdf_link_bool
@@ -1068,22 +1077,32 @@
{ \int_set_eq:NN \tex_spacefactor:D \g__driver_pdf_link_sf_int }
}
}
-\tl_gput_left:Nn \@startcolumn
- {
- \__driver_postscript:n
- {
- driver.globaldict /driver.brokenlink.rect ~ known
- { driver.bordertracking.continue }
- if
- }
- }
-\tl_gput_left:Nn \@makecol
+\use_none:n
{
- \vbox_set:Nn \@cclv
+ \cs_if_exist:NT \@makecol@hook
{
- \vbox_unpack_drop:N \@cclv
- \__driver_postscript:n
- { driver.bordertracking.endpage }
+ \tl_put_right:Nn \@makecol@hook
+ {
+ \box_if_empty:NF \@cclv
+ {
+ \vbox_set:Nn \@cclv
+ {
+ \__driver_postscript:n
+ {
+ driver.globaldict /driver.brokenlink.rect ~ known
+ { driver.bordertracking.continue }
+ if
+ }
+ \vbox_unpack_drop:N \@cclv
+ \__driver_postscript:n
+ { driver.bordertracking.endpage }
+ }
+ }
+ }
+ \tl_clear:N \l__driver_breaklink_obj_tl
+ \tl_set:Nn \l__driver_breaklink_pdfmark_tl { driver.pdfmark }
+ \cs_set_eq:NN \__driver_breaklink_postscript:n \__driver_postscript:n
+ \cs_set_eq:NN \__driver_breaklink_usebox:N \hbox_unpack:N
}
}
\cs_new:Npn \driver_pdf_link_last:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index 7bfb6d120ad..c555f97578d 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -455,7 +455,7 @@
\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2
{ \__driver_pdf_link_begin:nnnw {#1} { goto~name } {#2} }
\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2
- { \__driver_pdf_link_begin:nnnw {#1} { user } { /Subtype /Link #2 } }
+ { \__driver_pdf_link_begin:nnnw {#1} { user } {#2} }
\cs_new_protected:Npx \__driver_pdf_link_begin:nnnw #1#2#3
{
\__driver_pdf_AR_fix:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index b5256daff29..a9046507c11 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -586,7 +586,7 @@
}
}
\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#2
- { \__driver_pdf_link_begin:n { #1 /A << /S /GoTo /D ( #2 ) >> } }
+ { \__driver_pdf_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } }
\cs_new_protected:Npn \driver_pdf_link_begin_user:nnw #1#2
{ \__driver_pdf_link_begin:n {#1#2} }
\cs_new_protected:Npn \__driver_pdf_link_begin:n #1
@@ -597,7 +597,6 @@
bann
<<
/Type /Annot
- /Subtype /Link
#1
>>
}