This is slide #1.

  • Space and ctrl-space (or the clickable arrows) are used to move between slides.
  • Up/down arrows (or mouse) are used to move between cells.
  • Shift-enter executes a cell, as usual.
  • Cell contents can be changed in slideshow mode.

A "sub-slide" seems to be a new slide that doesn't increment the "major" number in the corner, but does make nagivation using the clickable arrows confusing. I'm not seeing the benefit, to be honest.

This is slide #2.

In [ ]:
# This is a code block within slide #2.
b = 1

In [ ]:
# Obviously, its the same python instance under the hood.

This is slide #3.

In [ ]:
# This is a code block within slide #3.
a = 1

In [ ]:
# This is a "fragment" within slide #3. What is a fragment???

In [ ]:
# We can still access `b` here, of course.

What about displaying static images?

It works! Take my word for it, or change this to point to your own file.

What about matplotlib (and vertical scrolling)?

In [ ]:
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize'] = (5.0, 8.0)
import numpy as np

In [ ]:
c = np.arange(10)

Ok then!

The notebook metadata contains the following customization:

  "livereveal": {
    "start_slideshow_at": "selected",
    "scroll": true

The first is critical for being able to move around the slideshow quickly -- just exit slidehow mode, highlight the slide you want to move to and re-enter.

The second provides a vertical scroll bar in case generated graphics go over the bottom of a slide. This is useful, but when possible it would be better to fit everything on a slide from the start.