diff options
Diffstat (limited to 'Master')
54 files changed, 620 insertions, 379 deletions
diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/CHANGELOG.md b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/CHANGELOG.md index a507ced869a..54749861093 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/CHANGELOG.md @@ -5,7 +5,17 @@ first release 0.95a, 2021-02-23 will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), this project uses date-based 'snapshot' version identifiers. + +## [2023-10-09] +Version: 2023-10-09, 0.96a + +### Changed + - prepare for kernel switch to e-types + - use properties instead of l3ref-tmp.sty if format is new enough + - improve xcolor firstaid patch + ## [2023-08-29] +Version: 2023-08-29, 0.95z ### Changed - a SOURCE_DATE_EPOCH setting is honored. This requires a l3backend version from XXXX diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/README.md b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/README.md index f512b294d67..770ec9e2b51 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/README.md +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/README.md @@ -1,6 +1,6 @@ # LaTeX PDF management testphase bundle -Version: 0.95z, 2023-08-29 +Version: 0.96a, 2023-10-09 This package is used during a test phase to load the new PDF management code of LaTeX. diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/hyperref-generic.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/hyperref-generic.pdf Binary files differindex c640c4c15c9..d830ce140ac 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/hyperref-generic.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/hyperref-generic.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.pdf Binary files differindex 0149e6d72f9..5abbe8a3f29 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfannot.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfannot.pdf Binary files differindex bad7119c10b..92ae61b6352 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfannot.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfannot.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfdict.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfdict.pdf Binary files differindex d8bc405fbe5..c580144fb55 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfdict.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfdict.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-action.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-action.pdf Binary files differindex be1e521cc0e..46ae5b82f24 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-action.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-action.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-checkbox.pdf Binary files differindex 603d83c9f8e..d6e06870ad8 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-checkbox.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-checkbox.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-choice.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-choice.pdf Binary files differindex f73e10a44dc..c8c02c3dd79 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-choice.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-choice.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-pushbutton.pdf Binary files differindex 908fe646527..c561ea10a59 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-pushbutton.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-pushbutton.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-radiobutton.pdf Binary files differindex 8516331911b..4b89a4d1d01 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-radiobutton.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-radiobutton.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-textfield.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-textfield.pdf Binary files differindex 8b58cee3418..491aff28159 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-textfield.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield-textfield.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield.pdf Binary files differindex 370b92c1f4c..c121fc5ebff 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffield.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffile.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffile.pdf Binary files differindex 61075ae365a..dc868ba43c6 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffile.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdffile.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmanagement.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmanagement.pdf Binary files differindex cf7efbed96b..0f2871f6603 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmanagement.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmanagement.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmeta.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmeta.pdf Binary files differindex 8cd52b4dbfc..a0edffc2329 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmeta.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfmeta.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdftools.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdftools.pdf Binary files differindex b08cd7c6ae3..733d736ef75 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdftools.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdftools.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfxform.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfxform.pdf Binary files differindex 306c2f34e6f..eec75e8d947 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfxform.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3pdfxform.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/ltdocinit.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/ltdocinit.pdf Binary files differindex 63ad14c84ee..692a6df4ac2 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/ltdocinit.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/ltdocinit.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-firstaid.pdf Binary files differindex 1138f50d57f..1bf780aa3bf 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-firstaid.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-firstaid.pdf diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-testphase.pdf Binary files differindex f57b489f4e2..d2898a3049c 100644 --- a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-testphase.pdf +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/pdfmanagement-testphase.pdf diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/hyperref-generic.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/hyperref-generic.dtx index 4d68f49b6d1..dc722effbef 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/hyperref-generic.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/hyperref-generic.dtx @@ -82,7 +82,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -912,9 +912,9 @@ %^^A %% \l_@@_dest_box %^^A %% %^^A %% References (ref) -%^^A %% *\@@_ref_label:nn -%^^A %% *\@@_ref_if_exist:nn -%^^A %% *\@@_ref_check:nn +%^^A %% *\@@_property_record:nn +%^^A %% *\@@_property_if_recorded:nn +%^^A %% *\@@_property_ref_undefined_warn:nn, %^^A %% % helps to display key list messages %^^A %% \@@_clist_display:n %^^A %% @@ -956,7 +956,7 @@ %<@@=hyp> % \end{macrocode} % \begin{macrocode} -\ProvidesFile{hgeneric-testphase.def}[2023-08-29 v0.95z % +\ProvidesFile{hgeneric-testphase.def}[2023-10-09 v0.96a % generic Hyperref driver for the LaTeX PDF management testphase bundle] \RequirePackage{etoolbox} %why? @@ -1157,6 +1157,7 @@ % \begin{macrocode} \cs_generate_variant:Nn\pdf_destination:nn {nf} \cs_generate_variant:Nn\pdf_object_ref:n {e} +\cs_generate_variant:Nn\pdf_pageobject_ref:n {e} % \end{macrocode} % \section{Overwriting/providing commands from hyperref} % \pkg{hyperref} checks driver version, we need to suppress this during the development @@ -1534,57 +1535,85 @@ % \end{macrocode} % % \section{Reference and label commands} -% The code uses the l3ref-tmp package which +% The code uses in older LaTeX the l3ref-tmp package which % must have been loaded as pdfmanagement is a requirement. -% The commands use after the module prefix always |_ref|. -% -% At first a label command which add the space commands from LaTeX: +% In newer LaTeX it uses the in-built property module. +% % \begin{macro} % { -% \@@_ref_label:nn, -% \@@_ref_if_exist:nn, -% \@@_ref_check:nn, -% \@@_ref_value:nn +% \@@_property_record:nn, +% \@@_property_if_recorded:nn, +% \@@_property_ref_undefined_warn:nn, +% \@@_property_ref:nn % } % \begin{macrocode} % -\cs_new_protected:Npn \@@_ref_label:nn #1 #2 %label/attributes +\cs_if_exist:NTF \property_new:nnnn { - \@bsphack - \ref_label:nn{#1}{#2} - \@esphack - } -\cs_generate_variant:Nn \@@_ref_label:nn {en} % \end{macrocode} -% This provides a condition which tests if a label/attribute combination is known -% \begin{macrocode} -\prg_new_eq_conditional:NNn \@@_ref_if_exist:nn \ref_if_exist:nn { p , T , F, TF } -\prg_generate_conditional_variant:Nnn \@@_ref_if_exist:nn {en} { p , T , F, TF } +% At first a label command which adds the space commands from LaTeX: +% \begin{macrocode} + \cs_new_protected:Npn \@@_property_record:nn #1 #2 %label/attributes + { + \@bsphack + \property_record:nn{#1}{#2} + \@esphack + } % \end{macrocode} -% This checks if the label/attribute is known and issues a warning if not. +% This provides a conditional which tests if a label/property combination is known +% \begin{macrocode} + \prg_new_eq_conditional:NNn + \@@_property_if_recorded:nn \property_if_recorded:nn { T } +% \end{macrocode} +% This checks if the label/property is known and issues a warning if not. % It then also triggers the standard rerun message. +% \begin{macrocode} + \cs_new_eq:NN \@@_property_ref_undefined_warn:nn \property_ref_undefined_warn:nn +% \end{macrocode} +% +% \begin{macrocode} + \cs_new_eq:NN \@@_property_ref:nn \property_ref:nn + } +% \end{macrocode} +% and now the same with the older l3ref-tmp. +% This can go once LaTeX has been released. % \begin{macrocode} -\cs_new_protected:Npn \@@_ref_check:nn #1 #2 %label/attribute { - \@@_ref_if_exist:nnF {#1}{#2} + \cs_new_protected:Npn \@@_property_record:nn #1 #2 %label/attributes + { + \@bsphack + \ref_label:nn{#1}{#2} + \@esphack + } + + \prg_new_eq_conditional:NNn \@@_property_if_recorded:nn \ref_if_exist:nn { T } + + \cs_new_protected:Npn \@@_property_ref_undefined_warn:nn #1 #2 %label/attribute { - \protect\G@refundefinedtrue - \@latex@warning + \@@_property_if_recorded:nnF {#1}{#2} { - Reference~'\tl_to_str:n {#1}'~with~attribute~'\tl_to_str:n {#2}'~ - on~page~\thepage~\space undefined + \protect\G@refundefinedtrue + \@latex@warning + { + Reference~'\tl_to_str:n {#1}'~with~attribute~'\tl_to_str:n {#2}'~ + on~page~\thepage~\space undefined + } } } + + \cs_new:Npn \@@_property_ref:nn #1 #2 + { + \ref_value:nn{#1}{#2} + } } -\cs_generate_variant:Nn \@@_ref_check:nn {en} % \end{macrocode} -% This retrieves a value, it is a simple wrapper around the \cs{ref_value:nn} +% At last we generate a few variants. We use ee-variants as they already exist +% in the module and once this is there it can go here. % \begin{macrocode} -\cs_new:Npn \@@_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \@@_ref_value:nn {en} +\cs_generate_variant:Nn \@@_property_record:nn {ee} +\prg_generate_conditional_variant:Nnn \@@_property_if_recorded:nn {ee} { T } +\cs_generate_variant:Nn \@@_property_ref_undefined_warn:nn {ee} +\cs_generate_variant:Nn \@@_property_ref:nn {ee} % \end{macrocode} % \end{macro} % \section{Variables} @@ -4356,16 +4385,16 @@ %\zref@labelbyprops{HyAnn@\the\HyAnn@Count}{abspage}% %\zref@labelbylist {HyAnn@\the\HyAnn@Count} {l3pdf} %\zref@refused{HyAnn@\the\HyAnn@Count}% - \@@_ref_label:en {HyAnn@\the\HyAnn@Count}{abspage} - \@@_ref_check:en {HyAnn@\the\HyAnn@Count}{abspage} + \@@_property_record:ee {HyAnn@\the\HyAnn@Count}{abspage} + \@@_property_ref_undefined_warn:ee {HyAnn@\the\HyAnn@Count}{abspage} }% \def\Fld@pageobjref { - \@@_ref_if_exist:enT {HyAnn@\the\HyAnn@Count}{abspage} + \@@_property_if_recorded:eeT {HyAnn@\the\HyAnn@Count}{abspage} { - /P~\pdf_pageobject_ref:n + /P~\pdf_pageobject_ref:e { - \@@_ref_value:en{HyAnn@\the\HyAnn@Count}{abspage} + \@@_property_ref:ee{HyAnn@\the\HyAnn@Count}{abspage} } } } diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3backend-testphase.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3backend-testphase.dtx index ebf9ede282c..e378716818e 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3backend-testphase.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3backend-testphase.dtx @@ -45,7 +45,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % @@ -56,30 +56,47 @@ % \begin{macrocode} %<drivers>\ProvidesExplFile %<*dvipdfmx> - {l3backend-testphase-dvipdfmx.def}{2023-08-29}{} + {l3backend-testphase-dvipdfmx.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-testphase-dvips.def}{2023-08-29}{} + {l3backend-testphase-dvips.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvips} %</dvips> %<*dvisvgm> - {l3backend-testphase-dvisvgm.def}{2023-08-29}{} + {l3backend-testphase-dvisvgm.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm} %</dvisvgm> %<*luatex> - {l3backend-testphase-luatex.def}{2023-08-29}{} + {l3backend-testphase-luatex.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)} %</luatex> %<*pdftex> - {l3backend-testphase-pdftex.def}{2023-08-29}{} + {l3backend-testphase-pdftex.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)} %</pdftex> %<*xdvipdfmx> - {l3backend-testphase-xetex.def}{2023-08-29}{} + {l3backend-testphase-xetex.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX} %</xdvipdfmx> % \end{macrocode} +% \subsection{Variants} +% We need to generate temporarly a few e-types variants of kernel backend commands. +% These can be removed once the kernel provides them. +% \begin{macrocode} +%<@@=pdf> +%<*luatex|pdftex> +\cs_generate_variant:Nn \__kernel_backend_literal_page:n { e } +%</luatex|pdftex> +%<*dvipdfmx|xdvipdfmx> +\cs_generate_variant:Nn \__kernel_backend_literal:n { e } +\cs_generate_variant:Nn \@@_backend:n { e } +%</dvipdfmx|xdvipdfmx> +%<*dvips> +\cs_generate_variant:Nn \__kernel_backend_postscript:n { e } +\cs_generate_variant:Nn \@@_backend_pdfmark:n { e } +%</dvips> +% \end{macrocode} % \subsection{Support for delayed literal and special} % Starting with TeXlive 2023 the engines support a \texttt{shipout} keyword % for \cs{pdfliteral} and \cs{special}. When used the argument is not expanded @@ -153,33 +170,54 @@ % This uses the temporary l3ref-tmp.sty. It will % will be replaced by kernel code later. % It is only needed to get a reference for the absolute page counter. -% This uses the counter from the -% new lthooks/ltshipout package. +% This uses the counter from the new lthooks/ltshipout package. % \begin{macrocode} -%<@@=pdf> %<*drivers> +% \end{macrocode} +% l3ref-tmp is loaded until all files in latex-lab and tagpdf has been +% cleared: +% \begin{macrocode} \RequirePackage{l3ref-tmp} -\cs_generate_variant:Nn \ref_label:nn {en} -\cs_generate_variant:Nn \ref_value:nn {en} -\cs_new_protected:Npn \@@_backend_ref_label:nn #1 #2 - { - \@bsphack - \ref_label:nn{#1}{abspage} - \@esphack - } -\cs_new:Npn \@@_backend_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \@@_backend_ref_label:nn {en} -\cs_generate_variant:Nn \@@_backend_ref_value:nn {en} +% \end{macrocode} +% +% \begin{macrocode} +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \@@_backend_record_abspage:n #1 + { + \@bsphack + \property_record:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \@@_backend_ref_abspage:n #1 + { + \property_ref:nn{#1}{abspage} + } + + } + { + \cs_new_protected:Npn \@@_backend_record_abspage:n #1 + %% \@@_backend_ref_label:nn #1 #2 + { + \@bsphack + \ref_label:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \@@_backend_ref_abspage:n #1 + %% \@@_backend_ref_value:nn #1 #2 + { + \ref_value:nn{#1}{abspage} + } + } +\cs_generate_variant:Nn \@@_backend_record_abspage:n {e} +\cs_generate_variant:Nn \@@_backend_ref_abspage:n {e} %</drivers> % \end{macrocode} % avoid that destinations names are optimized with xelatex/dvipdfmx % see https://tug.org/pipermail/dvipdfmx/2019-May/000002.html % \begin{macrocode} -%<*dvipdfmx|xdvipdfmx> - \__kernel_backend_literal:x { dvipdfmx:config~C~ 0x0010 } +%<*dvipdfmx|xdvipdfmx> + \__kernel_backend_literal:n { dvipdfmx:config~C~ 0x0010 } %</dvipdfmx|xdvipdfmx> % \end{macrocode} % \begin{variable}{\g_@@_tmpa_prop, \l_@@_tmpa_tl, \l_@@_backend_tmpa_box } @@ -407,10 +445,10 @@ { %we need to know the page the resource should be added too. \int_gincr:N\g_@@_backend_resourceid_int - \@@_backend_ref_label:en { l3pdf\int_use:N\g_@@_backend_resourceid_int }{abspage} + \@@_backend_record_abspage:e { l3pdf\int_use:N\g_@@_backend_resourceid_int } \tl_set:Nx \l_@@_tmpa_tl { - \@@_backend_ref_value:en {l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage} + \@@_backend_ref_abspage:e {l3pdf\int_use:N\g_@@_backend_resourceid_int} } \pdfdict_if_exist:nF { g_@@_Core/backend_Page\l_@@_tmpa_tl} { @@ -433,7 +471,7 @@ \prop_gput:Nnn \g_@@_tmpa_prop { ##1 }{ ##2 } } } - \exp_args:Nx \@@_backend_Page_primitive:n + \@@_backend_Page_primitive:e { \prop_map_function:NN \g_@@_tmpa_prop \pdfdict_item:ne } @@ -544,7 +582,7 @@ %issues the values stored in the global prop with dvi \cs_new_protected:Npn \@@_backend_ThisPage_gpush:n #1 { - \exp_args:Nx \@@_backend_Page_primitive:n + \@@_backend_Page_primitive:e { \pdfdict_use:n { g_@@_Core/Page} } } %</dvipdfmx|xdvipdfmx> @@ -583,8 +621,8 @@ %issues the values stored in the global prop with dvi \cs_new_protected:Npn \@@_backend_ThisPage_gpush:n #1 { - \exp_args:Nx \@@_backend_Page_primitive:n - { \pdfdict_use:n { g_@@_Core/Page} } + \@@_backend_Page_primitive:e + { \pdfdict_use:n { g_@@_Core/Page} } } %</dvips> %<*dvisvgm> @@ -609,6 +647,9 @@ \cs_new_protected:Npn \@@_backend_ThisPage_gpush:n #1 {} %</dvisvgm> +%<*drivers> +\cs_generate_variant:Nn \@@_backend_Page_primitive:n { e } +%</drivers> % \end{macrocode} % \end{macro} % @@ -730,12 +771,11 @@ } \cs_new_protected:Npn \@@_backend_PageResources_gput:nnn #1 #2 #3 { - % this is not used for output, but there is a test if the resource is empty - \exp_args:Nnx - \prop_gput:cnn { \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/#1} } + % this is not used for output, but there is a test if the resource is empty + \prop_gput:cne { \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/#1} } { \str_convert_pdfname:n {#2} }{ #3 } %objects are not filled with \pdf_object_write as this is not additive! - \@@_backend:x + \@@_backend:e { put~\@@_backend_object_ref:n {@@/Page/Resources/#1}<</#2~#3>> } @@ -816,11 +856,11 @@ \cs_set_protected:Npn \@@_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { - \@@_backend_pdfmark:x{/#1~\@@_backend_object_ref:n{#2}~/BDC} + \@@_backend_pdfmark:e{/#1~\@@_backend_object_ref:n{#2}~/BDC} } \cs_set_protected:Npn \@@_backend_bdcobject:n #1 % #1 eg. Span, { - \@@_backend_pdfmark:x{/#1~\@@_backend_object_last:~/BDC} + \@@_backend_pdfmark:e{/#1~\@@_backend_object_last:~/BDC} } \cs_set_protected:Npn \@@_backend_emc: { @@ -865,11 +905,11 @@ \cs_set_protected:Npn \@@_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { \int_gincr:N \g_@@_backend_name_int - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:code~/#1/l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ << @@ -884,11 +924,11 @@ \cs_set_protected:Npn \@@_backend_bdcobject:n #1 % #1 eg. Span { \int_gincr:N \g_@@_backend_name_int - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:code~/\exp_not:n{#1}/l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ << @@ -945,7 +985,7 @@ { \prop_if_empty:cF { \__kernel_pdfdict_name:n { g_@@_Core/Page/Resources/##1} } { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ <</##1~\@@_backend_object_ref:n {@@/Page/Resources/##1}>> @@ -959,17 +999,17 @@ \cs_set_protected:Npn \@@_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { \int_gincr:N \g_@@_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /#1 ~ /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC } \bool_if:NTF \l_@@_backend_xform_bool { - \exp_args:Nnx\pdfdict_gput:nnn + \pdfdict_gput:nee { g_@@_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g_@@_backend_name_int } { \@@_backend_object_ref:n { #2 } } } { - \exp_args:Nx \tex_latelua:D + \exp_args:Ne \tex_latelua:D { ltx.pdf.Page_Resources_Properties_gput ( @@ -983,17 +1023,17 @@ \cs_set_protected:Npn \@@_backend_bdcobject:n #1% #1 eg. Span { \int_gincr:N \g_@@_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /\exp_not:n{#1} ~ /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC } \bool_if:NTF \l_@@_backend_xform_bool { - \exp_args:Nnx\pdfdict_gput:nnn %no handler needed + \pdfdict_gput:nee %no handler needed { g_@@_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g_@@_backend_name_int } { \@@_backend_object_last: } } { - \exp_args:Nx \tex_latelua:D + \exp_args:Ne \tex_latelua:D { ltx.pdf.Page_Resources_Properties_gput ( @@ -1048,28 +1088,28 @@ \cs_set_protected:Npn \@@_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { \int_gincr:N \g_@@_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /#1 ~ /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC } % code to set the property .... \int_gincr:N\g_@@_backend_resourceid_int \bool_if:NTF \l_@@_backend_xform_bool { - \exp_args:Nnxx\pdfdict_gput:nnn %no handler needed + \pdfdict_gput:nee %no handler needed { g_@@_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g_@@_backend_resourceid_int } { \@@_backend_object_ref:n { #2 } } } { - \@@_backend_ref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage} + \@@_backend_record_abspage:e {l3pdf\int_use:N\g_@@_backend_resourceid_int} \tl_set:Nx \l_@@_tmpa_tl { - \@@_backend_ref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage} + \@@_backend_ref_abspage:e{l3pdf\int_use:N\g_@@_backend_resourceid_int} } \pdfdict_if_exist:nF { g_@@_Core/backend_Page\l_@@_tmpa_tl/Resources/Properties } { \pdfdict_new:n { g_@@_Core/backend_Page\l_@@_tmpa_tl/Resources/Properties } } - \exp_args:Nnxx\pdfdict_gput:nnn + \pdfdict_gput:nee { g_@@_Core/backend_Page\l_@@_tmpa_tl/Resources/Properties } { l3pdf\int_use:N\g_@@_backend_resourceid_int } { \@@_backend_object_ref:n{#2} } @@ -1078,28 +1118,28 @@ \cs_set_protected:Npn \@@_backend_bdcobject:n #1% #1 eg. Span { \int_gincr:N \g_@@_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /\exp_not:n{#1} ~ /l3pdf\int_use:N\g_@@_backend_name_int\c_space_tl BDC } % code to set the property .... \int_gincr:N\g_@@_backend_resourceid_int \bool_if:NTF \l_@@_backend_xform_bool { - \exp_args:Nnxx\pdfdict_gput:nnn + \pdfdict_gput:nee { g_@@_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g_@@_backend_resourceid_int } { \@@_backend_object_last: } } { - \@@_backend_ref_label:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage} + \@@_backend_record_abspage:e{l3pdf\int_use:N\g_@@_backend_resourceid_int} \tl_set:Nx \l_@@_tmpa_tl { - \@@_backend_ref_value:en{l3pdf\int_use:N\g_@@_backend_resourceid_int}{abspage} + \@@_backend_ref_abspage:e{l3pdf\int_use:N\g_@@_backend_resourceid_int} } \pdfdict_if_exist:nF { g_@@_Core/backend_Page\l_@@_tmpa_tl/Resources/Properties } { \pdfdict_new:n { g_@@_Core/backend_Page\l_@@_tmpa_tl/Resources/Properties } } - \exp_args:Nnxx\pdfdict_gput:nnn + \pdfdict_gput:nee { g_@@_Core/backend_Page\l_@@_tmpa_tl/Resources/Properties } { l3pdf\int_use:N\g_@@_backend_resourceid_int } { \@@_backend_object_last: } @@ -1152,7 +1192,7 @@ \cs_new_protected:Npn \@@_backend_PageResources_gpush:n #1 { - \exp_args:NNx \tex_global:D \tex_pdfpageresources:D + \exp_args:NNe \tex_global:D \tex_pdfpageresources:D { \prop_if_exist:cT { \__kernel_pdfdict_name:n { g_@@_Core/backend_Page#1/Resources/Properties } } @@ -1205,7 +1245,7 @@ \cs_new_protected:Npn \@@_backend_Names_gpush:nn #1 #2 %#1 name of name tree, #2 array content { \pdf_object_unnamed_write:nn {dict} {/Names [#2] } - \@@_backend:x {put~@names~<</#1~\pdf_object_ref_last: >>} + \@@_backend:e {put~@names~<</#1~\pdf_object_ref_last: >>} } %</dvipdfmx|xdvipdfmx> @@ -1231,7 +1271,7 @@ %<*dvips> \cs_new_protected:Npn \@@_backend_NamesEmbeddedFiles_add:nn #1 #2 { - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { /Name~#1~ /FS~#2~ @@ -1506,7 +1546,7 @@ \hook_gput_next_code:nn {shipout/background} { \mode_leave_vertical: %needed, the xform disappears without it. - \@@_backend:x + \@@_backend:e { bxobj ~ \@@_backend_xform_ref:n { #1 } \c_space_tl width ~ \pdfxform_wd:n { #1 } @@ -1514,38 +1554,37 @@ \c_space_tl depth ~ \pdfxform_dp:n { #1 } } \box_use_drop:c { g_@@_backend_xform_#1_box } - \@@_backend:x {put ~ @resources ~<<#3>> } - \@@_backend:x + \@@_backend:e {put ~ @resources ~<<#3>> } + \@@_backend:e { put~ @resources ~ << /ExtGState~ \pdf_object_ref:n { @@/Page/Resources/ExtGState } >> } - \@@_backend:x + \@@_backend:e { put~ @resources ~ << /Pattern~ \pdf_object_ref:n { @@/Page/Resources/Pattern } >> } - \@@_backend:x + \@@_backend:e { put~ @resources ~ << /Shading~ \pdf_object_ref:n { @@/Page/Resources/Shading } >> } - \@@_backend:x + \@@_backend:e { put~ @resources ~ << /ColorSpace~ \pdf_object_ref:n { @@/Page/Resources/ColorSpace } >> - } - \exp_args:Nx - \@@_backend:x {exobj ~<<#2>>} + } + \@@_backend:e {exobj ~<<#2>>} } } @@ -1560,7 +1599,7 @@ { \hbox_set:Nn \l_@@_backend_tmpa_box { - \@@_backend:x + \@@_backend:e { uxobj~ \@@_backend_xform_ref:n { #1 } } @@ -1634,7 +1673,7 @@ %\box_scale:Nnn \l_@@_backend_tmpa_box {1} {-1} \hbox_set:Nn\l_@@_backend_tmpb_box { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { gsave~currentpoint~ initclip~ % restore default clipping path (page device/whole page) @@ -1662,7 +1701,7 @@ } \str_if_eq:eeF{#1}{} { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { product~(Ghostscript)~search~ { @@ -1689,7 +1728,7 @@ { \hbox_set:Nn \l_@@_backend_tmpa_box { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { gsave~currentpoint~translate~1~-1~scale~ mark~{ pdf.obj \int_use:c{c__pdf_backend_xform_ \tl_to_str:n {#1} _int }}~ @@ -1805,7 +1844,7 @@ %<*xdvipdfmx|dvipdfmx> \cs_set_protected:Npn \@@_backend_structure_destination:nn #1#2 { - \@@_backend:x + \@@_backend:e { dest ~ ( \exp_not:n {#1} ) [ @@ -1831,7 +1870,7 @@ % \begin{macrocode} \exp_args:Ne \pdf_object_if_exist:nT { \l_pdf_current_structure_destination_tl } { - \@@_backend:x + \@@_backend:e { obj ~ @pdf.SDest.\exp_not:n{#1} [ @@ -1889,7 +1928,7 @@ % \begin{macrocode} \exp_args:Ne \pdf_object_if_exist:nT { \l_pdf_current_structure_destination_tl } { - \@@_backend:x + \@@_backend:e { obj ~ @pdf.SDest.\exp_not:n{#2} [ diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfannot.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfannot.dtx index b3076aaf26c..a6384c182c9 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfannot.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfannot.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -432,7 +432,7 @@ % \begin{macrocode} %<@@=pdfannot> %<*header> -\ProvidesExplPackage{l3pdfannot}{2023-08-29}{0.95z} +\ProvidesExplPackage{l3pdfannot}{2023-10-09}{0.96a} {PDF-annotations} \RequirePackage{l3pdfdict} %</header> diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfdict.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfdict.dtx index ed7406fe1c9..d95382ad91f 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfdict.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfdict.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -101,7 +101,7 @@ % \end{function} % % \begin{function}[added = 2020-04-06] -% {\pdfdict_put:nnn, \pdfdict_gput:nnn} +% {\pdfdict_put:nnn, \pdfdict_gput:nnn,\pdfdict_gput:nee} % \begin{syntax} % \cs{pdfdict_put:nnn} \Arg{local dictionary} \Arg{name} \Arg{value} \\ % \cs{pdfdict_gput:nnn} \Arg{global dictionary} \Arg{name} \Arg{value} @@ -208,7 +208,7 @@ % \begin{macrocode} %<@@=pdfdict> %<*header> -\ProvidesExplPackage{l3pdfdict}{2023-08-29}{0.95z} +\ProvidesExplPackage{l3pdfdict}{2023-10-09}{0.96a} {Tools for PDF dictionaries (LaTeX PDF management testphase bundle)} %</header> % \end{macrocode} @@ -429,7 +429,7 @@ } \cs_set_eq:NN \pdfdict_put:nnn \@@_put:nnn -\cs_generate_variant:Nn \pdfdict_put:nnn {nnx,nno} +\cs_generate_variant:Nn \pdfdict_put:nnn {nnx,nno,nee} \cs_new_protected:Npn \@@_gput:nnn #1 #2 #3 %#1 global dict, #2 name, #3 value { @@ -450,7 +450,7 @@ } \cs_set_eq:NN \pdfdict_gput:nnn \@@_gput:nnn -\cs_generate_variant:Nn \pdfdict_gput:nnn {nnx,nno} +\cs_generate_variant:Nn \pdfdict_gput:nnn {nnx,nno,nee} % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-action.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-action.dtx index 0479ecdae5b..09489fc8a1c 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-action.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-action.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-checkbox.dtx index 9421dac34ae..1a053e71808 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-checkbox.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-checkbox.dtx @@ -64,7 +64,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-choice.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-choice.dtx index 69858349ff8..5b9993158fe 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-choice.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-choice.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-pushbutton.dtx index ad43c11bb53..7471de15f82 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-pushbutton.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-pushbutton.dtx @@ -55,7 +55,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-radiobutton.dtx index b9737a39c16..8098d4684c6 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-radiobutton.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-radiobutton.dtx @@ -83,7 +83,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -669,15 +669,32 @@ % %\subsection{Creating the field} % We need to retrieve the index of the default through a -% label, so we need an ref attribute: +% label, so we need an ref attribute or with newer LaTeX +% a property: % % \begin{macrocode} -\ref_attribute_gset:nnnn {pdfradioindex}{0}{now} - { - \int_use:N\l_@@_radio_value_num_int - } -\cs_generate_variant:Nn \ref_label:nn {V} -\cs_generate_variant:Nn \ref_value:nn {V} +\cs_if_exist:NTF \property_new:nnnn + { + \property_new:nnnn {pdfradioindex}{now} + {0} + { + \int_use:N\l_@@_radio_value_num_int + } + \cs_new_eq:NN \@@_property_record:nn \property_record:nn + \cs_new_eq:NN \@@_property_ref:nn \property_ref:nn + } + { + \ref_attribute_gset:nnnn {pdfradioindex}{0}{now} + { + \int_use:N\l_@@_radio_value_num_int + } + \cs_new_eq:NN \@@_property_record:nn \ref_label:nn + \cs_new_eq:NN \@@_property_ref:nn \ref_value:nn + } + + \cs_generate_variant:Nn \@@_property_record:nn {V} + \cs_generate_variant:Nn \@@_property_ref:nn {V} + % \end{macrocode} % A field should be created if the name doesn't exist yet % \begin{macro}{\@@_radio_field:n} @@ -702,8 +719,8 @@ % \end{macrocode} % The default value is retrieved through a label: % \begin{macrocode} - \pdfdict_put:nnx { l_@@/field }{V} { /\ref_value:nn{#1}{pdfradioindex} } - \pdfdict_put:nnx { l_@@/field }{DV} { /\ref_value:nn{#1}{pdfradioindex} } + \pdfdict_put:nnx { l_@@/field }{V} { /\@@_property_ref:nn{#1}{pdfradioindex} } + \pdfdict_put:nnx { l_@@/field }{DV} { /\@@_property_ref:nn{#1}{pdfradioindex} } % \end{macrocode} % now we create the field and set it as parent for the following annotation. % \begin{macrocode} @@ -763,7 +780,7 @@ \tl_if_empty:NT\l_@@_fieldID_tl { \pdfdict_get:nnN {l_@@/field}{T}\l_@@_fieldID_tl - \tl_put_left:Nn \l_@@_fieldID_tl {@@/radio/} + \tl_put_left:Nn \l_@@_fieldID_tl {@pdffield/radio/} } % \end{macrocode} % If unison has been set for the field pass it on: @@ -801,8 +818,7 @@ } \bool_if:NT\l_@@_radio_default_bool { - \exp_args:Ne - \ref_label:nn{\l_@@_fieldID_tl}{pdfradioindex} + \@@_property_record:Vn\l_@@_fieldID_tl{pdfradioindex} } % \end{macrocode} @@ -810,9 +826,9 @@ % \begin{macrocode} \int_compare:nNnTF { \l_@@_radio_value_num_int } = { - \ref_value:Vn\l_@@_fieldID_tl{pdfradioindex} + \@@_property_ref:Vn\l_@@_fieldID_tl{pdfradioindex} } - { \pdfannot_dict_put:nnx {widget}{AS}{/\ref_value:Vn\l_@@_fieldID_tl{pdfradioindex}} } + { \pdfannot_dict_put:nnx {widget}{AS}{/\@@_property_ref:Vn\l_@@_fieldID_tl{pdfradioindex}} } { \pdfannot_dict_put:nnx {widget}{AS}{/Off} } % \end{macrocode} % Now we set the appearances, if no key has been use we take the default. diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-textfield.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-textfield.dtx index e8fe7cb11c2..4ab1db01f85 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-textfield.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield-textfield.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield.dtx index fa5e3dade4c..1e1eb23f1e2 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffield.dtx @@ -69,7 +69,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -972,7 +972,7 @@ %<*package> %<@@=pdffield> \NeedsTeXFormat{LaTeX2e} -\ProvidesExplPackage{l3pdffield-testphase}{2023-08-29}{0.95z}% +\ProvidesExplPackage{l3pdffield-testphase}{2023-10-09}{0.96a}% {form fields} % \end{macrocode} % \subsection{hyperref specific command} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffile.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffile.dtx index b55f0a3710a..a98883d5c1e 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffile.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdffile.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -398,7 +398,7 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdffile}{2023-08-29}{0.95z} +\ProvidesExplPackage{l3pdffile}{2023-10-09}{0.96a} {embedding and referencing files in PDF---LaTeX PDF management testphase bundle} \RequirePackage{l3pdftools} %temporarly!! %</header> diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmanagement.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmanagement.dtx index 377178a5166..6081864cb64 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmanagement.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmanagement.dtx @@ -57,7 +57,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -632,7 +632,7 @@ %<@@=pdfmanagement> %<*header> % -\ProvidesExplPackage{l3pdfmanagement}{2023-08-29}{0.95z} +\ProvidesExplPackage{l3pdfmanagement}{2023-10-09}{0.96a} {Management of core PDF dictionaries (LaTeX PDF management testphase bundle)} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmeta.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmeta.dtx index cc9430e5e2f..1f30c5badf4 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmeta.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfmeta.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -566,7 +566,7 @@ % \begin{macrocode} %<@@=pdfmeta> %<*header> -\ProvidesExplPackage{l3pdfmeta}{2023-08-29}{0.95z} +\ProvidesExplPackage{l3pdfmeta}{2023-10-09}{0.96a} {PDF-Standards---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdftools.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdftools.dtx index c403d50ffca..6906727952a 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdftools.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdftools.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -231,7 +231,7 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdftools}{2023-08-29}{0.95z} +\ProvidesExplPackage{l3pdftools}{2023-10-09}{0.96a} {candidate commands for l3pdf---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfxform.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfxform.dtx index bb3ae298cb1..4df838e625d 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfxform.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/l3pdfxform.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -132,7 +132,7 @@ % \begin{macrocode} %<@@=pdf> %<*header> -\ProvidesExplPackage{l3pdfxform}{2023-08-29}{0.95z} +\ProvidesExplPackage{l3pdfxform}{2023-10-09}{0.96a} {command to create xforms (beta)---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/ltdocinit.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/ltdocinit.dtx index 37dfc04cc27..96da24d6482 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/ltdocinit.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/ltdocinit.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -220,7 +220,7 @@ % \begin{macrocode} %<@@=pdfmanagement> %<*header> -\ProvidesExplPackage{ltdocinit}{2023-08-29}{0.95z} +\ProvidesExplPackage{ltdocinit}{2023-10-09}{0.96a} {Initialize document metadata} %</header> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-firstaid.dtx index a64f84cc729..29fcf8bafa5 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-firstaid.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-firstaid.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -63,7 +63,7 @@ % |debug={firstaidoff={name1,name2,...},...}|. % \begin{macrocode} %<*package> -\ProvidesExplPackage{pdfmanagement-firstaid}{2023-08-29}{0.95z} +\ProvidesExplPackage{pdfmanagement-firstaid}{2023-10-09}{0.96a} {LaTeX PDF management testphase bundle / firstaid-patches} %<@@=pdfmanagement> @@ -155,6 +155,11 @@ package/xcolor/after } {\RequirePackage{xcolor-patches-tmp-ltx}} +% \end{macrocode} +% The patch must before color definitions are loaded, which will happen in +% hooks in a newer xcolor: +% \begin{macrocode} + \DeclareHookRule{package/xcolor/after}{pdfmanagement-firstaid}{before}{xcolor} } % \end{macrocode} % @@ -399,5 +404,6 @@ } %</package> % \end{macrocode}% +% % \end{documentation} % \PrintIndex diff --git a/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-testphase.dtx index 6208eaa379a..0fa1b2130b0 100644 --- a/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-testphase.dtx +++ b/Master/texmf-dist/source/latex/pdfmanagement-testphase/pdfmanagement-testphase.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.95z, released 2023-08-29} +% \date{Version 0.96a, released 2023-10-09} % % \maketitle % \begin{documentation} @@ -395,7 +395,7 @@ % \begin{macrocode} %<@@=pdf> %<*package> -\ProvidesExplPackage{pdfmanagement-testphase}{2023-08-29}{0.95z} +\ProvidesExplPackage{pdfmanagement-testphase}{2023-10-09}{0.96a} {LaTeX PDF management testphase bundle} \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} \IfFormatAtLeastTF{2020-10-01}{}{ @@ -423,7 +423,7 @@ % to allow to set it in the document. % \begin{macrocode} %<*header> -\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-08-29}{0.95z} +\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-10-09}{0.96a} {PDF~management~code~(testphase)} % \end{macrocode} % We define a boolean for the new delayed shipout. This is temporary. At some diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/color-ltx.sty b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/color-ltx.sty index ff7305d34bb..b04fa5aa9b6 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/color-ltx.sty +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/color-ltx.sty @@ -24,7 +24,7 @@ %% This file has the LPPL maintenance status "maintained". %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{color-ltx}[2023-08-29 v0.95z +\ProvidesPackage{color-ltx}[2023-10-09 v0.96a Standard LaTeX Color (patched for l3color, part of pdfmanagement-testphase, original version 2022/01/06 v1.3d) (DPC)] \edef\Gin@codes{% \catcode`\noexpand\^^A\the\catcode`\^^A\relax diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty index fc7f93841bb..6af2ce080f7 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty @@ -19,7 +19,7 @@ % % for those people who are interested. \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2023-08-29}{0.95z} +\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2023-10-09}{0.96a} {temporay patches to for the colorspace package to test pdfresource management ... UF} % colorspace can define more models, that l3color can't yet handle. diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/hgeneric-testphase.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/hgeneric-testphase.def index 70fd178ab73..4c37ce15fba 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/hgeneric-testphase.def +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/hgeneric-testphase.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: hyperref-generic.dtx -\ProvidesFile{hgeneric-testphase.def}[2023-08-29 v0.95z % +\ProvidesFile{hgeneric-testphase.def}[2023-10-09 v0.96a % generic Hyperref driver for the LaTeX PDF management testphase bundle] \RequirePackage{etoolbox} %why? @@ -173,6 +173,7 @@ } \cs_generate_variant:Nn\pdf_destination:nn {nf} \cs_generate_variant:Nn\pdf_object_ref:n {e} +\cs_generate_variant:Nn\pdf_pageobject_ref:n {e} \chardef\Hy@VersionChecked=1 %don't check the version! \cs_set_eq:NN \hypercalcbp \dim_to_decimal_in_bp:n \providecommand\@pdfborder{} @@ -453,33 +454,51 @@ { \PassOptionsToPackage{draft}{bookmark} } -\cs_new_protected:Npn \__hyp_ref_label:nn #1 #2 %label/attributes +\cs_if_exist:NTF \property_new:nnnn { - \@bsphack - \ref_label:nn{#1}{#2} - \@esphack + \cs_new_protected:Npn \__hyp_property_record:nn #1 #2 %label/attributes + { + \@bsphack + \property_record:nn{#1}{#2} + \@esphack + } + \prg_new_eq_conditional:NNn + \__hyp_property_if_recorded:nn \property_if_recorded:nn { T } + \cs_new_eq:NN \__hyp_property_ref_undefined_warn:nn \property_ref_undefined_warn:nn + \cs_new_eq:NN \__hyp_property_ref:nn \property_ref:nn } -\cs_generate_variant:Nn \__hyp_ref_label:nn {en} -\prg_new_eq_conditional:NNn \__hyp_ref_if_exist:nn \ref_if_exist:nn { p , T , F, TF } -\prg_generate_conditional_variant:Nnn \__hyp_ref_if_exist:nn {en} { p , T , F, TF } -\cs_new_protected:Npn \__hyp_ref_check:nn #1 #2 %label/attribute { - \__hyp_ref_if_exist:nnF {#1}{#2} + \cs_new_protected:Npn \__hyp_property_record:nn #1 #2 %label/attributes { - \protect\G@refundefinedtrue - \@latex@warning + \@bsphack + \ref_label:nn{#1}{#2} + \@esphack + } + + \prg_new_eq_conditional:NNn \__hyp_property_if_recorded:nn \ref_if_exist:nn { T } + + \cs_new_protected:Npn \__hyp_property_ref_undefined_warn:nn #1 #2 %label/attribute + { + \__hyp_property_if_recorded:nnF {#1}{#2} { - Reference~'\tl_to_str:n {#1}'~with~attribute~'\tl_to_str:n {#2}'~ - on~page~\thepage~\space undefined + \protect\G@refundefinedtrue + \@latex@warning + { + Reference~'\tl_to_str:n {#1}'~with~attribute~'\tl_to_str:n {#2}'~ + on~page~\thepage~\space undefined + } } } + + \cs_new:Npn \__hyp_property_ref:nn #1 #2 + { + \ref_value:nn{#1}{#2} + } } -\cs_generate_variant:Nn \__hyp_ref_check:nn {en} -\cs_new:Npn \__hyp_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \__hyp_ref_value:nn {en} +\cs_generate_variant:Nn \__hyp_property_record:nn {ee} +\prg_generate_conditional_variant:Nnn \__hyp_property_if_recorded:nn {ee} { T } +\cs_generate_variant:Nn \__hyp_property_ref_undefined_warn:nn {ee} +\cs_generate_variant:Nn \__hyp_property_ref:nn {ee} \box_new:N \l__hyp_tmpa_box \tl_new:N \l__hyp_tmpa_tl \seq_new:N \l__hyp_tmpa_seq @@ -2560,16 +2579,16 @@ %\zref@labelbyprops{HyAnn@\the\HyAnn@Count}{abspage}% %\zref@labelbylist {HyAnn@\the\HyAnn@Count} {l3pdf} %\zref@refused{HyAnn@\the\HyAnn@Count}% - \__hyp_ref_label:en {HyAnn@\the\HyAnn@Count}{abspage} - \__hyp_ref_check:en {HyAnn@\the\HyAnn@Count}{abspage} + \__hyp_property_record:ee {HyAnn@\the\HyAnn@Count}{abspage} + \__hyp_property_ref_undefined_warn:ee {HyAnn@\the\HyAnn@Count}{abspage} }% \def\Fld@pageobjref { - \__hyp_ref_if_exist:enT {HyAnn@\the\HyAnn@Count}{abspage} + \__hyp_property_if_recorded:eeT {HyAnn@\the\HyAnn@Count}{abspage} { - /P~\pdf_pageobject_ref:n + /P~\pdf_pageobject_ref:e { - \__hyp_ref_value:en{HyAnn@\the\HyAnn@Count}{abspage} + \__hyp_property_ref:ee{HyAnn@\the\HyAnn@Count}{abspage} } } } diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvipdfmx.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvipdfmx.def index c56535df981..2014531e7a8 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvipdfmx.def @@ -20,8 +20,10 @@ %% %% File: l3backend-testphase.dtx \ProvidesExplFile - {l3backend-testphase-dvipdfmx.def}{2023-08-29}{} + {l3backend-testphase-dvipdfmx.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx} +\cs_generate_variant:Nn \__kernel_backend_literal:n { e } +\cs_generate_variant:Nn \__pdf_backend:n { e } \bool_if:NT \l__pdfmanagement_delayed_shipout_bool { \cs_new_protected:Npn \__kernel_backend_shipout_literal:e #1 @@ -29,21 +31,37 @@ } \RequirePackage{l3ref-tmp} -\cs_generate_variant:Nn \ref_label:nn {en} -\cs_generate_variant:Nn \ref_value:nn {en} -\cs_new_protected:Npn \__pdf_backend_ref_label:nn #1 #2 - { - \@bsphack - \ref_label:nn{#1}{abspage} - \@esphack - } -\cs_new:Npn \__pdf_backend_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \__pdf_backend_ref_label:nn {en} -\cs_generate_variant:Nn \__pdf_backend_ref_value:nn {en} - \__kernel_backend_literal:x { dvipdfmx:config~C~ 0x0010 } +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + { + \@bsphack + \property_record:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + { + \property_ref:nn{#1}{abspage} + } + + } + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + %% \__pdf_backend_ref_label:nn #1 #2 + { + \@bsphack + \ref_label:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + %% \__pdf_backend_ref_value:nn #1 #2 + { + \ref_value:nn{#1}{abspage} + } + } +\cs_generate_variant:Nn \__pdf_backend_record_abspage:n {e} +\cs_generate_variant:Nn \__pdf_backend_ref_abspage:n {e} + \__kernel_backend_literal:n { dvipdfmx:config~C~ 0x0010 } \prop_new:N \g__pdf_tmpa_prop \tl_new:N \l__pdf_tmpa_tl \box_new:N \l__pdf_backend_tmpa_box @@ -113,9 +131,10 @@ %issues the values stored in the global prop with dvi \cs_new_protected:Npn \__pdf_backend_ThisPage_gpush:n #1 { - \exp_args:Nx \__pdf_backend_Page_primitive:n + \__pdf_backend_Page_primitive:e { \pdfdict_use:n { g__pdf_Core/Page} } } +\cs_generate_variant:Nn \__pdf_backend_Page_primitive:n { e } \clist_const:Nn \c__pdf_backend_PageResources_clist { ExtGState, @@ -139,11 +158,10 @@ \cs_new_protected:Npn \__pdf_backend_PageResources_gput:nnn #1 #2 #3 { % this is not used for output, but there is a test if the resource is empty - \exp_args:Nnx - \prop_gput:cnn { \__kernel_pdfdict_name:n { g__pdf_Core/Page/Resources/#1} } + \prop_gput:cne { \__kernel_pdfdict_name:n { g__pdf_Core/Page/Resources/#1} } { \str_convert_pdfname:n {#2} }{ #3 } %objects are not filled with \pdf_object_write as this is not additive! - \__pdf_backend:x + \__pdf_backend:e { put~\__pdf_backend_object_ref:n {__pdf/Page/Resources/#1}<</#2~#3>> } @@ -155,11 +173,11 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { \int_gincr:N \g__pdf_backend_name_int - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:code~/#1/l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ << @@ -174,11 +192,11 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:n #1 % #1 eg. Span { \int_gincr:N \g__pdf_backend_name_int - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:code~/\exp_not:n{#1}/l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ << @@ -234,7 +252,7 @@ { \prop_if_empty:cF { \__kernel_pdfdict_name:n { g__pdf_Core/Page/Resources/##1} } { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ <</##1~\__pdf_backend_object_ref:n {__pdf/Page/Resources/##1}>> @@ -245,7 +263,7 @@ \cs_new_protected:Npn \__pdf_backend_Names_gpush:nn #1 #2 %#1 name of name tree, #2 array content { \pdf_object_unnamed_write:nn {dict} {/Names [#2] } - \__pdf_backend:x {put~@names~<</#1~\pdf_object_ref_last: >>} + \__pdf_backend:e {put~@names~<</#1~\pdf_object_ref_last: >>} } \cs_new_protected:Npn \__pdf_backend_NamesEmbeddedFiles_add:nn #1 #2 {} @@ -298,7 +316,7 @@ \hook_gput_next_code:nn {shipout/background} { \mode_leave_vertical: %needed, the xform disappears without it. - \__pdf_backend:x + \__pdf_backend:e { bxobj ~ \__pdf_backend_xform_ref:n { #1 } \c_space_tl width ~ \pdfxform_wd:n { #1 } @@ -306,29 +324,29 @@ \c_space_tl depth ~ \pdfxform_dp:n { #1 } } \box_use_drop:c { g__pdf_backend_xform_#1_box } - \__pdf_backend:x {put ~ @resources ~<<#3>> } - \__pdf_backend:x + \__pdf_backend:e {put ~ @resources ~<<#3>> } + \__pdf_backend:e { put~ @resources ~ << /ExtGState~ \pdf_object_ref:n { __pdf/Page/Resources/ExtGState } >> } - \__pdf_backend:x + \__pdf_backend:e { put~ @resources ~ << /Pattern~ \pdf_object_ref:n { __pdf/Page/Resources/Pattern } >> } - \__pdf_backend:x + \__pdf_backend:e { put~ @resources ~ << /Shading~ \pdf_object_ref:n { __pdf/Page/Resources/Shading } >> } - \__pdf_backend:x + \__pdf_backend:e { put~ @resources ~ << @@ -336,8 +354,7 @@ \pdf_object_ref:n { __pdf/Page/Resources/ColorSpace } >> } - \exp_args:Nx - \__pdf_backend:x {exobj ~<<#2>>} + \__pdf_backend:e {exobj ~<<#2>>} } } @@ -350,7 +367,7 @@ { \hbox_set:Nn \l__pdf_backend_tmpa_box { - \__pdf_backend:x + \__pdf_backend:e { uxobj~ \__pdf_backend_xform_ref:n { #1 } } @@ -381,7 +398,7 @@ \cs_set_eq:NN \__pdf_backend_link_begin_structure_goto:nnw \__pdf_backend_link_begin_goto:nnw \cs_set_protected:Npn \__pdf_backend_structure_destination:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { dest ~ ( \exp_not:n {#1} ) [ @@ -402,7 +419,7 @@ } \exp_args:Ne \pdf_object_if_exist:nT { \l_pdf_current_structure_destination_tl } { - \__pdf_backend:x + \__pdf_backend:e { obj ~ @pdf.SDest.\exp_not:n{#1} [ @@ -453,7 +470,7 @@ } \exp_args:Ne \pdf_object_if_exist:nT { \l_pdf_current_structure_destination_tl } { - \__pdf_backend:x + \__pdf_backend:e { obj ~ @pdf.SDest.\exp_not:n{#2} [ diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def index 78b8bde4665..8b4d25eff36 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvips.def @@ -20,8 +20,10 @@ %% %% File: l3backend-testphase.dtx \ProvidesExplFile - {l3backend-testphase-dvips.def}{2023-08-29}{} + {l3backend-testphase-dvips.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvips} +\cs_generate_variant:Nn \__kernel_backend_postscript:n { e } +\cs_generate_variant:Nn \__pdf_backend_pdfmark:n { e } \bool_if:NT \l__pdfmanagement_delayed_shipout_bool { \cs_new_protected:Npn \__kernel_backend_shipout_literal:e #1 @@ -29,20 +31,36 @@ } \RequirePackage{l3ref-tmp} -\cs_generate_variant:Nn \ref_label:nn {en} -\cs_generate_variant:Nn \ref_value:nn {en} -\cs_new_protected:Npn \__pdf_backend_ref_label:nn #1 #2 - { - \@bsphack - \ref_label:nn{#1}{abspage} - \@esphack - } -\cs_new:Npn \__pdf_backend_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \__pdf_backend_ref_label:nn {en} -\cs_generate_variant:Nn \__pdf_backend_ref_value:nn {en} +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + { + \@bsphack + \property_record:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + { + \property_ref:nn{#1}{abspage} + } + + } + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + %% \__pdf_backend_ref_label:nn #1 #2 + { + \@bsphack + \ref_label:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + %% \__pdf_backend_ref_value:nn #1 #2 + { + \ref_value:nn{#1}{abspage} + } + } +\cs_generate_variant:Nn \__pdf_backend_record_abspage:n {e} +\cs_generate_variant:Nn \__pdf_backend_ref_abspage:n {e} \prop_new:N \g__pdf_tmpa_prop \tl_new:N \l__pdf_tmpa_tl \box_new:N \l__pdf_backend_tmpa_box @@ -111,9 +129,10 @@ %issues the values stored in the global prop with dvi \cs_new_protected:Npn \__pdf_backend_ThisPage_gpush:n #1 { - \exp_args:Nx \__pdf_backend_Page_primitive:n - { \pdfdict_use:n { g__pdf_Core/Page} } + \__pdf_backend_Page_primitive:e + { \pdfdict_use:n { g__pdf_Core/Page} } } +\cs_generate_variant:Nn \__pdf_backend_Page_primitive:n { e } \clist_const:Nn \c__pdf_backend_PageResources_clist { ExtGState, @@ -144,11 +163,11 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { - \__pdf_backend_pdfmark:x{/#1~\__pdf_backend_object_ref:n{#2}~/BDC} + \__pdf_backend_pdfmark:e{/#1~\__pdf_backend_object_ref:n{#2}~/BDC} } \cs_set_protected:Npn \__pdf_backend_bdcobject:n #1 % #1 eg. Span, { - \__pdf_backend_pdfmark:x{/#1~\__pdf_backend_object_last:~/BDC} + \__pdf_backend_pdfmark:e{/#1~\__pdf_backend_object_last:~/BDC} } \cs_set_protected:Npn \__pdf_backend_emc: { @@ -165,7 +184,7 @@ \cs_new_protected:Npn \__pdf_backend_Names_gpush:nn #1 #2 {} \cs_new_protected:Npn \__pdf_backend_NamesEmbeddedFiles_add:nn #1 #2 { - \__pdf_backend_pdfmark:x + \__pdf_backend_pdfmark:e { /Name~#1~ /FS~#2~ @@ -220,7 +239,7 @@ %\box_scale:Nnn \l__pdf_backend_tmpa_box {1} {-1} \hbox_set:Nn\l__pdf_backend_tmpb_box { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { gsave~currentpoint~ initclip~ % restore default clipping path (page device/whole page) @@ -248,7 +267,7 @@ } \str_if_eq:eeF{#1}{} { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { product~(Ghostscript)~search~ { @@ -274,7 +293,7 @@ { \hbox_set:Nn \l__pdf_backend_tmpa_box { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { gsave~currentpoint~translate~1~-1~scale~ mark~{ pdf.obj \int_use:c{c__pdf_backend_xform_ \tl_to_str:n {#1} _int }}~ diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvisvgm.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvisvgm.def index 19b003dcedd..7420d8d222a 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-dvisvgm.def @@ -20,7 +20,7 @@ %% %% File: l3backend-testphase.dtx \ProvidesExplFile - {l3backend-testphase-dvisvgm.def}{2023-08-29}{} + {l3backend-testphase-dvisvgm.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm} \bool_if:NT \l__pdfmanagement_delayed_shipout_bool { @@ -29,20 +29,36 @@ } \RequirePackage{l3ref-tmp} -\cs_generate_variant:Nn \ref_label:nn {en} -\cs_generate_variant:Nn \ref_value:nn {en} -\cs_new_protected:Npn \__pdf_backend_ref_label:nn #1 #2 - { - \@bsphack - \ref_label:nn{#1}{abspage} - \@esphack - } -\cs_new:Npn \__pdf_backend_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \__pdf_backend_ref_label:nn {en} -\cs_generate_variant:Nn \__pdf_backend_ref_value:nn {en} +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + { + \@bsphack + \property_record:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + { + \property_ref:nn{#1}{abspage} + } + + } + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + %% \__pdf_backend_ref_label:nn #1 #2 + { + \@bsphack + \ref_label:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + %% \__pdf_backend_ref_value:nn #1 #2 + { + \ref_value:nn{#1}{abspage} + } + } +\cs_generate_variant:Nn \__pdf_backend_record_abspage:n {e} +\cs_generate_variant:Nn \__pdf_backend_ref_abspage:n {e} \prop_new:N \g__pdf_tmpa_prop \tl_new:N \l__pdf_tmpa_tl \box_new:N \l__pdf_backend_tmpa_box @@ -90,6 +106,7 @@ %the code to push the values, used in shipout \cs_new_protected:Npn \__pdf_backend_ThisPage_gpush:n #1 {} +\cs_generate_variant:Nn \__pdf_backend_Page_primitive:n { e } \clist_const:Nn \c__pdf_backend_PageResources_clist { ExtGState, diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-luatex.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-luatex.def index f8d496ad51d..47210ec3190 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-luatex.def +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-luatex.def @@ -20,8 +20,9 @@ %% %% File: l3backend-testphase.dtx \ProvidesExplFile - {l3backend-testphase-luatex.def}{2023-08-29}{} + {l3backend-testphase-luatex.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)} +\cs_generate_variant:Nn \__kernel_backend_literal_page:n { e } \bool_if:NT \l__pdfmanagement_delayed_shipout_bool { \cs_new_protected:Npn \__kernel_backend_shipout_literal:e #1 @@ -39,20 +40,36 @@ } \RequirePackage{l3ref-tmp} -\cs_generate_variant:Nn \ref_label:nn {en} -\cs_generate_variant:Nn \ref_value:nn {en} -\cs_new_protected:Npn \__pdf_backend_ref_label:nn #1 #2 - { - \@bsphack - \ref_label:nn{#1}{abspage} - \@esphack - } -\cs_new:Npn \__pdf_backend_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \__pdf_backend_ref_label:nn {en} -\cs_generate_variant:Nn \__pdf_backend_ref_value:nn {en} +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + { + \@bsphack + \property_record:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + { + \property_ref:nn{#1}{abspage} + } + + } + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + %% \__pdf_backend_ref_label:nn #1 #2 + { + \@bsphack + \ref_label:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + %% \__pdf_backend_ref_value:nn #1 #2 + { + \ref_value:nn{#1}{abspage} + } + } +\cs_generate_variant:Nn \__pdf_backend_record_abspage:n {e} +\cs_generate_variant:Nn \__pdf_backend_ref_abspage:n {e} \prop_new:N \g__pdf_tmpa_prop \tl_new:N \l__pdf_tmpa_tl \box_new:N \l__pdf_backend_tmpa_box @@ -160,6 +177,7 @@ } } +\cs_generate_variant:Nn \__pdf_backend_Page_primitive:n { e } \clist_const:Nn \c__pdf_backend_PageResources_clist { ExtGState, @@ -207,17 +225,17 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { \int_gincr:N \g__pdf_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /#1 ~ /l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } \bool_if:NTF \l__pdf_backend_xform_bool { - \exp_args:Nnx\pdfdict_gput:nnn + \pdfdict_gput:nee { g__pdf_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g__pdf_backend_name_int } { \__pdf_backend_object_ref:n { #2 } } } { - \exp_args:Nx \tex_latelua:D + \exp_args:Ne \tex_latelua:D { ltx.pdf.Page_Resources_Properties_gput ( @@ -231,17 +249,17 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:n #1% #1 eg. Span { \int_gincr:N \g__pdf_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /\exp_not:n{#1} ~ /l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } \bool_if:NTF \l__pdf_backend_xform_bool { - \exp_args:Nnx\pdfdict_gput:nnn %no handler needed + \pdfdict_gput:nee %no handler needed { g__pdf_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g__pdf_backend_name_int } { \__pdf_backend_object_last: } } { - \exp_args:Nx \tex_latelua:D + \exp_args:Ne \tex_latelua:D { ltx.pdf.Page_Resources_Properties_gput ( diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-pdftex.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-pdftex.def index 08ff703af3a..71e598bfbaf 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-pdftex.def +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-pdftex.def @@ -20,8 +20,9 @@ %% %% File: l3backend-testphase.dtx \ProvidesExplFile - {l3backend-testphase-pdftex.def}{2023-08-29}{} + {l3backend-testphase-pdftex.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)} +\cs_generate_variant:Nn \__kernel_backend_literal_page:n { e } \bool_if:NT \l__pdfmanagement_delayed_shipout_bool { \cs_new_protected:Npn \__kernel_backend_shipout_literal:e #1 @@ -39,20 +40,36 @@ } \RequirePackage{l3ref-tmp} -\cs_generate_variant:Nn \ref_label:nn {en} -\cs_generate_variant:Nn \ref_value:nn {en} -\cs_new_protected:Npn \__pdf_backend_ref_label:nn #1 #2 - { - \@bsphack - \ref_label:nn{#1}{abspage} - \@esphack - } -\cs_new:Npn \__pdf_backend_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \__pdf_backend_ref_label:nn {en} -\cs_generate_variant:Nn \__pdf_backend_ref_value:nn {en} +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + { + \@bsphack + \property_record:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + { + \property_ref:nn{#1}{abspage} + } + + } + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + %% \__pdf_backend_ref_label:nn #1 #2 + { + \@bsphack + \ref_label:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + %% \__pdf_backend_ref_value:nn #1 #2 + { + \ref_value:nn{#1}{abspage} + } + } +\cs_generate_variant:Nn \__pdf_backend_record_abspage:n {e} +\cs_generate_variant:Nn \__pdf_backend_ref_abspage:n {e} \prop_new:N \g__pdf_tmpa_prop \tl_new:N \l__pdf_tmpa_tl \box_new:N \l__pdf_backend_tmpa_box @@ -104,10 +121,10 @@ { %we need to know the page the resource should be added too. \int_gincr:N\g__pdf_backend_resourceid_int - \__pdf_backend_ref_label:en { l3pdf\int_use:N\g__pdf_backend_resourceid_int }{abspage} + \__pdf_backend_record_abspage:e { l3pdf\int_use:N\g__pdf_backend_resourceid_int } \tl_set:Nx \l__pdf_tmpa_tl { - \__pdf_backend_ref_value:en {l3pdf\int_use:N\g__pdf_backend_resourceid_int}{abspage} + \__pdf_backend_ref_abspage:e {l3pdf\int_use:N\g__pdf_backend_resourceid_int} } \pdfdict_if_exist:nF { g__pdf_Core/backend_Page\l__pdf_tmpa_tl} { @@ -126,11 +143,12 @@ \prop_gput:Nnn \g__pdf_tmpa_prop { ##1 }{ ##2 } } } - \exp_args:Nx \__pdf_backend_Page_primitive:n + \__pdf_backend_Page_primitive:e { \prop_map_function:NN \g__pdf_tmpa_prop \pdfdict_item:ne } } +\cs_generate_variant:Nn \__pdf_backend_Page_primitive:n { e } \clist_const:Nn \c__pdf_backend_PageResources_clist { ExtGState, @@ -173,28 +191,28 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { \int_gincr:N \g__pdf_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /#1 ~ /l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } % code to set the property .... \int_gincr:N\g__pdf_backend_resourceid_int \bool_if:NTF \l__pdf_backend_xform_bool { - \exp_args:Nnxx\pdfdict_gput:nnn %no handler needed + \pdfdict_gput:nee %no handler needed { g__pdf_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g__pdf_backend_resourceid_int } { \__pdf_backend_object_ref:n { #2 } } } { - \__pdf_backend_ref_label:en{l3pdf\int_use:N\g__pdf_backend_resourceid_int}{abspage} + \__pdf_backend_record_abspage:e {l3pdf\int_use:N\g__pdf_backend_resourceid_int} \tl_set:Nx \l__pdf_tmpa_tl { - \__pdf_backend_ref_value:en{l3pdf\int_use:N\g__pdf_backend_resourceid_int}{abspage} + \__pdf_backend_ref_abspage:e{l3pdf\int_use:N\g__pdf_backend_resourceid_int} } \pdfdict_if_exist:nF { g__pdf_Core/backend_Page\l__pdf_tmpa_tl/Resources/Properties } { \pdfdict_new:n { g__pdf_Core/backend_Page\l__pdf_tmpa_tl/Resources/Properties } } - \exp_args:Nnxx\pdfdict_gput:nnn + \pdfdict_gput:nee { g__pdf_Core/backend_Page\l__pdf_tmpa_tl/Resources/Properties } { l3pdf\int_use:N\g__pdf_backend_resourceid_int } { \__pdf_backend_object_ref:n{#2} } @@ -203,28 +221,28 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:n #1% #1 eg. Span { \int_gincr:N \g__pdf_backend_name_int - \exp_args:Nx\__kernel_backend_literal_page:n + \__kernel_backend_literal_page:e { /\exp_not:n{#1} ~ /l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } % code to set the property .... \int_gincr:N\g__pdf_backend_resourceid_int \bool_if:NTF \l__pdf_backend_xform_bool { - \exp_args:Nnxx\pdfdict_gput:nnn + \pdfdict_gput:nee { g__pdf_Core/Xform/Resources/Properties } { l3pdf\int_use:N\g__pdf_backend_resourceid_int } { \__pdf_backend_object_last: } } { - \__pdf_backend_ref_label:en{l3pdf\int_use:N\g__pdf_backend_resourceid_int}{abspage} + \__pdf_backend_record_abspage:e{l3pdf\int_use:N\g__pdf_backend_resourceid_int} \tl_set:Nx \l__pdf_tmpa_tl { - \__pdf_backend_ref_value:en{l3pdf\int_use:N\g__pdf_backend_resourceid_int}{abspage} + \__pdf_backend_ref_abspage:e{l3pdf\int_use:N\g__pdf_backend_resourceid_int} } \pdfdict_if_exist:nF { g__pdf_Core/backend_Page\l__pdf_tmpa_tl/Resources/Properties } { \pdfdict_new:n { g__pdf_Core/backend_Page\l__pdf_tmpa_tl/Resources/Properties } } - \exp_args:Nnxx\pdfdict_gput:nnn + \pdfdict_gput:nee { g__pdf_Core/backend_Page\l__pdf_tmpa_tl/Resources/Properties } { l3pdf\int_use:N\g__pdf_backend_resourceid_int } { \__pdf_backend_object_last: } @@ -277,7 +295,7 @@ \cs_new_protected:Npn \__pdf_backend_PageResources_gpush:n #1 { - \exp_args:NNx \tex_global:D \tex_pdfpageresources:D + \exp_args:NNe \tex_global:D \tex_pdfpageresources:D { \prop_if_exist:cT { \__kernel_pdfdict_name:n { g__pdf_Core/backend_Page#1/Resources/Properties } } diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-xetex.def b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-xetex.def index 295ff980ee5..095c557ba4b 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-xetex.def +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3backend-testphase-xetex.def @@ -20,8 +20,10 @@ %% %% File: l3backend-testphase.dtx \ProvidesExplFile - {l3backend-testphase-xetex.def}{2023-08-29}{} + {l3backend-testphase-xetex.def}{2023-10-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX} +\cs_generate_variant:Nn \__kernel_backend_literal:n { e } +\cs_generate_variant:Nn \__pdf_backend:n { e } \bool_if:NT \l__pdfmanagement_delayed_shipout_bool { \cs_new_protected:Npn \__kernel_backend_shipout_literal:e #1 @@ -29,21 +31,37 @@ } \RequirePackage{l3ref-tmp} -\cs_generate_variant:Nn \ref_label:nn {en} -\cs_generate_variant:Nn \ref_value:nn {en} -\cs_new_protected:Npn \__pdf_backend_ref_label:nn #1 #2 - { - \@bsphack - \ref_label:nn{#1}{abspage} - \@esphack - } -\cs_new:Npn \__pdf_backend_ref_value:nn #1 #2 - { - \ref_value:nn{#1}{#2} - } -\cs_generate_variant:Nn \__pdf_backend_ref_label:nn {en} -\cs_generate_variant:Nn \__pdf_backend_ref_value:nn {en} - \__kernel_backend_literal:x { dvipdfmx:config~C~ 0x0010 } +\cs_if_exist:NTF \property_new:nnnn + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + { + \@bsphack + \property_record:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + { + \property_ref:nn{#1}{abspage} + } + + } + { + \cs_new_protected:Npn \__pdf_backend_record_abspage:n #1 + %% \__pdf_backend_ref_label:nn #1 #2 + { + \@bsphack + \ref_label:nn{#1}{abspage} + \@esphack + } + \cs_new:Npn \__pdf_backend_ref_abspage:n #1 + %% \__pdf_backend_ref_value:nn #1 #2 + { + \ref_value:nn{#1}{abspage} + } + } +\cs_generate_variant:Nn \__pdf_backend_record_abspage:n {e} +\cs_generate_variant:Nn \__pdf_backend_ref_abspage:n {e} + \__kernel_backend_literal:n { dvipdfmx:config~C~ 0x0010 } \prop_new:N \g__pdf_tmpa_prop \tl_new:N \l__pdf_tmpa_tl \box_new:N \l__pdf_backend_tmpa_box @@ -113,9 +131,10 @@ %issues the values stored in the global prop with dvi \cs_new_protected:Npn \__pdf_backend_ThisPage_gpush:n #1 { - \exp_args:Nx \__pdf_backend_Page_primitive:n + \__pdf_backend_Page_primitive:e { \pdfdict_use:n { g__pdf_Core/Page} } } +\cs_generate_variant:Nn \__pdf_backend_Page_primitive:n { e } \clist_const:Nn \c__pdf_backend_PageResources_clist { ExtGState, @@ -139,11 +158,10 @@ \cs_new_protected:Npn \__pdf_backend_PageResources_gput:nnn #1 #2 #3 { % this is not used for output, but there is a test if the resource is empty - \exp_args:Nnx - \prop_gput:cnn { \__kernel_pdfdict_name:n { g__pdf_Core/Page/Resources/#1} } + \prop_gput:cne { \__kernel_pdfdict_name:n { g__pdf_Core/Page/Resources/#1} } { \str_convert_pdfname:n {#2} }{ #3 } %objects are not filled with \pdf_object_write as this is not additive! - \__pdf_backend:x + \__pdf_backend:e { put~\__pdf_backend_object_ref:n {__pdf/Page/Resources/#1}<</#2~#3>> } @@ -155,11 +173,11 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:nn #1 #2 % #1 eg. Span, #2: object name { \int_gincr:N \g__pdf_backend_name_int - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:code~/#1/l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ << @@ -174,11 +192,11 @@ \cs_set_protected:Npn \__pdf_backend_bdcobject:n #1 % #1 eg. Span { \int_gincr:N \g__pdf_backend_name_int - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:code~/\exp_not:n{#1}/l3pdf\int_use:N\g__pdf_backend_name_int\c_space_tl BDC } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ << @@ -234,7 +252,7 @@ { \prop_if_empty:cF { \__kernel_pdfdict_name:n { g__pdf_Core/Page/Resources/##1} } { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:put~@resources~ <</##1~\__pdf_backend_object_ref:n {__pdf/Page/Resources/##1}>> @@ -245,7 +263,7 @@ \cs_new_protected:Npn \__pdf_backend_Names_gpush:nn #1 #2 %#1 name of name tree, #2 array content { \pdf_object_unnamed_write:nn {dict} {/Names [#2] } - \__pdf_backend:x {put~@names~<</#1~\pdf_object_ref_last: >>} + \__pdf_backend:e {put~@names~<</#1~\pdf_object_ref_last: >>} } \cs_new_protected:Npn \__pdf_backend_NamesEmbeddedFiles_add:nn #1 #2 {} @@ -298,7 +316,7 @@ \hook_gput_next_code:nn {shipout/background} { \mode_leave_vertical: %needed, the xform disappears without it. - \__pdf_backend:x + \__pdf_backend:e { bxobj ~ \__pdf_backend_xform_ref:n { #1 } \c_space_tl width ~ \pdfxform_wd:n { #1 } @@ -306,29 +324,29 @@ \c_space_tl depth ~ \pdfxform_dp:n { #1 } } \box_use_drop:c { g__pdf_backend_xform_#1_box } - \__pdf_backend:x {put ~ @resources ~<<#3>> } - \__pdf_backend:x + \__pdf_backend:e {put ~ @resources ~<<#3>> } + \__pdf_backend:e { put~ @resources ~ << /ExtGState~ \pdf_object_ref:n { __pdf/Page/Resources/ExtGState } >> } - \__pdf_backend:x + \__pdf_backend:e { put~ @resources ~ << /Pattern~ \pdf_object_ref:n { __pdf/Page/Resources/Pattern } >> } - \__pdf_backend:x + \__pdf_backend:e { put~ @resources ~ << /Shading~ \pdf_object_ref:n { __pdf/Page/Resources/Shading } >> } - \__pdf_backend:x + \__pdf_backend:e { put~ @resources ~ << @@ -336,8 +354,7 @@ \pdf_object_ref:n { __pdf/Page/Resources/ColorSpace } >> } - \exp_args:Nx - \__pdf_backend:x {exobj ~<<#2>>} + \__pdf_backend:e {exobj ~<<#2>>} } } @@ -350,7 +367,7 @@ { \hbox_set:Nn \l__pdf_backend_tmpa_box { - \__pdf_backend:x + \__pdf_backend:e { uxobj~ \__pdf_backend_xform_ref:n { #1 } } @@ -381,7 +398,7 @@ \cs_set_eq:NN \__pdf_backend_link_begin_structure_goto:nnw \__pdf_backend_link_begin_goto:nnw \cs_set_protected:Npn \__pdf_backend_structure_destination:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { dest ~ ( \exp_not:n {#1} ) [ @@ -402,7 +419,7 @@ } \exp_args:Ne \pdf_object_if_exist:nT { \l_pdf_current_structure_destination_tl } { - \__pdf_backend:x + \__pdf_backend:e { obj ~ @pdf.SDest.\exp_not:n{#1} [ @@ -453,7 +470,7 @@ } \exp_args:Ne \pdf_object_if_exist:nT { \l_pdf_current_structure_destination_tl } { - \__pdf_backend:x + \__pdf_backend:e { obj ~ @pdf.SDest.\exp_not:n{#2} [ diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3pdffield-testphase.sty b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3pdffield-testphase.sty index 65dde6e846f..8be75cd66cd 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3pdffield-testphase.sty +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/l3pdffield-testphase.sty @@ -27,7 +27,7 @@ %% File: l3pdffield.dtx \NeedsTeXFormat{LaTeX2e} -\ProvidesExplPackage{l3pdffield-testphase}{2023-08-29}{0.95z}% +\ProvidesExplPackage{l3pdffield-testphase}{2023-10-09}{0.96a}% {form fields} \csname HyField@NeedAppearancesfalse\endcsname % suppress NeedAppearances \str_new:N \l__pdffield_tmpa_str @@ -1169,12 +1169,28 @@ } \cs_gset_eq:NN \__pdffield_radio_default_appearances: \prg_do_nothing: } -\ref_attribute_gset:nnnn {pdfradioindex}{0}{now} - { - \int_use:N\l__pdffield_radio_value_num_int - } -\cs_generate_variant:Nn \ref_label:nn {V} -\cs_generate_variant:Nn \ref_value:nn {V} +\cs_if_exist:NTF \property_new:nnnn + { + \property_new:nnnn {pdfradioindex}{now} + {0} + { + \int_use:N\l__pdffield_radio_value_num_int + } + \cs_new_eq:NN \__pdffield_property_record:nn \property_record:nn + \cs_new_eq:NN \__pdffield_property_ref:nn \property_ref:nn + } + { + \ref_attribute_gset:nnnn {pdfradioindex}{0}{now} + { + \int_use:N\l__pdffield_radio_value_num_int + } + \cs_new_eq:NN \__pdffield_property_record:nn \ref_label:nn + \cs_new_eq:NN \__pdffield_property_ref:nn \ref_value:nn + } + + \cs_generate_variant:Nn \__pdffield_property_record:nn {V} + \cs_generate_variant:Nn \__pdffield_property_ref:nn {V} + \cs_new_protected:Npn \__pdffield_radio_field:n #1 %name { \pdf_object_if_exist:nF {__pdffield/field/__pdffield/radio/#1} @@ -1188,8 +1204,8 @@ {__pdffield/field/__pdffield/radio-Opt/#1} { array } {\seq_use:cn {g__pdffield_radio_opt_#1_seq}{~}} } - \pdfdict_put:nnx { l__pdffield/field }{V} { /\ref_value:nn{#1}{pdfradioindex} } - \pdfdict_put:nnx { l__pdffield/field }{DV} { /\ref_value:nn{#1}{pdfradioindex} } + \pdfdict_put:nnx { l__pdffield/field }{V} { /\__pdffield_property_ref:nn{#1}{pdfradioindex} } + \pdfdict_put:nnx { l__pdffield/field }{DV} { /\__pdffield_property_ref:nn{#1}{pdfradioindex} } \__pdffield_field:n { __pdffield/radio/#1 } \bool_if:NF \l__pdffield_radio_unison_bool { @@ -1226,7 +1242,7 @@ \tl_if_empty:NT\l__pdffield_fieldID_tl { \pdfdict_get:nnN {l__pdffield/field}{T}\l__pdffield_fieldID_tl - \tl_put_left:Nn \l__pdffield_fieldID_tl {__pdffield/radio/} + \tl_put_left:Nn \l__pdffield_fieldID_tl {@pdffield/radio/} } \cs_if_exist_use:c {g__pdffield_radio_unison_state_ \l__pdffield_fieldID_tl _tl} \__pdffield_radio_field:V\l__pdffield_fieldID_tl @@ -1252,15 +1268,14 @@ } \bool_if:NT\l__pdffield_radio_default_bool { - \exp_args:Ne - \ref_label:nn{\l__pdffield_fieldID_tl}{pdfradioindex} + \__pdffield_property_record:Vn\l__pdffield_fieldID_tl{pdfradioindex} } \int_compare:nNnTF { \l__pdffield_radio_value_num_int } = { - \ref_value:Vn\l__pdffield_fieldID_tl{pdfradioindex} + \__pdffield_property_ref:Vn\l__pdffield_fieldID_tl{pdfradioindex} } - { \pdfannot_dict_put:nnx {widget}{AS}{/\ref_value:Vn\l__pdffield_fieldID_tl{pdfradioindex}} } + { \pdfannot_dict_put:nnx {widget}{AS}{/\__pdffield_property_ref:Vn\l__pdffield_fieldID_tl{pdfradioindex}} } { \pdfannot_dict_put:nnx {widget}{AS}{/Off} } \tl_if_empty:NT\l__pdffield_radio_appearance_code_tl { diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-firstaid.sty b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-firstaid.sty index 53db782f981..4b14960d8e2 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-firstaid.sty +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-firstaid.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: pdfmanagement-firstaid.dtx -\ProvidesExplPackage{pdfmanagement-firstaid}{2023-08-29}{0.95z} +\ProvidesExplPackage{pdfmanagement-firstaid}{2023-10-09}{0.96a} {LaTeX PDF management testphase bundle / firstaid-patches} \clist_map_inline:nn @@ -72,6 +72,7 @@ package/xcolor/after } {\RequirePackage{xcolor-patches-tmp-ltx}} + \DeclareHookRule{package/xcolor/after}{pdfmanagement-firstaid}{before}{xcolor} } \bool_lazy_all:nT { diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.ltx b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.ltx index 8cee027fc52..e0f6f78d832 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.ltx +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.ltx @@ -27,7 +27,7 @@ %% and all files in that bundle must be distributed together. %% %% File: pdfmanagement-testphase.dtx -\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-08-29}{0.95z} +\ProvidesExplFile{pdfmanagement-testphase.ltx}{2023-10-09}{0.96a} {PDF~management~code~(testphase)} \bool_new:N\l__pdfmanagement_delayed_shipout_bool \msg_new:nnn {pdfmanagement}{delayed-shipout} @@ -214,7 +214,7 @@ } \cs_set_eq:NN \pdfdict_put:nnn \__pdfdict_put:nnn -\cs_generate_variant:Nn \pdfdict_put:nnn {nnx,nno} +\cs_generate_variant:Nn \pdfdict_put:nnn {nnx,nno,nee} \cs_new_protected:Npn \__pdfdict_gput:nnn #1 #2 #3 %#1 global dict, #2 name, #3 value { @@ -235,7 +235,7 @@ } \cs_set_eq:NN \pdfdict_gput:nnn \__pdfdict_gput:nnn -\cs_generate_variant:Nn \pdfdict_gput:nnn {nnx,nno} +\cs_generate_variant:Nn \pdfdict_gput:nnn {nnx,nno,nee} \cs_new_protected:Npn \__pdfdict_get:nnN #1 #2 #3 %dict,key,macro { \__pdfdict_if_exist:nTF { #1 } diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.sty b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.sty index ca07b9400a5..8ef18663978 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.sty +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/pdfmanagement-testphase.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: pdfmanagement-testphase.dtx -\ProvidesExplPackage{pdfmanagement-testphase}{2023-08-29}{0.95z} +\ProvidesExplPackage{pdfmanagement-testphase}{2023-10-09}{0.96a} {LaTeX PDF management testphase bundle} \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} \IfFormatAtLeastTF{2020-10-01}{}{ diff --git a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty index c5a9a8daebe..29074b3de42 100644 --- a/Master/texmf-dist/tex/latex/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty +++ b/Master/texmf-dist/tex/latex/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty @@ -1,6 +1,6 @@ -%% LaTeX2e file `xcolor-patches.sty' +%% LaTeX2e file `xcolor-patches-tmp-ltx.sty' %% -\ProvidesPackage{xcolor-patches-tmp-ltx}[2023-08-29 v0.95z patch xcolor for l3color] +\ProvidesPackage{xcolor-patches-tmp-ltx}[2023-10-09 v0.96a patch xcolor for l3color] \@ifundefined{color_set:nn}{\RequirePackage{l3color}}{} \ExplSyntaxOn |