chrisjsewell / ipypublish

A workflow for creating and editing publication ready scientific reports and presentations, from one or more Jupyter Notebooks, without leaving the browser!
http://ipypublish.readthedocs.io
BSD 3-Clause "New" or "Revised" License
224 stars 37 forks source link
jupyter-notebook latex nbconvert python sphinx

IPyPublish

A program for creating and editing publication ready scientific reports and presentations, from one or more Jupyter Notebooks.

Documentation: ipypublish.readthedocs.io

CI Status Coverage Status PyPI DOI Conda Code Style

Attention: This package is still maintained, but it is envisaged that it will eventually be superceeded by the Executable Book Project toolchain. So definitely also check that out, and feedback any improvement suggestions! 😀

Conversion Process

For an example of the potential input/output, see: Example.ipynb, Example.pdf, Example.html and Example.slides.html.

Or, for a practical example of the ipypublish capability, see these documents on Atomic 3D Visualisation: Notebook, PDF, HTML or Reveal.JS slideshow.

Design Philosophy

In essence, the dream is to have the ultimate hybrid of Jupyter Notebook, WYSIWYG editor (e.g. MS Word) and document preparation system (e.g. TexMaker), being able to:

Workflow

  1. Create a notebook with some content!
  2. optionally create a .bib file and external images
  3. Adjust the notebook and cell metadata.
  4. install ipypublish and run the nbpublish for either the specific notebook, or a folder containing multiple notebooks.
  5. A converted folder will be created, into which final .tex .pdf and .html files will be output, named by the notebook or folder input

The default latex template outputs all markdown cells (unless tagged latex_ignore), and then only code and output cells with latex metadata tags. See Example.ipynb, Example.pdf, Example.html and Example.slides.html for examples of the potential input and output.

WorkFlow Example

See the project site for more info!

Acknowledgements

IPyPublish is built as an extension to nbconvert.

I also took strong influence from: