\documentclass{article}
\usepackage[margin=6cm]{geometry}
\usepackage{tikz}
\usepackage{xspace}
\def\pdfxup{\texttt{pdfxup}\xspace}

\begin{document}
\title{\pdfxup \\[2mm]
 \normalsize
 version 2.12 -- 2024/06/11}
\author{Nicolas Markey}
\date{}

\maketitle

\def\abstractname{}
\begin{abstract}
\pdfxup is a shell script that creates $n$-up PDF documents, while at
the same time removing as much white stripes as possible. This
document reviews the main features of \pdfxup. See the \verb+man+ page
for more details.
\end{abstract}

\section{Basic usage}
Running \pdfxup with no options creates a 2-up document from the
original PDF file:
\begin{center}
\begin{tikzpicture}[scale=1.5]
 \begin{scope}
 \draw (0,0) |- (1.1,1.5) |- cycle;
 \foreach \x in {.3,.4,...,.9}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
 \draw [line width=.5mm,black!50!white] (.3,1.1) -- +(.5,0);
 \end{scope}
 \begin{scope}[xshift=1.2cm]
 \draw (0,0) |- (1.1,1.5) |- cycle;
 \foreach \x in {.3,.4,...,1.2}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
 %\draw [line width=.5mm,black!50!white] (.3,1.2) -- +(.4,0);
 \end{scope}
 %
 \draw[->] (2.6,.7) -- +(1,0);% node[midway,above] {scale=97\%};
 %
 \begin{scope}[yshift=2mm,xshift=4cm]
   \draw (0,0) |- (1.5,1.1) |- cycle;
   \begin{scope}[yshift=-1.8mm,xshift=-1.5mm,scale=.97]
     \draw[line width=.02pt] (.178,.25) |- (.922,1.25) |- cycle;
     \foreach \x in {.3,.4,...,.9}
            {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
     \draw [line width=.5mm,black!50!white] (.3,1.1) -- +(.5,0);
     \begin{scope}[xshift=7.5mm]
       \draw[line width=.02pt] (.178,.25) |- (.922,1.25) |- cycle;
       \foreach \x in {.3,.4,...,1.2}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
     \end{scope}
   \end{scope}
 \end{scope}
\end{tikzpicture}
\end{center}

It removes white strips around text, so that it does not need to scale
down the original document too much. All margins in the resulting PDF
can be adapted using various options. The number of rows and columns
of pages can be modified using options \verb+-x+ and \verb+-y+. By
default, the output file is in landscape mode, but this can be changed
using option \verb+-l=no+.

Computing the boundig box is performed automatically using
GhostScript. This may take time for long documents, but it is often
sufficient to compute the bounding box on the first few pages, using
option \verb+-bb+. Bounding-box computation can be turned off (so that
original margins are kept) using \verb+-kbb+.

It is possible to only include a subset of pages using option
\verb+-p+ (notice that if a page is listed twice, it will be included
twice).

\section{Creating a booklet}
\pdfxup can create booklets: this is similar to the operation above,
but the pages are ordered and oriented in the adequate way. Booklet
mode is triggered with the \verb+-b+ option.
\begin{center}
\begin{tikzpicture}[scale=1.5]
 \begin{scope}
 \draw (0,0) |- (1.1,1.5) |- cycle;
 \foreach \x in {.3,.4,...,.9}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
 \draw [line width=.5mm,black!50!white] (.3,1.1) -- +(.5,0);
 \end{scope}
 \begin{scope}[xshift=1.2cm]
 \draw (0,0) |- (1.1,1.5) |- cycle;
 \foreach \x in {.3,.4,...,1.2}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
 %\draw [line width=.5mm,black!50!white] (.3,1.2) -- +(.4,0);
 \end{scope}
 %
 \draw[->] (2.6,.7) -- +(1,0);% node[midway,above] {scale=97\%};
 %
 \begin{scope}[yshift=2mm,xshift=4cm]
   \draw (0,0) |- (1.5,1.1) |- cycle;
   \begin{scope}[yshift=-1.8mm,xshift=6mm,scale=.97]
%      \draw[line width=.02pt] (.178,.25) |- (.922,1.25) |- cycle;
     \foreach \x in {.3,.4,...,.9}
            {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
     \draw [line width=.5mm,black!50!white] (.3,1.1) -- +(.5,0);
   \end{scope}
     \fill[white] (1.2,-.01) -| (1.51,.3) -- cycle;
     \draw[fill=white] (1.2,0) .. controls +(40:2mm) and +(-60:2mm) .. (1.2,.35) -- (1.5,.3) -- cycle;
     \begin{scope}
       \draw[clip] (1.2,0) .. controls +(40:2mm) and +(-60:2mm) .. (1.2,.35) -- (1.5,.3) -- cycle;
       \draw[line width=.5mm,black!50!white] (1.3,.3) .. controls +(-60:1mm) and +(90:2mm) ..  ++(-80:3mm);
       \draw[line width=.5mm,black!50!white] (1.38,.28) .. controls +(-69:1mm) and +(90:2mm) ..  ++(-80:3mm);
     \end{scope}
 \end{scope}
\end{tikzpicture}
\end{center}

\section{Watermarking}
Using option \verb+-w+, you can add watermarking to the original file:
\begin{center}
\begin{tikzpicture}[scale=1.5]
 \begin{scope}
 \draw (0,0) |- (1.1,1.5) |- cycle;
 \foreach \x in {.3,.4,...,.9}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
 \draw [line width=.5mm,black!50!white] (.3,1.1) -- +(.5,0);
 \end{scope}
 \begin{scope}[xshift=1.2cm]
 \draw (0,0) |- (1.1,1.5) |- cycle;
 \foreach \x in {.3,.4,...,1.2}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
 %\draw [line width=.5mm,black!50!white] (.3,1.2) -- +(.4,0);
 \end{scope}
 %
 \draw[->] (2.6,.7) -- +(1,0);% node[midway,above] {scale=97\%};
 %
 \begin{scope}[yshift=2mm,xshift=4cm]
   \draw (0,0) |- (1.5,1.1) |- cycle;
   \begin{scope}[yshift=-1.8mm,xshift=-1.5mm,scale=.97]
     \path (.178,.5) -- (.922,1) node[midway,sloped,opacity=.5]
           {\bfseries\large draft};
     \draw[line width=.02pt] (.178,.25) |- (.922,1.25) |- cycle;
     \foreach \x in {.3,.4,...,.9}
            {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
     \draw [line width=.5mm,black!50!white] (.3,1.1) -- +(.5,0);
     \begin{scope}[xshift=7.5mm]
     \path (.178,.5) -- (.922,1) node[midway,sloped,opacity=.5]
           {\bfseries\large draft};
       \draw[line width=.02pt] (.178,.25) |- (.922,1.25) |- cycle;
       \foreach \x in {.3,.4,...,1.2}
          {\draw [line width=.5mm,black!50!white] (.2,\x) -- +(.7,0);}
     \end{scope}
   \end{scope}
 \end{scope}
\end{tikzpicture}
\end{center}


\pdfxup has many other options, setting up margins, frames, order of pages,~...
Please look at the \texttt{man} page for more details.


\end{document}