From 1915d55af0571cbdcaec9681226feeff2d73a58f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 23 Jun 2020 21:19:50 +0000 Subject: l3backend (23jun20) git-svn-id: svn://tug.org/texlive/trunk@55638 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md | 11 +++- Master/texmf-dist/doc/latex/l3backend/README.md | 2 +- .../source/latex/l3backend/l3backend-basics.dtx | 12 ++-- .../source/latex/l3backend/l3backend-box.dtx | 2 +- .../source/latex/l3backend/l3backend-color.dtx | 2 +- .../source/latex/l3backend/l3backend-draw.dtx | 74 ++++++++++++---------- .../source/latex/l3backend/l3backend-graphics.dtx | 2 +- .../source/latex/l3backend/l3backend-header.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 | 60 ++++++++++-------- .../tex/latex/l3backend/l3backend-pdfmode.def | 2 +- .../tex/latex/l3backend/l3backend-xdvipdfmx.def | 2 +- 14 files changed, 102 insertions(+), 75 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md index cbd624e0249..27a96c4fb12 100644 --- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md @@ -6,6 +6,14 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2020-06-23] + +### Changed +- Improved color support for drawings with `dvisvgm` + +### Fixed +- Loading with `dvisvgm` + ## [2020-06-18] ### Changed @@ -83,7 +91,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/2020-06-18...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2020-06-23...HEAD +[2020-06-23]: https://github.com/latex3/latex3/compare/2020-06-18...2020-06-23 [2020-06-18]: https://github.com/latex3/latex3/compare/2020-06-03...2020-06-18 [2020-06-03]: https://github.com/latex3/latex3/compare/2020-05-05...2020-06-03 [2020-05-05]: https://github.com/latex3/latex3/compare/2020-03-12...2020-05-05 diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md index ca54b35b762..edf3db78831 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 2020-06-18 +Release 2020-06-23 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/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index 80d8714358f..a28db733ab5 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 2020-06-18} +% \date{Released 2020-06-23} % % \maketitle % @@ -71,23 +71,23 @@ %<*package> \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2020-06-18}{} + {l3backend-dvipdfmx.def}{2020-06-23}{} {L3 backend support: dvipdfmx} % %<*dvips> - {l3backend-dvips.def}{2020-06-18}{} + {l3backend-dvips.def}{2020-06-23}{} {L3 backend support: dvips} % %<*dvisvgm> - {l3backend-dvisvgm.def}{2020-06-18}{} + {l3backend-dvisvgm.def}{2020-06-23}{} {L3 backend support: dvisvgm} % %<*pdfmode> - {l3backend-pdfmode.def}{2020-06-18}{} + {l3backend-pdfmode.def}{2020-06-23}{} {L3 backend support: PDF mode} % %<*xdvipdfmx> - {l3backend-xdvipdfmx.def}{2020-06-18}{} + {l3backend-xdvipdfmx.def}{2020-06-23}{} {L3 backend support: xdvipdfmx} % % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index ca94b19e9b8..d07a08a4b4b 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 2020-06-18} +% \date{Released 2020-06-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index 2c0dd47ea18..4aef1ed938d 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 2020-06-18} +% \date{Released 2020-06-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index 6c82820a901..3b886359ab1 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 2020-06-18} +% \date{Released 2020-06-23} % % \maketitle % @@ -1163,77 +1163,86 @@ % \@@_backend_color_fill_cmyk:n , % \@@_backend_color_stroke_cmyk:n % } -% \begin{macro}{\@@_backend_color_fill_cmyk:w} +% \begin{macro}{\@@_backend_color_cmyk:nw} % \begin{macro} % { % \@@_backend_color_fill_gray:n , % \@@_backend_color_stroke_gray:n % } -% \begin{macro}{\@@_backend_color_gray_aux:n} +% \begin{macro}{\@@_backend_color_gray:nn, \@@_backend_color_gray_aux:n} % \begin{macro} % { % \@@_backend_color_fill_rgb:n , % \@@_backend_color_stroke_rgb:n % } -% \begin{macro}{\@@_backend_color_fill:nnn} -% SVG fill color has to be covered outside of the stack, as for -% \texttt{dvips}. Here, we are only allowed RGB colors so there is some -% conversion to do. +% \begin{macro}{\@@_backend_color_rgb:nw} +% \begin{macro}{\@@_backend_color:nnnn} +% For drawings in SVG, we use scopes for all colors. That +% requires using \texttt{RGB} values, which luckily are easy to +% convert here (|cmyk| to |RGB| is a fixed function). % \begin{macrocode} \cs_new_protected:Npn \@@_backend_color_fill_cmyk:n #1 - { \@@_backend_color_fill_cmyk:w #1 \s_@@_stop } -\cs_new_protected:Npn \@@_backend_color_fill_cmyk:w - #1 ~ #2 ~ #3 ~ #4 \s_@@_stop + { \@@_backend_color_cmyk:nw { fill } #1 \s_@@_stop } +\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1 + { \@@_backend_color_cmyk:nw { stroke } #1 \s_@@_stop } +\cs_new_protected:Npn \@@_backend_color_cmyk:nw + #1#2 ~ #3 ~ #4 ~ #5 \s_@@_stop { \use:x { - \@@_backend_color_fill:nnn - { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } - { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } } - { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } } + \@@_backend_color:nnnn + {#1} + { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #5 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #5 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #4 + #5 ) ) } } } } -\cs_new_protected:Npn \@@_backend_color_stroke_cmyk:n #1 - { \@@_backend_select:n { cmyk ~ #1 } } \cs_new_protected:Npn \@@_backend_color_fill_gray:n #1 + { \@@_backend_color_grab:nn { fill } {#1} } +\cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1 + { \@@_backend_color_grab:nn { stroke } {#1} } +\cs_new_protected:Npn \@@_backend_color_gray:nn #1#2 { \use:x { - \@@_backend_color_gray_aux:n - { \fp_eval:n { 100 * (#1) } } + \@@_backend_color_gray_aux:nn + {#1} + { \fp_eval:n { 100 * (#2) } } } } -\cs_new_protected:Npn \@@_backend_color_gray_aux:n #1 - { \@@_backend_color_fill:nnn {#1} {#1} {#1} } -\cs_new_protected:Npn \@@_backend_color_stroke_gray:n #1 - { \@@_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \@@_backend_color_fill_rgb:n #1 +\cs_new_protected:Npn \@@_backend_color_gray_aux:nn #1#2 + { \@@_backend_color:nnn {#1} {#2} {#2} {#2} } +\cs_new_protected:Npn \@@_backend_color_rgb_cmyk:n #1 + { \@@_backend_color_rgb:nw { fill } #1 \s_@@_stop } +\cs_new_protected:Npn \@@_backend_color_rgb_cmyk:n #1 + { \@@_backend_color_rgb:nw { stroke } #1 \s_@@_stop } +\cs_new_protected:Npn \@@_backend_color_rgb:nw + #1#2 ~ #3 ~ #4\s_@@_stop { \use:x { - \@@_backend_color_fill:nnn - { \fp_eval:n { 100 * (#1) } } + \@@_backend_color:nnnn + { fill } { \fp_eval:n { 100 * (#2) } } { \fp_eval:n { 100 * (#3) } } + { \fp_eval:n { 100 * (#4) } } } } -\cs_new_protected:Npn \@@_backend_color_fill:nnn #1#2#3 +\cs_new_protected:Npx \@@_backend_color:nnnn #1#2#3#4 { - \@@_backend_scope:x + \@@_backend_scope:n { - fill = + #1 = " rgb ( - #1 \c_percent_str , #2 \c_percent_str , - #3 \c_percent_str + #3 \c_percent_str , + #4 \c_percent_str ) " } } -\cs_new_protected:Npn \@@_backend_color_stroke_rgb:n #1 - { \@@_backend_select:n { rgb ~ #1 } } % \end{macrocode} % \end{macro} % \end{macro} @@ -1241,6 +1250,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\@@_backend_cm:nnnn} % The four arguments here are floats (the affine matrix), the last diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index 305d1759a12..ae3eb47111d 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 2020-06-18} +% \date{Released 2020-06-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index a66cb0f1456..e2336f5f34f 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 2020-06-18} +% \date{Released 2020-06-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index e10ad17e8f6..13926e07797 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 2020-06-18} +% \date{Released 2020-06-23} % % \maketitle % diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index 8f5e5c407e6..f7ab8e125a0 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2020-06-18}{} + {l3backend-dvipdfmx.def}{2020-06-23}{} {L3 backend support: dvipdfmx} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal: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 bf161ed1b35..44893f6288a 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2020-06-18}{} + {l3backend-dvips.def}{2020-06-23}{} {L3 backend support: dvips} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal: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 a8c31ce3c10..1b437d41f33 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2020-06-18}{} + {l3backend-dvisvgm.def}{2020-06-23}{} {L3 backend support: dvisvgm} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 @@ -356,59 +356,67 @@ \cs_new_protected:Npn \__draw_backend_join_bevel: { \__draw_backend_scope:n { stroke-linejoin="bevel" } } \cs_new_protected:Npn \__draw_backend_color_fill_cmyk:n #1 - { \__draw_backend_color_fill_cmyk:w #1 \s__draw_stop } -\cs_new_protected:Npn \__draw_backend_color_fill_cmyk:w - #1 ~ #2 ~ #3 ~ #4 \s__draw_stop + { \__draw_backend_color_cmyk:nw { fill } #1 \s__draw_stop } +\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1 + { \__draw_backend_color_cmyk:nw { stroke } #1 \s__draw_stop } +\cs_new_protected:Npn \__draw_backend_color_cmyk:nw + #1#2 ~ #3 ~ #4 ~ #5 \s__draw_stop { \use:x { - \__draw_backend_color_fill:nnn - { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } - { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } } - { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } } + \__draw_backend_color:nnnn + {#1} + { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #5 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #5 ) ) } } + { \fp_eval:n { -100 * ( 1 - min ( 1 , #4 + #5 ) ) } } } } -\cs_new_protected:Npn \__draw_backend_color_stroke_cmyk:n #1 - { \__draw_backend_select:n { cmyk ~ #1 } } \cs_new_protected:Npn \__draw_backend_color_fill_gray:n #1 + { \__draw_backend_color_grab:nn { fill } {#1} } +\cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1 + { \__draw_backend_color_grab:nn { stroke } {#1} } +\cs_new_protected:Npn \__draw_backend_color_gray:nn #1#2 { \use:x { - \__draw_backend_color_gray_aux:n - { \fp_eval:n { 100 * (#1) } } + \__draw_backend_color_gray_aux:nn + {#1} + { \fp_eval:n { 100 * (#2) } } } } -\cs_new_protected:Npn \__draw_backend_color_gray_aux:n #1 - { \__draw_backend_color_fill:nnn {#1} {#1} {#1} } -\cs_new_protected:Npn \__draw_backend_color_stroke_gray:n #1 - { \__draw_backend_select:x { gray~ \fp_eval:n {#1} } } -\cs_new_protected:Npn \__draw_backend_color_fill_rgb:n #1 +\cs_new_protected:Npn \__draw_backend_color_gray_aux:nn #1#2 + { \__draw_backend_color:nnn {#1} {#2} {#2} {#2} } +\cs_new_protected:Npn \__draw_backend_color_rgb_cmyk:n #1 + { \__draw_backend_color_rgb:nw { fill } #1 \s__draw_stop } +\cs_new_protected:Npn \__draw_backend_color_rgb_cmyk:n #1 + { \__draw_backend_color_rgb:nw { stroke } #1 \s__draw_stop } +\cs_new_protected:Npn \__draw_backend_color_rgb:nw + #1#2 ~ #3 ~ #4\s__draw_stop { \use:x { - \__draw_backend_color_fill:nnn - { \fp_eval:n { 100 * (#1) } } + \__draw_backend_color:nnnn + { fill } { \fp_eval:n { 100 * (#2) } } { \fp_eval:n { 100 * (#3) } } + { \fp_eval:n { 100 * (#4) } } } } -\cs_new_protected:Npn \__draw_backend_color_fill:nnn #1#2#3 +\cs_new_protected:Npx \__draw_backend_color:nnnn #1#2#3#4 { - \__draw_backend_scope:x + \__draw_backend_scope:n { - fill = + #1 = " rgb ( - #1 \c_percent_str , #2 \c_percent_str , - #3 \c_percent_str + #3 \c_percent_str , + #4 \c_percent_str ) " } } -\cs_new_protected:Npn \__draw_backend_color_stroke_rgb:n #1 - { \__draw_backend_select:n { rgb ~ #1 } } \cs_new_protected:Npn \__draw_backend_cm:nnnn #1#2#3#4 { \__draw_backend_scope:n diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def index 688d84b9c79..a9f15616f07 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdfmode.def}{2020-06-18}{} + {l3backend-pdfmode.def}{2020-06-23}{} {L3 backend support: PDF mode} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def index 2a093aae8dc..b4d1c91f336 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def @@ -25,7 +25,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xdvipdfmx.def}{2020-06-18}{} + {l3backend-xdvipdfmx.def}{2020-06-23}{} {L3 backend support: xdvipdfmx} \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 -- cgit v1.2.3