在 sharelatex (overleaf) 中包含 svg 文件

在 sharelatex (overleaf) 中包含 svg 文件

我正在使用 overleaf 的在线版本,并且包含 svg 图像的下面代码运行得非常好。

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

但现在我换用了本地版本的 overleaf。我按照建议安装了完整版的 texlive这里安装后,当我尝试编译我的 latex 文件时,出现了如下错误:

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

以及一些警告:

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.

我使用包含其他地方建议的latexmkrc文件来抑制这些错误和警告$pdflatex = 'pdflatex --shell-escape %O %S';。但现在我收到了新的警告:

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.

我确信我必须在某处设置我的 Inkscape 版本的路径,但我不确定在哪里。

我在 ubuntu 上工作。

答案1

您必须安装inkscapeoverleaf容器中。

  1. 在您的overleaf目录中,运行./bin/shell以连接到容器。

  2. root提示符 ( #) 下运行:

    • apt update
    • apt install inkscape

答案2

为了补充 Paul Gaborit 的回答,我必须在本地安装中启用 shell escape,请参阅这条推文

实际上,我必须创建一个latexmkrc包含以下内容的文件:

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

一旦启用了 shell 逃逸,它就可以起作用。

相关内容