From 4550aacf5bcebb16f5804f2bfd666558ce6dbbc6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 15 Mar 2024 21:25:17 +0000 Subject: pdfxup (15mar24) git-svn-id: svn://tug.org/texlive/trunk@70657 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/man/man1/pdfxup.1 | 38 ++--- Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf | Bin 29760 -> 28280 bytes Master/texmf-dist/doc/support/pdfxup/README | 4 +- Master/texmf-dist/doc/support/pdfxup/RELEASES | 5 +- Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf | Bin 90395 -> 90128 bytes Master/texmf-dist/scripts/pdfxup/pdfxup | 27 ++- Master/texmf-dist/tex/latex/pdfxup/lipics.xup | 2 + Master/texmf-dist/tex/latex/pdfxup/llncs.xup | 2 + .../tex/latex/pdfxup/pdfxup-template.tex | 181 ++++++++++----------- 9 files changed, 130 insertions(+), 129 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/pdfxup/lipics.xup create mode 100644 Master/texmf-dist/tex/latex/pdfxup/llncs.xup (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/man/man1/pdfxup.1 b/Master/texmf-dist/doc/man/man1/pdfxup.1 index 75198b87fc8..8ca0c2b394a 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 "25 april 2021" "2.10" "pdfxup man page" +.TH man 1 "24 april 2021" "2.10" "pdfxup man page" .SH NAME pdfxup \- n-up tool with reduced margins .SH SYNOPSIS @@ -125,12 +125,20 @@ 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; +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. +is full. For instance: +.nf + --------- --------- +row-mode | 1 2 3 | column-mode | 1 4 7 | + | 4 5 6 | | 2 5 8 | + | 7 8 9 | | 3 6 9 | + --------- --------- + +.fi .TP \fB\-row\fR, \fB\-\-row-mode\fR, \fB\-\-horizontal\fR -fill in pages left to right (which is the default mode). +fill in pages left to right. .TP \fB\-bal\fR, \fB\-\-balance-last\fR balance last page: when using column mode, the pages are filled in from @@ -140,25 +148,15 @@ 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, no-balance | 1 2 3 | column, no-balance | 1 4 | + | 4 5 | | 2 5 | + | | | 3 | --------- --------- --------- --------- - 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 | | | + row, balance | 1 2 | column, balance | 1 3 5 | + | 3 4 | | 2 4 | + | 5 | | | --------- --------- .fi diff --git a/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf b/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf index 2fe93831685..ee969aeab10 100644 Binary files a/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf and b/Master/texmf-dist/doc/man/man1/pdfxup.man1.pdf differ diff --git a/Master/texmf-dist/doc/support/pdfxup/README b/Master/texmf-dist/doc/support/pdfxup/README index 05a36f5f4b0..335ae71dd88 100644 --- a/Master/texmf-dist/doc/support/pdfxup/README +++ b/Master/texmf-dist/doc/support/pdfxup/README @@ -1,4 +1,4 @@ -PDFXUP -- v2.10 (2021/04/25) +PDFXUP -- v2.11 (2024/03/15) N. Markey @@ -18,7 +18,7 @@ graphicx package) in order to produce the new document. -%% (c) 2021/04/25 Nicolas Markey +%% (c) 2024/03/15 Nicolas Markey %% %% 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 a9f1fedc6a2..b6272603a33 100644 --- a/Master/texmf-dist/doc/support/pdfxup/RELEASES +++ b/Master/texmf-dist/doc/support/pdfxup/RELEASES @@ -58,7 +58,10 @@ v2.10 (2021/04/25) 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. + +v2.11 (2024/03/15) + - fixed a bug in testdim, which did not support fractional values + (bug reported by Walt Tuvell) diff --git a/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf b/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf index d7b289a8a13..2c629a8b2ef 100644 Binary files a/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf and b/Master/texmf-dist/doc/support/pdfxup/pdfxup.pdf differ diff --git a/Master/texmf-dist/scripts/pdfxup/pdfxup b/Master/texmf-dist/scripts/pdfxup/pdfxup index c53607b82ab..d31db88f9e5 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.10" -VDATE="2021/04/25" +VERSION="2.11" +VDATE="2024/03/15" ## see release notes at the end of this file. -## (c) 2021/04/25 Nicolas Markey +## (c) 2024/03/15 Nicolas Markey ## ## This work may be distributed and/or modified under the conditions of ## the LaTeX Project Public License, either version 1.3 of this license @@ -294,12 +294,21 @@ function testdim() { dim=$1; case $dim in - +([0-9])@(pt|in|cm|mm)) + ?(\.)+([0-9])@(pt|in|cm|mm)) ;; - +([0-9])) + +([0-9])\.*([0-9])@(pt|in|cm|mm)) + ;; + ?(\.)+([0-9])) + dim=${dim}pt + ;; + +([0-9])\.*([0-9])) dim=${dim}pt ;; - +([0-9])*) + ?(\.)+([0-9])[!\.0-9]*) + echo " illegal unit of measure in option '$3'; ignoring"; + dim=$2; + ;; + +([0-9])\.*([0-9])[!\.0-9]*) echo " illegal unit of measure in option '$3'; ignoring"; dim=$2; ;; @@ -307,7 +316,7 @@ function testdim() echo " not a valid dimension in option '$3'; ignoring"; dim=$2; ;; - esac + esac } ## sets variable $in to 1 if $1 is in list of ranges $2 @@ -1620,3 +1629,7 @@ v2.10 (2021/04/25) - 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. + +v2.11 (2024/03/15) + - fixed a bug in testdim, which did not support fractional values + (bug reported by Walt Tuvell) diff --git a/Master/texmf-dist/tex/latex/pdfxup/lipics.xup b/Master/texmf-dist/tex/latex/pdfxup/lipics.xup new file mode 100644 index 00000000000..85217027e1b --- /dev/null +++ b/Master/texmf-dist/tex/latex/pdfxup/lipics.xup @@ -0,0 +1,2 @@ +## force bounding-box to default LIPICS values (with page numbers) +SET_BBOX="75 47 540 755" diff --git a/Master/texmf-dist/tex/latex/pdfxup/llncs.xup b/Master/texmf-dist/tex/latex/pdfxup/llncs.xup new file mode 100644 index 00000000000..968b26fa7b1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pdfxup/llncs.xup @@ -0,0 +1,2 @@ +## force bounding-box to default LNCS values (without page numbers) +SET_BBOX="134 126 482 677" diff --git a/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex b/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex index 5f7bea843f2..d96f5f22f8b 100644 --- a/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex +++ b/Master/texmf-dist/tex/latex/pdfxup/pdfxup-template.tex @@ -1,25 +1,6 @@ -% -% pdfxup template file -% -%% (c) 2021/04/25 Nicolas Markey -%% -%% 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.tex is not meant to be compiled alone. + {File pdfxup-template.pdf is not meant to be compiled alone. \MessageBreak It should only be used via the 'pdfxup' script.} \fi @@ -39,17 +20,17 @@ \newcounter{result}% \newif\iffound \def\@parserange#1-#2-#3\@end#4\@end{% - \c@result=#4\relax% - \ifnum\c@result=1\relax + \setcounter{result}{#4}% + \ifnum\value{result}=1\relax \foundtrue - \c@result=#1\relax% + \setcounter{result}{#1}% \else - \advance\c@result by -1\relax% + \addtocounter{result}{-1}% \ifx\relax#3\relax%% means that range contains no - \else - \advance\c@result by #1\relax% - \ifnum#2<\c@result\relax - \advance\c@result by -#2\relax% + \addtocounter{result}{#1}% + \ifnum#2<\value{result}\relax + \addtocounter{result}{-#2}% \else \foundtrue \fi @@ -59,7 +40,7 @@ \def\@parsecsl#1,#2\@end#3\@end{% \parserange{#3}{#1}% \iffound\else - \ifx\relax#2\relax\else\@parsecsl#2\@end\c@result\@end\fi\fi} + \ifx\relax#2\relax\else\@parsecsl#2\@end\value{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} @@ -68,35 +49,36 @@ %% - width and height of frame containing image (\hboxsize and \vboxsize) \newcounter{lastpage} \newcounter{outpage}%%% nr of pages of output document - \c@outpage=\pdfxupnbpages\relax - \advance\c@outpage by -1\relax + \setcounter{outpage}{\pdfxupnbpages} + \addtocounter{outpage}{-1} \divide\c@outpage by \pdfxupnbhoriz \divide\c@outpage by \pdfxupnbvert \ifbooklet - \divide\c@outpage by 2\relax + \divide\c@outpage by 2 \fi - \advance\c@outpage by 1\relax + \stepcounter{outpage} \ifbooklet - \multiply\c@outpage by 2\relax + \multiply\c@outpage by 2 \fi - \c@lastpage=\c@outpage\relax + \setcounter{lastpage}{\value{outpage}} \multiply\c@lastpage by \pdfxupnbhoriz \multiply\c@lastpage by \pdfxupnbvert + \makeatother % \newlength\outputvmargin \newlength\outputhmargin - \outputvmargin=\pdfxupvmargin\relax - \outputhmargin=\pdfxuphmargin\relax + \setlength\outputvmargin{\pdfxupvmargin} + \setlength\outputhmargin{\pdfxuphmargin} \newlength\innervmargin \newlength\innerhmargin - \innervmargin=\pdfxupinnervmargin\relax - \innerhmargin=\pdfxupinnerhmargin\relax + \setlength\innervmargin{\pdfxupinnervmargin} + \setlength\innerhmargin{\pdfxupinnerhmargin} \newlength\outputindivvmargin \newlength\outputindivhmargin - \outputindivvmargin=\pdfxupintermvspace\relax - \outputindivhmargin=\pdfxupintermhspace\relax + \setlength\outputindivvmargin{\pdfxupintermvspace} + \setlength\outputindivhmargin{\pdfxupintermhspace} % - \fboxrule=\pdfxupframewidth\relax + \setlength\fboxrule{\pdfxupframewidth} \fboxsep=-\fboxrule \newlength\hresult \newlength\vresult @@ -147,11 +129,11 @@ %% compute actual scale by which PDF is shrunk (or extended) \ifnum\pdfxupemptybb=0\relax \newcounter{origx} - \c@origx=\pdfxupw\relax - \advance\c@origx by -\pdfxupx\relax + \setcounter{origx}{\pdfxupw} + \addtocounter{origx}{-\pdfxupx} \newcounter{origy} - \c@origy=\pdfxuph\relax - \advance\c@origy by -\pdfxupy\relax + \setcounter{origy}{\pdfxuph} + \addtocounter{origy}{-\pdfxupy} \newlength\finalx \newlength\finaly \finalx=\hresult @@ -176,8 +158,9 @@ %\tracingoutput=1 %\tracingpages=1 %\tracingparagraphs=1 + \makeatletter \newcounter{curroutpage}%%%% counts pages nr of output document - \c@curroutpage=0\relax + \setcounter{curroutpage}{0}% \newcounter{currpage}%%%%%%% page nr of input document \newcounter{linecurrpage}%%% currpage at beginning of line \newcounter{currcol}% @@ -185,11 +168,11 @@ \newcounter{realout}% \newcounter{wmout}% \newcounter{wmoutaux}% - \@whilenum \c@outpage>\c@curroutpage \do% - {\advance\c@curroutpage by 1\relax% + \@whilenum \value{outpage}>\value{curroutpage} \do% + {\advance\c@curroutpage by 1% %% check if we are on last page, and if so, possibly balance last page \if0\balancelast\relax\else - \c@currpage=\c@curroutpage\relax% + \c@currpage=\c@curroutpage % \multiply\c@currpage by \pdfxupnbhoriz\relax% \multiply\c@currpage by \pdfxupnbvert\relax% \ifnum\c@currpage>\pdfxupnbpages\relax @@ -202,15 +185,15 @@ \advance\c@currpage by -1\relax \divide\c@currpage by \pdfxupnbvert\relax% \advance\c@currpage by 1\relax - \edef\horizincr{\thecurrpage}% - \edef\pdfxupnbcols{\thecurrpage}% + \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}% + \edef\vertincr{\thecurrpage} + \edef\pdfxupnblines{\thecurrpage} %\show\vertincr %\show\horizincr \fi @@ -218,52 +201,52 @@ \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% + \advance\c@currpage by -1% + \multiply\c@currpage by \pdfxupnbhoriz% + \multiply\c@currpage by \pdfxupnbvert% \c@linecurrpage=\c@currpage% \hrule \@height\z@% - \c@currline=0\relax% + \c@currline=0% \vskip\outputvmargin% - \@whilenum\c@currline<\pdfxupnblines \do% + \@whilenum\value{currline}<\pdfxupnblines \do% {\hrule \@height\z@% - \ifnum\value{currline}>0\relax% + \ifnum\value{currline}>0% \vskip \outputindivvmargin% - \advance\c@linecurrpage by \horizincr\relax% + \advance\c@linecurrpage by \horizincr% \else% - \advance\c@linecurrpage by 1\relax% + \advance\c@linecurrpage by 1% \fi% - \advance\c@currline by 1\relax% - \c@currpage=\c@linecurrpage\relax% - \c@currcol=0\relax% + \stepcounter{currline}% + \c@currpage=\c@linecurrpage% + \c@currcol=0% \hskip \outputhmargin% - \@whilenum\c@currcol<\pdfxupnbcols \do% - {\ifnum\c@currcol>0\relax% + \@whilenum\value{currcol}<\pdfxupnbcols \do% + {\ifnum\value{currcol}>0% \hskip\outputindivhmargin% - \advance\c@currpage by \vertincr\relax% + \advance\c@currpage by \vertincr% \fi% - \advance\c@currcol by 1\relax% - \ifnum\c@currpage>\c@lastpage\else + \stepcounter{currcol}% + \ifnum\value{currpage}>\value{lastpage}\else %% computing page number corresponding to \currline and \currcol - \c@realout=\c@currpage% + \c@realout=\value{currpage}% \def\ang{0}% \ifbooklet \iflongedge %% long edge: %% 1->n, 2->1, 3->n-1 (rotated), 4->2(rotated)... - \ifodd\c@realout\relax% -> 1 or 3 - \advance\c@realout by -1\relax% + \ifodd\value{realout}% -> 1 or 3 + \addtocounter{realout}{-1}% \divide\c@realout by 2\relax - \ifodd\c@realout\relax% -> 3 + \ifodd\value{realout}% -> 3 \def\ang{180}% \else% -> 1 \fi - \c@realout=-\value{realout}\relax% - \advance\c@realout by \c@outpage\relax% - \advance\c@realout by \c@outpage\relax% + \setcounter{realout}{-\value{realout}}% + \addtocounter{realout}{\value{outpage}}% + \addtocounter{realout}{\value{outpage}}% \else% -> 2 or 4 \divide\c@realout by 2\relax - \ifodd\c@realout% -> 2 + \ifodd\value{realout}% -> 2 \else% -> 4 \def\ang{180}% \fi @@ -271,51 +254,51 @@ \else %% short edge: %% 1->n, 2->1, 3->2, 4->n-1, 5->n-2, 6->3, 7->4, 8->n-3 - \ifodd\c@realout\relax% -> 1 or 3 - \advance\c@realout by -1\relax% + \ifodd\value{realout}% -> 1 or 3 + \addtocounter{realout}{-1}% \divide\c@realout by 2\relax - \ifodd\c@realout% -> 3 - \advance\c@realout by 1\relax + \ifodd\value{realout}% -> 3 + \stepcounter{realout} \else% -> 1 - \c@realout=-\c@realout% - \advance\c@realout by \c@outpage\relax% - \advance\c@realout by \c@outpage\relax% + \setcounter{realout}{-\value{realout}}% + \addtocounter{realout}{\value{outpage}}% + \addtocounter{realout}{\value{outpage}}% \fi \else% -> 2 or 4 \divide\c@realout by 2\relax - \ifodd\c@realout\relax% -> 2 + \ifodd\value{realout}% -> 2 \else% -> 4 - \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% + \setcounter{realout}{-\value{realout}}% + \stepcounter{realout} + \addtocounter{realout}{\value{outpage}}% + \addtocounter{realout}{\value{outpage}}% \fi \fi \fi %% \iflongedge...\else \fi %% \ifbooklet - \ifnum\c@realout>\pdfxupnbpages\relax + \ifnum\value{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... - \c@wmoutaux=\c@realout\relax% - \c@wmout=\c@realout\relax% - \nthvalue{\c@realout}{\pdfxuppagelist}% - \iffound\c@realout=\c@result\relax% + \setcounter{wmoutaux}{\value{realout}}% + \setcounter{wmout}{\value{realout}}% + \nthvalue{\value{realout}}{\pdfxuppagelist}% + \iffound\setcounter{realout}{\value{result}}% \else %% hmmm... problem \message{I'm messed up counting pages...}% \fi %% compute watermarking page and display \ifx\pdfxupwatermark\@empty\else - \ifnum\pdfxupnbwp<\c@wmoutaux\relax - \advance\c@wmoutaux by -\pdfxupnbwp\relax% - \advance\c@wmoutaux by -1\relax% + \ifnum\pdfxupnbwp<\value{wmoutaux}\relax + \addtocounter{wmoutaux}{-\pdfxupnbwp}% + \addtocounter{wmoutaux}{-1}% \divide\c@wmoutaux by \pdfxupwperiod\relax - \advance\c@wmoutaux by 1\relax% + \stepcounter{wmoutaux}% \multiply\c@wmoutaux by \pdfxupwperiod\relax - \advance\c@wmout by -\c@wmoutaux% + \addtocounter{wmout}{-\value{wmoutaux}}% \fi \vbox to \vboxsize{\vfill \hbox to \hboxsize{\hfill -- cgit v1.2.3