jupyter/nbconvert

LaTeX and PDF export: Incorrect export of SVG images included via `![]()`

Opened this issue · 4 comments

Problem description

Presently, SVG images can be directly included in Jupyter notebooks via the ![SVG file](file.svg) directive. However:

  • LaTeX export results in \includegraphics{file.svg} which is unsupported in LaTeX as of now.
  • PDF via LaTeX export fails due to XeLaTeX compilation error.

Version Info

nbconvert 7.16.4

How to reproduce

  • Open a new Jupyter notebook file.
  • Include an SVD via ![SVG file](file.svg) in a Markdown cell.
  • Export the resulting notebook to LaTeX or PDF as: jupyter nbconvert --debug <filename> --to latex or jupyter nbconvert --debug <filename> --to pdf

Workaround

  • A workaround for LaTeX export, which utilizes the svg package and needs -shell-escape option is provided in #2190.

Note that an alternative fix is to use the svg2pdf.py preprocessor to "pre-convert" the SVG file included via ![]() into PDF, as it is currently done for image/svg+xml.

IMHO the \includepackage{svg} method is better. However, this is open and up for debate.

Duplicate of #244

Duplicate of #244

I'm not sure if #244 and this are duplicates... cells with MIME type image/svg+xml (which #244 is referring to via plot) are already correctly filtered via svg2pdf preprocessor... whereas this issue is about SVG files included via ![]()...

#244 is definitely about SVGs in markdown cells with ![](....svg). There are other issues around the svg2pdf preprocessor that you might be thinking of.