Basic print-ready books in LaTeX

Recently I've started to dabble in the art of bookbinding. I haven't done any major projects as of yet, but I have done some rudimentary practice when it comes to creating signatures and books using the Japanese 4-hole stitch method. I have, for example, printed out some [public domain] books that I really like and then giving them away as gifts. Or shorter works, like Hemingway's writing advice, that aren't available anywhere else. But in order to do this you have to print them using signatures, i.e. a group of pages that is folded so that the pages can be flipped like with a book. And it turns out that this is harder to do than I initially thought, especially if you need esoteric paper sizes. Adobe Acrobat Reader has this feature built-in, I think, but I can't install that on my machine so I had to go look elsewhere. I settled on writing the books themselves in LaTeX, which are then compiled to a PDF that is then compiled again using another LaTeX document to create a print-ready PDF that can then be printed as any other PDF.

The first step in the process is actually creating the book. Now, in the case of public domain books, just download the plain TXT version (if using Gutenberg), or use something like pandoc) to convert an ebook into a .tex file. The syntax for the actual text-part of the book is just plain tex with the exception of the \chapter instead of \section since we are using another documentclass1. As for the preamble the only important additional package is the geometry package. If you want, for example, to create a book with Japanese 4-hole stitch binding, then you want a larger spine margin. An example configuration:

\documentclass[9pt]{extbook}
\usepackage{extsizes} % allows smaller font sizes
\usepackage[
  paperheight=13.7cm,
  paperwidth=9.7cm,
  left=3cm,
  bottom=1.5cm,
  top=1.5cm
]{geometry}
\usepackage[T1]{fontenc}
\usepackage{tgschola}  % a font similar to century schoolbook
 % parskip; sets indents, not skips between paragraphs
\usepackage[skip=0cm, indent=0.4cm]{parskip}
% lettrine allows larger letter at the start of a chapter
\usepackage{lettrine}
\usepackage{epigraph} % allows epigraphs

For the sake of example, I'll show the result of the following tex-document (an excerpt from The Strenuous Life):

\chapter*{The Strenuous Life}

\epigraph{\texttt{Speech before the Hamilton Club, Chicago, April 10, 1899}}

\lettrine{I}{n} speaking to you, men of the greatest city of the West, men of
the State which gave to the country Lincoln and Grant, men who
pre-eminently and distinctly embody all that is most American in the
American character, I wish to preach, not the doctrine of ignoble ease,
but the doctrine of the strenuous life, the life of toil and effort, of
labor and strife; to preach that highest form of success which comes,
not to the man who desires mere easy peace, but to the man who does not
shrink from danger, from hardship, or from bitter toil, and who out of
these wins the splendid ultimate triumph.

After we have compiled our book to a PDF we then need to create a version that can be printed (an in the case of our defined papersize above, also include cutting guidelines). For this there is the package pdfpages. Creating the ready-to-print PDF can be done with the following code (for the use in an A4 printer):

\documentclass{article}
\usepackage{pdfpages}
\usepackage[paperheight=13.7cm,paperwidth=19.4cm]{geometry}
\usepackage[axes,cam,a4,landscape,pdftex,center]{crop}

\begin{document}
  \includepdf[
    pages=-,
    signature=8,
    noautoscale
  ]{main.pdf}
\end{document}

Notice that the paper width specified for the geometry package in the print ready document is double that of the width specified in the original document (since it will be folded). This code results in the following output:

Here you have the cutting guidelines and signatures all ready to go, just print with double-sided printing and long-edge folding (i.e. the usual fold), sort them into signatures (no. of pages/signature specified in the code above as 8), and then bind it!

Might seem like a lot at first, but once you get the hang of it, it isn't too bad. And I must say that it is surprisingly satisfying to print things that actually look like books using your own printer and your own materials.

You can get access to the materials used in this post here.


  1. There's a neat trick here if you use pandoc: by using the --top-level-division=chapter flag you this is handled automatically. For more information see here