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.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty62
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty8
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty104
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty574
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def206
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def156
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def190
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def74
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def95
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def144
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def93
-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.tex1422
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty5
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls27
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def635
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvips.def1176
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def487
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def690
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def (renamed from Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def)8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def681
43 files changed, 1597 insertions, 5374 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty
index 6c8cdc9cfde..8bd62620334 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-05-28}{}
+\ProvidesExplPackage{l3benchmark}{2019-07-01}{}
{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 d25f70e3f34..cffe3a07e4d 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-05-28}{}
+\ProvidesExplPackage{l3cctab}{2019-07-01}{}
{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 1285abf7ae1..8450eb9e1ee 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-05-28}{}
+\ProvidesExplPackage{l3color}{2019-07-01}{}
{L3 Experimental color support}
\tl_new:N \l__color_internal_tl
\prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF }
@@ -86,7 +86,7 @@
\tl_new:N \l__color_next_value_tl
\cs_new_protected:Npn \color_parse:nN #1#2
{
- \driver_color_pickup:N \l__color_current_tl
+ \__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
}
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty
index e6a07862985..5b152e2b9b3 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-05-28}{}
+\ProvidesExplPackage{l3draw}{2019-07-01}{}
{L3 Experimental core drawing support}
\RequirePackage { l3color }
%% File: l3draw-boxes.dtx
@@ -60,7 +60,7 @@
{
\use:x
{
- \driver_draw_box_use:Nnnnn #1
+ \__draw_backend_box_use:Nnnnn #1
{ \fp_use:N \l__draw_matrix_a_fp }
{ \fp_use:N \l__draw_matrix_b_fp }
{ \fp_use:N \l__draw_matrix_c_fp }
@@ -149,10 +149,10 @@
\box_use_drop:N \l__draw_layer_main_box
}
{
- \driver_draw_scope_begin:
+ \__draw_backend_scope_begin:
\box_gset_wd:cn { g__draw_layer_ ##1 _box } { 0pt }
\box_use_drop:c { g__draw_layer_ ##1 _box }
- \driver_draw_scope_end:
+ \__draw_backend_scope_end:
}
}
}
@@ -696,11 +696,11 @@
\__draw_softpath_use:
\bool_if:NT \l__draw_path_use_clip_bool
{
- \driver_draw_clip:
+ \__draw_backend_clip:
\bool_lazy_or:nnF
{ \l__draw_path_use_fill_bool }
{ \l__draw_path_use_stroke_bool }
- { \driver_draw_discardpath: }
+ { \__draw_backend_discardpath: }
}
\bool_lazy_or:nnT
{ \l__draw_path_use_fill_bool }
@@ -708,7 +708,7 @@
{
\use:c
{
- driver_draw_
+ __draw_backend_
\bool_if:NT \l__draw_path_use_fill_bool { fill }
\bool_if:NT \l__draw_path_use_stroke_bool { stroke }
:
@@ -1218,7 +1218,7 @@
\group_begin:
\int_gincr:N \g__draw_id_int
\hbox_set:Nw \l__draw_main_box
- \driver_draw_begin:
+ \__draw_backend_begin:
\__draw_reset_bb:
\__draw_path_reset_limits:
\bool_set_true:N \l_draw_bb_update_bool
@@ -1239,7 +1239,7 @@
\exp_args:NNNV \hbox_set_end:
\clist_set:Nn \l_draw_layers_clist \l_draw_layers_clist
\__draw_layers_insert:
- \driver_draw_end:
+ \__draw_backend_end:
\hbox_set_end:
\dim_compare:nNnT \g__draw_xmin_dim = \c_max_dim
{
@@ -1268,7 +1268,7 @@
\tl_new:N \l__draw_stroke_color_tl
\cs_new_protected:Npn \draw_scope_begin:
{
- \driver_draw_scope_begin:
+ \__draw_backend_scope_begin:
\group_begin:
\dim_set_eq:NN \l__draw_linewidth_dim \g__draw_linewidth_dim
\draw_path_scope_begin:
@@ -1278,7 +1278,7 @@
\draw_path_scope_end:
\dim_gset_eq:NN \g__draw_linewidth_dim \l__draw_linewidth_dim
\group_end:
- \driver_draw_scope_end:
+ \__draw_backend_scope_end:
}
\dim_new:N \l__draw_xmax_dim
\dim_new:N \l__draw_xmin_dim
@@ -1385,24 +1385,24 @@
}
\cs_generate_variant:Nn \__draw_softpath_roundpoint:nn { VV }
\cs_new_protected:Npn \__draw_softpath_close_op:nn #1#2
- { \driver_draw_closepath: }
+ { \__draw_backend_closepath: }
\cs_new_protected:Npn \__draw_softpath_curveto_opi:nn #1#2
{ \__draw_softpath_curveto_opi:nnNnnNnn {#1} {#2} }
\cs_new_protected:Npn \__draw_softpath_curveto_opi:nnNnnNnn #1#2#3#4#5#6#7#8
- { \driver_draw_curveto:nnnnnn {#1} {#2} {#4} {#5} {#7} {#8} }
+ { \__draw_backend_curveto:nnnnnn {#1} {#2} {#4} {#5} {#7} {#8} }
\cs_new_protected:Npn \__draw_softpath_curveto_opii:nn #1#2
{ \__draw_softpath_curveto_opii:nn }
\cs_new_protected:Npn \__draw_softpath_curveto_opiii:nn #1#2
{ \__draw_softpath_curveto_opiii:nn }
\cs_new_protected:Npn \__draw_softpath_lineto_op:nn #1#2
- { \driver_draw_lineto:nn {#1} {#2} }
+ { \__draw_backend_lineto:nn {#1} {#2} }
\cs_new_protected:Npn \__draw_softpath_moveto_op:nn #1#2
- { \driver_draw_moveto:nn {#1} {#2} }
+ { \__draw_backend_moveto:nn {#1} {#2} }
\cs_new_protected:Npn \__draw_softpath_roundpoint_op:nn #1#2 { }
\cs_new_protected:Npn \__draw_softpath_rectangle_opi:nn #1#2
{ \__draw_softpath_rectangle_opi:nnNnn {#1} {#2} }
\cs_new_protected:Npn \__draw_softpath_rectangle_opi:nnNnn #1#2#3#4#5
- { \driver_draw_rectangle:nnnn {#1} {#2} {#4} {#5} }
+ { \__draw_backend_rectangle:nnnn {#1} {#2} {#4} {#5} }
\cs_new_protected:Npn \__draw_softpath_rectangle_opii:nn #1#2 { }
\tl_new:N \l__draw_softpath_main_tl
\tl_new:N \l__draw_softpath_part_tl
@@ -1641,7 +1641,7 @@
\cs_new_protected:Npn \draw_linewidth:n #1
{
\dim_gset:Nn \g__draw_linewidth_dim { \fp_to_dim:n {#1} }
- \driver_draw_linewidth:n \g__draw_linewidth_dim
+ \__draw_backend_linewidth:n \g__draw_linewidth_dim
}
\cs_new_protected:Npn \draw_dash_pattern:nn #1#2
{
@@ -1651,7 +1651,7 @@
{ \fp_to_dim:n {##1} }
\use:x
{
- \driver_draw_dash_pattern:nn
+ \__draw_backend_dash_pattern:nn
{ \seq_use:Nn \l__draw_tmp_seq { , } }
{ \fp_to_dim:n {#2} }
}
@@ -1659,15 +1659,15 @@
}
\seq_new:N \l__draw_tmp_seq
\cs_new_protected:Npn \draw_miterlimit:n #1
- { \driver_draw_miterlimit:n { \fp_eval:n {#1} } }
-\cs_new_protected:Npn \draw_cap_butt: { \driver_draw_cap_butt: }
-\cs_new_protected:Npn \draw_cap_rectangle: { \driver_draw_cap_rectangle: }
-\cs_new_protected:Npn \draw_cap_round: { \driver_draw_cap_round: }
-\cs_new_protected:Npn \draw_evenodd_rule: { \driver_draw_evenodd_rule: }
-\cs_new_protected:Npn \draw_nonzero_rule: { \driver_draw_nonzero_rule: }
-\cs_new_protected:Npn \draw_join_bevel: { \driver_draw_join_bevel: }
-\cs_new_protected:Npn \draw_join_miter: { \driver_draw_join_miter: }
-\cs_new_protected:Npn \draw_join_round: { \driver_draw_join_round: }
+ { \__draw_backend_miterlimit:n { \fp_eval:n {#1} } }
+\cs_new_protected:Npn \draw_cap_butt: { \__draw_backend_cap_butt: }
+\cs_new_protected:Npn \draw_cap_rectangle: { \__draw_backend_cap_rectangle: }
+\cs_new_protected:Npn \draw_cap_round: { \__draw_backend_cap_round: }
+\cs_new_protected:Npn \draw_evenodd_rule: { \__draw_backend_evenodd_rule: }
+\cs_new_protected:Npn \draw_nonzero_rule: { \__draw_backend_nonzero_rule: }
+\cs_new_protected:Npn \draw_join_bevel: { \__draw_backend_join_bevel: }
+\cs_new_protected:Npn \draw_join_miter: { \__draw_backend_join_miter: }
+\cs_new_protected:Npn \draw_join_round: { \__draw_backend_join_round: }
\tl_new:N \l__draw_color_tmp_tl
\cs_new_eq:NN \draw_color:n \color_select:n
\cs_new_protected:Npn \draw_color_fill:n #1
@@ -1685,13 +1685,13 @@
\cs_new_protected:Npn \__draw_color:nw #1#2 ~ #3 \q_stop
{ \use:c { __draw_color_ #2 :nw } {#1} #3 \q_stop }
\cs_new_protected:Npn \__draw_color_cmyk:nw #1#2 ~ #3 ~ #4 ~ #5 \q_stop
- { \use:c { driver_draw_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} }
+ { \use:c { __draw_backend_color_ #1 _cmyk:nnnn } {#2} {#3} {#4} {#5} }
\cs_new_protected:Npn \__draw_color_gray:nw #1#2 \q_stop
- { \use:c { driver_draw_color_ #1 _gray:n } {#2} }
+ { \use:c { __draw_backend_color_ #1 _gray:n } {#2} }
\cs_new_protected:Npn \__draw_color_rgb:nw #1#2 ~ #3 ~ #4 \q_stop
- { \use:c { driver_draw_color_ #1 _rgb:nnn } {#2} {#3} {#4} }
+ { \use:c { __draw_backend_color_ #1 _rgb:nnn } {#2} {#3} {#4} }
\cs_new_protected:Npn \__draw_color_spot:nw #1#2 ~ #3 \q_stop
- { \use:c { driver_draw_color_ #1 _spot:nn } {#2} {#3} }
+ { \use:c { __draw_backend_color_ #1 _spot:nn } {#2} {#3} }
%% File: l3draw-transforms.dtx
\bool_new:N \l__draw_matrix_active_bool
\fp_new:N \l__draw_matrix_a_fp
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty
index 361523ef595..1e171d1d2ee 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}{2019-05-28}{}
+\ProvidesExplPackage{l3graphics}{2019-07-01}{}
{L3 Experimental graphics inclusion support}
\ior_new:N \l__graphics_tmp_ior
\tl_new:N \l__graphics_tmp_tl
@@ -220,10 +220,10 @@
\cs_new_protected:Npn \__graphics_include_auxii:n #1
{
\mode_leave_vertical:
- \cs_if_exist:cTF { driver_graphics_include_ #1 :n }
+ \cs_if_exist:cTF { __graphics_backend_include_ #1 :n }
{
\tl_set_eq:NN \l_graphics_name_tl \l__graphics_name_tl
- \exp_args:NnV \use:c { driver_graphics_getbb_ #1 :n }
+ \exp_args:NnV \use:c { __graphics_backend_getbb_ #1 :n }
\l__graphics_name_tl
\seq_gput_right:NV \g__graphics_record_seq \l_graphics_name_tl
\clist_if_exist:NT \@filelist
@@ -264,7 +264,7 @@
{
\hbox_set:Nn \l__graphics_internal_box
{
- \exp_args:NnV \use:c { driver_graphics_include_ #1 :n }
+ \exp_args:NnV \use:c { __graphics_backend_include_ #1 :n }
\l__graphics_name_tl
}
\box_set_dp:Nn \l__graphics_internal_box { 0pt }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
new file mode 100644
index 00000000000..f2d48731832
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3pdf/l3pdf.sty
@@ -0,0 +1,104 @@
+%%
+%% This is file `l3pdf.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3pdf.dtx (with options: `package')
+%%
+%% Copyright (C) 2019 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 "l3pdf bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%%
+%% File: l3pdf.dtx
+\RequirePackage{expl3}
+\ProvidesExplPackage{l3pdf}{2019-07-01}{}
+ {L3 Experimental core PDF support}
+\bool_new:N \g__pdf_init_bool
+\cs_if_exist:NT \documentclass
+ {
+ \AtBeginDocument
+ { \bool_gset_true:N \g__pdf_init_bool }
+ }
+\cs_new_protected:Npn \pdf_uncompress:
+ {
+ \bool_if:NF \g__pdf_init_bool
+ {
+ \__pdf_backend_compresslevel:n { 0 }
+ \__pdf_backend_compress_objects:n { \c_false_bool }
+ }
+ }
+\cs_new_protected:Npn \pdf_object_new:nn #1#2
+ { \__pdf_backend_object_new:nn {#1} {#2} }
+\cs_new_protected:Npn \pdf_object_write:nn #1#2
+ { \__pdf_backend_object_write:nn {#1} {#2} }
+\cs_generate_variant:Nn \pdf_object_write:nn { nx }
+\cs_new:Npn \pdf_object_ref:n #1 { \__pdf_backend_object_ref:n {#1} }
+\cs_new_protected:Npn \pdf_object_now:nn #1#2
+ { \__pdf_backend_object_now:nn {#1} {#2} }
+\cs_generate_variant:Nn \pdf_object_now:nn { nx }
+\cs_new:Npn \pdf_object_last: { \__pdf_backend_object_last: }
+\prg_new_conditional:Npnn \pdf_version_compare:Nn #1#2 { p , T , F , TF }
+ { \use:c { __pdf_version_compare_ #1 :w } #2 . . \q_stop }
+\cs_new:cpn { __pdf_version_compare_=:w } #1 . #2 . #3 \q_stop
+ {
+ \bool_lazy_and:nnTF
+ { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
+ { \int_compare_p:nNn \__pdf_backend_version_minor: = {#2} }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\cs_new:cpn { __pdf_version_compare_<:w } #1 . #2 . #3 \q_stop
+ {
+ \bool_lazy_or:nnTF
+ { \int_compare_p:nNn \__pdf_backend_version_major: < {#1} }
+ {
+ \bool_lazy_and_p:nn
+ { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
+ { \int_compare_p:nNn \__pdf_backend_version_minor: < {#2} }
+ }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\cs_new:cpn { __pdf_version_compare_>:w } #1 . #2 . #3 \q_stop
+ {
+ \bool_lazy_or:nnTF
+ { \int_compare_p:nNn \__pdf_backend_version_major: > {#1} }
+ {
+ \bool_lazy_and_p:nn
+ { \int_compare_p:nNn \__pdf_backend_version_major: = {#1} }
+ { \int_compare_p:nNn \__pdf_backend_version_minor: > {#2} }
+ }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+\cs_new_protected:Npn \pdf_version_gset:n #1
+ { \__pdf_version_gset:w #1 . . \q_stop }
+\cs_new_protected:Npn \pdf_version_min_gset:n #1
+ {
+ \pdf_version_compare:NnT < {#1}
+ { \__pdf_version_gset:w #1 . . \q_stop }
+ }
+\cs_new_protected:Npn \__pdf_version_gset:w #1 . #2 . #3\q_stop
+ {
+ \bool_if:NF \g__pdf_init_bool
+ {
+ \__pdf_backend_version_major_gset:n {#1}
+ \__pdf_backend_version_minor_gset:n {#2}
+ }
+ }
+\cs_new:Npn \pdf_version:
+ { \__pdf_backend_version_major: . \__pdf_backend_version_minor: }
+\cs_new:Npn \pdf_version_major: { \__pdf_backend_version_major: }
+\cs_new:Npn \pdf_version_minor: { \__pdf_backend_version_minor: }
+%%
+%%
+%% End of file `l3pdf.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
deleted file mode 100644
index f9b7c2b0e02..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
+++ /dev/null
@@ -1,574 +0,0 @@
-%%
-%% This is file `l3str-convert.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `package')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\RequirePackage{expl3}
-\ProvidesExplPackage{l3str-convert}{2019-05-28}{}
- {L3 Experimental string encoding conversions}
-\cs_if_exist:NF \use_ii_i:nn
- { \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }
-\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 }
-\prop_new:N \g__str_alias_prop
-\prop_gput:Nnn \g__str_alias_prop { latin1 } { iso88591 }
-\prop_gput:Nnn \g__str_alias_prop { latin2 } { iso88592 }
-\prop_gput:Nnn \g__str_alias_prop { latin3 } { iso88593 }
-\prop_gput:Nnn \g__str_alias_prop { latin4 } { iso88594 }
-\prop_gput:Nnn \g__str_alias_prop { latin5 } { iso88599 }
-\prop_gput:Nnn \g__str_alias_prop { latin6 } { iso885910 }
-\prop_gput:Nnn \g__str_alias_prop { latin7 } { iso885913 }
-\prop_gput:Nnn \g__str_alias_prop { latin8 } { iso885914 }
-\prop_gput:Nnn \g__str_alias_prop { latin9 } { iso885915 }
-\prop_gput:Nnn \g__str_alias_prop { latin10 } { iso885916 }
-\prop_gput:Nnn \g__str_alias_prop { utf16le } { utf16 }
-\prop_gput:Nnn \g__str_alias_prop { utf16be } { utf16 }
-\prop_gput:Nnn \g__str_alias_prop { utf32le } { utf32 }
-\prop_gput:Nnn \g__str_alias_prop { utf32be } { utf32 }
-\prop_gput:Nnn \g__str_alias_prop { hexadecimal } { hex }
-\bool_new:N \g__str_error_bool
-\flag_new:n { str_byte }
-\flag_new:n { str_error }
-\prg_new_conditional:Npnn \__str_if_contains_char:NN #1#2 { T , TF }
- {
- \exp_after:wN \__str_if_contains_char_aux:NN \exp_after:wN #2
- #1 { \prg_break:n { ? \fi: } }
- \prg_break_point:
- \prg_return_false:
- }
-\prg_new_conditional:Npnn \__str_if_contains_char:nN #1#2 { TF }
- {
- \__str_if_contains_char_aux:NN #2 #1 { \prg_break:n { ? \fi: } }
- \prg_break_point:
- \prg_return_false:
- }
-\cs_new:Npn \__str_if_contains_char_aux:NN #1#2
- {
- \if_charcode:w #1 #2
- \exp_after:wN \__str_if_contains_char_true:
- \fi:
- \__str_if_contains_char_aux:NN #1
- }
-\cs_new:Npn \__str_if_contains_char_true:
- { \prg_break:n { \prg_return_true: \use_none:n } }
-\prg_new_conditional:Npnn \__str_octal_use:N #1 { TF }
- {
- \if_int_compare:w 1 < '1 \token_to_str:N #1 \exp_stop_f:
- #1 \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- }
-\prg_new_conditional:Npnn \__str_hexadecimal_use:N #1 { TF }
- {
- \if_int_compare:w 1 < "1 \token_to_str:N #1 \exp_stop_f:
- #1 \prg_return_true:
- \else:
- \if_case:w \int_eval:n { \exp_after:wN ` \token_to_str:N #1 - `a }
- A
- \or: B
- \or: C
- \or: D
- \or: E
- \or: F
- \else:
- \prg_return_false:
- \exp_after:wN \use_none:n
- \fi:
- \prg_return_true:
- \fi:
- }
-\group_begin:
- \tl_set:Nx \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } }
- \tl_map_inline:Nn \l__str_internal_tl
- {
- \tl_map_inline:Nn \l__str_internal_tl
- {
- \tl_const:cx { c__str_byte_ \int_eval:n {"#1##1} _tl }
- { \char_generate:nn { "#1##1 } { 12 } #1 ##1 }
- }
- }
-\group_end:
-\tl_const:cn { c__str_byte_-1_tl } { { } \use_none:n { } }
-\cs_new:Npn \__str_output_byte:n #1
- { \__str_output_byte:w #1 \__str_output_end: }
-\cs_new:Npn \__str_output_byte:w
- {
- \exp_after:wN \exp_after:wN
- \exp_after:wN \use_i:nnn
- \cs:w c__str_byte_ \int_eval:w
- }
-\cs_new:Npn \__str_output_hexadecimal:n #1
- {
- \exp_after:wN \exp_after:wN
- \exp_after:wN \use_none:n
- \cs:w c__str_byte_ \int_eval:n {#1} _tl \cs_end:
- }
-\cs_new:Npn \__str_output_end:
- { \scan_stop: _tl \cs_end: }
-\cs_new:Npn \__str_output_byte_pair_be:n #1
- {
- \exp_args:Nf \__str_output_byte_pair:nnN
- { \int_div_truncate:nn { #1 } { "100 } } {#1} \use:nn
- }
-\cs_new:Npn \__str_output_byte_pair_le:n #1
- {
- \exp_args:Nf \__str_output_byte_pair:nnN
- { \int_div_truncate:nn { #1 } { "100 } } {#1} \use_ii_i:nn
- }
-\cs_new:Npn \__str_output_byte_pair:nnN #1#2#3
- {
- #3
- { \__str_output_byte:n { #1 } }
- { \__str_output_byte:n { #2 - #1 * "100 } }
- }
-\cs_new_protected:Npn \__str_convert_gmap:N #1
- {
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_convert_gmap_loop:NN
- \exp_after:wN #1
- \g__str_result_tl { ? \prg_break: }
- \prg_break_point:
- }
- }
-\cs_new:Npn \__str_convert_gmap_loop:NN #1#2
- {
- \use_none:n #2
- #1#2
- \__str_convert_gmap_loop:NN #1
- }
-\cs_new_protected:Npn \__str_convert_gmap_internal:N #1
- {
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_convert_gmap_internal_loop:Nww
- \exp_after:wN #1
- \g__str_result_tl \s__tl \q_stop \prg_break: \s__tl
- \prg_break_point:
- }
- }
-\cs_new:Npn \__str_convert_gmap_internal_loop:Nww #1 #2 \s__tl #3 \s__tl
- {
- \use_none_delimit_by_q_stop:w #3 \q_stop
- #1 {#3}
- \__str_convert_gmap_internal_loop:Nww #1
- }
-\cs_new_protected:Npn \__str_if_flag_error:nnx #1
- {
- \flag_if_raised:nTF {#1}
- { \__kernel_msg_error:nnx { str } }
- { \use_none:nn }
- }
-\cs_new_protected:Npn \__str_if_flag_no_error:nnx #1#2#3
- { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } }
-\cs_new:Npn \__str_if_flag_times:nT #1#2
- { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } }
-\cs_new_protected:Npn \str_set_convert:Nnnn
- { \__str_convert:nNNnnn { } \tl_set_eq:NN }
-\cs_new_protected:Npn \str_gset_convert:Nnnn
- { \__str_convert:nNNnnn { } \tl_gset_eq:NN }
-\prg_new_protected_conditional:Npnn
- \str_set_convert:Nnnn #1#2#3#4 { T , F , TF }
- {
- \bool_gset_false:N \g__str_error_bool
- \__str_convert:nNNnnn
- { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
- \tl_set_eq:NN #1 {#2} {#3} {#4}
- \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
- }
-\prg_new_protected_conditional:Npnn
- \str_gset_convert:Nnnn #1#2#3#4 { T , F , TF }
- {
- \bool_gset_false:N \g__str_error_bool
- \__str_convert:nNNnnn
- { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
- \tl_gset_eq:NN #1 {#2} {#3} {#4}
- \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
- }
-\cs_new_protected:Npn \__str_convert:nNNnnn #1#2#3#4#5#6
- {
- \group_begin:
- #1
- \tl_gset:Nx \g__str_result_tl { \__kernel_str_to_other_fast:n {#4} }
- \exp_after:wN \__str_convert:wwwnn
- \tl_to_str:n {#5} /// \q_stop
- { decode } { unescape }
- \prg_do_nothing:
- \__str_convert_decode_:
- \exp_after:wN \__str_convert:wwwnn
- \tl_to_str:n {#6} /// \q_stop
- { encode } { escape }
- \use_ii_i:nn
- \__str_convert_encode_:
- \group_end:
- #2 #3 \g__str_result_tl
- }
-\cs_new_protected:Npn \__str_convert:wwwnn
- #1 / #2 // #3 \q_stop #4#5
- {
- \__str_convert:nnn {enc} {#4} {#1}
- \__str_convert:nnn {esc} {#5} {#2}
- \exp_args:Ncc \__str_convert:NNnNN
- { __str_convert_#4_#1: } { __str_convert_#5_#2: } {#2}
- }
-\cs_new_protected:Npn \__str_convert:NNnNN #1#2#3#4#5
- {
- \if_meaning:w #1 #5
- \tl_if_empty:nF {#3}
- { \__kernel_msg_error:nnx { str } { native-escaping } {#3} }
- #1
- \else:
- #4 #2 #1
- \fi:
- }
-\cs_new_protected:Npn \__str_convert:nnn #1#2#3
- {
- \cs_if_exist:cF { __str_convert_#2_#3: }
- {
- \exp_args:Nx \__str_convert:nnnn
- { \__str_convert_lowercase_alphanum:n {#3} }
- {#1} {#2} {#3}
- }
- }
-\cs_new_protected:Npn \__str_convert:nnnn #1#2#3#4
- {
- \cs_if_exist:cF { __str_convert_#3_#1: }
- {
- \prop_get:NnNF \g__str_alias_prop {#1} \l__str_internal_tl
- { \tl_set:Nn \l__str_internal_tl {#1} }
- \cs_if_exist:cF { __str_convert_#3_ \l__str_internal_tl : }
- {
- \file_if_exist:nTF { l3str-#2- \l__str_internal_tl .def }
- {
- \group_begin:
- \__str_load_catcodes:
- \file_input:n { l3str-#2- \l__str_internal_tl .def }
- \group_end:
- }
- {
- \tl_clear:N \l__str_internal_tl
- \__kernel_msg_error:nnxx { str } { unknown-#2 } {#4} {#1}
- }
- }
- \cs_if_exist:cF { __str_convert_#3_#1: }
- {
- \cs_gset_eq:cc { __str_convert_#3_#1: }
- { __str_convert_#3_ \l__str_internal_tl : }
- }
- }
- \cs_gset_eq:cc { __str_convert_#3_#4: } { __str_convert_#3_#1: }
- }
-\cs_new:Npn \__str_convert_lowercase_alphanum:n #1
- {
- \exp_after:wN \__str_convert_lowercase_alphanum_loop:N
- \tl_to_str:n {#1} { ? \prg_break: }
- \prg_break_point:
- }
-\cs_new:Npn \__str_convert_lowercase_alphanum_loop:N #1
- {
- \use_none:n #1
- \if_int_compare:w `#1 > `Z \exp_stop_f:
- \if_int_compare:w `#1 > `z \exp_stop_f: \else:
- \if_int_compare:w `#1 < `a \exp_stop_f: \else:
- #1
- \fi:
- \fi:
- \else:
- \if_int_compare:w `#1 < `A \exp_stop_f:
- \if_int_compare:w 1 < 1#1 \exp_stop_f:
- #1
- \fi:
- \else:
- \__str_output_byte:n { `#1 + `a - `A }
- \fi:
- \fi:
- \__str_convert_lowercase_alphanum_loop:N
- }
-\cs_new_protected:Npn \__str_load_catcodes:
- {
- \char_set_catcode_escape:N \\
- \char_set_catcode_group_begin:N \{
- \char_set_catcode_group_end:N \}
- \char_set_catcode_math_toggle:N \$
- \char_set_catcode_alignment:N \&
- \char_set_catcode_parameter:N \#
- \char_set_catcode_math_superscript:N \^
- \char_set_catcode_ignore:N \ %
- \char_set_catcode_space:N \~
- \tl_map_function:nN { abcdefghijklmnopqrstuvwxyz_:ABCDEFILNPSTUX }
- \char_set_catcode_letter:N
- \tl_map_function:nN { 0123456789"'?*+-.(),`!/<>[];= }
- \char_set_catcode_other:N
- \char_set_catcode_comment:N \%
- \int_set:Nn \tex_endlinechar:D {32}
- }
-\bool_lazy_any:nTF
- {
- \sys_if_engine_luatex_p:
- \sys_if_engine_xetex_p:
- }
- {
- \cs_new:Npn \__str_filter_bytes:n #1
- {
- \__str_filter_bytes_aux:N #1
- { ? \prg_break: }
- \prg_break_point:
- }
- \cs_new:Npn \__str_filter_bytes_aux:N #1
- {
- \use_none:n #1
- \if_int_compare:w `#1 < 256 \exp_stop_f:
- #1
- \else:
- \flag_raise:n { str_byte }
- \fi:
- \__str_filter_bytes_aux:N
- }
- }
- { \cs_new_eq:NN \__str_filter_bytes:n \use:n }
-\bool_lazy_any:nTF
- {
- \sys_if_engine_luatex_p:
- \sys_if_engine_xetex_p:
- }
- {
- \cs_new_protected:Npn \__str_convert_unescape_:
- {
- \flag_clear:n { str_byte }
- \tl_gset:Nx \g__str_result_tl
- { \exp_args:No \__str_filter_bytes:n \g__str_result_tl }
- \__str_if_flag_error:nnx { str_byte } { non-byte } { bytes }
- }
- }
- { \cs_new_protected:Npn \__str_convert_unescape_: { } }
-\cs_new_eq:NN \__str_convert_unescape_bytes: \__str_convert_unescape_:
-\cs_new_protected:Npn \__str_convert_escape_: { }
-\cs_new_eq:NN \__str_convert_escape_bytes: \__str_convert_escape_:
-\cs_new_protected:Npn \__str_convert_decode_:
- { \__str_convert_gmap:N \__str_decode_native_char:N }
-\cs_new:Npn \__str_decode_native_char:N #1
- { #1 \s__tl \int_value:w `#1 \s__tl }
-\bool_lazy_any:nTF
- {
- \sys_if_engine_luatex_p:
- \sys_if_engine_xetex_p:
- }
- {
- \cs_new_protected:Npn \__str_convert_encode_:
- { \__str_convert_gmap_internal:N \__str_encode_native_char:n }
- \cs_new:Npn \__str_encode_native_char:n #1
- { \char_generate:nn {#1} {12} }
- }
- {
- \cs_new_protected:Npn \__str_convert_encode_:
- {
- \flag_clear:n { str_error }
- \__str_convert_gmap_internal:N \__str_encode_native_char:n
- \__str_if_flag_error:nnx { str_error }
- { native-overflow } { }
- }
- \cs_new:Npn \__str_encode_native_char:n #1
- {
- \if_int_compare:w #1 > \c__str_max_byte_int
- \flag_raise:n { str_error }
- ?
- \else:
- \char_generate:nn {#1} {12}
- \fi:
- }
- \__kernel_msg_new:nnnn { str } { native-overflow }
- { Character~code~too~large~for~this~engine. }
- {
- This~engine~only~support~8-bit~characters:~
- valid~character~codes~are~in~the~range~[0,255].~
- To~manipulate~arbitrary~Unicode,~use~LuaTeX~or~XeTeX.
- }
- }
-\cs_new_protected:Npn \__str_convert_decode_clist:
- {
- \clist_gset:No \g__str_result_tl \g__str_result_tl
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_args:No \clist_map_function:nN
- \g__str_result_tl \__str_decode_clist_char:n
- }
- }
-\cs_new:Npn \__str_decode_clist_char:n #1
- { #1 \s__tl \int_eval:n {#1} \s__tl }
-\cs_new_protected:Npn \__str_convert_encode_clist:
- {
- \__str_convert_gmap_internal:N \__str_encode_clist_char:n
- \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
- {
- \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}
- }
-\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_decode_eight_bit_load:nn
- { \tl_use:c { c__str_encoding_#1_tl } }
- { \q_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 } }
- { \q_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
- {
- \use_none_delimit_by_q_stop:w #1 \q_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
- }
-\cs_new_protected:Npn \__str_decode_eight_bit_load_missing:n #1
- {
- \use_none_delimit_by_q_stop:w #1 \q_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
- }
-\cs_new:Npn \__str_decode_eight_bit_char:N #1
- {
- #1 \s__tl
- \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__tl
- }
-\cs_new_protected:Npn \__str_convert_encode_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 } }
- { \q_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_new_protected:Npn \__str_encode_eight_bit_load:nn #1#2
- {
- \use_none_delimit_by_q_stop:w #1 \q_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
- }
-\cs_new:Npn \__str_encode_eight_bit_char:n #1
- {
- \if_int_compare:w #1 > \c_max_register_int
- \flag_raise:n { str_error }
- \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}
- \fi:
- }
-\cs_new:Npn \__str_encode_eight_bit_char_aux:n #1
- {
- \if_int_compare:w #1 > \c__str_max_byte_int
- \flag_raise:n { str_error }
- \else:
- \__str_output_byte:n {#1}
- \fi:
- }
-\__kernel_msg_new:nnn { str } { unknown-esc }
- { Escaping~scheme~'#1'~(filtered:~'#2')~unknown. }
-\__kernel_msg_new:nnn { str } { unknown-enc }
- { Encoding~scheme~'#1'~(filtered:~'#2')~unknown. }
-\__kernel_msg_new:nnnn { str } { native-escaping }
- { The~'native'~encoding~scheme~does~not~support~any~escaping. }
- {
- Since~native~strings~do~not~consist~in~bytes,~
- none~of~the~escaping~methods~make~sense.~
- The~specified~escaping,~'#1',~will be ignored.
- }
-\__kernel_msg_new:nnn { str } { file-not-found }
- { File~'l3str-#1.def'~not~found. }
-\bool_lazy_any:nT
- {
- \sys_if_engine_luatex_p:
- \sys_if_engine_xetex_p:
- }
- {
- \__kernel_msg_new:nnnn { str } { non-byte }
- { String~invalid~in~escaping~'#1':~it~may~only~contain~bytes. }
- {
- Some~characters~in~the~string~you~asked~to~convert~are~not~
- 8-bit~characters.~Perhaps~the~string~is~a~'native'~Unicode~string?~
- If~it~is,~try~using\\
- \\
- \iow_indent:n
- {
- \iow_char:N\\str_set_convert:Nnnn \\
- \ \ <str~var>~\{~<string>~\}~\{~native~\}~\{~<target~encoding>~\}
- }
- }
- }
-\__kernel_msg_new:nnnn { str } { decode-8-bit }
- { Invalid~string~in~encoding~'#1'. }
- {
- LaTeX~came~across~a~byte~which~is~not~defined~to~represent~
- any~character~in~the~encoding~'#1'.
- }
-\__kernel_msg_new:nnnn { str } { encode-8-bit }
- { Unicode~string~cannot~be~converted~to~encoding~'#1'. }
- {
- The~encoding~'#1'~only~contains~a~subset~of~all~Unicode~characters.~
- LaTeX~was~asked~to~convert~a~string~to~that~encoding,~but~that~
- string~contains~a~character~that~'#1'~does~not~support.
- }
-%%
-%%
-%% End of file `l3str-convert.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def
deleted file mode 100644
index 3b54e12b16d..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf16.def
+++ /dev/null
@@ -1,206 +0,0 @@
-%%
-%% This is file `l3str-enc-utf16.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `utf16')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\group_begin:
- \char_set_catcode_other:N \^^fe
- \char_set_catcode_other:N \^^ff
- \cs_new_protected:cpn { __str_convert_encode_utf16: }
- {
- \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n
- \tl_gput_left:Nx \g__str_result_tl { ^^fe ^^ff }
- }
- \cs_new_protected:cpn { __str_convert_encode_utf16be: }
- { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n }
- \cs_new_protected:cpn { __str_convert_encode_utf16le: }
- { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_le:n }
- \cs_new_protected:Npn \__str_encode_utf_xvi_aux:N #1
- {
- \flag_clear:n { str_error }
- \cs_set_eq:NN \__str_tmp:w #1
- \__str_convert_gmap_internal:N \__str_encode_utf_xvi_char:n
- \__str_if_flag_error:nnx { str_error } { utf16-encode } { }
- }
- \cs_new:Npn \__str_encode_utf_xvi_char:n #1
- {
- \if_int_compare:w #1 < "D800 \exp_stop_f:
- \__str_tmp:w {#1}
- \else:
- \if_int_compare:w #1 < "10000 \exp_stop_f:
- \if_int_compare:w #1 < "E000 \exp_stop_f:
- \flag_raise:n { str_error }
- \__str_tmp:w { \c__str_replacement_char_int }
- \else:
- \__str_tmp:w {#1}
- \fi:
- \else:
- \exp_args:Nf \__str_tmp:w { \int_div_truncate:nn {#1} {"400} + "D7C0 }
- \exp_args:Nf \__str_tmp:w { \int_mod:nn {#1} {"400} + "DC00 }
- \fi:
- \fi:
- }
- \flag_clear_new:n { str_missing }
- \flag_clear_new:n { str_extra }
- \flag_clear_new:n { str_end }
- \__kernel_msg_new:nnnn { str } { utf16-encode }
- { Unicode~string~cannot~be~expressed~in~UTF-16:~surrogate. }
- {
- Surrogate~code~points~(in~the~range~[U+D800,~U+DFFF])~
- can~be~expressed~in~the~UTF-8~and~UTF-32~encodings,~
- but~not~in~the~UTF-16~encoding.
- }
- \__kernel_msg_new:nnnn { str } { utf16-decode }
- {
- Invalid~UTF-16~string:
- \exp_last_unbraced:Nf \use_none:n
- {
- \__str_if_flag_times:nT { str_missing } { ,~missing~trail~surrogate }
- \__str_if_flag_times:nT { str_extra } { ,~extra~trail~surrogate }
- \__str_if_flag_times:nT { str_end } { ,~odd~number~of~bytes }
- }
- .
- }
- {
- In~the~UTF-16~encoding,~each~Unicode~character~is~encoded~as~
- 2~or~4~bytes: \\
- \iow_indent:n
- {
- Code~point~in~[U+0000,~U+D7FF]:~two~bytes \\
- Code~point~in~[U+D800,~U+DFFF]:~illegal \\
- Code~point~in~[U+E000,~U+FFFF]:~two~bytes \\
- Code~point~in~[U+10000,~U+10FFFF]:~
- a~lead~surrogate~and~a~trail~surrogate \\
- }
- Lead~surrogates~are~pairs~of~bytes~in~the~range~[0xD800,~0xDBFF],~
- and~trail~surrogates~are~in~the~range~[0xDC00,~0xDFFF].
- \flag_if_raised:nT { str_missing }
- {
- \\\\
- A~lead~surrogate~was~not~followed~by~a~trail~surrogate.
- }
- \flag_if_raised:nT { str_extra }
- {
- \\\\
- LaTeX~came~across~a~trail~surrogate~when~it~was~not~expected.
- }
- \flag_if_raised:nT { str_end }
- {
- \\\\
- The~string~contained~an~odd~number~of~bytes.~This~is~invalid:~
- the~basic~code~unit~for~UTF-16~is~16~bits~(2~bytes).
- }
- }
- \cs_new_protected:cpn { __str_convert_decode_utf16be: }
- { \__str_decode_utf_xvi:Nw 1 \g__str_result_tl \s_stop }
- \cs_new_protected:cpn { __str_convert_decode_utf16le: }
- { \__str_decode_utf_xvi:Nw 2 \g__str_result_tl \s_stop }
- \cs_new_protected:cpn { __str_convert_decode_utf16: }
- {
- \exp_after:wN \__str_decode_utf_xvi_bom:NN
- \g__str_result_tl \s_stop \s_stop \s_stop
- }
- \cs_new_protected:Npn \__str_decode_utf_xvi_bom:NN #1#2
- {
- \str_if_eq:nnTF { #1#2 } { ^^ff ^^fe }
- { \__str_decode_utf_xvi:Nw 2 }
- {
- \str_if_eq:nnTF { #1#2 } { ^^fe ^^ff }
- { \__str_decode_utf_xvi:Nw 1 }
- { \__str_decode_utf_xvi:Nw 1 #1#2 }
- }
- }
- \cs_new_protected:Npn \__str_decode_utf_xvi:Nw #1#2 \s_stop
- {
- \flag_clear:n { str_error }
- \flag_clear:n { str_missing }
- \flag_clear:n { str_extra }
- \flag_clear:n { str_end }
- \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 }
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_decode_utf_xvi_pair:NN
- #2 \q_nil \q_nil
- \prg_break_point:
- }
- \__str_if_flag_error:nnx { str_error } { utf16-decode } { }
- }
- \cs_new:Npn \__str_decode_utf_xvi_pair:NN #1#2
- {
- \if_meaning:w \q_nil #2
- \__str_decode_utf_xvi_pair_end:Nw #1
- \fi:
- \if_case:w
- \int_eval:n { ( \__str_tmp:w #1#2 - "D6 ) / 4 } \scan_stop:
- \or: \exp_after:wN \__str_decode_utf_xvi_quad:NNwNN
- \or: \exp_after:wN \__str_decode_utf_xvi_extra:NNw
- \fi:
- #1#2 \s__tl
- \int_eval:n { "100 * \__str_tmp:w #1#2 + \__str_tmp:w #2#1 } \s__tl
- \__str_decode_utf_xvi_pair:NN
- }
- \cs_new:Npn \__str_decode_utf_xvi_quad:NNwNN
- #1#2 #3 \__str_decode_utf_xvi_pair:NN #4#5
- {
- \if_meaning:w \q_nil #5
- \__str_decode_utf_xvi_error:nNN { missing } #1#2
- \__str_decode_utf_xvi_pair_end:Nw #4
- \fi:
- \if_int_compare:w
- \if_int_compare:w \__str_tmp:w #4#5 < "DC \exp_stop_f:
- 0 = 1
- \else:
- \__str_tmp:w #4#5 < "E0
- \fi:
- \exp_stop_f:
- #1 #2 #4 #5 \s__tl
- \int_eval:n
- {
- ( "100 * \__str_tmp:w #1#2 + \__str_tmp:w #2#1 - "D7F7 ) * "400
- + "100 * \__str_tmp:w #4#5 + \__str_tmp:w #5#4
- }
- \s__tl
- \exp_after:wN \use_i:nnn
- \else:
- \__str_decode_utf_xvi_error:nNN { missing } #1#2
- \fi:
- \__str_decode_utf_xvi_pair:NN #4#5
- }
- \cs_new:Npn \__str_decode_utf_xvi_pair_end:Nw #1 \fi:
- {
- \fi:
- \if_meaning:w \q_nil #1
- \else:
- \__str_decode_utf_xvi_error:nNN { end } #1 \prg_do_nothing:
- \fi:
- \prg_break:
- }
- \cs_new:Npn \__str_decode_utf_xvi_extra:NNw #1#2 \s__tl #3 \s__tl
- { \__str_decode_utf_xvi_error:nNN { extra } #1#2 }
- \cs_new:Npn \__str_decode_utf_xvi_error:nNN #1#2#3
- {
- \flag_raise:n { str_error }
- \flag_raise:n { str_#1 }
- #2 #3 \s__tl
- \int_use:N \c__str_replacement_char_int \s__tl
- }
-\group_end:
-%%
-%%
-%% End of file `l3str-enc-utf16.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def
deleted file mode 100644
index 307e629071a..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf32.def
+++ /dev/null
@@ -1,156 +0,0 @@
-%%
-%% This is file `l3str-enc-utf32.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `utf32')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\group_begin:
- \char_set_catcode_other:N \^^00
- \char_set_catcode_other:N \^^fe
- \char_set_catcode_other:N \^^ff
- \cs_new_protected:cpn { __str_convert_encode_utf32: }
- {
- \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n
- \tl_gput_left:Nx \g__str_result_tl { ^^00 ^^00 ^^fe ^^ff }
- }
- \cs_new_protected:cpn { __str_convert_encode_utf32be: }
- { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n }
- \cs_new_protected:cpn { __str_convert_encode_utf32le: }
- { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_le:n }
- \cs_new:Npn \__str_encode_utf_xxxii_be:n #1
- {
- \exp_args:Nf \__str_encode_utf_xxxii_be_aux:nn
- { \int_div_truncate:nn {#1} { "100 } } {#1}
- }
- \cs_new:Npn \__str_encode_utf_xxxii_be_aux:nn #1#2
- {
- ^^00
- \__str_output_byte_pair_be:n {#1}
- \__str_output_byte:n { #2 - #1 * "100 }
- }
- \cs_new:Npn \__str_encode_utf_xxxii_le:n #1
- {
- \exp_args:Nf \__str_encode_utf_xxxii_le_aux:nn
- { \int_div_truncate:nn {#1} { "100 } } {#1}
- }
- \cs_new:Npn \__str_encode_utf_xxxii_le_aux:nn #1#2
- {
- \__str_output_byte:n { #2 - #1 * "100 }
- \__str_output_byte_pair_le:n {#1}
- ^^00
- }
- \flag_clear_new:n { str_overflow }
- \flag_clear_new:n { str_end }
- \__kernel_msg_new:nnnn { str } { utf32-decode }
- {
- Invalid~UTF-32~string:
- \exp_last_unbraced:Nf \use_none:n
- {
- \__str_if_flag_times:nT { str_overflow } { ,~code~point~too~large }
- \__str_if_flag_times:nT { str_end } { ,~truncated~string }
- }
- .
- }
- {
- In~the~UTF-32~encoding,~every~Unicode~character~
- (in~the~range~[U+0000,~U+10FFFF])~is~encoded~as~4~bytes.
- \flag_if_raised:nT { str_overflow }
- {
- \\\\
- LaTeX~came~across~a~code~point~larger~than~1114111,~
- the~maximum~code~point~defined~by~Unicode.~
- Perhaps~the~string~was~not~encoded~in~the~UTF-32~encoding?
- }
- \flag_if_raised:nT { str_end }
- {
- \\\\
- The~length~of~the~string~is~not~a~multiple~of~4.~
- Perhaps~the~string~was~truncated?
- }
- }
- \cs_new_protected:cpn { __str_convert_decode_utf32be: }
- { \__str_decode_utf_xxxii:Nw 1 \g__str_result_tl \s_stop }
- \cs_new_protected:cpn { __str_convert_decode_utf32le: }
- { \__str_decode_utf_xxxii:Nw 2 \g__str_result_tl \s_stop }
- \cs_new_protected:cpn { __str_convert_decode_utf32: }
- {
- \exp_after:wN \__str_decode_utf_xxxii_bom:NNNN \g__str_result_tl
- \s_stop \s_stop \s_stop \s_stop \s_stop
- }
- \cs_new_protected:Npn \__str_decode_utf_xxxii_bom:NNNN #1#2#3#4
- {
- \str_if_eq:nnTF { #1#2#3#4 } { ^^ff ^^fe ^^00 ^^00 }
- { \__str_decode_utf_xxxii:Nw 2 }
- {
- \str_if_eq:nnTF { #1#2#3#4 } { ^^00 ^^00 ^^fe ^^ff }
- { \__str_decode_utf_xxxii:Nw 1 }
- { \__str_decode_utf_xxxii:Nw 1 #1#2#3#4 }
- }
- }
- \cs_new_protected:Npn \__str_decode_utf_xxxii:Nw #1#2 \s_stop
- {
- \flag_clear:n { str_overflow }
- \flag_clear:n { str_end }
- \flag_clear:n { str_error }
- \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 }
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_decode_utf_xxxii_loop:NNNN
- #2 \s_stop \s_stop \s_stop \s_stop
- \prg_break_point:
- }
- \__str_if_flag_error:nnx { str_error } { utf32-decode } { }
- }
- \cs_new:Npn \__str_decode_utf_xxxii_loop:NNNN #1#2#3#4
- {
- \if_meaning:w \s_stop #4
- \exp_after:wN \__str_decode_utf_xxxii_end:w
- \fi:
- #1#2#3#4 \s__tl
- \if_int_compare:w \__str_tmp:w #1#4 > 0 \exp_stop_f:
- \flag_raise:n { str_overflow }
- \flag_raise:n { str_error }
- \int_use:N \c__str_replacement_char_int
- \else:
- \if_int_compare:w \__str_tmp:w #2#3 > 16 \exp_stop_f:
- \flag_raise:n { str_overflow }
- \flag_raise:n { str_error }
- \int_use:N \c__str_replacement_char_int
- \else:
- \int_eval:n
- { \__str_tmp:w #2#3*"10000 + \__str_tmp:w #3#2*"100 + \__str_tmp:w #4#1 }
- \fi:
- \fi:
- \s__tl
- \__str_decode_utf_xxxii_loop:NNNN
- }
- \cs_new:Npn \__str_decode_utf_xxxii_end:w #1 \s_stop
- {
- \tl_if_empty:nF {#1}
- {
- \flag_raise:n { str_end }
- \flag_raise:n { str_error }
- #1 \s__tl
- \int_use:N \c__str_replacement_char_int \s__tl
- }
- \prg_break:
- }
-\group_end:
-%%
-%%
-%% End of file `l3str-enc-utf32.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def
deleted file mode 100644
index fe9fd31ee87..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-utf8.def
+++ /dev/null
@@ -1,190 +0,0 @@
-%%
-%% This is file `l3str-enc-utf8.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `utf8')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\cs_new_protected:cpn { __str_convert_encode_utf8: }
- { \__str_convert_gmap_internal:N \__str_encode_utf_viii_char:n }
-\cs_new:Npn \__str_encode_utf_viii_char:n #1
- {
- \__str_encode_utf_viii_loop:wwnnw #1 ; - 1 + 0 * ;
- { 128 } { 0 }
- { 32 } { 192 }
- { 16 } { 224 }
- { 8 } { 240 }
- \q_stop
- }
-\cs_new:Npn \__str_encode_utf_viii_loop:wwnnw #1; #2; #3#4 #5 \q_stop
- {
- \if_int_compare:w #1 < #3 \exp_stop_f:
- \__str_output_byte:n { #1 + #4 }
- \exp_after:wN \use_none_delimit_by_q_stop:w
- \fi:
- \exp_after:wN \__str_encode_utf_viii_loop:wwnnw
- \int_value:w \int_div_truncate:nn {#1} {64} ; #1 ;
- #5 \q_stop
- \__str_output_byte:n { #2 - 64 * ( #1 - 2 ) }
- }
-\flag_clear_new:n { str_missing }
-\flag_clear_new:n { str_extra }
-\flag_clear_new:n { str_overlong }
-\flag_clear_new:n { str_overflow }
-\__kernel_msg_new:nnnn { str } { utf8-decode }
- {
- Invalid~UTF-8~string:
- \exp_last_unbraced:Nf \use_none:n
- {
- \__str_if_flag_times:nT { str_missing } { ,~missing~continuation~byte }
- \__str_if_flag_times:nT { str_extra } { ,~extra~continuation~byte }
- \__str_if_flag_times:nT { str_overlong } { ,~overlong~form }
- \__str_if_flag_times:nT { str_overflow } { ,~code~point~too~large }
- }
- .
- }
- {
- In~the~UTF-8~encoding,~each~Unicode~character~consists~in~
- 1~to~4~bytes,~with~the~following~bit~pattern: \\
- \iow_indent:n
- {
- Code~point~\ \ \ \ <~128:~0xxxxxxx \\
- Code~point~\ \ \ <~2048:~110xxxxx~10xxxxxx \\
- Code~point~\ \ <~65536:~1110xxxx~10xxxxxx~10xxxxxx \\
- Code~point~ <~1114112:~11110xxx~10xxxxxx~10xxxxxx~10xxxxxx \\
- }
- Bytes~of~the~form~10xxxxxx~are~called~continuation~bytes.
- \flag_if_raised:nT { str_missing }
- {
- \\\\
- A~leading~byte~(in~the~range~[192,255])~was~not~followed~by~
- the~appropriate~number~of~continuation~bytes.
- }
- \flag_if_raised:nT { str_extra }
- {
- \\\\
- LaTeX~came~across~a~continuation~byte~when~it~was~not~expected.
- }
- \flag_if_raised:nT { str_overlong }
- {
- \\\\
- Every~Unicode~code~point~must~be~expressed~in~the~shortest~
- possible~form.~For~instance,~'0xC0'~'0x83'~is~not~a~valid~
- representation~for~the~code~point~3.
- }
- \flag_if_raised:nT { str_overflow }
- {
- \\\\
- Unicode~limits~code~points~to~the~range~[0,1114111].
- }
- }
-\cs_new_protected:cpn { __str_convert_decode_utf8: }
- {
- \flag_clear:n { str_error }
- \flag_clear:n { str_missing }
- \flag_clear:n { str_extra }
- \flag_clear:n { str_overlong }
- \flag_clear:n { str_overflow }
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_decode_utf_viii_start:N \g__str_result_tl
- { \prg_break: \__str_decode_utf_viii_end: }
- \prg_break_point:
- }
- \__str_if_flag_error:nnx { str_error } { utf8-decode } { }
- }
-\cs_new:Npn \__str_decode_utf_viii_start:N #1
- {
- #1
- \if_int_compare:w `#1 < "C0 \exp_stop_f:
- \s__tl
- \if_int_compare:w `#1 < "80 \exp_stop_f:
- \int_value:w `#1
- \else:
- \flag_raise:n { str_extra }
- \flag_raise:n { str_error }
- \int_use:N \c__str_replacement_char_int
- \fi:
- \else:
- \exp_after:wN \__str_decode_utf_viii_continuation:wwN
- \int_value:w \int_eval:n { `#1 - "C0 } \exp_after:wN
- \fi:
- \s__tl
- \use_none_delimit_by_q_stop:w {"80} {"800} {"10000} {"110000} \q_stop
- \__str_decode_utf_viii_start:N
- }
-\cs_new:Npn \__str_decode_utf_viii_continuation:wwN
- #1 \s__tl #2 \__str_decode_utf_viii_start:N #3
- {
- \use_none:n #3
- \if_int_compare:w `#3 <
- \if_int_compare:w `#3 < "80 \exp_stop_f: - \fi:
- "C0 \exp_stop_f:
- #3
- \exp_after:wN \__str_decode_utf_viii_aux:wNnnwN
- \int_value:w \int_eval:n { #1 * "40 + `#3 - "80 } \exp_after:wN
- \else:
- \s__tl
- \flag_raise:n { str_missing }
- \flag_raise:n { str_error }
- \int_use:N \c__str_replacement_char_int
- \fi:
- \s__tl
- #2
- \__str_decode_utf_viii_start:N #3
- }
-\cs_new:Npn \__str_decode_utf_viii_aux:wNnnwN
- #1 \s__tl #2#3#4 #5 \__str_decode_utf_viii_start:N #6
- {
- \if_int_compare:w #1 < #4 \exp_stop_f:
- \s__tl
- \if_int_compare:w #1 < #3 \exp_stop_f:
- \flag_raise:n { str_overlong }
- \flag_raise:n { str_error }
- \int_use:N \c__str_replacement_char_int
- \else:
- #1
- \fi:
- \else:
- \if_meaning:w \q_stop #5
- \__str_decode_utf_viii_overflow:w #1
- \fi:
- \exp_after:wN \__str_decode_utf_viii_continuation:wwN
- \int_value:w \int_eval:n { #1 - #4 } \exp_after:wN
- \fi:
- \s__tl
- #2 {#4} #5
- \__str_decode_utf_viii_start:N
- }
-\cs_new:Npn \__str_decode_utf_viii_overflow:w #1 \fi: #2 \fi:
- {
- \fi: \fi:
- \flag_raise:n { str_overflow }
- \flag_raise:n { str_error }
- \int_use:N \c__str_replacement_char_int
- }
-\cs_new:Npn \__str_decode_utf_viii_end:
- {
- \s__tl
- \flag_raise:n { str_missing }
- \flag_raise:n { str_error }
- \int_use:N \c__str_replacement_char_int \s__tl
- \prg_break:
- }
-%%
-%%
-%% End of file `l3str-enc-utf8.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def
deleted file mode 100644
index 28ff90d79ea..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-hex.def
+++ /dev/null
@@ -1,74 +0,0 @@
-%%
-%% This is file `l3str-esc-hex.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `hex')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\cs_new_protected:Npn \__str_convert_unescape_hex:
- {
- \group_begin:
- \flag_clear:n { str_error }
- \int_set:Nn \tex_escapechar:D { 92 }
- \tl_gset:Nx \g__str_result_tl
- {
- \__str_output_byte:w "
- \exp_last_unbraced:Nf \__str_unescape_hex_auxi:N
- { \tl_to_str:N \g__str_result_tl }
- 0 { ? 0 - 1 \prg_break: }
- \prg_break_point:
- \__str_output_end:
- }
- \__str_if_flag_error:nnx { str_error } { unescape-hex } { }
- \group_end:
- }
-\cs_new:Npn \__str_unescape_hex_auxi:N #1
- {
- \use_none:n #1
- \__str_hexadecimal_use:NTF #1
- { \__str_unescape_hex_auxii:N }
- {
- \flag_raise:n { str_error }
- \__str_unescape_hex_auxi:N
- }
- }
-\cs_new:Npn \__str_unescape_hex_auxii:N #1
- {
- \use_none:n #1
- \__str_hexadecimal_use:NTF #1
- {
- \__str_output_end:
- \__str_output_byte:w " \__str_unescape_hex_auxi:N
- }
- {
- \flag_raise:n { str_error }
- \__str_unescape_hex_auxii:N
- }
- }
-\__kernel_msg_new:nnnn { str } { unescape-hex }
- { String~invalid~in~escaping~'hex':~only~hexadecimal~digits~allowed. }
- {
- Some~characters~in~the~string~you~asked~to~convert~are~not~
- hexadecimal~digits~(0-9,~A-F,~a-f)~nor~spaces.
- }
-\cs_new_protected:Npn \__str_convert_escape_hex:
- { \__str_convert_gmap:N \__str_escape_hex_char:N }
-\cs_new:Npn \__str_escape_hex_char:N #1
- { \__str_output_hexadecimal:n { `#1 } }
-%%
-%%
-%% End of file `l3str-esc-hex.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def
deleted file mode 100644
index 58ddb088092..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-name.def
+++ /dev/null
@@ -1,95 +0,0 @@
-%%
-%% This is file `l3str-esc-name.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `name')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\cs_set_protected:Npn \__str_tmp:w #1#2#3
- {
- \cs_new_protected:cpn { __str_convert_unescape_#2: }
- {
- \group_begin:
- \flag_clear:n { str_byte }
- \flag_clear:n { str_error }
- \int_set:Nn \tex_escapechar:D { 92 }
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN #3 \g__str_result_tl
- #1 ? { ? \prg_break: }
- \prg_break_point:
- }
- \__str_if_flag_error:nnx { str_byte } { non-byte } { #2 }
- \__str_if_flag_error:nnx { str_error } { unescape-#2 } { }
- \group_end:
- }
- \cs_new:Npn #3 ##1#1##2##3
- {
- \__str_filter_bytes:n {##1}
- \use_none:n ##3
- \__str_output_byte:w "
- \__str_hexadecimal_use:NTF ##2
- {
- \__str_hexadecimal_use:NTF ##3
- { }
- {
- \flag_raise:n { str_error }
- * 0 + `#1 \use_i:nn
- }
- }
- {
- \flag_raise:n { str_error }
- 0 + `#1 \use_i:nn
- }
- \__str_output_end:
- \use_i:nnn #3 ##2##3
- }
- \__kernel_msg_new:nnnn { str } { unescape-#2 }
- { String~invalid~in~escaping~'#2'. }
- {
- LaTeX~came~across~the~escape~character~'#1'~not~followed~by~
- two~hexadecimal~digits.~This~is~invalid~in~the~escaping~'#2'.
- }
- }
-\exp_after:wN \__str_tmp:w \c_hash_str { name }
- \__str_unescape_name_loop:wNN
-\str_const:Nn \c__str_escape_name_not_str { ! " $ & ' } %$
-\str_const:Nn \c__str_escape_name_str { {}/<>[] }
-\cs_new_protected:Npn \__str_convert_escape_name:
- { \__str_convert_gmap:N \__str_escape_name_char:N }
-\cs_new:Npn \__str_escape_name_char:N #1
- {
- \__str_if_escape_name:NTF #1 {#1}
- { \c_hash_str \__str_output_hexadecimal:n {`#1} }
- }
-\prg_new_conditional:Npnn \__str_if_escape_name:N #1 { TF }
- {
- \if_int_compare:w `#1 < "2A \exp_stop_f:
- \__str_if_contains_char:NNTF \c__str_escape_name_not_str #1
- \prg_return_true: \prg_return_false:
- \else:
- \if_int_compare:w `#1 > "7E \exp_stop_f:
- \prg_return_false:
- \else:
- \__str_if_contains_char:NNTF \c__str_escape_name_str #1
- \prg_return_false: \prg_return_true:
- \fi:
- \fi:
- }
-%%
-%%
-%% End of file `l3str-esc-name.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def
deleted file mode 100644
index 8f294e4220a..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-string.def
+++ /dev/null
@@ -1,144 +0,0 @@
-%%
-%% This is file `l3str-esc-string.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `string')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\group_begin:
- \char_set_catcode_other:N \^^J
- \char_set_catcode_other:N \^^M
- \cs_set_protected:Npn \__str_tmp:w #1
- {
- \cs_new_protected:Npn \__str_convert_unescape_string:
- {
- \group_begin:
- \flag_clear:n { str_byte }
- \flag_clear:n { str_error }
- \int_set:Nn \tex_escapechar:D { 92 }
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_unescape_string_newlines:wN
- \g__str_result_tl \prg_break: ^^M ?
- \prg_break_point:
- }
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_unescape_string_loop:wNNN
- \g__str_result_tl #1 ?? { ? \prg_break: }
- \prg_break_point:
- }
- \__str_if_flag_error:nnx { str_byte } { non-byte } { string }
- \__str_if_flag_error:nnx { str_error } { unescape-string } { }
- \group_end:
- }
- }
- \exp_args:No \__str_tmp:w { \c_backslash_str }
- \exp_last_unbraced:NNNNo
- \cs_new:Npn \__str_unescape_string_loop:wNNN #1 \c_backslash_str #2#3#4
- {
- \__str_filter_bytes:n {#1}
- \use_none:n #4
- \__str_output_byte:w '
- \__str_octal_use:NTF #2
- {
- \__str_octal_use:NTF #3
- {
- \__str_octal_use:NTF #4
- {
- \if_int_compare:w #2 > 3 \exp_stop_f:
- - 256
- \fi:
- \__str_unescape_string_repeat:NNNNNN
- }
- { \__str_unescape_string_repeat:NNNNNN ? }
- }
- { \__str_unescape_string_repeat:NNNNNN ?? }
- }
- {
- \str_case_e:nnF {#2}
- {
- { \c_backslash_str } { 134 }
- { ( } { 50 }
- { ) } { 51 }
- { r } { 15 }
- { f } { 14 }
- { n } { 12 }
- { t } { 11 }
- { b } { 10 }
- { ^^J } { 0 - 1 }
- }
- {
- \flag_raise:n { str_error }
- 0 - 1 \use_i:nn
- }
- }
- \__str_output_end:
- \use_i:nn \__str_unescape_string_loop:wNNN #2#3#4
- }
- \cs_new:Npn \__str_unescape_string_repeat:NNNNNN #1#2#3#4#5#6
- { \__str_output_end: \__str_unescape_string_loop:wNNN }
- \cs_new:Npn \__str_unescape_string_newlines:wN #1 ^^M #2
- {
- #1
- \if_charcode:w ^^J #2 \else: ^^J \fi:
- \__str_unescape_string_newlines:wN #2
- }
- \__kernel_msg_new:nnnn { str } { unescape-string }
- { String~invalid~in~escaping~'string'. }
- {
- LaTeX~came~across~an~escape~character~'\c_backslash_str'~
- not~followed~by~any~of:~'n',~'r',~'t',~'b',~'f',~'(',~')',~
- '\c_backslash_str',~one~to~three~octal~digits,~or~the~end~
- of~a~line.
- }
-\group_end:
-\str_const:Nx \c__str_escape_string_str
- { \c_backslash_str ( ) }
-\cs_new_protected:Npn \__str_convert_escape_string:
- { \__str_convert_gmap:N \__str_escape_string_char:N }
-\cs_new:Npn \__str_escape_string_char:N #1
- {
- \__str_if_escape_string:NTF #1
- {
- \__str_if_contains_char:NNT
- \c__str_escape_string_str #1
- { \c_backslash_str }
- #1
- }
- {
- \c_backslash_str
- \int_div_truncate:nn {`#1} {64}
- \int_mod:nn { \int_div_truncate:nn {`#1} { 8 } } { 8 }
- \int_mod:nn {`#1} { 8 }
- }
- }
-\prg_new_conditional:Npnn \__str_if_escape_string:N #1 { TF }
- {
- \if_int_compare:w `#1 < "21 \exp_stop_f:
- \prg_return_false:
- \else:
- \if_int_compare:w `#1 > "7E \exp_stop_f:
- \prg_return_false:
- \else:
- \prg_return_true:
- \fi:
- \fi:
- }
-%%
-%%
-%% End of file `l3str-esc-string.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def
deleted file mode 100644
index 21fa69980a9..00000000000
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-esc-url.def
+++ /dev/null
@@ -1,93 +0,0 @@
-%%
-%% This is file `l3str-esc-url.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3str-convert.dtx (with options: `url')
-%%
-%% Copyright (C) 2011-2019 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: l3str-convert.dtx
-\cs_set_protected:Npn \__str_tmp:w #1#2#3
- {
- \cs_new_protected:cpn { __str_convert_unescape_#2: }
- {
- \group_begin:
- \flag_clear:n { str_byte }
- \flag_clear:n { str_error }
- \int_set:Nn \tex_escapechar:D { 92 }
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN #3 \g__str_result_tl
- #1 ? { ? \prg_break: }
- \prg_break_point:
- }
- \__str_if_flag_error:nnx { str_byte } { non-byte } { #2 }
- \__str_if_flag_error:nnx { str_error } { unescape-#2 } { }
- \group_end:
- }
- \cs_new:Npn #3 ##1#1##2##3
- {
- \__str_filter_bytes:n {##1}
- \use_none:n ##3
- \__str_output_byte:w "
- \__str_hexadecimal_use:NTF ##2
- {
- \__str_hexadecimal_use:NTF ##3
- { }
- {
- \flag_raise:n { str_error }
- * 0 + `#1 \use_i:nn
- }
- }
- {
- \flag_raise:n { str_error }
- 0 + `#1 \use_i:nn
- }
- \__str_output_end:
- \use_i:nnn #3 ##2##3
- }
- \__kernel_msg_new:nnnn { str } { unescape-#2 }
- { String~invalid~in~escaping~'#2'. }
- {
- LaTeX~came~across~the~escape~character~'#1'~not~followed~by~
- two~hexadecimal~digits.~This~is~invalid~in~the~escaping~'#2'.
- }
- }
-\exp_after:wN \__str_tmp:w \c_percent_str { url }
- \__str_unescape_url_loop:wNN
-\cs_new_protected:Npn \__str_convert_escape_url:
- { \__str_convert_gmap:N \__str_escape_url_char:N }
-\cs_new:Npn \__str_escape_url_char:N #1
- {
- \__str_if_escape_url:NTF #1 {#1}
- { \c_percent_str \__str_output_hexadecimal:n { `#1 } }
- }
-\prg_new_conditional:Npnn \__str_if_escape_url:N #1 { TF }
- {
- \if_int_compare:w `#1 < "41 \exp_stop_f:
- \__str_if_contains_char:nNTF { "-.<> } #1
- \prg_return_true: \prg_return_false:
- \else:
- \if_int_compare:w `#1 > "7E \exp_stop_f:
- \prg_return_false:
- \else:
- \__str_if_contains_char:nNTF { [ ] } #1
- \prg_return_false: \prg_return_true:
- \fi:
- \fi:
- }
-%%
-%%
-%% End of file `l3str-esc-url.def'.
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 fa84e0e970d..554ebefd793 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-05-28}{}
+\ProvidesExplPackage{l3str-format}{2019-07-01}{}
{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 20fd2db2f33..8faf0a47e3e 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-05-28}{}
+\ProvidesExplPackage{l3sys-shell}{2019-07-01}{}
{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 9c53fe7d4a6..7d5cc5f41ad 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-05-28}{}
+\ProvidesExplPackage{xcoffins}{2019-07-01}{}
{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 263c06691eb..a1d11afafd0 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-05-28}{}
+\ProvidesExplPackage{l3galley}{2019-07-01}{}
{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 d492282db69..e0b6277744e 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-05-28}{}
+\ProvidesExplPackage{xgalley}{2019-07-01}{}
{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 dbdc37c17f5..d4f199159cc 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -40,6 +40,7 @@
%% l3fp-random.dtx (with options: `package')
%% l3fparray.dtx (with options: `package')
%% l3sort.dtx (with options: `package')
+%% l3str-convert.dtx (with options: `package')
%% l3tl-analysis.dtx (with options: `package')
%% l3regex.dtx (with options: `package')
%% l3box.dtx (with options: `package')
@@ -64,7 +65,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2019-05-28}%
+\def\ExplFileDate{2019-07-01}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -2189,6 +2190,7 @@
\cs_set:Npn \use_ii:nnnn #1#2#3#4 {#2}
\cs_set:Npn \use_iii:nnnn #1#2#3#4 {#3}
\cs_set:Npn \use_iv:nnnn #1#2#3#4 {#4}
+\cs_set:Npn \use_ii_i:nn #1#2 { #2 #1 }
\cs_set:Npn \use_none_delimit_by_q_nil:w #1 \q_nil { }
\cs_set:Npn \use_none_delimit_by_q_stop:w #1 \q_stop { }
\cs_set:Npn \use_none_delimit_by_q_recursion_stop:w #1 \q_recursion_stop { }
@@ -9348,7 +9350,7 @@
}
}
%% File: l3msg.dtx
-\tl_new:N \l__msg_tmp_tl
+\tl_new:N \l__msg_internal_tl
\str_new:N \l__msg_name_str
\str_new:N \l__msg_text_str
\tl_const:Nn \c__msg_text_prefix_tl { msg~text~>~ }
@@ -9435,22 +9437,35 @@
\c_space_tl
\msg_line_number:
}
-\cs_new_protected:Npn \__msg_interrupt:Nnnn #1#2#3#4
+\cs_new_protected:Npn \__msg_interrupt:NnnnN #1#2#3#4#5
{
\str_set:Nx \l__msg_text_str { #1 {#2} }
\str_set:Nx \l__msg_name_str { \msg_module_name:n {#2} }
- \tl_if_empty:nTF {#4}
+ \cs_if_eq:cNTF
+ { \c__msg_more_text_prefix_tl #2 / #3 }
+ \__msg_no_more_text:nnnn
{
- \__msg_interrupt_wrap:nnn {#3}
+ \__msg_interrupt_wrap:nnn
+ { \use:c { \c__msg_text_prefix_tl #2 / #3 } #4 }
{ \c__msg_continue_text_tl }
- { \c__msg_no_info_text_tl }
+ {
+ \c__msg_no_info_text_tl
+ \tl_if_empty:NF #5
+ { \\ \\ #5 }
+ }
}
{
- \__msg_interrupt_wrap:nnn {#3}
+ \__msg_interrupt_wrap:nnn
+ { \use:c { \c__msg_text_prefix_tl #2 / #3 } #4 }
{ \c__msg_help_text_tl }
- {#4}
+ {
+ \use:c { \c__msg_more_text_prefix_tl #2 / #3 } #4
+ \tl_if_empty:NF #5
+ { \\ \\ #5 }
+ }
}
}
+\cs_new:Npn \__msg_no_more_text:nnnn #1#2#3#4 { }
\cs_new_protected:Npn \__msg_interrupt_wrap:nnn #1#2#3
{
\iow_wrap:nnnN { \\ #3 } { } { } \__msg_interrupt_more_text:n
@@ -9468,13 +9483,13 @@
{ ~ }
}
{ } \__msg_interrupt_text:n
- \iow_wrap:nnnN { \l__msg_tmp_tl \\ \\ #2 } { } { }
+ \iow_wrap:nnnN { \l__msg_internal_tl \\ \\ #2 } { } { }
\__msg_interrupt:n
}
\cs_new_protected:Npn \__msg_interrupt_text:n #1
{
\group_end:
- \tl_set:Nn \l__msg_tmp_tl {#1}
+ \tl_set:Nn \l__msg_internal_tl {#1}
}
\cs_new_protected:Npn \__msg_interrupt_more_text:n #1
{ \exp_args:Nx \tex_errhelp:D { #1 \iow_newline: } }
@@ -9600,41 +9615,32 @@
}
\__msg_class_new:nn { fatal }
{
- \__msg_interrupt:Nnnn
- \msg_fatal_text:n
- {#1}
- { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} }
- { \c__msg_fatal_text_tl }
- \tex_end:D
+ \__msg_interrupt:NnnnN
+ \msg_fatal_text:n {#1} {#2}
+ { {#3} {#4} {#5} {#6} }
+ \c__msg_fatal_text_tl
+ \__msg_fatal_exit:
+ }
+ \cs_new_protected:Npn \__msg_fatal_exit:
+ {
+ \tex_batchmode:D
+ \tex_read:D -1 to \l__msg_internal_tl
}
\__msg_class_new:nn { critical }
{
- \__msg_interrupt:Nnnn
- \msg_critical_text:n
- {#1}
- { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} }
- { \c__msg_critical_text_tl }
+ \__msg_interrupt:NnnnN
+ \msg_critical_text:n {#1} {#2}
+ { {#3} {#4} {#5} {#6} }
+ \c__msg_critical_text_tl
\tex_endinput:D
}
\__msg_class_new:nn { error }
{
- \__msg_error:cnnnnn
- { \c__msg_more_text_prefix_tl #1 / #2 }
- {#3} {#4} {#5} {#6}
- {
- \__msg_interrupt:Nnnn
- \msg_error_text:n
- {#1}
- { \use:c { \c__msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} }
- }
- }
- \cs_new_protected:Npn \__msg_error:cnnnnn #1#2#3#4#5#6
- {
- \cs_if_eq:cNTF {#1} \__msg_no_more_text:nnnn
- { #6 { } }
- { #6 { \use:c {#1} {#2} {#3} {#4} {#5} } }
+ \__msg_interrupt:NnnnN
+ \msg_error_text:n {#1} {#2}
+ { {#3} {#4} {#5} {#6} }
+ \c_empty_tl
}
- \cs_new:Npn \__msg_no_more_text:nnnn #1#2#3#4 { }
\__msg_class_new:nn { warning }
{
\str_set:Nx \l__msg_text_str { \msg_warning_text:n {#1} }
@@ -9710,13 +9716,13 @@
{
\tl_if_empty:nF {#1}
{ \exp_args:No \iow_term:n { \use_none:n #1 } }
- \tl_set:Nn \l__msg_tmp_tl {#2}
+ \tl_set:Nn \l__msg_internal_tl {#2}
\__kernel_iow_with:Nnn \tex_newlinechar:D { 10 }
{
\__kernel_iow_with:Nnn \tex_errorcontextlines:D { -1 }
{
\tex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN
- { \exp_after:wN \l__msg_tmp_tl }
+ { \exp_after:wN \l__msg_internal_tl }
}
}
}
@@ -12154,7 +12160,8 @@
{
\__keys_property_find:n {#1}
\cs_if_exist:cTF { \c__keys_props_root_tl \l__keys_property_tl }
- { \__keys_define_code:n {#2} }
+ { \__keys_define_code:n {#2}
+ }
{
\tl_if_empty:NF \l__keys_property_tl
{
@@ -12183,7 +12190,7 @@
{
\tl_if_empty:NF \l__keys_module_tl
{ \l__keys_module_tl / }
- #1
+ \tl_trim_spaces:n {#1}
}
\tl_set:Nn \l__keys_property_tl { . #2 }
}
@@ -12992,7 +12999,28 @@
}
}
\cs_new:Npn \__keys_trim_spaces:n #1
- { \tl_trim_spaces:o { \tl_to_str:n {#1} } }
+ {
+ \exp_after:wN \__keys_trim_spaces_auxi:w \tl_to_str:n {#1}
+ / \q_nil \q_stop
+
+ }
+\cs_new:Npn \__keys_trim_spaces_auxi:w #1 / #2 \q_stop
+ {
+ \quark_if_nil:nTF {#2}
+ { \tl_trim_spaces:n {#1} }
+ { \__keys_trim_spaces_auxii:w #1 / #2 }
+ }
+\cs_new:Npn \__keys_trim_spaces_auxii:w #1 / #2 / \q_nil
+ {
+ \tl_trim_spaces:n {#1}
+ \__keys_trim_spaces_auxiii:w #2 / \q_recursion_tail / \q_recursion_stop
+ }
+\cs_set:Npn \__keys_trim_spaces_auxiii:w #1 /
+ {
+ \quark_if_recursion_tail_stop:n {#1}
+ \tl_trim_spaces:n { / #1 }
+ \__keys_trim_spaces_auxiii:w
+ }
\prg_new_conditional:Npnn \keys_if_exist:nn #1#2 { p , T , F , TF }
{
\cs_if_exist:cTF
@@ -20040,6 +20068,1296 @@
\iow_char:N\\sort_return_swapped: ~multiple~times.~
Exactly~one~of~these~should~be~called.
}
+%% 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 }
+\prop_new:N \g__str_alias_prop
+\prop_gput:Nnn \g__str_alias_prop { latin1 } { iso88591 }
+\prop_gput:Nnn \g__str_alias_prop { latin2 } { iso88592 }
+\prop_gput:Nnn \g__str_alias_prop { latin3 } { iso88593 }
+\prop_gput:Nnn \g__str_alias_prop { latin4 } { iso88594 }
+\prop_gput:Nnn \g__str_alias_prop { latin5 } { iso88599 }
+\prop_gput:Nnn \g__str_alias_prop { latin6 } { iso885910 }
+\prop_gput:Nnn \g__str_alias_prop { latin7 } { iso885913 }
+\prop_gput:Nnn \g__str_alias_prop { latin8 } { iso885914 }
+\prop_gput:Nnn \g__str_alias_prop { latin9 } { iso885915 }
+\prop_gput:Nnn \g__str_alias_prop { latin10 } { iso885916 }
+\prop_gput:Nnn \g__str_alias_prop { utf16le } { utf16 }
+\prop_gput:Nnn \g__str_alias_prop { utf16be } { utf16 }
+\prop_gput:Nnn \g__str_alias_prop { utf32le } { utf32 }
+\prop_gput:Nnn \g__str_alias_prop { utf32be } { utf32 }
+\prop_gput:Nnn \g__str_alias_prop { hexadecimal } { hex }
+\bool_new:N \g__str_error_bool
+\flag_new:n { str_byte }
+\flag_new:n { str_error }
+\prg_new_conditional:Npnn \__str_if_contains_char:NN #1#2 { T , TF }
+ {
+ \exp_after:wN \__str_if_contains_char_aux:NN \exp_after:wN #2
+ #1 { \prg_break:n { ? \fi: } }
+ \prg_break_point:
+ \prg_return_false:
+ }
+\prg_new_conditional:Npnn \__str_if_contains_char:nN #1#2 { TF }
+ {
+ \__str_if_contains_char_aux:NN #2 #1 { \prg_break:n { ? \fi: } }
+ \prg_break_point:
+ \prg_return_false:
+ }
+\cs_new:Npn \__str_if_contains_char_aux:NN #1#2
+ {
+ \if_charcode:w #1 #2
+ \exp_after:wN \__str_if_contains_char_true:
+ \fi:
+ \__str_if_contains_char_aux:NN #1
+ }
+\cs_new:Npn \__str_if_contains_char_true:
+ { \prg_break:n { \prg_return_true: \use_none:n } }
+\prg_new_conditional:Npnn \__str_octal_use:N #1 { TF }
+ {
+ \if_int_compare:w 1 < '1 \token_to_str:N #1 \exp_stop_f:
+ #1 \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
+\prg_new_conditional:Npnn \__str_hexadecimal_use:N #1 { TF }
+ {
+ \if_int_compare:w 1 < "1 \token_to_str:N #1 \exp_stop_f:
+ #1 \prg_return_true:
+ \else:
+ \if_case:w \int_eval:n { \exp_after:wN ` \token_to_str:N #1 - `a }
+ A
+ \or: B
+ \or: C
+ \or: D
+ \or: E
+ \or: F
+ \else:
+ \prg_return_false:
+ \exp_after:wN \use_none:n
+ \fi:
+ \prg_return_true:
+ \fi:
+ }
+\group_begin:
+ \tl_set:Nx \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } }
+ \tl_map_inline:Nn \l__str_internal_tl
+ {
+ \tl_map_inline:Nn \l__str_internal_tl
+ {
+ \tl_const:cx { c__str_byte_ \int_eval:n {"#1##1} _tl }
+ { \char_generate:nn { "#1##1 } { 12 } #1 ##1 }
+ }
+ }
+\group_end:
+\tl_const:cn { c__str_byte_-1_tl } { { } \use_none:n { } }
+\cs_new:Npn \__str_output_byte:n #1
+ { \__str_output_byte:w #1 \__str_output_end: }
+\cs_new:Npn \__str_output_byte:w
+ {
+ \exp_after:wN \exp_after:wN
+ \exp_after:wN \use_i:nnn
+ \cs:w c__str_byte_ \int_eval:w
+ }
+\cs_new:Npn \__str_output_hexadecimal:n #1
+ {
+ \exp_after:wN \exp_after:wN
+ \exp_after:wN \use_none:n
+ \cs:w c__str_byte_ \int_eval:n {#1} _tl \cs_end:
+ }
+\cs_new:Npn \__str_output_end:
+ { \scan_stop: _tl \cs_end: }
+\cs_new:Npn \__str_output_byte_pair_be:n #1
+ {
+ \exp_args:Nf \__str_output_byte_pair:nnN
+ { \int_div_truncate:nn { #1 } { "100 } } {#1} \use:nn
+ }
+\cs_new:Npn \__str_output_byte_pair_le:n #1
+ {
+ \exp_args:Nf \__str_output_byte_pair:nnN
+ { \int_div_truncate:nn { #1 } { "100 } } {#1} \use_ii_i:nn
+ }
+\cs_new:Npn \__str_output_byte_pair:nnN #1#2#3
+ {
+ #3
+ { \__str_output_byte:n { #1 } }
+ { \__str_output_byte:n { #2 - #1 * "100 } }
+ }
+\cs_new_protected:Npn \__str_convert_gmap:N #1
+ {
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_convert_gmap_loop:NN
+ \exp_after:wN #1
+ \g__str_result_tl { ? \prg_break: }
+ \prg_break_point:
+ }
+ }
+\cs_new:Npn \__str_convert_gmap_loop:NN #1#2
+ {
+ \use_none:n #2
+ #1#2
+ \__str_convert_gmap_loop:NN #1
+ }
+\cs_new_protected:Npn \__str_convert_gmap_internal:N #1
+ {
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_convert_gmap_internal_loop:Nww
+ \exp_after:wN #1
+ \g__str_result_tl \s__tl \q_stop \prg_break: \s__tl
+ \prg_break_point:
+ }
+ }
+\cs_new:Npn \__str_convert_gmap_internal_loop:Nww #1 #2 \s__tl #3 \s__tl
+ {
+ \use_none_delimit_by_q_stop:w #3 \q_stop
+ #1 {#3}
+ \__str_convert_gmap_internal_loop:Nww #1
+ }
+\cs_new_protected:Npn \__str_if_flag_error:nnx #1
+ {
+ \flag_if_raised:nTF {#1}
+ { \__kernel_msg_error:nnx { str } }
+ { \use_none:nn }
+ }
+\cs_new_protected:Npn \__str_if_flag_no_error:nnx #1#2#3
+ { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } }
+\cs_new:Npn \__str_if_flag_times:nT #1#2
+ { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } }
+\cs_new_protected:Npn \str_set_convert:Nnnn
+ { \__str_convert:nNNnnn { } \tl_set_eq:NN }
+\cs_new_protected:Npn \str_gset_convert:Nnnn
+ { \__str_convert:nNNnnn { } \tl_gset_eq:NN }
+\prg_new_protected_conditional:Npnn
+ \str_set_convert:Nnnn #1#2#3#4 { T , F , TF }
+ {
+ \bool_gset_false:N \g__str_error_bool
+ \__str_convert:nNNnnn
+ { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
+ \tl_set_eq:NN #1 {#2} {#3} {#4}
+ \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
+ }
+\prg_new_protected_conditional:Npnn
+ \str_gset_convert:Nnnn #1#2#3#4 { T , F , TF }
+ {
+ \bool_gset_false:N \g__str_error_bool
+ \__str_convert:nNNnnn
+ { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
+ \tl_gset_eq:NN #1 {#2} {#3} {#4}
+ \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
+ }
+\cs_new_protected:Npn \__str_convert:nNNnnn #1#2#3#4#5#6
+ {
+ \group_begin:
+ #1
+ \tl_gset:Nx \g__str_result_tl { \__kernel_str_to_other_fast:n {#4} }
+ \exp_after:wN \__str_convert:wwwnn
+ \tl_to_str:n {#5} /// \q_stop
+ { decode } { unescape }
+ \prg_do_nothing:
+ \__str_convert_decode_:
+ \exp_after:wN \__str_convert:wwwnn
+ \tl_to_str:n {#6} /// \q_stop
+ { encode } { escape }
+ \use_ii_i:nn
+ \__str_convert_encode_:
+ \group_end:
+ #2 #3 \g__str_result_tl
+ }
+\cs_new_protected:Npn \__str_convert:wwwnn
+ #1 / #2 // #3 \q_stop #4#5
+ {
+ \__str_convert:nnn {enc} {#4} {#1}
+ \__str_convert:nnn {esc} {#5} {#2}
+ \exp_args:Ncc \__str_convert:NNnNN
+ { __str_convert_#4_#1: } { __str_convert_#5_#2: } {#2}
+ }
+\cs_new_protected:Npn \__str_convert:NNnNN #1#2#3#4#5
+ {
+ \if_meaning:w #1 #5
+ \tl_if_empty:nF {#3}
+ { \__kernel_msg_error:nnx { str } { native-escaping } {#3} }
+ #1
+ \else:
+ #4 #2 #1
+ \fi:
+ }
+\cs_new_protected:Npn \__str_convert:nnn #1#2#3
+ {
+ \cs_if_exist:cF { __str_convert_#2_#3: }
+ {
+ \exp_args:Nx \__str_convert:nnnn
+ { \__str_convert_lowercase_alphanum:n {#3} }
+ {#1} {#2} {#3}
+ }
+ }
+\cs_new_protected:Npn \__str_convert:nnnn #1#2#3#4
+ {
+ \cs_if_exist:cF { __str_convert_#3_#1: }
+ {
+ \prop_get:NnNF \g__str_alias_prop {#1} \l__str_internal_tl
+ { \tl_set:Nn \l__str_internal_tl {#1} }
+ \cs_if_exist:cF { __str_convert_#3_ \l__str_internal_tl : }
+ {
+ \file_if_exist:nTF { l3str-#2- \l__str_internal_tl .def }
+ {
+ \group_begin:
+ \__str_load_catcodes:
+ \file_input:n { l3str-#2- \l__str_internal_tl .def }
+ \group_end:
+ }
+ {
+ \tl_clear:N \l__str_internal_tl
+ \__kernel_msg_error:nnxx { str } { unknown-#2 } {#4} {#1}
+ }
+ }
+ \cs_if_exist:cF { __str_convert_#3_#1: }
+ {
+ \cs_gset_eq:cc { __str_convert_#3_#1: }
+ { __str_convert_#3_ \l__str_internal_tl : }
+ }
+ }
+ \cs_gset_eq:cc { __str_convert_#3_#4: } { __str_convert_#3_#1: }
+ }
+\cs_new:Npn \__str_convert_lowercase_alphanum:n #1
+ {
+ \exp_after:wN \__str_convert_lowercase_alphanum_loop:N
+ \tl_to_str:n {#1} { ? \prg_break: }
+ \prg_break_point:
+ }
+\cs_new:Npn \__str_convert_lowercase_alphanum_loop:N #1
+ {
+ \use_none:n #1
+ \if_int_compare:w `#1 > `Z \exp_stop_f:
+ \if_int_compare:w `#1 > `z \exp_stop_f: \else:
+ \if_int_compare:w `#1 < `a \exp_stop_f: \else:
+ #1
+ \fi:
+ \fi:
+ \else:
+ \if_int_compare:w `#1 < `A \exp_stop_f:
+ \if_int_compare:w 1 < 1#1 \exp_stop_f:
+ #1
+ \fi:
+ \else:
+ \__str_output_byte:n { `#1 + `a - `A }
+ \fi:
+ \fi:
+ \__str_convert_lowercase_alphanum_loop:N
+ }
+\cs_new_protected:Npn \__str_load_catcodes:
+ {
+ \char_set_catcode_escape:N \\
+ \char_set_catcode_group_begin:N \{
+ \char_set_catcode_group_end:N \}
+ \char_set_catcode_math_toggle:N \$
+ \char_set_catcode_alignment:N \&
+ \char_set_catcode_parameter:N \#
+ \char_set_catcode_math_superscript:N \^
+ \char_set_catcode_ignore:N \ %
+ \char_set_catcode_space:N \~
+ \tl_map_function:nN { abcdefghijklmnopqrstuvwxyz_:ABCDEFILNPSTUX }
+ \char_set_catcode_letter:N
+ \tl_map_function:nN { 0123456789"'?*+-.(),`!/<>[];= }
+ \char_set_catcode_other:N
+ \char_set_catcode_comment:N \%
+ \int_set:Nn \tex_endlinechar:D {32}
+ }
+\bool_lazy_any:nTF
+ {
+ \sys_if_engine_luatex_p:
+ \sys_if_engine_xetex_p:
+ }
+ {
+ \cs_new:Npn \__str_filter_bytes:n #1
+ {
+ \__str_filter_bytes_aux:N #1
+ { ? \prg_break: }
+ \prg_break_point:
+ }
+ \cs_new:Npn \__str_filter_bytes_aux:N #1
+ {
+ \use_none:n #1
+ \if_int_compare:w `#1 < 256 \exp_stop_f:
+ #1
+ \else:
+ \flag_raise:n { str_byte }
+ \fi:
+ \__str_filter_bytes_aux:N
+ }
+ }
+ { \cs_new_eq:NN \__str_filter_bytes:n \use:n }
+\bool_lazy_any:nTF
+ {
+ \sys_if_engine_luatex_p:
+ \sys_if_engine_xetex_p:
+ }
+ {
+ \cs_new_protected:Npn \__str_convert_unescape_:
+ {
+ \flag_clear:n { str_byte }
+ \tl_gset:Nx \g__str_result_tl
+ { \exp_args:No \__str_filter_bytes:n \g__str_result_tl }
+ \__str_if_flag_error:nnx { str_byte } { non-byte } { bytes }
+ }
+ }
+ { \cs_new_protected:Npn \__str_convert_unescape_: { } }
+\cs_new_eq:NN \__str_convert_unescape_bytes: \__str_convert_unescape_:
+\cs_new_protected:Npn \__str_convert_escape_: { }
+\cs_new_eq:NN \__str_convert_escape_bytes: \__str_convert_escape_:
+\cs_new_protected:Npn \__str_convert_decode_:
+ { \__str_convert_gmap:N \__str_decode_native_char:N }
+\cs_new:Npn \__str_decode_native_char:N #1
+ { #1 \s__tl \int_value:w `#1 \s__tl }
+\bool_lazy_any:nTF
+ {
+ \sys_if_engine_luatex_p:
+ \sys_if_engine_xetex_p:
+ }
+ {
+ \cs_new_protected:Npn \__str_convert_encode_:
+ { \__str_convert_gmap_internal:N \__str_encode_native_char:n }
+ \cs_new:Npn \__str_encode_native_char:n #1
+ { \char_generate:nn {#1} {12} }
+ }
+ {
+ \cs_new_protected:Npn \__str_convert_encode_:
+ {
+ \flag_clear:n { str_error }
+ \__str_convert_gmap_internal:N \__str_encode_native_char:n
+ \__str_if_flag_error:nnx { str_error }
+ { native-overflow } { }
+ }
+ \cs_new:Npn \__str_encode_native_char:n #1
+ {
+ \if_int_compare:w #1 > \c__str_max_byte_int
+ \flag_raise:n { str_error }
+ ?
+ \else:
+ \char_generate:nn {#1} {12}
+ \fi:
+ }
+ \__kernel_msg_new:nnnn { str } { native-overflow }
+ { Character~code~too~large~for~this~engine. }
+ {
+ This~engine~only~support~8-bit~characters:~
+ valid~character~codes~are~in~the~range~[0,255].~
+ To~manipulate~arbitrary~Unicode,~use~LuaTeX~or~XeTeX.
+ }
+ }
+\cs_new_protected:Npn \__str_convert_decode_clist:
+ {
+ \clist_gset:No \g__str_result_tl \g__str_result_tl
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_args:No \clist_map_function:nN
+ \g__str_result_tl \__str_decode_clist_char:n
+ }
+ }
+\cs_new:Npn \__str_decode_clist_char:n #1
+ { #1 \s__tl \int_eval:n {#1} \s__tl }
+\cs_new_protected:Npn \__str_convert_encode_clist:
+ {
+ \__str_convert_gmap_internal:N \__str_encode_clist_char:n
+ \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
+ {
+ \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}
+ }
+\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_decode_eight_bit_load:nn
+ { \tl_use:c { c__str_encoding_#1_tl } }
+ { \q_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 } }
+ { \q_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
+ {
+ \use_none_delimit_by_q_stop:w #1 \q_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
+ }
+\cs_new_protected:Npn \__str_decode_eight_bit_load_missing:n #1
+ {
+ \use_none_delimit_by_q_stop:w #1 \q_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
+ }
+\cs_new:Npn \__str_decode_eight_bit_char:N #1
+ {
+ #1 \s__tl
+ \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__tl
+ }
+\cs_new_protected:Npn \__str_convert_encode_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 } }
+ { \q_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_new_protected:Npn \__str_encode_eight_bit_load:nn #1#2
+ {
+ \use_none_delimit_by_q_stop:w #1 \q_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
+ }
+\cs_new:Npn \__str_encode_eight_bit_char:n #1
+ {
+ \if_int_compare:w #1 > \c_max_register_int
+ \flag_raise:n { str_error }
+ \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}
+ \fi:
+ }
+\cs_new:Npn \__str_encode_eight_bit_char_aux:n #1
+ {
+ \if_int_compare:w #1 > \c__str_max_byte_int
+ \flag_raise:n { str_error }
+ \else:
+ \__str_output_byte:n {#1}
+ \fi:
+ }
+\__kernel_msg_new:nnn { str } { unknown-esc }
+ { Escaping~scheme~'#1'~(filtered:~'#2')~unknown. }
+\__kernel_msg_new:nnn { str } { unknown-enc }
+ { Encoding~scheme~'#1'~(filtered:~'#2')~unknown. }
+\__kernel_msg_new:nnnn { str } { native-escaping }
+ { The~'native'~encoding~scheme~does~not~support~any~escaping. }
+ {
+ Since~native~strings~do~not~consist~in~bytes,~
+ none~of~the~escaping~methods~make~sense.~
+ The~specified~escaping,~'#1',~will be ignored.
+ }
+\__kernel_msg_new:nnn { str } { file-not-found }
+ { File~'l3str-#1.def'~not~found. }
+\bool_lazy_any:nT
+ {
+ \sys_if_engine_luatex_p:
+ \sys_if_engine_xetex_p:
+ }
+ {
+ \__kernel_msg_new:nnnn { str } { non-byte }
+ { String~invalid~in~escaping~'#1':~it~may~only~contain~bytes. }
+ {
+ Some~characters~in~the~string~you~asked~to~convert~are~not~
+ 8-bit~characters.~Perhaps~the~string~is~a~'native'~Unicode~string?~
+ If~it~is,~try~using\\
+ \\
+ \iow_indent:n
+ {
+ \iow_char:N\\str_set_convert:Nnnn \\
+ \ \ <str~var>~\{~<string>~\}~\{~native~\}~\{~<target~encoding>~\}
+ }
+ }
+ }
+\__kernel_msg_new:nnnn { str } { decode-8-bit }
+ { Invalid~string~in~encoding~'#1'. }
+ {
+ LaTeX~came~across~a~byte~which~is~not~defined~to~represent~
+ any~character~in~the~encoding~'#1'.
+ }
+\__kernel_msg_new:nnnn { str } { encode-8-bit }
+ { Unicode~string~cannot~be~converted~to~encoding~'#1'. }
+ {
+ The~encoding~'#1'~only~contains~a~subset~of~all~Unicode~characters.~
+ LaTeX~was~asked~to~convert~a~string~to~that~encoding,~but~that~
+ string~contains~a~character~that~'#1'~does~not~support.
+ }
+\cs_new_protected:Npn \__str_convert_unescape_hex:
+ {
+ \group_begin:
+ \flag_clear:n { str_error }
+ \int_set:Nn \tex_escapechar:D { 92 }
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \__str_output_byte:w "
+ \exp_last_unbraced:Nf \__str_unescape_hex_auxi:N
+ { \tl_to_str:N \g__str_result_tl }
+ 0 { ? 0 - 1 \prg_break: }
+ \prg_break_point:
+ \__str_output_end:
+ }
+ \__str_if_flag_error:nnx { str_error } { unescape-hex } { }
+ \group_end:
+ }
+\cs_new:Npn \__str_unescape_hex_auxi:N #1
+ {
+ \use_none:n #1
+ \__str_hexadecimal_use:NTF #1
+ { \__str_unescape_hex_auxii:N }
+ {
+ \flag_raise:n { str_error }
+ \__str_unescape_hex_auxi:N
+ }
+ }
+\cs_new:Npn \__str_unescape_hex_auxii:N #1
+ {
+ \use_none:n #1
+ \__str_hexadecimal_use:NTF #1
+ {
+ \__str_output_end:
+ \__str_output_byte:w " \__str_unescape_hex_auxi:N
+ }
+ {
+ \flag_raise:n { str_error }
+ \__str_unescape_hex_auxii:N
+ }
+ }
+\__kernel_msg_new:nnnn { str } { unescape-hex }
+ { String~invalid~in~escaping~'hex':~only~hexadecimal~digits~allowed. }
+ {
+ Some~characters~in~the~string~you~asked~to~convert~are~not~
+ hexadecimal~digits~(0-9,~A-F,~a-f)~nor~spaces.
+ }
+\cs_set_protected:Npn \__str_tmp:w #1#2#3
+ {
+ \cs_new_protected:cpn { __str_convert_unescape_#2: }
+ {
+ \group_begin:
+ \flag_clear:n { str_byte }
+ \flag_clear:n { str_error }
+ \int_set:Nn \tex_escapechar:D { 92 }
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN #3 \g__str_result_tl
+ #1 ? { ? \prg_break: }
+ \prg_break_point:
+ }
+ \__str_if_flag_error:nnx { str_byte } { non-byte } { #2 }
+ \__str_if_flag_error:nnx { str_error } { unescape-#2 } { }
+ \group_end:
+ }
+ \cs_new:Npn #3 ##1#1##2##3
+ {
+ \__str_filter_bytes:n {##1}
+ \use_none:n ##3
+ \__str_output_byte:w "
+ \__str_hexadecimal_use:NTF ##2
+ {
+ \__str_hexadecimal_use:NTF ##3
+ { }
+ {
+ \flag_raise:n { str_error }
+ * 0 + `#1 \use_i:nn
+ }
+ }
+ {
+ \flag_raise:n { str_error }
+ 0 + `#1 \use_i:nn
+ }
+ \__str_output_end:
+ \use_i:nnn #3 ##2##3
+ }
+ \__kernel_msg_new:nnnn { str } { unescape-#2 }
+ { String~invalid~in~escaping~'#2'. }
+ {
+ LaTeX~came~across~the~escape~character~'#1'~not~followed~by~
+ two~hexadecimal~digits.~This~is~invalid~in~the~escaping~'#2'.
+ }
+ }
+\exp_after:wN \__str_tmp:w \c_hash_str { name }
+ \__str_unescape_name_loop:wNN
+\exp_after:wN \__str_tmp:w \c_percent_str { url }
+ \__str_unescape_url_loop:wNN
+\group_begin:
+ \char_set_catcode_other:N \^^J
+ \char_set_catcode_other:N \^^M
+ \cs_set_protected:Npn \__str_tmp:w #1
+ {
+ \cs_new_protected:Npn \__str_convert_unescape_string:
+ {
+ \group_begin:
+ \flag_clear:n { str_byte }
+ \flag_clear:n { str_error }
+ \int_set:Nn \tex_escapechar:D { 92 }
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_unescape_string_newlines:wN
+ \g__str_result_tl \prg_break: ^^M ?
+ \prg_break_point:
+ }
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_unescape_string_loop:wNNN
+ \g__str_result_tl #1 ?? { ? \prg_break: }
+ \prg_break_point:
+ }
+ \__str_if_flag_error:nnx { str_byte } { non-byte } { string }
+ \__str_if_flag_error:nnx { str_error } { unescape-string } { }
+ \group_end:
+ }
+ }
+ \exp_args:No \__str_tmp:w { \c_backslash_str }
+ \exp_last_unbraced:NNNNo
+ \cs_new:Npn \__str_unescape_string_loop:wNNN #1 \c_backslash_str #2#3#4
+ {
+ \__str_filter_bytes:n {#1}
+ \use_none:n #4
+ \__str_output_byte:w '
+ \__str_octal_use:NTF #2
+ {
+ \__str_octal_use:NTF #3
+ {
+ \__str_octal_use:NTF #4
+ {
+ \if_int_compare:w #2 > 3 \exp_stop_f:
+ - 256
+ \fi:
+ \__str_unescape_string_repeat:NNNNNN
+ }
+ { \__str_unescape_string_repeat:NNNNNN ? }
+ }
+ { \__str_unescape_string_repeat:NNNNNN ?? }
+ }
+ {
+ \str_case_e:nnF {#2}
+ {
+ { \c_backslash_str } { 134 }
+ { ( } { 50 }
+ { ) } { 51 }
+ { r } { 15 }
+ { f } { 14 }
+ { n } { 12 }
+ { t } { 11 }
+ { b } { 10 }
+ { ^^J } { 0 - 1 }
+ }
+ {
+ \flag_raise:n { str_error }
+ 0 - 1 \use_i:nn
+ }
+ }
+ \__str_output_end:
+ \use_i:nn \__str_unescape_string_loop:wNNN #2#3#4
+ }
+ \cs_new:Npn \__str_unescape_string_repeat:NNNNNN #1#2#3#4#5#6
+ { \__str_output_end: \__str_unescape_string_loop:wNNN }
+ \cs_new:Npn \__str_unescape_string_newlines:wN #1 ^^M #2
+ {
+ #1
+ \if_charcode:w ^^J #2 \else: ^^J \fi:
+ \__str_unescape_string_newlines:wN #2
+ }
+ \__kernel_msg_new:nnnn { str } { unescape-string }
+ { String~invalid~in~escaping~'string'. }
+ {
+ LaTeX~came~across~an~escape~character~'\c_backslash_str'~
+ not~followed~by~any~of:~'n',~'r',~'t',~'b',~'f',~'(',~')',~
+ '\c_backslash_str',~one~to~three~octal~digits,~or~the~end~
+ of~a~line.
+ }
+\group_end:
+\cs_new_protected:Npn \__str_convert_escape_hex:
+ { \__str_convert_gmap:N \__str_escape_hex_char:N }
+\cs_new:Npn \__str_escape_hex_char:N #1
+ { \__str_output_hexadecimal:n { `#1 } }
+\str_const:Nn \c__str_escape_name_not_str { ! " $ & ' } %$
+\str_const:Nn \c__str_escape_name_str { {}/<>[] }
+\cs_new_protected:Npn \__str_convert_escape_name:
+ { \__str_convert_gmap:N \__str_escape_name_char:N }
+\cs_new:Npn \__str_escape_name_char:N #1
+ {
+ \__str_if_escape_name:NTF #1 {#1}
+ { \c_hash_str \__str_output_hexadecimal:n {`#1} }
+ }
+\prg_new_conditional:Npnn \__str_if_escape_name:N #1 { TF }
+ {
+ \if_int_compare:w `#1 < "2A \exp_stop_f:
+ \__str_if_contains_char:NNTF \c__str_escape_name_not_str #1
+ \prg_return_true: \prg_return_false:
+ \else:
+ \if_int_compare:w `#1 > "7E \exp_stop_f:
+ \prg_return_false:
+ \else:
+ \__str_if_contains_char:NNTF \c__str_escape_name_str #1
+ \prg_return_false: \prg_return_true:
+ \fi:
+ \fi:
+ }
+\str_const:Nx \c__str_escape_string_str
+ { \c_backslash_str ( ) }
+\cs_new_protected:Npn \__str_convert_escape_string:
+ { \__str_convert_gmap:N \__str_escape_string_char:N }
+\cs_new:Npn \__str_escape_string_char:N #1
+ {
+ \__str_if_escape_string:NTF #1
+ {
+ \__str_if_contains_char:NNT
+ \c__str_escape_string_str #1
+ { \c_backslash_str }
+ #1
+ }
+ {
+ \c_backslash_str
+ \int_div_truncate:nn {`#1} {64}
+ \int_mod:nn { \int_div_truncate:nn {`#1} { 8 } } { 8 }
+ \int_mod:nn {`#1} { 8 }
+ }
+ }
+\prg_new_conditional:Npnn \__str_if_escape_string:N #1 { TF }
+ {
+ \if_int_compare:w `#1 < "21 \exp_stop_f:
+ \prg_return_false:
+ \else:
+ \if_int_compare:w `#1 > "7E \exp_stop_f:
+ \prg_return_false:
+ \else:
+ \prg_return_true:
+ \fi:
+ \fi:
+ }
+\cs_new_protected:Npn \__str_convert_escape_url:
+ { \__str_convert_gmap:N \__str_escape_url_char:N }
+\cs_new:Npn \__str_escape_url_char:N #1
+ {
+ \__str_if_escape_url:NTF #1 {#1}
+ { \c_percent_str \__str_output_hexadecimal:n { `#1 } }
+ }
+\prg_new_conditional:Npnn \__str_if_escape_url:N #1 { TF }
+ {
+ \if_int_compare:w `#1 < "41 \exp_stop_f:
+ \__str_if_contains_char:nNTF { "-.<> } #1
+ \prg_return_true: \prg_return_false:
+ \else:
+ \if_int_compare:w `#1 > "7E \exp_stop_f:
+ \prg_return_false:
+ \else:
+ \__str_if_contains_char:nNTF { [ ] } #1
+ \prg_return_false: \prg_return_true:
+ \fi:
+ \fi:
+ }
+\cs_new_protected:cpn { __str_convert_encode_utf8: }
+ { \__str_convert_gmap_internal:N \__str_encode_utf_viii_char:n }
+\cs_new:Npn \__str_encode_utf_viii_char:n #1
+ {
+ \__str_encode_utf_viii_loop:wwnnw #1 ; - 1 + 0 * ;
+ { 128 } { 0 }
+ { 32 } { 192 }
+ { 16 } { 224 }
+ { 8 } { 240 }
+ \q_stop
+ }
+\cs_new:Npn \__str_encode_utf_viii_loop:wwnnw #1; #2; #3#4 #5 \q_stop
+ {
+ \if_int_compare:w #1 < #3 \exp_stop_f:
+ \__str_output_byte:n { #1 + #4 }
+ \exp_after:wN \use_none_delimit_by_q_stop:w
+ \fi:
+ \exp_after:wN \__str_encode_utf_viii_loop:wwnnw
+ \int_value:w \int_div_truncate:nn {#1} {64} ; #1 ;
+ #5 \q_stop
+ \__str_output_byte:n { #2 - 64 * ( #1 - 2 ) }
+ }
+\flag_clear_new:n { str_missing }
+\flag_clear_new:n { str_extra }
+\flag_clear_new:n { str_overlong }
+\flag_clear_new:n { str_overflow }
+\__kernel_msg_new:nnnn { str } { utf8-decode }
+ {
+ Invalid~UTF-8~string:
+ \exp_last_unbraced:Nf \use_none:n
+ {
+ \__str_if_flag_times:nT { str_missing } { ,~missing~continuation~byte }
+ \__str_if_flag_times:nT { str_extra } { ,~extra~continuation~byte }
+ \__str_if_flag_times:nT { str_overlong } { ,~overlong~form }
+ \__str_if_flag_times:nT { str_overflow } { ,~code~point~too~large }
+ }
+ .
+ }
+ {
+ In~the~UTF-8~encoding,~each~Unicode~character~consists~in~
+ 1~to~4~bytes,~with~the~following~bit~pattern: \\
+ \iow_indent:n
+ {
+ Code~point~\ \ \ \ <~128:~0xxxxxxx \\
+ Code~point~\ \ \ <~2048:~110xxxxx~10xxxxxx \\
+ Code~point~\ \ <~65536:~1110xxxx~10xxxxxx~10xxxxxx \\
+ Code~point~ <~1114112:~11110xxx~10xxxxxx~10xxxxxx~10xxxxxx \\
+ }
+ Bytes~of~the~form~10xxxxxx~are~called~continuation~bytes.
+ \flag_if_raised:nT { str_missing }
+ {
+ \\\\
+ A~leading~byte~(in~the~range~[192,255])~was~not~followed~by~
+ the~appropriate~number~of~continuation~bytes.
+ }
+ \flag_if_raised:nT { str_extra }
+ {
+ \\\\
+ LaTeX~came~across~a~continuation~byte~when~it~was~not~expected.
+ }
+ \flag_if_raised:nT { str_overlong }
+ {
+ \\\\
+ Every~Unicode~code~point~must~be~expressed~in~the~shortest~
+ possible~form.~For~instance,~'0xC0'~'0x83'~is~not~a~valid~
+ representation~for~the~code~point~3.
+ }
+ \flag_if_raised:nT { str_overflow }
+ {
+ \\\\
+ Unicode~limits~code~points~to~the~range~[0,1114111].
+ }
+ }
+\cs_new_protected:cpn { __str_convert_decode_utf8: }
+ {
+ \flag_clear:n { str_error }
+ \flag_clear:n { str_missing }
+ \flag_clear:n { str_extra }
+ \flag_clear:n { str_overlong }
+ \flag_clear:n { str_overflow }
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_decode_utf_viii_start:N \g__str_result_tl
+ { \prg_break: \__str_decode_utf_viii_end: }
+ \prg_break_point:
+ }
+ \__str_if_flag_error:nnx { str_error } { utf8-decode } { }
+ }
+\cs_new:Npn \__str_decode_utf_viii_start:N #1
+ {
+ #1
+ \if_int_compare:w `#1 < "C0 \exp_stop_f:
+ \s__tl
+ \if_int_compare:w `#1 < "80 \exp_stop_f:
+ \int_value:w `#1
+ \else:
+ \flag_raise:n { str_extra }
+ \flag_raise:n { str_error }
+ \int_use:N \c__str_replacement_char_int
+ \fi:
+ \else:
+ \exp_after:wN \__str_decode_utf_viii_continuation:wwN
+ \int_value:w \int_eval:n { `#1 - "C0 } \exp_after:wN
+ \fi:
+ \s__tl
+ \use_none_delimit_by_q_stop:w {"80} {"800} {"10000} {"110000} \q_stop
+ \__str_decode_utf_viii_start:N
+ }
+\cs_new:Npn \__str_decode_utf_viii_continuation:wwN
+ #1 \s__tl #2 \__str_decode_utf_viii_start:N #3
+ {
+ \use_none:n #3
+ \if_int_compare:w `#3 <
+ \if_int_compare:w `#3 < "80 \exp_stop_f: - \fi:
+ "C0 \exp_stop_f:
+ #3
+ \exp_after:wN \__str_decode_utf_viii_aux:wNnnwN
+ \int_value:w \int_eval:n { #1 * "40 + `#3 - "80 } \exp_after:wN
+ \else:
+ \s__tl
+ \flag_raise:n { str_missing }
+ \flag_raise:n { str_error }
+ \int_use:N \c__str_replacement_char_int
+ \fi:
+ \s__tl
+ #2
+ \__str_decode_utf_viii_start:N #3
+ }
+\cs_new:Npn \__str_decode_utf_viii_aux:wNnnwN
+ #1 \s__tl #2#3#4 #5 \__str_decode_utf_viii_start:N #6
+ {
+ \if_int_compare:w #1 < #4 \exp_stop_f:
+ \s__tl
+ \if_int_compare:w #1 < #3 \exp_stop_f:
+ \flag_raise:n { str_overlong }
+ \flag_raise:n { str_error }
+ \int_use:N \c__str_replacement_char_int
+ \else:
+ #1
+ \fi:
+ \else:
+ \if_meaning:w \q_stop #5
+ \__str_decode_utf_viii_overflow:w #1
+ \fi:
+ \exp_after:wN \__str_decode_utf_viii_continuation:wwN
+ \int_value:w \int_eval:n { #1 - #4 } \exp_after:wN
+ \fi:
+ \s__tl
+ #2 {#4} #5
+ \__str_decode_utf_viii_start:N
+ }
+\cs_new:Npn \__str_decode_utf_viii_overflow:w #1 \fi: #2 \fi:
+ {
+ \fi: \fi:
+ \flag_raise:n { str_overflow }
+ \flag_raise:n { str_error }
+ \int_use:N \c__str_replacement_char_int
+ }
+\cs_new:Npn \__str_decode_utf_viii_end:
+ {
+ \s__tl
+ \flag_raise:n { str_missing }
+ \flag_raise:n { str_error }
+ \int_use:N \c__str_replacement_char_int \s__tl
+ \prg_break:
+ }
+\group_begin:
+ \char_set_catcode_other:N \^^fe
+ \char_set_catcode_other:N \^^ff
+ \cs_new_protected:cpn { __str_convert_encode_utf16: }
+ {
+ \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n
+ \tl_gput_left:Nx \g__str_result_tl { ^^fe ^^ff }
+ }
+ \cs_new_protected:cpn { __str_convert_encode_utf16be: }
+ { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n }
+ \cs_new_protected:cpn { __str_convert_encode_utf16le: }
+ { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_le:n }
+ \cs_new_protected:Npn \__str_encode_utf_xvi_aux:N #1
+ {
+ \flag_clear:n { str_error }
+ \cs_set_eq:NN \__str_tmp:w #1
+ \__str_convert_gmap_internal:N \__str_encode_utf_xvi_char:n
+ \__str_if_flag_error:nnx { str_error } { utf16-encode } { }
+ }
+ \cs_new:Npn \__str_encode_utf_xvi_char:n #1
+ {
+ \if_int_compare:w #1 < "D800 \exp_stop_f:
+ \__str_tmp:w {#1}
+ \else:
+ \if_int_compare:w #1 < "10000 \exp_stop_f:
+ \if_int_compare:w #1 < "E000 \exp_stop_f:
+ \flag_raise:n { str_error }
+ \__str_tmp:w { \c__str_replacement_char_int }
+ \else:
+ \__str_tmp:w {#1}
+ \fi:
+ \else:
+ \exp_args:Nf \__str_tmp:w { \int_div_truncate:nn {#1} {"400} + "D7C0 }
+ \exp_args:Nf \__str_tmp:w { \int_mod:nn {#1} {"400} + "DC00 }
+ \fi:
+ \fi:
+ }
+ \flag_clear_new:n { str_missing }
+ \flag_clear_new:n { str_extra }
+ \flag_clear_new:n { str_end }
+ \__kernel_msg_new:nnnn { str } { utf16-encode }
+ { Unicode~string~cannot~be~expressed~in~UTF-16:~surrogate. }
+ {
+ Surrogate~code~points~(in~the~range~[U+D800,~U+DFFF])~
+ can~be~expressed~in~the~UTF-8~and~UTF-32~encodings,~
+ but~not~in~the~UTF-16~encoding.
+ }
+ \__kernel_msg_new:nnnn { str } { utf16-decode }
+ {
+ Invalid~UTF-16~string:
+ \exp_last_unbraced:Nf \use_none:n
+ {
+ \__str_if_flag_times:nT { str_missing } { ,~missing~trail~surrogate }
+ \__str_if_flag_times:nT { str_extra } { ,~extra~trail~surrogate }
+ \__str_if_flag_times:nT { str_end } { ,~odd~number~of~bytes }
+ }
+ .
+ }
+ {
+ In~the~UTF-16~encoding,~each~Unicode~character~is~encoded~as~
+ 2~or~4~bytes: \\
+ \iow_indent:n
+ {
+ Code~point~in~[U+0000,~U+D7FF]:~two~bytes \\
+ Code~point~in~[U+D800,~U+DFFF]:~illegal \\
+ Code~point~in~[U+E000,~U+FFFF]:~two~bytes \\
+ Code~point~in~[U+10000,~U+10FFFF]:~
+ a~lead~surrogate~and~a~trail~surrogate \\
+ }
+ Lead~surrogates~are~pairs~of~bytes~in~the~range~[0xD800,~0xDBFF],~
+ and~trail~surrogates~are~in~the~range~[0xDC00,~0xDFFF].
+ \flag_if_raised:nT { str_missing }
+ {
+ \\\\
+ A~lead~surrogate~was~not~followed~by~a~trail~surrogate.
+ }
+ \flag_if_raised:nT { str_extra }
+ {
+ \\\\
+ LaTeX~came~across~a~trail~surrogate~when~it~was~not~expected.
+ }
+ \flag_if_raised:nT { str_end }
+ {
+ \\\\
+ The~string~contained~an~odd~number~of~bytes.~This~is~invalid:~
+ the~basic~code~unit~for~UTF-16~is~16~bits~(2~bytes).
+ }
+ }
+ \cs_new_protected:cpn { __str_convert_decode_utf16be: }
+ { \__str_decode_utf_xvi:Nw 1 \g__str_result_tl \s_stop }
+ \cs_new_protected:cpn { __str_convert_decode_utf16le: }
+ { \__str_decode_utf_xvi:Nw 2 \g__str_result_tl \s_stop }
+ \cs_new_protected:cpn { __str_convert_decode_utf16: }
+ {
+ \exp_after:wN \__str_decode_utf_xvi_bom:NN
+ \g__str_result_tl \s_stop \s_stop \s_stop
+ }
+ \cs_new_protected:Npn \__str_decode_utf_xvi_bom:NN #1#2
+ {
+ \str_if_eq:nnTF { #1#2 } { ^^ff ^^fe }
+ { \__str_decode_utf_xvi:Nw 2 }
+ {
+ \str_if_eq:nnTF { #1#2 } { ^^fe ^^ff }
+ { \__str_decode_utf_xvi:Nw 1 }
+ { \__str_decode_utf_xvi:Nw 1 #1#2 }
+ }
+ }
+ \cs_new_protected:Npn \__str_decode_utf_xvi:Nw #1#2 \s_stop
+ {
+ \flag_clear:n { str_error }
+ \flag_clear:n { str_missing }
+ \flag_clear:n { str_extra }
+ \flag_clear:n { str_end }
+ \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 }
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_decode_utf_xvi_pair:NN
+ #2 \q_nil \q_nil
+ \prg_break_point:
+ }
+ \__str_if_flag_error:nnx { str_error } { utf16-decode } { }
+ }
+ \cs_new:Npn \__str_decode_utf_xvi_pair:NN #1#2
+ {
+ \if_meaning:w \q_nil #2
+ \__str_decode_utf_xvi_pair_end:Nw #1
+ \fi:
+ \if_case:w
+ \int_eval:n { ( \__str_tmp:w #1#2 - "D6 ) / 4 } \scan_stop:
+ \or: \exp_after:wN \__str_decode_utf_xvi_quad:NNwNN
+ \or: \exp_after:wN \__str_decode_utf_xvi_extra:NNw
+ \fi:
+ #1#2 \s__tl
+ \int_eval:n { "100 * \__str_tmp:w #1#2 + \__str_tmp:w #2#1 } \s__tl
+ \__str_decode_utf_xvi_pair:NN
+ }
+ \cs_new:Npn \__str_decode_utf_xvi_quad:NNwNN
+ #1#2 #3 \__str_decode_utf_xvi_pair:NN #4#5
+ {
+ \if_meaning:w \q_nil #5
+ \__str_decode_utf_xvi_error:nNN { missing } #1#2
+ \__str_decode_utf_xvi_pair_end:Nw #4
+ \fi:
+ \if_int_compare:w
+ \if_int_compare:w \__str_tmp:w #4#5 < "DC \exp_stop_f:
+ 0 = 1
+ \else:
+ \__str_tmp:w #4#5 < "E0
+ \fi:
+ \exp_stop_f:
+ #1 #2 #4 #5 \s__tl
+ \int_eval:n
+ {
+ ( "100 * \__str_tmp:w #1#2 + \__str_tmp:w #2#1 - "D7F7 ) * "400
+ + "100 * \__str_tmp:w #4#5 + \__str_tmp:w #5#4
+ }
+ \s__tl
+ \exp_after:wN \use_i:nnn
+ \else:
+ \__str_decode_utf_xvi_error:nNN { missing } #1#2
+ \fi:
+ \__str_decode_utf_xvi_pair:NN #4#5
+ }
+ \cs_new:Npn \__str_decode_utf_xvi_pair_end:Nw #1 \fi:
+ {
+ \fi:
+ \if_meaning:w \q_nil #1
+ \else:
+ \__str_decode_utf_xvi_error:nNN { end } #1 \prg_do_nothing:
+ \fi:
+ \prg_break:
+ }
+ \cs_new:Npn \__str_decode_utf_xvi_extra:NNw #1#2 \s__tl #3 \s__tl
+ { \__str_decode_utf_xvi_error:nNN { extra } #1#2 }
+ \cs_new:Npn \__str_decode_utf_xvi_error:nNN #1#2#3
+ {
+ \flag_raise:n { str_error }
+ \flag_raise:n { str_#1 }
+ #2 #3 \s__tl
+ \int_use:N \c__str_replacement_char_int \s__tl
+ }
+\group_end:
+\group_begin:
+ \char_set_catcode_other:N \^^00
+ \char_set_catcode_other:N \^^fe
+ \char_set_catcode_other:N \^^ff
+ \cs_new_protected:cpn { __str_convert_encode_utf32: }
+ {
+ \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n
+ \tl_gput_left:Nx \g__str_result_tl { ^^00 ^^00 ^^fe ^^ff }
+ }
+ \cs_new_protected:cpn { __str_convert_encode_utf32be: }
+ { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n }
+ \cs_new_protected:cpn { __str_convert_encode_utf32le: }
+ { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_le:n }
+ \cs_new:Npn \__str_encode_utf_xxxii_be:n #1
+ {
+ \exp_args:Nf \__str_encode_utf_xxxii_be_aux:nn
+ { \int_div_truncate:nn {#1} { "100 } } {#1}
+ }
+ \cs_new:Npn \__str_encode_utf_xxxii_be_aux:nn #1#2
+ {
+ ^^00
+ \__str_output_byte_pair_be:n {#1}
+ \__str_output_byte:n { #2 - #1 * "100 }
+ }
+ \cs_new:Npn \__str_encode_utf_xxxii_le:n #1
+ {
+ \exp_args:Nf \__str_encode_utf_xxxii_le_aux:nn
+ { \int_div_truncate:nn {#1} { "100 } } {#1}
+ }
+ \cs_new:Npn \__str_encode_utf_xxxii_le_aux:nn #1#2
+ {
+ \__str_output_byte:n { #2 - #1 * "100 }
+ \__str_output_byte_pair_le:n {#1}
+ ^^00
+ }
+ \flag_clear_new:n { str_overflow }
+ \flag_clear_new:n { str_end }
+ \__kernel_msg_new:nnnn { str } { utf32-decode }
+ {
+ Invalid~UTF-32~string:
+ \exp_last_unbraced:Nf \use_none:n
+ {
+ \__str_if_flag_times:nT { str_overflow } { ,~code~point~too~large }
+ \__str_if_flag_times:nT { str_end } { ,~truncated~string }
+ }
+ .
+ }
+ {
+ In~the~UTF-32~encoding,~every~Unicode~character~
+ (in~the~range~[U+0000,~U+10FFFF])~is~encoded~as~4~bytes.
+ \flag_if_raised:nT { str_overflow }
+ {
+ \\\\
+ LaTeX~came~across~a~code~point~larger~than~1114111,~
+ the~maximum~code~point~defined~by~Unicode.~
+ Perhaps~the~string~was~not~encoded~in~the~UTF-32~encoding?
+ }
+ \flag_if_raised:nT { str_end }
+ {
+ \\\\
+ The~length~of~the~string~is~not~a~multiple~of~4.~
+ Perhaps~the~string~was~truncated?
+ }
+ }
+ \cs_new_protected:cpn { __str_convert_decode_utf32be: }
+ { \__str_decode_utf_xxxii:Nw 1 \g__str_result_tl \s_stop }
+ \cs_new_protected:cpn { __str_convert_decode_utf32le: }
+ { \__str_decode_utf_xxxii:Nw 2 \g__str_result_tl \s_stop }
+ \cs_new_protected:cpn { __str_convert_decode_utf32: }
+ {
+ \exp_after:wN \__str_decode_utf_xxxii_bom:NNNN \g__str_result_tl
+ \s_stop \s_stop \s_stop \s_stop \s_stop
+ }
+ \cs_new_protected:Npn \__str_decode_utf_xxxii_bom:NNNN #1#2#3#4
+ {
+ \str_if_eq:nnTF { #1#2#3#4 } { ^^ff ^^fe ^^00 ^^00 }
+ { \__str_decode_utf_xxxii:Nw 2 }
+ {
+ \str_if_eq:nnTF { #1#2#3#4 } { ^^00 ^^00 ^^fe ^^ff }
+ { \__str_decode_utf_xxxii:Nw 1 }
+ { \__str_decode_utf_xxxii:Nw 1 #1#2#3#4 }
+ }
+ }
+ \cs_new_protected:Npn \__str_decode_utf_xxxii:Nw #1#2 \s_stop
+ {
+ \flag_clear:n { str_overflow }
+ \flag_clear:n { str_end }
+ \flag_clear:n { str_error }
+ \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 }
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_decode_utf_xxxii_loop:NNNN
+ #2 \s_stop \s_stop \s_stop \s_stop
+ \prg_break_point:
+ }
+ \__str_if_flag_error:nnx { str_error } { utf32-decode } { }
+ }
+ \cs_new:Npn \__str_decode_utf_xxxii_loop:NNNN #1#2#3#4
+ {
+ \if_meaning:w \s_stop #4
+ \exp_after:wN \__str_decode_utf_xxxii_end:w
+ \fi:
+ #1#2#3#4 \s__tl
+ \if_int_compare:w \__str_tmp:w #1#4 > 0 \exp_stop_f:
+ \flag_raise:n { str_overflow }
+ \flag_raise:n { str_error }
+ \int_use:N \c__str_replacement_char_int
+ \else:
+ \if_int_compare:w \__str_tmp:w #2#3 > 16 \exp_stop_f:
+ \flag_raise:n { str_overflow }
+ \flag_raise:n { str_error }
+ \int_use:N \c__str_replacement_char_int
+ \else:
+ \int_eval:n
+ { \__str_tmp:w #2#3*"10000 + \__str_tmp:w #3#2*"100 + \__str_tmp:w #4#1 }
+ \fi:
+ \fi:
+ \s__tl
+ \__str_decode_utf_xxxii_loop:NNNN
+ }
+ \cs_new:Npn \__str_decode_utf_xxxii_end:w #1 \s_stop
+ {
+ \tl_if_empty:nF {#1}
+ {
+ \flag_raise:n { str_end }
+ \flag_raise:n { str_error }
+ #1 \s__tl
+ \int_use:N \c__str_replacement_char_int \s__tl
+ }
+ \prg_break:
+ }
+\group_end:
%% File: l3tl-analysis.dtx
\scan_new:N \s__tl
\cs_new_eq:NN \l__tl_analysis_token ?
@@ -24147,7 +25465,7 @@
\tex_kern:D -\l__box_left_new_dim
\hbox:n
{
- \driver_box_use_rotate:Nn
+ \__box_backend_rotate:Nn
\l__box_internal_box
\l__box_angle_fp
}
@@ -24416,7 +25734,7 @@
{
\hbox_set:Nn \l__box_internal_box
{
- \driver_box_use_scale:Nnn
+ \__box_backend_scale:Nnn
#1
\l__box_scale_x_fp
\l__box_scale_y_fp
@@ -24454,7 +25772,7 @@
\cs_new_eq:NN \color_group_end: \group_end:
\cs_new_protected:Npn \color_ensure_current:
{
- \driver_color_pickup:N \l__color_current_tl
+ \__color_backend_pickup:N \l__color_current_tl
\__color_select:V \l__color_current_tl
}
\cs_new_protected:Npn \__color_select:n #1
@@ -24463,13 +25781,13 @@
\cs_new_protected:Npn \__color_select:w #1 ~ #2 \q_stop
{ \use:c { __color_select_ #1 :w } #2 \q_stop }
\cs_new_protected:Npn \__color_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop
- { \driver_color_cmyk:nnnn {#1} {#2} {#3} {#4} }
+ { \__color_backend_cmyk:nnnn {#1} {#2} {#3} {#4} }
\cs_new_protected:Npn \__color_select_gray:w #1 \q_stop
- { \driver_color_gray:n {#1} }
+ { \__color_backend_gray:n {#1} }
\cs_new_protected:Npn \__color_select_rgb:w #1 ~ #2 ~ #3 \q_stop
- { \driver_color_rgb:nnn {#1} {#2} {#3} }
+ { \__color_backend_rgb:nnn {#1} {#2} {#3} }
\cs_new_protected:Npn \__color_select_spot:w #1 ~ #2 \q_stop
- { \driver_color_spot:nn {#1} {#2} }
+ { \__color_backend_spot:nn {#1} {#2} }
\tl_new:N \l__color_current_tl
\tl_set:Nn \l__color_current_tl { gray~0 }
%% File: l3coffins.dtx
@@ -25332,7 +26650,7 @@
\cs_generate_variant:Nn \coffin_attach:NnnNnnnn { c , Nnnc , cnnc }
\cs_new_protected:Npn \coffin_gattach:NnnNnnnn #1#2#3#4#5#6#7#8
{
- \__coffin_gattach:NnnNnnnnN #1 {#2} {#3} #4 {#5} {#6} {#7} {#8}
+ \__coffin_attach:NnnNnnnnN #1 {#2} {#3} #4 {#5} {#6} {#7} {#8}
\coffin_gset_eq:NN
}
\cs_generate_variant:Nn \coffin_gattach:NnnNnnnn { c , Nnnc , cnnc }
@@ -25897,10 +27215,10 @@
\fi:
}
\cs_new_protected:Npn \box_clip:N #1
- { \hbox_set:Nn #1 { \driver_box_use_clip:N #1 } }
+ { \hbox_set:Nn #1 { \__box_backend_clip:N #1 } }
\cs_generate_variant:Nn \box_clip:N { c }
\cs_new_protected:Npn \box_gclip:N #1
- { \hbox_gset:Nn #1 { \driver_box_use_clip:N #1 } }
+ { \hbox_gset:Nn #1 { \__box_backend_clip:N #1 } }
\cs_generate_variant:Nn \box_gclip:N { c }
\cs_new_protected:Npn \box_set_trim:Nnnnn #1#2#3#4#5
{ \__box_set_trim:NnnnnN #1 {#2} {#3} {#4} {#5} \box_set_eq:NN }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 8014aa50960..ee6b0cfdad3 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-28}%
+\def\ExplFileDate{2019-07-01}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\def\tempa{LaTeX2e}%
@@ -86,7 +86,7 @@
\iow_log:x { File:~#1~#2~v#3~#4 }
}
\tex_input:D
- l3
+ l3backend
\sys_if_engine_xetex:TF
{ xdvipdfmx }
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 41b84801c47..f08739aaacd 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-28}%
+\def\ExplFileDate{2019-07-01}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
@@ -277,7 +277,8 @@
\ProvidesFile {#1} [ #2~v#3~#4 ]
}
\tl_const:Nn \c__expl_def_ext_tl { def }
- \@onefilewithoptions { l3 \l__expl_driver_tl } [ ] [ ] \c__expl_def_ext_tl
+ \@onefilewithoptions { l3backend- \l__expl_driver_tl } [ ] [ ]
+ \c__expl_def_ext_tl
}
\tl_put_left:Nn \@pushfilename
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index ed111045fbf..e1f1aad315d 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -1921,8 +1921,9 @@
\char_set_catcode_active:N \>
\cs_new_protected:Npn \__codedoc_xmacro_code:n #1
{
+ \tl_clear:N \l__codedoc_tmpa_tl
\tl_if_in:nnTF {#1} { < @ @ = }
- { \__codedoc_xmacro_code:w #1 \q_stop }
+ { \__codedoc_xmacro_code:w #1 < @ @ = \q_recursion_tail > \q_recursion_stop }
{
\tl_set:Nn \l__codedoc_tmpa_tl {#1}
\__codedoc_detect_internals:N \l__codedoc_tmpa_tl
@@ -1930,21 +1931,21 @@
\tl_use:N \l__codedoc_tmpa_tl
}
}
- \cs_new_protected:Npn \__codedoc_xmacro_code:w #1 < @ @ = #2 > #3 \q_stop
+ \cs_new_protected:Npn \__codedoc_xmacro_code:w #1 < @ @ = #2 >
{
- \tl_set:Nn \l__codedoc_tmpa_tl {#1}
- \__codedoc_detect_internals:N \l__codedoc_tmpa_tl
- \__codedoc_replace_at_at:N \l__codedoc_tmpa_tl
-
- \tl_gset:Nn \g__codedoc_module_name_tl {#2}
- \tl_put_right:Nn \l__codedoc_tmpa_tl { < \text { \verbatim@font @ @ = #2 } > }
-
- \tl_set:Nn \l__codedoc_tmpb_tl {#3}
+ % Add code before <__codedoc=...>
+ \tl_set:Nn \l__codedoc_tmpb_tl {#1}
\__codedoc_detect_internals:N \l__codedoc_tmpb_tl
\__codedoc_replace_at_at:N \l__codedoc_tmpb_tl
- \tl_put_right:No \l__codedoc_tmpa_tl { \l__codedoc_tmpb_tl }
-
- \tl_use:N \l__codedoc_tmpa_tl
+ \tl_put_right:NV \l__codedoc_tmpa_tl \l__codedoc_tmpb_tl
+ % Check for \q_recursion_tail
+ \quark_if_recursion_tail_stop_do:nn {#2}
+ { \tl_use:N \l__codedoc_tmpa_tl }
+ % Change module name and add <__codedoc=#2> to typeset output
+ \tl_gset:Nn \g__codedoc_module_name_tl {#2}
+ \tl_put_right:Nn \l__codedoc_tmpa_tl { < \text { \verbatim@font @ @ = #2 } > }
+ % Loop
+ \__codedoc_xmacro_code:w
}
\group_end:
\iow_new:N \g__codedoc_func_iow
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
deleted file mode 100644
index 20789461412..00000000000
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ /dev/null
@@ -1,635 +0,0 @@
-%%
-%% This is file `l3dvipdfmx.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3drivers.dtx (with options: `package,dvipdfmx')
-%% l3drivers-basics.dtx (with options: `package,dvipdfmx')
-%% l3drivers-color.dtx (with options: `package,dvipdfmx')
-%% l3drivers-box.dtx (with options: `package,dvipdfmx')
-%% l3drivers-draw.dtx (with options: `package,dvipdfmx')
-%% l3drivers-graphics.dtx (with options: `package,dvipdfmx')
-%% l3drivers-pdf.dtx (with options: `package,dvipdfmx')
-%%
-%% Copyright (C) 1990-2019 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:
-%%
-%% https://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% File: l3drivers.dtx
-%% File: l3drivers-basics.dtx
-\ProvidesExplFile
- {l3dvipdfmx.def}{2019-04-06}{}
- {L3 Experimental driver: dvipdfmx}
-\cs_new_eq:NN \__driver_literal:e \tex_special:D
-\cs_new_protected:Npn \__driver_literal:n #1
- { \__driver_literal:e { \exp_not:n {#1} } }
-\cs_generate_variant:Nn \__driver_literal:n { x }
-\box_new:N \l__driver_internal_box
-\cs_new_protected:Npn \__driver_literal_pdf:n #1
- { \__driver_literal:n { pdf:literal~ #1 } }
-\cs_generate_variant:Nn \__driver_literal_pdf:n { x }
-\cs_new_protected:Npn \__driver_scope_begin:
- { \__driver_literal:n { x:gsave } }
-\cs_new_protected:Npn \__driver_scope_end:
- { \__driver_literal:n { x:grestore } }
-%% File: l3drivers-color.dtx
-\cs_new_protected:Npn \driver_color_pickup:N #1 { }
-\AtBeginDocument
- {
- \@ifpackageloaded { color }
- {
- \cs_set_protected:Npn \driver_color_pickup:N #1
- {
- \exp_args:NV \tl_if_head_is_space:nTF \current@color
- {
- \tl_set:Nx #1
- {
- spot ~
- \exp_after:wN \use:n \current@color \c_space_tl 1
- }
- }
- {
- \exp_last_unbraced:Nx \__driver_color_pickup:w
- { \current@color } \q_stop #1
- }
- }
- \cs_new_protected:Npn \__driver_color_pickup:w #1 ~ #2 \q_stop #3
- { \tl_set:Nn #3 { #1 ~ #2 } }
- }
- { }
- }
-\cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:x
- {
- cmyk~
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4}
- }
- }
-\cs_new_protected:Npn \driver_color_gray:n #1
- { \__driver_color_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
- {
- \__driver_color_select:x
- { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
- }
-\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { #1 } }
-\cs_new_protected:Npn \__driver_color_select:n #1
- {
- \__driver_literal:n { color~push~ #1 }
- \group_insert_after:N \__driver_color_reset:
- }
-\cs_generate_variant:Nn \__driver_color_select:n { x }
-\cs_new_protected:Npn \__driver_color_reset:
- { \__driver_literal:n { color~pop } }
-%% File: l3drivers-box.dtx
-\cs_new_protected:Npn \driver_box_use_clip:N #1
- {
- \__driver_scope_begin:
- \__driver_literal_pdf:x
- {
- 0~
- \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_ht:N #1 + \box_dp:N #1 } ~
- re~W~n
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- \skip_horizontal:n { \box_wd:N #1 }
- }
-\cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
- { \exp_args:NNf \__driver_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
-\cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
- {
- \__driver_scope_begin:
- \__driver_literal:x
- {
- x:rotate~
- \fp_compare:nNnTF {#2} = \c_zero_fp
- { 0 }
- { \fp_eval:n { round ( #2 , 5 ) } }
- }
- \box_use:N #1
- \__driver_scope_end:
- }
-\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3
- {
- \__driver_scope_begin:
- \__driver_literal:x
- {
- x:scale~
- \fp_eval:n { round ( #2 , 5 ) } ~
- \fp_eval:n { round ( #3 , 5 ) }
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- }
-%% File: l3drivers-draw.dtx
-\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n
-\cs_generate_variant:Nn \__driver_draw_literal:n { x }
-\cs_new_protected:Npn \driver_draw_begin:
- { \driver_draw_scope_begin: }
-\cs_new_protected:Npn \driver_draw_end:
- { \driver_draw_scope_end: }
-\cs_new_eq:NN \driver_draw_scope_begin: \__driver_scope_begin:
-\cs_new_eq:NN \driver_draw_scope_end: \__driver_scope_end:
-\cs_new_protected:Npn \driver_draw_moveto:nn #1#2
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m }
- }
-\cs_new_protected:Npn \driver_draw_lineto:nn #1#2
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l }
- }
-\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
- \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
- c
- }
- }
-\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
- re
- }
- }
-\cs_new_protected:Npn \driver_draw_evenodd_rule:
- { \bool_gset_true:N \g__driver_draw_eor_bool }
-\cs_new_protected:Npn \driver_draw_nonzero_rule:
- { \bool_gset_false:N \g__driver_draw_eor_bool }
-\bool_new:N \g__driver_draw_eor_bool
-\cs_new_protected:Npn \driver_draw_closepath:
- { \__driver_draw_literal:n { h } }
-\cs_new_protected:Npn \driver_draw_stroke:
- { \__driver_draw_literal:n { S } }
-\cs_new_protected:Npn \driver_draw_closestroke:
- { \__driver_draw_literal:n { s } }
-\cs_new_protected:Npn \driver_draw_fill:
- {
- \__driver_draw_literal:x
- { f \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_fillstroke:
- {
- \__driver_draw_literal:x
- { B \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_clip:
- {
- \__driver_draw_literal:x
- { W \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_discardpath:
- { \__driver_draw_literal:n { n } }
-\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2
- {
- \__driver_draw_literal:x
- {
- [
- \exp_args:Nf \use:n
- { \clist_map_function:nN {#1} \__driver_draw_dash:n }
- ] ~
- \dim_to_decimal_in_bp:n {#2} ~ d
- }
- }
-\cs_new:Npn \__driver_draw_dash:n #1
- { ~ \dim_to_decimal_in_bp:n {#1} }
-\cs_new_protected:Npn \driver_draw_linewidth:n #1
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ w }
- }
-\cs_new_protected:Npn \driver_draw_miterlimit:n #1
- { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } }
-\cs_new_protected:Npn \driver_draw_cap_butt:
- { \__driver_draw_literal:n { 0 ~ J } }
-\cs_new_protected:Npn \driver_draw_cap_round:
- { \__driver_draw_literal:n { 1 ~ J } }
-\cs_new_protected:Npn \driver_draw_cap_rectangle:
- { \__driver_draw_literal:n { 2 ~ J } }
-\cs_new_protected:Npn \driver_draw_join_miter:
- { \__driver_draw_literal:n { 0 ~ j } }
-\cs_new_protected:Npn \driver_draw_join_round:
- { \__driver_draw_literal:n { 1 ~ j } }
-\cs_new_protected:Npn \driver_draw_join_bevel:
- { \__driver_draw_literal:n { 2 ~ j } }
-\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_fill_select:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- k
- }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- k
- }
- }
-\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
- { \__driver_color_fill_select:x { \fp_eval:n {#1} ~ g } }
-\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1
- { \__driver_color_select:x { \fp_eval:n {#1} ~ G } }
-\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
- {
- \__driver_color_fill_select:x
- { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3
- {
- \__driver_color_select:x
- { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
- }
-\cs_new_eq:NN \__driver_color_fill_select:n \__driver_draw_literal:n
-\cs_generate_variant:Nn \__driver_color_fill_select:n { x }
-\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
- {
- \__driver_draw_cm_decompose:nnnnN {#1} {#2} {#3} {#4}
- \__driver_draw_cm:nnnn
- }
-\cs_new_protected:Npn \__driver_draw_cm:nnnn #1#2#3#4
- {
- \__driver_literal:x
- {
- x:rotate~
- \fp_compare:nNnTF {#1} = \c_zero_fp
- { 0 }
- { \fp_eval:n { round ( -#1 , 5 ) } }
- }
- \__driver_literal:x
- {
- x:scale~
- \fp_eval:n { round ( #2 , 5 ) } ~
- \fp_eval:n { round ( #3 , 5 ) }
- }
- \__driver_literal:x
- {
- x:rotate~
- \fp_compare:nNnTF {#4} = \c_zero_fp
- { 0 }
- { \fp_eval:n { round ( -#4 , 5 ) } }
- }
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose:nnnnN #1#2#3#4#5
- {
- \use:x
- {
- \__driver_draw_cm_decompose_auxi:nnnnN
- { \fp_eval:n { (#1 + #4) / 2 } }
- { \fp_eval:n { (#1 - #4) / 2 } }
- { \fp_eval:n { (#3 + #2) / 2 } }
- { \fp_eval:n { (#3 - #2) / 2 } }
- }
- #5
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose_auxi:nnnnN #1#2#3#4#5
- {
- \use:x
- {
- \__driver_draw_cm_decompose_auxii:nnnnN
- { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } }
- { \fp_eval:n { 2 * sqrt ( #2 * #2 + #3 * #3 ) } }
- { \fp_eval:n { atand ( #3 , #2 ) } }
- { \fp_eval:n { atand ( #4 , #1 ) } }
- }
- #5
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose_auxii:nnnnN #1#2#3#4#5
- {
- \use:x
- {
- \__driver_draw_cm_decompose_auxiii:nnnnN
- { \fp_eval:n { ( #4 - #3 ) / 2 } }
- { \fp_eval:n { ( #1 + #2 ) / 2 } }
- { \fp_eval:n { ( #1 - #2 ) / 2 } }
- { \fp_eval:n { ( #4 + #3 ) / 2 } }
- }
- #5
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose_auxiii:nnnnN #1#2#3#4#5
- {
- \fp_compare:nNnTF { abs( #2 ) } > { abs ( #3 ) }
- { #5 {#1} {#2} {#3} {#4} }
- { #5 {#1} {#3} {#2} {#4} }
- }
-\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5
- {
- \__driver_scope_begin:
- \__driver_literal:x
- {
- pdf:btrans~matrix~
- \fp_eval:n {#2} ~ \fp_eval:n {#3} ~
- \fp_eval:n {#4} ~ \fp_eval:n {#5} ~
- 0 ~ 0
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_literal:n { pdf:etrans }
- \__driver_scope_end:
- }
-%% File: l3drivers-graphics.dtx
-\AtBeginDocument
- { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
-\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
- {
- \int_zero:N \l_graphics_page_int
- \tl_clear:N \l_graphics_pagebox_tl
- \graphics_extract_bb:n {#1}
- }
-\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
-\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
- {
- \tl_clear:N \l_graphics_decodearray_tl
- \bool_set_false:N \l_graphics_interpolate_bool
- \graphics_extract_bb:n {#1}
- }
-\int_new:N \g__driver_graphics_int
-\cs_new_protected:Npn \driver_graphics_include_eps:n #1
- {
- \__driver_literal:x
- {
- PSfile = #1 \c_space_tl
- llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
- lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
- urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
- ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
- }
- }
-\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
- { \__driver_graphics_include_auxi:nn {#1} { image } }
-\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
-\cs_new_protected:Npn \driver_graphics_include_pdf:n #1
- { \__driver_graphics_include_auxi:nn {#1} { epdf } }
-\cs_new_protected:Npn \__driver_graphics_include_auxi:nn #1#2
- {
- \__driver_graphics_include_auxii:xnn
- {
- \tl_if_empty:NF \l_graphics_pagebox_tl
- { : \l_graphics_pagebox_tl }
- \int_compare:nNnT \l_graphics_page_int > 1
- { :P \int_use:N \l_graphics_page_int }
- \tl_if_empty:NF \l_graphics_decodearray_tl
- { :D \l_graphics_decodearray_tl }
- \bool_if:NT \l_graphics_interpolate_bool
- { :I }
- }
- {#1} {#2}
- }
-\cs_new_protected:Npn \__driver_graphics_include_auxii:nnn #1#2#3
- {
- \int_if_exist:cTF { c__driver_graphics_ #2#1 _int }
- {
- \__driver_literal:x
- { pdf:usexobj~@graphic \int_use:c { c__driver_graphics_ #2#1 _int } }
- }
- { \__driver_graphics_include_auxiii:nnn {#2} {#1} {#3} }
- }
-\cs_generate_variant:Nn \__driver_graphics_include_auxii:nnn { x }
-\cs_new_protected:Npn \__driver_graphics_include_auxiii:nnn #1#2#3
- {
- \int_gincr:N \g__driver_graphics_int
- \int_const:cn { c__driver_graphics_ #1#2 _int } { \g__driver_graphics_int }
- \__driver_literal:x
- {
- pdf:#3~
- @graphic \int_use:c { c__driver_graphics_ #1#2 _int } ~
- \int_compare:nNnT \l_graphics_page_int > 1
- { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
- \tl_if_empty:NF \l_graphics_pagebox_tl
- {
- pagebox ~ \l_graphics_pagebox_tl \c_space_tl
- bbox ~
- \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_graphics_ury_dim \c_space_tl
- }
- (#1)
- \bool_lazy_or:nnT
- { \l_graphics_interpolate_bool }
- { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
- {
- <<
- \tl_if_empty:NF \l_graphics_decodearray_tl
- { /Decode~[ \l_graphics_decodearray_tl ] }
- \bool_if:NT \l_graphics_interpolate_bool
- { /Interpolate~true> }
- >>
- }
- }
- }
-%% File: l3drivers-pdf.dtx
-\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
- {
- \int_gincr:N \g__driver_pdf_object_int
- \int_const:cn
- { g__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 } }
-\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2
- {
- \exp_args:Nx \__driver_pdf_object_write:nnn
- { \prop_item:Nn \g__driver_pdf_object_prop {#1} } {#1} {#2}
- }
-\cs_new_protected:Npn \__driver_pdf_object_write:nnn #1#2#3
- { \use:c { __driver_pdf_object_write_ #1 :nn } {#2} {#3} }
-\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2
- {
- \__driver_pdf:x
- {
- obj ~ \driver_pdf_object_ref:n {#1} ~
- [ ~ \exp_not:n {#2} ~ ]
- }
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
- {
- \__driver_pdf:x
- {
- obj ~ \driver_pdf_object_ref:n {#1} ~
- << ~ \exp_not:n {#2} ~ >>
- }
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_fstream:nn #1#2
- { \__driver_pdf_object_write_stream:nnnn { f } {#1} #2 }
-\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2
- { \__driver_pdf_object_write_stream:nnnn { } {#1} #2 }
-\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnnn #1#2#3#4
- {
- \__driver_pdf:x
- {
- #1 stream ~ \driver_pdf_object_ref:n {#2} ~
- ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >>
-
- }
- }
-\bool_new:N \g__driver_landscape_bool
-\AtBeginDocument
- {
- \cs_if_exist:NT \landscape
- {
- \tl_put_right:Nn \landscape
- { \bool_gset_true:N \g__driver_landscape_bool }
- \tl_put_left:Nn \endlandscape
- { \bool_gset_false:N \g__driver_landscape_bool }
- }
- }
-\int_new:N \g__driver_pdf_annotation_int
-\cs_new_protected:Npn \driver_pdf_annotation:nnnn #1#2#3#4
- {
- \bool_if:NTF \g__driver_landscape_bool
- {
- \box_move_up:nn {#2}
- {
- \vbox:n
- {
- \__driver_pdf_annotation:nnnn
- { #2 + #3 } {#1} { 0pt } {#4}
- }
- }
- }
- { \__driver_pdf_annotation:nnnn {#1} {#2} {#3} {#4} }
- }
-\cs_new_protected:Npn \__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_pdf:x
- {
- ann ~ @driver.obj \int_use:N \g__driver_pdf_object_int \c_space_tl
- width ~ \dim_eval:n {#1} ~
- height ~ \dim_eval:n {#2} ~
- depth ~ \dim_eval:n {#3} ~
- << #4 >>
- }
- }
-\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#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
- {
- \__driver_pdf:n
- {
- bann
- <<
- /Type /Annot
- #1
- >>
- }
- }
-\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
- { \__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_internal_box {#2}
- \box_move_down:nn { \box_dp:N \l__driver_internal_box }
- {
- \hbox:n
- {
- \__driver_pdf:n { obj ~ @driver_#1_llx ~ @xpos }
- \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos }
- }
- }
- \box_use:N \l__driver_internal_box
- \box_move_up:nn { \box_ht:N \l__driver_internal_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_compress_objects:n #1
- {
- \str_if_eq:nnF {#1} { true }
- { \__driver_literal:n { dvipdfmx:config~C~0x40 } }
- }
-\cs_new_protected:Npn \driver_pdf_version_major:n #1
- {
- \cs_gset:Npx \driver_pdf_version_major: { \int_eval:n {#1} }
- \__driver_literal:x { pdf:majorversion \driver_pdf_version_major: }
- }
-\cs_new_protected:Npn \driver_pdf_version_minor:n #1
- {
- \cs_gset:Npx \driver_pdf_version_minor: { \int_eval:n {#1} }
- \__driver_literal:x { pdf:minorversion \driver_pdf_version_minor: }
- }
-\cs_new:Npn \driver_pdf_version_major: { 1 }
-\cs_new:Npn \driver_pdf_version_minor: { 5 }
-%%
-%%
-%% End of file `l3dvipdfmx.def'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
deleted file mode 100644
index f51166f9231..00000000000
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def
+++ /dev/null
@@ -1,1176 +0,0 @@
-%%
-%% This is file `l3dvips.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3drivers.dtx (with options: `package,dvips')
-%% l3drivers-basics.dtx (with options: `package,dvips')
-%% l3drivers-color.dtx (with options: `package,dvips')
-%% l3drivers-box.dtx (with options: `package,dvips')
-%% l3drivers-draw.dtx (with options: `package,dvips')
-%% l3drivers-graphics.dtx (with options: `package,dvips')
-%% l3drivers-pdf.dtx (with options: `package,dvips')
-%%
-%% Copyright (C) 1990-2019 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:
-%%
-%% https://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% File: l3drivers.dtx
-%% File: l3drivers-basics.dtx
-\ProvidesExplFile
- {l3dvips.def}{2019-04-06}{}
- {L3 Experimental driver: dvips}
-\cs_new_eq:NN \__driver_literal:e \tex_special:D
-\cs_new_protected:Npn \__driver_literal:n #1
- { \__driver_literal:e { \exp_not:n {#1} } }
-\cs_generate_variant:Nn \__driver_literal:n { x }
-\box_new:N \l__driver_internal_box
-\cs_new_protected:Npn \__driver_literal_postscript:n #1
- { \__driver_literal:n { ps:: #1 } }
-\cs_generate_variant:Nn \__driver_literal_postscript:n { x }
-\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: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] }
- \__driver_literal_postscript:n { currentpoint }
- \__driver_literal_postscript:n { currentpoint~translate }
- }
-\cs_new_protected:Npn \__driver_align_currentpoint_end:
- {
- \__driver_literal_postscript:n { neg~exch~neg~exch~translate }
- \__driver_literal:n { ps::[end] }
- }
-\cs_new_protected:Npn \__driver_scope_begin:
- { \__driver_literal:n { ps:gsave } }
-\cs_new_protected:Npn \__driver_scope_end:
- { \__driver_literal:n { ps:grestore } }
-%% File: l3drivers-color.dtx
-\cs_new_protected:Npn \driver_color_pickup:N #1 { }
-\AtBeginDocument
- {
- \@ifpackageloaded { color }
- {
- \cs_set_protected:Npn \driver_color_pickup:N #1
- {
- \exp_args:NV \tl_if_head_is_space:nTF \current@color
- {
- \tl_set:Nx #1
- {
- spot ~
- \exp_after:wN \use:n \current@color \c_space_tl 1
- }
- }
- {
- \exp_last_unbraced:Nx \__driver_color_pickup:w
- { \current@color } \q_stop #1
- }
- }
- \cs_new_protected:Npn \__driver_color_pickup:w #1 ~ #2 \q_stop #3
- { \tl_set:Nn #3 { #1 ~ #2 } }
- }
- { }
- }
-\cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:x
- {
- cmyk~
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4}
- }
- }
-\cs_new_protected:Npn \driver_color_gray:n #1
- { \__driver_color_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
- {
- \__driver_color_select:x
- { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
- }
-\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { #1 } }
-\cs_new_protected:Npn \__driver_color_select:n #1
- {
- \__driver_literal:n { color~push~ #1 }
- \__driver_postscript:n { /driver.fc~{ }~def }
- \group_insert_after:N \__driver_color_reset:
- }
-\cs_generate_variant:Nn \__driver_color_select:n { x }
-\cs_new_protected:Npn \__driver_color_reset:
- { \__driver_literal:n { color~pop } }
-%% File: l3drivers-box.dtx
-\cs_new_protected:Npn \driver_box_use_clip:N #1
- {
- \__driver_scope_begin:
- \__driver_align_currentpoint_begin:
- \__driver_literal_postscript:n { matrix~currentmatrix }
- \__driver_literal_postscript:n
- { Resolution~72~div~VResolution~72~div~scale }
- \__driver_literal_postscript:n { DVImag~dup~scale }
- \__driver_literal_postscript:x
- {
- 0 ~
- \dim_to_decimal_in_bp:n { \box_dp:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
- \dim_to_decimal_in_bp:n { -\box_ht:N #1 - \box_dp:N #1 } ~
- rectclip
- }
- \__driver_literal_postscript:n { setmatrix }
- \__driver_align_currentpoint_end:
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- \skip_horizontal:n { \box_wd:N #1 }
- }
-\cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
- { \exp_args:NNf \__driver_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
-\cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
- {
- \__driver_scope_begin:
- \__driver_align_currentpoint_begin:
- \__driver_literal_postscript:x
- {
- \fp_compare:nNnTF {#2} = \c_zero_fp
- { 0 }
- { \fp_eval:n { round ( -(#2) , 5 ) } } ~
- rotate
- }
- \__driver_align_currentpoint_end:
- \box_use:N #1
- \__driver_scope_end:
- }
-\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3
- {
- \__driver_scope_begin:
- \__driver_align_currentpoint_begin:
- \__driver_literal_postscript:x
- {
- \fp_eval:n { round ( #2 , 5 ) } ~
- \fp_eval:n { round ( #3 , 5 ) } ~
- scale
- }
- \__driver_align_currentpoint_end:
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- }
-%% File: l3drivers-draw.dtx
-\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_postscript:n
-\cs_generate_variant:Nn \__driver_draw_literal:n { x }
-\cs_new_protected:Npn \driver_draw_begin:
- {
- \__driver_literal:n { ps::[begin] }
- \__driver_draw_literal:n { @beginspecial }
- \__driver_darw_literal:n { SDict ~ begin ~ /driver.fc ~ { } ~ def ~ end }
- }
-\cs_new_protected:Npn \driver_draw_end:
- {
- \__driver_draw_literal:n { @endspecial }
- \__driver_literal:n { ps::[end] }
- }
-\cs_new_protected:Npn \driver_draw_scope_begin:
- { \__driver_draw_literal:n { save } }
-\cs_new_protected:Npn \driver_draw_scope_end:
- { \__driver_draw_literal:n { restore } }
-\cs_new_protected:Npn \driver_draw_moveto:nn #1#2
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~
- \dim_to_decimal_in_bp:n {#2} ~ moveto
- }
- }
-\cs_new_protected:Npn \driver_draw_lineto:nn #1#2
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~
- \dim_to_decimal_in_bp:n {#2} ~ lineto
- }
- }
-\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- moveto~dup~0~rlineto~exch~0~exch~rlineto~neg~0~rlineto~closepath
- }
- }
-\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
- \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
- curveto
- }
- }
-\cs_new_protected:Npn \driver_draw_evenodd_rule:
- { \bool_gset_true:N \g__driver_draw_eor_bool }
-\cs_new_protected:Npn \driver_draw_nonzero_rule:
- { \bool_gset_false:N \g__driver_draw_eor_bool }
-\bool_new:N \g__driver_draw_eor_bool
-\cs_new_protected:Npn \driver_draw_closepath:
- { \__driver_draw_literal:n { closepath } }
-\cs_new_protected:Npn \driver_draw_stroke:
- {
- \__driver_draw_literal:n { stroke }
- \bool_if:NT \g__driver_draw_clip_bool
- {
- \__driver_draw_literal:x
- {
- \bool_if:NT \g__driver_draw_eor_bool { eo }
- clip
- }
- }
- \__driver_draw_literal:n { newpath }
- \bool_gset_false:N \g__driver_draw_clip_bool
- }
-\cs_new_protected:Npn \driver_draw_closestroke:
- {
- \driver_draw_closepath:
- \driver_draw_stroke:
- }
-\cs_new_protected:Npn \driver_draw_fill:
- {
- \__driver_draw_literal:n { gsave }
- \__driver_draw_literal:n { driver.fc }
- \__driver_draw_literal:x
- {
- \bool_if:NT \g__driver_draw_eor_bool { eo }
- fill
- }
- \__driver_draw_literal:n { grestore }
- \bool_if:NT \g__driver_draw_clip_bool
- {
- \__driver_draw_literal:x
- {
- \bool_if:NT \g__driver_draw_eor_bool { eo }
- clip
- }
- }
- \__driver_draw_literal:n { newpath }
- \bool_gset_false:N \g__driver_draw_clip_bool
- }
-\cs_new_protected:Npn \driver_draw_fillstroke:
- {
- \__driver_draw_literal:n { gsave }
- \__driver_draw_literal:n { driver.fc }
- \__driver_draw_literal:x
- {
- \bool_if:NT \g__driver_draw_eor_bool { eo }
- fill
- }
- \__driver_draw_literal:n { grestore }
- \__driver_draw_literal:n { stroke }
- \bool_if:NT \g__driver_draw_clip_bool
- {
- \__driver_draw_literal:x
- {
- \bool_if:NT \g__driver_draw_eor_bool { eo }
- clip
- }
- }
- \__driver_draw_literal:n { newpath }
- \bool_gset_false:N \g__driver_draw_clip_bool
- }
-\cs_new_protected:Npn \driver_draw_clip:
- { \bool_gset_true:N \g__driver_draw_clip_bool }
-\bool_new:N \g__driver_draw_clip_bool
-\cs_new_protected:Npn \driver_draw_discardpath:
- {
- \bool_if:NT \g__driver_draw_clip_bool
- {
- \__driver_draw_literal:x
- {
- \bool_if:NT \g__driver_draw_eor_bool { eo }
- clip
- }
- }
- \__driver_draw_literal:n { newpath }
- \bool_gset_false:N \g__driver_draw_clip_bool
- }
-\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2
- {
- \__driver_draw_literal:x
- {
- [
- \exp_args:Nf \use:n
- { \clist_map_function:nN {#1} \__driver_draw_dash:n }
- ] ~
- \dim_to_decimal_in_bp:n {#2} ~ setdash
- }
- }
-\cs_new:Npn \__driver_draw_dash:n #1
- { ~ \dim_to_decimal_in_bp:n {#1} }
-\cs_new_protected:Npn \driver_draw_linewidth:n #1
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth }
- }
-\cs_new_protected:Npn \driver_draw_miterlimit:n #1
- { \__driver_draw_literal:x { \fp_eval:n {#1} ~ setmiterlimit } }
-\cs_new_protected:Npn \driver_draw_cap_butt:
- { \__driver_draw_literal:n { 0 ~ setlinecap } }
-\cs_new_protected:Npn \driver_draw_cap_round:
- { \__driver_draw_literal:n { 1 ~ setlinecap } }
-\cs_new_protected:Npn \driver_draw_cap_rectangle:
- { \__driver_draw_literal:n { 2 ~ setlinecap } }
-\cs_new_protected:Npn \driver_draw_join_miter:
- { \__driver_draw_literal:n { 0 ~ setlinejoin } }
-\cs_new_protected:Npn \driver_draw_join_round:
- { \__driver_draw_literal:n { 1 ~ setlinejoin } }
-\cs_new_protected:Npn \driver_draw_join_bevel:
- { \__driver_draw_literal:n { 2 ~ setlinejoin } }
-\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
- {
- \__driver_draw_color_fill:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- setcmykcolor
- }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
- {
- \__driver_draw_color_stroke:x
- {
- cmyk ~
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4}
- }
- }
-\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
- { \__driver_draw_color_fill:x { \fp_eval:n {#1} ~ setgray } }
-\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1
- { \__driver_draw_color_stroke:x { gray ~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
- {
- \__driver_draw_color_fill:x
- { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ setrgbcolor }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3
- {
- \__driver_draw_color_stroke:x
- { rgb ~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
- }
-\cs_new_protected:Npn \__driver_draw_color_fill:n #1
- { \__driver_postscript:n { SDict ~ begin ~ /driver.fc ~ { #1 } ~ def ~ end } }
-\cs_generate_variant:Nn \__driver_draw_color_fill:n { x }
-\cs_new_protected:Npn \__driver_draw_color_stroke:n #1
- {
- \__driver_literal:n { color~push~#1 }
- \group_insert_after:N \__driver_color_reset:
- }
-\cs_generate_variant:Nn \__driver_draw_color_stroke:n { x }
-\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
- {
- \__driver_draw_literal:n
- {
- [
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- 0 ~ 0
- ] ~
- concat
- }
- }
-\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5
- {
- \__driver_draw_literal:n { @endspecial }
- \__driver_draw_literal:n { [end] }
- \__driver_draw_literal:n { [begin] }
- \__driver_draw_literal:n { save }
- \__driver_draw_literal:n { currentpoint }
- \__driver_draw_literal:n { currentpoint~translate }
- \driver_draw_cm:nnnn { 1 } { 0 } { 0 } { -1 }
- \driver_draw_cm:nnnn {#2} {#3} {#4} {#5}
- \driver_draw_cm:nnnn { 1 } { 0 } { 0 } { -1 }
- \__driver_draw_literal:n { neg~exch~neg~exch~translate }
- \__driver_draw_literal:n { [end] }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_draw_literal:n { [begin] }
- \__driver_draw_literal:n { restore }
- \__driver_draw_literal:n { [end] }
- \__driver_draw_literal:n { [begin] }
- \__driver_draw_literal:n { @beginspecial }
- }
-%% File: l3drivers-graphics.dtx
-\AtBeginDocument
- { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
-\cs_new_protected:Npn \driver_graphics_include_eps:n #1
- {
- \__driver_literal:x
- {
- PSfile = #1 \c_space_tl
- llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
- lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
- urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
- ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
- }
- }
-%% File: l3drivers-pdf.dtx
-\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
- { 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 { c__driver_pdf_object_ \tl_to_str:n {#1} _int } } }
-\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2
- {
- \__driver_pdfmark:x
- {
- /_objdef ~ \driver_pdf_object_ref:n {#1}
- /type
- \str_case_e:nn
- { \prop_item:Nn \g__driver_pdf_object_prop {#1} }
- {
- { array } { /array }
- { dict } { /dict }
- { fstream } { /stream }
- { stream } { /stream }
- }
- /OBJ
- }
- \use:c
- { __driver_pdf_object_write_ \prop_item:Nn \g__driver_pdf_object_prop {#1} :nn }
- {#1} {#2}
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2
- {
- \__driver_pdfmark:x
- {
- \driver_pdf_object_ref:n {#1}
- [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL
- }
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
- {
- \__driver_pdfmark:x
- {
- \driver_pdf_object_ref:n {#1}
- << \exp_not:n {#2} >> /PUT
- }
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2
- {
- \exp_args:Nx
- \__driver_pdf_object_write_stream:nnn
- { \driver_pdf_object_ref:n {#1} }
- #2
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnn #1#2#3
- {
- \__driver_postscript:n
- {
- [nobreak]
- mark ~ #1 ~ ( #3 ) /PUT ~ pdfmark ~
- mark ~ #1 ~ << #2 >> /PUT ~ pdfmark
- }
- }
-\__driver_postscript_header:n
- {
- true ~ setglobal ~
- /driver.globaldict ~ 4 ~ dict ~ def ~
- false ~ setglobal
- }
-\__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
- }
-\__driver_postscript_header:n
- {
- /driver.linkmargin { 1 ~ driver.pt.dvi } def
- /driver.linkdp.pad { 0 } def
- /driver.linkht.pad { 0 } def
- }
-\__driver_postscript_header:n
- {
- /driver.rect
- { /Rect [ driver.llx ~ driver.lly ~ driver.urx ~ driver.ury ] } def
- /driver.save.ll
- {
- currentpoint
- /driver.lly ~ exch ~ def
- /driver.llx ~ exch ~ def
- }
- def
- /driver.save.ur
- {
- currentpoint
- /driver.ury ~ exch ~ def
- /driver.urx ~ exch ~ def
- }
- def
- /driver.save.linkll
- {
- currentpoint ~
- driver.linkmargin ~ add ~
- driver.linkdp.pad ~ add
- /driver.lly ~ exch ~ def ~
- driver.linkmargin ~ sub
- /driver.llx ~ exch ~ def
- }
- def
- /driver.save.linkur
- {
- currentpoint ~
- driver.linkmargin ~ sub ~
- driver.linkht.pad ~ sub
- /driver.ury ~ exch ~ def ~
- driver.linkmargin ~ add
- /driver.urx ~ exch ~ def
- }
- def
- }
-\__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
- {
- SDict ~ /driver.bordertracking ~ true ~ put ~
- SDict ~ /driver.leftboundary ~ undef ~
- SDict ~ /driver.rightboundary ~ undef ~
- /a ~ where
- {
- /a
- {
- currentpoint ~ pop ~
- SDict /driver.rightboundary ~ known ~ dup
- {
- SDict /driver.rightboundary ~ get ~ 2 ~ index ~ lt
- { not }
- if
- }
- if
- { pop }
- { SDict ~ exch /driver.rightboundary ~ exch ~ put }
- ifelse ~
- moveto ~
- currentpoint ~ pop ~
- SDict /driver.leftboundary ~ known ~ dup
- {
- SDict /driver.leftboundary ~ get ~ 2 ~ index ~ gt
- { not }
- if
- }
- if
- { pop }
- { SDict ~ exch /driver.leftboundary ~ exch ~ put }
- ifelse
- }
- put
- }
- if
- }
- def
- /driver.bordertracking.end
- {
- /a ~ where { /a { moveto } put } if
- /x ~ where { /x { 0 ~ exch ~ rmoveto } put } if ~
- SDict /driver.leftboundary ~ known
- { driver.outerbox ~ 0 ~ driver.leftboundary ~ put }
- if ~
- SDict /driver.rightboundary ~ known
- { driver.outerbox ~ 2 ~ driver.rightboundary ~ put }
- if ~
- SDict /driver.bordertracking ~ false ~ put
- }
- def
- /driver.bordertracking.endpage
- {
- driver.bordertracking
- {
- driver.bordertracking.end ~
- true ~ setglobal ~
- driver.globaldict
- /driver.brokenlink.rect [ driver.outerbox ~ aload ~ pop ] put ~
- driver.globaldict
- /driver.brokenlink.skip ~ driver.baselineskip ~ put ~
- driver.globaldict
- /driver.brokenlink.dict ~
- driver.link.dict ~ driver.cvs ~ put ~
- false ~ setglobal ~
- mark ~ driver.link.dict ~ cvx ~ exec ~ /Rect
- [
- driver.llx ~
- driver.lly ~
- driver.outerbox ~ 2 ~ get ~ driver.linkmargin ~ add ~
- currentpoint ~ exch ~ pop ~
- driver.outerbox ~ driver.rect.ht ~ sub ~ driver.linkmargin ~ sub
- ]
- /ANN ~ driver.pdfmark
- }
- if
- }
- def
- /driver.bordertracking.continue
- {
- /driver.link.dict ~ driver.globaldict
- /driver.brokenlink.dict ~ get ~ def
- /driver.outerbox ~ driver.globaldict
- /driver.brokenlink.rect ~ get ~ def
- /driver.baselineskip ~ driver.globaldict
- /driver.brokenlink.skip ~ get ~ def ~
- driver.globaldict ~ dup ~ dup
- /driver.brokenlink.dict ~ undef
- /driver.brokenlink.skip ~ undef
- /driver.brokenlink.rect ~ undef ~
- currentpoint
- /driver.originy ~ exch ~ def
- /driver.originx ~ exch ~ def
- /a ~ where
- {
- /a
- {
- moveto ~
- SDict ~
- begin ~
- currentpoint ~ driver.originy ~ ne ~ exch ~
- driver.originx ~ ne ~ or
- {
- driver.save.linkll
- /driver.lly ~
- driver.lly ~ driver.outerbox ~ 1 ~ get ~ sub ~ def ~
- driver.bordertracking.begin
- }
- if ~
- end
- }
- put
- }
- if
- /x ~ where
- {
- /x
- {
- 0 ~ exch ~ rmoveto ~
- SDict~
- begin ~
- currentpoint ~
- driver.originy ~ ne ~ exch ~ driver.originx ~ ne ~ or
- {
- driver.save.linkll
- /driver.lly ~
- driver.lly ~ driver.outerbox ~ 1 ~ get ~ sub ~ def ~
- driver.bordertracking.begin
- }
- if ~
- end
- }
- put
- }
- if
- }
- def
- }
-\__driver_postscript_header:n
- {
- /driver.breaklink
- {
- pop ~
- counttomark ~ 2 ~ mod ~ 0 ~ eq
- {
- counttomark /driver.count ~ exch ~ def
- {
- driver.count ~ 0 ~ eq { exit } if ~
- counttomark ~ 2 ~ roll ~
- 1 ~ index ~ /Rect ~ eq
- {
- dup ~ 4 ~ array ~ copy ~
- dup ~ dup ~
- 1 ~ get ~
- driver.outerbox ~ driver.rect.ht ~
- driver.linkmargin ~ 2 ~ mul ~ add ~ sub ~
- 3 ~ exch ~ put ~
- dup ~
- driver.outerbox ~ 2 ~ get ~
- driver.linkmargin ~ add ~
- 2 ~ exch ~ put ~
- dup ~ dup ~
- 3 ~ get ~
- driver.outerbox ~ driver.rect.ht ~
- driver.linkmargin ~ 2 ~ mul ~ add ~ add ~
- 1 ~ exch ~ put
- /driver.currentrect ~ exch ~ def ~
- driver.breaklink.write
- {
- driver.currentrect ~
- dup ~
- driver.outerbox ~ 0 ~ get ~
- driver.linkmargin ~ sub ~
- 0 ~ exch ~ put ~
- dup ~
- driver.outerbox ~ 2 ~ get ~
- driver.linkmargin ~ add ~
- 2 ~ exch ~ put ~
- dup ~ dup ~
- 1 ~ get ~
- driver.baselineskip ~ add ~
- 1 ~ exch ~ put ~
- dup ~ dup ~
- 3 ~ get ~
- driver.baselineskip ~ add ~
- 3 ~ exch ~ put ~
- /driver.currentrect ~ exch ~ def ~
- driver.breaklink.write
- }
- 1 ~ index ~ 3 ~ get ~
- driver.linkmargin ~ 2 ~ mul ~ add ~
- driver.outerbox ~ driver.rect.ht ~ add ~
- 2 ~ index ~ 1 ~ get ~ sub ~
- driver.baselineskip ~ div ~ round ~ cvi ~ 1 ~ sub ~
- exch ~
- repeat ~
- driver.currentrect ~
- dup ~
- driver.outerbox ~ 0 ~ get ~
- driver.linkmargin ~ sub ~
- 0 ~ exch ~ put ~
- dup ~ dup ~
- 1 ~ get ~
- driver.baselineskip ~ add ~
- 1 ~ exch ~ put ~
- dup ~ dup ~
- 3 ~ get ~
- driver.baselineskip ~ add ~
- 3 ~ exch ~ put ~
- dup ~ 2 ~ index ~ 2 ~ get ~ 2 ~ exch ~ put
- /driver.currentrect ~ exch ~ def ~
- driver.breaklink.write ~
- SDict /driver.pdfmark.good ~ false ~ put ~
- exit
- }
- { driver.count ~ 2 ~ sub /driver.count ~ exch ~ def }
- ifelse
- }
- loop
- }
- if
- /ANN
- }
- def
- /driver.breaklink.write
- {
- counttomark ~ 1 ~ sub ~
- index /_objdef ~ eq
- {
- counttomark ~ -2 ~ roll ~
- dup ~ wcheck ~
- {
- readonly ~
- counttomark ~ 2 ~ roll
- }
- { pop ~ pop }
- ifelse
- }
- if ~
- counttomark ~ 1 ~ add ~ copy ~
- pop ~ driver.currentrect
- /ANN ~ pdfmark
- }
- def
- }
-\__driver_postscript_header:n
- {
- /driver.pdfmark
- {
- SDict /driver.pdfmark.good ~ true ~ put ~
- dup /ANN ~ eq
- {
- driver.pdfmark.store ~
- driver.pdfmark.dict ~
- begin ~
- Subtype /Link ~ eq ~
- currentdict /Rect ~ known ~ and ~
- SDict /driver.outerbox ~ known ~ and ~
- SDict /driver.baselineskip ~ known ~ and ~
- {
- Rect ~ 3 ~ get ~
- driver.linkmargin ~ 2 ~ mul ~ add ~
- driver.outerbox ~ driver.rect.ht ~ add ~
- Rect ~ 1 ~ get ~ sub ~
- driver.baselineskip ~ div ~ round ~ cvi ~ 0 ~ gt
- { driver.breaklink }
- if
- }
- if ~
- end ~
- SDict /driver.outerbox ~ undef ~
- SDict /driver.baselineskip ~ undef ~
- currentdict /driver.pdfmark.dict ~ undef ~
- }
- if ~
- driver.pdfmark.good
- { pdfmark }
- { cleartomark }
- ifelse
- }
- def
- /driver.pdfmark.store
- {
- /driver.pdfmark.dict ~ 65534 ~ dict ~ def ~
- counttomark ~ 1 ~ add ~ copy ~
- pop
- {
- dup ~ mark ~ eq
- {
- pop ~
- exit
- }
- {
- driver.pdfmark.dict ~
- begin ~ def ~ end
- }
- ifelse
- }
- loop
- }
- def
- }
-\box_new:N \l__driver_pdf_content_box
-\box_new:N \l__driver_pdf_model_box
-\int_new:N \g__driver_pdf_annotation_int
-\cs_new_protected:Npn \driver_pdf_annotation:nnnn #1#2#3#4
- {
- \__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_pdfmark:x
- {
-
- /_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.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.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_pdfmark:x
- {
- /_objdef { driver.obj \int_use:N \g__driver_pdf_object_int }
- driver.rect
- /ANN
- }
- }
-\cs_new:Npn \driver_pdf_annotation_last:
- { { driver.obj \int_use:N \g__driver_pdf_annotation_int } }
-\int_new:N \g__driver_pdf_link_int
-\tl_new:N \g__driver_pdf_link_dict_tl
-\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_pdfmark_tl
-\tl_set:Nn \l__driver_breaklink_pdfmark_tl { pdfmark }
-\cs_new_protected:Npn \__driver_breaklink_postscript:n #1 { }
-\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 /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
- {
- \bool_if:NF \g__driver_pdf_link_bool
- { \__driver_pdf_link_begin_aux:nw {#1} }
- }
-\cs_new_protected:Npn \__driver_pdf_link_begin_aux:nw #1
- {
- \bool_gset_true:N \g__driver_pdf_link_bool
- \__driver_postscript:n
- { /driver.link.dict ( #1 ) def }
- \tl_gset:Nn \g__driver_pdf_link_dict_tl {#1}
- \__driver_pdf_link_sf_save:
- \mode_if_math:TF
- { \bool_gset_true:N \g__driver_pdf_link_math_bool }
- { \bool_gset_false:N \g__driver_pdf_link_math_bool }
- \hbox_set:Nw \l__driver_pdf_content_box
- \__driver_pdf_link_sf_restore:
- \bool_if:NT \g__driver_pdf_link_math_bool
- { \c_math_toggle_token }
- }
-\cs_new_protected:Npn \driver_pdf_link_end:
- {
- \bool_if:NT \g__driver_pdf_link_bool
- { \__driver_pdf_link_end: }
- }
-\cs_new_protected:Npn \__driver_pdf_link_end:
- {
- \bool_if:NT \g__driver_pdf_link_math_bool
- { \c_math_toggle_token }
- \__driver_pdf_link_sf_save:
- \hbox_set_end:
- \__driver_pdf_link_minima:
- \hbox_set:Nn \l__driver_pdf_model_box { Gg }
- \exp_args:Nx \__driver_driver_link_outerbox:n
- {
- \int_if_odd:nTF { \value { page } }
- { \oddsidemargin }
- { \evensidemargin }
- }
- \box_move_down:nn { \box_dp:N \l__driver_pdf_content_box }
- { \hbox:n { \__driver_postscript:n { driver.save.linkll } } }
- \__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_postscript:x
- {
- mark
- /_objdef { driver.obj \int_use:N \g__driver_pdf_link_int }
- \g__driver_pdf_link_dict_tl \c_space_tl
- driver.rect
- /ANN ~ \l__driver_breaklink_pdfmark_tl
- }
- \__driver_pdf_link_sf_restore:
- \bool_gset_false:N \g__driver_pdf_link_bool
- }
-\cs_new_protected:Npn \__driver_pdf_link_minima:
- {
- \hbox_set:Nn \l__driver_pdf_model_box { Gg }
- \__driver_postscript:x
- {
- /driver.linkdp.pad ~
- \dim_to_decimal:n
- {
- \dim_max:nn
- {
- \box_dp:N \l__driver_pdf_model_box
- - \box_dp:N \l__driver_pdf_content_box
- }
- { 0pt }
- } ~
- driver.pt.dvi ~ def
- /driver.linkht.pad ~
- \dim_to_decimal:n
- {
- \dim_max:nn
- {
- \box_ht:N \l__driver_pdf_model_box
- - \box_ht:N \l__driver_pdf_content_box
- }
- { 0pt }
- } ~
- driver.pt.dvi ~ def
- }
- }
-\cs_new_protected:Npn \__driver_driver_link_outerbox:n #1
- {
- \__driver_postscript:x
- {
- /driver.outerbox
- [
- \dim_to_decimal:n {#1} ~
- \dim_to_decimal:n { -\box_dp:N \l__driver_pdf_model_box } ~
- \dim_to_decimal:n { #1 + \textwidth } ~
- \dim_to_decimal:n { \box_ht:N \l__driver_pdf_model_box }
- ]
- [ exch { driver.pt.dvi } forall ] def
- /driver.baselineskip ~
- \dim_to_decimal:n { \tex_baselineskip:D } ~ dup ~ 0 ~ gt
- { driver.pt.dvi ~ def }
- { pop ~ pop }
- ifelse
- }
- }
-\cs_new_protected:Npn \__driver_pdf_link_sf_save:
- {
- \int_gset:Nn \g__driver_pdf_link_sf_int
- {
- \mode_if_horizontal:TF
- { \tex_spacefactor:D }
- { 0 }
- }
- }
-\cs_new_protected:Npn \__driver_pdf_link_sf_restore:
- {
- \mode_if_horizontal:T
- {
- \int_compare:nNnT \g__driver_pdf_link_sf_int > { 0 }
- { \int_set_eq:NN \tex_spacefactor:D \g__driver_pdf_link_sf_int }
- }
- }
-\use_none:n
- {
- \cs_if_exist:NT \@makecol@hook
- {
- \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_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:
- { { driver.obj \int_use:N \g__driver_pdf_link_int } }
-\cs_new_protected:Npn \driver_pdf_link_margin:n #1
- {
- \__driver_postscript:x
- {
- /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_internal_box {#2}
- \box_move_down:nn
- { \box_dp:N \l__driver_internal_box }
- { \hbox:n { \__driver_postscript:n { driver.save.ll } } }
- \box_use:N \l__driver_internal_box
- \box_move_up:nn
- { \box_ht:N \l__driver_internal_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_compress_objects:n #1 { }
-\cs_new_protected:Npn \driver_pdf_version_major_gset:n #1 { }
-\cs_new_protected:Npn \driver_pdf_version_minor_gset:n #1 { }
-\cs_new:Npn \driver_pdf_version_major: { -1 }
-\cs_new:Npn \driver_pdf_version_minor: { -1 }
-%%
-%%
-%% End of file `l3dvips.def'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
deleted file mode 100644
index fb15c593f01..00000000000
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def
+++ /dev/null
@@ -1,487 +0,0 @@
-%%
-%% This is file `l3dvisvgm.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3drivers.dtx (with options: `package,dvisvgm')
-%% l3drivers-basics.dtx (with options: `package,dvisvgm')
-%% l3drivers-color.dtx (with options: `package,dvisvgm')
-%% l3drivers-box.dtx (with options: `package,dvisvgm')
-%% l3drivers-draw.dtx (with options: `package,dvisvgm')
-%% l3drivers-graphics.dtx (with options: `package,dvisvgm')
-%% l3drivers-pdf.dtx (with options: `package,dvisvgm')
-%%
-%% Copyright (C) 1990-2019 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:
-%%
-%% https://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% File: l3drivers.dtx
-%% File: l3drivers-basics.dtx
-\ProvidesExplFile
- {l3dvisvgm.def}{2019-04-06}{}
- {L3 Experimental driver: dvisvgm}
-\cs_new_eq:NN \__driver_literal:e \tex_special:D
-\cs_new_protected:Npn \__driver_literal:n #1
- { \__driver_literal:e { \exp_not:n {#1} } }
-\cs_generate_variant:Nn \__driver_literal:n { x }
-\box_new:N \l__driver_internal_box
-\cs_new_protected:Npn \__driver_literal_svg:n #1
- { \__driver_literal:n { dvisvgm:raw~ #1 { ?nl } } }
-\cs_generate_variant:Nn \__driver_literal_svg:n { x }
-\cs_new_protected:Npn \__driver_scope_begin:
- { \__driver_literal_svg:n { <g> } }
-\cs_new_protected:Npn \__driver_scope_end:
- { \__driver_literal_svg:n { </g> } }
-\cs_new_protected:Npn \__driver_scope_begin:n #1
- { \__driver_literal_svg:n { <g~ #1 > } }
-\cs_generate_variant:Nn \__driver_scope_begin:n { x }
-%% File: l3drivers-color.dtx
-\cs_new_protected:Npn \driver_color_pickup:N #1 { }
-\AtBeginDocument
- {
- \@ifpackageloaded { color }
- {
- \cs_set_protected:Npn \driver_color_pickup:N #1
- {
- \exp_args:NV \tl_if_head_is_space:nTF \current@color
- {
- \tl_set:Nx #1
- {
- spot ~
- \exp_after:wN \use:n \current@color \c_space_tl 1
- }
- }
- {
- \exp_last_unbraced:Nx \__driver_color_pickup:w
- { \current@color } \q_stop #1
- }
- }
- \cs_new_protected:Npn \__driver_color_pickup:w #1 ~ #2 \q_stop #3
- { \tl_set:Nn #3 { #1 ~ #2 } }
- }
- { }
- }
-\cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:x
- {
- cmyk~
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4}
- }
- }
-\cs_new_protected:Npn \driver_color_gray:n #1
- { \__driver_color_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
- {
- \__driver_color_select:x
- { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
- }
-\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { #1 } }
-\cs_new_protected:Npn \__driver_color_select:n #1
- {
- \__driver_literal:n { color~push~ #1 }
- \group_insert_after:N \__driver_color_reset:
- }
-\cs_generate_variant:Nn \__driver_color_select:n { x }
-\cs_new_protected:Npn \__driver_color_reset:
- { \__driver_literal:n { color~pop } }
-%% File: l3drivers-box.dtx
-\cs_new_protected:Npn \driver_box_use_clip:N #1
- {
- \int_gincr:N \g__driver_clip_path_int
- \__driver_literal_svg:x
- { < clipPath~id = " l3cp \int_use:N \g__driver_clip_path_int " > }
- \__driver_literal_svg:x
- {
- <
- path ~ d =
- "
- M ~ 0 ~
- \dim_to_decimal:n { -\box_dp:N #1 } ~
- L ~ \dim_to_decimal:n { \box_wd:N #1 } ~
- \dim_to_decimal:n { -\box_dp:N #1 } ~
- L ~ \dim_to_decimal:n { \box_wd:N #1 } ~
- \dim_to_decimal:n { \box_ht:N #1 + \box_dp:N #1 } ~
- L ~ 0 ~
- \dim_to_decimal:n { \box_ht:N #1 + \box_dp:N #1 } ~
- Z
- "
- />
- }
- \__driver_literal_svg:n
- { < /clipPath > }
- \__driver_scope_begin:n
- {
- transform =
- "
- translate ( { ?x } , { ?y } ) ~
- scale ( 1 , -1 )
- "
- }
- \__driver_scope_begin:x
- {
- clip-path =
- "url ( \c_hash_str l3cp \int_use:N \g__driver_clip_path_int ) "
- }
- \__driver_scope_begin:n
- {
- transform =
- "
- scale ( -1 , 1 ) ~
- translate ( { ?x } , { ?y } ) ~
- scale ( -1 , -1 )
- "
- }
- \box_use:N #1
- \__driver_scope_end:
- \__driver_scope_end:
- \__driver_scope_end:
- }
-\int_new:N \g__driver_clip_path_int
-\cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
- {
- \__driver_scope_begin:x
- {
- transform =
- "
- rotate
- ( \fp_eval:n { round ( -(#2) , 5 ) } , ~ { ?x } , ~ { ?y } )
- "
- }
- \box_use:N #1
- \__driver_scope_end:
- }
-\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3
- {
- \__driver_scope_begin:x
- {
- transform =
- "
- translate ( { ?x } , { ?y } ) ~
- scale
- (
- \fp_eval:n { round ( -#2 , 5 ) } ,
- \fp_eval:n { round ( -#3 , 5 ) }
- ) ~
- translate ( { ?x } , { ?y } ) ~
- scale ( -1 )
- "
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- }
-%% File: l3drivers-draw.dtx
-\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_svg:n
-\cs_generate_variant:Nn \__driver_draw_literal:n { x }
-\cs_new_protected:Npn \driver_draw_begin:
- {
- \driver_draw_scope_begin:
- \__driver_draw_scope:n { transform="translate({?x},{?y})~scale(1,-1)" }
- }
-\cs_new_protected:Npn \driver_draw_end:
- { \driver_draw_scope_end: }
-\cs_new_protected:Npn \driver_draw_scope_begin:
- {
- \int_set_eq:NN
- \l__driver_draw_scope_int
- \g__driver_draw_scope_int
- \group_begin:
- \int_gzero:N \g__driver_draw_scope_int
- }
-\cs_new_protected:Npn \driver_draw_scope_end:
- {
- \prg_replicate:nn
- { \g__driver_draw_scope_int }
- { \__driver_draw_literal:n { </g> } }
- \group_end:
- \int_gset_eq:NN
- \g__driver_draw_scope_int
- \l__driver_draw_scope_int
- }
-\cs_new_protected:Npn \__driver_draw_scope:n #1
- {
- \__driver_draw_literal:n { <g~ #1 > }
- \int_gincr:N \g__driver_draw_scope_int
- }
-\cs_generate_variant:Nn \__driver_draw_scope:n { x }
-\int_new:N \g__driver_draw_scope_int
-\int_new:N \l__driver_draw_scope_int
-\cs_new_protected:Npn \driver_draw_moveto:nn #1#2
- {
- \__driver_draw_add_to_path:n
- { M ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} }
- }
-\cs_new_protected:Npn \driver_draw_lineto:nn #1#2
- {
- \__driver_draw_add_to_path:n
- { L ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} }
- }
-\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4
- {
- \__driver_draw_add_to_path:n
- {
- M ~ \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2}
- h ~ \dim_to_decimal:n {#3} ~
- v ~ \dim_to_decimal:n {#4} ~
- h ~ \dim_to_decimal:n { -#3 } ~
- Z
- }
- }
-\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6
- {
- \__driver_draw_add_to_path:n
- {
- C ~
- \dim_to_decimal:n {#1} ~ \dim_to_decimal:n {#2} ~
- \dim_to_decimal:n {#3} ~ \dim_to_decimal:n {#4} ~
- \dim_to_decimal:n {#5} ~ \dim_to_decimal:n {#6}
- }
- }
-\cs_new_protected:Npn \__driver_draw_add_to_path:n #1
- {
- \tl_gset:Nx \g__driver_draw_path_tl
- {
- \g__driver_draw_path_tl
- \tl_if_empty:NF \g__driver_draw_path_tl { \c_space_tl }
- #1
- }
- }
-\tl_new:N \g__driver_draw_path_tl
-\cs_new_protected:Npn \driver_draw_evenodd_rule:
- { \__driver_draw_scope:n { fill-rule="evenodd" } }
-\cs_new_protected:Npn \driver_draw_nonzero_rule:
- { \__driver_draw_scope:n { fill-rule="nonzero" } }
-\cs_new_protected:Npn \driver_draw_closepath:
- { \__driver_draw_add_to_path:n { Z } }
-\cs_new_protected:Npn \__driver_draw_path:n #1
- {
- \bool_if:NTF \g__driver_draw_clip_bool
- {
- \int_gincr:N \g__driver_clip_path_int
- \__driver_draw_literal:x
- {
- < clipPath~id = " l3cp \int_use:N \g__driver_clip_path_int " >
- { ?nl }
- <path~d=" \g__driver_draw_path_tl "/> { ?nl }
- < /clipPath > { ? nl }
- <
- use~xlink:href =
- "\c_hash_str l3path \int_use:N \g__driver_path_int " ~
- #1
- />
- }
- \__driver_draw_scope:x
- {
- clip-path =
- "url( \c_hash_str l3cp \int_use:N \g__driver_clip_path_int)"
- }
- }
- {
- \__driver_draw_literal:x
- { <path ~ d=" \g__driver_draw_path_tl " ~ #1 /> }
- }
- \tl_gclear:N \g__driver_draw_path_tl
- \bool_gset_false:N \g__driver_draw_clip_bool
- }
-\int_new:N \g__driver_path_int
-\cs_new_protected:Npn \driver_draw_stroke:
- { \__driver_draw_path:n { style="fill:none" } }
-\cs_new_protected:Npn \driver_draw_closestroke:
- {
- \driver_draw_closepath:
- \driver_draw_stroke:
- }
-\cs_new_protected:Npn \driver_draw_fill:
- { \__driver_draw_path:n { style="stroke:none" } }
-\cs_new_protected:Npn \driver_draw_fillstroke:
- { \__driver_draw_path:n { } }
-\cs_new_protected:Npn \driver_draw_clip:
- { \bool_gset_true:N \g__driver_draw_clip_bool }
-\bool_new:N \g__driver_draw_clip_bool
-\cs_new_protected:Npn \driver_draw_discardpath:
- {
- \bool_if:NT \g__driver_draw_clip_bool
- {
- \int_gincr:N \g__driver_clip_path_int
- \__driver_draw_literal:x
- {
- < clipPath~id = " l3cp \int_use:N \g__driver_clip_path_int " >
- { ?nl }
- <path~d=" \g__driver_draw_path_tl "/> { ?nl }
- < /clipPath >
- }
- \__driver_draw_scope:x
- {
- clip-path =
- "url( \c_hash_str l3cp \int_use:N \g__driver_clip_path_int)"
- }
- }
- \tl_gclear:N \g__driver_draw_path_tl
- \bool_gset_false:N \g__driver_draw_clip_bool
- }
-\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2
- {
- \use:x
- {
- \__driver_draw_dash_aux:nn
- { \clist_map_function:nn {#1} \__driver_draw_dash:n }
- { \dim_to_decimal:n {#2} }
- }
- }
-\cs_new:Npn \__driver_draw_dash:n #1
- { , \dim_to_decimal_in_bp:n {#1} }
-\cs_new_protected:Npn \__driver_draw_dash_aux:nn #1#2
- {
- \__driver_draw_scope:x
- {
- stroke-dasharray =
- "
- \tl_if_empty:oTF { \use_none:n #1 }
- { none }
- { \use_none:n #1 }
- " ~
- stroke-offset=" #2 "
- }
- }
-\cs_new_protected:Npn \driver_draw_linewidth:n #1
- { \__driver_draw_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } }
-\cs_new_protected:Npn \driver_draw_miterlimit:n #1
- { \__driver_draw_scope:x { stroke-miterlimit=" \fp_eval:n {#1} " } }
-\cs_new_protected:Npn \driver_draw_cap_butt:
- { \__driver_draw_scope:n { stroke-linecap="butt" } }
-\cs_new_protected:Npn \driver_draw_cap_round:
- { \__driver_draw_scope:n { stroke-linecap="round" } }
-\cs_new_protected:Npn \driver_draw_cap_rectangle:
- { \__driver_draw_scope:n { stroke-linecap="square" } }
-\cs_new_protected:Npn \driver_draw_join_miter:
- { \__driver_draw_scope:n { stroke-linejoin="miter" } }
-\cs_new_protected:Npn \driver_draw_join_round:
- { \__driver_draw_scope:n { stroke-linejoin="round" } }
-\cs_new_protected:Npn \driver_draw_join_bevel:
- { \__driver_draw_scope:n { stroke-linejoin="bevel" } }
-\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
- {
- \use:x
- {
- \__driver_draw_color_fill:nnn
- { \fp_eval:n { -100 * ( (#1) * ( 1 - (#4) ) - 1 ) } }
- { \fp_eval:n { -100 * ( (#2) * ( 1 - (#4) ) + #4 - 1 ) } }
- { \fp_eval:n { -100 * ( (#3) * ( 1 - (#4) ) + #4 - 1 ) } }
- }
- }
-\cs_new_eq:NN \driver_draw_color_stroke_cmyk:nnnn \driver_color_cmyk:nnnn
-\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
- {
- \use:x
- {
- \__driver_draw_color_gray_aux:n
- { \fp_eval:n { 100 * (#1) } }
- }
- }
-\cs_new_protected:Npn \__driver_draw_color_gray_aux:n #1
- { \__driver_draw_color_fill:nnn {#1} {#1} {#1} }
-\cs_new_eq:NN \driver_draw_color_stroke_gray:n \driver_color_gray:n
-\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
- {
- \use:x
- {
- \__driver_draw_color_fill:nnn
- { \fp_eval:n { 100 * (#1) } }
- { \fp_eval:n { 100 * (#2) } }
- { \fp_eval:n { 100 * (#3) } }
- }
- }
-\cs_new_protected:Npn \__driver_draw_color_fill:nnn #1#2#3
- {
- \__driver_draw_scope:x
- {
- fill =
- "
- rgb
- (
- #1 \c_percent_str ,
- #2 \c_percent_str ,
- #3 \c_percent_str
- )
- "
- }
- }
-\cs_new_eq:NN \driver_draw_color_stroke_rgb:nnn \driver_color_rgb:nnn
-\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
- {
- \__driver_draw_scope:n
- {
- transform =
- "
- matrix
- (
- \fp_eval:n {#1} , \fp_eval:n {#2} ,
- \fp_eval:n {#3} , \fp_eval:n {#4} ,
- 0pt , 0pt
- )
- "
- }
- }
-\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5#6#7
- {
- \__driver_scope_begin:
- \driver_draw_cm:nnnn {#2} {#3} {#4} {#5}
- \__driver_literal_svg:n
- {
- < g~
- stroke="none"~
- transform="scale(-1,1)~translate({?x},{?y})~scale(-1,-1)"
- >
- }
- \box_set_wd:Nn #1 { 0pt }
- \box_set_ht:Nn #1 { 0pt }
- \box_set_dp:Nn #1 { 0pt }
- \box_use:N #1
- \__driver_literal_svg:n { </g> }
- \__driver_scope_end:
- }
-%% File: l3drivers-graphics.dtx
-\AtBeginDocument
- {
- \cs_new_eq:NN \driver_graphics_getbb_png:n \graphics_extract_bb:n
- \cs_new_eq:NN \driver_graphics_getbb_jpg:n \graphics_extract_bb:n
- }
-\cs_new_protected:Npn \driver_graphics_include_png:n #1
- {
- \__driver_literal:x
- {
- dvisvgm:img~
- \dim_to_decimal:n { \l_graphics_ury_dim } ~
- \dim_to_decimal:n { \l_graphics_ury_dim } ~
- \__driver_graphics_include_bitmap_quote:w #1 " #1 " \q_stop
- }
- }
-\cs_new_eq:NN \driver_graphics_include_jpg:n \driver_graphics_include_png:n
-\cs_new:Npn \__driver_graphics_include_bitmap_quote:w #1 " #2 " #3 \q_stop
- { " #2 " }
-%% File: l3drivers-pdf.dtx
-\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 { }
-\cs_new_protected:Npn \driver_pdf_compresslevel:n #1 { }
-\cs_new_protected:Npn \driver_pdf_compress_objects:n #1 { }
-\cs_new_protected:Npn \driver_pdf_version_major_gset:n #1 { }
-\cs_new_protected:Npn \driver_pdf_version_minor_gset:n #1 { }
-\cs_new:Npn \driver_pdf_version_major: { -1 }
-\cs_new:Npn \driver_pdf_version_minor: { -1 }
-%%
-%%
-%% End of file `l3dvisvgm.def'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
deleted file mode 100644
index 3afb54a6b05..00000000000
--- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def
+++ /dev/null
@@ -1,690 +0,0 @@
-%%
-%% This is file `l3pdfmode.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3drivers.dtx (with options: `package,pdfmode')
-%% l3drivers-basics.dtx (with options: `package,pdfmode')
-%% l3drivers-color.dtx (with options: `package,pdfmode')
-%% l3drivers-box.dtx (with options: `package,pdfmode')
-%% l3drivers-draw.dtx (with options: `package,pdfmode')
-%% l3drivers-graphics.dtx (with options: `package,pdfmode')
-%% l3drivers-pdf.dtx (with options: `package,pdfmode')
-%%
-%% Copyright (C) 1990-2019 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:
-%%
-%% https://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% File: l3drivers.dtx
-%% File: l3drivers-basics.dtx
-\ProvidesExplFile
- {l3pdfmode.def}{2019-04-06}{}
- {L3 Experimental driver: PDF mode}
-\cs_new_eq:NN \__driver_literal:e \tex_special:D
-\cs_new_protected:Npn \__driver_literal:n #1
- { \__driver_literal:e { \exp_not:n {#1} } }
-\cs_generate_variant:Nn \__driver_literal:n { x }
-\box_new:N \l__driver_internal_box
-\cs_new_protected:Npx \__driver_literal_pdf:n #1
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D literal }
- { \tex_pdfliteral:D }
- { \exp_not:N \exp_not:n {#1} }
- }
-\cs_generate_variant:Nn \__driver_literal_pdf:n { x }
-\cs_new_protected:Npx \__driver_scope_begin:
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D save \scan_stop: }
- { \tex_pdfsave:D }
- }
-\cs_new_protected:Npx \__driver_scope_end:
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D restore \scan_stop: }
- { \tex_pdfrestore:D }
- }
-\cs_new_protected:Npx \__driver_matrix:n #1
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D setmatrix }
- { \tex_pdfsetmatrix:D }
- { \exp_not:N \exp_not:n {#1} }
- }
-\cs_generate_variant:Nn \__driver_matrix:n { x }
-%% File: l3drivers-color.dtx
-\cs_new_protected:Npn \driver_color_pickup:N #1 { }
-\AtBeginDocument
- {
- \@ifpackageloaded { color }
- {
- \cs_set_protected:Npn \driver_color_pickup:N #1
- {
- \exp_last_unbraced:Nx \__driver_color_pickup:w
- { \current@color } ~ 0 ~ 0 ~ 0 \q_stop #1
- }
- \cs_new_protected:Npn \__driver_color_pickup:w
- #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \q_stop #7
- {
- \str_if_eq:nnTF {#2} { g }
- { \tl_set:Nn #7 { gray ~ #1 } }
- {
- \str_if_eq:nnTF {#4} { rg }
- { \tl_set:Nn #7 { rgb ~ #1 ~ #2 ~ #3 } }
- {
- \str_if_eq:nnTF {#5} { k }
- { \tl_set:Nn #7 { cmyk ~ #1 ~ #2 ~ #3 ~ #4 } }
- {
- \str_if_eq:nnTF {#2} { cs }
- {
- \tl_set:Nx #7 { spot ~ \use_none:n #1 ~ #5 }
- }
- {
- \tl_set:Nn #7 { gray ~ 0 }
- }
- }
- }
- }
- }
- }
- { }
- }
-\int_new:N \l__driver_color_stack_int
-\cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
- {
- \use:x
- {
- \__driver_color_cmyk:nnnn
- { \fp_eval:n {#1} }
- { \fp_eval:n {#2} }
- { \fp_eval:n {#3} }
- { \fp_eval:n {#4} }
- }
- }
-\cs_new_protected:Npn \__driver_color_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:n
- { #1 ~ #2 ~ #3 ~ #4 ~ k ~ #1 ~ #2 ~ #3 ~ #4 ~ K }
- }
-\cs_new_protected:Npn \driver_color_gray:n #1
- { \exp_args:Nx \__driver_color_gray:n { \fp_eval:n {#1} } }
-\cs_new_protected:Npn \__driver_color_gray:n #1
- { \__driver_color_select:n { #1 ~ g ~ #1 ~ G } }
-\cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
- {
- \use:x
- {
- \__driver_color_rgb:nnn
- { \fp_eval:n {#1} }
- { \fp_eval:n {#2} }
- { \fp_eval:n {#3} }
- }
- }
-\cs_new_protected:Npn \__driver_color_rgb:nnn #1#2#3
- { \__driver_color_select:n { #1 ~ #2 ~ #3 ~ rg ~ #1 ~ #2 ~ #3 ~ RG } }
-\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { /#1 ~ cs ~ /#1 ~ CS ~ #2 ~ sc ~ #2 ~ SC } }
-\cs_new_protected:Npx \__driver_color_select:n #1
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D colorstack }
- { \tex_pdfcolorstack:D }
- \exp_not:N \l__driver_color_stack_int push {#1}
- \group_insert_after:N \exp_not:N \__driver_color_reset:
- }
-\cs_generate_variant:Nn \__driver_color_select:n { x }
-\cs_new_protected:Npx \__driver_color_reset:
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D colorstack }
- { \tex_pdfcolorstack:D }
- \exp_not:N \l__driver_color_stack_int pop \scan_stop:
- }
-%% File: l3drivers-box.dtx
-\cs_new_protected:Npn \driver_box_use_clip:N #1
- {
- \__driver_scope_begin:
- \__driver_literal_pdf:x
- {
- 0~
- \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_ht:N #1 + \box_dp:N #1 } ~
- re~W~n
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- \skip_horizontal:n { \box_wd:N #1 }
- }
-\cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
- { \exp_args:NNf \__driver_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
-\cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
- {
- \__driver_scope_begin:
- \box_set_wd:Nn #1 { 0pt }
- \fp_set:Nn \l__driver_cos_fp { round ( cosd ( #2 ) , 5 ) }
- \fp_compare:nNnT \l__driver_cos_fp = \c_zero_fp
- { \fp_zero:N \l__driver_cos_fp }
- \fp_set:Nn \l__driver_sin_fp { round ( sind ( #2 ) , 5 ) }
- \__driver_matrix:x
- {
- \fp_use:N \l__driver_cos_fp \c_space_tl
- \fp_compare:nNnTF \l__driver_sin_fp = \c_zero_fp
- { 0~0 }
- {
- \fp_use:N \l__driver_sin_fp
- \c_space_tl
- \fp_eval:n { -\l__driver_sin_fp }
- }
- \c_space_tl
- \fp_use:N \l__driver_cos_fp
- }
- \box_use:N #1
- \__driver_scope_end:
- }
-\fp_new:N \l__driver_cos_fp
-\fp_new:N \l__driver_sin_fp
-\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3
- {
- \__driver_scope_begin:
- \__driver_matrix:x
- {
- \fp_eval:n { round ( #2 , 5 ) } ~
- 0~0~
- \fp_eval:n { round ( #3 , 5 ) }
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- }
-%% File: l3drivers-draw.dtx
-\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n
-\cs_generate_variant:Nn \__driver_draw_literal:n { x }
-\cs_new_protected:Npn \driver_draw_begin:
- { \driver_draw_scope_begin: }
-\cs_new_protected:Npn \driver_draw_end:
- { \driver_draw_scope_end: }
-\cs_new_eq:NN \driver_draw_scope_begin: \__driver_scope_begin:
-\cs_new_eq:NN \driver_draw_scope_end: \__driver_scope_end:
-\cs_new_protected:Npn \driver_draw_moveto:nn #1#2
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m }
- }
-\cs_new_protected:Npn \driver_draw_lineto:nn #1#2
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l }
- }
-\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
- \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
- c
- }
- }
-\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
- re
- }
- }
-\cs_new_protected:Npn \driver_draw_evenodd_rule:
- { \bool_gset_true:N \g__driver_draw_eor_bool }
-\cs_new_protected:Npn \driver_draw_nonzero_rule:
- { \bool_gset_false:N \g__driver_draw_eor_bool }
-\bool_new:N \g__driver_draw_eor_bool
-\cs_new_protected:Npn \driver_draw_closepath:
- { \__driver_draw_literal:n { h } }
-\cs_new_protected:Npn \driver_draw_stroke:
- { \__driver_draw_literal:n { S } }
-\cs_new_protected:Npn \driver_draw_closestroke:
- { \__driver_draw_literal:n { s } }
-\cs_new_protected:Npn \driver_draw_fill:
- {
- \__driver_draw_literal:x
- { f \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_fillstroke:
- {
- \__driver_draw_literal:x
- { B \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_clip:
- {
- \__driver_draw_literal:x
- { W \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_discardpath:
- { \__driver_draw_literal:n { n } }
-\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2
- {
- \__driver_draw_literal:x
- {
- [
- \exp_args:Nf \use:n
- { \clist_map_function:nN {#1} \__driver_draw_dash:n }
- ] ~
- \dim_to_decimal_in_bp:n {#2} ~ d
- }
- }
-\cs_new:Npn \__driver_draw_dash:n #1
- { ~ \dim_to_decimal_in_bp:n {#1} }
-\cs_new_protected:Npn \driver_draw_linewidth:n #1
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ w }
- }
-\cs_new_protected:Npn \driver_draw_miterlimit:n #1
- { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } }
-\cs_new_protected:Npn \driver_draw_cap_butt:
- { \__driver_draw_literal:n { 0 ~ J } }
-\cs_new_protected:Npn \driver_draw_cap_round:
- { \__driver_draw_literal:n { 1 ~ J } }
-\cs_new_protected:Npn \driver_draw_cap_rectangle:
- { \__driver_draw_literal:n { 2 ~ J } }
-\cs_new_protected:Npn \driver_draw_join_miter:
- { \__driver_draw_literal:n { 0 ~ j } }
-\cs_new_protected:Npn \driver_draw_join_round:
- { \__driver_draw_literal:n { 1 ~ j } }
-\cs_new_protected:Npn \driver_draw_join_bevel:
- { \__driver_draw_literal:n { 2 ~ j } }
-\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_fill_select:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- k
- }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- k
- }
- }
-\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
- { \__driver_color_fill_select:x { \fp_eval:n {#1} ~ g } }
-\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1
- { \__driver_color_select:x { \fp_eval:n {#1} ~ G } }
-\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
- {
- \__driver_color_fill_select:x
- { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3
- {
- \__driver_color_select:x
- { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
- }
-\cs_new_eq:NN \__driver_color_fill_select:n \__driver_color_select:n
-\cs_generate_variant:Nn \__driver_color_fill_select:n { x }
-\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
- {
- \__driver_matrix:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4}
- }
- }
-\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5
- {
- \__driver_scope_begin:
- \driver_draw_cm:nnnn {#2} {#3} {#4} {#5}
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- }
-%% File: l3drivers-graphics.dtx
-\tl_new:N \l__driver_graphics_attr_tl
-\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
- {
- \int_zero:N \l_graphics_page_int
- \tl_clear:N \l_graphics_pagebox_tl
- \tl_set:Nx \l__driver_graphics_attr_tl
- {
- \tl_if_empty:NF \l_graphics_decodearray_tl
- { :D \l_graphics_decodearray_tl }
- \bool_if:NT \l_graphics_interpolate_bool
- { :I }
- }
- \tl_clear:N \l__driver_graphics_attr_tl
- \__driver_graphics_getbb_auxi:n {#1}
- }
-\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
-\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
- {
- \tl_clear:N \l_graphics_decodearray_tl
- \bool_set_false:N \l_graphics_interpolate_bool
- \tl_set:Nx \l__driver_graphics_attr_tl
- {
- : \l_graphics_pagebox_tl
- \int_compare:nNnT \l_graphics_page_int > 1
- { :P \int_use:N \l_graphics_page_int }
- }
- \__driver_graphics_getbb_auxi:n {#1}
- }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxi:n #1
- {
- \graphics_bb_restore:xF { #1 \l__driver_graphics_attr_tl }
- { \__driver_graphics_getbb_auxii:n {#1} }
- }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxii:n #1
- {
- \tex_immediate:D \tex_pdfximage:D
- \bool_lazy_or:nnT
- { \l_graphics_interpolate_bool }
- { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
- {
- attr ~
- {
- \tl_if_empty:NF \l_graphics_decodearray_tl
- { /Decode~[ \l_graphics_decodearray_tl ] }
- \bool_if:NT \l_graphics_interpolate_bool
- { /Interpolate~true }
- }
- }
- \int_compare:nNnT \l_graphics_page_int > 0
- { page ~ \int_use:N \l_graphics_page_int }
- \tl_if_empty:NF \l_graphics_pagebox_tl
- { \l_graphics_pagebox_tl }
- {#1}
- \hbox_set:Nn \l__driver_internal_box
- { \tex_pdfrefximage:D \tex_pdflastximage:D }
- \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l__driver_internal_box }
- \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l__driver_internal_box }
- \int_const:cn { c__driver_graphics_ #1 \l__driver_graphics_attr_tl _int }
- { \tex_the:D \tex_pdflastximage:D }
- \graphics_bb_save:x { #1 \l__driver_graphics_attr_tl }
- }
-\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
- {
- \tex_pdfrefximage:D
- \int_use:c { c__driver_graphics_ #1 \l__driver_graphics_attr_tl _int }
- }
-\cs_new_eq:NN \driver_graphics_include_pdf:n \driver_graphics_include_jpg:n
-\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
-\sys_if_shell:T
- {
- \str_new:N \l__driver_dir_str
- \str_new:N \l__driver_name_str
- \str_new:N \l__driver_ext_str
- \cs_new_protected:Npn \driver_graphics_getbb_eps:n #1
- {
- \file_parse_full_name:nNNN {#1}
- \l__driver_dir_str
- \l__driver_name_str
- \l__driver_ext_str
- \exp_args:Nx \__driver_graphics_getbb_eps:nn
- {
- \l__driver_name_str - \str_tail:N \l__driver_ext_str
- -converted-to.pdf
- }
- {#1}
- }
- \cs_new_protected:Npn \__driver_graphics_getbb_eps:nn #1#2
- {
- \file_compare_timestamp:nNnT {#2} > {#1}
- {
- \sys_shell_now:n
- { repstopdf ~ #2 ~ #1 }
- }
- \tl_set:Nn \l_graphics_name_tl {#1}
- \driver_graphics_getbb_pdf:n {#1}
- }
- \cs_new_protected:Npn \driver_graphics_include_eps:n #1
- {
- \file_parse_full_name:nNNN {#1}
- \l__driver_dir_str \l__driver_name_str \l__driver_ext_str
- \exp_args:Nx \driver_graphics_include_pdf:n
- {
- \l__driver_name_str - \str_tail:N \l__driver_ext_str
- -converted-to.pdf
- }
- }
- }
-%% File: l3drivers-pdf.dtx
-\cs_new_protected:Npx \driver_pdf_annotation:nnnn #1#2#3#4
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D annot ~ }
- { \tex_pdfannot:D }
- width ~ \exp_not:N \dim_eval:n {#1} ~
- height ~ \exp_not:N \dim_eval:n {#2} ~
- depth ~ \exp_not:N \dim_eval:n {#3} ~
- {#4}
- }
-\cs_new:Npx \driver_pdf_annotation_last:
- {
- \exp_not:N \tex_the:D
- \cs_if_exist:NTF \tex_pdffeedback:D
- { \exp_not:N \tex_pdffeedback:D annot ~ }
- { \exp_not:N \tex_pdflastannot:D }
- 0 ~ R
- }
-\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 } {#2} }
-\cs_new_protected:Npx \__driver_pdf_link_begin:nnnw #1#2#3
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D startlink ~ }
- { \tex_pdfstartlink:D }
- attr {#1}
- #2 {#3}
- }
-\cs_new_protected:Npx \driver_pdf_link_end:
- {
- \cs_if_exist:NTF \tex_pdfextension:D
- { \tex_pdfextension:D endlink \scan_stop: }
- { \tex_pdfendlink:D }
- }
-\cs_new:Npx \driver_pdf_link_last:
- {
- \exp_not:N \tex_the:D
- \cs_if_exist:NTF \tex_pdffeedback:D
- { \exp_not:N \tex_pdffeedback:D lastlink \scan_stop: }
- { \exp_not:N \tex_pdflastlink:D }
- ~ 0 ~ R
- }
-\cs_new_protected:Npx \driver_pdf_link_margin:n #1
- {
- \cs_if_exist:NTF \tex_pdfvariable:D
- { \exp_not:N \tex_pdfvariable:D linkmargin }
- { \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_internal_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_internal_box
- height \exp_not:N \box_ht:N \l__driver_internal_box
- depth \exp_not:N \box_dp:N \l__driver_internal_box
- \box_use:N \l__driver_internal_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
- {
- \cs_new_protected:Npx \driver_pdf_object_new:nn ##1##2
- {
- #1 reserveobjnum ~
- \int_const:cn
- { 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}
- }
- }
- \cs_if_exist:NTF \tex_pdfextension:D
- {
- \__driver_tmp:w
- { \tex_pdfextension:D obj ~ }
- { \exp_not:N \tex_pdffeedback:D lastobj }
- }
- { \__driver_tmp:w { \tex_pdfobj:D } { \tex_pdflastobj:D } }
-\group_end:
-\cs_new:Npn \driver_pdf_object_ref:n #1
- { \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
- {
- \cs_new_protected:Npn \driver_pdf_object_write:nn ##1##2
- {
- \tex_immediate:D #1 useobjnum ~
- \int_use:c
- { c__driver_pdf_object_ \tl_to_str:n {##1} _int }
- \str_case_e:nn
- { \prop_item:Nn \g__driver_pdf_object_prop {##1} }
- {
- { array } { { [ ~ \exp_not:n {##2} ~ ] } }
- { dict } { { << ~ \exp_not:n {##2} ~ >> } }
- { fstream }
- {
- stream ~ attr ~ { \__driver_exp_not_i:nn ##2 } ~
- file ~ { \__driver_exp_not_ii:nn ##2 }
- }
- { stream }
- {
- stream ~ attr ~ { \__driver_exp_not_i:nn ##2 } ~
- { \__driver_exp_not_ii:nn ##2 }
- }
- }
- }
- }
- \cs_if_exist:NTF \tex_pdfextension:D
- { \__driver_tmp:w { \tex_pdfextension:D obj ~ } }
- { \__driver_tmp:w { \tex_pdfobj:D } }
-\group_end:
-\cs_new:Npn \__driver_exp_not_i:nn #1#2 { \exp_not:n {#1} }
-\cs_new:Npn \__driver_exp_not_ii:nn #1#2 { \exp_not:n {#2} }
-\cs_new_protected:Npx \driver_pdf_compresslevel:n #1
- {
- \exp_not:N \tex_global:D
- \cs_if_exist:NTF \tex_pdfcompresslevel:D
- { \tex_pdfcompresslevel:D }
- { \tex_pdfvariable:D compresslevel }
- \exp_not:N \int_value:w \exp_not:N \int_eval:n {#1} \scan_stop:
- }
-\cs_new_protected:Npn \driver_pdf_compress_objects:n #1
- {
- \str_if_eq:nnTF {#1} { true }
- { \__driver_pdf_objcompresslevel:n { 2 } }
- { \__driver_pdf_objcompresslevel:n { 0 } }
- }
-\cs_new_protected:Npx \__driver_pdf_objcompresslevel:n #1
- {
- \exp_not:N \tex_global:D
- \cs_if_exist:NTF \tex_pdfobjcompresslevel:D
- { \tex_pdfobjcompresslevel:D }
- { \tex_pdfvariable:D objcompresslevel }
- #1 \scan_stop:
- }
-\cs_new_protected:Npx \driver_pdf_version_major_gset:n #1
- {
- \cs_if_exist:NTF \tex_pdfvariable:D
- {
- \int_compare:nNnT \tex_luatexversion:D > { 106 }
- {
- \exp_not:N \tex_global:D \tex_pdfvariable:D majorversion
- \exp_not:N \int_eval:n {#1} \scan_stop:
- }
- }
- {
- \cs_if_exist:NT \tex_pdfmajorversion:D
- {
- \exp_not:N \tex_global:D \tex_pdfmajorversion:D
- \exp_not:N \int_eval:n {#1} \scan_stop:
- }
- }
- }
-\cs_new_protected:Npx \driver_pdf_version_minor_gset:n #1
- {
- \exp_not:N \tex_global:D
- \cs_if_exist:NTF \tex_pdfminorversion:D
- { \exp_not:N \tex_pdfminorversion:D }
- { \tex_pdfvariable:D minorversion }
- \exp_not:N \int_eval:n {#1} \scan_stop:
- }
-\cs_new:Npx \driver_pdf_version_major:
- {
- \cs_if_exist:NTF \tex_pdfvariable:D
- {
- \int_compare:nNnTF \tex_luatexversion:D > { 106 }
- { \exp_not:N \tex_the:D \tex_pdfvariable:D majorversion }
- { 1 }
- }
- {
- \cs_if_exist:NTF \tex_pdfmajorversion:D
- { \exp_not:N \tex_the:D \tex_pdfmajorversion:D }
- { 1 }
- }
- }
-\cs_new:Npx \driver_pdf_version_minor:
- {
- \exp_not:N \tex_the:D
- \cs_if_exist:NTF \tex_pdfminorversion:D
- { \exp_not:N \tex_pdfminorversion:D }
- { \tex_pdfvariable:D minorversion }
- }
-%%
-%%
-%% End of file `l3pdfmode.def'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
index 129e435d16d..a70bc9f6fe8 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88591.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88591.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88591')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88591 }
{
}
{
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
index 8c4e9ce957b..c24d358a553 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885910.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885910.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso885910')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso885910 }
{
{ A1 } { 0104 }
{ A2 } { 0112 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
index c9fd87cd3bf..f6b39e6d096 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885911.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885911.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso885911')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso885911 }
{
{ A1 } { 0E01 }
{ A2 } { 0E02 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
index aac3d64ef2e..24ed74b1c31 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885913.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885913.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso885913')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso885913 }
{
{ A1 } { 201D }
{ A5 } { 201E }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
index 22cd3c76f56..e51b8534a99 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885914.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885914.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso885914')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso885914 }
{
{ A1 } { 1E02 }
{ A2 } { 1E03 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
index a79469e4425..5776213ff39 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885915.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885915.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso885915')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso885915 }
{
{ A4 } { 20AC }
{ A6 } { 0160 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
index bfd656f6e7a..b7376b0b252 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso885916.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso885916.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso885916')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso885916 }
{
{ A1 } { 0104 }
{ A2 } { 0105 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
index 3c7f9893795..ef2cd5ab200 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88592.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88592.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88592')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88592 }
{
{ A1 } { 0104 }
{ A2 } { 02D8 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
index 4fa0c24373f..dc7cc7a88fd 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88593.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88593.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88593')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88593 }
{
{ A1 } { 0126 }
{ A2 } { 02D8 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
index b90cb49d143..2ac8afb3b32 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88594.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88594.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88594')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88594 }
{
{ A1 } { 0104 }
{ A2 } { 0138 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
index 0862a7a49b0..e8361b2b6fd 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88595.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88595.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88595')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88595 }
{
{ A1 } { 0401 }
{ A2 } { 0402 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
index d89bc0330c6..912fb1067f7 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88596.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88596.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88596')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88596 }
{
{ AC } { 060C }
{ BB } { 061B }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
index 3bbb24b8165..e3486353f1f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88597.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88597.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88597')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88597 }
{
{ A1 } { 2018 }
{ A2 } { 2019 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
index 61e8c3fe6dc..414212db091 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88598.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88598.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88598')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88598 }
{
{ AA } { 00D7 }
{ BA } { 00F7 }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def
index 9339941d6ea..946ab0b41bf 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-enc-iso88599.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3str-enc-iso88599.def
@@ -6,20 +6,20 @@
%%
%% l3str-convert.dtx (with options: `iso88599')
%%
-%% Copyright (C) 2011-2019 The LaTeX3 Project
+%% Copyright (C) 1990-2019 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
+%% https://www.latex-project.org/lppl.txt
%%
-%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% This file is part of the "l3kernel bundle" (The Work in LPPL)
%% 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:nnn { iso88599 }
{
{ D0 } { 011E }
{ DD } { 0130 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
deleted file mode 100644
index 49ee9115e3a..00000000000
--- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def
+++ /dev/null
@@ -1,681 +0,0 @@
-%%
-%% This is file `l3xdvipdfmx.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3drivers.dtx (with options: `package,xdvipdfmx')
-%% l3drivers-basics.dtx (with options: `package,xdvipdfmx')
-%% l3drivers-color.dtx (with options: `package,xdvipdfmx')
-%% l3drivers-box.dtx (with options: `package,xdvipdfmx')
-%% l3drivers-draw.dtx (with options: `package,xdvipdfmx')
-%% l3drivers-graphics.dtx (with options: `package,xdvipdfmx')
-%% l3drivers-pdf.dtx (with options: `package,xdvipdfmx')
-%%
-%% Copyright (C) 1990-2019 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:
-%%
-%% https://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "l3kernel bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% File: l3drivers.dtx
-%% File: l3drivers-basics.dtx
-\ProvidesExplFile
- {l3xdvipdfmx.def}{2019-04-06}{}
- {L3 Experimental driver: xdvipdfmx}
-\cs_new_eq:NN \__driver_literal:e \tex_special:D
-\cs_new_protected:Npn \__driver_literal:n #1
- { \__driver_literal:e { \exp_not:n {#1} } }
-\cs_generate_variant:Nn \__driver_literal:n { x }
-\box_new:N \l__driver_internal_box
-\cs_new_protected:Npn \__driver_literal_pdf:n #1
- { \__driver_literal:n { pdf:literal~ #1 } }
-\cs_generate_variant:Nn \__driver_literal_pdf:n { x }
-\cs_new_protected:Npn \__driver_scope_begin:
- { \__driver_literal:n { x:gsave } }
-\cs_new_protected:Npn \__driver_scope_end:
- { \__driver_literal:n { x:grestore } }
-%% File: l3drivers-color.dtx
-\cs_new_protected:Npn \driver_color_pickup:N #1 { }
-\AtBeginDocument
- {
- \@ifpackageloaded { color }
- {
- \cs_set_protected:Npn \driver_color_pickup:N #1
- {
- \exp_args:NV \tl_if_head_is_space:nTF \current@color
- {
- \tl_set:Nx #1
- {
- spot ~
- \exp_after:wN \use:n \current@color \c_space_tl 1
- }
- }
- {
- \exp_last_unbraced:Nx \__driver_color_pickup:w
- { \current@color } \q_stop #1
- }
- }
- \cs_new_protected:Npn \__driver_color_pickup:w #1 ~ #2 \q_stop #3
- { \tl_set:Nn #3 { #1 ~ #2 } }
- }
- { }
- }
-\cs_new_protected:Npn \driver_color_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:x
- {
- cmyk~
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4}
- }
- }
-\cs_new_protected:Npn \driver_color_gray:n #1
- { \__driver_color_select:x { gray~ \fp_eval:n {#1} } }
-\cs_new_protected:Npn \driver_color_rgb:nnn #1#2#3
- {
- \__driver_color_select:x
- { rgb~ \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} }
- }
-\cs_new_protected:Npn \driver_color_spot:nn #1#2
- { \__driver_color_select:n { #1 } }
-\cs_new_protected:Npn \__driver_color_select:n #1
- {
- \__driver_literal:n { color~push~ #1 }
- \group_insert_after:N \__driver_color_reset:
- }
-\cs_generate_variant:Nn \__driver_color_select:n { x }
-\cs_new_protected:Npn \__driver_color_reset:
- { \__driver_literal:n { color~pop } }
-%% File: l3drivers-box.dtx
-\cs_new_protected:Npn \driver_box_use_clip:N #1
- {
- \__driver_scope_begin:
- \__driver_literal_pdf:x
- {
- 0~
- \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_wd:N #1 } ~
- \dim_to_decimal_in_bp:n { \box_ht:N #1 + \box_dp:N #1 } ~
- re~W~n
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- \skip_horizontal:n { \box_wd:N #1 }
- }
-\cs_new_protected:Npn \driver_box_use_rotate:Nn #1#2
- { \exp_args:NNf \__driver_box_use_rotate:Nn #1 { \fp_eval:n {#2} } }
-\cs_new_protected:Npn \__driver_box_use_rotate:Nn #1#2
- {
- \__driver_scope_begin:
- \__driver_literal:x
- {
- x:rotate~
- \fp_compare:nNnTF {#2} = \c_zero_fp
- { 0 }
- { \fp_eval:n { round ( #2 , 5 ) } }
- }
- \box_use:N #1
- \__driver_scope_end:
- }
-\cs_new_protected:Npn \driver_box_use_scale:Nnn #1#2#3
- {
- \__driver_scope_begin:
- \__driver_literal:x
- {
- x:scale~
- \fp_eval:n { round ( #2 , 5 ) } ~
- \fp_eval:n { round ( #3 , 5 ) }
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_scope_end:
- }
-%% File: l3drivers-draw.dtx
-\cs_new_eq:NN \__driver_draw_literal:n \__driver_literal_pdf:n
-\cs_generate_variant:Nn \__driver_draw_literal:n { x }
-\cs_new_protected:Npn \driver_draw_begin:
- { \driver_draw_scope_begin: }
-\cs_new_protected:Npn \driver_draw_end:
- { \driver_draw_scope_end: }
-\cs_new_eq:NN \driver_draw_scope_begin: \__driver_scope_begin:
-\cs_new_eq:NN \driver_draw_scope_end: \__driver_scope_end:
-\cs_new_protected:Npn \driver_draw_moveto:nn #1#2
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m }
- }
-\cs_new_protected:Npn \driver_draw_lineto:nn #1#2
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l }
- }
-\cs_new_protected:Npn \driver_draw_curveto:nnnnnn #1#2#3#4#5#6
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
- \dim_to_decimal_in_bp:n {#5} ~ \dim_to_decimal_in_bp:n {#6} ~
- c
- }
- }
-\cs_new_protected:Npn \driver_draw_rectangle:nnnn #1#2#3#4
- {
- \__driver_draw_literal:x
- {
- \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~
- \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~
- re
- }
- }
-\cs_new_protected:Npn \driver_draw_evenodd_rule:
- { \bool_gset_true:N \g__driver_draw_eor_bool }
-\cs_new_protected:Npn \driver_draw_nonzero_rule:
- { \bool_gset_false:N \g__driver_draw_eor_bool }
-\bool_new:N \g__driver_draw_eor_bool
-\cs_new_protected:Npn \driver_draw_closepath:
- { \__driver_draw_literal:n { h } }
-\cs_new_protected:Npn \driver_draw_stroke:
- { \__driver_draw_literal:n { S } }
-\cs_new_protected:Npn \driver_draw_closestroke:
- { \__driver_draw_literal:n { s } }
-\cs_new_protected:Npn \driver_draw_fill:
- {
- \__driver_draw_literal:x
- { f \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_fillstroke:
- {
- \__driver_draw_literal:x
- { B \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_clip:
- {
- \__driver_draw_literal:x
- { W \bool_if:NT \g__driver_draw_eor_bool * }
- }
-\cs_new_protected:Npn \driver_draw_discardpath:
- { \__driver_draw_literal:n { n } }
-\cs_new_protected:Npn \driver_draw_dash_pattern:nn #1#2
- {
- \__driver_draw_literal:x
- {
- [
- \exp_args:Nf \use:n
- { \clist_map_function:nN {#1} \__driver_draw_dash:n }
- ] ~
- \dim_to_decimal_in_bp:n {#2} ~ d
- }
- }
-\cs_new:Npn \__driver_draw_dash:n #1
- { ~ \dim_to_decimal_in_bp:n {#1} }
-\cs_new_protected:Npn \driver_draw_linewidth:n #1
- {
- \__driver_draw_literal:x
- { \dim_to_decimal_in_bp:n {#1} ~ w }
- }
-\cs_new_protected:Npn \driver_draw_miterlimit:n #1
- { \__driver_draw_literal:x { \fp_eval:n {#1} ~ M } }
-\cs_new_protected:Npn \driver_draw_cap_butt:
- { \__driver_draw_literal:n { 0 ~ J } }
-\cs_new_protected:Npn \driver_draw_cap_round:
- { \__driver_draw_literal:n { 1 ~ J } }
-\cs_new_protected:Npn \driver_draw_cap_rectangle:
- { \__driver_draw_literal:n { 2 ~ J } }
-\cs_new_protected:Npn \driver_draw_join_miter:
- { \__driver_draw_literal:n { 0 ~ j } }
-\cs_new_protected:Npn \driver_draw_join_round:
- { \__driver_draw_literal:n { 1 ~ j } }
-\cs_new_protected:Npn \driver_draw_join_bevel:
- { \__driver_draw_literal:n { 2 ~ j } }
-\cs_new_protected:Npn \driver_draw_color_fill_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_fill_select:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- k
- }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_cmyk:nnnn #1#2#3#4
- {
- \__driver_color_select:x
- {
- \fp_eval:n {#1} ~ \fp_eval:n {#2} ~
- \fp_eval:n {#3} ~ \fp_eval:n {#4} ~
- k
- }
- }
-\cs_new_protected:Npn \driver_draw_color_fill_gray:n #1
- { \__driver_color_fill_select:x { \fp_eval:n {#1} ~ g } }
-\cs_new_protected:Npn \driver_draw_color_stroke_gray:n #1
- { \__driver_color_select:x { \fp_eval:n {#1} ~ G } }
-\cs_new_protected:Npn \driver_draw_color_fill_rgb:nnn #1#2#3
- {
- \__driver_color_fill_select:x
- { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ rg }
- }
-\cs_new_protected:Npn \driver_draw_color_stroke_rgb:nnn #1#2#3
- {
- \__driver_color_select:x
- { \fp_eval:n {#1} ~ \fp_eval:n {#2} ~ \fp_eval:n {#3} ~ RG }
- }
-\cs_new_eq:NN \__driver_color_fill_select:n \__driver_draw_literal:n
-\cs_generate_variant:Nn \__driver_color_fill_select:n { x }
-\cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
- {
- \__driver_draw_cm_decompose:nnnnN {#1} {#2} {#3} {#4}
- \__driver_draw_cm:nnnn
- }
-\cs_new_protected:Npn \__driver_draw_cm:nnnn #1#2#3#4
- {
- \__driver_literal:x
- {
- x:rotate~
- \fp_compare:nNnTF {#1} = \c_zero_fp
- { 0 }
- { \fp_eval:n { round ( -#1 , 5 ) } }
- }
- \__driver_literal:x
- {
- x:scale~
- \fp_eval:n { round ( #2 , 5 ) } ~
- \fp_eval:n { round ( #3 , 5 ) }
- }
- \__driver_literal:x
- {
- x:rotate~
- \fp_compare:nNnTF {#4} = \c_zero_fp
- { 0 }
- { \fp_eval:n { round ( -#4 , 5 ) } }
- }
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose:nnnnN #1#2#3#4#5
- {
- \use:x
- {
- \__driver_draw_cm_decompose_auxi:nnnnN
- { \fp_eval:n { (#1 + #4) / 2 } }
- { \fp_eval:n { (#1 - #4) / 2 } }
- { \fp_eval:n { (#3 + #2) / 2 } }
- { \fp_eval:n { (#3 - #2) / 2 } }
- }
- #5
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose_auxi:nnnnN #1#2#3#4#5
- {
- \use:x
- {
- \__driver_draw_cm_decompose_auxii:nnnnN
- { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } }
- { \fp_eval:n { 2 * sqrt ( #2 * #2 + #3 * #3 ) } }
- { \fp_eval:n { atand ( #3 , #2 ) } }
- { \fp_eval:n { atand ( #4 , #1 ) } }
- }
- #5
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose_auxii:nnnnN #1#2#3#4#5
- {
- \use:x
- {
- \__driver_draw_cm_decompose_auxiii:nnnnN
- { \fp_eval:n { ( #4 - #3 ) / 2 } }
- { \fp_eval:n { ( #1 + #2 ) / 2 } }
- { \fp_eval:n { ( #1 - #2 ) / 2 } }
- { \fp_eval:n { ( #4 + #3 ) / 2 } }
- }
- #5
- }
-\cs_new_protected:Npn \__driver_draw_cm_decompose_auxiii:nnnnN #1#2#3#4#5
- {
- \fp_compare:nNnTF { abs( #2 ) } > { abs ( #3 ) }
- { #5 {#1} {#2} {#3} {#4} }
- { #5 {#1} {#3} {#2} {#4} }
- }
-\cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5
- {
- \__driver_scope_begin:
- \__driver_literal:x
- {
- pdf:btrans~matrix~
- \fp_eval:n {#2} ~ \fp_eval:n {#3} ~
- \fp_eval:n {#4} ~ \fp_eval:n {#5} ~
- 0 ~ 0
- }
- \hbox_overlap_right:n { \box_use:N #1 }
- \__driver_literal:n { pdf:etrans }
- \__driver_scope_end:
- }
-%% File: l3drivers-graphics.dtx
-\AtBeginDocument
- { \cs_new_eq:NN \driver_graphics_getbb_eps:n \graphics_read_bb:n }
-\int_new:N \g__driver_graphics_int
-\cs_new_protected:Npn \driver_graphics_include_eps:n #1
- {
- \__driver_literal:x
- {
- PSfile = #1 \c_space_tl
- llx = \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
- lly = \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
- urx = \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
- ury = \dim_to_decimal_in_bp:n \l_graphics_ury_dim
- }
- }
-\cs_new_protected:Npn \driver_graphics_include_jpg:n #1
- { \__driver_graphics_include_auxi:nn {#1} { image } }
-\cs_new_eq:NN \driver_graphics_include_png:n \driver_graphics_include_jpg:n
-\cs_new_protected:Npn \__driver_graphics_include_auxi:nn #1#2
- {
- \__driver_graphics_include_auxii:xnn
- {
- \tl_if_empty:NF \l_graphics_pagebox_tl
- { : \l_graphics_pagebox_tl }
- \int_compare:nNnT \l_graphics_page_int > 1
- { :P \int_use:N \l_graphics_page_int }
- \tl_if_empty:NF \l_graphics_decodearray_tl
- { :D \l_graphics_decodearray_tl }
- \bool_if:NT \l_graphics_interpolate_bool
- { :I }
- }
- {#1} {#2}
- }
-\cs_new_protected:Npn \__driver_graphics_include_auxii:nnn #1#2#3
- {
- \int_if_exist:cTF { c__driver_graphics_ #2#1 _int }
- {
- \__driver_literal:x
- { pdf:usexobj~@graphic \int_use:c { c__driver_graphics_ #2#1 _int } }
- }
- { \__driver_graphics_include_auxiii:nnn {#2} {#1} {#3} }
- }
-\cs_generate_variant:Nn \__driver_graphics_include_auxii:nnn { x }
-\cs_new_protected:Npn \__driver_graphics_include_auxiii:nnn #1#2#3
- {
- \int_gincr:N \g__driver_graphics_int
- \int_const:cn { c__driver_graphics_ #1#2 _int } { \g__driver_graphics_int }
- \__driver_literal:x
- {
- pdf:#3~
- @graphic \int_use:c { c__driver_graphics_ #1#2 _int } ~
- \int_compare:nNnT \l_graphics_page_int > 1
- { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
- \tl_if_empty:NF \l_graphics_pagebox_tl
- {
- pagebox ~ \l_graphics_pagebox_tl \c_space_tl
- bbox ~
- \dim_to_decimal_in_bp:n \l_graphics_llx_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_graphics_lly_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_graphics_urx_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_graphics_ury_dim \c_space_tl
- }
- (#1)
- \bool_lazy_or:nnT
- { \l_graphics_interpolate_bool }
- { ! \tl_if_empty_p:N \l_graphics_decodearray_tl }
- {
- <<
- \tl_if_empty:NF \l_graphics_decodearray_tl
- { /Decode~[ \l_graphics_decodearray_tl ] }
- \bool_if:NT \l_graphics_interpolate_bool
- { /Interpolate~true> }
- >>
- }
- }
- }
-\cs_new_protected:Npn \driver_graphics_getbb_jpg:n #1
- {
- \int_zero:N \l_graphics_page_int
- \tl_clear:N \l_graphics_pagebox_tl
- \__driver_graphics_getbb_auxi:nN {#1} \tex_XeTeXpicfile:D
- }
-\cs_new_eq:NN \driver_graphics_getbb_png:n \driver_graphics_getbb_jpg:n
-\cs_new_protected:Npn \driver_graphics_getbb_pdf:n #1
- {
- \tl_clear:N \l_graphics_decodearray_tl
- \bool_set_false:N \l_graphics_interpolate_bool
- \__driver_graphics_getbb_auxi:nN {#1} \tex_XeTeXpdffile:D
- }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxi:nN #1#2
- {
- \int_compare:nNnTF \l_graphics_page_int > 1
- { \__driver_graphics_getbb_auxii:VnN \l_graphics_page_int {#1} #2 }
- { \__driver_graphics_getbb_auxiii:nNnn {#1} #2 { :P 1 } { page 1 } }
- }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxii:nnN #1#2#3
- { \__driver_graphics_getbb_auxiii:nNnn {#2} #3 { :P #1 } { page #1 } }
-\cs_generate_variant:Nn \__driver_graphics_getbb_auxii:nnN { V }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxiii:nNnn #1#2#3#4
- {
- \tl_if_empty:NTF \l_graphics_pagebox_tl
- { \__driver_graphics_getbb_auxiv:VnNnn \l_graphics_pagebox_tl }
- { \__driver_graphics_getbb_auxv:nNnn }
- {#1} #2 {#3} {#4}
- }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxiv:nnNnn #1#2#3#4#5
- {
- \use:x
- {
- \__driver_graphics_getbb_auxv:nNnn {#2} #3 { : #1 #4 }
- { #5 ~ \__driver_graphics_getbb_pagebox:w #1 }
- }
- }
-\cs_generate_variant:Nn \__driver_graphics_getbb_auxiv:nnNnn { V }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxv:nNnn #1#2#3#4
- {
- \graphics_bb_restore:nF {#1#3}
- { \__driver_graphics_getbb_auxvi:nNnn {#1} #2 {#3} {#4} }
- }
-\cs_new_protected:Npn \__driver_graphics_getbb_auxvi:nNnn #1#2#3#4
- {
- \hbox_set:Nn \l__driver_internal_box { #2 #1 ~ #4 }
- \dim_set:Nn \l_graphics_urx_dim { \box_wd:N \l__driver_internal_box }
- \dim_set:Nn \l_graphics_ury_dim { \box_ht:N \l__driver_internal_box }
- \graphics_bb_save:n {#1#3}
- }
-\cs_new:Npn \__driver_graphics_getbb_pagebox:w #1 box {#1}
-\cs_new_protected:Npn \driver_graphics_include_pdf:n #1
- {
- \tex_XeTeXpdffile:D
- \__driver_graphics_include_pdf_quote:w #1 "#1" \q_stop \c_space_tl
- \int_compare:nNnT \l_graphics_page_int > 0
- { page ~ \int_use:N \l_graphics_page_int \c_space_tl }
- \exp_after:wN \__driver_graphics_getbb_pagebox:w \l_graphics_pagebox_tl
- }
-\cs_new:Npn \__driver_graphics_include_pdf_quote:w #1 " #2 " #3 \q_stop
- { " #2 " }
-%% File: l3drivers-pdf.dtx
-\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
- {
- \int_gincr:N \g__driver_pdf_object_int
- \int_const:cn
- { g__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 } }
-\cs_new_protected:Npn \driver_pdf_object_write:nn #1#2
- {
- \exp_args:Nx \__driver_pdf_object_write:nnn
- { \prop_item:Nn \g__driver_pdf_object_prop {#1} } {#1} {#2}
- }
-\cs_new_protected:Npn \__driver_pdf_object_write:nnn #1#2#3
- { \use:c { __driver_pdf_object_write_ #1 :nn } {#2} {#3} }
-\cs_new_protected:Npn \__driver_pdf_object_write_array:nn #1#2
- {
- \__driver_pdf:x
- {
- obj ~ \driver_pdf_object_ref:n {#1} ~
- [ ~ \exp_not:n {#2} ~ ]
- }
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
- {
- \__driver_pdf:x
- {
- obj ~ \driver_pdf_object_ref:n {#1} ~
- << ~ \exp_not:n {#2} ~ >>
- }
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_fstream:nn #1#2
- { \__driver_pdf_object_write_stream:nnnn { f } {#1} #2 }
-\cs_new_protected:Npn \__driver_pdf_object_write_stream:nn #1#2
- { \__driver_pdf_object_write_stream:nnnn { } {#1} #2 }
-\cs_new_protected:Npn \__driver_pdf_object_write_stream:nnnn #1#2#3#4
- {
- \__driver_pdf:x
- {
- #1 stream ~ \driver_pdf_object_ref:n {#2} ~
- ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >>
-
- }
- }
-\bool_new:N \g__driver_landscape_bool
-\AtBeginDocument
- {
- \cs_if_exist:NT \landscape
- {
- \tl_put_right:Nn \landscape
- { \bool_gset_true:N \g__driver_landscape_bool }
- \tl_put_left:Nn \endlandscape
- { \bool_gset_false:N \g__driver_landscape_bool }
- }
- }
-\int_new:N \g__driver_pdf_annotation_int
-\cs_new_protected:Npn \driver_pdf_annotation:nnnn #1#2#3#4
- {
- \bool_if:NTF \g__driver_landscape_bool
- {
- \box_move_up:nn {#2}
- {
- \vbox:n
- {
- \__driver_pdf_annotation:nnnn
- { #2 + #3 } {#1} { 0pt } {#4}
- }
- }
- }
- { \__driver_pdf_annotation:nnnn {#1} {#2} {#3} {#4} }
- }
-\cs_new_protected:Npn \__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_pdf:x
- {
- ann ~ @driver.obj \int_use:N \g__driver_pdf_object_int \c_space_tl
- width ~ \dim_eval:n {#1} ~
- height ~ \dim_eval:n {#2} ~
- depth ~ \dim_eval:n {#3} ~
- << #4 >>
- }
- }
-\cs_new_protected:Npn \driver_pdf_link_begin_goto:nnw #1#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
- {
- \__driver_pdf:n
- {
- bann
- <<
- /Type /Annot
- #1
- >>
- }
- }
-\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
- { \__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_internal_box {#2}
- \box_move_down:nn { \box_dp:N \l__driver_internal_box }
- {
- \hbox:n
- {
- \__driver_pdf:n { obj ~ @driver_#1_llx ~ @xpos }
- \__driver_pdf:n { obj ~ @driver_#1_lly ~ @ypos }
- }
- }
- \box_use:N \l__driver_internal_box
- \box_move_up:nn { \box_ht:N \l__driver_internal_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_compress_objects:n #1
- {
- \str_if_eq:nnF {#1} { true }
- { \__driver_literal:n { dvipdfmx:config~C~0x40 } }
- }
-\cs_new_protected:Npn \driver_pdf_version_major:n #1
- {
- \cs_gset:Npx \driver_pdf_version_major: { \int_eval:n {#1} }
- \__driver_literal:x { pdf:majorversion \driver_pdf_version_major: }
- }
-\cs_new_protected:Npn \driver_pdf_version_minor:n #1
- {
- \cs_gset:Npx \driver_pdf_version_minor: { \int_eval:n {#1} }
- \__driver_literal:x { pdf:minorversion \driver_pdf_version_minor: }
- }
-\cs_new:Npn \driver_pdf_version_major: { 1 }
-\cs_new:Npn \driver_pdf_version_minor: { 5 }
-%%
-%%
-%% End of file `l3xdvipdfmx.def'.