summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/pdfxup/pdfxup61
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/fmtutil.pl8
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/tlmgr.pl24
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/texlive/updmap.pl16
-rw-r--r--Master/texmf-dist/doc/man/man1/pdfxup.142
-rw-r--r--Master/texmf-dist/doc/man/man1/pdfxup.man1.pdfbin26318 -> 29760 bytes
-rw-r--r--Master/texmf-dist/doc/support/pdfxup/README4
-rw-r--r--Master/texmf-dist/doc/support/pdfxup/RELEASES15
-rw-r--r--Master/texmf-dist/doc/support/pdfxup/pdfxup.pdfbin89505 -> 90395 bytes
-rwxr-xr-xMaster/texmf-dist/scripts/pdfxup/pdfxup61
-rw-r--r--Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex250
11 files changed, 334 insertions, 147 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/pdfxup/pdfxup b/Build/source/texk/texlive/linked_scripts/pdfxup/pdfxup
index 12ac684ede8..c53607b82ab 100755
--- a/Build/source/texk/texlive/linked_scripts/pdfxup/pdfxup
+++ b/Build/source/texk/texlive/linked_scripts/pdfxup/pdfxup
@@ -2,12 +2,12 @@
shopt -s extglob
shopt -s lastpipe
-VERSION="2.00"
-VDATE="2020/12/17"
+VERSION="2.10"
+VDATE="2021/04/25"
## see release notes at the end of this file.
-## (c) 2020/12/17 Nicolas Markey <pdfxup at markey dot fr>
+## (c) 2021/04/25 Nicolas Markey <pdfxup at markey dot fr>
##
## This work may be distributed and/or modified under the conditions of
## the LaTeX Project Public License, either version 1.3 of this license
@@ -83,6 +83,8 @@ function defaultvalues()
: ${dfpdfxupSILENTLY_OVERWRITE="0"}
: ${dfpdfxupSET_BBOX=""}
: ${dfpdfxupTIGHT_FRAME="0"}
+ : ${dfpdfxupCOLUMN="0"}
+ : ${dfpdfxupBALANCELAST="0"}
}
function setdefaultvalues()
@@ -140,11 +142,16 @@ function setdefaultvalues()
TIGHT_FRAME=$dfpdfxupTIGHT_FRAME;
# initial bounding box
SET_BBOX=$dfpdfxupSET_BBOX
-
+ # pages displayed left-to-right first (default), or top-to-bottom first
+ COLUMN=$dfpdfxupCOLUMN
+ # balance last page (corresponds to option 'columnstrict' option
+ # in the pdfpages manual; also works in "non-column" mode)
+ BALANCELAST=$dfpdfxupBALANCELAST
+
## Notice: the names for h and w should actually be X and Y:
## they are not width and height, but coordinates of upper right corner.
- ## Notice: PAGES, INCLUDE_FOR_BBOX and EXCLUDE_FOR_BBOX will be set to default values if empty after
- ## processing options
+ ## Notice: PAGES, INCLUDE_FOR_BBOX and EXCLUDE_FOR_BBOX will be set to
+ ## default values if empty after processing options
}
######################################################################
@@ -204,9 +211,11 @@ See the manual page ('man pdfxup') for the list of all options.";
## -ow allow overwriting [default: \"$dfpdfxupSILENTLY_OVERWRITE\"]
## -ps s output paper size [default: \"$dfpdfxupPAPERSIZE\"]
## -tf draw tight frame around each page [default: \"$dfpdfxupTIGHT_FRAME\"]
+## -col arrange pages top-to-bottom first [default: \"$dfpdfxupCOLUMN\"]
+## -bal balance last page [default: \"$dfpdfxupBALANCELAST\"]
## -q run quietly (equiv. '-V=0')
## -h show this help message
-## -V [0-3] select verbosity [default: \"$dfpdfxupVERBOSITY\"]
+## -V [0-3] select verbosity [default: \"$dfpdfxupVERBOSITY\"]
##
##
##
@@ -445,15 +454,16 @@ fi
defaultvalues;
setdefaultvalues;
filename="temp-pdfxup-`date +%s`";
-inputfilename="input-$filename";
-watermarkfilename="watermark-$filename";
+inputfilename="input-pdfxup-$filename";
+watermarkfilename="watermark-pdfxup-$filename";
######################################################################
## check for ghostscript and pdflatex
######################################################################
## GS could be specified from command-line
: ${GS=`which gs`}
-GSVERSION=`$GS --version 2>/dev/null`;
+## regexp keeps only first two numbers of version number (eg. 9.53.3 -> 9.53)
+GSVERSION=`$GS --version 2>/dev/null |sed -e "s/\(.\.[^\.]*\)\..*/\\1/"`;
if [ ! "$GSVERSION" ]; then
echo " /!\\ ghostscript not found; aborting.";
exit 1;
@@ -620,6 +630,18 @@ while [ $# != 0 ]; do
myecho 0+ " /!\ configuration file $TMP not found"
fi
shift;;
+ -?(-)col|--column|--column-mode|-?(-)vert?(ical))
+ COLUMN=1
+ shift;;
+ -?(-)row|--row-mode|-?(-)line?(s)|-?(-)horiz?(ontal))
+ COLUMN=0
+ shift;;
+ -?(-)bal|--balance|--balancelast|--balance-last)
+ BALANCELAST=1
+ shift;;
+ -?(-)no-bal|--no-balance|--no-balancelast|--no-balance-last)
+ BALANCELAST=0
+ shift;;
-c|--clip)
case $2 in
1|yes|y|true)
@@ -674,7 +696,7 @@ while [ $# != 0 ]; do
shift 2;;
-p*|--page*)
ANS=`echo $1|sed -re "s/--?p(ages?)?=?//"`;
- PAGES=+="$ANS,";
+ PAGES+="$ANS,";
shift;;
-o|--out|--output-file|--outfile)
OUTPUTFILE=$2;
@@ -1351,7 +1373,7 @@ EOF
case $BOOKLET in
0)
echo " \bookletfalse" >> $filename.tex;;
- se)
+ 2)
echo " \booklettrue" >> $filename.tex
echo " \longedgefalse" >> $filename.tex;;
*)
@@ -1387,6 +1409,8 @@ cat >> $filename.tex <<EOF
\def\pdfxupwidefbox{$WIDE_FRAMEBOX}
\def\pdfxuptightfbox{$TIGHT_FRAMEBOX}
\def\pdfxupbbox{$BBOPTION}
+ \def\columnmode{$COLUMN}
+ \def\balancelast{$BALANCELAST}
\input{pdfxup-template}
@@ -1539,7 +1563,7 @@ pdfxup has numerous options:
##
##################################################################
Author: Nicolas Markey
-Please send your comments to <pdfxup@markey.fr>
+Please send your comments and bug reports to <pdfxup@markey.fr>
v1.00 (2015/08/23)
- first release
@@ -1585,3 +1609,14 @@ v2.00 (2020/12/17)
for frequent situations.
- cleaned-up man page, adding some missing options (thanks
to Louis Gostiaux for pointing undocumented options)
+
+v2.10 (2021/04/25)
+ - fixed a bug with ghostscript adding a patch-level number in their
+ version number. This is the bug reported in
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=976080
+ It was solved with the help of Christian Gnaegi.
+ - fixed 2 bugs in the computations of size of pages
+ - fixed a bug which inhibited short-edge option of booklets
+ - added options --col (to fill in pages vertically first) and --bal
+ (to balance columns (or rows) the last page). This feature was
+ requested by Philipp Killinger.
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl b/Build/source/texk/texlive/linked_scripts/texlive/fmtutil.pl
index abe01330a84..21c9b79088c 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 58847 2021-04-12 01:00:22Z preining $
+# $Id: fmtutil.pl 58961 2021-04-22 00:55:07Z preining $
# 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 58847 2021-04-12 01:00:22Z preining $';
-my $lastchdate = '$Date: 2021-04-12 03:00:22 +0200 (Mon, 12 Apr 2021) $';
+my $svnid = '$Id: fmtutil.pl 58961 2021-04-22 00:55:07Z preining $';
+my $lastchdate = '$Date: 2021-04-22 02:55:07 +0200 (Thu, 22 Apr 2021) $';
$lastchdate =~ s/^\$Date:\s*//;
$lastchdate =~ s/ \(.*$//;
-my $svnrev = '$Revision: 58847 $';
+my $svnrev = '$Revision: 58961 $';
$svnrev =~ s/^\$Revision:\s*//;
$svnrev =~ s/\s*\$$//;
my $version = "r$svnrev ($lastchdate)";
diff --git a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
index 220cf7de261..239cd08b8d4 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/tlmgr.pl
@@ -1,12 +1,12 @@
#!/usr/bin/env perl
-# $Id: tlmgr.pl 58862 2021-04-13 01:01:37Z preining $
+# $Id: tlmgr.pl 58961 2021-04-22 00:55:07Z preining $
#
# Copyright 2008-2021 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
-my $svnrev = '$Revision: 58862 $';
-my $datrev = '$Date: 2021-04-13 03:01:37 +0200 (Tue, 13 Apr 2021) $';
+my $svnrev = '$Revision: 58961 $';
+my $datrev = '$Date: 2021-04-22 02:55:07 +0200 (Thu, 22 Apr 2021) $';
my $tlmgrrevision;
my $tlmgrversion;
my $prg;
@@ -873,7 +873,7 @@ sub handle_execute_actions {
# only existing formats are recreated
if (!$localtlpdb->option("create_formats")) {
$invoke_fmtutil .= " --refresh";
- info("only existing formats will be refreshed per user option (create_formats=0)\n");
+ debug("only existing formats will be refreshed per user option (create_formats=0)\n");
}
if ($::files_changed) {
@@ -7007,9 +7007,9 @@ sub _init_tlmedia {
# choose a mirror if we are asked.
if ($location =~ m/^ctan$/i) {
$location = give_ctan_mirror();
- } elsif ($location =~ m,^$TeXLiveServerURL,) {
+ } elsif ($location =~ m,^$TeXLiveServerURLRegexp,) {
my $mirrorbase = TeXLive::TLUtils::give_ctan_mirror_base();
- $location =~ s,^$TeXLiveServerURL,$mirrorbase,;
+ $location =~ s,^$TeXLiveServerURLRegexp,$mirrorbase,;
}
my $errormsg;
@@ -7049,9 +7049,9 @@ sub setup_one_remotetlpdb {
# choose a mirror if we are asked.
if ($location =~ m/^ctan$/i) {
$location = give_ctan_mirror();
- } elsif ($location =~ m,^$TeXLiveServerURL,) {
+ } elsif ($location =~ m,^$TeXLiveServerURLRegexp,) {
my $mirrorbase = TeXLive::TLUtils::give_ctan_mirror_base();
- $location =~ s,^$TeXLiveServerURL,$mirrorbase,;
+ $location =~ s,^$TeXLiveServerURLRegexp,$mirrorbase,;
}
# if we talk about a net location try to download the hash of the tlpdb
@@ -7698,7 +7698,7 @@ with C<tlmgr>:
=item C<tlmgr option repository ctan>
-=item C<tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet>
+=item C<tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet>
Tell C<tlmgr> to use a nearby CTAN mirror for future updates; useful if
you installed TeX Live from the DVD image and want to have continuing
@@ -7781,7 +7781,7 @@ Equivalent ways of specifying a local directory.
=item C<ctan>
-=item C<http://mirror.ctan.org/systems/texlive/tlnet>
+=item C<https://mirror.ctan.org/systems/texlive/tlnet>
Pick a CTAN mirror automatically, trying for one that is both nearby and
up-to-date. The chosen mirror is used for the entire download. The bare
@@ -8557,7 +8557,7 @@ One common use of C<option> is to permanently change the installation to
get further updates from the Internet, after originally installing from
DVD. To do this, you can run
- tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
+ tlmgr option repository https://mirror.ctan.org/systems/texlive/tlnet
The C<install-tl> documentation has more information about the possible
values for C<repository>. (For backward compatibility, C<location> can
@@ -10116,7 +10116,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 58862 2021-04-13 01:01:37Z preining $
+$Id: tlmgr.pl 58961 2021-04-22 00:55:07Z preining $
=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 40dd22ef003..f2cfbe78693 100755
--- a/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl
+++ b/Build/source/texk/texlive/linked_scripts/texlive/updmap.pl
@@ -1,9 +1,9 @@
#!/usr/bin/env perl
-# $Id: updmap.pl 51338 2019-06-07 16:36:59Z karl $
+# $Id: updmap.pl 58960 2021-04-22 00:52:00Z preining $
# updmap - maintain map files for outline fonts.
# (Maintained in TeX Live:Master/texmf-dist/scripts/texlive.)
#
-# Copyright 2011-2019 Norbert Preining
+# Copyright 2011-2021 Norbert Preining
# This file is licensed under the GNU General Public License version 2
# or any later version.
#
@@ -14,7 +14,7 @@
# the original versions were licensed under the following agreement:
# Anyone may freely use, modify, and/or distribute this file, without
-my $svnid = '$Id: updmap.pl 51338 2019-06-07 16:36:59Z karl $';
+my $svnid = '$Id: updmap.pl 58960 2021-04-22 00:52:00Z preining $';
my $TEXMFROOT;
BEGIN {
@@ -27,10 +27,10 @@ BEGIN {
unshift(@INC, "$TEXMFROOT/tlpkg");
}
-my $lastchdate = '$Date: 2019-06-07 18:36:59 +0200 (Fri, 07 Jun 2019) $';
+my $lastchdate = '$Date: 2021-04-22 02:52:00 +0200 (Thu, 22 Apr 2021) $';
$lastchdate =~ s/^\$Date:\s*//;
$lastchdate =~ s/ \(.*$//;
-my $svnrev = '$Revision: 51338 $';
+my $svnrev = '$Revision: 58960 $';
$svnrev =~ s/^\$Revision:\s*//;
$svnrev =~ s/\s*\$$//;
my $version = "r$svnrev ($lastchdate)";
@@ -1373,10 +1373,10 @@ The following files have been generated as listed above,
but will not be found because overriding files exist, listed below.
");
#
- if ($prg eq "updmap-sys") {
+ if ($opts{'sys'}) {
print_and_log ("
-Perhaps you have run updmap in the past, but are running updmap-sys
-now. Once you run updmap the first time, you have to keep using it,
+Perhaps you have run updmap-user in the past, but are running updmap-sys
+now. Once you run updmap-user the first time, you have to keep using it,
or else remove the personal configuration files it creates (the ones
listed below).
");
diff --git a/Master/texmf-dist/doc/man/man1/pdfxup.1 b/Master/texmf-dist/doc/man/man1/pdfxup.1
index 5fe8a3e054a..75198b87fc8 100644
--- a/Master/texmf-dist/doc/man/man1/pdfxup.1
+++ b/Master/texmf-dist/doc/man/man1/pdfxup.1
@@ -1,6 +1,6 @@
.\" Manpage for pdfxup.
.\" Contact pdfxup@markey.fr to correct errors or typos.
-.TH man 1 "17 december 2020" "2.00" "pdfxup man page"
+.TH man 1 "25 april 2021" "2.10" "pdfxup man page"
.SH NAME
pdfxup \- n-up tool with reduced margins
.SH SYNOPSIS
@@ -123,6 +123,46 @@ repeat the last p pages of the watermark file instead of only the last one.
\fB\-d\fR, \fB\-\-debug\fR
debug mode: keep intermediary files.
.TP
+\fB\-col\fR, \fB\-\-column-mode\fR, \fB\-\-vertical\fR
+fill in pages top-down first (instead of the default left-to-right mode).
+By default, pages are inserted from left to right, until the line is full;
+with this option, pages are inserted from top to bottom, until the column
+is full. See option \fB\-bal\fR below for examples of both options.
+.TP
+\fB\-row\fR, \fB\-\-row-mode\fR, \fB\-\-horizontal\fR
+fill in pages left to right (which is the default mode).
+.TP
+\fB\-bal\fR, \fB\-\-balance-last\fR
+balance last page: when using column mode, the pages are filled in from
+top to bottom, and the last page is no exception. Still, it may be prefered
+that the columns in the last page remains "balanced", which is what this
+option achieves. Symmetrically, in row mode, this option would balance the
+rows.
+.nf
+ --------- ---------
+row, no-balance | 1 2 3 | column, no-balance | 1 4 7 |
+(default mode) | 4 5 6 | | 2 5 8 |
+ | 7 8 9 | | 3 6 9 |
+ --------- ---------
+ --------- ---------
+ |10 11 12 | |10 13 |
+ |13 14 | |11 14 |
+ | | |12 |
+ --------- ---------
+
+ --------- ---------
+ row, balance | 1 2 3 | column, balance | 1 4 7 |
+ | 4 5 6 | | 2 5 8 |
+ | 7 8 9 | | 3 6 9 |
+ --------- ---------
+ --------- ---------
+ |10 11 | |10 12 14 |
+ |12 13 | |11 13 |
+ |14 | | |
+ --------- ---------
+
+.fi
+.TP
\fB\-V [0-3]\fR, \fB\-\-verbose\fR [0-3]
select verbosity (default: 1).
.TP
diff --git a/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf b/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf
index 87c73a1709f..2fe93831685 100644
--- a/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf
+++ b/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/pdfxup/README b/Master/texmf-dist/doc/support/pdfxup/README
index f2f7738538a..05a36f5f4b0 100644
--- a/Master/texmf-dist/doc/support/pdfxup/README
+++ b/Master/texmf-dist/doc/support/pdfxup/README
@@ -1,4 +1,4 @@
-PDFXUP -- v2.00 (2020/12/17)
+PDFXUP -- v2.10 (2021/04/25)
N. Markey <pdfxup@markey.fr>
@@ -18,7 +18,7 @@ graphicx package) in order to produce the new document.
-%% (c) 2020/12/17 Nicolas Markey <pdfxup at markey dot fr>
+%% (c) 2021/04/25 Nicolas Markey <pdfxup at markey dot fr>
%%
%% This work may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
diff --git a/Master/texmf-dist/doc/support/pdfxup/RELEASES b/Master/texmf-dist/doc/support/pdfxup/RELEASES
index 06f0951bc31..a9f1fedc6a2 100644
--- a/Master/texmf-dist/doc/support/pdfxup/RELEASES
+++ b/Master/texmf-dist/doc/support/pdfxup/RELEASES
@@ -4,7 +4,7 @@
##
##################################################################
Author: Nicolas Markey
-Please send your comments to <pdfxup@markey.fr>
+Please send your comments and bug reports to <pdfxup@markey.fr>
v1.00 (2015/08/23)
- first release
@@ -50,4 +50,15 @@ v2.00 (2020/12/17)
extension .xup) can be used to define default values
for frequent situations.
- cleaned-up man page, adding some missing options (thanks
- to Louis Gostiaux for pointing undocumented options) \ No newline at end of file
+ to Louis Gostiaux for pointing undocumented options)
+
+v2.10 (2021/04/25)
+ - fixed a bug due to ghostscript adding a patch-level number in
+ their version number. This is the bug reported in
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=976080
+ It was solved with the help of Christian Gnaegi.
+ - fixed 2 bugs in the computations of size of pages
+ - fixed a bug which inhibited short-edge option of booklets
+ - added options --col (to fill in pages vertically first) and --bal
+ (to balance columns (or rows) the last page). This feature was
+ requested by Philipp Killinger.
diff --git a/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf b/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf
index b6e779cb307..d7b289a8a13 100644
--- a/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf
+++ b/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf
Binary files differ
diff --git a/Master/texmf-dist/scripts/pdfxup/pdfxup b/Master/texmf-dist/scripts/pdfxup/pdfxup
index 12ac684ede8..c53607b82ab 100755
--- a/Master/texmf-dist/scripts/pdfxup/pdfxup
+++ b/Master/texmf-dist/scripts/pdfxup/pdfxup
@@ -2,12 +2,12 @@
shopt -s extglob
shopt -s lastpipe
-VERSION="2.00"
-VDATE="2020/12/17"
+VERSION="2.10"
+VDATE="2021/04/25"
## see release notes at the end of this file.
-## (c) 2020/12/17 Nicolas Markey <pdfxup at markey dot fr>
+## (c) 2021/04/25 Nicolas Markey <pdfxup at markey dot fr>
##
## This work may be distributed and/or modified under the conditions of
## the LaTeX Project Public License, either version 1.3 of this license
@@ -83,6 +83,8 @@ function defaultvalues()
: ${dfpdfxupSILENTLY_OVERWRITE="0"}
: ${dfpdfxupSET_BBOX=""}
: ${dfpdfxupTIGHT_FRAME="0"}
+ : ${dfpdfxupCOLUMN="0"}
+ : ${dfpdfxupBALANCELAST="0"}
}
function setdefaultvalues()
@@ -140,11 +142,16 @@ function setdefaultvalues()
TIGHT_FRAME=$dfpdfxupTIGHT_FRAME;
# initial bounding box
SET_BBOX=$dfpdfxupSET_BBOX
-
+ # pages displayed left-to-right first (default), or top-to-bottom first
+ COLUMN=$dfpdfxupCOLUMN
+ # balance last page (corresponds to option 'columnstrict' option
+ # in the pdfpages manual; also works in "non-column" mode)
+ BALANCELAST=$dfpdfxupBALANCELAST
+
## Notice: the names for h and w should actually be X and Y:
## they are not width and height, but coordinates of upper right corner.
- ## Notice: PAGES, INCLUDE_FOR_BBOX and EXCLUDE_FOR_BBOX will be set to default values if empty after
- ## processing options
+ ## Notice: PAGES, INCLUDE_FOR_BBOX and EXCLUDE_FOR_BBOX will be set to
+ ## default values if empty after processing options
}
######################################################################
@@ -204,9 +211,11 @@ See the manual page ('man pdfxup') for the list of all options.";
## -ow allow overwriting [default: \"$dfpdfxupSILENTLY_OVERWRITE\"]
## -ps s output paper size [default: \"$dfpdfxupPAPERSIZE\"]
## -tf draw tight frame around each page [default: \"$dfpdfxupTIGHT_FRAME\"]
+## -col arrange pages top-to-bottom first [default: \"$dfpdfxupCOLUMN\"]
+## -bal balance last page [default: \"$dfpdfxupBALANCELAST\"]
## -q run quietly (equiv. '-V=0')
## -h show this help message
-## -V [0-3] select verbosity [default: \"$dfpdfxupVERBOSITY\"]
+## -V [0-3] select verbosity [default: \"$dfpdfxupVERBOSITY\"]
##
##
##
@@ -445,15 +454,16 @@ fi
defaultvalues;
setdefaultvalues;
filename="temp-pdfxup-`date +%s`";
-inputfilename="input-$filename";
-watermarkfilename="watermark-$filename";
+inputfilename="input-pdfxup-$filename";
+watermarkfilename="watermark-pdfxup-$filename";
######################################################################
## check for ghostscript and pdflatex
######################################################################
## GS could be specified from command-line
: ${GS=`which gs`}
-GSVERSION=`$GS --version 2>/dev/null`;
+## regexp keeps only first two numbers of version number (eg. 9.53.3 -> 9.53)
+GSVERSION=`$GS --version 2>/dev/null |sed -e "s/\(.\.[^\.]*\)\..*/\\1/"`;
if [ ! "$GSVERSION" ]; then
echo " /!\\ ghostscript not found; aborting.";
exit 1;
@@ -620,6 +630,18 @@ while [ $# != 0 ]; do
myecho 0+ " /!\ configuration file $TMP not found"
fi
shift;;
+ -?(-)col|--column|--column-mode|-?(-)vert?(ical))
+ COLUMN=1
+ shift;;
+ -?(-)row|--row-mode|-?(-)line?(s)|-?(-)horiz?(ontal))
+ COLUMN=0
+ shift;;
+ -?(-)bal|--balance|--balancelast|--balance-last)
+ BALANCELAST=1
+ shift;;
+ -?(-)no-bal|--no-balance|--no-balancelast|--no-balance-last)
+ BALANCELAST=0
+ shift;;
-c|--clip)
case $2 in
1|yes|y|true)
@@ -674,7 +696,7 @@ while [ $# != 0 ]; do
shift 2;;
-p*|--page*)
ANS=`echo $1|sed -re "s/--?p(ages?)?=?//"`;
- PAGES=+="$ANS,";
+ PAGES+="$ANS,";
shift;;
-o|--out|--output-file|--outfile)
OUTPUTFILE=$2;
@@ -1351,7 +1373,7 @@ EOF
case $BOOKLET in
0)
echo " \bookletfalse" >> $filename.tex;;
- se)
+ 2)
echo " \booklettrue" >> $filename.tex
echo " \longedgefalse" >> $filename.tex;;
*)
@@ -1387,6 +1409,8 @@ cat >> $filename.tex <<EOF
\def\pdfxupwidefbox{$WIDE_FRAMEBOX}
\def\pdfxuptightfbox{$TIGHT_FRAMEBOX}
\def\pdfxupbbox{$BBOPTION}
+ \def\columnmode{$COLUMN}
+ \def\balancelast{$BALANCELAST}
\input{pdfxup-template}
@@ -1539,7 +1563,7 @@ pdfxup has numerous options:
##
##################################################################
Author: Nicolas Markey
-Please send your comments to <pdfxup@markey.fr>
+Please send your comments and bug reports to <pdfxup@markey.fr>
v1.00 (2015/08/23)
- first release
@@ -1585,3 +1609,14 @@ v2.00 (2020/12/17)
for frequent situations.
- cleaned-up man page, adding some missing options (thanks
to Louis Gostiaux for pointing undocumented options)
+
+v2.10 (2021/04/25)
+ - fixed a bug with ghostscript adding a patch-level number in their
+ version number. This is the bug reported in
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=976080
+ It was solved with the help of Christian Gnaegi.
+ - fixed 2 bugs in the computations of size of pages
+ - fixed a bug which inhibited short-edge option of booklets
+ - added options --col (to fill in pages vertically first) and --bal
+ (to balance columns (or rows) the last page). This feature was
+ requested by Philipp Killinger.
diff --git a/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex b/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex
index f5b6839f312..5f7bea843f2 100644
--- a/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex
+++ b/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex
@@ -1,6 +1,25 @@
+%
+% pdfxup template file
+%
+%% (c) 2021/04/25 Nicolas Markey <pdfxup at markey dot fr>
+%%
+%% This work may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3 of this license
+%% or (at your option) any later version. The latest version of this
+%% license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%% The Current Maintainer of this work is Nicolas Markey.
+
+
\expandafter\ifx\csname pdfxupfile\endcsname\relax
\PackageError{pdfxup}{This file should not be compiled alone}
- {File pdfxup-template.pdf is not meant to be compiled alone.
+ {File pdfxup-template.tex is not meant to be compiled alone.
\MessageBreak
It should only be used via the 'pdfxup' script.}
\fi
@@ -20,17 +39,17 @@
\newcounter{result}%
\newif\iffound
\def\@parserange#1-#2-#3\@end#4\@end{%
- \setcounter{result}{#4}%
- \ifnum\value{result}=1\relax
+ \c@result=#4\relax%
+ \ifnum\c@result=1\relax
\foundtrue
- \setcounter{result}{#1}%
+ \c@result=#1\relax%
\else
- \addtocounter{result}{-1}%
+ \advance\c@result by -1\relax%
\ifx\relax#3\relax%% means that range contains no -
\else
- \addtocounter{result}{#1}%
- \ifnum#2<\value{result}\relax
- \addtocounter{result}{-#2}%
+ \advance\c@result by #1\relax%
+ \ifnum#2<\c@result\relax
+ \advance\c@result by -#2\relax%
\else
\foundtrue
\fi
@@ -40,48 +59,45 @@
\def\@parsecsl#1,#2\@end#3\@end{%
\parserange{#3}{#1}%
\iffound\else
- \ifx\relax#2\relax\else\@parsecsl#2\@end\value{result}\@end\fi\fi}
+ \ifx\relax#2\relax\else\@parsecsl#2\@end\c@result\@end\fi\fi}
%% \nthvalue#1#2 looks for #1-th value in list of intervals #2
\def\nthvalue#1#2{\foundfalse\expandafter\@parsecsl#2,\@end#1\@end}
- %%
-
%% perform various computations:
%% - width and height of image (\hresult and \vresult)
%% - width and height of frame containing image (\hboxsize and \vboxsize)
\newcounter{lastpage}
- \newcounter{outpage}
- \setcounter{outpage}{\pdfxupnbpages}
- \addtocounter{outpage}{-1}
+ \newcounter{outpage}%%% nr of pages of output document
+ \c@outpage=\pdfxupnbpages\relax
+ \advance\c@outpage by -1\relax
\divide\c@outpage by \pdfxupnbhoriz
\divide\c@outpage by \pdfxupnbvert
\ifbooklet
- \divide\c@outpage by 2
+ \divide\c@outpage by 2\relax
\fi
- \stepcounter{outpage}
+ \advance\c@outpage by 1\relax
\ifbooklet
- \multiply\c@outpage by 2
+ \multiply\c@outpage by 2\relax
\fi
- \setcounter{lastpage}{\value{outpage}}
+ \c@lastpage=\c@outpage\relax
\multiply\c@lastpage by \pdfxupnbhoriz
\multiply\c@lastpage by \pdfxupnbvert
- \makeatother
%
\newlength\outputvmargin
\newlength\outputhmargin
- \setlength\outputvmargin{\pdfxupvmargin}
- \setlength\outputhmargin{\pdfxuphmargin}
+ \outputvmargin=\pdfxupvmargin\relax
+ \outputhmargin=\pdfxuphmargin\relax
\newlength\innervmargin
\newlength\innerhmargin
- \setlength\innervmargin{\pdfxupinnervmargin}
- \setlength\innerhmargin{\pdfxupinnerhmargin}
+ \innervmargin=\pdfxupinnervmargin\relax
+ \innerhmargin=\pdfxupinnerhmargin\relax
\newlength\outputindivvmargin
\newlength\outputindivhmargin
- \setlength\outputindivvmargin{\pdfxupintermvspace}
- \setlength\outputindivhmargin{\pdfxupintermhspace}
+ \outputindivvmargin=\pdfxupintermvspace\relax
+ \outputindivhmargin=\pdfxupintermhspace\relax
%
- \fboxsep=0pt%
- \setlength\fboxrule{\pdfxupframewidth}
+ \fboxrule=\pdfxupframewidth\relax
+ \fboxsep=-\fboxrule
\newlength\hresult
\newlength\vresult
\newlength\vboxsize
@@ -94,8 +110,8 @@
\vresult=\paperheight
\advance\vresult by -\pdfxupnbvert\fboxrule
\advance\vresult by -\pdfxupnbvert\fboxrule
- \advance\vresult by -\pdfxupnbvert\innerhmargin
- \advance\vresult by -\pdfxupnbvert\innerhmargin
+ \advance\vresult by -\pdfxupnbvert\innervmargin
+ \advance\vresult by -\pdfxupnbvert\innervmargin
%
\advance\hresult by -2\outputhmargin
\advance\vresult by -2\outputvmargin
@@ -116,14 +132,26 @@
\advance\hboxsize by 2\innerhmargin
- %% compute actual scale by which PDF is shrunk (or extended)
+ \let\pdfxupnblines\pdfxupnbvert
+ \let\pdfxupnbcols\pdfxupnbhoriz
+ \ifnum\columnmode=0\relax
+ %% "row-mode"
+ \def\horizincr{\pdfxupnbhoriz}
+ \def\vertincr{1}
+ \else
+ %% "column-mode"
+ \def\horizincr{1}
+ \def\vertincr{\pdfxupnbvert}%
+ \fi
+
+%% compute actual scale by which PDF is shrunk (or extended)
\ifnum\pdfxupemptybb=0\relax
\newcounter{origx}
- \setcounter{origx}{\pdfxupw}
- \addtocounter{origx}{-\pdfxupx}
+ \c@origx=\pdfxupw\relax
+ \advance\c@origx by -\pdfxupx\relax
\newcounter{origy}
- \setcounter{origy}{\pdfxuph}
- \addtocounter{origy}{-\pdfxupy}
+ \c@origy=\pdfxuph\relax
+ \advance\c@origy by -\pdfxupy\relax
\newlength\finalx
\newlength\finaly
\finalx=\hresult
@@ -148,56 +176,94 @@
%\tracingoutput=1
%\tracingpages=1
%\tracingparagraphs=1
- \makeatletter
- \newcounter{curroutpage}
- \setcounter{curroutpage}{1}
- \addtocounter{curroutpage}{-1}
- \newcounter{currpage}
- \newcounter{currcol}
- \newcounter{currline}
- \newcounter{realout}
- \newcounter{wmout}
- \newcounter{wmoutaux}
- \@whilenum \value{outpage}>\value{curroutpage} \do%
- {\stepcounter{curroutpage}%
- \setcounter{currpage}{\value{curroutpage}}%
- \advance\c@currpage by -1%
- \multiply\c@currpage by \pdfxupnbhoriz%
- \multiply\c@currpage by \pdfxupnbvert%
+ \newcounter{curroutpage}%%%% counts pages nr of output document
+ \c@curroutpage=0\relax
+ \newcounter{currpage}%%%%%%% page nr of input document
+ \newcounter{linecurrpage}%%% currpage at beginning of line
+ \newcounter{currcol}%
+ \newcounter{currline}%
+ \newcounter{realout}%
+ \newcounter{wmout}%
+ \newcounter{wmoutaux}%
+ \@whilenum \c@outpage>\c@curroutpage \do%
+ {\advance\c@curroutpage by 1\relax%
+ %% check if we are on last page, and if so, possibly balance last page
+ \if0\balancelast\relax\else
+ \c@currpage=\c@curroutpage\relax%
+ \multiply\c@currpage by \pdfxupnbhoriz\relax%
+ \multiply\c@currpage by \pdfxupnbvert\relax%
+ \ifnum\c@currpage>\pdfxupnbpages\relax
+ \c@currpage=-\c@curroutpage\relax%
+ \advance\c@currpage by 1 %
+ \multiply\c@currpage by \pdfxupnbhoriz\relax%
+ \multiply\c@currpage by \pdfxupnbvert\relax%
+ \advance\c@currpage by \pdfxupnbpages\relax
+ \ifnum\columnmode=0\relax
+ \advance\c@currpage by -1\relax
+ \divide\c@currpage by \pdfxupnbvert\relax%
+ \advance\c@currpage by 1\relax
+ \edef\horizincr{\thecurrpage}%
+ \edef\pdfxupnbcols{\thecurrpage}%
+ \else
+ \advance\c@currpage by -1\relax
+ \divide\c@currpage by \pdfxupnbhoriz\relax%
+ \advance\c@currpage by 1\relax
+ %\showthe\value{currpage}
+ \edef\vertincr{\thecurrpage}%
+ \edef\pdfxupnblines{\thecurrpage}%
+ %\show\vertincr
+ %\show\horizincr
+ \fi
+ \fi
+ \fi
+ %% start producing page
+ \c@currpage=\c@curroutpage%
+ \advance\c@currpage by -1\relax%
+ \multiply\c@currpage by \pdfxupnbhoriz\relax%
+ \multiply\c@currpage by \pdfxupnbvert\relax%
+ \c@linecurrpage=\c@currpage%
\hrule \@height\z@%
- \setcounter{currline}{0}%
- \vskip \outputvmargin%
- \@whilenum\value{currline}<\pdfxupnbvert \do%
- {\hrule \@height\z@\vskip \outputindivvmargin%
- \ifnum\value{currline}>0\vskip \outputindivvmargin\fi%
- \global\stepcounter{currline}%
- \setcounter{currcol}{0}%
+ \c@currline=0\relax%
+ \vskip\outputvmargin%
+ \@whilenum\c@currline<\pdfxupnblines \do%
+ {\hrule \@height\z@%
+ \ifnum\value{currline}>0\relax%
+ \vskip \outputindivvmargin%
+ \advance\c@linecurrpage by \horizincr\relax%
+ \else%
+ \advance\c@linecurrpage by 1\relax%
+ \fi%
+ \advance\c@currline by 1\relax%
+ \c@currpage=\c@linecurrpage\relax%
+ \c@currcol=0\relax%
\hskip \outputhmargin%
- \@whilenum\value{currcol}<\pdfxupnbhoriz \do%
- {\ifnum\value{currcol}>0\hskip\outputindivhmargin\fi%
- \global\stepcounter{currcol}%
- \global\stepcounter{currpage}%
- \ifnum\value{currpage}>\value{lastpage}\else
+ \@whilenum\c@currcol<\pdfxupnbcols \do%
+ {\ifnum\c@currcol>0\relax%
+ \hskip\outputindivhmargin%
+ \advance\c@currpage by \vertincr\relax%
+ \fi%
+ \advance\c@currcol by 1\relax%
+ \ifnum\c@currpage>\c@lastpage\else
%% computing page number corresponding to \currline and \currcol
- \setcounter{realout}{\value{currpage}}%
+ \c@realout=\c@currpage%
\def\ang{0}%
\ifbooklet
\iflongedge
%% long edge:
%% 1->n, 2->1, 3->n-1 (rotated), 4->2(rotated)...
- \ifodd\value{realout}% -> 1 or 3
- \addtocounter{realout}{-1}%
+ \ifodd\c@realout\relax% -> 1 or 3
+ \advance\c@realout by -1\relax%
\divide\c@realout by 2\relax
- \ifodd\value{realout}% -> 3
+ \ifodd\c@realout\relax% -> 3
\def\ang{180}%
\else% -> 1
\fi
- \setcounter{realout}{-\value{realout}}%
- \addtocounter{realout}{\value{outpage}}%
- \addtocounter{realout}{\value{outpage}}%
+ \c@realout=-\value{realout}\relax%
+ \advance\c@realout by \c@outpage\relax%
+ \advance\c@realout by \c@outpage\relax%
\else% -> 2 or 4
\divide\c@realout by 2\relax
- \ifodd\value{realout}% -> 2
+ \ifodd\c@realout% -> 2
\else% -> 4
\def\ang{180}%
\fi
@@ -205,51 +271,51 @@
\else
%% short edge:
%% 1->n, 2->1, 3->2, 4->n-1, 5->n-2, 6->3, 7->4, 8->n-3
- \ifodd\value{realout}% -> 1 or 3
- \addtocounter{realout}{-1}%
+ \ifodd\c@realout\relax% -> 1 or 3
+ \advance\c@realout by -1\relax%
\divide\c@realout by 2\relax
- \ifodd\value{realout}% -> 3
- \stepcounter{realout}
+ \ifodd\c@realout% -> 3
+ \advance\c@realout by 1\relax
\else% -> 1
- \setcounter{realout}{-\value{realout}}%
- \addtocounter{realout}{\value{outpage}}%
- \addtocounter{realout}{\value{outpage}}%
+ \c@realout=-\c@realout%
+ \advance\c@realout by \c@outpage\relax%
+ \advance\c@realout by \c@outpage\relax%
\fi
\else% -> 2 or 4
\divide\c@realout by 2\relax
- \ifodd\value{realout}% -> 2
+ \ifodd\c@realout\relax% -> 2
\else% -> 4
- \setcounter{realout}{-\value{realout}}%
- \stepcounter{realout}
- \addtocounter{realout}{\value{outpage}}%
- \addtocounter{realout}{\value{outpage}}%
+ \c@realout=-\c@realout\relax%
+ \advance\c@realout by 1\relax
+ \advance\c@realout by \c@outpage\relax%
+ \advance\c@realout by \c@outpage\relax%
\fi
\fi
\fi %% \iflongedge...\else
\fi %% \ifbooklet
- \ifnum\value{realout}>\pdfxupnbpages\relax
+ \ifnum\c@realout>\pdfxupnbpages\relax
%% if page above nb of pages, output blank page
%\hskip\hresult\hskip2\fboxrule
\hskip\hboxsize
\else
%% otherwise compute corresponding page to display
%% first keep realout for watermarking...
- \setcounter{wmoutaux}{\value{realout}}%
- \setcounter{wmout}{\value{realout}}%
- \nthvalue{\value{realout}}{\pdfxuppagelist}%
- \iffound\setcounter{realout}{\value{result}}%
+ \c@wmoutaux=\c@realout\relax%
+ \c@wmout=\c@realout\relax%
+ \nthvalue{\c@realout}{\pdfxuppagelist}%
+ \iffound\c@realout=\c@result\relax%
\else %% hmmm... problem
\message{I'm messed up counting pages...}%
\fi
%% compute watermarking page and display
\ifx\pdfxupwatermark\@empty\else
- \ifnum\pdfxupnbwp<\value{wmoutaux}\relax
- \addtocounter{wmoutaux}{-\pdfxupnbwp}%
- \addtocounter{wmoutaux}{-1}%
+ \ifnum\pdfxupnbwp<\c@wmoutaux\relax
+ \advance\c@wmoutaux by -\pdfxupnbwp\relax%
+ \advance\c@wmoutaux by -1\relax%
\divide\c@wmoutaux by \pdfxupwperiod\relax
- \stepcounter{wmoutaux}%
+ \advance\c@wmoutaux by 1\relax%
\multiply\c@wmoutaux by \pdfxupwperiod\relax
- \addtocounter{wmout}{-\value{wmoutaux}}%
+ \advance\c@wmout by -\c@wmoutaux%
\fi
\vbox to \vboxsize{\vfill
\hbox to \hboxsize{\hfill