diff options
Diffstat (limited to 'macros/latex/contrib/pdfmanagement-testphase')
43 files changed, 349 insertions, 152 deletions
diff --git a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md index b8bbe05c30..33717fb8ba 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md +++ b/macros/latex/contrib/pdfmanagement-testphase/CHANGELOG.md @@ -5,7 +5,48 @@ 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. +## [2024-09-13] + +### Added + - ltdocinit.dtx: add \LogDocumentProperties + - l3pdfmeta: Support additions of external schemas like ZUGferd with + \pdfmeta_xmp_schema_new:nnn \pdfmeta_xmp_property_new:nnnnn + +### Fixed + - colorspace-patches-tmp-ltx.sty: fixes hook use, issue #78 + +## [2024-09-02] +Version: 2024-09-02 v0.96k + +### Added + - l3pdfmeta.dtx: add standard test `Catalog_no_OCProperties_AS`, (issue#77) + +### Fixed + - l3pdfmeta.dtx: remove Catalog_no_OCProperties from pdf/a-2b onwards (issue#77) + +## [2024-08-17] +Version: 2024-08-17 v0.96j + +### Added + + - added a verification 'omit_CID' used by PDF/a-2 and newer with luatex. + - warnings if pdfversion does not fit ua-1 and ua-2 + +### Fixed + - add xmp-resource for pdfaid:rev (tagging-project issue#375) + - empty color in \bookmarksetup https://github.com/ho-tex/bookmark/issues/11 + - unneeded warning with bookmarks=false, https://github.com/latex3/hyperref/issues/352 + +## [2024-05-23] +Version: 2024-05-23, 0.96i + +### Fixed + - l3pdfmeta: adapted wtpdf declaration uri to corrected version. + - colorlinks=false no longer resets pdfborder (issue #69) + - added support to omit CidSet with luatex + ## [2024-04-09] +Version: 2024-04-09, 0.96h ### Fixed - structure destinations for boxed destinations @@ -23,7 +64,7 @@ Version: 2024-03-26, 0.96g ### Added - l3pdfmeta.dtx: interface for xmpRights:Marked. - - l3pdfmeta.dtx: add wtpdf declations if ua-2 is used. + - l3pdfmeta.dtx: add wtpdf declarations if ua-2 is used. ### Changed - removed unneeded firstaids for fontspec, transparent and pdflscape @@ -32,7 +73,7 @@ Version: 2024-03-26, 0.96g Version: 2024-03-01, 0.96f ### Changed - - format of /F in filespec: use utf8/string for better compability with ZUGFeRD processor. + - format of /F in filespec: use utf8/string for better compatibility with ZUGFeRD processor. - added /Contents entry to URI and GoTo links for better UA support. ## [2024-02-22] @@ -41,7 +82,7 @@ Version: 2024-02-22, 0.96e ### Changed - date of UA-2 is now 2024 - tagpdf-base is now required - - xmp metadata use x-default for the main language for better compability with some viewers + - xmp metadata use x-default for the main language for better compatibility with some viewers - suppress info dictionary with pdf/ua-2 ## [2023-12-09] @@ -63,7 +104,7 @@ Version: 2023-12-09, 0.96d Version: 2023-11-17, 0.96c - remove dependency to ltxcmds in the hyperref driver - - correct a local/global assigment + - correct a local/global assignment - remove l3ref-tmp.sty - l3pdffile.dtx: change mimetype of xml to application/xml diff --git a/macros/latex/contrib/pdfmanagement-testphase/README.md b/macros/latex/contrib/pdfmanagement-testphase/README.md index 136f8e6c7c..2c460e7084 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/README.md +++ b/macros/latex/contrib/pdfmanagement-testphase/README.md @@ -1,6 +1,6 @@ # LaTeX PDF management testphase bundle -Version: 0.96h, 2024-04-09 +Version: 0.96l, 2024-09-13 This package is used during a test phase to load the new PDF management code of LaTeX. diff --git a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty index b11df8acf7..6a13e4e3e4 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/color-ltx.sty +++ b/macros/latex/contrib/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}[2024-04-09 v0.96h +\ProvidesPackage{color-ltx}[2024-09-13 v0.96l 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/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty index 19d5375f7e..5078b85680 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty +++ b/macros/latex/contrib/pdfmanagement-testphase/colorspace-patches-tmp-ltx.sty @@ -19,8 +19,9 @@ % % for those people who are interested. \NeedsTeXFormat{LaTeX2e}[2020/10/01] -\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-04-09}{0.96h} - {temporay patches to for the colorspace package to test pdfresource management ... UF} +\ProvidesExplPackage{colorspace-patches-tmp-ltx}{2024-09-13}{0.96l} + {temporary patches for the colorspace package to test pdfresource management ... UF} + % colorspace can define more models, that l3color can't yet handle. \cs_set_protected:Npn \expl@color@set@@nnn #1#2#3 @@ -71,7 +72,7 @@ \RemoveFromHook{begindocument}[colorspace] -\hook_gput_code:nnn {enddocument} {pdf} +\hook_gput_code:nnn {begindocument/end} {pdf} { \def\spc@elt#1#2 { diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx index d6595449fe..88059091df 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.dtx @@ -82,7 +82,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -150,7 +150,7 @@ % % \section{\enquote{Metadata}} % -% \enquote{Metadata}, informations about the document, are stored in a PDF in two +% \enquote{Metadata}, information about the document, are stored in a PDF in two % places: The |/Info| dictionary and the XMP-metadata. \pkg{hyperref} only handles the % |/Info| dictionary. The XMP-metadata are added by code from \pkg{l3pdfmeta}. % (without the pdfmanagement the XMP-metadata can be added with packages like \pkg{pdfx} and @@ -170,7 +170,7 @@ % this had to patch an number of internal \pkg{hyperref} commands---which is a problem % if the internal commands change (as happens with this new driver) % \item \pkg {hyperref} (and also \pkg{hyperxmp}) -% tries to deduce some datas from document commands like +% tries to deduce some data from document commands like % \cs{title} or \cs{author}---something that worked reasonably well when only % some standard classes with well-known definitions of these command existed, % but gets problematic with classes and packages which define @@ -190,7 +190,7 @@ % % \item It is possible to store titles in more than one language. If the value begins with % an \enquote{optional argument} which represents a language tag, the value is taken -% as a comma list and splitted. The first value is used for the Info dictionary, +% as a comma list and split. The first value is used for the Info dictionary, % the others are used in the XMP-metadata. Commas in a title must then be % protected with braces: % @@ -486,7 +486,8 @@ % would arise it would possible to change this. % \subsection{Changed behaviour} % \begin{description} -% \item[colorlinks] |colorlinks| will as before disable the |pdfborder|, but it is possible +% \item[colorlinks] |colorlinks| or |colorlinks=true| will as before disable the |pdfborder| +% (|colorlinks=false| will leave the |pdfborder| untouched), but it is possible % to use the key in the document at any time, or to reenable the border if wanted. % Internally |colorlinks| \& friends will no longer define/undefine % |\Hy@colorlink|, but instead use the hooks provided by the \pkg{l3pdfannot} package. @@ -505,7 +506,7 @@ % and |citebordercolor| has been reduced. A package like \pkg{hyperref} % can't keep track of such semantic % contexts like cite, acronym, glossaries and special references and maintain keys for -% them. The keys are not completly dropped as this would affect packages like +% them. The keys are not completely dropped as this would affect packages like % \pkg{natbib}, but they have been separated and are no longer affected by % group keys like |allcolors| but must be set individually instead. % @@ -767,7 +768,7 @@ % location. So |0 -100 200 400| will give a \enquote{box} of width 200bp, % height 400bp and depth 100dp that the destination should encompass. % Missing numbers will be set to 0. But one should be aware that is it is quite -% unpredicable how viewers which support |FitR| handles zero sizes. +% unpredictable how viewers which support |FitR| handles zero sizes. % % \item |pdfstartview| and |pdfremotestartview| will pass % the values as absolute coordinates. @@ -817,7 +818,7 @@ % key of the annotation array and in similar keys is set. It does not affect % the text and graphics colors in the page stream. % Possible choices are |rgb| (three numbers in the array) and |cmyk| (four numbers). -% While the PDF reference allows four numbers, PDF readers don't necessarly handle +% While the PDF reference allows four numbers, PDF readers don't necessarily handle % this correctly, so the value can be wrong. % % \DescribeHypkey{destlabel} This is a boolean key. Currently it must be set @@ -848,7 +849,7 @@ % /Subtype/Link/A<</S/GoToR /F (mwe2.dvi)>> % /Subtype/Link/A<</S/GoToR /F (mwe3.dvi)>> % \end{verbatim} -% Typically PDF viewer can handle only GoToR annotions pointing to a PDF. +% Typically PDF viewer can handle only GoToR annotations pointing to a PDF. % So normally the default value |pdf| of this key should not be changed. % \DescribeHypkey{nesting}\label{key:nesting}% % This key is useless in PDF context. The boolean is only used in @@ -964,7 +965,7 @@ %<@@=hyp> % \end{macrocode} % \begin{macrocode} -\ProvidesFile{hgeneric-testphase.def}[2024-04-09 v0.96h % +\ProvidesFile{hgeneric-testphase.def}[2024-09-13 v0.96l % generic Hyperref driver for the LaTeX PDF management testphase bundle] \RequirePackage{etoolbox} %why? @@ -1455,7 +1456,7 @@ \pdfstringdefDisableCommands{\let\hrefpdf\@@_secondoftwowithopt:wnn} \pdfstringdefDisableCommands{\let\hrefrun\@@_secondoftwowithopt:wnn} % \end{macrocode} -% \section{Compability commands} +% \section{Compatibility commands} % \subsection{Metadata} % A number of values should be accessible from other packages. Until now % packages like \pkg{hyperxmp} used variables like \cs{@pdfauthor}. As they are @@ -1526,19 +1527,29 @@ { \define@key{BKM}{color} { - \__hyp_color_set:ne {__hyp/tmpa}{#1} - \color_export:nVN - {__hyp/tmpa} - \g__hyp_bordercolormodel_str - \BKM@color + \tl_if_blank:nTF {#1} + { \cs_set_eq:NN\BKM@color\@empty } + { + \__hyp_color_set:ne {__hyp/tmpa}{#1} + \color_export:nVN + {__hyp/tmpa} + \g__hyp_bordercolormodel_str + \BKM@color + } } } -\legacy_if:nT { Hy@bookmarks } +\legacy_if:nTF { Hy@bookmarks } { \AddToHook{begindocument/before}[hyperref/bookmark] { \RequirePackage{bookmark} - } + } + } +% \end{macrocode} +% empty hook chunk to ensure that the chunk exists. +% \begin{macrocode} + { + \AddToHook{begindocument/before}[hyperref/bookmark]{} } \legacy_if:nT {Hy@draft} { @@ -2187,7 +2198,7 @@ % \end{macrocode} % % Now the three \pkg{hyperref} commands. -% The splitted commands \cs{hyper@linkstart} and \cs{hyper@linkend} are used for +% The split commands \cs{hyper@linkstart} and \cs{hyper@linkend} are used for % footnotemarks, toc and natbib-cites. % \begin{function}{\hyper@link} % \begin{syntax} @@ -2652,7 +2663,8 @@ % \begin{macrocode} \keys_define:nn { hyp } { - ,colorlinks .meta:n = + ,colorlinks .choice: + ,colorlinks / true .meta:n = { ,pdfborder={0~0~0} ,pdfborderstyle= @@ -2662,6 +2674,14 @@ ,colormenu =#1 ,colorfile =#1 } + ,colorlinks / false .meta:n = + { + ,colorurl =#1 + ,colorlink =#1 + ,colorrun =#1 + ,colormenu =#1 + ,colorfile =#1 + } ,colorlinks .default:n = {true} } % \end{macrocode} @@ -5194,7 +5214,7 @@ } \ExplSyntaxOff \ExplSyntaxOn -% Does an appeareance dict make sense here? +% Does an appearance dict make sense here? \def\PDFForm@Text { /Subtype/Widget diff --git a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf Binary files differindex 8861d8b53f..fe2c00155b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/hyperref-generic.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.dtx index 75e944cf82..3d9424c59d 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.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % @@ -56,32 +56,32 @@ % \begin{macrocode} %<drivers>\ProvidesExplFile %<*dvipdfmx> - {l3backend-testphase-dvipdfmx.def}{2024-04-09}{} + {l3backend-testphase-dvipdfmx.def}{2024-09-13}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-testphase-dvips.def}{2024-04-09}{} + {l3backend-testphase-dvips.def}{2024-09-13}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvips} %</dvips> %<*dvisvgm> - {l3backend-testphase-dvisvgm.def}{2024-04-09}{} + {l3backend-testphase-dvisvgm.def}{2024-09-13}{} {LaTeX~PDF~management~testphase~bundle~backend~support: dvisvgm} %</dvisvgm> %<*luatex> - {l3backend-testphase-luatex.def}{2024-04-09}{} + {l3backend-testphase-luatex.def}{2024-09-13}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (LuaTeX)} %</luatex> %<*pdftex> - {l3backend-testphase-pdftex.def}{2024-04-09}{} + {l3backend-testphase-pdftex.def}{2024-09-13}{} {LaTeX~PDF~management~testphase~bundle~backend~support: PDF output (pdfTeX)} %</pdftex> %<*xdvipdfmx> - {l3backend-testphase-xetex.def}{2024-04-09}{} + {l3backend-testphase-xetex.def}{2024-09-13}{} {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. +% We need to generate temporarily a few e-types variants of kernel backend commands. % These can be removed once the kernel provides them. % \begin{macrocode} %<@@=pdf> @@ -1818,7 +1818,7 @@ %</drivers> % \end{macrocode} % \end{macro} -% Now the driver dependant parts. +% Now the driver dependent parts. % By default the new commands are simply copies of the original commands. % We adapt them then for the engines and engine version which provide support % for structure destinations. @@ -2355,7 +2355,7 @@ % \end{macro} % \subsection{Settings for regression tests} % When doing pdf based regression tests some meta data in the pdf should have -% fixed values to get identical pdf's. We define here the backend dependant +% fixed values to get identical pdf's. We define here the backend dependent % part. The main command is then in l3pdfmeta % \begin{macrocode} %<*drivers> @@ -2528,6 +2528,23 @@ % \end{macrocode} % \end{macro} % +% With luatex it is for some standards also necessary to suppress the CidSet +% entry in the fonts (with xetex there seem to be no problem. +% \begin{macro}{\@@_backend_omit_cidset:n} +% The option to omit /Charset exists already for quite some time for the two +% engines. +% \begin{macrocode} +%<*xdvipdfmx|dvipdfmx|dvips|dvisvgm|pdftex> +\cs_new_protected:Npn \@@_backend_omit_cidset:n #1 {} %#1 number +%</xdvipdfmx|dvipdfmx|dvips|dvisvgm|pdftex> +%<*luatex> +\cs_new_protected:Npn \@@_backend_omit_cidset:n #1 %#1 number + { + \tex_pdfvariable:D omitcidset = #1 \scan_stop: + } +%</luatex> +% \end{macrocode} +% \end{macro} % % \subsection{lua code for lualatex} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf Binary files differindex c4e96784b0..366f54495d 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3backend-testphase.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx index 4b04b4308b..11b0e8e3f5 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -340,7 +340,7 @@ % lead to the unpleasant result that header and footer are part of the link too. % Since texlive 2021 pdflatex and lualatex has commands similar to a special already % included in dvipdfmx which allows to interrupt a link. The commands must be used -% with care: typically they must be outside a box that would be catched by link to +% with care: typically they must be outside a box that would be caught by link to % have the wanted effect. % % \end{function} @@ -432,7 +432,7 @@ % \begin{macrocode} %<@@=pdfannot> %<*header> -\ProvidesExplPackage{l3pdfannot}{2024-04-09}{0.96h} +\ProvidesExplPackage{l3pdfannot}{2024-09-13}{0.96l} {PDF-annotations} \RequirePackage{l3pdfdict} %</header> diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf Binary files differindex a64cceab21..bf5ca943f5 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfannot.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx index 82d0979a02..3b47c78ea8 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -208,7 +208,7 @@ % \begin{macrocode} %<@@=pdfdict> %<*header> -\ProvidesExplPackage{l3pdfdict}{2024-04-09}{0.96h} +\ProvidesExplPackage{l3pdfdict}{2024-09-13}{0.96l} {Tools for PDF dictionaries (LaTeX PDF management testphase bundle)} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf Binary files differindex d47028ee51..dfd5d8899c 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfdict.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx index 6093a6d442..ce6c60f0ae 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -251,10 +251,10 @@ % % \meta{URL} can be a mail address and should then start with |mailto:|. % A subject can be attached with |?subject=...|. -% This normally works quite fine as it only needs a correctly working mail programm. +% This normally works quite fine as it only needs a correctly working mail program. % (But for some unknown reason my mail program don't like mail addresses with hyphens in them). % -% Alternativly it should be an URL of a script, which should return the correct +% Alternatively it should be an URL of a script, which should return the correct % answer (which one this is, is rather unclear). % % \end{function} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf Binary files differindex 81bb3eab72..aa0853605f 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-action.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx index 534959fcaf..91a1f84590 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.dtx @@ -64,7 +64,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf Binary files differindex e680f95935..c907ccaca6 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-checkbox.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx index 2a114768be..47e8c6a679 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -77,11 +77,11 @@ % This means that various data will have to be set, and the sorting matters. % The module here will assume that the various values are stored in sequences: % -% \ExplSyntaxOn +% \begin{verbatim} % \seq_const_from_clist:Nn \c_my_values_seq {hippo,duck,bear} % \seq_const_from_clist:Nn \c_my_displayvalues_seq {Sieglinde,,Bär} -% \seq_const_from_clist:Nn \c_my_defaultvalues_seq {duck,Bär} %check if export or altname ... -% \ExplSyntaxOff +% \seq_const_from_clist:Nn \c_my_defaultvalues_seq {duck,Bär} +% \end{verbatim} % % Only the first sequence is required. % Empty values in the display sequence are possible, then the normal value is used. @@ -103,9 +103,12 @@ % % % \subsection{Appearance} -% hm .... +% By default the fields use a grey background as appearance, another appearance +% can be defined with |\pdffield_appearance:nn| (described in the documentation of +% l3pdffield) or directly with |\pdfxform_new:nnn| (in l3pdfxfom) +% and then used with the |appearance| as in other form fields. % -% \bigskip +% % \subsection{Commands} % \begin{function}{\pdffield_choice:n} % \begin{syntax} @@ -114,9 +117,9 @@ % This creates a choice field. % The list of allowed keys is described below. % The \meta{key val list} should at least set the name, -% without it the default |choice| is used. Choice fields with the same +% without it the default |choice| is used. Choice fields with the same name % belong to the same field and if changed, the others are changed accordingly. -% The default appearance ... +% As default appearance we reuse the text appearance: a simple gray background. % % The first choice field setups the field and so should setup values and field flags. % \end{function} @@ -443,7 +446,7 @@ % ,\l_@@_choice_opt_seq % } % variables to hold the value, the default value, and display variants. The opt -% set will be used to build the content of opt +% seq will be used to build the content of opt % \begin{macrocode} \seq_new:N \l_@@_choice_values_seq \seq_new:N \l_@@_choice_defaultvalues_seq diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf Binary files differindex 3456e45f32..26b10fd026 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-choice.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx index 47c3e95df1..b4fd183689 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.dtx @@ -55,7 +55,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf Binary files differindex e84df48b53..10c1df9014 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-pushbutton.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx index 899042413a..ef653f3bfd 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.dtx @@ -83,7 +83,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf Binary files differindex 51804d8c3e..9cdb808671 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-radiobutton.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx index bb61dd44e7..fced9ac84f 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf Binary files differindex 5c9d33c98a..be770f1168 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield-textfield.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx index 8b11e57558..6951aee260 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.dtx @@ -69,7 +69,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -87,7 +87,7 @@ % \usepackage{l3pdffield-testphase} % \end{verbatim} % -% The source code is splitted into various submodules. All code is combined in the +% The source code is split into various submodules. All code is combined in the % sty, but the documentation is in individual PDF. % \begin{description} % \item[\texttt{l3pdffield}] This contains the basic commands and keys @@ -199,7 +199,7 @@ % \subsection{The look of a field: Appearances and other settings} % % The look of widget annotation of a field can be set with various keys. The keys developed over -% time and some of them superseed older ones. There is for example the simple +% time and some of them supersede older ones. There is for example the simple % |/Border|, the more sophisticated |/BS| (\enquote{border style dictionary}), % the \enquote{dynamic appearance dictionary} |MK|, with lots of keys, % and the appearance dictionary |/AP| which @@ -631,7 +631,7 @@ % fields without sortkey will get an empty sortkey and so be at the begin, % the order of fields with the same sortkey is not defined. % The module only sorts fields created with the commands of this module, the -% sorting of fields created by \pkg{hyperref} is independant. +% sorting of fields created by \pkg{hyperref} is independent. % \end{function} % % \begin{function}{DA} @@ -972,7 +972,7 @@ %<*package> %<@@=pdffield> \NeedsTeXFormat{LaTeX2e} -\ProvidesExplPackage{l3pdffield-testphase}{2024-04-09}{0.96h}% +\ProvidesExplPackage{l3pdffield-testphase}{2024-09-13}{0.96l}% {form fields} % \end{macrocode} % \subsection{hyperref specific command} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf Binary files differindex 906a58d2b0..c1a1827563 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffield.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx index 65ac4c35fb..3c431db006 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -398,9 +398,9 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdffile}{2024-04-09}{0.96h} +\ProvidesExplPackage{l3pdffile}{2024-09-13}{0.96l} {embedding and referencing files in PDF---LaTeX PDF management testphase bundle} -\RequirePackage{l3pdftools} %temporarly!! +\RequirePackage{l3pdftools} %temporarily!! %</header> % \end{macrocode} % diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf Binary files differindex 375d8bba15..6ccbbd538e 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdffile.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx index 138b7760fc..29cf2d2b31 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.dtx @@ -57,7 +57,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -70,7 +70,7 @@ % They unify a number of primitives like the pdftex % registers and commands \cs{pdfcatalog}, \cs{pdfpageattr}, % \cs{pdfpagesattr}, \cs{pdfinfo}, \cs{pdfpageresources} -% and similar commands of the other backends in a backend independant way. +% and similar commands of the other backends in a backend independent way. % % The supported backends are pdflatex, lualatex, (x)dvipdfmx (latex, xelatex % and---starting in texlive 2021--lualatex) @@ -180,12 +180,12 @@ % \begin{syntax} % \cs{pdfmanagement_show:n} \Arg{resource path} % \end{syntax} -% This shows the content of the dictionary targetted by +% This shows the content of the dictionary targeted by % \Arg{resource path} in the log and on the terminal if possible. % % It is not reliable for page resources as these are filled at shipout. % -% It also doesn't show necessarly all the content. +% It also doesn't show necessarily all the content. % For example most backends add automatically % entries to the Info dictionary. % \end{function} @@ -207,7 +207,7 @@ % can't be removed (but should ever a use case appear it could be added). % \end{function} % -% \subsection{Description of the resource pathes} +% \subsection{Description of the resource paths} % \subsubsection{Info: The Info dictionary} % \begin{NOTE}{UF} % path: Info @@ -367,7 +367,7 @@ % pages of different sizes. But you must be careful with the values. % If you set e.g. with pdflatex \cs{pdfpageheight} to 300bp you get a mediabox of % |0 0 595 300|, but pdflatex measure from the top and will also move -% the reference point up, so effectivly +% the reference point up, so effectively % you get the \emph{upper} third of the page. If you set the \texttt{/MediaBox} % to |0 0 595 300| with \cs{pdfmanagement_add:nnn} you get the \emph{lower} third. % In general it is better to use only the primitive commands to avoid confusing @@ -398,7 +398,7 @@ % \cs{pdfmanagement_add:nnn} \{Page/Resources/\meta{resource}\} \Arg{name} \Arg{value} % \end{syntax} % Adds |/|\meta{name} \meta{value} to the page resource \meta{resource}. -% \meta{resource} can be |ExtGState|, |ColorSpace|, |Pattern| oder |Shading|. +% \meta{resource} can be |ExtGState|, |ColorSpace|, |Pattern| or |Shading|. % The values are always stored globally. The content is written to the pdf % at the end of the compilation, so values can be added until then. % \meta{name} should be a valid pdf name without the leading slash, @@ -434,7 +434,7 @@ % Entries to the top level of the catalog can be added with\\ % |\pdfmanagement_add:nnn {Catalog}|\Arg{Name}\Arg{Value}. % Entries to subdictionaries by using in the first -% argument one of the pathes described later. +% argument one of the paths described later. % The entries in the catalog have varying requirements regarding the % PDF management. Some entries (like \texttt{/Lang}) are simple values % where new values should @@ -495,7 +495,7 @@ % \par\medskip % % \paragraph{Simple entries in subdictionaries of the catalog} -% The following resource pathes have been predeclared and allow to +% The following resource paths have been predeclared and allow to % add values to the respective subdictionaries of the catalog. The % names of the dictionaries follow the naming and location of the dictionaries % in the PDF reference. @@ -632,7 +632,7 @@ %<@@=pdfmanagement> %<*header> % -\ProvidesExplPackage{l3pdfmanagement}{2024-04-09}{0.96h} +\ProvidesExplPackage{l3pdfmanagement}{2024-09-13}{0.96l} {Management of core PDF dictionaries (LaTeX PDF management testphase bundle)} %</header> % \end{macrocode} @@ -824,7 +824,7 @@ \pdfdict_if_exist:nTF { g__pdf_Core/#1 } { \cs_if_exist:cTF - { @@_handler/#1/?_gput:nn } %general, name independant handler + { @@_handler/#1/?_gput:nn } %general, name independent handler { \use:c {@@_handler/#1/?_gput:nn} {#2} {#3} } { \cs_if_exist:cTF @@ -862,7 +862,7 @@ \pdfdict_if_exist:nTF { g__pdf_Core/#1 } { \cs_if_exist:cTF - { @@_handler/#1/?_gremove:n } %general, name independant handler + { @@_handler/#1/?_gremove:n } %general, name independent handler { \use:c {@@_handler/#1/?_gremove:n} {#2} } { \cs_if_exist:cTF @@ -899,7 +899,7 @@ \cs_new_protected:Npn \@@_show:Nn #1#2 { \cs_if_exist:cTF - { @@_handler/#2/?_show: } %general, name independant handler + { @@_handler/#2/?_show: } %general, name independent handler { \use:c {@@_handler/#2/?_show:} } { \prop_if_exist:cTF { \__kernel_pdfdict_name:n { g__pdf_Core/#2 } } diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf Binary files differindex 8c02b7fbc4..d420153249 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmanagement.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx index bcdda4fbde..0eb1f42c07 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -190,6 +190,8 @@ % a test for at least the PDF-format will be added in future. % \item[|Catalog_no_OCProperties|] don't add |/OCProperties| to the catalog % {\em l3pdfmeta removes this entry at the end of the document} +% \item[|Catalog_OCProperties_no_AS|] +% do not use |/AS| optional content configuration dictionary. % \item[|Catalog_EmbeddedFiles|] ensure that an |EmbeddedFiles| name tree is % in the catalog. This is required for PDF/A-4f. % \item[|annot_widget_no_AA|] (rule 6.6.2-1) @@ -205,6 +207,10 @@ % \item[|no_CharSet|] CharSet is deprecated is pdf 2.0 and should not % be used in A-4. l3pdfmeta will therefore suppress it for the % engines pdftex and luatex (the other engines have no suitable option) +% \item[|omit_CID|] This avoids with PDF/A-2 and newer a failure +% because of with missing CID identifications +% (e.g. from rule ISO 19005-2:2011, Clause: 6.2.11.4.2) +% It has only with luatex an effect. % \item[|Trailer_no_Info|] The \texttt{Info} dictionary % has been deprecated since quite some time. Metadata should be set with % XMP-data instead. In PDF A-4 now the \texttt{Info} dictionary @@ -432,7 +438,7 @@ % User data should normally be declared in the preamble (or even in the % |\DocumentMetadata| command), and consist of rather simple text; |&| can be entered % as |\&| (but directly |&| will normally work too), -% babel shorthands should not be used. Some datas are interpreted as comma lists, +% babel shorthands should not be used. Some data are interpreted as comma lists, % in this cases commas which are part of the text should be protected by braces. % In some cases a text in brackets like |[en]| is interpreted as language tag, % if they are part of a text they should be protected by braces too. @@ -588,7 +594,8 @@ % \begin{syntax} % \cs{pdfmeta_xmp_xmlns_new:nn}\Arg{prefix}\Arg{uri} % \end{syntax} -% With this command a xmlns name space can be added. +% With this command a xmlns name space can be added. The \meta{uri} +% argument is expanded, a hash can be input with |\c_hash_str|. % \end{function} % % With the two following commands PDF declarations can be added to the XMP metadata @@ -600,7 +607,7 @@ % This add a PDF declaration with the required |conformsTo| property to the XMP metadata. % \meta{uri} should not be empty and is a URI specifying % the standard or profile referred to by the PDF -% Declaration. If the uri contains a hash, use \cs{c_hash_str} to excape it +% Declaration. If the uri contains a hash, use \cs{c_hash_str} to escape it % and use the \texttt{e} variant to expand it. % \end{function} % @@ -618,6 +625,38 @@ % If \cs{pdfmeta_xmp_add_declaration:nnnnn} is used twice with the same \meta{uri} % argument the |claimData| are concatenated. There is no check if the |claimData| are identical. % \end{function} +% +% The following two commands can be used to extend the schema declarations in +% the XMP metadata. This is for example needed to implement a standard like ZUGferd/Factur X +% for invoices. A schema declaration should be added only once but as this task +% is probably not needed frequently only light guards are there to avoid duplicated entries. +% +% \begin{function}{\pdfmeta_xmp_schema_new:nnn} +% \begin{syntax} +% \cs{pdfmeta_xmp_schema_new:nnn}\Arg{text}\Arg{prefix}\Arg{uri} +% \end{syntax} +% \meta{text} is some string describing the schema, e.g. |PDF/A~Identification~Schema|, +% \meta{prefix} is the unique prefix used by the schema. This prefix +% must be declared first with |\pdfmeta_xmp_xmlns_new:nn|. If a schema with this prefix +% has already been declared, it will currently be ignored with a warning. +% The \meta{uri} is expanded, so a +% hash can for example be given as |\c_hash_str|. +% \end{function} + +% \begin{function}{\pdfmeta_xmp_property_new:nnnnn} +% \begin{syntax} +% \cs{pdfmeta_xmp_property_new:nnnnn}\Arg{schema prefix}\Arg{name}\Arg{type}\Arg{category}\Arg{description} +% \end{syntax} +% If the new property already exists in the schema +% (as identified by the combination of \meta{schema prefix} +% and \meta{name} the property is silently ignore. +% \meta{schema prefix} is the prefix declared with the previous command. +% schema, e.g. |PDF/A~Identification~Schema|, +% \meta{name} is a short string that identifies the property, e.g. |xmpMM| or |year|. It must be +% unique in the properties of a schema. \meta{type} is e.g. |URI| or |Integer| or |Text|, +% \meta{category} is e.g. |internal| or |external|, \meta{description} is a free description string. +% \end{function} +% % \end{documentation} % % \begin{implementation} @@ -627,7 +666,7 @@ % \begin{macrocode} %<@@=pdfmeta> %<*header> -\ProvidesExplPackage{l3pdfmeta}{2024-04-09}{0.96h} +\ProvidesExplPackage{l3pdfmeta}{2024-09-13}{0.96l} {PDF-Standards---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} @@ -814,7 +853,9 @@ \pdfmeta_standard_verify:nF { Trailer_no_Info } { \__pdf_backend_omit_info:n {1} } \pdfmeta_standard_verify:nF { no_CharSet } - { \__pdf_backend_omit_charset:n {1} } + { \__pdf_backend_omit_charset:n {1} } + \pdfmeta_standard_verify:nF { omit_CID } + { \__pdf_backend_omit_cidset:n {1} } \pdfmeta_standard_verify:nnF { min_pdf_version } { \pdf_version: } { \msg_warning:nneee {pdf}{wrong-pdfversion} @@ -881,7 +922,10 @@ % %=============== % Rule 6.1.13-1 CosDocument, isOptionalContentPresent == false - ,Catalog_no_OCProperties = + ,Catalog_no_OCProperties = + % Rule 6.9-4 The AS key shall not appear in any optional content configuration dictionary. + % actually only starting with A-2 but doesn't harm here either + ,Catalog_OCProperties_no_AS= %=============== % Rule 6.6.1-1: PDAction, S == "GoTo" || S == "GoToR" || S == "Thread" % || S == "URI" || S == "Named" || S == "SubmitForm" @@ -930,7 +974,14 @@ { embed_content} \prop_gput:cnn { g_@@_standard_pdf/A-2B_prop }{max_pdf_version}{1.7} -%A-2u ============== +\prop_gput:cnn + { g_@@_standard_pdf/A-2B_prop }{omit_CID}{} +% OCG layers are allowed (with restrictions) +\prop_gremove:cn + { g_@@_standard_pdf/A-2B_prop } + { Catalog_no_OCProperties } + + %A-2u ============== \prop_new:c { g_@@_standard_pdf/A-2U_prop } \prop_gset_eq:cc { g_@@_standard_pdf/A-2U_prop } @@ -1015,7 +1066,8 @@ { g_@@_standard_pdf/A-4_prop }{conformance} \prop_gremove:cn { g_@@_standard_pdf/A-4_prop }{max_pdf_version} - +\prop_gremove:cn + { g_@@_standard_pdf/A-4_prop }{Catalog_OCProperties_no_AS} %A-4f ============== \prop_new:c { g_@@_standard_pdf/A-4F_prop } \prop_gset_eq:cc @@ -1177,7 +1229,7 @@ % The commands embed the profile, and write the dictionary and add it to % the catalog. The first command should perhaps be moved to l3color % as it needs such profiles too. We used named objects so that we can -% check if the profile is already there. This is not full proof if pathes are +% check if the profile is already there. This is not foolproof if paths are % used. % \begin{macrocode} \cs_new_protected:Npn \@@_embed_colorprofile:n #1%#1 file name @@ -1330,6 +1382,15 @@ _pdfstandard / UA-1 .code:n = { \AddToDocumentProperties [document]{pdfstandard-UA}{{1}{}} + \AddToHook{begindocument/before} + { + \pdf_version_compare:NnF < {2.0} + { + \msg_warning:nneee + {pdf}{wrong-pdfversion} + {\pdf_version:}{high}{UA-1} + } + } }, % \end{macrocode} % currently it is not possible to merge requirements - these need some thoughts as @@ -1345,6 +1406,12 @@ { \@@_xmp_wtpdf_accessibility_declaration: \@@_xmp_wtpdf_reuse_declaration: + \pdf_version_compare:NnT < {2.0} + { + \msg_warning:nneee + {pdf}{wrong-pdfversion} + {\pdf_version:}{low}{UA-2} + } } }, xmp .choice:, @@ -1404,7 +1471,8 @@ % \end{macrocode} % \subsection{Messages} % \begin{macrocode} -\msg_new:nnn{pdfmeta}{namespace-defined}{The~xmlns~namespace~`#1`~is~already~declared} +\msg_new:nnn{pdfmeta}{xmp-defined}{The~XMP~#1~`#2`~is~already~declared} +\msg_new:nnn{pdfmeta}{xmp-undefined}{The~XMP~#1~`#2`~is~undefined} \msg_new:nnn{pdfmeta}{colorprofile-undefined}{The~colorprofile~`#1`~is~unknown} % \end{macrocode} % \subsection{Some helper commands} @@ -1531,7 +1599,7 @@ % % \begin{variable}{\l_@@_xmp_currentdate_tl,\l_@@_xmp_currentdate_seq} % The tl var contains the date of the log-file in PDF format, -% the seq the result splitted with the regex. +% the seq the result split with the regex. % \begin{macrocode} \tl_new:N \l_@@_xmp_currentdate_tl \seq_new:N \l_@@_xmp_currentdate_seq @@ -1542,7 +1610,7 @@ % This checks a document property and if empty uses the current date. % \begin{macrocode} \cs_new_protected:Npn \@@_xmp_date_get:nNN #1 #2 #3 - %#1 property, #2 tl var with PDF date, #3 seq for splitted date + %#1 property, #2 tl var with PDF date, #3 seq for split date { \tl_set:Ne #2 { \GetDocumentProperties{#1} } \tl_if_blank:VTF #2 @@ -1936,7 +2004,7 @@ \prop_new:N \g_@@_xmp_xmlns_prop % \end{macrocode} % \end{variable} -% \begin{macro}{\@@_xmp_xmlns_new:nn,\@@_xmp_xmlns_new:ne} +% \begin{macro}{\@@_xmp_xmlns_new:nn} % \begin{macrocode} \cs_new_protected:Npn \@@_xmp_xmlns_new:nn #1 #2 { @@ -1946,7 +2014,6 @@ \@@_xmp_indent:n{4} xmlns:\exp_not:n{#1="#2"} } } -\cs_generate_variant:Nn \@@_xmp_xmlns_new:nn {ne} % \end{macrocode} % \end{macro} % Now we fill the data. The list is more or less the same as in hyperxmp @@ -1957,7 +2024,7 @@ \@@_xmp_xmlns_new:nn {photoshop}{http://ns.adobe.com/photoshop/1.0/} \@@_xmp_xmlns_new:nn {xmp} {http://ns.adobe.com/xap/1.0/} \@@_xmp_xmlns_new:nn {xmpMM} {http://ns.adobe.com/xap/1.0/mm/} -\@@_xmp_xmlns_new:ne {stEvt} +\@@_xmp_xmlns_new:nn {stEvt} {http://ns.adobe.com/xap/1.0/sType/ResourceEvent\c_hash_str} \@@_xmp_xmlns_new:nn {pdfaid} {http://www.aiim.org/pdfa/ns/id/} \@@_xmp_xmlns_new:nn {pdfuaid} {http://www.aiim.org/pdfua/ns/id/} @@ -1966,13 +2033,13 @@ \@@_xmp_xmlns_new:nn {prism} {http://prismstandard.org/namespaces/basic/3.0/} %\@@_xmp_xmlns_new:nn {jav} {http://www.niso.org/schemas/jav/1.0/} %\@@_xmp_xmlns_new:nn {xmpTPg} {http://ns.adobe.com/xap/1.0/t/pg/} -\@@_xmp_xmlns_new:ne {stFnt} {http://ns.adobe.com/xap/1.0/sType/Font\c_hash_str} +\@@_xmp_xmlns_new:nn {stFnt} {http://ns.adobe.com/xap/1.0/sType/Font\c_hash_str} \@@_xmp_xmlns_new:nn {Iptc4xmpCore}{http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/} \@@_xmp_xmlns_new:nn {pdfaExtension}{http://www.aiim.org/pdfa/ns/extension/} -\@@_xmp_xmlns_new:ne {pdfaSchema}{http://www.aiim.org/pdfa/ns/schema\c_hash_str} -\@@_xmp_xmlns_new:ne {pdfaProperty}{http://www.aiim.org/pdfa/ns/property\c_hash_str} -\@@_xmp_xmlns_new:ne {pdfaType} {http://www.aiim.org/pdfa/ns/type\c_hash_str} -\@@_xmp_xmlns_new:ne {pdfaField}{http://www.aiim.org/pdfa/ns/field\c_hash_str} +\@@_xmp_xmlns_new:nn {pdfaSchema}{http://www.aiim.org/pdfa/ns/schema\c_hash_str} +\@@_xmp_xmlns_new:nn {pdfaProperty}{http://www.aiim.org/pdfa/ns/property\c_hash_str} +\@@_xmp_xmlns_new:nn {pdfaType} {http://www.aiim.org/pdfa/ns/type\c_hash_str} +\@@_xmp_xmlns_new:nn {pdfaField}{http://www.aiim.org/pdfa/ns/field\c_hash_str} % \end{macrocode} % \subsection{Building the chunks: Extensions} @@ -1999,42 +2066,61 @@ \cs_new_protected:Npn \@@_xmp_schema_new:nnn #1 #2 #3 %#1 name #2 prefix, #3 text { - \seq_put_right:Nn \l_@@_xmp_schema_seq { #2 } - \tl_new:c { g_@@_xmp_schema_#2_tl } - \tl_new:c { g_@@_xmp_schema_#2_properties_tl } - \tl_gput_right:cn { g_@@_xmp_schema_#2_tl } + \tl_if_exist:cTF { g_@@_xmp_schema_#2_tl } { - \@@_xmp_add_packet_open_attr:nnn{rdf}{li}{rdf:parseType="Resource"} - \@@_xmp_add_packet_line:nnn {pdfaSchema}{schema}{#1} - \@@_xmp_add_packet_line:nnn {pdfaSchema}{prefix}{#2} - \@@_xmp_add_packet_line:nnn {pdfaSchema}{namespaceURI}{#3} - \@@_xmp_add_packet_open:nn {pdfaSchema}{property} - \@@_xmp_add_packet_open:nn{rdf}{Seq} - \tl_use:c { g_@@_xmp_schema_#2_properties_tl } - \@@_xmp_add_packet_close:nn{rdf}{Seq} - \@@_xmp_add_packet_close:nn {pdfaSchema}{property} - \cs_if_exist_use:c {@@_xmp_schema_#2_additions:} - \@@_xmp_add_packet_close:nn{rdf}{li} + \msg_warning:nnnn{pdfmeta}{xmp-defined}{schema}{#2} } + { + \seq_put_right:Nn \l_@@_xmp_schema_seq { #2 } + \tl_new:c { g_@@_xmp_schema_#2_tl } + \tl_new:c { g_@@_xmp_schema_#2_properties_tl } + \tl_gput_right:cn { g_@@_xmp_schema_#2_tl } + { + \@@_xmp_add_packet_open_attr:nnn{rdf}{li}{rdf:parseType="Resource"} + \@@_xmp_add_packet_line:nnn {pdfaSchema}{schema}{#1} + \@@_xmp_add_packet_line:nnn {pdfaSchema}{prefix}{#2} + \@@_xmp_add_packet_line:nnn {pdfaSchema}{namespaceURI}{#3} + \@@_xmp_add_packet_open:nn {pdfaSchema}{property} + \@@_xmp_add_packet_open:nn{rdf}{Seq} + \tl_use:c { g_@@_xmp_schema_#2_properties_tl } + \@@_xmp_add_packet_close:nn{rdf}{Seq} + \@@_xmp_add_packet_close:nn {pdfaSchema}{property} + \cs_if_exist_use:c {@@_xmp_schema_#2_additions:} + \@@_xmp_add_packet_close:nn{rdf}{li} + } + } } % \end{macrocode} % \end{macro} - -% \begin{macro}{\@@_xmp_property_new:nnn} +% +% +% +% \begin{macro}{\@@_xmp_property_new:nnnnn} % This adds a property to a schema. % \begin{macrocode} +\prop_new:N\g_@@_xmp_schema_property_prop \cs_new_protected:Npn \@@_xmp_property_new:nnnnn #1 #2 #3 #4 #5 % %#1 schema #2 name, #3 type, #4 category #5 description { - \tl_gput_right:cn { g_@@_xmp_schema_#1_properties_tl } + \tl_if_exist:cTF { g_@@_xmp_schema_#1_properties_tl } + { + \prop_get:NeNF \g_@@_xmp_schema_property_prop {#1:#2}\l_@@_tmpa_tl + { + \prop_gput:Nee \g_@@_xmp_schema_property_prop {#1:#2}{#3} + \tl_gput_right:cn { g_@@_xmp_schema_#1_properties_tl } + { + \@@_xmp_add_packet_open:nn {rdf}{li~rdf:parseType="Resource"} + \@@_xmp_add_packet_line:nnn {pdfaProperty}{name}{#2} + \@@_xmp_add_packet_line:nnn {pdfaProperty}{valueType}{#3} + \@@_xmp_add_packet_line:nnn {pdfaProperty}{category}{#4} + \@@_xmp_add_packet_line:nnn {pdfaProperty}{description}{#5} + \@@_xmp_add_packet_close:nn{rdf}{li} + } + } + } { - \@@_xmp_add_packet_open:nn {rdf}{li~rdf:parseType="Resource"} - \@@_xmp_add_packet_line:nnn {pdfaProperty}{name}{#2} - \@@_xmp_add_packet_line:nnn {pdfaProperty}{valueType}{#3} - \@@_xmp_add_packet_line:nnn {pdfaProperty}{category}{#4} - \@@_xmp_add_packet_line:nnn {pdfaProperty}{description}{#5} - \@@_xmp_add_packet_close:nn{rdf}{li} - } + \msg_warning:nnnn{pdfmeta}{xmp-undefined}{schema}{#1} + } } % \end{macrocode} % \end{macro} @@ -2103,6 +2189,12 @@ {Integer} {internal} {Year~of~standard} +\@@_xmp_property_new:nnnnn + {pdfaid} + {rev} + {Integer} + {internal} + {Revision~year~of~standard} % \end{macrocode} % \end{macro} % \item[pdfuaid] here we need (?) to declare the property @@ -2304,7 +2396,7 @@ % that may not be related to PDF technology. Their specification is for example % described in \url{https://pdfa.org/wp-content/uploads/2019/09/PDF-Declarations.pdf}. % -% If declarations are added to the XMP-metadata they need (for pdf/A compliancy) a +% If declarations are added to the XMP-metadata they need (for pdf/A compliance) a % schema declaration. We do not add it by default but define here a command to enable % it. (This can be done in the document preamble as xmp is built only at the end.) % @@ -2312,7 +2404,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_xmp_schema_enable_pdfd: { - \@@_xmp_xmlns_new:ne {pdfd}{http://pdfa.org/declarations/} + \@@_xmp_xmlns_new:nn {pdfd}{http://pdfa.org/declarations/} \@@_xmp_schema_new:nnn {PDF~Declarations~Schema} {pdfd} @@ -2932,11 +3024,22 @@ \cs_new_protected:Npn \pdfmeta_xmp_xmlns_new:nn #1 #2 { \prop_if_in:NnTF \g_@@_xmp_xmlns_prop {#1} - {\msg_warning:nnn{pdfmeta}{namespace-defined}{#1}} + {\msg_warning:nnnn{pdfmeta}{xmp-defined}{xmlns~namespace}{#1}} {\@@_xmp_xmlns_new:nn {#1}{#2}} } % \end{macrocode} % \end{macro} +% \begin{macro}{\pdfmeta_xmp_schema_new:nnn} +% \begin{macrocode} +\cs_set_eq:NN \pdfmeta_xmp_schema_new:nnn \@@_xmp_schema_new:nnn +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pdfmeta_xmp_property_new:nnnnn} +% \begin{macrocode} +\cs_set_eq:NN \pdfmeta_xmp_property_new:nnnnn \@@_xmp_property_new:nnnnn +% \end{macrocode} +% \end{macro} % % \begin{macro}{\pdfmeta_xmp_add_declaration:n,\pdfmeta_xmp_add_declaration:e} % \begin{macrocode} @@ -2991,14 +3094,14 @@ \cs_new_protected:Npn \@@_xmp_wtpdf_reuse_declaration: { \pdfmeta_xmp_add_declaration:eeenn - {http://pdfa.org/declarations\c_hash_str wtpdf-reuse1.0} + {http://pdfa.org/declarations/wtpdf\c_hash_str reuse1.0} {LaTeX~Project} {\@@_xmp_iso_today:}{}{} } \cs_new_protected:Npn \@@_xmp_wtpdf_accessibility_declaration: { \pdfmeta_xmp_add_declaration:ennnn - {http://pdfa.org/declarations\c_hash_str wtpdf-accessibility1.0} + {http://pdfa.org/declarations/wtpdf\c_hash_str accessibility1.0} {LaTeX~Project} {\@@_xmp_iso_today:}{}{} } diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf Binary files differindex 31abe3cc77..afab41c4c0 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfmeta.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx index d440373372..4a2ce54e99 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -155,10 +155,14 @@ % command is \emph{used}, but only at \emph{shipout}. % This requires new engines which % allow to use the keyword \texttt{shipout} with the primitive -% \cs{special} and \cs{pdfliteral}. The content of \meta{dictionary content} -% is added in the stream. +% \cs{special} and \cs{pdfliteral}. Also differently to \cs{pdf_bdc:ee} +% the content of \meta{dictionary content} is added inline in the stream +% with most engines (not on the dvips + ps2pdf route). +% This means that this command can also be used if such an inline dictionary is preferred. +% +% The command requires current engines and +% is not defined if an too old engine is detected! % -% The command requires current engines and is not defined if an to old engine is detected! % \end{function} % % \begin{function}[added = 2020-07-03] @@ -231,7 +235,7 @@ % % \begin{macrocode} %<*header> -\ProvidesExplPackage{l3pdftools}{2024-04-09}{0.96h} +\ProvidesExplPackage{l3pdftools}{2024-09-13}{0.96l} {candidate commands for l3pdf---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} @@ -325,7 +329,7 @@ % ========== % uri: utf16BE/string seems not to work, hex neither % utf8/string works but not on macos, -% so a specfic utf8/url variant is needed +% so a specific utf8/url variant is needed % ========== % "input" is utf8 for pdftex, empty (native) for unicode engine % commands to output literal strings (...) diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf Binary files differindex 4dca8de6ec..748847dedf 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdftools.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx index c135d90f88..339a080031 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -132,7 +132,7 @@ % \begin{macrocode} %<@@=pdf> %<*header> -\ProvidesExplPackage{l3pdfxform}{2024-04-09}{0.96h} +\ProvidesExplPackage{l3pdfxform}{2024-09-13}{0.96l} {command to create xforms (beta)---LaTeX PDF management testphase bundle} %</header> % \end{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf Binary files differindex 5871db8203..81a8f9b8cb 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/l3pdfxform.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx index e51d8ea205..41de3391eb 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -197,11 +197,12 @@ % stream. The \meta{token list variable} is assigned locally. % \end{function} % -% \begin{function}{\ShowDocumentProperties} +% \begin{function}{\ShowDocumentProperties,\LogDocumentProperties} % \begin{syntax} -% \cs{ShowDocumentProperties} +% \cs{ShowDocumentProperties}\\ +% \cs{LogDocumentProperties} % \end{syntax} -% This show the current content of the container. +% This shows/logs the current content of the container. % \end{function} % % \begin{thebibliography}{9} @@ -220,7 +221,7 @@ % \begin{macrocode} %<@@=pdfmanagement> %<*header> -\ProvidesExplPackage{ltdocinit}{2024-04-09}{0.96h} +\ProvidesExplPackage{ltdocinit}{2024-09-13}{0.96l} {Initialize document metadata} %</header> % \end{macrocode} @@ -324,6 +325,13 @@ \prop_map_function:NN \g_@@_documentproperties_prop \msg_show_item:nn } } +\NewDocumentCommand\LogDocumentProperties {} + { + \msg_log:nne {pdfmanagement}{show-properties} + { + \prop_map_function:NN \g_@@_documentproperties_prop \msg_show_item:nn + } + } % \end{macrocode} % \end{macro} % \begin{macrocode} diff --git a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf Binary files differindex 9778c2647f..8888d4b96b 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/ltdocinit.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx index 61853b0d5b..a20c644f5f 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -63,7 +63,7 @@ % |debug={firstaidoff={name1,name2,...},...}|. % \begin{macrocode} %<*package> -\ProvidesExplPackage{pdfmanagement-firstaid}{2024-04-09}{0.96h} +\ProvidesExplPackage{pdfmanagement-firstaid}{2024-09-13}{0.96l} {LaTeX PDF management testphase bundle / firstaid-patches} %<@@=pdfmanagement> diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf Binary files differindex 7d4b656e9a..14cd5e9523 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-firstaid.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx index eec73f1105..df266772c6 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Version 0.96h, released 2024-04-09} +% \date{Version 0.96l, released 2024-09-13} % % \maketitle % \begin{documentation} @@ -394,7 +394,7 @@ % \begin{macrocode} %<@@=pdf> %<*package> -\ProvidesExplPackage{pdfmanagement-testphase}{2024-04-09}{0.96h} +\ProvidesExplPackage{pdfmanagement-testphase}{2024-09-13}{0.96l} {LaTeX PDF management testphase bundle} \providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} \IfFormatAtLeastTF{2020-10-01}{}{ @@ -422,7 +422,7 @@ % to allow to set it in the document. % \begin{macrocode} %<*header> -\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-04-09}{0.96h} +\ProvidesExplFile{pdfmanagement-testphase.ltx}{2024-09-13}{0.96l} {PDF~management~code~(testphase)} % \end{macrocode} % We define a boolean for the new delayed shipout. This is temporary. At some diff --git a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf Binary files differindex d8204141ca..f46be9a4b2 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf +++ b/macros/latex/contrib/pdfmanagement-testphase/pdfmanagement-testphase.pdf diff --git a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty index 6b553f8519..51316ead66 100644 --- a/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty +++ b/macros/latex/contrib/pdfmanagement-testphase/xcolor-patches-tmp-ltx.sty @@ -1,6 +1,6 @@ %% LaTeX2e file `xcolor-patches-tmp-ltx.sty' %% -\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-04-09 v0.96h patch xcolor for l3color] +\ProvidesPackage{xcolor-patches-tmp-ltx}[2024-09-13 v0.96l patch xcolor for l3color] \@ifundefined{color_set:nn}{\RequirePackage{l3color}}{} \ExplSyntaxOn |