From b292c6736820d4091fc39720e179d0a8702e1e86 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 14 Apr 2022 19:47:31 +0000 Subject: l3backend (14apr22) git-svn-id: svn://tug.org/texlive/trunk@63025 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/l3backend/l3backend-dvipdfmx.def | 12 +- .../tex/latex/l3backend/l3backend-dvips.def | 6 +- .../tex/latex/l3backend/l3backend-dvisvgm.def | 124 ++++++++++++++++++--- .../tex/latex/l3backend/l3backend-luatex.def | 14 ++- .../tex/latex/l3backend/l3backend-pdftex.def | 14 ++- .../tex/latex/l3backend/l3backend-xetex.def | 12 +- 6 files changed, 156 insertions(+), 26 deletions(-) (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index 4d45954567f..e5141ab8ed1 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2022-04-10}{} + {l3backend-dvipdfmx.def}{2022-04-14}{} {L3 backend support: dvipdfmx} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -75,8 +75,8 @@ { \tl_set:Nx #1 { + { named } { \exp_after:wN \use:n \current@color } - { 1 } } } { @@ -164,6 +164,14 @@ } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int } +\cs_new_protected:Npn \__color_backend_select_named:n #1 + { + \str_if_eq:nnTF {#1} { Black } + { \__color_backend_select_gray:n { 0 } } + { \msg_error:nnn { color } { unknown-named-color } {#1} } + } +\msg_new:nnn { color } { unknown-named-color } + { Named~color~'#1'~is~not~known. } \prop_new:N \g__color_backend_colorant_prop \cs_new:Npx \__color_backend_devicen_colorants:n #1 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index e63d882e34b..bc3c87d637f 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2022-04-10}{} + {l3backend-dvips.def}{2022-04-14}{} {L3 backend support: dvips} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -92,8 +92,8 @@ { \tl_set:Nx #1 { + { named } { \exp_after:wN \use:n \current@color } - { 1 } } } { @@ -108,6 +108,8 @@ { \__color_backend_select:n { cmyk ~ #1 } } \cs_new_protected:Npn \__color_backend_select_gray:n #1 { \__color_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \__color_backend_select_named:n #1 + { \__color_backend_select:n { ~ #1 } } \cs_new_protected:Npn \__color_backend_select_rgb:n #1 { \__color_backend_select:n { rgb ~ #1 } } \cs_new_protected:Npn \__color_backend_select:n #1 diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index 61c275d697b..6742f2433bc 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2022-04-10}{} + {l3backend-dvisvgm.def}{2022-04-14}{} {L3 backend support: dvisvgm} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -106,8 +106,8 @@ { \tl_set:Nx #1 { + { named } { \exp_after:wN \use:n \current@color } - { 1 } } } { @@ -122,6 +122,8 @@ { \__color_backend_select:n { cmyk ~ #1 } } \cs_new_protected:Npn \__color_backend_select_gray:n #1 { \__color_backend_select:n { gray ~ #1 } } +\cs_new_protected:Npn \__color_backend_select_named:n #1 + { \__color_backend_select:n { ~ #1 } } \cs_new_protected:Npn \__color_backend_select_rgb:n #1 { \__color_backend_select:n { rgb ~ #1 } } \cs_new_protected:Npn \__color_backend_select:n #1 @@ -507,10 +509,92 @@ { \seq_set_from_clist:Nn \l_graphics_search_ext_seq - { .pdf , .eps , .png , .jpg , .jpeg } + { .svg , .pdf , .eps , .ps , .png , .jpg , .jpeg } } +\cs_new_protected:Npn \__graphics_backend_getbb_svg:n #1 + { + \__graphics_bb_restore:nF {#1} + { + \ior_open:Nn \l__graphics_internal_ior {#1} + \ior_if_eof:NTF \l__graphics_internal_ior + { \msg_error:nnn { graphics } { graphic-not-found } {#1} } + { + \dim_zero:N \l__graphics_llx_dim + \dim_zero:N \l__graphics_lly_dim + \dim_set:Nn \l__graphics_urx_dim { -\c_max_dim } + \dim_set:Nn \l__graphics_ury_dim { -\c_max_dim } + \ior_str_map_inline:Nn \l__graphics_internal_ior + { + \dim_compare:nNnT \l__graphics_urx_dim = { -\c_max_dim } + { + \__graphics_backend_getbb_svg_auxi:nNn + { width } \l__graphics_urx_dim {##1} + } + \dim_compare:nNnT \l__graphics_ury_dim = { -\c_max_dim } + { + \__graphics_backend_getbb_svg_auxi:nNn + { height } \l__graphics_ury_dim {##1} + } + \bool_lazy_and:nnF + { \dim_compare_p:nNn \l__graphics_urx_dim = { -\c_max_dim } } + { \dim_compare_p:nNn \l__graphics_ury_dim = { -\c_max_dim } } + { \ior_map_break: } + } + \__graphics_bb_save:n {#1} + } + \ior_close:N \l__graphics_internal_ior + } + } +\cs_new_protected:Npn \__graphics_backend_getbb_svg_auxi:nNn #1#2#3 + { + \use:x + { + \cs_set_protected:Npn \__graphics_backend_getbb_svg_auxii:w + ####1 \tl_to_str:n {#1} = ####2 \tl_to_str:n {#1} = ####3 + \s__graphics_stop + } + { + \tl_if_blank:nF {##2} + { + \peek_remove_spaces:n + { + \peek_meaning:NTF ' % ' + { \__graphics_backend_getbb_svg_auxiii:Nw #2 } + { + \peek_meaning:NTF " % " + { \__graphics_backend_getbb_svg_auxiv:Nw #2 } + { \__graphics_backend_getbb_svg_auxv:Nw #2 } + } + } + ##2 \s__graphics_stop + } + } + \use:x + { + \__graphics_backend_getbb_svg_auxii:w #3 + \tl_to_str:n {#1} = \tl_to_str:n {#1} = + \s__graphics_stop + } + } +\cs_new_protected:Npn \__graphics_backend_getbb_svg_auxii:w { } +\cs_new_protected:Npn \__graphics_backend_getbb_svg_auxiii:Nw #1 ' #2 ' #3 \s__graphics_stop + { \__graphics_backend_getbb_svg_auxvi:Nn #1 {#2} } +\cs_new_protected:Npn \__graphics_backend_getbb_svg_auxiv:Nw #1 " #2 " #3 \s__graphics_stop + { \__graphics_backend_getbb_svg_auxvi:Nn #1 {#2} } +\cs_new_protected:Npn \__graphics_backend_getbb_svg_auxv:Nw #1 #2 ~ #3 \s__graphics_stop + { \__graphics_backend_getbb_svg_auxvi:Nn #1 {#2} } +\cs_new_protected:Npn \__graphics_backend_getbb_svg_auxvi:Nn #1#2 + { + \tex_afterassignment:D \__graphics_backend_getbb_svg_auxvii:w + \l__graphics_internal_dim #2 bp \scan_stop: + \dim_set_eq:NN #1 \l__graphics_internal_dim + } +\cs_new_protected:Npn \__graphics_backend_getbb_svg_auxvii:w #1 \scan_stop: { } \__graphics_backend_loaded:n - { \cs_new_eq:NN \__graphics_backend_getbb_eps:n \__graphics_read_bb:n } + { + \cs_new_eq:NN \__graphics_backend_getbb_eps:n \__graphics_read_bb:n + \cs_new_eq:NN \__graphics_backend_getbb_ps:n \__graphics_read_bb:n + } \cs_new_protected:Npn \__graphics_backend_getbb_jpg:n #1 { \int_zero:N \l__graphics_page_int @@ -527,6 +611,7 @@ } \cs_new_protected:Npn \__graphics_backend_include_eps:n #1 { \__graphics_backend_include:nn { PSfile } {#1} } +\cs_new_eq:NN \__graphics_backend_include_ps:n \__graphics_backend_include_eps:n \cs_new_protected:Npn \__graphics_backend_include_pdf:n #1 { \__graphics_backend_include:nn { pdffile } {#1} } \cs_new_protected:Npn \__graphics_backend_include:nn #1#2 @@ -540,20 +625,27 @@ ury = \dim_to_decimal_in_bp:n \l__graphics_ury_dim } } -\cs_new_protected:Npn \__graphics_backend_include_png:n #1 +\cs_new_protected:Npn \__graphics_backend_include_svg:n #1 { - \__kernel_backend_literal:x - { - dvisvgm:img~ - \dim_to_decimal:n { \l__graphics_ury_dim } ~ - \dim_to_decimal:n { \l__graphics_ury_dim } ~ - \__graphics_backend_include_bitmap_quote:w #1 " #1 " \s__graphics_stop - } + \box_move_up:nn { \l__graphics_ury_dim } + { + \hbox:n + { + \__kernel_backend_literal:x + { + dvisvgm:img~ + \dim_to_decimal:n { \l__graphics_urx_dim } ~ + \dim_to_decimal:n { \l__graphics_ury_dim } ~ + \__graphics_backend_include_dequote:w #1 " #1 " \s__graphics_stop + } + } + } } -\cs_new_eq:NN \__graphics_backend_include_jpeg:n \__graphics_backend_include_png:n -\cs_new_eq:NN \__graphics_backend_include_jpg:n \__graphics_backend_include_png:n -\cs_new:Npn \__graphics_backend_include_bitmap_quote:w #1 " #2 " #3 \s__graphics_stop - { " #2 " } +\cs_new_eq:NN \__graphics_backend_include_png:n \__graphics_backend_include_svg:n +\cs_new_eq:NN \__graphics_backend_include_jpeg:n \__graphics_backend_include_svg:n +\cs_new_eq:NN \__graphics_backend_include_jpg:n \__graphics_backend_include_svg:n +\cs_new:Npn \__graphics_backend_include_dequote:w #1 " #2 " #3 \s__graphics_stop + {#2} \__graphics_backend_loaded:n { \cs_new_eq:NN \__graphics_backend_get_pagecount:n \__graphics_get_pagecount:n } %% File: l3backend-pdf.dtx diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def index c98a097818a..ae3b02531c3 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-luatex.def}{2022-04-10}{} + {l3backend-luatex.def}{2022-04-14}{} {L3 backend support: PDF output (LuaTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -151,6 +151,14 @@ } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int } +\cs_new_protected:Npn \__color_backend_select_named:n #1 + { + \str_if_eq:nnTF {#1} { Black } + { \__color_backend_select_gray:n { 0 } } + { \msg_error:nnn { color } { unknown-named-color } {#1} } + } +\msg_new:nnn { color } { unknown-named-color } + { Named~color~'#1'~is~not~known. } \prop_new:N \g__color_backend_colorant_prop \cs_new:Npx \__color_backend_devicen_colorants:n #1 { @@ -550,7 +558,7 @@ { \seq_set_from_clist:Nn \l_graphics_search_ext_seq - { .pdf , .eps , .png , .jpg , .jpeg } + { .pdf , .eps , .ps , .png , .jpg , .jpeg } } \tl_new:N \l__graphics_graphics_attr_tl \cs_new_protected:Npn \__graphics_backend_getbb_jpg:n #1 @@ -650,6 +658,7 @@ } {#1} } + \cs_new_eq:NN \__graphics_backend_getbb_ps:n \__graphics_backend_getbb_eps:n \cs_new_protected:Npn \__graphics_backend_getbb_eps:nn #1#2 { \file_compare_timestamp:nNnT {#2} > {#1} @@ -674,6 +683,7 @@ } } } + \cs_new_eq:NN \__graphics_backend_include_ps:n \__graphics_backend_include_eps:n } \cs_new_protected:Npn \__graphics_backend_get_pagecount:n #1 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def index 17d944aeb09..ddc356a7bee 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdftex.def}{2022-04-10}{} + {l3backend-pdftex.def}{2022-04-14}{} {L3 backend support: PDF output (pdfTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -151,6 +151,14 @@ } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int } +\cs_new_protected:Npn \__color_backend_select_named:n #1 + { + \str_if_eq:nnTF {#1} { Black } + { \__color_backend_select_gray:n { 0 } } + { \msg_error:nnn { color } { unknown-named-color } {#1} } + } +\msg_new:nnn { color } { unknown-named-color } + { Named~color~'#1'~is~not~known. } \prop_new:N \g__color_backend_colorant_prop \cs_new:Npx \__color_backend_devicen_colorants:n #1 { @@ -550,7 +558,7 @@ { \seq_set_from_clist:Nn \l_graphics_search_ext_seq - { .pdf , .eps , .png , .jpg , .jpeg } + { .pdf , .eps , .ps , .png , .jpg , .jpeg } } \tl_new:N \l__graphics_graphics_attr_tl \cs_new_protected:Npn \__graphics_backend_getbb_jpg:n #1 @@ -650,6 +658,7 @@ } {#1} } + \cs_new_eq:NN \__graphics_backend_getbb_ps:n \__graphics_backend_getbb_eps:n \cs_new_protected:Npn \__graphics_backend_getbb_eps:nn #1#2 { \file_compare_timestamp:nNnT {#2} > {#1} @@ -674,6 +683,7 @@ } } } + \cs_new_eq:NN \__graphics_backend_include_ps:n \__graphics_backend_include_eps:n } \cs_new_protected:Npn \__graphics_backend_get_pagecount:n #1 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def index dd69cc589db..710543cd4bf 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xetex.def}{2022-04-10}{} + {l3backend-xetex.def}{2022-04-14}{} {L3 backend support: XeTeX} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -75,8 +75,8 @@ { \tl_set:Nx #1 { + { named } { \exp_after:wN \use:n \current@color } - { 1 } } } { @@ -164,6 +164,14 @@ } \cs_new_protected:Npn \__color_backend_reset: { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int } +\cs_new_protected:Npn \__color_backend_select_named:n #1 + { + \str_if_eq:nnTF {#1} { Black } + { \__color_backend_select_gray:n { 0 } } + { \msg_error:nnn { color } { unknown-named-color } {#1} } + } +\msg_new:nnn { color } { unknown-named-color } + { Named~color~'#1'~is~not~known. } \prop_new:N \g__color_backend_colorant_prop \cs_new:Npx \__color_backend_devicen_colorants:n #1 { -- cgit v1.2.3