texlive[65979] branches/branch2022.final: hyperxmp (20feb23) (branch)

commits+karl at tug.org commits+karl at tug.org
Mon Feb 20 21:59:19 CET 2023


Revision: 65979
          http://tug.org/svn/texlive?view=revision&revision=65979
Author:   karl
Date:     2023-02-20 21:59:19 +0100 (Mon, 20 Feb 2023)
Log Message:
-----------
hyperxmp (20feb23) (branch)

Modified Paths:
--------------
    branches/branch2022.final/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl
    branches/branch2022.final/Master/texmf-dist/doc/latex/hyperxmp/README
    branches/branch2022.final/Master/texmf-dist/doc/latex/hyperxmp/hyperxmp.pdf
    branches/branch2022.final/Master/texmf-dist/doc/man/man1/hyperxmp-add-bytecount.man1.pdf
    branches/branch2022.final/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl
    branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex
    branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex
    branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx
    branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins
    branches/branch2022.final/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
    branches/branch2022.final/Master/tlpkg/libexec/ctan2tds

Modified: branches/branch2022.final/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl
===================================================================
--- branches/branch2022.final/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl	2023-02-20 20:59:19 UTC (rev 65979)
@@ -8,7 +8,7 @@
 # hyperxmp-add-bytecount                                               #
 #   Adds/updates byteCount specification in XMP packet in pdf file(s)  #
 #   made by hyperxmp, with byteCount = file size.                      #
-# Copyright (C) 2020 John Collins <jcc8 at psu.edu>                       #
+# Copyright (C) 2020-2022 John Collins <jcc8 at psu.edu>                  #
 #    and Scott Pakin, <scott+hyxmp at pakin.org>                          #
 #                                                                      #
 # This program may be distributed and/or modified under the conditions #

Modified: branches/branch2022.final/Master/texmf-dist/doc/latex/hyperxmp/README
===================================================================
--- branches/branch2022.final/Master/texmf-dist/doc/latex/hyperxmp/README	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/texmf-dist/doc/latex/hyperxmp/README	2023-02-20 20:59:19 UTC (rev 65979)
@@ -47,7 +47,7 @@
 Copyright and license
 =====================
 
-Copyright (C) 2011-2020 Scott Pakin
+Copyright (C) 2011-2023 Scott Pakin
 
 This file may be distributed and/or modified under the conditions of
 the LaTeX Project Public License, either version 1.3c of this license

Modified: branches/branch2022.final/Master/texmf-dist/doc/latex/hyperxmp/hyperxmp.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2022.final/Master/texmf-dist/doc/man/man1/hyperxmp-add-bytecount.man1.pdf
===================================================================
(Binary files differ)

Modified: branches/branch2022.final/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl
===================================================================
--- branches/branch2022.final/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl	2023-02-20 20:59:19 UTC (rev 65979)
@@ -8,7 +8,7 @@
 # hyperxmp-add-bytecount                                               #
 #   Adds/updates byteCount specification in XMP packet in pdf file(s)  #
 #   made by hyperxmp, with byteCount = file size.                      #
-# Copyright (C) 2020 John Collins <jcc8 at psu.edu>                       #
+# Copyright (C) 2020-2022 John Collins <jcc8 at psu.edu>                  #
 #    and Scott Pakin, <scott+hyxmp at pakin.org>                          #
 #                                                                      #
 # This program may be distributed and/or modified under the conditions #

Modified: branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex
===================================================================
--- branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex	2023-02-20 20:59:19 UTC (rev 65979)
@@ -21,7 +21,6 @@
                  xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"
                  xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/"
                  xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/"
-                 xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/"
                  xmlns:prism="http://prismstandard.org/namespaces/basic/3.0/"
                  xmlns:jav="http://www.niso.org/schemas/jav/1.0/"
                  xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"

Modified: branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex
===================================================================
--- branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex	2023-02-20 20:59:19 UTC (rev 65979)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp at pakin.org>
+%% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp at pakin.org>
 %% 
 %% This file may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License, either version 1.3c of this license

Modified: branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx
===================================================================
--- branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx	2023-02-20 20:59:19 UTC (rev 65979)
@@ -1,6 +1,6 @@
 % \iffalse meta-comment
 %
-% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp at pakin.org>
+% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp at pakin.org>
 % --------------------------------------------------------------
 %
 % This file may be distributed and/or modified under the
@@ -22,7 +22,7 @@
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{hyperxmp}
 %<*package>
-    [2020/11/22 v5.9 Store hyperref metadata in XMP format]
+    [2022/10/16 v5.11 Store hyperref metadata in XMP format]
 %</package>
 %
 %<*driver>
@@ -76,7 +76,7 @@
   pdftitle={The hyperxmp package},
   pdfsubject={LaTeX2e support for XMP metadata},
   pdfkeywords={LaTeX, embedded metadata, XMP, PDF, copyright, license, comments},
-  pdfcopyright={Copyright (C) 2011-2020, Scott Pakin},
+  pdfcopyright={Copyright (C) 2011-2023, Scott Pakin},
   pdflicenseurl={http://www.latex-project.org/lppl/},
   pdfcaptionwriter={Scott Pakin},
   pdfcontactemail={scott+hyxmp at pakin.org},
@@ -98,18 +98,33 @@
   bookmarksnumbered
 }
 
+% Redefine \changes to properly sort v5.10 *after* v5.9.
+\makeatletter
+\let\orig at changes=\changes
+\def\discard at suffix#1\relax{}
+\def\pad at minor@ver v#1.#2\relax{%
+  \afterassignment\discard at suffix
+  \@tempcnta=#2\relax
+  \edef\new at change@ver{%
+    v#1.%
+    \ifnum\@tempcnta<10
+      0#2
+    \else
+      #2
+    \fi
+  }%
+}
+\renewcommand{\changes}[2]{%
+  \pad at minor@ver#1\relax
+  \orig at changes{\new at change@ver=#1}{#2}%
+}
+\makeatother
+
 \begin{document}
   \DocInput{hyperxmp.dtx}
   \Needspace{10\baselineskip}
-  \phantomsection\addcontentsline{toc}{section}{Change History}
+  \renewcommand*{\glossaryname}{Change History}
   \PrintChanges
-  \makeatletter
-  \let\orig at index@prologue=\index at prologue
-  \def\index at prologue{%
-    \phantomsection\addcontentsline{toc}{section}{Index}
-    \orig at index@prologue
-  }%
-  \makeatother
   \Needspace{12\baselineskip}
   \PrintIndex
 \end{document}
@@ -116,7 +131,7 @@
 %</driver>
 % \fi
 %
-% \CheckSum{2836}
+% \CheckSum{2844}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -203,11 +218,12 @@
 % \DoNotIndex{\@ifpackageloaded,\@ifundefined,\@nil,\@secondoftwo}
 % \DoNotIndex{\@tempcnta,\@tempcntb,\MessageBreak,\advance,\afterassignment}
 % \DoNotIndex{\aftergroup,\begin,\begingroup,\bgroup,\catcode,\csname,\def}
-% \DoNotIndex{\divide,\edef,\egroup,\else,\end,\endcsname,\endgroup}
-% \DoNotIndex{\expandafter,\fi,\futurelet,\g at addto@macro,\gdef,\global,\if}
-% \DoNotIndex{\ifcase,\ifnum,\ifx,\immediate,\lccode,\let,\loop,\lowercase}
-% \DoNotIndex{\multiply,\newcommand,\noexpand,\or,\relax,\repeat,\space}
-% \DoNotIndex{\string,\the,\toks,\uccode,\uppercase,\usepackage,\xdef}
+% \DoNotIndex{\divide,\do,\edef,\egroup,\else,\end,\endcsname,\endgroup}
+% \DoNotIndex{\expandafter,\fi,\futurelet,\g at addto@macro,\gdef,\global}
+% \DoNotIndex{\hbox,\if,\ifcase,\ifnum,\ifx,\immediate,\lccode,\let,\loop}
+% \DoNotIndex{\lowercase,\multiply,\newcommand,\noexpand,\or,\relax,\repeat}
+% \DoNotIndex{\space,\string,\the,\toks,\uccode,\uppercase,\usepackage}
+% \DoNotIndex{\xdef}
 %
 % ^^A  Define a few logical styles.
 % \DeclareRobustCommand{\term}[1]{#1\SortIndex{#1}{#1}}
@@ -1114,21 +1130,23 @@
 %   \item \pdfLaTeX
 %   \item \LuaLaTeX
 %   \item \XeLaTeX
-%   \item \LaTeX~$+$ Dvipdfm
+%   \item \LaTeX~$+$ \term{Dvipdfm}
+%   \item \LaTeX~$+$ \Dvips~$+$ \term{Ghostscript}
 %   \item \LaTeX~$+$ \Dvips~$+$ Adobe Acrobat Distiller
 % \end{itemize}
 %
 % \noindent
-% Unfortunately, the \LaTeX~$+$ \Dvips~$+$ \term{Ghostscript} path
-% doesn't work.
-% \href{http://bugs.ghostscript.com/show_bug.cgi?id=690066}{Ghostscript
-%   bug report~\#690066}, closed with ``\textsc{wontfix}'' status on
-% 2012-05-28, explains that \term{Ghostscript} doesn't honor the
-% \pdfterm{Metadata} tag needed to inject a custom \acro{XMP} packet.
-% Instead, \term{Ghostscript} fabricates an \acro{XMP} packet of its own
-% based on the metadata it finds in the \acro{PDF} file's \pdfterm{Info}
-% dictionary (\pdfterm{Author}, \pdfterm{Title}, \pdfterm{Subject}, and
-% \pdfterm{Keywords}).
+% The \LaTeX~$+$ \Dvips~$+$ \term{Ghostscript} path stores the
+% \acro{XMP} packet in a compressed stream, which implies that a
+% \acro{PDF} reader is needed to access it.  Ideally, \acro{XMP}
+% metadata should be stored uncompressed so it can be extracted as
+% ordinary text.  Unfortunately, as of 2022-10-07, Ghostscript has no
+% plans to support uncompressed metadata streams
+% (\href{https://bugs.ghostscript.com/show_bug.cgi?id=705962}{Ghostscript
+%   bug report~\#705962}).  It is possible to leave \emph{all} streams
+% uncompressed by passing |-dCompressStreams=false| to \term{Ghostscript}
+% (e.g.,~via the \progname{ps2pdf} wrapper script), but this leads to
+% larger file sizes.
 %
 % \bigskip
 %
@@ -1742,6 +1760,19 @@
 % \subsection{Initial preparation}
 % \label{sec:initial-prep}
 %
+% \changes{v5.11}{2022/10/02}{Disable \protect\pkgname{hyperxmp} if
+%    \LaTeX3 document metadata is available.  Document metadata implies
+%    the presence of PDF management, which completely breaks
+%    \protect\pkgname{hyperxmp}}
+%    \begin{macrocode}
+\IfDocumentMetadataTF{%
+  \PackageWarning
+      {hyperxmp}
+      {Disabling hyperxmp because it is incompatible with PDF management}
+}{}
+\IfDocumentMetadataTF{\endinput}{}
+%    \end{macrocode}
+%
 % \changes{v1.2}{2011/04/17}{Made the package compatible with \pkgname{ngerman}.
 %   Thanks to Tobias Mueller for the bug report.}
 %
@@ -1772,12 +1803,19 @@
 %   \protect\tex\ back ends that provide it.  Thanks to Nelson Posse
 %   Lago for pointing out why \protect\pkgname{atenddvi} is best avoided
 %   if possible}
+% \changes{v5.11}{2022/10/16}{Use \protect\cs{AddToHook} when available.
+%   This addresses a bug reported on \protect\TeX\ StackExchange by joHub
+%   and solved by Ulrike Fischer}
 %    \begin{macrocode}
-\@ifundefined{AtEndDocument}{%
-  \RequirePackage{atenddvi}
-  \let\hyxmp at at@end=\AtEndDvi
+\@ifundefined{AddToHook}{%
+  \@ifundefined{AtEndDocument}{%
+    \RequirePackage{atenddvi}
+    \let\hyxmp at at@end=\AtEndDvi
+  }{%
+    \let\hyxmp at at@end=\AtEndDocument
+  }
 }{%
-  \let\hyxmp at at@end=\AtEndDocument
+  \def\hyxmp at at@end{\AddToHook{shipout/lastpage}}
 }
 %    \end{macrocode}
 % \end{macro}
@@ -2056,6 +2094,18 @@
 %    \end{macrocode}
 % \end{macro}
 %
+% \begin{macro}{\@hyxmp at count}
+% \changes{v5.11}{2022/10/02}{Added this macro to fix a bug with
+%   \protect\optname{pdfapart}.  Thanks to John H. Lienhard and
+%   Kartik Singhal for their bug reports}
+% Define a temporary counter.  The code previously used \cs{@tempcnta},
+% but this is no longer safe within \cs{pdfstringdef} as of more recent
+% versions of \pkgname{hyperref}.
+%    \begin{macrocode}
+\newcount\@hyxmp at count
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\@pdfapart}
 % Prepare to store the \acro{PDF/A} part ID, which defaults to~``1''
 % if \optname{pdfa} is passed to \pkgname{hyperref}.
@@ -2062,8 +2112,8 @@
 %    \begin{macrocode}
 \def\@pdfapart{}
 \define at key{Hyp}{pdfapart}{%
-  \afterassignment\hyxmp at no@bad at parts\@tempcnta=0#1\relax
-  \hyxmp at pdfstringdef\@pdfapart{\the\@tempcnta}%
+  \afterassignment\hyxmp at no@bad at parts\@hyxmp at count=0#1\relax
+  \hyxmp at pdfstringdef\@pdfapart{\the\@hyxmp at count}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -2085,8 +2135,8 @@
 %    \begin{macrocode}
 \def\@pdfuapart{}
 \define at key{Hyp}{pdfuapart}{%
-  \afterassignment\hyxmp at no@bad at parts\@tempcnta=0#1\relax
-  \hyxmp at pdfstringdef\@pdfuapart{\the\@tempcnta}%
+  \afterassignment\hyxmp at no@bad at parts\@hyxmp at count=0#1\relax
+  \hyxmp at pdfstringdef\@pdfuapart{\the\@hyxmp at count}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -2101,11 +2151,11 @@
 %
 % \begin{macro}{\hyxmp at set@pdfx at major@i}
 % This is the first helper macro for |\hyxmp at set@pdfx at major|.  It stores
-% the \acro{PDF/X} major version in |\@tempcnta|.
+% the \acro{PDF/X} major version in |\@hyxmp at count|.
 %    \begin{macrocode}
 \def\hyxmp at set@pdfx at major@i PDF/X-{%
   \afterassignment\hyxmp at set@pdfx at major@ii
-  \@tempcnta=%
+  \@hyxmp at count=%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -2113,12 +2163,12 @@
 % \begin{macro}{\hyxmp at set@pdfx at major@ii}
 % \begin{macro}{\hyxmp at pdfx@major}
 % This is the second helper macro for |\hyxmp at set@pdfx at major|.  It
-% copies the \acro{PDF/X} major version from |\@tempcnta| to
+% copies the \acro{PDF/X} major version from |\@hyxmp at count| to
 % |\@hyxmp at pdfx@major| and discards the rest of the \acro{PDF/X}
 % standard string.
 %    \begin{macrocode}
 \def\hyxmp at set@pdfx at major@ii#1!{%
-  \edef\hyxmp at pdfx@major{\the\@tempcnta}%
+  \edef\hyxmp at pdfx@major{\the\@hyxmp at count}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -2719,6 +2769,9 @@
 %
 % \begin{macro}{\hyxmp at ProcessKeyvalOptions}
 % \changes{v2.0}{2012/09/05}{Added this macro}
+% \changes{v5.11}{2022/10/02}{Bug fix: Restore
+%   \protect\cs{ProcessKeyvalOptions} after first use.  Thanks to
+%   Ulrike Fischer for the bug report}
 % \begin{macro}{\ProcessKeyvalOptions}
 % \changes{v2.0}{2012/09/05}{Added this macro}
 % Redefine \pkgname{kvoptions}'s |\ProcessOptions| command to invoke
@@ -2726,6 +2779,7 @@
 %    \begin{macrocode}
 \let\hyxmp at ProcessKeyvalOptions=\ProcessKeyvalOptions
 \renewcommand*{\ProcessKeyvalOptions}{%
+  \global\let\ProcessKeyvalOptions=\hyxmp at ProcessKeyvalOptions
   \hyxmp at redefine@Hyp
   \hyxmp at ProcessKeyvalOptions
 }
@@ -3183,17 +3237,6 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \pkgname{hyperxmp} can directly query the page count using
-% \LuaTeX\ features.  When any other \TeX\ engine is used,
-% \pkgname{hyperxmp} employs the \pkgname{totpages} package to help
-% tally the total number of pages.
-%    \begin{macrocode}
-\ifLuaTeX
-\else
-  \RequirePackage{totpages}
-\fi
-%    \end{macrocode}
-%
 % Determine the size of the output file from the \emph{previous} run of
 % \LuaLaTeX\@.  This action has to be performed before the
 % |\begin{document}| because at that point the size of the output file
@@ -3331,26 +3374,17 @@
 %    \begin{macrocode}
 \newcommand*{\hyxmp at query@self}{%
 %    \end{macrocode}
-% \LuaTeX\ exposes via \texttt{status.total\_pages} the number of pages
-% written.  We use this mechanism when available to assign
-% \cs{@pdfnumpages}.  To finalize the page count we first issue a
-% \cs{clearpage}.
+% \LaTeX's |totalpages| counter tracks the number of pages written.  We
+% use this mechanism to assign \cs{@pdfnumpages}.
+% \changes{v5.11}{2022/10/16}{Use \protect\cs{thetotalpages} to compute
+%   the page count in an engine-independent manner.  Thanks to Ulrike
+%   Fischer for recommending this mechanism}
 %    \begin{macrocode}
-  \ifLuaTeX
-    \@if at def@and at nonempty{@pdfnumpages}{%
-    }{%
-      \clearpage
-      \xdef\@pdfnumpages{\luadirect{tex.print(status.total_pages)}}%
-    }%
-  \else
+  \@if at def@and at nonempty{@pdfnumpages}{%
+  }{%
+    \xdef\@pdfnumpages{\thetotalpages}%
+  }%
 %    \end{macrocode}
-% Without \LuaTeX\ we rely on the \pkgname{totpages} package to help
-% count the number of pages.  This may require an additional run of
-% \LaTeX, but the user will be notified in that case.
-%    \begin{macrocode}
-    \pdfstringdef\@pdfnumpages{\ref*{TotPages}}%
-  \fi
-%    \end{macrocode}
 % If \optname{pdfbytes} hasn't been set, set it to the output file's size
 % from the previous run.
 %    \begin{macrocode}
@@ -4134,19 +4168,19 @@
 % midnight or the timezone so we omit those fields when defining
 % macro~|#1|.
 %    \begin{macrocode}
-  \@tempcnta=\time
-  \divide\@tempcnta by 60
-  \ifnum\@tempcnta<10
-    \xdef#1{#1T0\the\@tempcnta}%
+  \@hyxmp at count=\time
+  \divide\@hyxmp at count by 60
+  \ifnum\@hyxmp at count<10
+    \xdef#1{#1T0\the\@hyxmp at count}%
   \else
-    \xdef#1{#1T\the\@tempcnta}%
+    \xdef#1{#1T\the\@hyxmp at count}%
   \fi
-  \multiply\@tempcnta by -60
-  \advance\@tempcnta by \time
-  \ifnum\@tempcnta<10
-    \xdef#1{#1:0\the\@tempcnta}%
+  \multiply\@hyxmp at count by -60
+  \advance\@hyxmp at count by \time
+  \ifnum\@hyxmp at count<10
+    \xdef#1{#1:0\the\@hyxmp at count}%
   \else
-    \xdef#1{#1:\the\@tempcnta}%
+    \xdef#1{#1:\the\@hyxmp at count}%
   \fi
   \xdef#1{#1Z}%
 }
@@ -4923,14 +4957,14 @@
 % \xmpprop{xmpMM:InstanceID} fields.
 %
 % \begin{macro}{\hyxmp at modulo@a}
-% Replace the contents of |\@tempcnta| with the contents modulo~|#1|.
+% Replace the contents of |\@hyxmp at count| with the contents modulo~|#1|.
 % Note that |\@tempcntb| is overwritten in the process.
 %    \begin{macrocode}
 \def\hyxmp at modulo@a#1{%
-  \@tempcntb=\@tempcnta
+  \@tempcntb=\@hyxmp at count
   \divide\@tempcntb by #1
   \multiply\@tempcntb by #1
-  \advance\@tempcnta by -\@tempcntb
+  \advance\@hyxmp at count by -\@tempcntb
 }
 %    \end{macrocode}
 % \end{macro}
@@ -4952,7 +4986,7 @@
 % of text.
 %    \begin{macrocode}
 \def\hyxmp at seed@rng#1{%
-  \@tempcnta=\hyxmp at big@prime
+  \@hyxmp at count=\hyxmp at big@prime
   \futurelet\hyxmp at one@token\hyxmp at seed@rng at i#1\@empty
 }
 %    \end{macrocode}
@@ -4963,8 +4997,8 @@
 % \begin{macro}{\hyxmp at one@token}
 % \begin{macro}{\next}
 % Do all of the work for |\hyxmp at seed@rng|.  For each character code $c$
-% of the input text, assign $\mathtt{\string\@tempcnta} \leftarrow 3
-% \cdot \mathtt{\string\@tempcnta} + c
+% of the input text, assign $\mathtt{\string\@hyxmp at count} \leftarrow 3
+% \cdot \mathtt{\string\@hyxmp at count} + c
 % \pmod{\mathtt{\string\hyxmp at big@prime}}$.
 %    \begin{macrocode}
 \def\hyxmp at seed@rng at i{%
@@ -4972,8 +5006,8 @@
     \let\next=\relax
   \else
     \def\next##1{%
-      \multiply\@tempcnta by 3
-      \advance\@tempcnta by `##1
+      \multiply\@hyxmp at count by 3
+      \advance\@hyxmp at count by `##1
       \hyxmp at modulo@a{\hyxmp at big@prime}%
       \futurelet\hyxmp at one@token\hyxmp at seed@rng at i
     }%
@@ -4991,15 +5025,15 @@
 % sequence.  Specifically, we assign $\mathtt{\string\hyxmp at rand@num}
 % \leftarrow 3 \cdot \mathtt{\string\hyxmp at rand@num} +
 % \mathtt{\string\hyxmp at big@prime at ii}
-% \pmod{\mathtt{\string\hyxmp at big@prime}}$.  Note that both |\@tempcnta|
+% \pmod{\mathtt{\string\hyxmp at big@prime}}$.  Note that both |\@hyxmp at count|
 % and |\@tempcntb| are overwritten in the process.
 %    \begin{macrocode}
 \def\hyxmp at set@rand at num{%
-  \@tempcnta=\hyxmp at rand@num
-  \multiply\@tempcnta by 3
-  \advance\@tempcnta by \hyxmp at big@prime at ii
+  \@hyxmp at count=\hyxmp at rand@num
+  \multiply\@hyxmp at count by 3
+  \advance\@hyxmp at count by \hyxmp at big@prime at ii
   \hyxmp at modulo@a{\hyxmp at big@prime}%
-  \xdef\hyxmp at rand@num{\the\@tempcnta}%
+  \xdef\hyxmp at rand@num{\the\@hyxmp at count}%
 }
 %    \end{macrocode}
 % \end{macro}
@@ -5007,21 +5041,21 @@
 %
 % \begin{macro}{\hyxmp at append@hex}
 % Append a randomly selected hexadecimal digit to macro~|#1|.  Note that
-% both |\@tempcnta| and |\@tempcntb| are overwritten in the process.
+% both |\@hyxmp at count| and |\@tempcntb| are overwritten in the process.
 %    \begin{macrocode}
 \def\hyxmp at append@hex#1{%
   \hyxmp at set@rand at num
-  \@tempcnta=\hyxmp at rand@num
+  \@hyxmp at count=\hyxmp at rand@num
   \hyxmp at modulo@a{16}%
-  \ifnum\@tempcnta<10
-    \xdef#1{#1\the\@tempcnta}%
+  \ifnum\@hyxmp at count<10
+    \xdef#1{#1\the\@hyxmp at count}%
   \else
 %    \end{macrocode}
 % There \emph{must} be a better way to handle the numbers~10--15 than
 % with |\ifcase|.
 %    \begin{macrocode}
-    \advance\@tempcnta by -10
-    \ifcase\@tempcnta
+    \advance\@hyxmp at count by -10
+    \ifcase\@hyxmp at count
       \xdef#1{#1a}%
       \or\xdef#1{#1b}%
       \or\xdef#1{#1c}%
@@ -5063,7 +5097,7 @@
 % in which each ``\textit{x}'' is a lowercase hexadecimal digit and
 % ``\textit{y}'' is one of ``|8|'', ``|9|'', ``|a|'', or~``|b|''.  We
 % assume that the random-number generator is already seeded.  Note that
-% |\hyxmp at create@uuid| overwrites both |\@tempcnta| and |\@tempcntb|.
+% |\hyxmp at create@uuid| overwrites both |\@hyxmp at count| and |\@tempcntb|.
 % \changes{v2.4}{2014/01/02}{Modified this macro to produce a proper
 %   version~4 (random or pseudorandom) \protect\acro{UUID}}
 %    \begin{macrocode}
@@ -5080,9 +5114,9 @@
 % Randomly select one of ``|8|'', ``|9|'', ``|a|'', or~``|b|''.
 %    \begin{macrocode}
   \hyxmp at set@rand at num
-  \@tempcnta=\hyxmp at rand@num
+  \@hyxmp at count=\hyxmp at rand@num
   \hyxmp at modulo@a{4}%
-  \ifcase\@tempcnta
+  \ifcase\@hyxmp at count
     \g at addto@macro#1{8}%
     \or\g at addto@macro#1{9}%
     \or\g at addto@macro#1{a}%
@@ -5109,7 +5143,7 @@
 \newcommand*{\hyxmp at def@DocumentID}{%
   \edef\hyxmp at seed@string{\hyxmp at jobname:\@pdftitle:\@pdfauthor:}%
   \expandafter\hyxmp at seed@rng\expandafter{\hyxmp at seed@string}%
-  \edef\hyxmp at rand@num{\the\@tempcnta}%
+  \edef\hyxmp at rand@num{\the\@hyxmp at count}%
   \hyxmp at create@uuid\hyxmp at DocumentID
 }
 %    \end{macrocode}
@@ -5138,7 +5172,7 @@
     \hyxmp at jobname:\@pdftitle:\@pdfauthor:\hyxmp at today@xmp:\hyxmp at seed@string
   }%
   \expandafter\hyxmp at seed@rng\expandafter{\hyxmp at seed@string}%
-  \edef\hyxmp at rand@num{\the\@tempcnta}%
+  \edef\hyxmp at rand@num{\the\@hyxmp at count}%
   \hyxmp at create@uuid\hyxmp at InstanceID
 }
 %    \end{macrocode}
@@ -5196,7 +5230,7 @@
 %    \begin{macrocode}
 \newcommand*{\hyxmp at add@to at xml}[1]{%
   \bgroup
-    \@tempcnta=0
+    \@hyxmp at count=0
     \ifhyxmp at unicodetex
       \@tempcntb=65536%
     \else
@@ -5203,9 +5237,9 @@
       \@tempcntb=256%
     \fi
     \loop
-      \lccode\@tempcnta=\@tempcnta
-      \advance\@tempcnta by 1
-      \ifnum\@tempcnta<\@tempcntb
+      \lccode\@hyxmp at count=\@hyxmp at count
+      \advance\@hyxmp at count by 1
+      \ifnum\@hyxmp at count<\@tempcntb
     \repeat
     \lccode`\_=`\ \relax
     \lccode`\^^C=`\,\relax
@@ -6011,14 +6045,14 @@
 % \changes{v5.0}{2020/02/26}{Added this macro}
 %    \begin{macrocode}
 \newcommand*{\hyxmp at pdfx@id at schema}{%
-  \@tempcnta=0\hyxmp at pdfx@major\relax
-  \ifnum\@tempcnta=0
+  \@hyxmp at count=0\hyxmp at pdfx@major\relax
+  \ifnum\@hyxmp at count=0
   \else
-    \ifnum\@tempcnta=1
+    \ifnum\@hyxmp at count=1
       \hyxmp at add@simple{pdfx:GTS_PDFXVersion}{PDF/X-1:2001}%
       \hyxmp at add@simple{pdfx:GTS_PDFXConformance}{\@pdfxstandard}%
     \else
-      \ifnum\@tempcnta<4
+      \ifnum\@hyxmp at count<4
         \hyxmp at add@simple{pdfx:GTS_PDFXVersion}{\@pdfxstandard}%
       \else
         \hyxmp at add@simple{pdfxid:GTS_PDFXVersion}{\@pdfxstandard}%
@@ -6629,8 +6663,8 @@
 %    \end{macrocode}
 % Declare the schema used in \PDFstd{X}{4}{}{} and later versions.
 %    \begin{macrocode}
-  \@tempcnta=0\hyxmp at pdfx@major\relax
-  \ifnum\@tempcnta>3
+  \@hyxmp at count=0\hyxmp at pdfx@major\relax
+  \ifnum\@hyxmp at count>3
     \hyxmp at begin@ext at decl
         {PDF/X ID Schema}%
         {pdfxid}%
@@ -6958,7 +6992,27 @@
 _____________________xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"^^J%
 _____________________xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/"^^J%
 _____________________xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/"^^J%
+  }%
+%    \end{macrocode}
+% We make one exception to the rule of including every namespace we can
+% potentially use: We don't define the \texttt{pdfxid} namespace unless
+% the \acro{PDF/X} version (specified by the \optname{pdfxstandard})
+% option is~4 or greater.  Otherwise, Adobe Acrobat---at least Adobe
+% Acrobat DC 2020---alters the way it displays color.  (I believe it
+% renders color in a printer gamut instead of a screen gamut.)
+% \changes{v5.10}{2020/01/05}{Include the \string\texttt{pdfxid} namespace
+%   only if the \protect\acro{PDF/X} version is~4 or greater.  Thanks to
+%   John Lienhard for the bug report}
+%    \begin{macrocode}
+  \ifnum0\hyxmp at pdfx@major>3
+    \hyxmp at add@to at xml{%
 _____________________xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/"^^J%
+    }%
+  \fi
+%    \end{macrocode}
+% Revert to ``include every namespace'' mode.
+%    \begin{macrocode}
+  \hyxmp at add@to at xml{%
 _____________________xmlns:prism="http://prismstandard.org/namespaces/basic/3.0/"^^J%
 _____________________xmlns:jav="http://www.niso.org/schemas/jav/1.0/"^^J%
 _____________________xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"^^J%
@@ -7177,7 +7231,7 @@
     <<
       /Type /Metadata
       /Subtype /XML
-      /Length \the\@tempcnta
+      /Length \the\@hyxmp at count
     >>
     stream^^J\hyxmp at xml endstream%
   }%
@@ -7191,7 +7245,7 @@
 % \end{macro}
 %
 % \begin{macro}{\hyxmp at string@len}
-% Set |\@tempcnta| to the number of characters in a given string~(|#1|).
+% Set |\@hyxmp at count| to the number of characters in a given string~(|#1|).
 % The approach is first to tally the number of space characters then to
 % tally the number of non-space characters.  While this is rather
 % sloppy I haven't found a better way to achieve the same effect,
@@ -7199,7 +7253,7 @@
 % assigned their category codes.
 %    \begin{macrocode}
 \newcommand*{\hyxmp at string@len}[1]{%
-  \@tempcnta=0
+  \@hyxmp at count=0
   \expandafter\hyxmp at count@spaces#1 {} %
   \expandafter\hyxmp at count@non at spaces#1{}%
 }
@@ -7214,9 +7268,9 @@
 \def\hyxmp at count@spaces#1 {%
   \def\hyxmp at one@token{#1}%
   \ifx\hyxmp at one@token\@empty
-    \advance\@tempcnta by -1
+    \advance\@hyxmp at count by -1
   \else
-    \advance\@tempcnta by 1
+    \advance\@hyxmp at count by 1
     \expandafter\hyxmp at count@spaces
   \fi
 }
@@ -7233,7 +7287,7 @@
   \def\hyxmp at one@token{#1}%
   \ifx\hyxmp at one@token\@empty
   \else
-    \advance\@tempcnta by 1
+    \advance\@hyxmp at count by 1
     \expandafter\hyxmp at count@non at spaces
   \fi
 }

Modified: branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins
===================================================================
--- branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins	2023-02-20 20:59:19 UTC (rev 65979)
@@ -1,5 +1,5 @@
 %%
-%% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp at pakin.org>
+%% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp at pakin.org>
 %%
 %% This file may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License, either version 1.3c of this license
@@ -21,7 +21,7 @@
 
 This is a generated file.
 
-Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp at pakin.org>
+Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp at pakin.org>
 
 This file may be distributed and/or modified under the conditions of
 the LaTeX Project Public License, either version 1.3c of this license

Modified: branches/branch2022.final/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
===================================================================
--- branches/branch2022.final/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty	2023-02-20 20:59:19 UTC (rev 65979)
@@ -8,7 +8,7 @@
 %% 
 %% This is a generated file.
 %% 
-%% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp at pakin.org>
+%% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp at pakin.org>
 %% 
 %% This file may be distributed and/or modified under the conditions of
 %% the LaTeX Project Public License, either version 1.3c of this license
@@ -22,14 +22,24 @@
 %% 
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 \ProvidesPackage{hyperxmp}
-    [2020/11/22 v5.9 Store hyperref metadata in XMP format]
+    [2022/10/16 v5.11 Store hyperref metadata in XMP format]
+\IfDocumentMetadataTF{%
+  \PackageWarning
+      {hyperxmp}
+      {Disabling hyperxmp because it is incompatible with PDF management}
+}{}
+\IfDocumentMetadataTF{\endinput}{}
 \edef\hyxmp at dq@code{\the\catcode`\"}
 \catcode`\"=12
-\@ifundefined{AtEndDocument}{%
-  \RequirePackage{atenddvi}
-  \let\hyxmp at at@end=\AtEndDvi
+\@ifundefined{AddToHook}{%
+  \@ifundefined{AtEndDocument}{%
+    \RequirePackage{atenddvi}
+    \let\hyxmp at at@end=\AtEndDvi
+  }{%
+    \let\hyxmp at at@end=\AtEndDocument
+  }
 }{%
-  \let\hyxmp at at@end=\AtEndDocument
+  \def\hyxmp at at@end{\AddToHook{shipout/lastpage}}
 }
 \def\hyxmp at set@jobname#1\relax{%
   \@ifnextchar"{\hyxmp at set@jobname at dbl}{\hyxmp at set@jobname at plain}#1\relax
@@ -101,10 +111,11 @@
     \PackageWarning{hyperxmp}{pdfapart and pdfuapart must be numeric}%
   }%
 }
+\newcount\@hyxmp at count
 \def\@pdfapart{}
 \define at key{Hyp}{pdfapart}{%
-  \afterassignment\hyxmp at no@bad at parts\@tempcnta=0#1\relax
-  \hyxmp at pdfstringdef\@pdfapart{\the\@tempcnta}%
+  \afterassignment\hyxmp at no@bad at parts\@hyxmp at count=0#1\relax
+  \hyxmp at pdfstringdef\@pdfapart{\the\@hyxmp at count}%
 }
 \def\@pdfaconformance{}
 \define at key{Hyp}{pdfaconformance}{%
@@ -112,16 +123,16 @@
 }
 \def\@pdfuapart{}
 \define at key{Hyp}{pdfuapart}{%
-  \afterassignment\hyxmp at no@bad at parts\@tempcnta=0#1\relax
-  \hyxmp at pdfstringdef\@pdfuapart{\the\@tempcnta}%
+  \afterassignment\hyxmp at no@bad at parts\@hyxmp at count=0#1\relax
+  \hyxmp at pdfstringdef\@pdfuapart{\the\@hyxmp at count}%
 }
 \newcommand*{\hyxmp at set@pdfx at major}[1]{\hyxmp at set@pdfx at major@i#1!}
 \def\hyxmp at set@pdfx at major@i PDF/X-{%
   \afterassignment\hyxmp at set@pdfx at major@ii
-  \@tempcnta=%
+  \@hyxmp at count=%
 }
 \def\hyxmp at set@pdfx at major@ii#1!{%
-  \edef\hyxmp at pdfx@major{\the\@tempcnta}%
+  \edef\hyxmp at pdfx@major{\the\@hyxmp at count}%
 }
 \newcommand*\hyxmp at check@std[2]{%
   \ifthenelse{\equal{#1}{#2}}%
@@ -299,6 +310,7 @@
 }
 \let\hyxmp at ProcessKeyvalOptions=\ProcessKeyvalOptions
 \renewcommand*{\ProcessKeyvalOptions}{%
+  \global\let\ProcessKeyvalOptions=\hyxmp at ProcessKeyvalOptions
   \hyxmp at redefine@Hyp
   \hyxmp at ProcessKeyvalOptions
 }
@@ -501,10 +513,6 @@
   \hyxmp at query@self
 }
 \ifLuaTeX
-\else
-  \RequirePackage{totpages}
-\fi
-\ifLuaTeX
   \begin{luacode*}
 function get_pdf_size (bname)
    local odir = ""
@@ -537,15 +545,10 @@
   }%
 \fi
 \newcommand*{\hyxmp at query@self}{%
-  \ifLuaTeX
-    \@if at def@and at nonempty{@pdfnumpages}{%
-    }{%
-      \clearpage
-      \xdef\@pdfnumpages{\luadirect{tex.print(status.total_pages)}}%
-    }%
-  \else
-    \pdfstringdef\@pdfnumpages{\ref*{TotPages}}%
-  \fi
+  \@if at def@and at nonempty{@pdfnumpages}{%
+  }{%
+    \xdef\@pdfnumpages{\thetotalpages}%
+  }%
   \hyxmp at use@first at valid{pdfbytes}{\@pdfbytes}{%
     \hyxmp at prev@pdf at size
   }%
@@ -820,19 +823,19 @@
   \else
     \xdef#1{#1-\the\day}%
   \fi
-  \@tempcnta=\time
-  \divide\@tempcnta by 60
-  \ifnum\@tempcnta<10
-    \xdef#1{#1T0\the\@tempcnta}%
+  \@hyxmp at count=\time
+  \divide\@hyxmp at count by 60
+  \ifnum\@hyxmp at count<10
+    \xdef#1{#1T0\the\@hyxmp at count}%
   \else
-    \xdef#1{#1T\the\@tempcnta}%
+    \xdef#1{#1T\the\@hyxmp at count}%
   \fi
-  \multiply\@tempcnta by -60
-  \advance\@tempcnta by \time
-  \ifnum\@tempcnta<10
-    \xdef#1{#1:0\the\@tempcnta}%
+  \multiply\@hyxmp at count by -60
+  \advance\@hyxmp at count by \time
+  \ifnum\@hyxmp at count<10
+    \xdef#1{#1:0\the\@hyxmp at count}%
   \else
-    \xdef#1{#1:\the\@tempcnta}%
+    \xdef#1{#1:\the\@hyxmp at count}%
   \fi
   \xdef#1{#1Z}%
 }
@@ -1142,15 +1145,15 @@
   \setkeys{hyxmp at LA}{#2}%
 }
 \def\hyxmp at modulo@a#1{%
-  \@tempcntb=\@tempcnta
+  \@tempcntb=\@hyxmp at count
   \divide\@tempcntb by #1
   \multiply\@tempcntb by #1
-  \advance\@tempcnta by -\@tempcntb
+  \advance\@hyxmp at count by -\@tempcntb
 }
 \def\hyxmp at big@prime{536870923}
 \def\hyxmp at big@prime at ii{536870027}
 \def\hyxmp at seed@rng#1{%
-  \@tempcnta=\hyxmp at big@prime
+  \@hyxmp at count=\hyxmp at big@prime
   \futurelet\hyxmp at one@token\hyxmp at seed@rng at i#1\@empty
 }
 \def\hyxmp at seed@rng at i{%
@@ -1158,8 +1161,8 @@
     \let\next=\relax
   \else
     \def\next##1{%
-      \multiply\@tempcnta by 3
-      \advance\@tempcnta by `##1
+      \multiply\@hyxmp at count by 3
+      \advance\@hyxmp at count by `##1
       \hyxmp at modulo@a{\hyxmp at big@prime}%
       \futurelet\hyxmp at one@token\hyxmp at seed@rng at i
     }%
@@ -1167,21 +1170,21 @@
   \next
 }
 \def\hyxmp at set@rand at num{%
-  \@tempcnta=\hyxmp at rand@num
-  \multiply\@tempcnta by 3
-  \advance\@tempcnta by \hyxmp at big@prime at ii
+  \@hyxmp at count=\hyxmp at rand@num
+  \multiply\@hyxmp at count by 3
+  \advance\@hyxmp at count by \hyxmp at big@prime at ii
   \hyxmp at modulo@a{\hyxmp at big@prime}%
-  \xdef\hyxmp at rand@num{\the\@tempcnta}%
+  \xdef\hyxmp at rand@num{\the\@hyxmp at count}%
 }
 \def\hyxmp at append@hex#1{%
   \hyxmp at set@rand at num
-  \@tempcnta=\hyxmp at rand@num
+  \@hyxmp at count=\hyxmp at rand@num
   \hyxmp at modulo@a{16}%
-  \ifnum\@tempcnta<10
-    \xdef#1{#1\the\@tempcnta}%
+  \ifnum\@hyxmp at count<10
+    \xdef#1{#1\the\@hyxmp at count}%
   \else
-    \advance\@tempcnta by -10
-    \ifcase\@tempcnta
+    \advance\@hyxmp at count by -10
+    \ifcase\@hyxmp at count
       \xdef#1{#1a}%
       \or\xdef#1{#1b}%
       \or\xdef#1{#1c}%
@@ -1210,9 +1213,9 @@
   \hyxmp at append@hex at iii#1%
   \g at addto@macro#1{-}%
   \hyxmp at set@rand at num
-  \@tempcnta=\hyxmp at rand@num
+  \@hyxmp at count=\hyxmp at rand@num
   \hyxmp at modulo@a{4}%
-  \ifcase\@tempcnta
+  \ifcase\@hyxmp at count
     \g at addto@macro#1{8}%
     \or\g at addto@macro#1{9}%
     \or\g at addto@macro#1{a}%
@@ -1227,7 +1230,7 @@
 \newcommand*{\hyxmp at def@DocumentID}{%
   \edef\hyxmp at seed@string{\hyxmp at jobname:\@pdftitle:\@pdfauthor:}%
   \expandafter\hyxmp at seed@rng\expandafter{\hyxmp at seed@string}%
-  \edef\hyxmp at rand@num{\the\@tempcnta}%
+  \edef\hyxmp at rand@num{\the\@hyxmp at count}%
   \hyxmp at create@uuid\hyxmp at DocumentID
 }
 \newcommand*{\hyxmp at def@InstanceID}{%
@@ -1236,12 +1239,12 @@
     \hyxmp at jobname:\@pdftitle:\@pdfauthor:\hyxmp at today@xmp:\hyxmp at seed@string
   }%
   \expandafter\hyxmp at seed@rng\expandafter{\hyxmp at seed@string}%
-  \edef\hyxmp at rand@num{\the\@tempcnta}%
+  \edef\hyxmp at rand@num{\the\@hyxmp at count}%
   \hyxmp at create@uuid\hyxmp at InstanceID
 }
 \newcommand*{\hyxmp at add@to at xml}[1]{%
   \bgroup
-    \@tempcnta=0
+    \@hyxmp at count=0
     \ifhyxmp at unicodetex
       \@tempcntb=65536%
     \else
@@ -1248,9 +1251,9 @@
       \@tempcntb=256%
     \fi
     \loop
-      \lccode\@tempcnta=\@tempcnta
-      \advance\@tempcnta by 1
-      \ifnum\@tempcnta<\@tempcntb
+      \lccode\@hyxmp at count=\@hyxmp at count
+      \advance\@hyxmp at count by 1
+      \ifnum\@hyxmp at count<\@tempcntb
     \repeat
     \lccode`\_=`\ \relax
     \lccode`\^^C=`\,\relax
@@ -1527,14 +1530,14 @@
   \hyxmp at add@simple{pdfuaid:part}{\@pdfuapart}%
 }
 \newcommand*{\hyxmp at pdfx@id at schema}{%
-  \@tempcnta=0\hyxmp at pdfx@major\relax
-  \ifnum\@tempcnta=0
+  \@hyxmp at count=0\hyxmp at pdfx@major\relax
+  \ifnum\@hyxmp at count=0
   \else
-    \ifnum\@tempcnta=1
+    \ifnum\@hyxmp at count=1
       \hyxmp at add@simple{pdfx:GTS_PDFXVersion}{PDF/X-1:2001}%
       \hyxmp at add@simple{pdfx:GTS_PDFXConformance}{\@pdfxstandard}%
     \else
-      \ifnum\@tempcnta<4
+      \ifnum\@hyxmp at count<4
         \hyxmp at add@simple{pdfx:GTS_PDFXVersion}{\@pdfxstandard}%
       \else
         \hyxmp at add@simple{pdfxid:GTS_PDFXVersion}{\@pdfxstandard}%
@@ -1842,8 +1845,8 @@
         {Conformance level of PDF/X standard}%
     \hyxmp at end@ext at decl
   \fi
-  \@tempcnta=0\hyxmp at pdfx@major\relax
-  \ifnum\@tempcnta>3
+  \@hyxmp at count=0\hyxmp at pdfx@major\relax
+  \ifnum\@hyxmp at count>3
     \hyxmp at begin@ext at decl
         {PDF/X ID Schema}%
         {pdfxid}%
@@ -2055,7 +2058,13 @@
 _____________________xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"^^J%
 _____________________xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/"^^J%
 _____________________xmlns:pdfx="http://ns.adobe.com/pdfx/1.3/"^^J%
+  }%
+  \ifnum0\hyxmp at pdfx@major>3
+    \hyxmp at add@to at xml{%
 _____________________xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/"^^J%
+    }%
+  \fi
+  \hyxmp at add@to at xml{%
 _____________________xmlns:prism="http://prismstandard.org/namespaces/basic/3.0/"^^J%
 _____________________xmlns:jav="http://www.niso.org/schemas/jav/1.0/"^^J%
 _____________________xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"^^J%
@@ -2180,7 +2189,7 @@
     <<
       /Type /Metadata
       /Subtype /XML
-      /Length \the\@tempcnta
+      /Length \the\@hyxmp at count
     >>
     stream^^J\hyxmp at xml endstream%
   }%
@@ -2191,7 +2200,7 @@
   }%
 }
 \newcommand*{\hyxmp at string@len}[1]{%
-  \@tempcnta=0
+  \@hyxmp at count=0
   \expandafter\hyxmp at count@spaces#1 {} %
   \expandafter\hyxmp at count@non at spaces#1{}%
 }
@@ -2198,9 +2207,9 @@
 \def\hyxmp at count@spaces#1 {%
   \def\hyxmp at one@token{#1}%
   \ifx\hyxmp at one@token\@empty
-    \advance\@tempcnta by -1
+    \advance\@hyxmp at count by -1
   \else
-    \advance\@tempcnta by 1
+    \advance\@hyxmp at count by 1
     \expandafter\hyxmp at count@spaces
   \fi
 }
@@ -2208,7 +2217,7 @@
   \def\hyxmp at one@token{#1}%
   \ifx\hyxmp at one@token\@empty
   \else
-    \advance\@tempcnta by 1
+    \advance\@hyxmp at count by 1
     \expandafter\hyxmp at count@non at spaces
   \fi
 }

Modified: branches/branch2022.final/Master/tlpkg/libexec/ctan2tds
===================================================================
--- branches/branch2022.final/Master/tlpkg/libexec/ctan2tds	2023-02-20 20:53:57 UTC (rev 65978)
+++ branches/branch2022.final/Master/tlpkg/libexec/ctan2tds	2023-02-20 20:59:19 UTC (rev 65979)
@@ -1701,9 +1701,10 @@
  'grotesq'              => '&POSTgrotesq',
  'grverb'               => '&POSTgrverb',
  'guide-latex-fr'       => '&POST_rmsymlink',
- 'haranoaji'		=> 'POST_preserve_postcode',
+ 'haranoaji'		=> '&POST_preserve_postcode',
  'hmtrump'		=> '&POSThmtrump',
  'hustthesis'		=> '&POSThustthesis',
+ 'hyperxmp'		=> '&POST_do_man',
  'ibygrk'               => '&POSTibygrk',
  'isodoc'		=> '&POSTisodoc',
  'impatient'            => '&POSTimpatient',



More information about the tex-live-commits mailing list.