summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def383
1 files changed, 241 insertions, 142 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
index 95b580d4e66..7071cac3a1f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def
@@ -5,6 +5,12 @@
%% 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-image.dtx (with options: `package,dvipdfmx')
+%% l3drivers-pdf.dtx (with options: `package,dvipdfmx')
%%
%% Copyright (C) 1990-2019 The LaTeX3 Project
%%
@@ -19,6 +25,7 @@
%% 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}
@@ -26,6 +33,14 @@
\cs_new_protected:Npn \__driver_literal:n #1
{ \__driver_literal:e { \exp_not:n {#1} } }
\cs_generate_variant:Nn \__driver_literal:n { x }
+\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
{
@@ -77,13 +92,7 @@
\cs_generate_variant:Nn \__driver_color_select:n { x }
\cs_new_protected:Npn \__driver_color_reset:
{ \__driver_literal:n { color~pop } }
-\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-box.dtx
\cs_new_protected:Npn \driver_box_use_clip:N #1
{
\__driver_scope_begin:
@@ -126,141 +135,7 @@
\hbox_overlap_right:n { \box_use:N #1 }
\__driver_scope_end:
}
-\cs_new_eq:NN \__driver_image_getbb_eps:n \image_read_bb:n
-\cs_new_protected:Npn \__driver_image_getbb_jpg:n #1
- {
- \int_zero:N \l_image_page_int
- \tl_clear:N \l_image_pagebox_tl
- \image_extract_bb:n {#1}
- }
-\cs_new_eq:NN \__driver_image_getbb_png:n \__driver_image_getbb_jpg:n
-\cs_new_protected:Npn \__driver_image_getbb_pdf:n #1
- {
- \tl_clear:N \l_image_decode_tl
- \bool_set_false:N \l_image_interpolate_bool
- \image_extract_bb:n {#1}
- }
-\int_new:N \g__driver_image_int
-\cs_new_protected:Npn \__driver_image_include_eps:n #1
- {
- \__driver_literal:n { PSfile = #1 }
- }
-\cs_new_protected:Npn \__driver_image_include_jpg:n #1
- { \__driver_image_include_auxi:nn {#1} { image } }
-\cs_new_eq:NN \__driver_image_include_png:n \__driver_image_include_jpg:n
-\cs_new_protected:Npn \__driver_image_include_pdf:n #1
- { \__driver_image_include_auxi:nn {#1} { epdf } }
-\cs_new_protected:Npn \__driver_image_include_auxi:nn #1#2
- {
- \__driver_image_include_auxii:xnn
- {
- \tl_if_empty:NF \l_image_pagebox_tl
- { : \l_image_pagebox_tl }
- \int_compare:nNnT \l_image_page_int > 1
- { :P \int_use:N \l_image_page_int }
- \tl_if_empty:NF \l_image_decode_tl
- { :D \l_image_decodearray_tl }
- \bool_if:NT \l_image_interpolate_bool
- { :I }
- }
- {#1} {#2}
- }
-\cs_new_protected:Npn \__driver_image_include_auxii:nnn #1#2#3
- {
- \int_if_exist:cTF { c__driver_image_ #2#1 _int }
- {
- \__driver_literal:x
- { pdf:usexobj~@image \int_use:c { c__driver_image_ #2#1 _int } }
- }
- { \__driver_image_include_auxiii:nn {#2} {#1} {#3} }
- }
-\cs_generate_variant:Nn \__driver_image_include_auxii:nnn { x }
-\cs_new_protected:Npn \__driver_image_include_auxiii:nnn #1#2#3
- {
- \int_gincr:N \g__driver_image_int
- \int_const:cn { c__driver_image_ #1#2 _int } { \g__driver_image_int }
- \__driver_literal:x
- {
- pdf:#3~
- @image \int_use:c { c__driver_image_ #1#2 _int }
- \int_compare:nNnT \l_image_page_int > 1
- { page ~ \int_use:N \l_image_page_int \c_space_tl }
- \tl_if_empty:NF \l_image_pagebox_tl
- {
- pagebox ~ \l_image_pagebox_tl \c_space_tl
- bbox ~
- \dim_to_decimal_in_bp:n \l_image_llx_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_image_lly_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_image_urx_dim \c_space_tl
- \dim_to_decimal_in_bp:n \l_image_ury_dim \c_space_tl
- }
- (#1)
- \bool_lazy_or:nnT
- { \l_image_interpolate_bool }
- { ! \tl_if_empty_p:N \l_image_decodearray_tl }
- {
- <<
- \tl_if_empty:NF \l_image_decode_tl
- { /Decode~[ \l_image_decodearray_tl ] }
- \bool_if:NT \l_image_interpolate_bool
- { /Interpolate~true> }
- >>
- }
- }
- }
-\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
- { @l3obj \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_literal:x
- {
- pdf:obj ~ \driver_pdf_object_ref:n {#1} ~
- [ ~ \exp_not:n {#2} ~ ]
- }
- }
-\cs_new_protected:Npn \__driver_pdf_object_write_dict:nn #1#2
- {
- \__driver_literal:x
- {
- pdf: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_literal:x
- {
- pdf: #1 stream ~ \driver_pdf_object_ref:n {#2} ~
- ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >>
-
- }
- }
-\cs_new_protected:Npn \driver_pdf_compresslevel:n #1
- { \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
-\cs_new_protected:Npn \driver_pdf_objects_enable: { }
-\cs_new_protected:Npn \driver_pdf_objects_disable:
- { \__driver_literal:n { dvipdfmx:config~C~0x40 } }
+%% 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:
@@ -476,6 +351,230 @@
\__driver_literal:n { pdf:etrans }
\__driver_scope_end:
}
+%% File: l3drivers-image.dtx
+\cs_new_eq:NN \__driver_image_getbb_eps:n \image_read_bb:n
+\cs_new_protected:Npn \__driver_image_getbb_jpg:n #1
+ {
+ \int_zero:N \l_image_page_int
+ \tl_clear:N \l_image_pagebox_tl
+ \image_extract_bb:n {#1}
+ }
+\cs_new_eq:NN \__driver_image_getbb_png:n \__driver_image_getbb_jpg:n
+\cs_new_protected:Npn \__driver_image_getbb_pdf:n #1
+ {
+ \tl_clear:N \l_image_decode_tl
+ \bool_set_false:N \l_image_interpolate_bool
+ \image_extract_bb:n {#1}
+ }
+\int_new:N \g__driver_image_int
+\cs_new_protected:Npn \__driver_image_include_eps:n #1
+ {
+ \__driver_literal:n { PSfile = #1 }
+ }
+\cs_new_protected:Npn \__driver_image_include_jpg:n #1
+ { \__driver_image_include_auxi:nn {#1} { image } }
+\cs_new_eq:NN \__driver_image_include_png:n \__driver_image_include_jpg:n
+\cs_new_protected:Npn \__driver_image_include_pdf:n #1
+ { \__driver_image_include_auxi:nn {#1} { epdf } }
+\cs_new_protected:Npn \__driver_image_include_auxi:nn #1#2
+ {
+ \__driver_image_include_auxii:xnn
+ {
+ \tl_if_empty:NF \l_image_pagebox_tl
+ { : \l_image_pagebox_tl }
+ \int_compare:nNnT \l_image_page_int > 1
+ { :P \int_use:N \l_image_page_int }
+ \tl_if_empty:NF \l_image_decode_tl
+ { :D \l_image_decodearray_tl }
+ \bool_if:NT \l_image_interpolate_bool
+ { :I }
+ }
+ {#1} {#2}
+ }
+\cs_new_protected:Npn \__driver_image_include_auxii:nnn #1#2#3
+ {
+ \int_if_exist:cTF { c__driver_image_ #2#1 _int }
+ {
+ \__driver_literal:x
+ { pdf:usexobj~@image \int_use:c { c__driver_image_ #2#1 _int } }
+ }
+ { \__driver_image_include_auxiii:nn {#2} {#1} {#3} }
+ }
+\cs_generate_variant:Nn \__driver_image_include_auxii:nnn { x }
+\cs_new_protected:Npn \__driver_image_include_auxiii:nnn #1#2#3
+ {
+ \int_gincr:N \g__driver_image_int
+ \int_const:cn { c__driver_image_ #1#2 _int } { \g__driver_image_int }
+ \__driver_literal:x
+ {
+ pdf:#3~
+ @image \int_use:c { c__driver_image_ #1#2 _int }
+ \int_compare:nNnT \l_image_page_int > 1
+ { page ~ \int_use:N \l_image_page_int \c_space_tl }
+ \tl_if_empty:NF \l_image_pagebox_tl
+ {
+ pagebox ~ \l_image_pagebox_tl \c_space_tl
+ bbox ~
+ \dim_to_decimal_in_bp:n \l_image_llx_dim \c_space_tl
+ \dim_to_decimal_in_bp:n \l_image_lly_dim \c_space_tl
+ \dim_to_decimal_in_bp:n \l_image_urx_dim \c_space_tl
+ \dim_to_decimal_in_bp:n \l_image_ury_dim \c_space_tl
+ }
+ (#1)
+ \bool_lazy_or:nnT
+ { \l_image_interpolate_bool }
+ { ! \tl_if_empty_p:N \l_image_decodearray_tl }
+ {
+ <<
+ \tl_if_empty:NF \l_image_decode_tl
+ { /Decode~[ \l_image_decodearray_tl ] }
+ \bool_if:NT \l_image_interpolate_bool
+ { /Interpolate~true> }
+ >>
+ }
+ }
+ }
+%% File: l3drivers-pdf.dtx
+\tl_const:Nn \c__driver_pdf_AR_fix_tl
+ { /Ff ~ 65537 /FT /Btn /Subtype /Widget }
+\cs_new_protected:Npx \__driver_pdf:n #1
+ { \__driver_literal:n { pdf: #1 } }
+\cs_generate_variant:Nn \__driver_pdf:n { x }
+\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 }
+ }
+ }
+\cs_new_protected:Npx \__driver_pdf_AR_fix:
+ {
+ \__driver_pdf:n
+ {
+ ann ~ width ~ 3pt ~ height ~ 3pt ~ depth ~ 0pt
+ << \c__driver_pdf_AR_fix_tl >>
+ }
+ }
+\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
+ {
+ \__driver_pdf_AR_fix:
+ \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 /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_AR_fix:
+ \__driver_pdf:n
+ {
+ bann
+ <<
+ /Type /Annot
+ /Subtype /Link
+ #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 { }
+\cs_new_protected:Npn \driver_pdf_compresslevel:n #1
+ { \__driver_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } }
+\cs_new_protected:Npn \driver_pdf_objects_enable: { }
+\cs_new_protected:Npn \driver_pdf_objects_disable:
+ { \__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'.