From 82e7602ebaa01a1c3e7233c8c4142ddfb867fb21 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 14 Dec 2021 21:24:04 +0000 Subject: l3backend (14dec21) git-svn-id: svn://tug.org/texlive/trunk@61303 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md | 10 ++- Master/texmf-dist/doc/latex/l3backend/README.md | 2 +- .../doc/latex/l3backend/l3backend-code.pdf | Bin 896357 -> 897083 bytes .../source/latex/l3backend/l3backend-basics.dtx | 14 ++-- .../source/latex/l3backend/l3backend-box.dtx | 12 ++-- .../source/latex/l3backend/l3backend-color.dtx | 2 +- .../source/latex/l3backend/l3backend-draw.dtx | 80 +++++++++++---------- .../source/latex/l3backend/l3backend-graphics.dtx | 2 +- .../source/latex/l3backend/l3backend-header.dtx | 2 +- .../source/latex/l3backend/l3backend-opacity.dtx | 2 +- .../source/latex/l3backend/l3backend-pdf.dtx | 2 +- .../tex/latex/l3backend/l3backend-dvipdfmx.def | 2 +- .../tex/latex/l3backend/l3backend-dvips.def | 2 +- .../tex/latex/l3backend/l3backend-dvisvgm.def | 80 +++++++++++---------- .../tex/latex/l3backend/l3backend-luatex.def | 2 +- .../tex/latex/l3backend/l3backend-pdftex.def | 2 +- .../tex/latex/l3backend/l3backend-xetex.def | 2 +- 17 files changed, 116 insertions(+), 102 deletions(-) diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md index b6b15a00ec9..15826624b83 100644 --- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md @@ -6,7 +6,11 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] -## [2021-10-18] +## [2021-12-14] + +### Fixed +- Scoping issues for `dvisvgm` +- Some incorrect functions in `l3draw` backend for `dvisvgm` ## [2021-10-17] @@ -203,8 +207,8 @@ this project uses date-based 'snapshot' version identifiers. - Include `l3backend` in file names - Moved backend code to internal for each 'parent' module -[Unreleased]: https://github.com/latex3/latex3/compare/2021-10-18...HEAD -[2021-10-18]: https://github.com/latex3/latex3/compare/2021-10-17...2021-10-18 +[Unreleased]: https://github.com/latex3/latex3/compare/2021-12-14...HEAD +[2021-12-14]: https://github.com/latex3/latex3/compare/2021-10-17...2021-12-14 [2021-10-17]: https://github.com/latex3/latex3/compare/2021-10-12...2021-10-17 [2021-10-12]: https://github.com/latex3/latex3/compare/2021-08-04...2021-10-12 [2021-08-04]: https://github.com/latex3/latex3/compare/2021-07-12...2021-08-04 diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md index 5ca467a1f09..4e713baec6d 100644 --- a/Master/texmf-dist/doc/latex/l3backend/README.md +++ b/Master/texmf-dist/doc/latex/l3backend/README.md @@ -1,7 +1,7 @@ LaTeX3 Backend Drivers ====================== -Release 2021-10-18 +Release 2021-12-14 This package forms parts of `expl3`, and contains the code used to interface with backends (drivers) across the `expl3` codebase. The functions here are diff --git a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf index b190a428d9d..ac30cca1984 100644 Binary files a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf and b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf differ diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index a8f2c67155b..48a8673e390 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % @@ -70,27 +70,27 @@ % \begin{macrocode} \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2021-10-18}{} + {l3backend-dvipdfmx.def}{2021-12-14}{} {L3 backend support: dvipdfmx} % %<*dvips> - {l3backend-dvips.def}{2021-10-18}{} + {l3backend-dvips.def}{2021-12-14}{} {L3 backend support: dvips} % %<*dvisvgm> - {l3backend-dvisvgm.def}{2021-10-18}{} + {l3backend-dvisvgm.def}{2021-12-14}{} {L3 backend support: dvisvgm} % %<*luatex> - {l3backend-luatex.def}{2021-10-18}{} + {l3backend-luatex.def}{2021-12-14}{} {L3 backend support: PDF output (LuaTeX)} % %<*pdftex> - {l3backend-pdftex.def}{2021-10-18}{} + {l3backend-pdftex.def}{2021-12-14}{} {L3 backend support: PDF output (pdfTeX)} % %<*xetex> - {l3backend-xetex.def}{2021-10-18}{} + {l3backend-xetex.def}{2021-12-14}{} {L3 backend support: XeTeX} % % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index dc592e2fce7..29a20a8ceb0 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % @@ -337,7 +337,7 @@ % \end{macrocode} % % \begin{macro}{\@@_backend_clip:N} -% \begin{variable}{\g_@@_clip_path_int} +% \begin{variable}{\g__kernel_clip_path_int} % Clipping in SVG is more involved than with other backends. The first issue % is that the clipping path must be defined separately from where it is used, % so we need to track how many paths have applied. The naming here uses @@ -349,9 +349,9 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_clip:N #1 { - \int_gincr:N \g_@@_clip_path_int + \int_gincr:N \g__kernel_clip_path_int \__kernel_backend_literal_svg:x - { < clipPath~id = " l3cp \int_use:N \g_@@_clip_path_int " > } + { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > } \__kernel_backend_literal_svg:x { < @@ -390,7 +390,7 @@ \__kernel_backend_scope:x { clip-path = - "url ( \c_hash_str l3cp \int_use:N \g_@@_clip_path_int ) " + "url ( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int ) " } \__kernel_backend_scope:n { @@ -404,7 +404,7 @@ \box_use:N #1 \__kernel_backend_scope_end: } -\int_new:N \g_@@_clip_path_int +\int_new:N \g__kernel_clip_path_int % \end{macrocode} % \end{variable} % \end{macro} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index d47b2a71793..b9185ea80ba 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index d8e8a19226a..6a9ac910c3b 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % @@ -768,6 +768,14 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\@@_backend_scope_begin:, \@@_backend_scope_end:} +% Use the backend-level scope mechanisms. +% \begin{macrocode} +\cs_new_eq:NN \@@_backend_scope_begin: \__kernel_backend_scope_begin: +\cs_new_eq:NN \@@_backend_scope_end: \__kernel_backend_scope_end: +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\@@_backend_begin:, \@@_backend_end:} % A drawing needs to be set up such that the co-ordinate system is % translated. That is done inside a scope, which as described below @@ -785,7 +793,7 @@ % \begin{macro}{\@@_backend_rectangle:nnnn} % \begin{macro}{\@@_backend_curveto:nnnnnn} % \begin{macro}{\@@_backend_add_to_path:n} -% \begin{variable}{\g_@@_draw_path_tl} +% \begin{variable}{\g_@@_backend_path_tl} % Once again, some work is needed to get path constructs correct. Rather % then write the values as they are given, the entire path needs to be % collected up before being output in one go. For that we use a dedicated @@ -826,14 +834,14 @@ } \cs_new_protected:Npn \@@_backend_add_to_path:n #1 { - \tl_gset:Nx \g_@@_draw_path_tl + \tl_gset:Nx \g_@@_backend_path_tl { - \g_@@_draw_path_tl - \tl_if_empty:NF \g_@@_draw_path_tl { \c_space_tl } + \g_@@_backend_path_tl + \tl_if_empty:NF \g_@@_backend_path_tl { \c_space_tl } #1 } } -\tl_new:N \g_@@_draw_path_tl +\tl_new:N \g_@@_backend_path_tl % \end{macrocode} % \end{variable} % \end{macro} @@ -845,9 +853,9 @@ % The fill rules here have to be handled as scopes. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_evenodd_rule: - { \@@_backend_scope:n { fill-rule="evenodd" } } + { \__kernel_backend_scope:n { fill-rule="evenodd" } } \cs_new_protected:Npn \@@_backend_nonzero_rule: - { \@@_backend_scope:n { fill-rule="nonzero" } } + { \__kernel_backend_scope:n { fill-rule="nonzero" } } % \end{macrocode} % \end{macro} % @@ -876,33 +884,33 @@ { \bool_if:NTF \g_@@_draw_clip_bool { - \int_gincr:N \g_@@_clip_path_int + \int_gincr:N \g__kernel_clip_path_int \@@_backend_literal:x { - < clipPath~id = " l3cp \int_use:N \g_@@_clip_path_int " > + < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } - { ?nl } + { ?nl } < /clipPath > { ? nl } < use~xlink:href = - "\c_hash_str l3path \int_use:N \g_@@_path_int " ~ + "\c_hash_str l3path \int_use:N \g_@@_backend_path_int " ~ #1 /> } - \@@_backend_scope:x + \__kernel_backend_scope:x { clip-path = - "url( \c_hash_str l3cp \int_use:N \g_@@_clip_path_int)" + "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" } } { \@@_backend_literal:x - { } + { } } - \tl_gclear:N \g_@@_draw_path_tl + \tl_gclear:N \g_@@_backend_path_tl \bool_gset_false:N \g_@@_draw_clip_bool } -\int_new:N \g_@@_path_int +\int_new:N \g_@@_backend_path_int \cs_new_protected:Npn \@@_backend_stroke: { \@@_backend_path:n { style="fill:none" } } \cs_new_protected:Npn \@@_backend_closestroke: @@ -921,21 +929,21 @@ { \bool_if:NT \g_@@_draw_clip_bool { - \int_gincr:N \g_@@_clip_path_int + \int_gincr:N \g__kernel_clip_path_int \@@_backend_literal:x { - < clipPath~id = " l3cp \int_use:N \g_@@_clip_path_int " > + < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } - { ?nl } + { ?nl } < /clipPath > } - \@@_backend_scope:x + \__kernel_backend_scope:x { clip-path = - "url( \c_hash_str l3cp \int_use:N \g_@@_clip_path_int)" + "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" } } - \tl_gclear:N \g_@@_draw_path_tl + \tl_gclear:N \g_@@_path_tl \bool_gset_false:N \g_@@_draw_clip_bool } % \end{macrocode} @@ -963,7 +971,7 @@ \use:x { \@@_backend_dash_aux:nn - { \clist_map_function:nn {#1} \@@_backend_dash:n } + { \clist_map_function:nN {#1} \@@_backend_dash:n } { \dim_to_decimal:n {#2} } } } @@ -971,11 +979,11 @@ { , \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \@@_backend_dash_aux:nn #1#2 { - \@@_backend_scope:x + \__kernel_backend_scope:x { stroke-dasharray = " - \tl_if_empty:oTF { \use_none:n #1 } + \tl_if_empty:nTF {#1} { none } { \use_none:n #1 } " ~ @@ -983,21 +991,21 @@ } } \cs_new_protected:Npn \@@_backend_linewidth:n #1 - { \@@_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } + { \__kernel_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \@@_backend_scope:x { stroke-miterlimit=" #1 " } } + { \__kernel_backend_scope:x { stroke-miterlimit=" #1 " } } \cs_new_protected:Npn \@@_backend_cap_butt: - { \@@_backend_scope:n { stroke-linecap="butt" } } + { \__kernel_backend_scope:n { stroke-linecap="butt" } } \cs_new_protected:Npn \@@_backend_cap_round: - { \@@_backend_scope:n { stroke-linecap="round" } } + { \__kernel_backend_scope:n { stroke-linecap="round" } } \cs_new_protected:Npn \@@_backend_cap_rectangle: - { \@@_backend_scope:n { stroke-linecap="square" } } + { \__kernel_backend_scope:n { stroke-linecap="square" } } \cs_new_protected:Npn \@@_backend_join_miter: - { \@@_backend_scope:n { stroke-linejoin="miter" } } + { \__kernel_backend_scope:n { stroke-linejoin="miter" } } \cs_new_protected:Npn \@@_backend_join_round: - { \@@_backend_scope:n { stroke-linejoin="round" } } + { \__kernel_backend_scope:n { stroke-linejoin="round" } } \cs_new_protected:Npn \@@_backend_join_bevel: - { \@@_backend_scope:n { stroke-linejoin="bevel" } } + { \__kernel_backend_scope:n { stroke-linejoin="bevel" } } % \end{macrocode} % \end{macro} % \end{macro} @@ -1012,7 +1020,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_cm:nnnn #1#2#3#4 { - \@@_backend_scope:n + \__kernel_backend_scope:n { transform = " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) " @@ -1026,7 +1034,7 @@ % a scope. As there is nothing to re-box, just make the box passed of % zero size. % \begin{macrocode} -\cs_new_protected:Npn \@@_backend_box_use:Nnnnn #1#2#3#4#5#6#7 +\cs_new_protected:Npn \@@_backend_box_use:Nnnnn #1#2#3#4#5 { \__kernel_backend_scope_begin: \@@_backend_cm:nnnn {#2} {#3} {#4} {#5} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index 144b21cf5a6..57cac24006e 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index 7eab8cdf2f2..6692fec9bf0 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx index ff9eec52260..ed811bd7b7f 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index d9098ccd1fc..2d09226bf11 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-10-18} +% \date{Released 2021-12-14} % % \maketitle % diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index dbe5d9606f2..559d29bb928 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}{2021-10-18}{} + {l3backend-dvipdfmx.def}{2021-12-14}{} {L3 backend support: dvipdfmx} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index e6a75ffbf5e..0c6121f9010 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}{2021-10-18}{} + {l3backend-dvips.def}{2021-12-14}{} {L3 backend support: dvips} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index 9f7839f5dd3..27cadb9aae0 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}{2021-10-18}{} + {l3backend-dvisvgm.def}{2021-12-14}{} {L3 backend support: dvisvgm} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -220,9 +220,9 @@ %% File: l3backend-box.dtx \cs_new_protected:Npn \__box_backend_clip:N #1 { - \int_gincr:N \g__box_clip_path_int + \int_gincr:N \g__kernel_clip_path_int \__kernel_backend_literal_svg:x - { < clipPath~id = " l3cp \int_use:N \g__box_clip_path_int " > } + { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > } \__kernel_backend_literal_svg:x { < @@ -253,7 +253,7 @@ \__kernel_backend_scope:x { clip-path = - "url ( \c_hash_str l3cp \int_use:N \g__box_clip_path_int ) " + "url ( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int ) " } \__kernel_backend_scope:n { @@ -267,7 +267,7 @@ \box_use:N #1 \__kernel_backend_scope_end: } -\int_new:N \g__box_clip_path_int +\int_new:N \g__kernel_clip_path_int \cs_new_protected:Npn \__box_backend_rotate:Nn #1#2 { \__kernel_backend_scope_begin:x @@ -303,6 +303,8 @@ %% File: l3backend-draw.dtx \cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_svg:n \cs_generate_variant:Nn \__draw_backend_literal:n { x } +\cs_new_eq:NN \__draw_backend_scope_begin: \__kernel_backend_scope_begin: +\cs_new_eq:NN \__draw_backend_scope_end: \__kernel_backend_scope_end: \cs_new_protected:Npn \__draw_backend_begin: { \__kernel_backend_scope_begin: @@ -342,51 +344,51 @@ } \cs_new_protected:Npn \__draw_backend_add_to_path:n #1 { - \tl_gset:Nx \g__draw_draw_path_tl + \tl_gset:Nx \g__draw_backend_path_tl { - \g__draw_draw_path_tl - \tl_if_empty:NF \g__draw_draw_path_tl { \c_space_tl } + \g__draw_backend_path_tl + \tl_if_empty:NF \g__draw_backend_path_tl { \c_space_tl } #1 } } -\tl_new:N \g__draw_draw_path_tl +\tl_new:N \g__draw_backend_path_tl \cs_new_protected:Npn \__draw_backend_evenodd_rule: - { \__draw_backend_scope:n { fill-rule="evenodd" } } + { \__kernel_backend_scope:n { fill-rule="evenodd" } } \cs_new_protected:Npn \__draw_backend_nonzero_rule: - { \__draw_backend_scope:n { fill-rule="nonzero" } } + { \__kernel_backend_scope:n { fill-rule="nonzero" } } \cs_new_protected:Npn \__draw_backend_closepath: { \__draw_backend_add_to_path:n { Z } } \cs_new_protected:Npn \__draw_backend_path:n #1 { \bool_if:NTF \g__draw_draw_clip_bool { - \int_gincr:N \g__draw_clip_path_int + \int_gincr:N \g__kernel_clip_path_int \__draw_backend_literal:x { - < clipPath~id = " l3cp \int_use:N \g__draw_clip_path_int " > + < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } - { ?nl } + { ?nl } < /clipPath > { ? nl } < use~xlink:href = - "\c_hash_str l3path \int_use:N \g__draw_path_int " ~ + "\c_hash_str l3path \int_use:N \g__draw_backend_path_int " ~ #1 /> } - \__draw_backend_scope:x + \__kernel_backend_scope:x { clip-path = - "url( \c_hash_str l3cp \int_use:N \g__draw_clip_path_int)" + "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" } } { \__draw_backend_literal:x - { } + { } } - \tl_gclear:N \g__draw_draw_path_tl + \tl_gclear:N \g__draw_backend_path_tl \bool_gset_false:N \g__draw_draw_clip_bool } -\int_new:N \g__draw_path_int +\int_new:N \g__draw_backend_path_int \cs_new_protected:Npn \__draw_backend_stroke: { \__draw_backend_path:n { style="fill:none" } } \cs_new_protected:Npn \__draw_backend_closestroke: @@ -405,21 +407,21 @@ { \bool_if:NT \g__draw_draw_clip_bool { - \int_gincr:N \g__draw_clip_path_int + \int_gincr:N \g__kernel_clip_path_int \__draw_backend_literal:x { - < clipPath~id = " l3cp \int_use:N \g__draw_clip_path_int " > + < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } - { ?nl } + { ?nl } < /clipPath > } - \__draw_backend_scope:x + \__kernel_backend_scope:x { clip-path = - "url( \c_hash_str l3cp \int_use:N \g__draw_clip_path_int)" + "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" } } - \tl_gclear:N \g__draw_draw_path_tl + \tl_gclear:N \g__draw_path_tl \bool_gset_false:N \g__draw_draw_clip_bool } \cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2 @@ -427,7 +429,7 @@ \use:x { \__draw_backend_dash_aux:nn - { \clist_map_function:nn {#1} \__draw_backend_dash:n } + { \clist_map_function:nN {#1} \__draw_backend_dash:n } { \dim_to_decimal:n {#2} } } } @@ -435,11 +437,11 @@ { , \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \__draw_backend_dash_aux:nn #1#2 { - \__draw_backend_scope:x + \__kernel_backend_scope:x { stroke-dasharray = " - \tl_if_empty:oTF { \use_none:n #1 } + \tl_if_empty:nTF {#1} { none } { \use_none:n #1 } " ~ @@ -447,30 +449,30 @@ } } \cs_new_protected:Npn \__draw_backend_linewidth:n #1 - { \__draw_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } + { \__kernel_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_scope:x { stroke-miterlimit=" #1 " } } + { \__kernel_backend_scope:x { stroke-miterlimit=" #1 " } } \cs_new_protected:Npn \__draw_backend_cap_butt: - { \__draw_backend_scope:n { stroke-linecap="butt" } } + { \__kernel_backend_scope:n { stroke-linecap="butt" } } \cs_new_protected:Npn \__draw_backend_cap_round: - { \__draw_backend_scope:n { stroke-linecap="round" } } + { \__kernel_backend_scope:n { stroke-linecap="round" } } \cs_new_protected:Npn \__draw_backend_cap_rectangle: - { \__draw_backend_scope:n { stroke-linecap="square" } } + { \__kernel_backend_scope:n { stroke-linecap="square" } } \cs_new_protected:Npn \__draw_backend_join_miter: - { \__draw_backend_scope:n { stroke-linejoin="miter" } } + { \__kernel_backend_scope:n { stroke-linejoin="miter" } } \cs_new_protected:Npn \__draw_backend_join_round: - { \__draw_backend_scope:n { stroke-linejoin="round" } } + { \__kernel_backend_scope:n { stroke-linejoin="round" } } \cs_new_protected:Npn \__draw_backend_join_bevel: - { \__draw_backend_scope:n { stroke-linejoin="bevel" } } + { \__kernel_backend_scope:n { stroke-linejoin="bevel" } } \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4 { - \__draw_backend_scope:n + \__kernel_backend_scope:n { transform = " matrix ( #1 , #2 , #3 , #4 , 0pt , 0pt ) " } } -\cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5#6#7 +\cs_new_protected:Npn \__draw_backend_box_use:Nnnnn #1#2#3#4#5 { \__kernel_backend_scope_begin: \__draw_backend_cm:nnnn {#2} {#3} {#4} {#5} diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def index 18d39d723b8..7ffc1d4fb44 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}{2021-10-18}{} + {l3backend-luatex.def}{2021-12-14}{} {L3 backend support: PDF output (LuaTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def index 0cca706a208..6edfe39422d 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}{2021-10-18}{} + {l3backend-pdftex.def}{2021-12-14}{} {L3 backend support: PDF output (pdfTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def index 2c035ff5851..9af34318f53 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}{2021-10-18}{} + {l3backend-xetex.def}{2021-12-14}{} {L3 backend support: XeTeX} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { -- cgit v1.2.3