diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def | 67 |
1 files changed, 63 insertions, 4 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def index aa41c1f1c1b..a8db92d73d0 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -101,12 +101,12 @@ \hbox_overlap_right:n { \box_use:N #1 } \__driver_scope_end: } -\tl_new:N \l__driver_current_color_tl -\tl_set:Nn \l__driver_current_color_tl { 0~g~0~G } +\tl_new:N \l__driver_color_current_tl +\tl_set:Nn \l__driver_color_current_tl { 0~g~0~G } \AtBeginDocument { \@ifpackageloaded { color } - { \tl_set:Nn \l__driver_current_color_tl { \current@color } } + { \tl_set:Nn \l__driver_color_current_tl { \current@color } } { } } \int_new:N \l__driver_color_stack_int @@ -116,7 +116,7 @@ { \luatex_pdfextension:D colorstack } { \pdftex_pdfcolorstack:D } \exp_not:N \l__driver_color_stack_int push - { \exp_not:N \l__driver_current_color_tl } + { \exp_not:N \l__driver_color_current_tl } \group_insert_after:N \exp_not:N \__driver_color_reset: } \cs_new_protected:Npx \__driver_color_reset: @@ -126,6 +126,65 @@ { \pdftex_pdfcolorstack:D } \exp_not:N \l__driver_color_stack_int pop \scan_stop: } +\tl_new:N \l__driver_image_attr_tl +\cs_new_protected:Npn \__driver_image_getbb_jpg:n #1 + { + \int_zero:N \l__image_page_int + \tl_set:Nx \l__driver_image_attr_tl + { + \bool_if:NT \l__image_interpolate_bool + { :I } + } + \__driver_image_getbb_auxi: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 + { + \bool_set_false:N \l__image_interpolate_bool + \tl_set:Nx \l__driver_image_attr_tl + { + \int_compare:nNnT \l__image_page_int > 0 + { :P \int_use:N \l__image_page_int } + } + \__driver_image_getbb_auxi:n {#1} + } +\cs_new_protected:Npn \__driver_image_getbb_auxi:n #1 + { + \dim_if_exist:cTF { c__image_ #1 \l__driver_image_attr_tl _ht_dim } + { + \dim_set_eq:Nc \l__image_ht_dim + { c__image_ #1 \l__driver_image_attr_tl _ht_dim } + \dim_set_eq:Nc \l__image_wd_dim + { c__image_ #1 \l__driver_image_attr_tl _wd_dim } + } + { \__driver_image_getbb_auxii:n {#1} } + } +\cs_new_protected:Npn \__driver_image_getbb_auxii:n #1 + { + \tex_immediate:D \pdftex_pdfximage:D + \bool_if:NT \l__image_interpolate_bool + { attr ~ { /Interpolate~true } } + \int_compare:nNnT \l__image_page_int > 0 + { page ~ \int_use:N \l__image_page_int } + {#1} + \hbox_set:Nn \l__image_tmp_box + { \pdftex_pdfrefximage:D \pdftex_pdflastximage:D } + \dim_set:Nn \l__image_ht_dim { \box_ht:N \l__image_tmp_box } + \dim_set:Nn \l__image_wd_dim { \box_wd:N \l__image_tmp_box } + \int_const:cn { c__image_ #1 \l__driver_image_attr_tl _int } + { \tex_the:D \pdftex_pdflastximage:D } + \dim_const:cn { c__image_ #1 \l__driver_image_attr_tl _ht_dim } + { \l__image_ht_dim } + \dim_const:cn { c__image_ #1 \l__driver_image_attr_tl _wd_dim } + { \l__image_wd_dim } + } +\cs_new_protected:Npn \__driver_image_include_jpg:n #1 + { + \pdftex_pdfrefximage:D + \int_use:c { c__image_ #1 \l__driver_image_attr_tl _int } + } +\cs_new_eq:NN \__driver_image_include_pdf:n \__driver_image_include_jpg:n +\cs_new_eq:NN \__driver_image_include_png:n \__driver_image_include_jpg:n \cs_new_eq:NN \__driver_draw_literal:n \__driver_literal:n \cs_generate_variant:Nn \__driver_draw_literal:n { x } \cs_new_protected:Npn \__driver_draw_begin: |