PDFs for your book

It is possible to build a single PDF that contains all of your book’s content. This page describes a few ways to do so.

Warning

PDF building is experimental, and may change or have bugs.

There are two approaches to building PDF files:

Build a PDF from your book HTML

It is also possible to build a single PDF from your book’s HTML. This first converts all of your book’s content into a single HTML file, and then renders it as a PDF by emulating a browser from the command-line.

Installation

Your system will need to use pyppeteer to parse the generated html for conversion to PDF.

Installing pyppeteer

If you wish to build a PDF from your book’s HTML, you will need the pyppeteer package. You can install it like so:

pip install pyppeteer

You may also need to install this bundle of packages below (on *nix systems):

gconf-service
libasound2
libatk1.0-0
libatk-bridge2.0-0
libc6
libcairo2
libcups2
libdbus-1-3
libexpat1
libfontconfig1
libgcc1
libgconf-2-4
libgdk-pixbuf2.0-0
libglib2.0-0
libgtk-3-0
libnspr4
libpango-1.0-0
libpangocairo-1.0-0
libstdc++6
libx11-6
libx11-xcb1
libxcb1
libxcomposite1
libxcursor1
libxdamage1
libxext6
libxfixes3
libxi6
libxrandr2
libxrender1
libxss1
libxtst6
ca-certificates
fonts-liberation
libappindicator1
libnss3
lsb-release
xdg-utils
wget

Build

To build a single PDF from your book’s HTML, use the following command:

jupyter-book build mybookname/ --builder pdfhtml

or

jb build mybookname/ --builder pdfhtml

Warning

If you get a “MaxRetryError” and see mentions of SSL in the error message when when building the PDF, this could be due to a bug in pyppeteer as it downloads Chromium for the first time. See this github comment for a potential fix, and this jupyter book issue where we’re tracking the issue.

Build a PDF using Latex

You can also use Latex to build a PDF of your book. This can behave differently depending on your operating system and setup. This section tries to recommend a few best-practices.

Installation

For Debian based Linux platforms it is recommended to install the following packages:

sudo apt-get install texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra latexmk

alternatively you can install texlive

For OSX you may want to use mactex which is a more user friendly approach, alternatively you may use texlive.

For Windows please install texlive.

Build

To build a single PDF using LaTeX, use the following command:

jupyter-book build mybookname/ --builder pdflatex

or

jb build mybookname/ --builder pdflatex

Note

If you would just like to generate the latex file you may use:

jb build mybookname/ –builder latex