11

Im trying to create a report from my IPython notebook. Im using the toc extension to create a toc for my nb. I already converted the notebook to html, but the toc is not shown and is not linking to the rest of the doc. Is there any way to convert to one of the specified fromat and still keep a link-able (or even non-link-able) TOC?

Tharindu Rusira
  • 691
  • 9
  • 17
idoda
  • 6,248
  • 10
  • 39
  • 52

2 Answers2

3

I used a method without the nb extension to write the ToC to pdf (through Latex). I don't think it'd work when exporting as HTML though.

I added this cell at the top of the notebook:

%%latex
\tableofcontents

And then converted to pdf based on this answer

jupyter nbconvert --to pdf --TemplateExporter.exclude_input=True my_notebook.ipynb
Rems
  • 4,837
  • 3
  • 27
  • 24
2

Assuming you use IPython 1.x you have the following options to include the toc in the pdf

  • use the latex_book template
    (ipython nbconvert --to=latex --template=latex_book --post=pdf file.ipynb)

  • extend the latex_article (default) template
    Create a file with the following content (e.g. toc_latex.tplx) in the working dir:

    ((*- extends 'latex_article.tplx' -*))
    ((* block toc *))\tableofcontents((* endblock toc *))
    

    Use it as a template like
    ipython nbconvert --to=latex --template=toc_latex --post=pdf file.ipynb

If you use IPython 2.x

  • use the latex_report template
    (ipython nbconvert --to=latex --template=latex_report --post=pdf file.ipynb)

  • the custom template could be something like

    ((*- extends 'latex_article.tplx' -*))
    ((* block abstract *))\tableofcontents((* endblock abstract *))
    
Jakob
  • 19,815
  • 6
  • 75
  • 94
  • Ok, tried them both. They both produce very (very) poor pdf doc on a relatively trivial notebook (mostly text then figures). I guess the pdf integration with IPython is not mature enough to allow straightforward conversion. – idoda Oct 20 '13 at 14:21