Taking notes with Markdown and Latex using IPython notebooks

I don’t know why I haven’t been using this forever, but I recently discovered the following near-ideal ways to take notes in CS or math-type classes on my computer:

  1. Install IPython on your computer
  2. From the folder you want to save your notes, launch the IPython notebook server:
     $ ipython notebook 
  3. In the resulting browser window, create a new notebook
  4. Change the cell type of the current cell to “Markdown”
  5. Write notes on the fly, wrapping anything you want to be rendered as Latex in $ $ tags!
  6. Press Shift+Enter to render the cell. To my knowledge, it doesn’t matter what’s split among cells (that’s more useful when you’re dealing with the results of Python expressions (the intended use of IPython…)

But wait- it gets better!

Generally, IPython notebooks are best viewed by a notebook server you launch from the directory. However, if you choose to make your notebooks available on the web (for instance, by hosting them on Github), then you can render them live using the IPython Notebook Viewer. This creates a link to the rendered notebook, incorporating all the Markdown and Latex formatting you wrote. And you can share it!

As an example, here’s a link to my (somewhat terrible) notes on Regression from the Machine Learning class I’m taking this semester: http://nbviewer.ipython.org/urls/raw.github.com/eclarke/Machine-Learning-Notes/master/Regression.ipynb

Edit: corrected capitalization of IPython.

3 thoughts on “Taking notes with Markdown and Latex using IPython notebooks

  1. I’m working on a site – mathdown.net – that renders math in markdown immedately as you close the formula. And you can collaborate in real time just by sharing the link. There are still rough edges but perhaps you’ll want to give it a try.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s