``nbconvert`` ============= `nbconvert `_ konvertiert Notebooks in andere Formate Installation ------------ .. code-block:: console $ uv add nbconvert .. important:: Um alle Funktionen von ``nbconvert`` nutzen zu können, sind Pandoc und TeX (insbesondere XeLaTeX) erforderlich. Diese müssen separat installiert werden. Pandoc installieren ~~~~~~~~~~~~~~~~~~~ ``nbconvert`` verwendet `Pandoc `_ um Markdown in andere Formate als HTML zu konvertieren. .. tab:: Debian/Ubuntu .. code-block:: console $ sudo apt install pandoc .. tab:: macOS .. code-block:: console $ brew install pandoc Tex installieren ~~~~~~~~~~~~~~~~ Für die Konvertierung in PDF verwendet ``nbconvert`` das Tex-Ökosystem zur Vorbereitung: Es wird eine :file:`.tex`-Datei erstellt, die von der XeTeX-Engine in ein PDF konvertiert wird. .. tab:: Debian/Ubuntu .. code-block:: console $ sudo apt install texlive-xetex .. tab:: macOS .. code-block:: console $ eval "$(/usr/libexec/path_helper)" $ brew install --cask mactex .. seealso:: `MacTeX `_ Verwenden auf der Kommandozeile ------------------------------- .. code-block:: console $ jupyter nbconvert --to FORMAT mynotebook.ipynb ``latex`` erzeugt eine Datei :file:`{NOTEBOOK_NAME}.tex` und ggf. Bilder als PNG-Dateien in einem Ordner. Mit ``--template`` kann zwischen einem von zwei Vorlagen ausgewählt werden: ``--template article`` Standard Latex-Artikel, abgeleitet aus dem How-To von Sphinx ``--template report`` Latex-Bericht mit Inhaltsverzeichnis und Kapiteln ``pdf`` erzeugt ein PDF über Latex. Unterstützt die gleichen Vorlagen wie ``latex``. ``slides`` erstellt `Reveal.js `_-Slides. ``script`` konvertiert das Notebook in ein ausführbares Skript. Dies ist der einfachste Weg, ein Python-Skript oder ein Skript in einer anderen Sprache zu erzeugen. .. note:: Enthält ein Notebook *Magics*, so können dies möglicherweise nur in einer Jupyter-Session ausgeführt werden. Wir können :abbr:`z.B. (zum Beispiel)` `Python4DataScience/docs/workspace/ipython/mypackage/foo.ipynb `_ in ein Python-Skript verwandeln mit: .. code-block:: console $ uv run jupyter nbconvert --to script docs/basics/ipython/mypackage/foo.ipynb Das Ergebnis ist dann :file:`foo.py` mit: .. code-block:: python #!/usr/bin/env python # coding: utf-8 # # `foo.ipynb` # In[1]: def bar(): return "bar" # In[2]: def has_ip_syntax(): listing = get_ipython().getoutput("ls") return listing # In[3]: def whatsmyname(): return __name__ .. note:: Um eine Zuordnung von Notebook-Cells zu Slides festzulegen, solltet ihr in :menuselection:`View --> Cell Toolbar --> Slideshow` auswählen. Daraufhin wird in jeder Zelle oben rechts ein Menü angezeigt mit den Optionen: :menuselection:`Slide, Sub-Slide, Fragment, Skip, Notes`. .. note:: Für Vortragsnotizen ist eine lokale Kopie von :file:`reveal.js` erforderlich. Damit ``nbconvert`` diese findet, kann folgende Option angegeben werden: :samp:`--reveal-prefix {/PATH/TO/REVEAL.JS}`. Weitere Angaben für ``FORMAT`` sind ``asciidoc``, ``custom``, ``html``, ``markdown``, ``notebook``, und ``rst``. nb2xls ------ `nb2xls `_ konvertiert Jupyter-Notebooks in Excel-Dateien :file:`.xlsx`) unter Berücksichtigung von pandas DataFrames und Matplotlib-Ausgaben. Die Eingabezellen werden jedoch nicht konvertiert und Markdown nur zum Teil. Eigene Exporter --------------- .. seealso:: `Customizing exporters `_ erlaubt euch, eigene Exporter zu schreiben.