summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty26
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex275
-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.def60
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def174
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def3
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def57
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def60
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty5
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty2
23 files changed, 489 insertions, 201 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index 307f4075c1d..924d785f8fc 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}{2019-03-05}{}
+\ProvidesExplPackage{l3benchmark}{2019-05-03}{}
{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
index 26424b54ff9..19d18d7ed74 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3cctab/l3cctab.sty
@@ -20,7 +20,7 @@
%%
%% File: l3cctab.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3cctab}{2019-03-05}{}
+\ProvidesExplPackage{l3cctab}{2019-05-03}{}
{L3 Experimental category code tables}
\int_new:N \g__cctab_allocate_int
\int_gset:Nn \g__cctab_allocate_int { -1 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
index 89e794d9474..c6be03b0ae4 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3color/l3color.sty
@@ -20,7 +20,7 @@
%%
%% File: l3color.dtx
\RequirePackage{expl3}
-\ProvidesExplPackage{l3color}{2019-03-05}{}
+\ProvidesExplPackage{l3color}{2019-05-03}{}
{L3 Experimental color support}
\tl_new:N \l__color_tmp_tl
\prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index 624f7c7be13..4f63b4e692e 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}{2019-03-05}{}
+\ProvidesExplPackage{l3draw}{2019-05-03}{}
{L3 Experimental core drawing support}
\RequirePackage { l3color }
%% File: l3draw-boxes.dtx
@@ -685,7 +685,7 @@
{ \bool_set_true:c { l__draw_path_use_ ##1 _ bool } }
{
\cs_if_exist_use:cF { __draw_path_use_action_ ##1 : }
- { \ERROR }
+ { \msg_error:nnn { draw } { invalid-path-action } {##1} }
}
}
\__draw_softpath_round_corners:
@@ -693,11 +693,15 @@
{ \l_draw_bb_update_bool }
{ \l__draw_path_use_stroke_bool }
{ \__draw_path_use_stroke_bb: }
- \bool_if:NTF \l__draw_path_use_clear_bool
- { \__draw_softpath_use_clear: }
- { \__draw_softpath_use: }
+ \__draw_softpath_use:
\bool_if:NT \l__draw_path_use_clip_bool
- { \driver_draw_clip: }
+ {
+ \driver_draw_clip:
+ \bool_lazy_or:nnF
+ { \l__draw_path_use_fill_bool }
+ { \l__draw_path_use_stroke_bool }
+ { \driver_draw_discardpath: }
+ }
\bool_lazy_or:nnT
{ \l__draw_path_use_fill_bool }
{ \l__draw_path_use_stroke_bool }
@@ -710,6 +714,8 @@
:
}
}
+ \bool_if:NT \l__draw_path_use_clear_bool
+ { \__draw_softpath_clear: }
}
\cs_new_protected:Npn \__draw_path_use_action_draw:
{
@@ -786,6 +792,9 @@
\dim_gset_eq:NN \g__draw_path_lasty_dim \l__draw_path_lasty_dim
\group_end:
}
+\msg_new:nnnn { draw } { invalid-path-action }
+ { Invalid~action~'#1'~for~path. }
+ { Paths~can~be~used~with~actions~'draw',~'clip',~'fill'~or~'stroke'. }
%% File: l3draw-points.dtx
\cs_new:Npn \__draw_point_process:nn #1#2
{
@@ -1323,11 +1332,6 @@
\tl_build_gclear:N \g__draw_softpath_main_tl
\bool_gset_false:N \g__draw_softpath_corners_bool
}
-\cs_new_protected:Npn \__draw_softpath_use_clear:
- {
- \__draw_softpath_use:
- \__draw_softpath_clear:
- }
\dim_new:N \g__draw_softpath_lastx_dim
\dim_new:N \g__draw_softpath_lasty_dim
\bool_new:N \g__draw_softpath_move_bool
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
index 6fd0b8bc79d..6af82fd2621 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
@@ -20,7 +20,7 @@
%%
%% File: l3str-convert.dtx Copyright (C) 2013-2019 The LaTeX3 Project
\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-convert}{2019-03-05}{}
+\ProvidesExplPackage{l3str-convert}{2019-05-03}{}
{L3 Experimental string encoding conversions}
\cs_if_exist:NF \use_ii_i:nn
{ \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index 5e49bbee787..2658fade981 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}{2019-03-05}{}
+\ProvidesExplPackage{l3str-format}{2019-05-03}{}
{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 b7834db7c4f..0fdc99a02a6 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}{2019-03-05}{}
+\ProvidesExplPackage{l3sys-shell}{2019-05-03}{}
{L3 Experimental system shell functions}
\cs_new:Npn \__sys_path_to_win:n #1
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty
index 655ed6f74e5..058ae854cd5 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}{2019-03-05}{}
+\ProvidesExplPackage{xcoffins}{2019-05-03}{}
{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 9d19ec1625c..7f4c785a57d 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}{2019-03-05}{}
+\ProvidesExplPackage{l3galley}{2019-05-03}{}
{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 59821660f7e..de6ec90878d 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}{2019-03-05}{}
+\ProvidesExplPackage{xgalley}{2019-05-03}{}
{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 0710918dfaf..d4f679dc452 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -48,6 +48,7 @@
%% l3luatex.dtx (with options: `package,tex')
%% l3unicode.dtx (with options: `package')
%% l3candidates.dtx (with options: `package')
+%% l3legacy.dtx (with options: `package')
%% l3deprecation.dtx (with options: `package')
%%
%% Copyright (C) 1990-2019 The LaTeX3 Project
@@ -63,7 +64,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2019-04-21}%
+\def\ExplFileDate{2019-05-03}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -744,6 +745,7 @@
\__kernel_primitive:NN \pdfoutline \tex_pdfoutline:D
\__kernel_primitive:NN \pdfoutput \tex_pdfoutput:D
\__kernel_primitive:NN \pdfpageattr \tex_pdfpageattr:D
+ \__kernel_primitive:NN \pdfpagesattr \tex_pdfpagesattr:D
\__kernel_primitive:NN \pdfpagebox \tex_pdfpagebox:D
\__kernel_primitive:NN \pdfpageref \tex_pdfpageref:D
\__kernel_primitive:NN \pdfpageresources \tex_pdfpageresources:D
@@ -1223,6 +1225,8 @@
\__kernel_primitive:NN \Usuperscript \tex_Usuperscript:D
\__kernel_primitive:NN \Uunderdelimiter \tex_Uunderdelimiter:D
\__kernel_primitive:NN \Uvextensible \tex_Uvextensible:D
+ \__kernel_primitive:NN \harftexrevision \tex_harftexrevision:D
+ \__kernel_primitive:NN \harftexversion \tex_harftexversion:D
\__kernel_primitive:NN \autospacing \tex_autospacing:D
\__kernel_primitive:NN \autoxspacing \tex_autoxspacing:D
\__kernel_primitive:NN \dtou \tex_dtou:D
@@ -8979,6 +8983,47 @@
{ \exp_not:c { peek_#1:NF } ##1 {##2} }
}
}
+\group_begin:
+ \cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
+ {
+ \cs_new_protected:Npn \__peek_execute_branches_N_type:
+ {
+ \if_int_odd:w
+ \if_catcode:w \exp_not:N \l_peek_token { 0 \exp_stop_f: \fi:
+ \if_catcode:w \exp_not:N \l_peek_token } 0 \exp_stop_f: \fi:
+ \if_meaning:w \l_peek_token \c_space_token 0 \exp_stop_f: \fi:
+ 1 \exp_stop_f:
+ \exp_after:wN \__peek_N_type:w
+ \token_to_meaning:N \l_peek_token
+ \q_mark \__peek_N_type_aux:nnw
+ #1 \q_mark \use_none_delimit_by_q_stop:w
+ \q_stop
+ \exp_after:wN \__peek_true:w
+ \else:
+ \exp_after:wN \__peek_false:w
+ \fi:
+ }
+ \cs_new_protected:Npn \__peek_N_type:w ##1 #1 ##2 \q_mark ##3
+ { ##3 {##1} {##2} }
+ }
+ \exp_after:wN \__peek_tmp:w \tl_to_str:n { outer } \q_stop
+\group_end:
+\cs_new_protected:Npn \__peek_N_type_aux:nnw #1 #2 #3 \fi:
+ {
+ \fi:
+ \tl_if_in:noTF {#1} { \tl_to_str:n {ma} }
+ { \__peek_true:w }
+ { \tl_if_empty:nTF {#2} { \__peek_true:w } { \__peek_false:w } }
+ }
+\cs_new_protected:Npn \peek_N_type:TF
+ {
+ \__peek_token_generic:NNTF
+ \__peek_execute_branches_N_type: \scan_stop:
+ }
+\cs_new_protected:Npn \peek_N_type:T
+ { \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: }
+\cs_new_protected:Npn \peek_N_type:F
+ { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
%% File: l3prop.dtx
\scan_new:N \s__prop
\cs_new:Npn \__prop_pair:wn #1 \s__prop #2
@@ -11012,12 +11057,101 @@
\__kernel_ior_open:No \g__file_internal_ior \l__file_full_name_tl
\ior_if_eof:NF \g__file_internal_ior { #2 { \prg_break: } }
}
+\cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2
+ { \file_get_mdfive_hash:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
+\cs_new_protected:Npn \file_get_size:nN #1#2
+ { \file_get_size:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
+\cs_new_protected:Npn \file_get_timestamp:nN #1#2
+ { \file_get_timestamp:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
+\prg_new_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2 { T , F , TF }
+ { \__file_get_details:nnN {#1} { mdfivesum } {#2} }
+\prg_new_protected_conditional:Npnn \file_get_size:nN #1#2 { T , F , TF }
+ { \__file_get_details:nnN {#1} { size } {#2} }
+\prg_new_protected_conditional:Npnn \file_get_timestamp:nN #1#2 { T , F , TF }
+ { \__file_get_details:nnN {#1} { moddate } {#2} }
+\cs_new_protected:Npn \__file_get_details:nnN #1#2#3
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ {
+ \tl_set:Nx #3
+ {
+ \use:c { tex_file #2 :D } \exp_after:wN
+ { \l__file_full_name_tl }
+ }
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+\sys_if_engine_luatex:TF
+ {
+ \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ {
+ \tl_set:Nx #3
+ {
+ \lua_now:e
+ {
+ l3kernel.file#2
+ ( " \lua_escape:e { \l__file_full_name_tl } " )
+ }
+ }
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+ }
+ {
+ \prg_set_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2
+ { T , F , TF }
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ {
+ \tl_set:Nx #2
+ {
+ \tex_mdfivesum:D file \exp_after:wN
+ { \l__file_full_name_tl }
+ }
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+ \cs_if_exist:NF \tex_filesize:D
+ {
+ \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
+ {
+ \tl_clear:N #3
+ \__kernel_msg_error:nnx
+ { kernel } { primitive-not-available }
+ { \exp_not:c { (pdf)file #2 } }
+ \prg_return_false:
+ }
+ }
+ }
+\__kernel_msg_new:nnnn { kernel } { primitive-not-available }
+ { Primitive~\token_to_str:N #1 not~available }
+ {
+ The~version~of~XeTeX~in~use~does~not~provide~functionality~equivalent~to~
+ the~\token_to_str:N #1 primitive.
+ }
\prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF }
{
\file_get_full_name:nNTF {#1} \l__file_full_name_tl
{ \prg_return_true: }
{ \prg_return_false: }
}
+\cs_new_protected:Npn \file_if_exist_input:n #1
+ {
+ \file_get_full_name:nNT {#1} \l__file_full_name_tl
+ { \__file_input:V \l__file_full_name_tl }
+ }
+\cs_new_protected:Npn \file_if_exist_input:nF #1#2
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ { \__file_input:V \l__file_full_name_tl }
+ {#2}
+ }
+\cs_new_protected:Npn \file_input_stop: { \tex_endinput:D }
\cs_new_protected:Npn \__kernel_file_missing:n #1
{
\__kernel_file_name_sanitize:nN {#1} \l__file_base_name_tl
@@ -25830,95 +25964,6 @@
}
\cs_new:Npn \fp_sign:n #1
{ \fp_to_decimal:n { sign \__fp_parse:n {#1} } }
-\cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2
- { \file_get_mdfive_hash:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
-\cs_new_protected:Npn \file_get_size:nN #1#2
- { \file_get_size:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
-\cs_new_protected:Npn \file_get_timestamp:nN #1#2
- { \file_get_timestamp:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
-\prg_new_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2 { T , F , TF }
- { \__file_get_details:nnN {#1} { mdfivesum } {#2} }
-\prg_new_protected_conditional:Npnn \file_get_size:nN #1#2 { T , F , TF }
- { \__file_get_details:nnN {#1} { size } {#2} }
-\prg_new_protected_conditional:Npnn \file_get_timestamp:nN #1#2 { T , F , TF }
- { \__file_get_details:nnN {#1} { moddate } {#2} }
-\cs_new_protected:Npn \__file_get_details:nnN #1#2#3
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- {
- \tl_set:Nx #3
- {
- \use:c { tex_file #2 :D } \exp_after:wN
- { \l__file_full_name_tl }
- }
- \prg_return_true:
- }
- { \prg_return_false: }
- }
-\sys_if_engine_luatex:TF
- {
- \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- {
- \tl_set:Nx #3
- {
- \lua_now:e
- {
- l3kernel.file#2
- ( " \lua_escape:e { \l__file_full_name_tl } " )
- }
- }
- \prg_return_true:
- }
- { \prg_return_false: }
- }
- }
- {
- \prg_set_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2
- { T , F , TF }
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- {
- \tl_set:Nx #2
- {
- \tex_mdfivesum:D file \exp_after:wN
- { \l__file_full_name_tl }
- }
- \prg_return_true:
- }
- { \prg_return_false: }
- }
- \cs_if_exist:NF \tex_filesize:D
- {
- \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
- {
- \tl_clear:N #3
- \__kernel_msg_error:nnx
- { kernel } { primitive-not-available }
- { \exp_not:c { (pdf)file #2 } }
- \prg_return_false:
- }
- }
- }
-\__kernel_msg_new:nnnn { kernel } { primitive-not-available }
- { Primitive~\token_to_str:N #1 not~available }
- {
- The~version~of~XeTeX~in~use~does~not~provide~functionality~equivalent~to~
- the~\token_to_str:N #1 primitive.
- }
-\cs_new_protected:Npn \file_if_exist_input:n #1
- {
- \file_get_full_name:nNT {#1} \l__file_full_name_tl
- { \__file_input:V \l__file_full_name_tl }
- }
-\cs_new_protected:Npn \file_if_exist_input:nF #1#2
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- { \__file_input:V \l__file_full_name_tl }
- {#2}
- }
-\cs_new_protected:Npn \file_input_stop: { \tex_endinput:D }
\__kernel_patch:nnNNpn { \__flag_chk_exist:n {#1} } { }
\cs_new:Npn \flag_raise_if_clear:n #1
{
@@ -27549,47 +27594,6 @@
\char_set_lccode:nn { `* } { `\ }
\tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } }
\group_end:
-\group_begin:
- \cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
- {
- \cs_new_protected:Npn \__peek_execute_branches_N_type:
- {
- \if_int_odd:w
- \if_catcode:w \exp_not:N \l_peek_token { 0 \exp_stop_f: \fi:
- \if_catcode:w \exp_not:N \l_peek_token } 0 \exp_stop_f: \fi:
- \if_meaning:w \l_peek_token \c_space_token 0 \exp_stop_f: \fi:
- 1 \exp_stop_f:
- \exp_after:wN \__peek_N_type:w
- \token_to_meaning:N \l_peek_token
- \q_mark \__peek_N_type_aux:nnw
- #1 \q_mark \use_none_delimit_by_q_stop:w
- \q_stop
- \exp_after:wN \__peek_true:w
- \else:
- \exp_after:wN \__peek_false:w
- \fi:
- }
- \cs_new_protected:Npn \__peek_N_type:w ##1 #1 ##2 \q_mark ##3
- { ##3 {##1} {##2} }
- }
- \exp_after:wN \__peek_tmp:w \tl_to_str:n { outer } \q_stop
-\group_end:
-\cs_new_protected:Npn \__peek_N_type_aux:nnw #1 #2 #3 \fi:
- {
- \fi:
- \tl_if_in:noTF {#1} { \tl_to_str:n {ma} }
- { \__peek_true:w }
- { \tl_if_empty:nTF {#2} { \__peek_true:w } { \__peek_false:w } }
- }
-\cs_new_protected:Npn \peek_N_type:TF
- {
- \__peek_token_generic:NNTF
- \__peek_execute_branches_N_type: \scan_stop:
- }
-\cs_new_protected:Npn \peek_N_type:T
- { \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: }
-\cs_new_protected:Npn \peek_N_type:F
- { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
\tl_new:N \l__peek_collect_tl
\cs_new_protected:Npn \peek_catcode_collect_inline:Nn
{ \__peek_collect:NNn \__peek_execute_branches_catcode: }
@@ -27637,6 +27641,15 @@
\tl_put_right:Nn \l__peek_collect_tl {#1}
\exp_after:wN \__peek_true_remove:w
}
+%% File: l3legacy.dtx
+\prg_new_conditional:Npnn \legacy_if:n #1 { p , T , F , TF }
+ {
+ \exp_args:Nc \if_meaning:w { if#1 } \iftrue
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
%% File: l3deprecation.dtx
\bool_new:N \l__deprecation_grace_period_bool
\cs_new:Npn \__deprecation_date_compare:nNnTF #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 81c56d71765..26c183ef620 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-04-21}%
+\def\ExplFileDate{2019-05-03}%
\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 d084dafa2fe..fd5e7fa0e6c 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-04-21}%
+\def\ExplFileDate{2019-05-03}%
\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 7071cac3a1f..720da5d79c7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -437,9 +437,14 @@
%% File: l3drivers-pdf.dtx
\tl_const:Nn \c__driver_pdf_AR_fix_tl
{ /Ff ~ 65537 /FT /Btn /Subtype /Widget }
+\box_new:N \l__driver_pdf_tmp_box
\cs_new_protected:Npx \__driver_pdf:n #1
{ \__driver_literal:n { pdf: #1 } }
\cs_generate_variant:Nn \__driver_pdf:n { x }
+\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2
+ { \__driver_pdf:n { put ~ @catalog << /#1 ~ #2 >> } }
+\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2
+ { \__driver_pdf:n { docinfo << /#1 ~ #2 >> } }
\int_new:N \g__driver_pdf_object_int
\prop_new:N \g__driver_pdf_object_prop
\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2
@@ -557,7 +562,60 @@
\cs_new_protected:Npn \driver_pdf_link_end:
{ \__driver_pdf:n { eann } }
\cs_new:Npn \driver_pdf_link_last: { }
-\cs_new_protected:Npn \driver_pdf_link_margin:n #1 { }
+\cs_new_protected:Npn \driver_pdf_link_margin:n #1
+ { \__driver_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } }
+\cs_new_protected:Npn \driver_pdf_destination:nn #1#2
+ {
+ \__driver_pdf:x
+ {
+ dest ~ ( \exp_not:n {#1} )
+ [
+ @thispage
+ \str_case:nnF {#2}
+ {
+ { xyz } { /XYZ ~ @xpos ~ @ypos ~ null }
+ { fit } { /Fit }
+ { fitb } { /FitB }
+ { fitbh } { /FitBH }
+ { fitbv } { /FitBV ~ @xpos }
+ { fith } { /FitH ~ @ypos }
+ { fitv } { /FitV ~ @xpos }
+ }
+ { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } }
+ ]
+ }
+ }
+\cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
+ {
+ \group_begin:
+ \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
+ \box_move_down:nn { \box_dp:N \l__driver_pdf_tmp_box }
+ {
+ \hbox:n
+ {
+ \__driver_pdf:n { obj ~ @driver_#1_llx ~ @xpos }
+ \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos }
+ }
+ }
+ \box_use:N \l__driver_pdf_tmp_box
+ \box_move_up:nn { \box_ht:N \l__driver_pdf_tmp_box }
+ {
+ \hbox:n
+ {
+ \__driver_pdf:n
+ {
+ dest ~ (#1)
+ [
+ @thispage
+ /FitR ~
+ @driver_#1_llx ~ @driver_#1_lly ~
+ @xpos ~ @ypos
+ ]
+ }
+ }
+ }
+ \group_end:
+ }
\cs_new_protected:Npn \driver_pdf_compresslevel:n #1
{ \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
\cs_new_protected:Npn \driver_pdf_objects_enable: { }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
index bc9cdcd2874..feb19384f46 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
@@ -39,8 +39,13 @@
\cs_new_protected:Npn \__driver_postscript:n #1
{ \__driver_literal:n { ps: SDict ~ begin ~ #1 ~ end } }
\cs_generate_variant:Nn \__driver_postscript:n { x }
-\cs_new_protected:Npn \__driver_postscript_header:n #1
- { \__driver_literal:n { ! #1 } }
+\cs_new_protected:Npx \__driver_postscript_header:n #1
+ {
+ \cs_if_exist:NTF \AtBeginDvi
+ { \exp_not:N \AtBeginDvi }
+ { \use:n }
+ { \__driver_literal:n { ! #1 } }
+ }
\cs_new_protected:Npn \__driver_align_currentpoint_begin:
{
\__driver_literal:n { ps::[begin] }
@@ -413,23 +418,31 @@
%% File: l3drivers-pdf.dtx
\tl_const:Nn \c__driver_pdf_AR_fix_tl
{ /Ff ~ 65537 /FT /Btn /Subtype /Widget }
+\box_new:N \l__driver_pdf_tmp_box
+\cs_new_protected:Npn \__driver_pdfmark:n #1
+ { \__driver_postscript:n { mark #1 ~ pdfmark } }
+\cs_generate_variant:Nn \__driver_pdfmark:n { x }
+\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2
+ { \__driver_pdfmark:n { { Catalog } << /#1 ~ #2 >> /PUT } }
+\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2
+ { \__driver_pdfmark:n { /#1 ~ #2 /DOCINFO } }
\int_new:N \g__driver_pdf_object_int
\prop_new:N \g__driver_pdf_object_prop
\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2
{
\int_gincr:N \g__driver_pdf_object_int
\int_const:cn
- { g__driver_pdf_object_ \tl_to_str:n {#1} _int }
+ { c__driver_pdf_object_ \tl_to_str:n {#1} _int }
{ \g__driver_pdf_object_int }
\prop_gput:Nnn \g__driver_pdf_object_prop {#1} {#2}
}
\cs_new:Npn \driver_pdf_object_ref:n #1
- { { driver.obj \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } } }
+ { { driver.obj \int_use:c { c__driver_pdf_object_ \tl_to_str:n {#1} _int } } }
\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2
{
- \__driver_postscript:x
+ \__driver_pdfmark:x
{
- mark /_objdef ~ \driver_pdf_object_ref:n {#1}
+ /_objdef ~ \driver_pdf_object_ref:n {#1}
/type
\str_case_e:nn
{ \prop_item:Nn \g__driver_pdf_object_prop {#1} }
@@ -439,7 +452,7 @@
{ fstream } { /stream }
{ stream } { /stream }
}
- /OBJ ~ pdfmark
+ /OBJ
}
\use:c
{ __driver_pdf_object_write_ \prop_item:Nn \g__driver_pdf_object_prop {#1} :nn }
@@ -447,18 +460,18 @@
}
\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2
{
- \__driver_postscript:x
+ \__driver_pdfmark:x
{
- mark ~ \driver_pdf_object_ref:n {#1}
- [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL ~ pdfmark
+ \driver_pdf_object_ref:n {#1}
+ [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL
}
}
\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
{
- \__driver_postscript:x
+ \__driver_pdfmark:x
{
- mark ~ \driver_pdf_object_ref:n {#1}
- << \exp_not:n {#2} >> /PUT ~ pdfmark
+ \driver_pdf_object_ref:n {#1}
+ << \exp_not:n {#2} >> /PUT
}
}
\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2
@@ -486,6 +499,7 @@
\__driver_postscript_header:n
{
/driver.cvs { 65534 ~ string ~ cvs } def
+ /driver.dvi.pt { 72.27 ~ mul ~ Resolution ~ div } def
/driver.pt.dvi { 72.27 ~ div ~ Resolution ~ mul } def
/driver.rect.ht { dup ~ 1 ~ get ~ neg ~ exch ~ 3 ~ get ~ add } def
}
@@ -497,23 +511,23 @@
}
\__driver_postscript_header:n
{
- /driver.annotation.border
+ /driver.rect
{ /Rect [ driver.llx ~ driver.lly ~ driver.urx ~ driver.ury ] } def
- /driver.annotation.ll
+ /driver.save.ll
{
currentpoint
/driver.lly ~ exch ~ def
/driver.llx ~ exch ~ def
}
def
- /driver.annotation.ur
+ /driver.save.ur
{
currentpoint
/driver.ury ~ exch ~ def
/driver.urx ~ exch ~ def
}
def
- /driver.link.ll
+ /driver.save.linkll
{
currentpoint ~
driver.linkmargin ~ add ~
@@ -523,7 +537,7 @@
/driver.llx ~ exch ~ def
}
def
- /driver.link.ur
+ /driver.save.linkur
{
currentpoint ~
driver.linkmargin ~ sub ~
@@ -536,6 +550,44 @@
}
\__driver_postscript_header:n
{
+ /driver.dest.anchor
+ {
+ currentpoint ~ exch ~
+ driver.dvi.pt ~ 72 ~ add ~
+ /driver.dest.x ~ exch ~ def ~
+ driver.dvi.pt ~
+ vsize ~ 72 ~ sub ~ exch ~ sub ~
+ /driver.dest.y ~ exch ~ def
+ }
+ def
+ /driver.dest.point
+ { driver.dest.x ~ driver.dest.y } def
+ /driver.dest2device
+ {
+ /driver.dest.y ~ exch ~ def
+ /driver.dest.x ~ exch ~ def ~
+ matrix ~ currentmatrix ~
+ matrix ~ defaultmatrix ~
+ matrix ~ invertmatrix ~
+ matrix ~ concatmatrix ~
+ cvx ~ exec
+ /driver.dev.y ~ exch ~ def
+ /driver.dev.x ~ exch ~ def
+ /driver.tmpd ~ exch ~ def
+ /driver.tmpc ~ exch ~ def
+ /driver.tmpb ~ exch ~ def
+ /driver.tmpa ~ exch ~ def ~
+ driver.dest.x ~ driver.tmpa ~ mul ~
+ driver.dest.y ~ driver.tmpc ~ mul ~ add ~
+ driver.dev.x ~ add ~
+ driver.dest.x ~ driver.tmpb ~ mul ~
+ driver.dest.y ~ driver.tmpd ~ mul ~ add ~
+ driver.dev.y ~ add
+ }
+ def
+ }
+\__driver_postscript_header:n
+ {
/driver.bordertracking ~ false ~ def
/driver.bordertracking.begin
{
@@ -640,7 +692,7 @@
currentpoint ~ driver.originy ~ ne ~ exch ~
driver.originx ~ ne ~ or
{
- driver.link.ll
+ driver.save.linkll
/driver.lly ~
driver.lly ~ driver.outerbox ~ 1 ~ get ~ sub ~ def ~
driver.bordertracking.begin
@@ -661,7 +713,7 @@
currentpoint ~
driver.originy ~ ne ~ exch ~ driver.originx ~ ne ~ or
{
- driver.link.ll
+ driver.save.linkll
/driver.lly ~
driver.lly ~ driver.outerbox ~ 1 ~ get ~ sub ~ def ~
driver.bordertracking.begin
@@ -838,37 +890,36 @@
\__driver_pdf_annotation:nnnn {#1} {#2} {#3} {#4}
\int_gincr:N \g__driver_pdf_object_int
\int_gset_eq:NN \g__driver_pdf_annotation_int \g__driver_pdf_object_int
- \__driver_postscript:x
+ \__driver_pdfmark:x
{
- mark
- /_objdef { driver.obj \int_use:N \g__driver_pdf_object_int }
- driver.annotation.border ~
- #4 ~
- /ANN ~ pdfmark
+
+ /_objdef { driver.obj \int_use:N \g__driver_pdf_object_int }
+ driver.rect ~
+ #4 ~
+ /ANN
}
}
\cs_new_protected:Npn \__driver_pdf_annotation:nnnn #1#2#3#4
{
\box_move_down:nn {#3}
- { \hbox:n { \__driver_postscript:n { driver.annotation.ll } } }
+ { \hbox:n { \__driver_postscript:n { driver.save.ll } } }
\hbox:n {#4}
\box_move_up:nn {#2}
{
\hbox:n
{
\tex_kern:D \dim_eval:n {#1} \scan_stop:
- \__driver_postscript:n { driver.annotation.ur }
+ \__driver_postscript:n { driver.save.ur }
}
}
\int_gincr:N \g__driver_pdf_object_int
\int_gset_eq:NN \g__driver_pdf_annotation_int \g__driver_pdf_object_int
- \__driver_postscript:x
+ \__driver_pdfmark:x
{
- mark
- /_objdef { driver.obj \int_use:N \g__driver_pdf_object_int }
- driver.annotation.border ~
- \c__driver_pdf_AR_fix_tl
- /ANN ~ pdfmark
+ /_objdef { driver.obj \int_use:N \g__driver_pdf_object_int }
+ driver.rect ~
+ \c__driver_pdf_AR_fix_tl
+ /ANN
}
}
\cs_new:Npn \driver_pdf_annotation_last:
@@ -933,20 +984,20 @@
{ \evensidemargin }
}
\box_move_down:nn { \box_dp:N \l__driver_pdf_content_box }
- { \hbox:n { \__driver_postscript:n { driver.link.ll } } }
+ { \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 }
\box_move_up:nn { \box_ht:N \l__driver_pdf_content_box }
{
\hbox:n
- { \__driver_postscript:n { driver.link.ur } }
+ { \__driver_postscript:n { driver.save.linkur } }
}
\__driver_postscript:x
{
mark
\g__driver_pdf_link_dict_tl /Subtype /Link ~
- driver.annotation.border
+ driver.rect
/ANN ~ driver.pdfmark
}
\__driver_pdf_link_sf_restore:
@@ -1044,6 +1095,55 @@
/driver.linkmargin { \dim_to_decimal:n {#1} ~ driver.pt.dvi } def
}
}
+\cs_new_protected:Npn \driver_pdf_destination:nn #1#2
+ {
+ \__driver_postscript:n { driver.dest.anchor }
+ \__driver_pdfmark:x
+ {
+ /View
+ [
+ \str_case:nnF {#2}
+ {
+ { xyz } { /XYZ ~ driver.dest.point ~ null }
+ { fit } { /Fit }
+ { fitb } { /FitB }
+ { fitbh } { /FitBH ~ driver.dest.y }
+ { fitbv } { /FitBV ~ driver.dest.x }
+ { fith } { /FitH ~ driver.dest.y }
+ { fitv } { /FitV ~ driver.dest.x }
+ }
+ {
+ /XYZ ~ driver.dest.point ~ \fp_eval:n { (#2) / 100 }
+ }
+ ]
+ /Dest ( \exp_not:n {#1} ) cvn
+ /DEST
+ }
+ }
+\cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
+ {
+ \group_begin:
+ \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
+ \box_move_down:nn
+ { \box_dp:N \l__driver_pdf_tmp_box }
+ { \hbox:n { \__driver_postscript:n { driver.save.ll } } }
+ \box_use:N \l__driver_pdf_tmp_box
+ \box_move_up:nn
+ { \box_ht:N \l__driver_pdf_tmp_box }
+ { \hbox:n { \__driver_postscript:n { driver.save.ur } } }
+ \__driver_pdfmark:n
+ {
+ /View
+ [
+ /FitR ~
+ driver.llx ~ driver.lly ~ driver.dest2device ~
+ driver.urx ~ driver.ury ~ driver.dest2device
+ ]
+ /Dest ( #1 ) cvn
+ /DEST
+ }
+ \group_end:
+ }
\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 { }
\cs_new_protected:Npn \driver_pdf_objects_enable: { }
\cs_new_protected:Npn \driver_pdf_objects_disable: { }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
index 8594ca95919..ffb86659911 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
@@ -469,6 +469,9 @@
%% File: l3drivers-pdf.dtx
\tl_const:Nn \c__driver_pdf_AR_fix_tl
{ /Ff ~ 65537 /FT /Btn /Subtype /Widget }
+\box_new:N \l__driver_pdf_tmp_box
+\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2 { }
+\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2 { }
\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2 { }
\cs_new:Npn \driver_pdf_object_ref:n #1 { }
\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2 { }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
index 1f1d6f61676..7bfb6d120ad 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
@@ -424,6 +424,7 @@
%% File: l3drivers-pdf.dtx
\tl_const:Nn \c__driver_pdf_AR_fix_tl
{ /Ff ~ 65537 /FT /Btn /Subtype /Widget }
+\box_new:N \l__driver_pdf_tmp_box
\cs_new_protected:Npx \__driver_pdf_AR_fix:
{
\cs_if_exist:NTF \tex_pdfextension:D
@@ -485,6 +486,54 @@
{ \exp_not:N \tex_pdflinkmargin:D }
\exp_not:N \dim_eval:n {#1} \scan_stop:
}
+\cs_new_protected:Npx \driver_pdf_destination:nn #1#2
+ {
+ \cs_if_exist:NTF \tex_pdfextension:D
+ { \exp_not:N \tex_pdfextension:D dest ~ }
+ { \exp_not:N \tex_pdfdest:D }
+ name {#1}
+ \exp_not:N \str_case:nnF {#2}
+ {
+ { xyz } { xyz }
+ { fit } { fit }
+ { fitb } { fitb }
+ { fitbh } { fitbh }
+ { fitbv } { fitbv }
+ { fith } { fith }
+ { fitv } { fitv }
+ }
+ { xyz ~ zoom \exp_not:N \fp_eval:n { #2 * 10 } }
+ \scan_stop:
+ }
+\cs_new_protected:Npx \driver_pdf_destination_rectangle:nn #1#2
+ {
+ \group_begin:
+ \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
+ \cs_if_exist:NTF \tex_pdfextension:D
+ { \exp_not:N \tex_pdfextension:D dest ~ }
+ { \exp_not:N \tex_pdfdest:D }
+ name {#1}
+ fitr ~
+ width \exp_not:N \box_wd:N \l__driver_pdf_tmp_box
+ height \exp_not:N \box_ht:N \l__driver_pdf_tmp_box
+ depth \exp_not:N \box_dp:N \l__driver_pdf_tmp_box
+ \box_use:N \l__driver_pdf_tmp_box
+ \group_end:
+ }
+\cs_new_protected:Npx \driver_pdf_catalog_gput:nn #1#2
+ {
+ \cs_if_exist:NTF \tex_pdfextension:D
+ { \tex_pdfextension:D catalog }
+ { \tex_pdfcatalog:D }
+ { / #1 ~ #2 }
+ }
+\cs_new_protected:Npx \driver_pdf_info_gput:nn #1#2
+ {
+ \cs_if_exist:NTF \tex_pdfextension:D
+ { \tex_pdfextension:D info }
+ { \tex_pdfinfo:D }
+ { / #1 ~ #2 }
+ }
\prop_new:N \g__driver_pdf_object_prop
\group_begin:
\cs_set_protected:Npn \__driver_tmp:w #1#2
@@ -493,7 +542,7 @@
{
#1 reserveobjnum ~
\int_const:cn
- { g__driver_pdf_object_ \exp_not:N \tl_to_str:n {##1} _int }
+ { c__driver_pdf_object_ \exp_not:N \tl_to_str:n {##1} _int }
{#2}
\prop_gput:Nnn \exp_not:N \g__driver_pdf_object_prop {##1} {##2}
}
@@ -502,12 +551,12 @@
{
\__driver_tmp:w
{ \tex_pdfextension:D obj ~ }
- { \tex_pdffeedback:D lastobj \scan_stop: }
+ { \exp_not:N \tex_pdffeedback:D lastobj \scan_stop: }
}
{ \__driver_tmp:w { \tex_pdfobj:D } { \tex_pdflastobj:D } }
\group_end:
\cs_new:Npn \driver_pdf_object_ref:n #1
- { \int_use:c { g__driver_pdf_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
+ { \int_use:c { c__driver_pdf_object_ \tl_to_str:n {#1} _int } ~ 0 ~ R }
\group_begin:
\cs_set_protected:Npn \__driver_tmp:w #1
{
@@ -515,7 +564,7 @@
{
\tex_immediate:D #1 useobjnum ~
\int_use:c
- { g__driver_pdf_object_ \tl_to_str:n {##1} _int }
+ { c__driver_pdf_object_ \tl_to_str:n {##1} _int }
\str_case_e:nn
{ \prop_item:Nn \g__driver_pdf_object_prop {##1} }
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
index 17fd5e7aff5..b5256daff29 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
@@ -480,9 +480,14 @@
%% File: l3drivers-pdf.dtx
\tl_const:Nn \c__driver_pdf_AR_fix_tl
{ /Ff ~ 65537 /FT /Btn /Subtype /Widget }
+\box_new:N \l__driver_pdf_tmp_box
\cs_new_protected:Npx \__driver_pdf:n #1
{ \__driver_literal:n { pdf: #1 } }
\cs_generate_variant:Nn \__driver_pdf:n { x }
+\cs_new_protected:Npn \driver_pdf_catalog_gput:nn #1#2
+ { \__driver_pdf:n { put ~ @catalog << /#1 ~ #2 >> } }
+\cs_new_protected:Npn \driver_pdf_info_gput:nn #1#2
+ { \__driver_pdf:n { docinfo << /#1 ~ #2 >> } }
\int_new:N \g__driver_pdf_object_int
\prop_new:N \g__driver_pdf_object_prop
\cs_new_protected:Npn \driver_pdf_object_new:nn #1#2
@@ -600,7 +605,60 @@
\cs_new_protected:Npn \driver_pdf_link_end:
{ \__driver_pdf:n { eann } }
\cs_new:Npn \driver_pdf_link_last: { }
-\cs_new_protected:Npn \driver_pdf_link_margin:n #1 { }
+\cs_new_protected:Npn \driver_pdf_link_margin:n #1
+ { \__driver_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } }
+\cs_new_protected:Npn \driver_pdf_destination:nn #1#2
+ {
+ \__driver_pdf:x
+ {
+ dest ~ ( \exp_not:n {#1} )
+ [
+ @thispage
+ \str_case:nnF {#2}
+ {
+ { xyz } { /XYZ ~ @xpos ~ @ypos ~ null }
+ { fit } { /Fit }
+ { fitb } { /FitB }
+ { fitbh } { /FitBH }
+ { fitbv } { /FitBV ~ @xpos }
+ { fith } { /FitH ~ @ypos }
+ { fitv } { /FitV ~ @xpos }
+ }
+ { /XYZ ~ @xpos ~ @ypos ~ \fp_eval:n { (#2) / 100 } }
+ ]
+ }
+ }
+\cs_new_protected:Npn \driver_pdf_destination_rectangle:nn #1#2
+ {
+ \group_begin:
+ \hbox_set:Nn \l__driver_pdf_tmp_box {#2}
+ \box_move_down:nn { \box_dp:N \l__driver_pdf_tmp_box }
+ {
+ \hbox:n
+ {
+ \__driver_pdf:n { obj ~ @driver_#1_llx ~ @xpos }
+ \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos }
+ }
+ }
+ \box_use:N \l__driver_pdf_tmp_box
+ \box_move_up:nn { \box_ht:N \l__driver_pdf_tmp_box }
+ {
+ \hbox:n
+ {
+ \__driver_pdf:n
+ {
+ dest ~ (#1)
+ [
+ @thispage
+ /FitR ~
+ @driver_#1_llx ~ @driver_#1_lly ~
+ @xpos ~ @ypos
+ ]
+ }
+ }
+ }
+ \group_end:
+ }
\cs_new_protected:Npn \driver_pdf_compresslevel:n #1
{ \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
\cs_new_protected:Npn \driver_pdf_objects_enable: { }
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index f1b0e45e22b..c5a7c0c6a6c 100644
--- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{l3keys2e}{2019-03-05}{}
+\ProvidesExplPackage{l3keys2e}{2019-05-03}{}
{LaTeX2e option processing using LaTeX3 keys}
\cs_generate_variant:Nn \clist_put_right:Nn { Nv }
\cs_generate_variant:Nn \keys_if_exist:nnT { nx }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
index 4d6e3a626a4..612f3c0e235 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty
@@ -33,7 +33,7 @@
\endinput
}
\RequirePackage{xparse}
-\ProvidesExplPackage{xfp}{2019-03-05}{}
+\ProvidesExplPackage{xfp}{2019-05-03}{}
{L3 Floating point unit}
\NewExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} }
\NewExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} }
diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
index baa729d56af..d102c8ad839 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty
@@ -33,7 +33,7 @@
\endinput
}
\RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate}
-\ProvidesExplPackage{xfrac}{2019-03-05}{}
+\ProvidesExplPackage{xfrac}{2019-05-03}{}
{L3 Experimental split-level fractions}
\keys_define:nn { xfrac }
{
diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
index 91b35fd7c7b..ff8f6bca7ca 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xparse}{2019-03-05}{}
+\ProvidesExplPackage{xparse}{2019-05-03}{}
{L3 Experimental document command parser}
\tl_new:N \l__xparse_arg_spec_tl
\tl_new:N \l__xparse_args_tl
@@ -238,6 +238,7 @@
}
\cs_new_protected:Npn \__xparse_start_env:nnnnn #1#2
{
+ \cs_if_exist_use:N \conditionally@traceoff
\str_set:Nn \l__xparse_environment_str {#2}
\bool_set_true:N \l__xparse_environment_bool
\__xparse_start_aux:ccnnnn
@@ -247,6 +248,7 @@
}
\cs_new_protected:Npx \__xparse_start:nNNnnn #1#2#3
{
+ \exp_not:n { \cs_if_exist_use:N \conditionally@traceoff }
\exp_not:c { xparse~function~is~not~expandable }
\exp_not:n { \bool_set_false:N \l__xparse_environment_bool }
\exp_not:N \__xparse_start_aux:NNnnnn
@@ -266,6 +268,7 @@
{
\tl_if_empty:NF \l__xparse_defaults_tl { \__xparse_defaults: }
\tl_if_empty:NF \l__xparse_process_all_tl { \__xparse_args_process: }
+ \cs_if_exist_use:N \conditionally@traceon
\exp_after:wN \l__xparse_fn_code_tl \l__xparse_args_tl
}
\cs_new_protected:Npn \__xparse_defaults:
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 2d812c53b7e..ecbef06db2f 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -32,7 +32,7 @@
}%
\endinput
}
-\ProvidesExplPackage{xtemplate}{2019-03-05}{}
+\ProvidesExplPackage{xtemplate}{2019-05-03}{}
{L3 Experimental prototype document functions}
\tl_const:Nn \c__xtemplate_code_root_tl { template~code~>~ }
\tl_const:Nn \c__xtemplate_defaults_root_tl { template~defaults~>~ }