Skip to main content

LaTeX templates for jupyter notebook conversion to pdf

Project description


A more accurate representation of jupyter notebooks when converting to pdfs. This template was designed to make converted jupyter notebooks look (almost) identical to the actual notebook. If something doesn't exist in the original notebook then it doesn't belong in the conversion.


  1. \maketitle is removed (If you want a title then add a markdown cell to the top of your notebook).
  2. Sections are no longer numbered automatically (notebooks don't number sections so the pdf shouldn't).
  3. BOXES! are drawn around code cells.
  4. In/Out counts will move to the left as the execution count increases instead of pushing code to the right (only numbers are displayed by default to save page width).
  5. $\LaTeX$ and $\Tex$ in markdown cells will no longer cause conversion to fail. (This change was merged into nbconvert 5.4.0)
  6. "\LaTeX" and "\TeX" are no longer converted into a logo on conversion to pdf unless they are in math mode. (This and the above point replicate the functionality of these commands in notebook markdown).
  7. In/Out prompt colours updated to match Jupyter.
  8. Markdown paragraphs are no longer auto-indented in the pdf.
  9. Syntax highlighting improvements. (Bonus if using XeLaTeX)
  10. Output text wrapping improvements.
  11. Code cell text wrapping.

Quick Comparison: comparison for a closer look see the example directory.


pip install nb_pdf_template
python -m nb_pdf_template.install


pip install -U nb_pdf_template
python -m nb_pdf_template.install

Manual Install:

Drop all of the "*.tplx" files into the folder containing the other LaTeX nbconvert templates. If using anaconda, it should be something like:



From the command line:

jupyter nbconvert --to pdf filename.ipynb --template classic


c.LatexExporter.template_file = 'classic'

to the file will let you drop the "--template classic", and to the file will let you use "download as pdf" from within the Jupyter notebook.

Replace classic with your template of choice.


This package offers the following templates:

Template Use
classic.tplx (Recommended) For most accurate recreation of the default Jupyter Notebook style.
classicm.tplx m for modified. Similar to classic.tplx, but in/out prompts are above cells instead of in the margin. Bonus left margins are smaller so code cells are wider.
style_jupyter.tplx DO NOT use this directly. Inherit from this template if you want to build your own.

Tips (Good for any template)

Moved to the wiki

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for nb-pdf-template, version 3.0.3
Filename, size File type Python version Upload date Hashes
Filename, size nb_pdf_template-3.0.3.tar.gz (7.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page