diff options
Diffstat (limited to 'macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx')
-rw-r--r-- | macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx | 95 |
1 files changed, 83 insertions, 12 deletions
diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx index e812e75256..94dddfa8ee 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx @@ -45,7 +45,7 @@ % }^^A % } % -% \date{Version 0.95w, released 2023-02-20} +% \date{Version 0.95x, released 2023-03-09} % % \maketitle % @@ -56,27 +56,27 @@ % \begin{macrocode} %<drivers>\ProvidesExplFile %<*dvipdfmx> - {l3backend-testphase-dvipdfmx.def}{2023-02-20}{} + {l3backend-testphase-dvipdfmx.def}{2023-03-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-testphase-dvips.def}{2023-02-20}{} + {l3backend-testphase-dvips.def}{2023-03-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvips} %</dvips> %<*dvisvgm> - {l3backend-testphase-dvisvgm.def}{2023-02-20}{} + {l3backend-testphase-dvisvgm.def}{2023-03-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm} %</dvisvgm> %<*luatex> - {l3backend-testphase-luatex.def}{2023-02-20}{} + {l3backend-testphase-luatex.def}{2023-03-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)} %</luatex> %<*pdftex> - {l3backend-testphase-pdftex.def}{2023-02-20}{} + {l3backend-testphase-pdftex.def}{2023-03-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)} %</pdftex> %<*xdvipdfmx> - {l3backend-testphase-xetex.def}{2023-02-20}{} + {l3backend-testphase-xetex.def}{2023-03-09}{} {LaTeX~PDF~management~testphase~bundle~backend~support: XeTeX} %</xdvipdfmx> % \end{macrocode} @@ -1965,6 +1965,7 @@ \pdfmanagement_add:nnn{Info}{Creator}{(TeX)} %</drivers> %<*dvips> + \AddToHook{begindocument}{\pdfmanagement_add:nnn{Info}{Producer}{(pdfTeX+dvips)}} \__kernel_backend_literal:e{!~<</DocumentUUID~(DocumentUUID)>>~setpagedevice} \__kernel_backend_literal:e{!~<</InstanceUUID~(InstanceUUID)>>~setpagedevice} %</dvips> @@ -2006,6 +2007,7 @@ \AddToDocumentProperties[hyperref]{pdfmetadate}{D:20010101205959-00'00'} \AddToDocumentProperties[hyperref]{pdfdate}{D:20010101205959-00'00'} \AddToDocumentProperties[hyperref]{pdfinstanceid}{uuid:0a57c455-157a-4141-8c19-6237d832fc80} + \AddToDocumentProperties[hyperref]{pdfproducer}{\c_sys_engine_exec_str-NN.NN.NN} } %</drivers> % \end{macrocode} @@ -2024,29 +2026,98 @@ % an unnamed object so should be referenced directly with |\pdf_object_ref_last:| % \begin{macrocode} %<*luatex> -\cs_new_protected:Npn \__pdf_backend_metadata_stream:n #1 +\cs_new_protected:Npn \@@_backend_metadata_stream:n #1 { \tex_immediate:D \tex_pdfextension:D obj ~uncompressed~ - \__pdf_backend_object_write:nn {stream} {{/Type~/Metadata~/Subtype~/XML}{#1}} + \@@_backend_object_write:nn {stream} {{/Type~/Metadata~/Subtype~/XML}{#1}} } %</luatex> %<*pdftex> -\cs_new_protected:Npn \__pdf_backend_metadata_stream:n #1 +\cs_new_protected:Npn \@@_backend_metadata_stream:n #1 { \group_begin: \tex_pdfcompresslevel:D 0 \scan_stop: \tex_immediate:D \tex_pdfobj:D - \__pdf_backend_object_write:nn {stream} {{/Type~/Metadata~/Subtype~/XML}{#1}} + \@@_backend_object_write:nn {stream} {{/Type~/Metadata~/Subtype~/XML}{#1}} \group_end: } %</pdftex> %<*xdvipdfmx|dvipdfmx|dvips|dvisvgm> -\cs_new_protected:Npn \__pdf_backend_metadata_stream:n #1 +\cs_new_protected:Npn \@@_backend_metadata_stream:n #1 { \pdf_object_unnamed_write:nn {stream}{{/Type~/Metadata~/Subtype~/XML}{#1}} } %</xdvipdfmx|dvipdfmx|dvips|dvisvgm> % \end{macrocode} +% +% \subsection{Suppressing deprecated PDF features} +% +% \texttt{/ProcSet}, \texttt{/CharSet} and the \texttt{/Info} dictionary +% are deprecated in PDF 2.0. For the pdf/A-4 standard they must be suppressed. +% Not every engine is able to do this, but for pdfTeX and luatex we define suitable +% backend command. \texttt{/ProcSet} is suppressed automatically +% for pdf version 2.0 starting with in texlive 2023. +% \begin{macro}{\@@_backend_omit_charset:n} +% The option to omit /Charset exists already for quite some time for the two +% engines. +% \begin{macrocode} +%<*xdvipdfmx|dvipdfmx|dvips|dvisvgm> +\cs_new_protected:Npn \@@_backend_omit_charset:n #1 {} %#1 number +%</xdvipdfmx|dvipdfmx|dvips|dvisvgm> +%<*pdftex> +\cs_new_protected:Npn \@@_backend_omit_charset:n #1 %#1 number + { + \tex_pdfomitcharset:D = #1 \scan_stop: + } +%</pdftex> +%<*luatex> +\cs_new_protected:Npn \@@_backend_omit_charset:n #1 %#1 number + { + \tex_pdfvariable:D omitcharset = #1 \scan_stop: + } +%</luatex> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_backend_omit_info:n} +% The option to suppress the info dictionary will be available in +% texlive 2023. +% \begin{macrocode} +%<*xdvipdfmx|dvipdfmx|dvips|dvisvgm> +\cs_new_protected:Npn \@@_backend_omit_info:n #1 {} %#1 number +%</xdvipdfmx|dvipdfmx|dvips|dvisvgm> +%<*pdftex> +\bool_lazy_and:nnTF + { \int_compare_p:nNn {\tex_pdftexversion:D } > {139} } + { \int_compare_p:nNn {\tex_pdftexrevision:D } > {24} } + { + \cs_new_protected:Npn \@@_backend_omit_info:n #1 %#1 number + { + \pdfomitinfodict = #1 \scan_stop: + } + } + { + \cs_new_protected:Npn \@@_backend_omit_info:n #1 {}%#1 number + + } +%</pdftex> +%<*luatex> + \int_compare:nNnTF {\directlua{tex.print(status.list()["development_id"])} } > {7560} + { + \cs_new_protected:Npn \@@_backend_omit_info:n #1 %#1 number + { + \tex_pdfvariable:D omitinfodict = #1 \scan_stop: + } + } + { + \cs_new_protected:Npn \@@_backend_omit_info:n #1 {} %#1 number + } +%</luatex> +% \end{macrocode} +% \end{macro} +% + +% % \subsection{lua code for lualatex} % \begin{macrocode} %<*lua> |