% Imposition of apology-book.pdf in signatures: two A5 pages on each side of % a landscape A4 sheet, in the right order to fold in half and sew. % Each signature has at most \sheets sheets (4 pages per sheet); the % sheets are shared out evenly among the signatures. % Print on both sides, flipping on the short edge; fold each signature, % stack the signatures in order and sew them. % Compile apology-book.tex first. \documentclass{article} \usepackage[a4paper,landscape]{geometry} \usepackage{pdfpages} \usepackage{iftex} \def\bookpdf{apology-book.pdf} \def\sheets{6}% sheets per signature, at most (a single signature: 999) \newcount\Npages \newcount\Nsheets \newcount\Nsigs \newcount\Sbase \newcount\Sextra \newcount\sig \newcount\nsheets \newcount\npages \newcount\before \newcount\j \ifPDFTeX \pdfximage{\bookpdf}\Npages=\pdflastximagepages \else\ifXeTeX \Npages=\XeTeXpdfpagecount"\bookpdf"\relax \else \saveimageresource{\bookpdf}\Npages=\lastsavedimageresourcepages \fi\fi \Nsheets=\Npages \advance\Nsheets 3 \divide\Nsheets 4 % sheets in all \Nsigs=\Nsheets \advance\Nsigs\sheets \advance\Nsigs -1 \divide\Nsigs\sheets \Sbase=\Nsheets \divide\Sbase\Nsigs % sheets per signature \Sextra=\Sbase \multiply\Sextra\Nsigs \advance\Sextra -\Nsheets \multiply\Sextra -1 % signatures with one sheet more % order within each signature of p pages (a = pages of the earlier signatures): % a+p,a+1 | a+2,a+p-1 | a+p-2,a+3 | ... (page > total = blank) \def\pg#1{\ifnum#1>\Npages {}\else #1\fi} \def\order{} \def\signature{% \nsheets=\Sbase \ifnum\sig<\Sextra \advance\nsheets 1 \fi \npages=\nsheets \multiply\npages 4 \j=0 \loop\ifnum\j<\nsheets \edef\order{\order \pg{\the\numexpr\before+\npages-2*\j\relax},\pg{\the\numexpr\before+2*\j+1\relax},% \pg{\the\numexpr\before+2*\j+2\relax},\pg{\the\numexpr\before+\npages-2*\j-1\relax},}% \advance\j 1 \repeat \advance\before\npages \advance\sig 1 } \def\signatures{\ifnum\sig<\Nsigs \signature\expandafter\signatures\fi} \signatures \def\dropcomma#1,\dropend{#1}\edef\order{\expandafter\dropcomma\order\dropend}% the final comma \begin{document} \edef\x{\noexpand\includepdf[pages={\order},nup=2x1]{\bookpdf}}\x \end{document}