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


Keywords
python, jupyter-notebook, nbconvert, pandoc, latex, pdf, sphinx
License
MIT
Install
pip install ipypublish==0.10.12

Documentation

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: A major API improvement occurred in v0.7.0. This has not changed the general user interface, but anyone using custom converter plugins will be required to update them (see Plugin Conversion)

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:

  • Dynamically (and reproducibly) explore data, run code and output the results
  • Dynamically edit and visualise the basic components of the document (text, math, figures, tables, references, citations, etc).
  • Have precise control over what elements are output to the final document and how they are layed out and typeset.
    • Also be able to output the same source document to different layouts and formats (pdf, html,presentation slides, etc).

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: