Printing a double-sided A5 document on A4 paper

Here is a way how to do this in ConTeXt:

\setuppagenumbering [location=]

\setuppapersize [A5, landscape] [A4]
\setuparranging [2TOPSIDE]

\starttext
    \dorecurse{8}{%
        \centerline{\definedfont[Serif at 256pt]\recurselevel}\page}
\stoptext

The result looks like this:

result

The \setuppapersize command states, that you want to write an A5 landscape document that should be printed on an A4 paper. \setuparranging is used to arrange the pages in the way you wish. Many more schemes are possible.


I was curious about an answer to this question, so a lot of search presented me with this great solution provided by Andreas Matthias, the author of pdfpages, posted in comp.text.tex. Since it has an interesting background, I'll provide the whole text, as it's fantastic.

Marked as community-wiki for obvious reasons. :)

Text from Andreas:


pdfpages imposes the pages such that they should be turned over the long edge (while printing), whereas with psnup they should be turned over the short edge. In Postscript this is called /Tumble which can be set to true or false.

Today all duplex printer should be able to do printing in short edge mode as well as long edge mode. So this shouldn't be a big issue.

However, if you like short edge printing more you can direct pdftex (xetex) to rotate every second page. Here's an example:

\documentclass[a4paper,final]{article}
\usepackage{pdfpages}
\usepackage{ifpdf,ifxetex}
\makeatletter
\ifpdf
  \EveryShipout{\ifodd\c@page\else\pdfpageattr{/Rotate 180}\fi}%
\fi
\ifxetex
  \EveryShipout{\ifodd\c@page\special{pdf: put @thispage << /Rotate 180 >>}%
\fi
}

\fi
\makeatother

\begin{document}
\includepdf[pages=-, nup=1x2, booklet=true, landscape]{a5.pdf}
\end{document}

[...]

Ciao

Andreas


Note: \EveryShipout is provided by the everyshi package. :)

Thanks to Andreas and this awesome code, I think the following code will help you:

\documentclass[a4paper]{article}
\usepackage{pdfpages}
\usepackage{ifpdf,ifxetex,everyshi}
\makeatletter
\ifpdf
  \EveryShipout{\ifodd\c@page\else\pdfpageattr{/Rotate 180}\fi}%
\fi
\ifxetex
  \EveryShipout{\ifodd\c@page\special{pdf: put @thispage << /Rotate 180 >>}%
\fi
}

\fi
\makeatother

\begin{document}
\includepdf[pages=-,signature=4,angle=180]{a5-document}
\end{document}

Now I'm sure I know nothing about the ways of the TeX force. :)