IPyPublish
A program for creating and editing publication ready scientific reports and presentations, from one or more Jupyter Notebooks.
Documentation: ipypublish.readthedocs.io
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! 😀
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
- Create a notebook with some content!
- optionally create a .bib file and external images
- Adjust the notebook and cell metadata.
- install ipypublish and run the
nbpublish
for either the specific notebook, or a folder containing multiple notebooks. - 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.
See the project site for more info!
Acknowledgements
IPyPublish is built as an extension to nbconvert.
I also took strong influence from:
- Julius Schulz
- Dan Mackinlay
- Notebook concatination was adapted from nbconvert issue#253