diff options
author | Norbert Preining <norbert@preining.info> | 2023-10-11 03:02:59 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-10-11 03:02:59 +0000 |
commit | 366cf31a771ded1f10860be3212058d48020398d (patch) | |
tree | 99ee483a9fd05dfd4ec908582abb44028bdffbd1 /macros/latex/contrib/l3backend | |
parent | 48eedda2cb4d2644886b862409b24a1d8e9a136f (diff) |
CTAN sync 202310110302
Diffstat (limited to 'macros/latex/contrib/l3backend')
-rw-r--r-- | macros/latex/contrib/l3backend/CHANGELOG.md | 8 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/README.md | 2 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-basics.dtx | 62 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-box.dtx | 30 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-code.pdf | bin | 934066 -> 934368 bytes | |||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-color.dtx | 54 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-draw.dtx | 90 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-graphics.dtx | 40 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-header.dtx | 2 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-opacity.dtx | 24 | ||||
-rw-r--r-- | macros/latex/contrib/l3backend/l3backend-pdf.dtx | 120 |
11 files changed, 223 insertions, 209 deletions
diff --git a/macros/latex/contrib/l3backend/CHANGELOG.md b/macros/latex/contrib/l3backend/CHANGELOG.md index 5877ce53d3..94da9cacbe 100644 --- a/macros/latex/contrib/l3backend/CHANGELOG.md +++ b/macros/latex/contrib/l3backend/CHANGELOG.md @@ -6,6 +6,11 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-10-10] + +### Changed +- Track `expl3` changes + ## [2023-04-19] ### Changed @@ -296,7 +301,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/2023-04-19...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-10...HEAD +[2023-10-10]: https://github.com/latex3/latex3/compare/2023-04-19...2023-10-10 [2023-04-19]: https://github.com/latex3/latex3/compare/2023-03-30...2023-04-19 [2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-16...2023-03-30 [2023-01-16]: https://github.com/latex3/latex3/compare/2022-10-26...2023-01-16 diff --git a/macros/latex/contrib/l3backend/README.md b/macros/latex/contrib/l3backend/README.md index 0aa2b14b5f..883bd5d1c6 100644 --- a/macros/latex/contrib/l3backend/README.md +++ b/macros/latex/contrib/l3backend/README.md @@ -1,7 +1,7 @@ LaTeX3 Backend Drivers ====================== -Release 2023-04-19 +Release 2023-10-10 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/macros/latex/contrib/l3backend/l3backend-basics.dtx b/macros/latex/contrib/l3backend/l3backend-basics.dtx index cf4ad444ba..a6f7ea6d1c 100644 --- a/macros/latex/contrib/l3backend/l3backend-basics.dtx +++ b/macros/latex/contrib/l3backend/l3backend-basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -70,27 +70,27 @@ % \begin{macrocode} \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2023-04-19}{} + {l3backend-dvipdfmx.def}{2023-10-10}{} {L3 backend support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-dvips.def}{2023-04-19}{} + {l3backend-dvips.def}{2023-10-10}{} {L3 backend support: dvips} %</dvips> %<*dvisvgm> - {l3backend-dvisvgm.def}{2023-04-19}{} + {l3backend-dvisvgm.def}{2023-10-10}{} {L3 backend support: dvisvgm} %</dvisvgm> %<*luatex> - {l3backend-luatex.def}{2023-04-19}{} + {l3backend-luatex.def}{2023-10-10}{} {L3 backend support: PDF output (LuaTeX)} %</luatex> %<*pdftex> - {l3backend-pdftex.def}{2023-04-19}{} + {l3backend-pdftex.def}{2023-10-10}{} {L3 backend support: PDF output (pdfTeX)} %</pdftex> %<*xetex> - {l3backend-xetex.def}{2023-04-19}{} + {l3backend-xetex.def}{2023-10-10}{} {L3 backend support: XeTeX} %</xetex> % \end{macrocode} @@ -137,8 +137,7 @@ % \begin{macro} % { % \__kernel_backend_literal:e, -% \__kernel_backend_literal:n, -% \__kernel_backend_literal:x +% \__kernel_backend_literal:n % } % The one shared function for all backends is access to the basic % \tn{special} primitive: it has slightly odd expansion behaviour @@ -147,7 +146,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } % \end{macrocode} % \end{macro} % @@ -175,7 +173,7 @@ % \end{macrocode} % % \begin{macro} -% {\__kernel_backend_literal_postscript:n, \__kernel_backend_literal_postscript:x} +% {\__kernel_backend_literal_postscript:n, \__kernel_backend_literal_postscript:e} % Literal PostScript can be included using a few low-level formats. Here, % we use the form with no positioning: this is overall more convenient as % a wrapper. Note that this does require that where position is important, @@ -183,18 +181,18 @@ % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_literal_postscript:n #1 { \__kernel_backend_literal:n { ps:: #1 } } -\cs_generate_variant:Nn \__kernel_backend_literal_postscript:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_postscript:n { e } % \end{macrocode} % \end{macro} % -% \begin{macro}{\__kernel_backend_postscript:n, \__kernel_backend_postscript:x} +% \begin{macro}{\__kernel_backend_postscript:n, \__kernel_backend_postscript:e} % PostScript data that does have positioning, and also applying % a shift to |SDict| (which is not done automatically by % |ps:| or |ps::|, in contrast to |!| or |"|). % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_postscript:n #1 { \__kernel_backend_literal:n { ps: SDict ~ begin ~ #1 ~ end } } -\cs_generate_variant:Nn \__kernel_backend_postscript:n { x } +\cs_generate_variant:Nn \__kernel_backend_postscript:n { e } % \end{macrocode} % \end{macro} % @@ -265,7 +263,7 @@ % to have more code in Lua means we create two independent files using % shared DocStrip code. % -% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:x} +% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:e} % This is equivalent to \verb|\special{pdf:}| but the engine can % track it. Without the \texttt{direct} keyword everything is kept in % sync: the transformation matrix is set to the current point automatically. @@ -282,11 +280,11 @@ %</pdftex> { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } % \end{macrocode} % \end{macro} % -% \begin{macro}{\__kernel_backend_literal_page:n} +% \begin{macro}{\__kernel_backend_literal_page:n, \__kernel_backend_literal_page:e} % Page literals are pretty simple. To avoid an expansion, we write out % by hand. % \begin{macrocode} @@ -300,6 +298,16 @@ %</pdftex> page { \exp_not:n {#1} } } +\cs_new_protected:Npn \__kernel_backend_literal_page:e #1 + { +%<*luatex> + \tex_pdfextension:D literal ~ +%</luatex> +%<*pdftex> + \tex_pdfliteral:D +%</pdftex> + page {#1} + } % \end{macrocode} % \end{macro} % @@ -327,7 +335,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\__kernel_backend_matrix:n, \__kernel_backend_matrix:x} +% \begin{macro}{\__kernel_backend_matrix:n, \__kernel_backend_matrix:e} % Here the appropriate function is set up to insert an affine matrix % into the PDF. With \pdfTeX{} and \LuaTeX{} in direct PDF output mode there % is a primitive for this, which only needs the rotation/scaling/skew part. @@ -342,7 +350,7 @@ %</pdftex> { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_matrix:n { x } +\cs_generate_variant:Nn \__kernel_backend_matrix:n { e } % \end{macrocode} % \end{macro} % @@ -362,14 +370,14 @@ % for both backends, with some \texttt{clean up} for \XeTeX{} as % required. % -% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:x} +% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:e} % Undocumented but equivalent to \pdfTeX{}'s |literal| keyword. It's similar to % be not the same as the documented |contents| keyword as that adds a |q|/|Q| % pair. % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_literal_pdf:n #1 { \__kernel_backend_literal:n { pdf:literal~ #1 } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } % \end{macrocode} % \end{macro} % @@ -404,7 +412,7 @@ %<*dvisvgm> % \end{macrocode} % -% \begin{macro}{\__kernel_backend_literal_svg:n, \__kernel_backend_literal_svg:x} +% \begin{macro}{\__kernel_backend_literal_svg:n, \__kernel_backend_literal_svg:e} % Unlike the other backends, the requirements for making SVG files mean % that we can't conveniently transform all operations to the current point. % That makes life a bit more tricky later as that needs to be accounted for. @@ -413,7 +421,7 @@ % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_literal_svg:n #1 { \__kernel_backend_literal:n { dvisvgm:raw~ #1 { ?nl } } } -\cs_generate_variant:Nn \__kernel_backend_literal_svg:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_svg:n { e } % \end{macrocode} % \end{macro} % @@ -427,8 +435,8 @@ % \end{variable} % % \begin{macro}{\__kernel_backend_scope_begin:, \__kernel_backend_scope_end:} -% \begin{macro}{\__kernel_backend_scope_begin:n, \__kernel_backend_scope_begin:x} -% \begin{macro}{\__kernel_backend_scope:n, \__kernel_backend_scope:x} +% \begin{macro}{\__kernel_backend_scope_begin:n, \__kernel_backend_scope_begin:e} +% \begin{macro}{\__kernel_backend_scope:n, \__kernel_backend_scope:e} % In SVG, the need to attach concepts to a scope means we need to be sure we % will close all of the open scopes. That is easiest done if we only need % an outer \enquote{wrapper} \texttt{begin}/\texttt{end} pair, and within @@ -464,13 +472,13 @@ \group_begin: \int_gset:Nn \g__kernel_backend_scope_int { 1 } } -\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { x } +\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { e } \cs_new_protected:Npn \__kernel_backend_scope:n #1 { \__kernel_backend_literal_svg:n { <g ~ #1 > } \int_gincr:N \g__kernel_backend_scope_int } -\cs_generate_variant:Nn \__kernel_backend_scope:n { x } +\cs_generate_variant:Nn \__kernel_backend_scope:n { e } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/l3backend/l3backend-box.dtx b/macros/latex/contrib/l3backend/l3backend-box.dtx index 6d8d4ede02..9bc74a1611 100644 --- a/macros/latex/contrib/l3backend/l3backend-box.dtx +++ b/macros/latex/contrib/l3backend/l3backend-box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -82,7 +82,7 @@ \__kernel_backend_literal_postscript:n { Resolution~72~div~VResolution~72~div~scale } \__kernel_backend_literal_postscript:n { DVImag~dup~scale } - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { 0 ~ \dim_to_decimal_in_bp:n { \box_dp:N #1 } ~ @@ -111,7 +111,7 @@ { \__kernel_backend_scope_begin: \__kernel_backend_align_begin: - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { \fp_compare:nNnTF {#2} = \c_zero_fp { 0 } @@ -134,7 +134,7 @@ { \__kernel_backend_scope_begin: \__kernel_backend_align_begin: - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { \fp_eval:n { round ( #2 , 5 ) } ~ \fp_eval:n { round ( #3 , 5 ) } ~ @@ -169,7 +169,7 @@ \cs_new_protected:Npn \@@_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -204,7 +204,7 @@ \fp_compare:nNnT \l_@@_backend_cos_fp = \c_zero_fp { \fp_zero:N \l_@@_backend_cos_fp } \fp_set:Nn \l_@@_backend_sin_fp { round ( sind ( #2 ) , 5 ) } - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_use:N \l_@@_backend_cos_fp \c_space_tl \fp_compare:nNnTF \l_@@_backend_sin_fp = \c_zero_fp @@ -234,7 +234,7 @@ \cs_new_protected:Npn \@@_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_eval:n { round ( #2 , 5 ) } ~ 0~0~ @@ -263,7 +263,7 @@ \cs_new_protected:Npn \@@_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -293,7 +293,7 @@ \cs_new_protected:Npn \@@_backend_rotate_aux:Nn #1#2 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#2} = \c_zero_fp @@ -314,7 +314,7 @@ \cs_new_protected:Npn \@@_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ @@ -350,9 +350,9 @@ \cs_new_protected:Npn \@@_backend_clip:N #1 { \int_gincr:N \g__kernel_clip_path_int - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > } - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { < path ~ d = @@ -387,7 +387,7 @@ scale ( 1 , -1 ) " } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url ( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int ) " @@ -416,7 +416,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_rotate:Nn #1#2 { - \__kernel_backend_scope_begin:x + \__kernel_backend_scope_begin:e { transform = " @@ -437,7 +437,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_scale:Nnn #1#2#3 { - \__kernel_backend_scope_begin:x + \__kernel_backend_scope_begin:e { transform = " diff --git a/macros/latex/contrib/l3backend/l3backend-code.pdf b/macros/latex/contrib/l3backend/l3backend-code.pdf Binary files differindex 6f9ea9a52e..0131abee16 100644 --- a/macros/latex/contrib/l3backend/l3backend-code.pdf +++ b/macros/latex/contrib/l3backend/l3backend-code.pdf diff --git a/macros/latex/contrib/l3backend/l3backend-color.dtx b/macros/latex/contrib/l3backend/l3backend-color.dtx index 5049aae5f9..73eee0ca2c 100644 --- a/macros/latex/contrib/l3backend/l3backend-color.dtx +++ b/macros/latex/contrib/l3backend/l3backend-color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -322,7 +322,7 @@ % \begin{macro}[EXP]{\@@_backend_devicen_colorants:n} % \begin{macro}[EXP]{\@@_backend_devicen_colorants:w} % \begin{macrocode} -\cs_new:Npx \@@_backend_devicen_colorants:n #1 +\cs_new:Npe \@@_backend_devicen_colorants:n #1 { \exp_not:N \tl_if_blank:nF {#1} { @@ -377,7 +377,7 @@ % \begin{macro} % { % \@@_backend_separation_init:nnnnn, -% \@@_backend_separation_init:nxxnn +% \@@_backend_separation_init:neenn % } % \begin{macro} % {\@@_backend_separation_init_aux:nnnnnn} @@ -402,17 +402,17 @@ % ideas from \url{https://tex.stackexchange.com/q/560093} plus using % the PostScript manual for other aspects. % \begin{macrocode} -\cs_new_protected:Npx \@@_backend_separation_init:nnnnn #1#2#3#4#5 +\cs_new_protected:Npe \@@_backend_separation_init:nnnnn #1#2#3#4#5 { \bool_if:NT \g__kernel_backend_header_bool { - \exp_args:Nx \__kernel_backend_first_shipout:n + \exp_not:N \exp_args:Ne \__kernel_backend_first_shipout:n { \exp_not:N \@@_backend_separation_init_aux:nnnnnn { \exp_not:N \int_use:N \g_@@_model_int } {#1} {#2} {#3} {#4} {#5} } - \prop_gput:Nxx \exp_not:N \g_@@_backend_colorant_prop + \prop_gput:Nee \exp_not:N \g_@@_backend_colorant_prop { / \exp_not:N \str_convert_pdfname:n {#1} } { << ~ @@ -423,7 +423,7 @@ } } } -\cs_generate_variant:Nn \@@_backend_separation_init:nnnnn { nxx } +\cs_generate_variant:Nn \@@_backend_separation_init:nnnnn { nee } \cs_new_protected:Npn \@@_backend_separation_init_aux:nnnnnn #1#2#3#4#5#6 { \__kernel_backend_literal:e @@ -552,7 +552,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_separation_init_CIELAB:nnn #1#2#3 { - \@@_backend_separation_init:nxxnn + \@@_backend_separation_init:neenn {#2} { /CIEBasedABC ~ @@ -678,7 +678,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select_iccbased:nn #1#2 { - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { <style> @color-profile ~ @@ -712,7 +712,7 @@ % \begin{macrocode} %<*dvipdfmx|xetex> \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2 - { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } + { \__kernel_backend_literal:e { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } %</dvipdfmx|xetex> %<*luatex|pdftex> \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2 @@ -734,7 +734,7 @@ { \cs_if_exist_p:N \pdfmanagement_if_active_p: } { \pdfmanagement_if_active_p: } { - \use:x + \use:e { \pdfmanagement_add:nnn { Page / Resources / ColorSpace } @@ -759,7 +759,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5 { - \pdf_object_unnamed_write:nx { dict } + \pdf_object_unnamed_write:ne { dict } { /FunctionType ~ 2 /Domain ~ [0 ~ 1] @@ -767,19 +767,19 @@ /C0 ~ [#4] ~ /C1 ~ [#5] /N ~ 1 } - \exp_args:Nx \@@_backend_separation_init:nn + \exp_args:Ne \@@_backend_separation_init:nn { \str_convert_pdfname:n {#1} } {#2} \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int } } \cs_new_protected:Npn \@@_backend_separation_init:nn #1#2 { - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g_@@_model_int } \pdf_object_write:nnn { color \int_use:N \g_@@_model_int } { array } { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: } } - \prop_gput:Nnx \g_@@_backend_colorant_prop { /#1 } + \prop_gput:Nne \g_@@_backend_colorant_prop { /#1 } { \pdf_object_ref_last: } } % \end{macrocode} @@ -791,7 +791,7 @@ \pdf_object_if_exist:nF { @@_illuminant_CIELAB_ #1 } { \pdf_object_new:n { @@_illuminant_CIELAB_ #1 } - \pdf_object_write:nnx { @@_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nne { @@_illuminant_CIELAB_ #1 } { array } { /Lab ~ << @@ -820,7 +820,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_devicen_init:nnn #1#2#3 { - \pdf_object_unnamed_write:nx { stream } + \pdf_object_unnamed_write:ne { stream } { { /FunctionType ~ 4 ~ @@ -842,7 +842,7 @@ } { {#3} } } - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g_@@_model_int } \pdf_object_write:nnn { color \int_use:N \g_@@_model_int } { array } @@ -875,7 +875,7 @@ \pdf_object_if_exist:nF { @@_icc_ #1 } { \pdf_object_new:n { @@_icc_ #1 } - \pdf_object_write:nnx { @@_icc_ #1 } { fstream } + \pdf_object_write:nne { @@_icc_ #1 } { fstream } { { /N ~ \exp_not:n { #2 } ~ @@ -884,7 +884,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } } \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int } } @@ -906,7 +906,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } } \@@_backend_init_resource:n { Default #2 } } @@ -965,12 +965,12 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_fill_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_protected:Npn \@@_backend_stroke_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_eq:NN \@@_backend_fill_devicen:nn \@@_backend_fill_separation:nn @@ -1171,7 +1171,7 @@ \cs_new_protected:Npn \@@_backend_stroke_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { - \use:x + \use:e { \@@_backend:nnn { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } @@ -1181,7 +1181,7 @@ } \cs_new_protected:Npn \@@_backend_stroke_gray:n #1 { - \use:x + \use:e { \@@_backend_stroke_gray_aux:n { \fp_eval:n { 100 * (#1) } } @@ -1194,7 +1194,7 @@ \cs_new_protected:Npn \@@_backend_stroke_rgb:w #1 ~ #2 ~ #3 \s_@@_stop { - \use:x + \use:e { \@@_backend:nnn { \fp_eval:n { 100 * (#1) } } @@ -1202,7 +1202,7 @@ { \fp_eval:n { 100 * (#3) } } } } -\cs_new_protected:Npx \@@_backend:nnn #1#2#3 +\cs_new_protected:Npe \@@_backend:nnn #1#2#3 { \__kernel_backend_scope:n { diff --git a/macros/latex/contrib/l3backend/l3backend-draw.dtx b/macros/latex/contrib/l3backend/l3backend-draw.dtx index 170f4090cd..8fa2fda940 100644 --- a/macros/latex/contrib/l3backend/l3backend-draw.dtx +++ b/macros/latex/contrib/l3backend/l3backend-draw.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -66,12 +66,12 @@ %<*dvips> % \end{macrocode} % -% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:x} +% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:e} % The same as literal PostScript: same arguments about positioning apply % her. % \begin{macrocode} \cs_new_eq:NN \@@_backend_literal:n \__kernel_backend_literal_postscript:n -\cs_generate_variant:Nn \@@_backend_literal:n { x } +\cs_generate_variant:Nn \@@_backend_literal:n { e } % \end{macrocode} % \end{macro} % @@ -125,7 +125,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_moveto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ moveto @@ -133,7 +133,7 @@ } \cs_new_protected:Npn \@@_backend_lineto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ lineto @@ -141,7 +141,7 @@ } \cs_new_protected:Npn \@@_backend_rectangle:nnnn #1#2#3#4 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ @@ -150,7 +150,7 @@ } \cs_new_protected:Npn \@@_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -205,7 +205,7 @@ \@@_backend_literal:n { grestore } \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -221,14 +221,14 @@ } \cs_new_protected:Npn \@@_backend_fill: { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } fill } \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -239,7 +239,7 @@ } \cs_new_protected:Npn \@@_backend_fillstroke: { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } fill @@ -250,7 +250,7 @@ \@@_backend_literal:n { grestore } \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -266,7 +266,7 @@ { \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -293,7 +293,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_dash_pattern:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { [ \exp_args:Nf \use:n @@ -306,7 +306,7 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \@@_backend_linewidth:n #1 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 @@ -400,11 +400,11 @@ % % \subsubsection{Drawing} % -% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:x} +% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:e} % Pass data through using a dedicated interface. % \begin{macrocode} \cs_new_eq:NN \@@_backend_literal:n \__kernel_backend_literal_pdf:n -\cs_generate_variant:Nn \@@_backend_literal:n { x } +\cs_generate_variant:Nn \@@_backend_literal:n { e } % \end{macrocode} % \end{macro} % @@ -434,17 +434,17 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_moveto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m } } \cs_new_protected:Npn \@@_backend_lineto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l } } \cs_new_protected:Npn \@@_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -454,7 +454,7 @@ } \cs_new_protected:Npn \@@_backend_rectangle:nnnn #1#2#3#4 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -500,17 +500,17 @@ { \@@_backend_literal:n { s } } \cs_new_protected:Npn \@@_backend_fill: { - \@@_backend_literal:x + \@@_backend_literal:e { f \bool_if:NT \g_@@_draw_eor_bool * } } \cs_new_protected:Npn \@@_backend_fillstroke: { - \@@_backend_literal:x + \@@_backend_literal:e { B \bool_if:NT \g_@@_draw_eor_bool * } } \cs_new_protected:Npn \@@_backend_clip: { - \@@_backend_literal:x + \@@_backend_literal:e { W \bool_if:NT \g_@@_draw_eor_bool * } } \cs_new_protected:Npn \@@_backend_discardpath: @@ -532,7 +532,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_dash_pattern:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { [ \exp_args:Nf \use:n @@ -545,11 +545,11 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \@@_backend_linewidth:n #1 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \@@_backend_literal:x { #1 ~ M } } + { \@@_backend_literal:e { #1 ~ M } } \cs_new_protected:Npn \@@_backend_cap_butt: { \@@_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \@@_backend_cap_round: @@ -594,20 +594,20 @@ %<*dvipdfmx|xetex> \cs_new_protected:Npn \@@_backend_cm_aux:nnnn #1#2#3#4 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#1} = \c_zero_fp { 0 } { \fp_eval:n { round ( -#1 , 5 ) } } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ \fp_eval:n { round ( #3 , 5 ) } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#4} = \c_zero_fp @@ -678,7 +678,7 @@ %<*dvipdfmx|xetex> \cs_new_protected:Npn \@@_backend_cm_decompose:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_cm_decompose_auxi:nnnnN { \fp_eval:n { (#1 + #4) / 2 } } @@ -690,7 +690,7 @@ } \cs_new_protected:Npn \@@_backend_cm_decompose_auxi:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_cm_decompose_auxii:nnnnN { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } @@ -702,7 +702,7 @@ } \cs_new_protected:Npn \@@_backend_cm_decompose_auxii:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_cm_decompose_auxiii:nnnnN { \fp_eval:n { ( #4 - #3 ) / 2 } } @@ -760,11 +760,11 @@ %<*dvisvgm> % \end{macrocode} % -% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:x} +% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:e} % The same as the more general literal call. % \begin{macrocode} \cs_new_eq:NN \@@_backend_literal:n \__kernel_backend_literal_svg:n -\cs_generate_variant:Nn \@@_backend_literal:n { x } +\cs_generate_variant:Nn \@@_backend_literal:n { e } % \end{macrocode} % \end{macro} % @@ -834,7 +834,7 @@ } \cs_new_protected:Npn \@@_backend_add_to_path:n #1 { - \tl_gset:Nx \g_@@_backend_path_tl + \tl_gset:Ne \g_@@_backend_path_tl { \g_@@_backend_path_tl \tl_if_empty:NF \g_@@_backend_path_tl { \c_space_tl } @@ -885,7 +885,7 @@ \bool_if:NTF \g_@@_draw_clip_bool { \int_gincr:N \g__kernel_clip_path_int - \@@_backend_literal:x + \@@_backend_literal:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } @@ -897,14 +897,14 @@ #1 /> } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" } } { - \@@_backend_literal:x + \@@_backend_literal:e { <path ~ d=" \g_@@_backend_path_tl " ~ #1 /> } } \tl_gclear:N \g_@@_backend_path_tl @@ -930,14 +930,14 @@ \bool_if:NT \g_@@_draw_clip_bool { \int_gincr:N \g__kernel_clip_path_int - \@@_backend_literal:x + \@@_backend_literal:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } <path~d=" \g_@@_backend_path_tl "/> { ?nl } < /clipPath > } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" @@ -968,7 +968,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_dash_pattern:nn #1#2 { - \use:x + \use:e { \@@_backend_dash_aux:nn { \clist_map_function:nN {#1} \@@_backend_dash:n } @@ -979,7 +979,7 @@ { , \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \@@_backend_dash_aux:nn #1#2 { - \__kernel_backend_scope:x + \__kernel_backend_scope:e { stroke-dasharray = " @@ -991,9 +991,9 @@ } } \cs_new_protected:Npn \@@_backend_linewidth:n #1 - { \__kernel_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } + { \__kernel_backend_scope:e { stroke-width=" \dim_to_decimal:n {#1} " } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \__kernel_backend_scope:x { stroke-miterlimit=" #1 " } } + { \__kernel_backend_scope:e { stroke-miterlimit=" #1 " } } \cs_new_protected:Npn \@@_backend_cap_butt: { \__kernel_backend_scope:n { stroke-linecap="butt" } } \cs_new_protected:Npn \@@_backend_cap_round: diff --git a/macros/latex/contrib/l3backend/l3backend-graphics.dtx b/macros/latex/contrib/l3backend/l3backend-graphics.dtx index da7dc7516e..610785e348 100644 --- a/macros/latex/contrib/l3backend/l3backend-graphics.dtx +++ b/macros/latex/contrib/l3backend/l3backend-graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -107,7 +107,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_include_eps:n #1 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { PSfile = #1 \c_space_tl llx = \dim_to_decimal_in_bp:n \l_@@_llx_dim \c_space_tl @@ -185,7 +185,7 @@ { \int_zero:N \l_@@_page_int \tl_clear:N \l_@@_pagebox_tl - \tl_set:Nx \l_@@_attr_tl + \tl_set:Ne \l_@@_attr_tl { \tl_if_empty:NF \l_@@_decodearray_str { :D \l_@@_decodearray_str } @@ -202,7 +202,7 @@ { \tl_clear:N \l_@@_decodearray_str \bool_set_false:N \l_@@_interpolate_bool - \tl_set:Nx \l_@@_attr_tl + \tl_set:Ne \l_@@_attr_tl { : \l_@@_pagebox_tl \int_compare:nNnT \l_@@_page_int > 1 @@ -214,7 +214,7 @@ } \cs_new_protected:Npn \@@_backend_getbb_auxi:n #1 { - \@@_bb_restore:xF { #1 \l_@@_attr_tl } + \@@_bb_restore:eF { #1 \l_@@_attr_tl } { \@@_backend_getbb_auxii:n {#1} } } % \end{macrocode} @@ -230,7 +230,7 @@ { \@@_backend_dequote:w #1 " #1 " \s_@@_stop } \int_const:cn { c_@@_ #1 \l_@@_attr_tl _int } { \tex_the:D \tex_pdflastximage:D } - \@@_bb_save:x { #1 \l_@@_attr_tl } + \@@_bb_save:e { #1 \l_@@_attr_tl } } \cs_new_protected:Npn \@@_backend_getbb_auxiii:n #1 { @@ -310,7 +310,7 @@ \l_@@_backend_dir_str \l_@@_backend_name_str \l_@@_backend_ext_str - \exp_args:Nx \@@_backend_getbb_eps:nn + \exp_args:Ne \@@_backend_getbb_eps:nn { \exp_args:Ne \__kernel_file_name_quote:n { @@ -336,7 +336,7 @@ { \file_parse_full_name:nNNN {#1} \l_@@_backend_dir_str \l_@@_backend_name_str \l_@@_backend_ext_str - \exp_args:Nx \@@_backend_include_pdf:n + \exp_args:Ne \@@_backend_include_pdf:n { \exp_args:Ne \__kernel_file_name_quote:n { @@ -436,7 +436,7 @@ % \@@_backend_include_bmp:n , % } % \begin{macro}{\@@_backend_include_auxi:nn} -% \begin{macro}{\@@_backend_include_auxii:nnn, \@@_backend_include_auxii:xnn} +% \begin{macro}{\@@_backend_include_auxii:nnn, \@@_backend_include_auxii:enn} % \begin{macro}{\@@_backend_include_auxiii:nnn} % The special syntax depends on the file type. There is a difference in % how PDF graphics are best handled between |dvipdfmx| and \XeTeX{}: for @@ -445,7 +445,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_include_eps:n #1 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { PSfile = #1 \c_space_tl llx = \dim_to_decimal_in_bp:n \l_@@_llx_dim \c_space_tl @@ -472,7 +472,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_include_auxi:nn #1#2 { - \@@_backend_include_auxii:xnn + \@@_backend_include_auxii:enn { \tl_if_empty:NF \l_@@_pagebox_tl { : \l_@@_pagebox_tl } @@ -489,12 +489,12 @@ { \int_if_exist:cTF { c_@@_ #2#1 _int } { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:usexobj~@graphic \int_use:c { c_@@_ #2#1 _int } } } { \@@_backend_include_auxiii:nnn {#2} {#1} {#3} } } -\cs_generate_variant:Nn \@@_backend_include_auxii:nnn { x } +\cs_generate_variant:Nn \@@_backend_include_auxii:nnn { e } % \end{macrocode} % Inclusion using the specials is relatively straight-forward, but there % is one wrinkle. To get the |pagebox| correct for PDF graphics in all cases, @@ -505,7 +505,7 @@ { \int_gincr:N \g_@@_track_int \int_const:cn { c_@@_ #1#2 _int } { \g_@@_track_int } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:#3~ @graphic \int_use:c { c_@@_ #1#2 _int } ~ @@ -612,7 +612,7 @@ } \cs_new_protected:Npn \@@_backend_getbb_auxiv:nnNnn #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_getbb_auxv:nNnn {#2} #3 { : #1 #4 } { @@ -750,10 +750,10 @@ } \cs_new_protected:Npn \@@_backend_getbb_svg_auxi:nNn #1#2#3 { - \use:x + \use:e { \cs_set_protected:Npn \@@_backend_getbb_svg_auxii:w - ####1 \tl_to_str:n {#1} = ####2 \tl_to_str:n {#1} = ####3 + ##1 \tl_to_str:n {#1} = ##2 \tl_to_str:n {#1} = ##3 \s_@@_stop } { @@ -772,7 +772,7 @@ ##2 \s_@@_stop } } - \use:x + \use:e { \@@_backend_getbb_svg_auxii:w #3 \tl_to_str:n {#1} = \tl_to_str:n {#1} = @@ -855,7 +855,7 @@ { \@@_backend_include:nn { pdffile } {#1} } \cs_new_protected:Npn \@@_backend_include:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { #1 = #2 \c_space_tl llx = \dim_to_decimal_in_bp:n \l_@@_llx_dim \c_space_tl @@ -892,7 +892,7 @@ { \hbox:n { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { dvisvgm:img~ \dim_to_decimal:n { \l_@@_urx_dim } ~ diff --git a/macros/latex/contrib/l3backend/l3backend-header.dtx b/macros/latex/contrib/l3backend/l3backend-header.dtx index 0cb6767908..5bd4bb4808 100644 --- a/macros/latex/contrib/l3backend/l3backend-header.dtx +++ b/macros/latex/contrib/l3backend/l3backend-header.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/macros/latex/contrib/l3backend/l3backend-opacity.dtx b/macros/latex/contrib/l3backend/l3backend-opacity.dtx index 033ab150f0..9b994ac16e 100644 --- a/macros/latex/contrib/l3backend/l3backend-opacity.dtx +++ b/macros/latex/contrib/l3backend/l3backend-opacity.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -73,7 +73,7 @@ % % \begin{macro}{\@@_backend_select:n,\@@_backend_select_aux:n} % \begin{macro}{\@@_backend_fill:n, \@@_backend_stroke:n} -% \begin{macro}{\@@_backend:nnn, \@@_backend:xnn} +% \begin{macro}{\@@_backend:nnn, \@@_backend:enn} % No stack so set values directly. The need to deal with Distiller and % Ghostscript separately means we use a common auxiliary: the two % systems require different PostScript for transparency. This is @@ -83,7 +83,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select:n #1 { - \exp_args:Nx \@@_backend_select_aux:n + \exp_args:Ne \@@_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \@@_backend_select_aux:n #1 @@ -93,14 +93,14 @@ } \cs_new_protected:Npn \@@_backend_fill:n #1 { - \@@_backend:xnn + \@@_backend:enn { \fp_eval:n { min(max(0,#1),1) } } { fill } { ca } } \cs_new_protected:Npn \@@_backend_stroke:n #1 { - \@@_backend:xnn + \@@_backend:enn { \fp_eval:n { min(max(0,#1),1) } } { stroke } { CA } @@ -124,7 +124,7 @@ ifelse } } -\cs_generate_variant:Nn \@@_backend:nnn { x } +\cs_generate_variant:Nn \@@_backend:nnn { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -170,7 +170,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select:n #1 { - \exp_args:Nx \@@_backend_select_aux:n + \exp_args:Ne \@@_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \@@_backend_select_aux:n #1 @@ -210,19 +210,19 @@ % \end{macro} % % \begin{macro}{\@@_backend_fill:n, \@@_backend_stroke:n} -% \begin{macro}{\@@_backend_fillstroke:nn, \@@_backend_fillstroke:xx} +% \begin{macro}{\@@_backend_fillstroke:nn, \@@_backend_fillstroke:ee} % For separate fill and stroke, we need to work out if we need to do % more work or if we can stick to a single setting. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_fill:n #1 { - \@@_backend_fill_stroke:xx + \@@_backend_fill_stroke:ee { \fp_eval:n { min(max(0,#1),1) } } \l_@@_backend_stroke_tl } \cs_new_protected:Npn \@@_backend_stroke:n #1 { - \@@_backend_fill_stroke:xx + \@@_backend_fill_stroke:ee \l_@@_backend_fill_tl { \fp_eval:n { min(max(0,#1),1) } } } @@ -249,7 +249,7 @@ \group_insert_after:N \@@_backend_reset: } } -\cs_generate_variant:Nn \@@_backend_fill_stroke:nn { xx } +\cs_generate_variant:Nn \@@_backend_fill_stroke:nn { ee } % \end{macrocode} % \end{macro} % \end{macro} @@ -274,7 +274,7 @@ \cs_new_protected:Npn \@@_backend_stroke:n #1 { \@@_backend:nn { {#1} } { stroke- } } \cs_new_protected:Npn \@@_backend:nn #1#2 - { \__kernel_backend_scope:x { #2 opacity = " \fp_eval:n { min(max(0,#1),1) } " } } + { \__kernel_backend_scope:e { #2 opacity = " \fp_eval:n { min(max(0,#1),1) } " } } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/l3backend/l3backend-pdf.dtx b/macros/latex/contrib/l3backend/l3backend-pdf.dtx index a95aff4070..8d942551bb 100644 --- a/macros/latex/contrib/l3backend/l3backend-pdf.dtx +++ b/macros/latex/contrib/l3backend/l3backend-pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -91,12 +91,12 @@ %<*dvips> % \end{macrocode} % -% \begin{macro}{\@@_backend_pdfmark:n, \@@_backend_pdfmark:x} +% \begin{macro}{\@@_backend_pdfmark:n, \@@_backend_pdfmark:e} % Used often enough it should be a separate function. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_pdfmark:n #1 { \__kernel_backend_postscript:n { mark #1 ~ pdfmark } } -\cs_generate_variant:Nn \@@_backend_pdfmark:n { x } +\cs_generate_variant:Nn \@@_backend_pdfmark:n { e } % \end{macrocode} % \end{macro} % @@ -138,7 +138,7 @@ % % \begin{macro} % { -% \@@_backend_object_write:nnn, \@@_backend_object_write:nnx, +% \@@_backend_object_write:nnn, \@@_backend_object_write:nne, % \@@_backend_object_write_aux:nnn % } % \begin{macro} @@ -159,10 +159,10 @@ { \@@_backend_object_ref:n {#1} } {#2} {#3} } -\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \@@_backend_object_write:nnn { nne } \cs_new_protected:Npn \@@_backend_object_write_aux:nnn #1#2#3 { - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { /_objdef ~ #1 /type @@ -179,17 +179,17 @@ } \cs_new_protected:Npn \@@_backend_object_write_array:nn #1#2 { - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { #1 ~0~ [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL } } \cs_new_protected:Npn \@@_backend_object_write_dict:nn #1#2 { - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { #1 << \exp_not:n {#2} >> /PUT } } \cs_new_protected:Npn \@@_backend_object_write_fstream:nn #1#2 { - \exp_args:Nx + \exp_args:Ne \@@_backend_object_write_fstream:nnn {#1} #2 } \cs_new_protected:Npn \@@_backend_object_write_fstream:nnn #1#2#3 @@ -204,7 +204,7 @@ } \cs_new_protected:Npn \@@_backend_object_write_stream:nn #1#2 { - \exp_args:Nx + \exp_args:Ne \@@_backend_object_write_stream:nnn {#1} #2 } \cs_new_protected:Npn \@@_backend_object_write_stream:nnn #1#2#3 @@ -220,7 +220,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:ne} % No anonymous objects, so things are done manually. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 @@ -230,7 +230,7 @@ { { pdf.obj \int_use:N \g_@@_backend_object_int } } {#1} {#2} } -\cs_generate_variant:Nn \@@_backend_object_now:nn { nx } +\cs_generate_variant:Nn \@@_backend_object_now:nn { ne } % \end{macrocode} % \end{macro} % @@ -304,7 +304,7 @@ } \int_gincr:N \g_@@_backend_object_int \int_gset_eq:NN \g_@@_backend_annotation_int \g_@@_backend_object_int - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { /_objdef { pdf.obj \int_use:N \g_@@_backend_object_int } pdf.rect @@ -468,7 +468,7 @@ \hbox_set_end: \@@_backend_link_minima: \hbox_set:Nn \l_@@_backend_model_box { Gg } - \exp_args:Nx \@@_backend_link_outerbox:n + \exp_args:Ne \@@_backend_link_outerbox:n { \int_if_odd:nTF { \value { page } } { \oddsidemargin } @@ -486,7 +486,7 @@ } \int_gincr:N \g_@@_backend_object_int \int_gset_eq:NN \g_@@_backend_link_int \g_@@_backend_object_int - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { mark /_objdef { pdf.obj \int_use:N \g_@@_backend_link_int } @@ -500,7 +500,7 @@ \cs_new_protected:Npn \@@_backend_link_minima: { \hbox_set:Nn \l_@@_backend_model_box { Gg } - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.linkdp.pad ~ \dim_to_decimal:n @@ -528,7 +528,7 @@ } \cs_new_protected:Npn \@@_backend_link_outerbox:n #1 { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.outerbox [ @@ -583,9 +583,9 @@ { \tl_put_right:Nn \@makecol@hook { - \box_if_empty:NF \@cclv + \box_if_empty:NF \l_shipout_box { - \vbox_set:Nn \@cclv + \vbox_set:Nn \l_shipout_box { \__kernel_backend_postscript:n { @@ -593,7 +593,7 @@ { pdf.bordertracking.continue } if } - \vbox_unpack_drop:N \@cclv + \vbox_unpack_drop:N \l_shipout_box \__kernel_backend_postscript:n { pdf.bordertracking.endpage } } @@ -620,7 +620,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_link_margin:n #1 { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.linkmargin { \dim_to_decimal:n {#1} ~ pdf.pt.dvi } def } @@ -638,7 +638,7 @@ \cs_new_protected:Npn \@@_backend_destination:nn #1#2 { \__kernel_backend_postscript:n { pdf.dest.anchor } - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { /View [ @@ -737,11 +737,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_version_major_gset:n #1 { - \cs_gset:Npx \@@_backend_version_major: { \int_eval:n {#1} } + \cs_gset:Npe \@@_backend_version_major: { \int_eval:n {#1} } } \cs_new_protected:Npn \@@_backend_version_minor_gset:n #1 { - \cs_gset:Npx \@@_backend_version_minor: { \int_eval:n {#1} } + \cs_gset:Npe \@@_backend_version_minor: { \int_eval:n {#1} } } % \end{macrocode} % \end{macro} @@ -805,7 +805,7 @@ % space in the \LuaTeX{} version is \emph{required} as it is consumed in % finding the end of the keyword. % \begin{macrocode} -\cs_new:Npx \@@_backend_annotation_last: +\cs_new:Npe \@@_backend_annotation_last: { \exp_not:N \int_value:w %<*luatex> @@ -857,7 +857,7 @@ % \begin{macro}{\@@_backend_link_last:} % Formatted for direct use. % \begin{macrocode} -\cs_new:Npx \@@_backend_link_last: +\cs_new:Npe \@@_backend_link_last: { \exp_not:N \int_value:w %<*luatex> @@ -1000,7 +1000,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nnx} +% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nne} % \begin{macro}[EXP]{\@@_backend_object_write:nn} % \begin{macro}[EXP]{\@@_exp_not_i:nn, \@@_exp_not_ii:nn} % Writing the data needs a little information about the structure of the @@ -1037,7 +1037,7 @@ } } } -\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \@@_backend_object_write:nnn { nne } \cs_new:Npn \@@_exp_not_i:nn #1#2 { \exp_not:n {#1} } \cs_new:Npn \@@_exp_not_ii:nn #1#2 { \exp_not:n {#2} } % \end{macrocode} @@ -1045,7 +1045,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:ne} % Much like writing, but direct creation. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 @@ -1058,14 +1058,14 @@ %</pdftex> \@@_backend_object_write:nn {#1} {#2} } -\cs_generate_variant:Nn \@@_backend_object_now:nn { nx } +\cs_generate_variant:Nn \@@_backend_object_now:nn { ne } % \end{macrocode} % \end{macro} % % \begin{macro}[EXP]{\@@_backend_object_last:} % Much like annotation. % \begin{macrocode} -\cs_new:Npx \@@_backend_object_last: +\cs_new:Npe \@@_backend_object_last: { \exp_not:N \int_value:w %<*luatex> @@ -1082,7 +1082,7 @@ % \begin{macro}[EXP]{\@@_backend_pageobject_ref:n} % The usual wrapper situation; the three spaces here are essential. % \begin{macrocode} -\cs_new:Npx \@@_backend_pageobject_ref:n #1 +\cs_new:Npe \@@_backend_pageobject_ref:n #1 { \exp_not:N \int_value:w %<*luatex> @@ -1141,7 +1141,7 @@ % The availability of the primitive is not universal, so we have to test % at load time. % \begin{macrocode} -\cs_new_protected:Npx \@@_backend_version_major_gset:n #1 +\cs_new_protected:Npe \@@_backend_version_major_gset:n #1 { %<*luatex> \int_compare:nNnT \tex_luatexversion:D > { 106 } @@ -1175,7 +1175,7 @@ % \begin{macro}[EXP]{\@@_backend_version_major:, \@@_backend_version_minor:} % As above. % \begin{macrocode} -\cs_new:Npx \@@_backend_version_major: +\cs_new:Npe \@@_backend_version_major: { %<*luatex> \int_compare:nNnTF \tex_luatexversion:D > { 106 } @@ -1226,12 +1226,12 @@ %<*dvipdfmx|xetex> % \end{macrocode} % -% \begin{macro}{\@@_backend:n, \@@_backend:x} +% \begin{macro}{\@@_backend:n, \@@_backend:e} % A generic function for the backend PDF specials: used where we can. % \begin{macrocode} -\cs_new_protected:Npx \@@_backend:n #1 +\cs_new_protected:Npe \@@_backend:n #1 { \__kernel_backend_literal:n { pdf: #1 } } -\cs_generate_variant:Nn \@@_backend:n { x } +\cs_generate_variant:Nn \@@_backend:n { e } % \end{macrocode} % \end{macro} % @@ -1274,7 +1274,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nnx} +% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nne} % \begin{macro} % { % \@@_backend_object_write_array:nn , @@ -1290,15 +1290,15 @@ \use:c { @@_backend_object_write_ #2 :nn } { \@@_backend_object_ref:n {#1} } {#3} } -\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \@@_backend_object_write:nnn { nne } \cs_new_protected:Npn \@@_backend_object_write_array:nn #1#2 { - \@@_backend:x + \@@_backend:e { obj ~ #1 ~ [ ~ \exp_not:n {#2} ~ ] } } \cs_new_protected:Npn \@@_backend_object_write_dict:nn #1#2 { - \@@_backend:x + \@@_backend:e { obj ~ #1 ~ << ~ \exp_not:n {#2} ~ >> } } \cs_new_protected:Npn \@@_backend_object_write_fstream:nn #1#2 @@ -1307,7 +1307,7 @@ { \@@_backend_object_write_stream:nnnn { } {#1} #2 } \cs_new_protected:Npn \@@_backend_object_write_stream:nnnn #1#2#3#4 { - \@@_backend:x + \@@_backend:e { #1 stream ~ #2 ~ ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >> @@ -1318,18 +1318,18 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:ne} % No anonymous objects with \texttt{dvipdfmx} so we have to give an % object name. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 { \int_gincr:N \g_@@_backend_object_int - \exp_args:Nnx \use:c { @@_backend_object_write_ #1 :nn } + \exp_args:Nne \use:c { @@_backend_object_write_ #1 :nn } { @pdf.obj \int_use:N \g_@@_backend_object_int } {#2} } -\cs_generate_variant:Nn \@@_backend_object_now:nn { nx } +\cs_generate_variant:Nn \@@_backend_object_now:nn { ne } % \end{macrocode} % \end{macro} % @@ -1364,7 +1364,7 @@ { \int_gincr:N \g_@@_backend_object_int \int_gset_eq:NN \g_@@_backend_annotation_int \g_@@_backend_object_int - \@@_backend:x + \@@_backend:e { ann ~ @pdf.obj \int_use:N \g_@@_backend_object_int \c_space_tl width ~ \dim_eval:n {#1} ~ @@ -1400,10 +1400,10 @@ { \@@_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } \cs_new_protected:Npn \@@_backend_link_begin_user:nnw #1#2 { \@@_backend_link_begin:n {#1#2} } -\cs_new_protected:Npx \@@_backend_link_begin:n #1 +\cs_new_protected:Npe \@@_backend_link_begin:n #1 { \exp_not:N \int_gincr:N \exp_not:N \g_@@_backend_link_int - \@@_backend:x + \@@_backend:e { bann ~ @pdf.lnk @@ -1435,7 +1435,7 @@ % Pass to \texttt{dvipdfmx}. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_link_margin:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~g~ \dim_eval:n {#1} } } % \end{macrocode} % \end{macro} % @@ -1449,7 +1449,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_destination:nn #1#2 { - \@@_backend:x + \@@_backend:e { dest ~ ( \exp_not:n {#1} ) [ @@ -1518,7 +1518,7 @@ % Pass data to the backend: these are a one-shot. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_compresslevel:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~z~ \int_eval:n {#1} } } \cs_new_protected:Npn \@@_backend_compress_objects:n #1 { \bool_if:nF {#1} @@ -1534,13 +1534,13 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_version_major_gset:n #1 { - \cs_gset:Npx \@@_backend_version_major: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:majorversion~ \@@_backend_version_major: } + \cs_gset:Npe \@@_backend_version_major: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:majorversion~ \@@_backend_version_major: } } \cs_new_protected:Npn \@@_backend_version_minor_gset:n #1 { - \cs_gset:Npx \@@_backend_version_minor: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:minorversion~ \@@_backend_version_minor: } + \cs_gset:Npe \@@_backend_version_minor: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:minorversion~ \@@_backend_version_minor: } } % \end{macrocode} % \end{macro} @@ -1608,7 +1608,7 @@ % % \begin{macro}{\@@_backend_link_last:} % \begin{macrocode} -\cs_new:Npx \@@_backend_link_last: { } +\cs_new:Npe \@@_backend_link_last: { } % \end{macrocode} % \end{macro} % @@ -1642,8 +1642,8 @@ % % \begin{macro}{\@@_backend_object_new:n} % \begin{macro}[EXP]{\@@_backend_object_ref:n} -% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nx} -% \begin{macro}{\@@_backend_object_now:nn, , \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:ne} +% \begin{macro}{\@@_backend_object_now:nn, , \@@_backend_object_now:ne} % \begin{macro}{\@@_backend_object_last:} % \begin{macro}[EXP]{\@@_backend_pageobject_ref:n} % All no-ops here. @@ -1651,9 +1651,9 @@ \cs_new_protected:Npn \@@_backend_object_new:nn #1 { } \cs_new:Npn \@@_backend_object_ref:n #1 { } \cs_new_protected:Npn \@@_backend_object_write:nnn #1#2#3 { } -\cs_new_protected:Npn \@@_backend_object_write:nnx #1#2#3 { } +\cs_new_protected:Npn \@@_backend_object_write:nne #1#2#3 { } \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 { } -\cs_new_protected:Npn \@@_backend_object_now:nx #1#2 { } +\cs_new_protected:Npn \@@_backend_object_now:ne #1#2 { } \cs_new:Npn \@@_backend_object_last: { } \cs_new:Npn \@@_backend_pageobject_ref:n #1 { } % \end{macrocode} |