summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-02-20 21:00:04 +0000
committerKarl Berry <karl@freefriends.org>2023-02-20 21:00:04 +0000
commitdc3e0bc45fa068ea0640402f61df774dd612285f (patch)
treea4249bc5000790f49ae8c27d433d01bda27583b1
parent34b4cb3bb6b0acb3ba84e4f221500c1750d67312 (diff)
hyperxmp (20feb23)
git-svn-id: svn://tug.org/texlive/trunk@65980 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl2
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/fmtutil.pl42
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl96
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/updmap.pl24
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl19
-rw-r--r--Master/texmf-dist/doc/latex/hyperxmp/README2
-rw-r--r--Master/texmf-dist/doc/latex/hyperxmp/hyperxmp.pdfbin1555235 -> 1272020 bytes
-rw-r--r--Master/texmf-dist/doc/man/man1/hyperxmp-add-bytecount.man1.pdfbin20522 -> 20524 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl2
-rw-r--r--Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex1
-rw-r--r--Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex2
-rw-r--r--Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx294
-rw-r--r--Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins4
-rw-r--r--Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty145
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds17
15 files changed, 355 insertions, 295 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl b/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl
index 8d965a63f5f..d3fb7e59b17 100755
--- a/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl
+++ b/Build/source/texk/texlive/linked_scripts/hyperxmp/hyperxmp-add-bytecount.pl
@@ -8,7 +8,7 @@ use warnings;
# 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@psu.edu> #
+# Copyright (C) 2020-2022 John Collins <jcc8@psu.edu> #
# and Scott Pakin, <scott+hyxmp@pakin.org> #
# #
# This program may be distributed and/or modified under the conditions #
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl b/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
index a892b12d8cc..735befc0506 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# $Id: fmtutil.pl 65770 2023-02-09 21:26:50Z karl $
+# $Id: fmtutil.pl 65932 2023-02-19 20:49:48Z siepo $
# fmtutil - utility to maintain format files.
# (Maintained in TeX Live:Master/texmf-dist/scripts/texlive.)
#
@@ -24,11 +24,11 @@ BEGIN {
TeX::Update->import();
}
-my $svnid = '$Id: fmtutil.pl 65770 2023-02-09 21:26:50Z karl $';
-my $lastchdate = '$Date: 2023-02-09 22:26:50 +0100 (Thu, 09 Feb 2023) $';
+my $svnid = '$Id: fmtutil.pl 65932 2023-02-19 20:49:48Z siepo $';
+my $lastchdate = '$Date: 2023-02-19 21:49:48 +0100 (Sun, 19 Feb 2023) $';
$lastchdate =~ s/^\$Date:\s*//;
$lastchdate =~ s/ \(.*$//;
-my $svnrev = '$Revision: 65770 $';
+my $svnrev = '$Revision: 65932 $';
$svnrev =~ s/^\$Revision:\s*//;
$svnrev =~ s/\s*\$$//;
my $version = "r$svnrev ($lastchdate)";
@@ -42,9 +42,9 @@ use Cwd;
# don't import anything automatically, this requires us to explicitly
# call functions with TeXLive::TLUtils prefix, and makes it easier to
# find and if necessary remove references to TLUtils
-use TeXLive::TLUtils qw();
+use TeXLive::TLUtils qw(wndws);
-require TeXLive::TLWinGoo if TeXLive::TLUtils::win32;
+require TeXLive::TLWinGoo if wndws();
# numerical constants
my $FMT_NOTSELECTED = 0;
@@ -53,8 +53,8 @@ my $FMT_FAILURE = 2;
my $FMT_SUCCESS = 3;
my $FMT_NOTAVAIL = 4;
-my $nul = (win32() ? 'nul' : '/dev/null');
-my $sep = (win32() ? ';' : ':');
+my $nul = (wndws() ? 'nul' : '/dev/null');
+my $sep = (wndws() ? ';' : ':');
my @deferred_stderr;
my @deferred_stdout;
@@ -84,7 +84,7 @@ chomp(our $TEXMFSYSCONFIG = `kpsewhich -var-value=TEXMFSYSCONFIG`);
chomp(our $TEXMFHOME = `kpsewhich -var-value=TEXMFHOME`);
# make sure that on windows *everything* is in lower case for comparison
-if (win32()) {
+if (wndws()) {
$TEXMFDIST = lc($TEXMFDIST);
$TEXMFVAR = lc($TEXMFVAR);
$TEXMFSYSVAR = lc($TEXMFSYSVAR);
@@ -280,7 +280,7 @@ sub main {
# but for compatibility we'll silently keep the option.
$cmd = 'edit';
my $editor = $ENV{'VISUAL'} || $ENV{'EDITOR'};
- $editor ||= (&win32 ? "notepad" : "vi");
+ $editor ||= (&wndws ? "notepad" : "vi");
if (-r $changes_config_file) {
&copyFile($changes_config_file, $bakFile);
} else {
@@ -389,7 +389,7 @@ sub callback_build_formats {
# So make our own temp dir.
my $tmpdir = "";
if (! $opts{"dry-run"}) {
- if (win32()) {
+ if (wndws()) {
my $foo;
my $tmp_deflt = File::Spec->tmpdir;
for my $i (1..5) {
@@ -519,7 +519,7 @@ sub callback_build_formats {
print_info("failed to build: $err (@err)\n") if ($err);
print_info("total formats: $total\n");
chdir($thisdir) || warn "chdir($thisdir) failed: $!";
- if (win32()) {
+ if (wndws()) {
# try to remove the tmpdir with all files
TeXLive::TLUtils::rmtree($tmpdir);
}
@@ -1199,7 +1199,7 @@ sub determine_config_files {
die "$prg: Config file \"$f\" not found";
}
}
- push @tmp, (win32() ? lc($f) : $f);
+ push @tmp, (wndws() ? lc($f) : $f);
}
@{$opts{'cnffile'}} = @tmp;
# in case that config files are given on the command line, the first
@@ -1210,12 +1210,12 @@ sub determine_config_files {
chomp(@all_files);
my @used_files;
for my $f (@all_files) {
- push @used_files, (win32() ? lc($f) : $f);
+ push @used_files, (wndws() ? lc($f) : $f);
}
#
my $TEXMFLOCALVAR;
my @TEXMFLOCAL;
- if (win32()) {
+ if (wndws()) {
chomp($TEXMFLOCALVAR =`kpsewhich --expand-path=\$TEXMFLOCAL`);
@TEXMFLOCAL = map { lc } split(/;/ , $TEXMFLOCALVAR);
} else {
@@ -1351,7 +1351,7 @@ sub save_fmtutil {
# and reset it to the real home dir of root.
sub reset_root_home {
- if (!win32() && ($> == 0)) { # $> is effective uid
+ if (!wndws() && ($> == 0)) { # $> is effective uid
my $envhome = $ENV{'HOME'};
# if $HOME isn't an existing directory, we don't care.
if (defined($envhome) && (-d $envhome)) {
@@ -1420,16 +1420,6 @@ sub print_deferred_error {
}
-# copied from TeXLive::TLUtils to reduce dependencies
-sub win32 {
- if ($^O =~ /^MSWin/i) {
- return 1;
- } else {
- return 0;
- }
-}
-
-
# version, help.
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
index 309c13f9d49..2c9e05474df 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,14 +1,14 @@
#!/usr/bin/env perl
-# $Id: tlmgr.pl 63068 2022-04-18 05:58:07Z preining $
+# $Id: tlmgr.pl 65965 2023-02-20 17:26:54Z karl $
#
-# Copyright 2008-2022 Norbert Preining
+# Copyright 2008-2023 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
use strict; use warnings;
-my $svnrev = '$Revision: 63068 $';
-my $datrev = '$Date: 2022-04-18 07:58:07 +0200 (Mon, 18 Apr 2022) $';
+my $svnrev = '$Revision: 65965 $';
+my $datrev = '$Date: 2023-02-20 18:26:54 +0100 (Mon, 20 Feb 2023) $';
my $tlmgrrevision;
my $tlmgrversion;
my $prg;
@@ -51,7 +51,7 @@ BEGIN {
$Master =~ s!\\!/!g;
$Master =~ s![^/]*$!../../..!
unless ($Master =~ s!/texmf-dist/scripts/texlive/tlmgr\.pl$!!i);
- $bindir = "$Master/bin/win32";
+ $bindir = "$Master/bin/windows";
$kpsewhichname = "kpsewhich.exe";
# path already set by wrapper batchfile
} else {
@@ -96,7 +96,7 @@ use TeXLive::TLWinGoo;
use TeXLive::TLDownload;
use TeXLive::TLConfFile;
use TeXLive::TLCrypto;
-TeXLive::TLUtils->import(qw(member info give_ctan_mirror win32 dirname
+TeXLive::TLUtils->import(qw(member info give_ctan_mirror wndws dirname
mkdirhier copy debug tlcmp repository_to_array));
use TeXLive::TLPaper;
@@ -520,7 +520,7 @@ sub main {
# and on Windows our Config.pm can apparently interfere, so always
# skip it there. Or if users have NOPERLDOC set in the environment.
my @noperldoc = ();
- if (win32() || $ENV{"NOPERLDOC"}) {
+ if (wndws() || $ENV{"NOPERLDOC"}) {
@noperldoc = ("-noperldoc", "1");
} else {
if (!TeXLive::TLUtils::which("perldoc")) {
@@ -843,7 +843,7 @@ sub do_cmd_and_check {
if ($opts{"dry-run"}) {
$ret = $F_OK;
$out = "";
- } elsif (win32() && (! -r "$Master/bin/win32/luatex.dll")) {
+ } elsif (wndws() && (! -r "$Master/bin/windows/luatex.dll")) {
# deal with the case where only scheme-infrastructure is installed
# on Windows, thus no luatex.dll is available and the wrapper cannot be started
tlwarn("Cannot run wrapper due to missing luatex.dll\n");
@@ -895,6 +895,7 @@ sub handle_execute_actions {
if (defined($localtlpdb->get_package('context'))
&& (-x "$bindir/texlua" || -x "$bindir/texlua.exe")) {
$errors += do_cmd_and_check("mtxrun --generate");
+ $errors += run_postinst_cmd("context --luatex --generate");
}
$::files_changed = 0;
}
@@ -1013,7 +1014,7 @@ sub handle_execute_actions {
if ($regenerate_language) {
for my $ext ("dat", "def", "dat.lua") {
my $lang = "language.$ext";
- if (! TeXLive::TLUtils::win32()) {
+ if (! TeXLive::TLUtils::wndws()) {
# Use full path for external command, except on Windows.
$lang = "$TEXMFSYSVAR/tex/generic/config/$lang";
}
@@ -1502,7 +1503,7 @@ sub action_path {
}
init_local_db();
my $winadminmode = 0;
- if (win32()) {
+ if (wndws()) {
#
# for w32 we do system wide vs user setting detection as follows:
# - if --w32mode is NOT given,
@@ -1561,9 +1562,9 @@ sub action_path {
}
my $ret = $F_OK;
if ($what =~ m/^add$/i) {
- if (win32()) {
+ if (wndws()) {
$ret |= TeXLive::TLUtils::w32_add_to_path(
- $localtlpdb->root . "/bin/win32",
+ $localtlpdb->root . "/bin/windows",
$winadminmode);
# ignore this return value, since broadcase_env might return
# nothing in case of errors, and there is no way around it.
@@ -1576,9 +1577,9 @@ sub action_path {
$localtlpdb->option("sys_info"));
}
} elsif ($what =~ m/^remove$/i) {
- if (win32()) {
+ if (wndws()) {
$ret |= TeXLive::TLUtils::w32_remove_from_path(
- $localtlpdb->root . "/bin/win32",
+ $localtlpdb->root . "/bin/windows",
$winadminmode);
# ignore this return value, since broadcase_env might return
# nothing in case of errors, and there is no way around it.
@@ -3291,7 +3292,7 @@ sub action_update {
}
$updated{$pkg} = 1;
next;
- } elsif (win32() && ($pkg =~ m/$CriticalPackagesRegexp/)) {
+ } elsif (wndws() && ($pkg =~ m/$CriticalPackagesRegexp/)) {
# we pretend that the update happened
# in order to calculate file changes properly
$updated{$pkg} = 1;
@@ -3395,7 +3396,7 @@ sub action_update {
my $parentobj = $localtlpdb->get_package($parent);
if (!defined($parentobj)) {
# well, in this case we might have hit a package that only
- # has .ARCH package, like psv.win32, so do nothing
+ # has .ARCH package, like psv.windows, so do nothing
debug("$prg: .ARCH package without parent, not announcing postaction\n");
} else {
debug("$prg: announcing parent execute action for $pkg\n");
@@ -3410,7 +3411,7 @@ sub action_update {
# TODO
logpackage("failed update: $pkg ($rev -> $mediarevstr)");
tlwarn("$prg: Installation of new version of $pkg failed, trying to unwind.\n");
- if (win32()) {
+ if (wndws()) {
# w32 is notorious for not releasing a file immediately
# we experienced permission denied errors
my $newname = $unwind_package;
@@ -3557,7 +3558,7 @@ sub action_update {
my @found_pkgs = $localtlpdb->find_file($k);
if ($#found_pkgs >= 0) {
my $bad_file = 1;
- if (win32()) {
+ if (wndws()) {
# on w32 the packages have not been removed already,
# so we check that the only package listed in @found_pkgs
# is the one we are working on ($pkg)
@@ -3583,7 +3584,7 @@ sub action_update {
}
}
- if (!win32()) {
+ if (!wndws()) {
for my $f (@infra_files_to_be_removed) {
# TODO actually unlink the stuff
#unlink("$Master/$f");
@@ -3614,7 +3615,7 @@ sub action_update {
}
# infra update and tlmgr restart on w32 is done by the updater batch script
- if (win32() && $opts{'self'} && !$opts{"list"} && @critical) {
+ if (wndws() && $opts{'self'} && !$opts{"list"} && @critical) {
info("$prg: Preparing TeX Live infrastructure update...\n");
for my $f (@infra_files_to_be_removed) {
debug("file scheduled for removal $f\n");
@@ -3629,7 +3630,7 @@ sub action_update {
}
# only when we are not dry-running we restart the program
- if (!win32() && $restart_tlmgr && !$opts{"dry-run"} && !$opts{"list"}) {
+ if (!wndws() && $restart_tlmgr && !$opts{"dry-run"} && !$opts{"list"}) {
info("$prg: Restarting to complete update ...\n");
debug("restarting tlmgr @::SAVEDARGV\n");
# cleanup temp files before re-exec-ing tlmgr
@@ -4760,11 +4761,11 @@ sub action_option {
# ignore generate_update which is no longer used or needed.
next if ($o eq "generate_updmap");
# ignore some things which are w32 specific
- next if ($o eq "desktop_integration" && !win32());
- next if ($o eq "file_assocs" && !win32());
- next if ($o eq "w32_multi_user" && !win32());
+ next if ($o eq "desktop_integration" && !wndws());
+ next if ($o eq "file_assocs" && !wndws());
+ next if ($o eq "w32_multi_user" && !wndws());
#
- if (win32()) {
+ if (wndws()) {
next if ($o =~ m/^sys_/);
}
if (defined $TLPDBOptions{$o}) {
@@ -4828,7 +4829,7 @@ sub action_option {
# when running w32 do not allow that a non-admin users sets
# this from false to true
my $do_it = 0;
- if (win32()) {
+ if (wndws()) {
if (admin()) {
$do_it = 1;
} else {
@@ -4937,9 +4938,9 @@ sub action_option {
#
sub action_platform {
my $ret = $F_OK;
- my @extra_w32_packs = qw/tlperl.win32 tlgs.win32
+ my @extra_w32_packs = qw/tlperl.windows tlgs.windows
collection-wintools
- dviout.win32 wintools.win32/;
+ dviout.windows wintools.windows/;
if ($^O =~ /^MSWin/i) {
warn("action `platform' not supported on Windows\n");
# return an error here so that we don't go into post-actions
@@ -5011,7 +5012,7 @@ sub action_platform {
}
}
}
- if (TeXLive::TLUtils::member('win32', @todoarchs)) {
+ if (TeXLive::TLUtils::member('windows', @todoarchs)) {
# install the necessary w32 stuff
for my $p (@extra_w32_packs) {
info("install: $p\n");
@@ -5069,7 +5070,7 @@ sub action_platform {
}
}
}
- if (TeXLive::TLUtils::member('win32', @todoarchs)) {
+ if (TeXLive::TLUtils::member('windows', @todoarchs)) {
for my $p (@extra_w32_packs) {
info("remove: $p\n");
$localtlpdb->remove_package($p) if (!$opts{"dry-run"});
@@ -5315,7 +5316,7 @@ Error message from creating MainWindow:
# Return zero if successful, nonzero if failure.
#
sub uninstall_texlive {
- if (win32()) {
+ if (wndws()) {
printf STDERR "Please use \"Add/Remove Programs\" from the Control Panel "
. "to uninstall TeX Live!\n";
return ($F_ERROR);
@@ -5499,7 +5500,7 @@ sub init_tltree {
# if we are on W32, die (no find).
my $arch = $localtlpdb->platform();
- if ($arch eq "win32") {
+ if ($arch eq "windows") {
tldie("$prg: sorry, cannot check this on Windows.\n");
}
@@ -5516,6 +5517,7 @@ sub init_tltree {
}
sub action_check {
+ ddebug("starting action_check\n");
my $svn = defined($opts{"use-svn"}) ? $opts{"use-svn"} : 0;
my $what = shift @ARGV;
$what || ($what = "all");
@@ -5776,6 +5778,7 @@ sub check_runfiles {
# check executes
#
sub check_executes {
+ ddebug("starting check_executes\n");
my $Master = $localtlpdb->root;
my (%maps,%langcodes,%fmtlines);
for my $pkg ($localtlpdb->list_packages) {
@@ -5799,8 +5802,10 @@ sub check_executes {
}
}
}
+
+ ddebug(" check_executes: checking maps\n");
my %badmaps;
- foreach my $mf (keys %maps) {
+ foreach my $mf (sort keys %maps) {
my @pkgsfound = @{$maps{$mf}};
if ($#pkgsfound > 0) {
tlwarn("$prg: map file $mf is referenced in the executes of @pkgsfound\n");
@@ -5840,9 +5845,11 @@ sub check_executes {
print "\t$mf (execute in @{$badmaps{$mf}})\n";
}
}
+
+ ddebug(" check_executes: checking hyphcodes\n");
my %badhyphcodes;
my %problemhyphen;
- foreach my $lc (keys %langcodes) {
+ foreach my $lc (sort keys %langcodes) {
next if ($lc eq "zerohyph.tex");
my @found = $localtlpdb->find_file("texmf-dist/tex/generic/hyph-utf8/loadhyph/$lc");
if ($#found < 0) {
@@ -5868,7 +5875,7 @@ sub check_executes {
# print "\t$mf (@{$problemhyphen{$mf}})\n";
# }
#}
- #
+
# what should be checked for the executes? we could check
# - the existence of the engine in bin/i386-linux or all $arch
# - the existence of the format name link/bat
@@ -5879,8 +5886,9 @@ sub check_executes {
my %missingengines;
my %missinginis;
my @archs_to_check = $localtlpdb->available_architectures;
- for (keys %fmtlines) {
- my %r = TeXLive::TLUtils::parse_AddFormat_line("$_");
+ ddebug("archs_to_check: @archs_to_check\n");
+ for (sort keys %fmtlines) {
+ my %r = TeXLive::TLUtils::parse_AddFormat_line($_);
if (defined($r{"error"})) {
die "$r{'error'}, parsing $_, package(s) @{$fmtlines{$_}}";
}
@@ -6005,7 +6013,7 @@ sub check_file {
return 1;
} else {
# not -r, so check for the extensions .bat and .exe on windoze-ish.
- if ($a =~ /win[0-9]|.*-cygwin/) {
+ if ($a =~ /windows|win[0-9]|.*-cygwin/) {
if (-r "$f.exe" || -r "$f.bat") {
return 1;
}
@@ -6038,7 +6046,7 @@ sub check_depends {
# For each package, check that it is a dependency of some collection.
if (! exists $coll_deps{$pkg}) {
# Except that schemes and our ugly Windows packages are ok.
- push (@no_dep, $pkg) unless $pkg =~/^scheme-|\.win32$/;
+ push (@no_dep, $pkg) unless $pkg =~/^scheme-|\.windows$/;
}
# For each dependency, check that we have a package.
@@ -6156,7 +6164,7 @@ sub action_postaction {
tlwarn("$prg: action postaction needs as second argument one from 'shortcut', 'fileassoc', 'script'\n");
return;
}
- if (win32()) {
+ if (wndws()) {
if ($opts{"w32mode"}) {
if ($opts{"w32mode"} eq "user") {
if (TeXLive::TLWinGoo::admin()) {
@@ -6191,7 +6199,7 @@ sub action_postaction {
@todo = $localtlpdb->expand_dependencies("-only-arch", $localtlpdb, @todo);
}
if ($type =~ m/^shortcut$/i) {
- if (!win32()) {
+ if (!wndws()) {
tlwarn("$prg: action postaction shortcut only works on windows.\n");
return;
}
@@ -6205,7 +6213,7 @@ sub action_postaction {
}
}
} elsif ($type =~ m/^fileassoc$/i) {
- if (!win32()) {
+ if (!wndws()) {
tlwarn("$prg: action postaction fileassoc only works on windows.\n");
return;
}
@@ -6919,7 +6927,7 @@ sub init_local_db {
# - if we are on Windows, it does not start with Drive:[\/]
if (! ( $location =~ m!^(https?|ftp)://!i ||
$location =~ m!$TeXLive::TLUtils::SshURIRegex!i ||
- (win32() && (!(-e $location) || ($location =~ m!^.:[\\/]!) ) ) ) ) {
+ (wndws() && (!(-e $location) || ($location =~ m!^.:[\\/]!) ) ) ) ) {
# seems to be a local path, try to normalize it
my $testloc = abs_path($location);
# however, if we were given a url, that will get "normalized" to the
@@ -10240,7 +10248,7 @@ This script and its documentation were written for the TeX Live
distribution (L<https://tug.org/texlive>) and both are licensed under the
GNU General Public License Version 2 or later.
-$Id: tlmgr.pl 63068 2022-04-18 05:58:07Z preining $
+$Id: tlmgr.pl 65965 2023-02-20 17:26:54Z karl $
=cut
# test HTML version: pod2html --cachedir=/tmp tlmgr.pl >/tmp/tlmgr.html
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl b/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl
index e9d8019655a..56caf2e85c9 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
-# $Id: updmap.pl 63644 2022-06-18 22:30:39Z karl $
+# $Id: updmap.pl 65932 2023-02-19 20:49:48Z siepo $
# updmap - maintain map files for outline fonts.
# (Maintained in TeX Live:Master/texmf-dist/scripts/texlive.)
#
@@ -13,7 +13,7 @@
# later adaptions by Reinhard Kotucha, and Karl Berry.
# The current implementation is a complete rewrite.
-my $svnid = '$Id: updmap.pl 63644 2022-06-18 22:30:39Z karl $';
+my $svnid = '$Id: updmap.pl 65932 2023-02-19 20:49:48Z siepo $';
my $TEXMFROOT;
BEGIN {
@@ -26,17 +26,17 @@ BEGIN {
unshift(@INC, "$TEXMFROOT/tlpkg");
}
-my $lastchdate = '$Date: 2022-06-19 00:30:39 +0200 (Sun, 19 Jun 2022) $';
+my $lastchdate = '$Date: 2023-02-19 21:49:48 +0100 (Sun, 19 Feb 2023) $';
$lastchdate =~ s/^\$Date:\s*//;
$lastchdate =~ s/ \(.*$//;
-my $svnrev = '$Revision: 63644 $';
+my $svnrev = '$Revision: 65932 $';
$svnrev =~ s/^\$Revision:\s*//;
$svnrev =~ s/\s*\$$//;
my $version = "r$svnrev ($lastchdate)";
use Getopt::Long qw(:config no_autoabbrev ignore_case_always);
use strict;
-use TeXLive::TLUtils qw(mkdirhier mktexupd win32 basename dirname
+use TeXLive::TLUtils qw(mkdirhier mktexupd wndws basename dirname
sort_uniq member touch);
(my $prg = basename($0)) =~ s/\.pl$//;
@@ -53,7 +53,7 @@ chomp(my $TEXMFSYSCONFIG = `kpsewhich -var-value=TEXMFSYSCONFIG`);
chomp(my $TEXMFHOME = `kpsewhich -var-value=TEXMFHOME`);
# make sure that on windows *everything* is in lower case for comparison
-if (win32()) {
+if (wndws()) {
$TEXMFDIST = lc($TEXMFDIST);
$TEXMFVAR = lc($TEXMFVAR);
$TEXMFSYSVAR = lc($TEXMFSYSVAR);
@@ -231,7 +231,7 @@ sub main {
if (! -f $f) {
die "$prg: Config file \"$f\" not found.";
}
- push @tmp, (win32() ? lc($f) : $f);
+ push @tmp, (wndws() ? lc($f) : $f);
}
@{$opts{'cnffile'}} = @tmp;
# in case that config files are given on the command line, the first
@@ -242,12 +242,12 @@ sub main {
chomp(@all_files);
my @used_files;
for my $f (@all_files) {
- push @used_files, (win32() ? lc($f) : $f);
+ push @used_files, (wndws() ? lc($f) : $f);
}
#
my $TEXMFLOCALVAR;
my @TEXMFLOCAL;
- if (win32()) {
+ if (wndws()) {
chomp($TEXMFLOCALVAR =`kpsewhich --expand-path=\$TEXMFLOCAL`);
@TEXMFLOCAL = map { lc } split(/;/ , $TEXMFLOCALVAR);
} else {
@@ -421,7 +421,7 @@ sub main {
# but for compatibility we'll silently keep the option.
$cmd = 'edit';
my $editor = $ENV{'VISUAL'} || $ENV{'EDITOR'};
- $editor ||= (&win32 ? "notepad" : "vi");
+ $editor ||= (wndws() ? "notepad" : "vi");
if (-r $changes_config_file) {
&copyFile($changes_config_file, $bakFile);
} else {
@@ -593,7 +593,7 @@ sub setupSymlinks {
sub SymlinkOrCopy {
my ($dir, $src, $dest) = @_;
return ($src, $dest) if $opts{"dry-run"};
- if (&win32 || $opts{'copy'}) { # always copy
+ if (wndws() || $opts{'copy'}) { # always copy
&copyFile("$dir/$src", "$dir/$dest");
} else { # symlink if supported by fs, copy otherwise
system("cd \"$dir\" && ln -s $src $dest 2>/dev/null || "
@@ -2216,7 +2216,7 @@ sub merge_data {
# and reset it to the real home dir of root.
sub reset_root_home {
- if (!win32() && ($> == 0)) { # $> is effective uid
+ if (!wndws() && ($> == 0)) { # $> is effective uid
my $envhome = $ENV{'HOME'};
# if $HOME isn't an existing directory, we don't care.
if (defined($envhome) && (-d $envhome)) {
diff --git a/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl b/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
index a86ecdf33da..02bd6a2bd40 100755
--- a/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
+++ b/Build/source/texk/texlive/linked_scripts/tlshell/tlshell.tcl
@@ -1,10 +1,6 @@
-#!/bin/sh
-# next line ignored by wish but not by sh \
-TK_SILENCE_DEPRECATION=1 exec wish "$0" -- "$@"
-# The above environment variable is set to suppress
-# a warning message under MacOS Catalina and Big Sur
+#!/usr/bin/env wish
-# Copyright 2017-2022 Siep Kroonenberg
+# Copyright 2017-2023 Siep Kroonenberg
# This file is licensed under the GNU General Public License version 2
# or any later version.
@@ -357,7 +353,9 @@ proc selective_dis_enable {} {
}
# 64-bit windows
- if {$::tcl_platform(platform) eq "windows" && $::wprocessor eq "AMD64"} {
+ # we disable this menu, but we may possibly resurrect it later
+ # for windows on arm support; therefore 'if {0 && ...}
+ if {0 && $::tcl_platform(platform) eq "windows" && $::wprocessor eq "AMD64"} {
dis_enable_w64
}
}; # selective_dis_enable
@@ -939,7 +937,7 @@ proc get_packages_info_remote {} {
unset -nocomplain ::loaded
track_err
set catv "rcat-version"
- if {[dict get $::pkgs texlive.infra localrev] < 56458} { set catv "cat-version" }
+
if [catch {run_cmd \
"info --data name,remoterev,$catv,category,shortdesc"}] {
do_debug [get_stacktrace]
@@ -2350,6 +2348,7 @@ Please configure a valid repository" $::repos(main)]
# with 'unzip -T', but this can only be done AFTER downloading.
# See also tcl commands 'file mtime', and 'clock scan'
+if 0 {
# $::wprocessor will later decide whether a w64 menu will be created.
if {$::tcl_platform(platform) eq "windows"} {
set ::wprocessor $::env(PROCESSOR_ARCHITECTURE)
@@ -2630,7 +2629,7 @@ proc add_or_update_w64 {lr} {
update idletasks
return 1
}
-
+}; # if 0
##### main window #####################################################
proc populate_main {} {
@@ -2710,7 +2709,7 @@ proc populate_main {} {
.mn.opt add command -label "[__ "Platforms"] ..." -command platforms_select
}
- if {$::tcl_platform(platform) eq "windows" && $::wprocessor eq "AMD64"} {
+ if {0 && $::tcl_platform(platform) eq "windows" && $::wprocessor eq "AMD64"} {
.mn add cascade -label "64-bit Windows" -menu .mn.w64
menu .mn.w64
set inx -1
diff --git a/Master/texmf-dist/doc/latex/hyperxmp/README b/Master/texmf-dist/doc/latex/hyperxmp/README
index 93a2733315d..22a0b26a9a7 100644
--- a/Master/texmf-dist/doc/latex/hyperxmp/README
+++ b/Master/texmf-dist/doc/latex/hyperxmp/README
@@ -47,7 +47,7 @@ Building hyperxmp.pdf is a little more involved:
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
diff --git a/Master/texmf-dist/doc/latex/hyperxmp/hyperxmp.pdf b/Master/texmf-dist/doc/latex/hyperxmp/hyperxmp.pdf
index f11adaee15a..2374394e6b2 100644
--- a/Master/texmf-dist/doc/latex/hyperxmp/hyperxmp.pdf
+++ b/Master/texmf-dist/doc/latex/hyperxmp/hyperxmp.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/man/man1/hyperxmp-add-bytecount.man1.pdf b/Master/texmf-dist/doc/man/man1/hyperxmp-add-bytecount.man1.pdf
index 75d6315efb3..1d99dbf0f7b 100644
--- a/Master/texmf-dist/doc/man/man1/hyperxmp-add-bytecount.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/hyperxmp-add-bytecount.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl b/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl
index 8d965a63f5f..d3fb7e59b17 100755
--- a/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl
+++ b/Master/texmf-dist/scripts/hyperxmp/hyperxmp-add-bytecount.pl
@@ -8,7 +8,7 @@ use warnings;
# 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@psu.edu> #
+# Copyright (C) 2020-2022 John Collins <jcc8@psu.edu> #
# and Scott Pakin, <scott+hyxmp@pakin.org> #
# #
# This program may be distributed and/or modified under the conditions #
diff --git a/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex b/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex
index 7fad01f38a7..323937cc4a6 100644
--- a/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex
+++ b/Master/texmf-dist/source/latex/hyperxmp/einstein-xmp.tex
@@ -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/"
diff --git a/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex b/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex
index e236b8a6b37..2b77c2703d6 100644
--- a/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex
+++ b/Master/texmf-dist/source/latex/hyperxmp/hyperxmp-stds.tex
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp@pakin.org>
+%% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp@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
diff --git a/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx b/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx
index 4fad6b29d0a..ea0d5334298 100644
--- a/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx
+++ b/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp@pakin.org>
+% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp@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@pakin.org},
@@ -98,25 +98,40 @@
bookmarksnumbered
}
+% Redefine \changes to properly sort v5.10 *after* v5.9.
+\makeatletter
+\let\orig@changes=\changes
+\def\discard@suffix#1\relax{}
+\def\pad@minor@ver v#1.#2\relax{%
+ \afterassignment\discard@suffix
+ \@tempcnta=#2\relax
+ \edef\new@change@ver{%
+ v#1.%
+ \ifnum\@tempcnta<10
+ 0#2
+ \else
+ #2
+ \fi
+ }%
+}
+\renewcommand{\changes}[2]{%
+ \pad@minor@ver#1\relax
+ \orig@changes{\new@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@index@prologue=\index@prologue
- \def\index@prologue{%
- \phantomsection\addcontentsline{toc}{section}{Index}
- \orig@index@prologue
- }%
- \makeatother
\Needspace{12\baselineskip}
\PrintIndex
\end{document}
%</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@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@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 @@ sub mycmd {
% \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 @@ sub mycmd {
% \protect\tex\ back ends that provide it. Thanks to Nelson Posse
% Lago for pointing out why \protect\pkgname{atenddvi} is best avoided
% if possible}
-% \begin{macrocode}
-\@ifundefined{AtEndDocument}{%
- \RequirePackage{atenddvi}
- \let\hyxmp@at@end=\AtEndDvi
+% \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{AddToHook}{%
+ \@ifundefined{AtEndDocument}{%
+ \RequirePackage{atenddvi}
+ \let\hyxmp@at@end=\AtEndDvi
+ }{%
+ \let\hyxmp@at@end=\AtEndDocument
+ }
}{%
- \let\hyxmp@at@end=\AtEndDocument
+ \def\hyxmp@at@end{\AddToHook{shipout/lastpage}}
}
% \end{macrocode}
% \end{macro}
@@ -2056,14 +2094,26 @@ sub mycmd {
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@hyxmp@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@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}.
% \begin{macrocode}
\def\@pdfapart{}
\define@key{Hyp}{pdfapart}{%
- \afterassignment\hyxmp@no@bad@parts\@tempcnta=0#1\relax
- \hyxmp@pdfstringdef\@pdfapart{\the\@tempcnta}%
+ \afterassignment\hyxmp@no@bad@parts\@hyxmp@count=0#1\relax
+ \hyxmp@pdfstringdef\@pdfapart{\the\@hyxmp@count}%
}
% \end{macrocode}
% \end{macro}
@@ -2085,8 +2135,8 @@ sub mycmd {
% \begin{macrocode}
\def\@pdfuapart{}
\define@key{Hyp}{pdfuapart}{%
- \afterassignment\hyxmp@no@bad@parts\@tempcnta=0#1\relax
- \hyxmp@pdfstringdef\@pdfuapart{\the\@tempcnta}%
+ \afterassignment\hyxmp@no@bad@parts\@hyxmp@count=0#1\relax
+ \hyxmp@pdfstringdef\@pdfuapart{\the\@hyxmp@count}%
}
% \end{macrocode}
% \end{macro}
@@ -2101,11 +2151,11 @@ sub mycmd {
%
% \begin{macro}{\hyxmp@set@pdfx@major@i}
% This is the first helper macro for |\hyxmp@set@pdfx@major|. It stores
-% the \acro{PDF/X} major version in |\@tempcnta|.
+% the \acro{PDF/X} major version in |\@hyxmp@count|.
% \begin{macrocode}
\def\hyxmp@set@pdfx@major@i PDF/X-{%
\afterassignment\hyxmp@set@pdfx@major@ii
- \@tempcnta=%
+ \@hyxmp@count=%
}
% \end{macrocode}
% \end{macro}
@@ -2113,12 +2163,12 @@ sub mycmd {
% \begin{macro}{\hyxmp@set@pdfx@major@ii}
% \begin{macro}{\hyxmp@pdfx@major}
% This is the second helper macro for |\hyxmp@set@pdfx@major|. It
-% copies the \acro{PDF/X} major version from |\@tempcnta| to
+% copies the \acro{PDF/X} major version from |\@hyxmp@count| to
% |\@hyxmp@pdfx@major| and discards the rest of the \acro{PDF/X}
% standard string.
% \begin{macrocode}
\def\hyxmp@set@pdfx@major@ii#1!{%
- \edef\hyxmp@pdfx@major{\the\@tempcnta}%
+ \edef\hyxmp@pdfx@major{\the\@hyxmp@count}%
}
% \end{macrocode}
% \end{macro}
@@ -2719,6 +2769,9 @@ sub mycmd {
%
% \begin{macro}{\hyxmp@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 @@ sub mycmd {
% \begin{macrocode}
\let\hyxmp@ProcessKeyvalOptions=\ProcessKeyvalOptions
\renewcommand*{\ProcessKeyvalOptions}{%
+ \global\let\ProcessKeyvalOptions=\hyxmp@ProcessKeyvalOptions
\hyxmp@redefine@Hyp
\hyxmp@ProcessKeyvalOptions
}
@@ -3183,17 +3237,6 @@ sub mycmd {
% \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,25 +3374,16 @@ end
% \begin{macrocode}
\newcommand*{\hyxmp@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@def@and@nonempty{@pdfnumpages}{%
- }{%
- \clearpage
- \xdef\@pdfnumpages{\luadirect{tex.print(status.total_pages)}}%
- }%
- \else
-% \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
+ \@if@def@and@nonempty{@pdfnumpages}{%
+ }{%
+ \xdef\@pdfnumpages{\thetotalpages}%
+ }%
% \end{macrocode}
% If \optname{pdfbytes} hasn't been set, set it to the output file's size
% from the previous run.
@@ -4134,19 +4168,19 @@ end
% 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@count=\time
+ \divide\@hyxmp@count by 60
+ \ifnum\@hyxmp@count<10
+ \xdef#1{#1T0\the\@hyxmp@count}%
\else
- \xdef#1{#1T\the\@tempcnta}%
+ \xdef#1{#1T\the\@hyxmp@count}%
\fi
- \multiply\@tempcnta by -60
- \advance\@tempcnta by \time
- \ifnum\@tempcnta<10
- \xdef#1{#1:0\the\@tempcnta}%
+ \multiply\@hyxmp@count by -60
+ \advance\@hyxmp@count by \time
+ \ifnum\@hyxmp@count<10
+ \xdef#1{#1:0\the\@hyxmp@count}%
\else
- \xdef#1{#1:\the\@tempcnta}%
+ \xdef#1{#1:\the\@hyxmp@count}%
\fi
\xdef#1{#1Z}%
}
@@ -4923,14 +4957,14 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
% \xmpprop{xmpMM:InstanceID} fields.
%
% \begin{macro}{\hyxmp@modulo@a}
-% Replace the contents of |\@tempcnta| with the contents modulo~|#1|.
+% Replace the contents of |\@hyxmp@count| with the contents modulo~|#1|.
% Note that |\@tempcntb| is overwritten in the process.
% \begin{macrocode}
\def\hyxmp@modulo@a#1{%
- \@tempcntb=\@tempcnta
+ \@tempcntb=\@hyxmp@count
\divide\@tempcntb by #1
\multiply\@tempcntb by #1
- \advance\@tempcnta by -\@tempcntb
+ \advance\@hyxmp@count by -\@tempcntb
}
% \end{macrocode}
% \end{macro}
@@ -4952,7 +4986,7 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
% of text.
% \begin{macrocode}
\def\hyxmp@seed@rng#1{%
- \@tempcnta=\hyxmp@big@prime
+ \@hyxmp@count=\hyxmp@big@prime
\futurelet\hyxmp@one@token\hyxmp@seed@rng@i#1\@empty
}
% \end{macrocode}
@@ -4963,8 +4997,8 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
% \begin{macro}{\hyxmp@one@token}
% \begin{macro}{\next}
% Do all of the work for |\hyxmp@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@count} \leftarrow 3
+% \cdot \mathtt{\string\@hyxmp@count} + c
% \pmod{\mathtt{\string\hyxmp@big@prime}}$.
% \begin{macrocode}
\def\hyxmp@seed@rng@i{%
@@ -4972,8 +5006,8 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\let\next=\relax
\else
\def\next##1{%
- \multiply\@tempcnta by 3
- \advance\@tempcnta by `##1
+ \multiply\@hyxmp@count by 3
+ \advance\@hyxmp@count by `##1
\hyxmp@modulo@a{\hyxmp@big@prime}%
\futurelet\hyxmp@one@token\hyxmp@seed@rng@i
}%
@@ -4991,15 +5025,15 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
% sequence. Specifically, we assign $\mathtt{\string\hyxmp@rand@num}
% \leftarrow 3 \cdot \mathtt{\string\hyxmp@rand@num} +
% \mathtt{\string\hyxmp@big@prime@ii}
-% \pmod{\mathtt{\string\hyxmp@big@prime}}$. Note that both |\@tempcnta|
+% \pmod{\mathtt{\string\hyxmp@big@prime}}$. Note that both |\@hyxmp@count|
% and |\@tempcntb| are overwritten in the process.
% \begin{macrocode}
\def\hyxmp@set@rand@num{%
- \@tempcnta=\hyxmp@rand@num
- \multiply\@tempcnta by 3
- \advance\@tempcnta by \hyxmp@big@prime@ii
+ \@hyxmp@count=\hyxmp@rand@num
+ \multiply\@hyxmp@count by 3
+ \advance\@hyxmp@count by \hyxmp@big@prime@ii
\hyxmp@modulo@a{\hyxmp@big@prime}%
- \xdef\hyxmp@rand@num{\the\@tempcnta}%
+ \xdef\hyxmp@rand@num{\the\@hyxmp@count}%
}
% \end{macrocode}
% \end{macro}
@@ -5007,21 +5041,21 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
%
% \begin{macro}{\hyxmp@append@hex}
% Append a randomly selected hexadecimal digit to macro~|#1|. Note that
-% both |\@tempcnta| and |\@tempcntb| are overwritten in the process.
+% both |\@hyxmp@count| and |\@tempcntb| are overwritten in the process.
% \begin{macrocode}
\def\hyxmp@append@hex#1{%
\hyxmp@set@rand@num
- \@tempcnta=\hyxmp@rand@num
+ \@hyxmp@count=\hyxmp@rand@num
\hyxmp@modulo@a{16}%
- \ifnum\@tempcnta<10
- \xdef#1{#1\the\@tempcnta}%
+ \ifnum\@hyxmp@count<10
+ \xdef#1{#1\the\@hyxmp@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@count by -10
+ \ifcase\@hyxmp@count
\xdef#1{#1a}%
\or\xdef#1{#1b}%
\or\xdef#1{#1c}%
@@ -5063,7 +5097,7 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
% 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@create@uuid| overwrites both |\@tempcnta| and |\@tempcntb|.
+% |\hyxmp@create@uuid| overwrites both |\@hyxmp@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 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
% Randomly select one of ``|8|'', ``|9|'', ``|a|'', or~``|b|''.
% \begin{macrocode}
\hyxmp@set@rand@num
- \@tempcnta=\hyxmp@rand@num
+ \@hyxmp@count=\hyxmp@rand@num
\hyxmp@modulo@a{4}%
- \ifcase\@tempcnta
+ \ifcase\@hyxmp@count
\g@addto@macro#1{8}%
\or\g@addto@macro#1{9}%
\or\g@addto@macro#1{a}%
@@ -5109,7 +5143,7 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\newcommand*{\hyxmp@def@DocumentID}{%
\edef\hyxmp@seed@string{\hyxmp@jobname:\@pdftitle:\@pdfauthor:}%
\expandafter\hyxmp@seed@rng\expandafter{\hyxmp@seed@string}%
- \edef\hyxmp@rand@num{\the\@tempcnta}%
+ \edef\hyxmp@rand@num{\the\@hyxmp@count}%
\hyxmp@create@uuid\hyxmp@DocumentID
}
% \end{macrocode}
@@ -5138,7 +5172,7 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\hyxmp@jobname:\@pdftitle:\@pdfauthor:\hyxmp@today@xmp:\hyxmp@seed@string
}%
\expandafter\hyxmp@seed@rng\expandafter{\hyxmp@seed@string}%
- \edef\hyxmp@rand@num{\the\@tempcnta}%
+ \edef\hyxmp@rand@num{\the\@hyxmp@count}%
\hyxmp@create@uuid\hyxmp@InstanceID
}
% \end{macrocode}
@@ -5196,16 +5230,16 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
% \begin{macrocode}
\newcommand*{\hyxmp@add@to@xml}[1]{%
\bgroup
- \@tempcnta=0
+ \@hyxmp@count=0
\ifhyxmp@unicodetex
\@tempcntb=65536%
\else
\@tempcntb=256%
\fi
\loop
- \lccode\@tempcnta=\@tempcnta
- \advance\@tempcnta by 1
- \ifnum\@tempcnta<\@tempcntb
+ \lccode\@hyxmp@count=\@hyxmp@count
+ \advance\@hyxmp@count by 1
+ \ifnum\@hyxmp@count<\@tempcntb
\repeat
\lccode`\_=`\ \relax
\lccode`\^^C=`\,\relax
@@ -6011,14 +6045,14 @@ ______</dc:#2>^^J%
% \changes{v5.0}{2020/02/26}{Added this macro}
% \begin{macrocode}
\newcommand*{\hyxmp@pdfx@id@schema}{%
- \@tempcnta=0\hyxmp@pdfx@major\relax
- \ifnum\@tempcnta=0
+ \@hyxmp@count=0\hyxmp@pdfx@major\relax
+ \ifnum\@hyxmp@count=0
\else
- \ifnum\@tempcnta=1
+ \ifnum\@hyxmp@count=1
\hyxmp@add@simple{pdfx:GTS_PDFXVersion}{PDF/X-1:2001}%
\hyxmp@add@simple{pdfx:GTS_PDFXConformance}{\@pdfxstandard}%
\else
- \ifnum\@tempcnta<4
+ \ifnum\@hyxmp@count<4
\hyxmp@add@simple{pdfx:GTS_PDFXVersion}{\@pdfxstandard}%
\else
\hyxmp@add@simple{pdfxid:GTS_PDFXVersion}{\@pdfxstandard}%
@@ -6629,8 +6663,8 @@ ______________________</rdf:li>^^J%
% \end{macrocode}
% Declare the schema used in \PDFstd{X}{4}{}{} and later versions.
% \begin{macrocode}
- \@tempcnta=0\hyxmp@pdfx@major\relax
- \ifnum\@tempcnta>3
+ \@hyxmp@count=0\hyxmp@pdfx@major\relax
+ \ifnum\@hyxmp@count>3
\hyxmp@begin@ext@decl
{PDF/X ID Schema}%
{pdfxid}%
@@ -6958,7 +6992,27 @@ _____________________xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEven
_____________________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@pdfx@major>3
+ \hyxmp@add@to@xml{%
_____________________xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/"^^J%
+ }%
+ \fi
+% \end{macrocode}
+% Revert to ``include every namespace'' mode.
+% \begin{macrocode}
+ \hyxmp@add@to@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 @@ __</rdf:RDF>^^J%
<<
/Type /Metadata
/Subtype /XML
- /Length \the\@tempcnta
+ /Length \the\@hyxmp@count
>>
stream^^J\hyxmp@xml endstream%
}%
@@ -7191,7 +7245,7 @@ __</rdf:RDF>^^J%
% \end{macro}
%
% \begin{macro}{\hyxmp@string@len}
-% Set |\@tempcnta| to the number of characters in a given string~(|#1|).
+% Set |\@hyxmp@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 @@ __</rdf:RDF>^^J%
% assigned their category codes.
% \begin{macrocode}
\newcommand*{\hyxmp@string@len}[1]{%
- \@tempcnta=0
+ \@hyxmp@count=0
\expandafter\hyxmp@count@spaces#1 {} %
\expandafter\hyxmp@count@non@spaces#1{}%
}
@@ -7214,9 +7268,9 @@ __</rdf:RDF>^^J%
\def\hyxmp@count@spaces#1 {%
\def\hyxmp@one@token{#1}%
\ifx\hyxmp@one@token\@empty
- \advance\@tempcnta by -1
+ \advance\@hyxmp@count by -1
\else
- \advance\@tempcnta by 1
+ \advance\@hyxmp@count by 1
\expandafter\hyxmp@count@spaces
\fi
}
@@ -7233,7 +7287,7 @@ __</rdf:RDF>^^J%
\def\hyxmp@one@token{#1}%
\ifx\hyxmp@one@token\@empty
\else
- \advance\@tempcnta by 1
+ \advance\@hyxmp@count by 1
\expandafter\hyxmp@count@non@spaces
\fi
}
diff --git a/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins b/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins
index 81db9d155a9..80abd7b3c31 100644
--- a/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins
+++ b/Master/texmf-dist/source/latex/hyperxmp/hyperxmp.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp@pakin.org>
+%% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp@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@pakin.org>
+Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp@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
diff --git a/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty b/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
index 0c4ca2de09d..6f7c7756b9a 100644
--- a/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
+++ b/Master/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty
@@ -8,7 +8,7 @@
%%
%% This is a generated file.
%%
-%% Copyright (C) 2011-2020 by Scott Pakin <scott+hyxmp@pakin.org>
+%% Copyright (C) 2011-2023 by Scott Pakin <scott+hyxmp@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@dq@code{\the\catcode`\"}
\catcode`\"=12
-\@ifundefined{AtEndDocument}{%
- \RequirePackage{atenddvi}
- \let\hyxmp@at@end=\AtEndDvi
+\@ifundefined{AddToHook}{%
+ \@ifundefined{AtEndDocument}{%
+ \RequirePackage{atenddvi}
+ \let\hyxmp@at@end=\AtEndDvi
+ }{%
+ \let\hyxmp@at@end=\AtEndDocument
+ }
}{%
- \let\hyxmp@at@end=\AtEndDocument
+ \def\hyxmp@at@end{\AddToHook{shipout/lastpage}}
}
\def\hyxmp@set@jobname#1\relax{%
\@ifnextchar"{\hyxmp@set@jobname@dbl}{\hyxmp@set@jobname@plain}#1\relax
@@ -101,10 +111,11 @@
\PackageWarning{hyperxmp}{pdfapart and pdfuapart must be numeric}%
}%
}
+\newcount\@hyxmp@count
\def\@pdfapart{}
\define@key{Hyp}{pdfapart}{%
- \afterassignment\hyxmp@no@bad@parts\@tempcnta=0#1\relax
- \hyxmp@pdfstringdef\@pdfapart{\the\@tempcnta}%
+ \afterassignment\hyxmp@no@bad@parts\@hyxmp@count=0#1\relax
+ \hyxmp@pdfstringdef\@pdfapart{\the\@hyxmp@count}%
}
\def\@pdfaconformance{}
\define@key{Hyp}{pdfaconformance}{%
@@ -112,16 +123,16 @@
}
\def\@pdfuapart{}
\define@key{Hyp}{pdfuapart}{%
- \afterassignment\hyxmp@no@bad@parts\@tempcnta=0#1\relax
- \hyxmp@pdfstringdef\@pdfuapart{\the\@tempcnta}%
+ \afterassignment\hyxmp@no@bad@parts\@hyxmp@count=0#1\relax
+ \hyxmp@pdfstringdef\@pdfuapart{\the\@hyxmp@count}%
}
\newcommand*{\hyxmp@set@pdfx@major}[1]{\hyxmp@set@pdfx@major@i#1!}
\def\hyxmp@set@pdfx@major@i PDF/X-{%
\afterassignment\hyxmp@set@pdfx@major@ii
- \@tempcnta=%
+ \@hyxmp@count=%
}
\def\hyxmp@set@pdfx@major@ii#1!{%
- \edef\hyxmp@pdfx@major{\the\@tempcnta}%
+ \edef\hyxmp@pdfx@major{\the\@hyxmp@count}%
}
\newcommand*\hyxmp@check@std[2]{%
\ifthenelse{\equal{#1}{#2}}%
@@ -299,6 +310,7 @@
}
\let\hyxmp@ProcessKeyvalOptions=\ProcessKeyvalOptions
\renewcommand*{\ProcessKeyvalOptions}{%
+ \global\let\ProcessKeyvalOptions=\hyxmp@ProcessKeyvalOptions
\hyxmp@redefine@Hyp
\hyxmp@ProcessKeyvalOptions
}
@@ -501,10 +513,6 @@
\hyxmp@query@self
}
\ifLuaTeX
-\else
- \RequirePackage{totpages}
-\fi
-\ifLuaTeX
\begin{luacode*}
function get_pdf_size (bname)
local odir = ""
@@ -537,15 +545,10 @@ end
}%
\fi
\newcommand*{\hyxmp@query@self}{%
- \ifLuaTeX
- \@if@def@and@nonempty{@pdfnumpages}{%
- }{%
- \clearpage
- \xdef\@pdfnumpages{\luadirect{tex.print(status.total_pages)}}%
- }%
- \else
- \pdfstringdef\@pdfnumpages{\ref*{TotPages}}%
- \fi
+ \@if@def@and@nonempty{@pdfnumpages}{%
+ }{%
+ \xdef\@pdfnumpages{\thetotalpages}%
+ }%
\hyxmp@use@first@valid{pdfbytes}{\@pdfbytes}{%
\hyxmp@prev@pdf@size
}%
@@ -820,19 +823,19 @@ end
\else
\xdef#1{#1-\the\day}%
\fi
- \@tempcnta=\time
- \divide\@tempcnta by 60
- \ifnum\@tempcnta<10
- \xdef#1{#1T0\the\@tempcnta}%
+ \@hyxmp@count=\time
+ \divide\@hyxmp@count by 60
+ \ifnum\@hyxmp@count<10
+ \xdef#1{#1T0\the\@hyxmp@count}%
\else
- \xdef#1{#1T\the\@tempcnta}%
+ \xdef#1{#1T\the\@hyxmp@count}%
\fi
- \multiply\@tempcnta by -60
- \advance\@tempcnta by \time
- \ifnum\@tempcnta<10
- \xdef#1{#1:0\the\@tempcnta}%
+ \multiply\@hyxmp@count by -60
+ \advance\@hyxmp@count by \time
+ \ifnum\@hyxmp@count<10
+ \xdef#1{#1:0\the\@hyxmp@count}%
\else
- \xdef#1{#1:\the\@tempcnta}%
+ \xdef#1{#1:\the\@hyxmp@count}%
\fi
\xdef#1{#1Z}%
}
@@ -1142,15 +1145,15 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\setkeys{hyxmp@LA}{#2}%
}
\def\hyxmp@modulo@a#1{%
- \@tempcntb=\@tempcnta
+ \@tempcntb=\@hyxmp@count
\divide\@tempcntb by #1
\multiply\@tempcntb by #1
- \advance\@tempcnta by -\@tempcntb
+ \advance\@hyxmp@count by -\@tempcntb
}
\def\hyxmp@big@prime{536870923}
\def\hyxmp@big@prime@ii{536870027}
\def\hyxmp@seed@rng#1{%
- \@tempcnta=\hyxmp@big@prime
+ \@hyxmp@count=\hyxmp@big@prime
\futurelet\hyxmp@one@token\hyxmp@seed@rng@i#1\@empty
}
\def\hyxmp@seed@rng@i{%
@@ -1158,8 +1161,8 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\let\next=\relax
\else
\def\next##1{%
- \multiply\@tempcnta by 3
- \advance\@tempcnta by `##1
+ \multiply\@hyxmp@count by 3
+ \advance\@hyxmp@count by `##1
\hyxmp@modulo@a{\hyxmp@big@prime}%
\futurelet\hyxmp@one@token\hyxmp@seed@rng@i
}%
@@ -1167,21 +1170,21 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\next
}
\def\hyxmp@set@rand@num{%
- \@tempcnta=\hyxmp@rand@num
- \multiply\@tempcnta by 3
- \advance\@tempcnta by \hyxmp@big@prime@ii
+ \@hyxmp@count=\hyxmp@rand@num
+ \multiply\@hyxmp@count by 3
+ \advance\@hyxmp@count by \hyxmp@big@prime@ii
\hyxmp@modulo@a{\hyxmp@big@prime}%
- \xdef\hyxmp@rand@num{\the\@tempcnta}%
+ \xdef\hyxmp@rand@num{\the\@hyxmp@count}%
}
\def\hyxmp@append@hex#1{%
\hyxmp@set@rand@num
- \@tempcnta=\hyxmp@rand@num
+ \@hyxmp@count=\hyxmp@rand@num
\hyxmp@modulo@a{16}%
- \ifnum\@tempcnta<10
- \xdef#1{#1\the\@tempcnta}%
+ \ifnum\@hyxmp@count<10
+ \xdef#1{#1\the\@hyxmp@count}%
\else
- \advance\@tempcnta by -10
- \ifcase\@tempcnta
+ \advance\@hyxmp@count by -10
+ \ifcase\@hyxmp@count
\xdef#1{#1a}%
\or\xdef#1{#1b}%
\or\xdef#1{#1c}%
@@ -1210,9 +1213,9 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\hyxmp@append@hex@iii#1%
\g@addto@macro#1{-}%
\hyxmp@set@rand@num
- \@tempcnta=\hyxmp@rand@num
+ \@hyxmp@count=\hyxmp@rand@num
\hyxmp@modulo@a{4}%
- \ifcase\@tempcnta
+ \ifcase\@hyxmp@count
\g@addto@macro#1{8}%
\or\g@addto@macro#1{9}%
\or\g@addto@macro#1{a}%
@@ -1227,7 +1230,7 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\newcommand*{\hyxmp@def@DocumentID}{%
\edef\hyxmp@seed@string{\hyxmp@jobname:\@pdftitle:\@pdfauthor:}%
\expandafter\hyxmp@seed@rng\expandafter{\hyxmp@seed@string}%
- \edef\hyxmp@rand@num{\the\@tempcnta}%
+ \edef\hyxmp@rand@num{\the\@hyxmp@count}%
\hyxmp@create@uuid\hyxmp@DocumentID
}
\newcommand*{\hyxmp@def@InstanceID}{%
@@ -1236,21 +1239,21 @@ ______<#3 xml:lang="#1">\hyxmp@xmlified</#3>^^J%
\hyxmp@jobname:\@pdftitle:\@pdfauthor:\hyxmp@today@xmp:\hyxmp@seed@string
}%
\expandafter\hyxmp@seed@rng\expandafter{\hyxmp@seed@string}%
- \edef\hyxmp@rand@num{\the\@tempcnta}%
+ \edef\hyxmp@rand@num{\the\@hyxmp@count}%
\hyxmp@create@uuid\hyxmp@InstanceID
}
\newcommand*{\hyxmp@add@to@xml}[1]{%
\bgroup
- \@tempcnta=0
+ \@hyxmp@count=0
\ifhyxmp@unicodetex
\@tempcntb=65536%
\else
\@tempcntb=256%
\fi
\loop
- \lccode\@tempcnta=\@tempcnta
- \advance\@tempcnta by 1
- \ifnum\@tempcnta<\@tempcntb
+ \lccode\@hyxmp@count=\@hyxmp@count
+ \advance\@hyxmp@count by 1
+ \ifnum\@hyxmp@count<\@tempcntb
\repeat
\lccode`\_=`\ \relax
\lccode`\^^C=`\,\relax
@@ -1527,14 +1530,14 @@ ______</dc:#2>^^J%
\hyxmp@add@simple{pdfuaid:part}{\@pdfuapart}%
}
\newcommand*{\hyxmp@pdfx@id@schema}{%
- \@tempcnta=0\hyxmp@pdfx@major\relax
- \ifnum\@tempcnta=0
+ \@hyxmp@count=0\hyxmp@pdfx@major\relax
+ \ifnum\@hyxmp@count=0
\else
- \ifnum\@tempcnta=1
+ \ifnum\@hyxmp@count=1
\hyxmp@add@simple{pdfx:GTS_PDFXVersion}{PDF/X-1:2001}%
\hyxmp@add@simple{pdfx:GTS_PDFXConformance}{\@pdfxstandard}%
\else
- \ifnum\@tempcnta<4
+ \ifnum\@hyxmp@count<4
\hyxmp@add@simple{pdfx:GTS_PDFXVersion}{\@pdfxstandard}%
\else
\hyxmp@add@simple{pdfxid:GTS_PDFXVersion}{\@pdfxstandard}%
@@ -1842,8 +1845,8 @@ ______________________</rdf:li>^^J%
{Conformance level of PDF/X standard}%
\hyxmp@end@ext@decl
\fi
- \@tempcnta=0\hyxmp@pdfx@major\relax
- \ifnum\@tempcnta>3
+ \@hyxmp@count=0\hyxmp@pdfx@major\relax
+ \ifnum\@hyxmp@count>3
\hyxmp@begin@ext@decl
{PDF/X ID Schema}%
{pdfxid}%
@@ -2055,7 +2058,13 @@ _____________________xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEven
_____________________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@pdfx@major>3
+ \hyxmp@add@to@xml{%
_____________________xmlns:pdfxid="http://www.npes.org/pdfx/ns/id/"^^J%
+ }%
+ \fi
+ \hyxmp@add@to@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 @@ __</rdf:RDF>^^J%
<<
/Type /Metadata
/Subtype /XML
- /Length \the\@tempcnta
+ /Length \the\@hyxmp@count
>>
stream^^J\hyxmp@xml endstream%
}%
@@ -2191,16 +2200,16 @@ __</rdf:RDF>^^J%
}%
}
\newcommand*{\hyxmp@string@len}[1]{%
- \@tempcnta=0
+ \@hyxmp@count=0
\expandafter\hyxmp@count@spaces#1 {} %
\expandafter\hyxmp@count@non@spaces#1{}%
}
\def\hyxmp@count@spaces#1 {%
\def\hyxmp@one@token{#1}%
\ifx\hyxmp@one@token\@empty
- \advance\@tempcnta by -1
+ \advance\@hyxmp@count by -1
\else
- \advance\@tempcnta by 1
+ \advance\@hyxmp@count by 1
\expandafter\hyxmp@count@spaces
\fi
}
@@ -2208,7 +2217,7 @@ __</rdf:RDF>^^J%
\def\hyxmp@one@token{#1}%
\ifx\hyxmp@one@token\@empty
\else
- \advance\@tempcnta by 1
+ \advance\@hyxmp@count by 1
\expandafter\hyxmp@count@non@spaces
\fi
}
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index c5aabe66a06..8597463df88 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1705,6 +1705,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`);
'haranoaji' => 'POST_preserve_postcode',
'hmtrump' => '&POSThmtrump',
'hustthesis' => '&POSThustthesis',
+ 'hyperxmp' => 'POST_do_man',
'ibygrk' => '&POSTibygrk',
'isodoc' => '&POSTisodoc',
'impatient' => '&POSTimpatient',
@@ -4554,7 +4555,7 @@ sub doscripts {
my $platdir = "$TOPDEST/bin/$p";
&xmkdir ($platdir);
#
- if ($p ne "win32") {
+ if ($p !~ /win32|windows/) {
my $linktarget = "../../$DEST_TREE/scripts/$package/$s";
&SYSTEM ("ln -s $linktarget $platdir/$linkname");
#
@@ -4617,7 +4618,7 @@ sub doscripts {
# next bit of ugliness: can be better to use the GUI wrapper
# wrunscript.exe (which only exists in Master/bin/win32) instead
# of the usual runscript.exe
- my $w32_wrapper = "$Master/bin/win32/"
+ my $w32_wrapper = "$Master/bin/windows/"
. ($s eq "tlcockpit.sh" ? "wrunscript.exe" : "runscript.exe");
#
# xx here too, should merge with bin_links in
@@ -5952,7 +5953,7 @@ sub MAKEfontinst {
&runjob("$CP -r source $DEST/source/fontinst/base");
&runjob("$CP -r latex/* $DEST/tex/latex/fontinst");
&runjob("$CP -r inputs/* $DEST/tex/fontinst");
- print "\t YOU-MUST-DO $package copy fontinst.bat to bin/win32\n";
+ print "\t YOU-MUST-DO $package copy fontinst.bat to bin/windows\n";
}
@@ -6575,7 +6576,7 @@ sub POSTcontext {
# executables go in both the Master bin dir and the
# Build linked_scripts dir. The executables are cherry-picked from
# ConTeXt's stubs directory.
- my $w32_bindir = "$TOPDEST/bin/win32";
+ my $w32_bindir = "$TOPDEST/bin/windows";
&xmkdir ($w32_bindir);
#
my $pkg_subdir = "stubs/unix"; # where hans keeps them
@@ -6630,8 +6631,8 @@ sub bindirs_symlink {
chomp (my @platforms = `cd $Master/bin && ls`);
for my $p (@platforms) {
- next if $p eq "win32"; # windows handled separately
- next if $p eq "man"; # non-platform pain
+ next if $p =~ /win32|windows/; # windows handled separately
+ next if $p eq "man"; # non-platform pain
my $platdir = "$TOPDEST/bin/$p";
&xmkdir ($platdir);
&SYSTEM ("ln -s $linktarget $platdir/$linkname");
@@ -6839,7 +6840,7 @@ sub POSTepspdf {
&xmkdir ("images");
&SYSTEM ("$MV *.png logo.* images/");
&SYSTEM ("$MV *.bat epspdf.texlua /tmp/");
- print "YOU-MUST-DO! update /tmp/$package* into bin/win32, etc.\n";
+ print "YOU-MUST-DO! update /tmp/$package* into bin/windows, etc.\n";
}
sub POSTexam_zh {
@@ -7194,7 +7195,7 @@ sub POSTmptopdf {
# But there are enough differences that trying to factor out the
# commonalities doesn't make sense. Sigh.
print "POST$package - user-level executables\n";
- my $w32_bindir = "$TOPDEST/bin/win32";
+ my $w32_bindir = "$TOPDEST/bin/windows";
&xmkdir ($w32_bindir);
#
my $pkg_subdir = "perl"; # where hans keeps it