Making books

I put here some sort of notes or a brief guide on how to turn a bit of text or some document on a computer into a dead-tree edition, ie a printed book. I wrote this because some of the things may not be immediately obvious and even if no-one else likes it, I could use the exercise in writing and it will serve as a notebook.

Preparing the files

In case you have something else than a postscript document hat psutils will read, you would want to find a way to convert it. I cover pdf here. There are translators (including printing to a file) to do other formats with varying success. Any plain text or such might be best converted to (La)TeX and compiled to ps from that.

Pdf to postscript

This time, I had a pdf file I considered printing. For easier flow, I will call converting it to postscript the first step. Nothing stops you from doing the math in the next section at this point.

There are several converters. The most likely one might be called pdftops or pdf2ps. I seem to have both and picked the former just because it happened to come out of my fingers first.

pdftops document.pdf

And here we have a postscript document. I used mgv to see that it looks sane.

Considering the layout

You want the document, which is a sequence of pictures of pages, turned into a book, which is a block of folded paper with text in the right spots put together in a certain way.

Without giving any explanation yet, I chose to consider a book stitched out of a number (preferrably eight, for an octavo) of folios of maybe four or five sheets each, sewn together into something resembling a spine.

The document I had in hand, has 139 pages. I would like to use the least amount of paper and have even-sized folios.

Now one sheet, folded for sewing, will become two leaves, both of which have verso and recto sides. That will be four (document) pages. A folio which has four of these stacked will be sixteen pages. A folio of five, twenty. Obviously there will be an even number of pages in a book and actually it will be mod four and either mod sixteen or mod twenty.

139 pages in the document will take 140 pages or 35 full leaves in the book at minimum (mod four). 35 divided to folios of four is 8.75 (which becomes nine). In folios of five, it is an even seven. I'll take the seven folios of five.

I use this kind of half-random shuffling to get close to nice numbers. What you will need to do, is to pick those numbers and multiply number of folios by number of sheets in one by four and have that be larger than the number of (document) pages to print.

Postscript to print-ready

In a package called psutils, there are a set of tools to do many things, including some things required for this result. Some people will use mpage, but I strongly dislike it and will not document it here. Not now, at least.

I have an old laser I use for printing. It naturally doesn't do duplex and instead I have to hand-feed each sheet into it and have print appear on one side at a time. A little tip for the shuffling, BTW: See if the page has room to turn or find out if it does if possible. It probably is doesn't. If the page has no room to flip around in some odd way, it will come out of the printer the same way it went in. Same side up, same side down, same edge forward, same edge right etc. If the print appears on the bottom side of the paper and the top edge is at the right side of the tray (this is the way it does on mine), to print on the other side, you would turn the page printed side up and feed it in top edge to the right to get the other side to come out on the right face and right way up. I suggest experimenting anyway, before real runs, but this is a simple way to figure out the answer to a problem that seems to bother a lot of people (I remember it bothering me before I stopped to think about it).

If you think about the goal and the status quo, the pages will need to be printed so, that when you fold a sheet in half, you will be able to read it like a booklet or a brochure. Opened out, that will mean pages one and four on the other face, side by side, and pages two and three on the other face, side by side. All with the same edge up. This will do for four pages. To do eight, you will need to change the page order so, you'll have one and eight and two and seven on the outer sheet and three, six, four and five on the inner. And so on. Blank padding pages are most likely added to the end in a document you can't or won't edit to add them in more strategic positions.

So you will need something that will put the pages in order and something that will lay the pages out in sheets so you can feed paper to a printer and fold it and have the (document) pages appear in the right spots for reading and turning. This is just what a few helpers do.

psbook -s20

This command shuffles the pages to fit a certain "signature" size. Four pages times five sheets is twenty pages per folio. The output shows page numbers as they change. Again, you can preview the resulting ps file.

psnup -2

This command turn the strangely but aptly ordered pages into the images you need to print on the sheet. Every two consequent pages will fill the two sides of one sheet of paper. The output shows page numbers as they change. This time, the number falls by half, as expected. Again, you can preview the resulting ps file.

psselect -o
psselect -e

These commands split the odd and even pages, so you can print first one side of the stack and then the other. Mind the order of the sheets. You may look into printing functions of your ps previewer or psselect for ways in which to split the job into smaller batches.

The document is now ready to be printed in aforementioned ways or through lp or lpr.

Other things

If you want a booklet to staple together or cut in half, punch and put into a binder or other such, you can omit the -s argument to psbook.

I strongly recommend reading the manual page for everything in psutils. They are very good and clear IMHO.

For the needlework, I read a source that showed a nice simple (and old) method. The description can be found at Also, googling for 'book binding' or such might help.

Valid HTML 4.01! Valid CSS! Page compiled: Thu Jan 22 00:14:58 EET 2004