summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx')
-rw-r--r--macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx95
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>