3

I was working with the online version of overleaf and the below code to include svg images worked perfectly fine.

\begin{figure}
    \centering
    \includesvg[width = 5cm]{FIGURES/Example.svg}
    \caption{Example}
    \label{fig:Example}
\end{figure}

But now I switched to a local version of overleaf. I have installed the complete version of texlive as suggested here. After the installation when I try to compile my latex file I had errors such as:

Package svg Error: File `Example_svg-tex.pdf' is missing.

and some warnings:

Package svg Warning: You didn't enable `shell escape' (or `write18') so it wasn't possible to launch the Inkscape export for `FIGURES/Example.svg' on input line 127.

I suppressed these errors and warnings by using a latexmkrc file containing $pdflatex = 'pdflatex --shell-escape %O %S'; as suggested elsewhere. But now I have new warnings:

Package svg Warning: No version of Inkscape was detected by invoking `inkscape -V' so the Inkscape export will fail quite sure as the command is probably unknown to your OS. You could set `inkscapeversion=<version>' manually but this is very unlikely to work on input line 8.

I am sure I have to set up the path of my Inkscape version somewhere, but I am just not sure where.

And I am working on ubuntu.

12
  • The roundabout can be converting it to an eps file which I usually do. There are also websites that are useful to do so like cloudconvert. Jan 28, 2022 at 6:02
  • You must install inkscape and try the command inkscape -V in a terminal... Jan 28, 2022 at 8:01
  • 1
    @UdayCK You must install inkscape into the Overleaf container... Jan 28, 2022 at 13:58
  • 1
    @UdayCK In your overleaf directory, you can try ./bin/shell then, at the root prompt, apt install inkscape... Jan 28, 2022 at 14:38
  • 1
    @schtandard Ok right, sorry for having been wrong. For some reason was pretty sure that inkscape is not available in the SaaS Overleaf.
    – yo'
    Jan 31, 2022 at 8:13

2 Answers 2

3

You must install inkscape in the overleaf container.

  1. In your overleaf directory, run ./bin/shell to connect to the container.

  2. At the root prompt (#), run:

    • apt update
    • apt install inkscape.
4
  • Hi. I just tried this to fix the same problem but it did not fix the issue. I am using the standard docker-compose.
    – dodancs
    Dec 31, 2022 at 21:56
  • Did you run apt update before apt install inkscape? Jan 1, 2023 at 8:44
  • Yes I did, otherwise I wasn't able to even install the package as the APT caches weren't present. Can you try this with the docker-compose I mentioned in the previous comment, and see if it still works for you? I run the following command: docker exec -it sharelatex bash -c 'apt update && apt install inkscape'. Thanks!
    – dodancs
    Jan 8, 2023 at 12:27
  • @dodancs Here with docker-compose via podman it works. Jan 8, 2023 at 16:41
2

To add to Paul Gaborit's answer, I had to enable shell escape on my local installation, see this tweet

In practice, I had to create a latexmkrc file with contents:

$pdflatex = 'pdflatex --shell-escape';

Once shell escape was enabled, it worked.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .