How to print things


The purpose of this page is to collect and summarize concise explanations of the pros and cons of different methods for printing and reading loose-leaf documents, including single-sided, standard double-sided, Möbius double-sided, and two-way double-sided—the last two of which in particular are the most interesting. (If you know of other methods, or have anything to add, please contact me!)

The methods on this page are explicitly for loose-leaf documents. In particular, they do not apply if the paper is bound in any way, e.g. stapled or in a 3-ring binder. This is of particular relevance to academics, who often print journal articles or other documents in order to read or edit them, but it may certainly be relevant to many others as well.

Questions, comments, feedback, alternative methods, pros and cons not listed here, etc. are all most welcome!


To avoid confusion, I have tried to be careful with my use of the following terminology:

  • A sheet is a physical piece of paper, which has two sides.
  • A page is a single, numbered unit of printed matter. Usually, one page is printed on one side of a sheet. One can, of course, print multiple pages on one side of a sheet, but we will not consider such printing schemes. Note that a blank side of a sheet is not a page, since it has nothing printed on it.
  • A stack is a sequence of sheets, with a front (the side that is read) and a back. (Sometimes top and bottom are used synonymously with front and back.)
  • To flip a sheet is to turn it over, exchanging front and back. Similarly, an entire stack may be flipped as a unit.
  • To shift a sheet is to move it (e.g. from the front to the back of a stack) without flipping it.


In this printing method, pages are only printed on one side of each sheet, leaving the other side blank.


There are many advantages to printing one-sided:

  • It is easy to jump ahead in the document by more than one page at a time, by shifting multiple sheets of paper together.
  • The document can easily be split into subsections (e.g. if multiple people need to refer to different parts of the document) by splitting the stack into substacks.
  • It is easy to extend the document after it has already been printed, simply by adding more pages to the end.
  • The physical process of reading the document is simple and requires no memory (see the algorithms below).
  • It is easy to simultaneously refer to multiple pages, since each page is on a separate sheet.
  • There is ample space for writing notes. For example, notes related to page n can be written on the back of the sheet containing page n-1; see the “book” algorithm below.
  • Printing one-sided is supported by every printer ever.


There is one obvious downside to printing single-sided: as compared to double-sided printing, the resulting document uses twice as much paper, which can be significant when considering either the cost of paper or the thickness and weight of printed documents.

Algorithms for reading

  • Loop: After reading each sheet, shift it to the back.
  • Book: Maintain two stacks, the already-read pages face down on the left, and the yet-to-be-read pages face up on the right:

    After reading a sheet, flip it over and shift it from the top of the right stack to the top of the left, just as if turning the page of a book. For example, after reading page 3 above, the situation becomes

    The book algorithm particularly facilitates note-taking (notes related to the right-hand page being read can be written on the blank side of the left-hand page), but requires a flat surface on which to put the stacks.

How to print

Just print (single-sided).

Standard double-sided

In this method, the first two pages are printed on the front and back of the first sheet, the next two pages on the second sheet, and so on.


  • Several advantages are shared with single-sided printing: it is easy to jump ahead in the document by more than one page, by moving multiple sheets of paper together; the document can be easily split into subsections; and it is easy to extend the document after it has already been printed.
  • Usually requires little effort to print: many printers natively support this method of double-sided printing.
  • Saves paper compared to single-sided printing.


  • Half the time, consecutive pages are on opposite sides of the same sheet of paper. This often makes it difficult to simultaneously refer to multiple places in the document (e.g. to refer back to a previous definition, figure, etc. on the previous page), requiring much tedious flipping back and forth.
  • Reading loose-leaf documents printed in this way can be confusing and error-prone. The “book” method is the only reading method that does not require keeping track of some state (see the algorithms below).

Algorithms for reading

  • Page at a time:
    • After reading an odd-numbered page, flip the sheet over.
    • After reading an even-numbered page, flip the sheet over and shift it to the back.

    This is in some sense the most “obvious” algorithm. A disadvantage is that it requires remembering whether to flip or to shift after reading each page. And because page numbering can vary, one cannot actually rely on the parity of the page number (that is, one must remember for each individual document which parity corresponds to which action).

    A small advantage (?) is that the entire stack always maintains the same orientation.

  • Spiral bound: Treat the stack as if it was bound with a spiral binding. That is:
    • After reading an odd page, shift it to the back, and flip the entire stack.
    • After reading an even page, flip the entire stack.

    Just like the page-at-a-time method, this requires remembering which of two actions to take after completing a page. However, the advantages are that individual sheets never need to be flipped (which can be physically cumbersome), and the orientation of the entire stack can be used to help remember which action to perform.

    The basic idea is to use some physical method of marking one side of the stack (e.g. a sticky note, putting a dogear on one page, or fanning the stack and making a mark along one edge) and treating that side as if it were a spiral binding. This lends itself to the mnemonic “left leaf, right reverse”—that is, when the mark/“spiral binding” is on the left side, you move a leaf (sheet) from the front to the back; when it is on the right, you reverse (flip) the entire stack. See the comments on this post for a discussion.

  • Book: Of course, the book method can also be used. Put the sheets into two stacks, and treat them as if they were actually bound in a book. This is the simplest algorithm: unlike the page-at-a-time or spiral bound algorithms, it does not require keeping track of any state. However, it does require a sufficiently large, flat surface.

How to print

Simply use a printer that supports double-sided printing, and choose the double-sided option.

Möbius double-sided

With an n-page document, put pages 1 through \lceil n/2 \rceil on the fronts of the sheets, and then put the remaining pages on the backs (in the same order), as in the illustration below.

This method was originally described here. This can very accurately be described as a Möbius band (as first observed by a commenter), since the front and back are connected by a half-twist (i.e. a flip).


  • There is a particularly simple algorithm for reading a document printed using this method (see below), which does not require making separate stacks and hence does not require a flat surface. There is no state to remember; the same action is done at the end of each page.
  • Consecutive pages are always on different sheets, so one can always simultaneously refer to the current page and the previous page without confusion or flipping back and forth. In fact, any sequence of consecutive pages (not exceeding the number of sheets) is always on separarate sheets. For example, in a 10-page document printed on 5 sheets, pages 2–6 are all on separate sheets, as are pages 3–7, 4–8, and so on. Thus, it is easy to simultaneously reference any pages which are not too far apart in the document.
  • Still saves paper as compared to single-sided printing.


  • The pages must be turned one at a time; there is no easy way to jump ahead multiple pages. For many, this is a major downside. In technical terms, seeking to an arbitrary page is O(n).
  • The document cannot be easily split into subsections, since each sheet contains two pages which are far apart in the document.
  • If you hand a document printed in this manner to someone else, they are likely to be confused.
  • Printing documents in this manner requires more effort (although it is not hard; see below).

Algorithms for reading

  • Möbius band: after reading each page, flip the sheet over and shift it to the bottom of the stack, as illustrated below:

How to print

This is a bit tricker: I do not know of any printers that natively support this printing method. However, there are two good methods to print documents in this format.

  • Double-print: This method works with most printers that can print double-sided. Print the first half (rounded up) of the document single-sided. Then take the resulting stack of paper and put it back in the printer, with page 1 facing up and the top towards you. Then print the second half of the document single-sided. It just so happens that this works out nicely with most printers, so that you don’t need to reverse all the sheets before putting them back in the printer. However, this method does not work with some simpler printers, especially those that can only print one-sided. The key property is whether documents with multiple pages come out of your printer in the correct order, or in reversed order. If they come out in reversed order, then you will need to reverse them before putting them back through to print the back sides.

  • Pre-collate: The slightly more high-tech method is to first reorder the pages of a PDF so that they will come out in Möbius order when printed using conventional double-sided printing. Specifically, the pages must be in the order

    \displaystyle 1, \lceil n/2 \rceil, 2, \lceil n/2 \rceil + 1, \dots

    (Note that \lceil n/2 \rceil correctly handles documents with an odd number of pages, ensuring that the blank page is on the back of the last sheet.) This can be accomplished by splitting the document in half and then interleaving the halves. For example, the pdftk tool can be used to perform this operation, using a command line like

    pdftk <input.pdf> shuffle 1-<m> <m+1>-end output <output.pdf>

    where <input.pdf> and <output.pdf> should be replaced by appropriate file names, and <m> and <m+1> should be replaced by \lceil n/2 \rceil and one more, respectively. For example, to turn the 11-page document foo.pdf into foo-mobius.pdf, one would write

    pdftk foo.pdf shuffle 1-6 7-end output foo-mobius.pdf

    Here is a zsh script I use which handles this automatically:

    N=`pdftk $1 dump_data | grep NumberOfPages | head -n 1 | cut -d " " -f 2`
    pdftk $1 shuffle 1-$(((N+1)/2)) $(((N+1)/2 + 1))-end output $OUTPUT

Two-way double-sided

With an n-page document, put pages 1 through \lceil n/2 \rceil on the fronts of the sheets, just as in the Möbius method, but then put the remaining pages on the backs of the sheets in the opposite order, as in the illustration below. If there are an odd number of pages, leave the back of the first sheet blank.

This method was suggested to me independently by audeyisaacs in a comment on Hacker News, and by Shachaf Ben-Kiki via IRC.


  • Like Möbius double-sided, there is a very simple algorithm for reading two-way double-sided documents, requiring (almost) no memory—see below.
  • A major benefit as compared to Möbius printing is that it is possible to skip multiple pages just by shifting multiple sheets to the top or bottom all together as a group. This makes it easy to quickly move to an arbitrary point in the document (in essentially O(\log n) time).
  • Two consecutive pages are almost always on different sheets—except for the two middle pages. If desired, this can even be remedied by inserting two extra blank pages, like this:

  • Of course, it still saves paper over single-sided printing.


  • The document still cannot be easily split into subsections; the front and back of each sheet tend to contain pages far away from each other in the document.
  • It also has a high confusion factor: other people will have no idea what to do with such a document without some explanation, though subjectively I think this scheme is slightly easier to explain than Möbius.
  • Printing documents in this manner requires effort, either manually reversing the sheets between printing the fronts and backs or preprocessing a PDF.

Algorithms for reading

  • Two-way: After reading each page, shift it to bottom of the stack (without flipping). Upon returning to the first page (it should usually be very easy to tell!), simply flip the whole stack and then continue reading and shifting pages to the bottom. When finished, shift the final page to the bottom and then flip the whole stack again to return it to its original state.

    Although this technically requires a bit of memory, it is something you are likely to remember anyway—you have to recognize when you have returned to the first page. Otherwise, this algorithm is simple and consistent for every page.

How to print

  • Double-print: you can start by printing the first \lceil n/2  \rceil pages single-sided. Unfortunately, with most printers, you will then have to manually reverse the sheets before putting them back in the tray to print the remaining pages. See the discussion of double-printing Möbius documents above.

  • Pre-collate: fortunately this is not too much harder than for Möbius printing. Using pdftk again, you can simply reverse the order of the endpoints of a page range to reverse the pages. So one would use a command line like

    pdftk <input.pdf> shuffle 1-<m> end-<m+1> output <output.pdf>

    where <input.pdf> and <output.pdf> should be replaced by appropriate file names, and <m> and <m+1> should be replaced by \lceil n/2 \rceil and one more, respectively.

    This works perfectly when there are an even number of pages. Unfortunately, when the number of pages is odd, this does not quite do the right thing with blank pages (although this is not a huge deal). I do not know of a way to use pdftk to insert blank pages at appropriate points. If you know of an easy way to do this properly, I would love to update this page to include your solution.