0

I created an SVG drawing using Inkscape locally. I then uploaded the created file to overleaf and wanted to include it. I validated the correct setup with an svg file I had used before.

Not working svg

\begin{figure}[htpb]
    \centering
    \includesvg{figures/Zeichnung.svg}
    \caption{Borken svg}
    \label{fig:Broken}
\end{figure}

correct working svg

\begin{figure}[htpb]
\centering
\includesvg[width=0.55\textwidth]{figures/Definition_Viskositaet.svg}
\caption{working svg file}
\label{fig:Viskosität}
\end{figure}

Result

enter image description here

Overleaf gives me this error msg:

See the svg package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.5     \includesvg{figures/Zeichnung.svg}
                                          
Did you run the export with Inkscape? There's no file
`./svg-inkscape/Zeichnung_svg-tex.pdf_tex'
although `figures/Zeichnung.svg' was found.

I cannot find the specified file, but it's clearly working with the other svg file which gives me no error.

I assume that the file generated I generated with Inkscape is somehow not usable with the SVG package. However, I don't know how to fix this or how to create my own SVG which I can use in overleaf. For clarification, the SVG I used to test the setup is from an online source and therefore not created by my self.

2
  • Could you provide a link to the online source of the SVG that is not working? Without the problematic image it is unlikely that anyone can find the problem.
    – Marijn
    Apr 11 at 12:10
  • pastebin.com/FFPgR7V0 You can see the svg code here. If you open it in Inkscape, you will see the image.
    – lorenzo
    Apr 11 at 12:45

1 Answer 1

2

This was a known bug in the Inkscape pdf export (which is used by the svg package), see https://gitlab.com/inkscape/inkscape/-/issues/1984. The issue has been fixed in Inkscape itself (see https://gitlab.com/marcjeanmougin/inkscape/-/commit/9b5de7815fcd93c2801c7fb8703491125ef906b5) so at some point this will probably be picked up by Overleaf and the svg will render correctly.

In the meantime the bug report also provided a workaround: replace all instances of context-stroke in the SVG source by a fixed color, for example #000000 (black). In your SVG there were eight instances. I replaced them below:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
 
<svg
   width="125.33871mm"
   height="17.948942mm"
   viewBox="0 0 125.33871 17.948942"
   version="1.1"
   id="SVGRoot"
   sodipodi:docname="Zeichnung.svg"
   inkscape:version="1.1.2 (b8e25be833, 2022-02-05)"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:svg="http://www.w3.org/2000/svg">
  <sodipodi:namedview
     id="namedview108087"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageshadow="2"
     inkscape:pageopacity="0.0"
     inkscape:pagecheckerboard="0"
     inkscape:document-units="mm"
     showgrid="false"
     inkscape:zoom="0.64052329"
     inkscape:cx="239.6478"
     inkscape:cy="81.964233"
     inkscape:window-width="1264"
     inkscape:window-height="664"
     inkscape:window-x="1993"
     inkscape:window-y="260"
     inkscape:window-maximized="0"
     inkscape:current-layer="layer1" />
  <defs
     id="defs108082">
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient41534"
       id="linearGradient104483"
       x1="326.86093"
       y1="76.218559"
       x2="369.78787"
       y2="76.218559"
       gradientUnits="userSpaceOnUse" />
    <linearGradient
       inkscape:collect="always"
       id="linearGradient41534">
      <stop
         style="stop-color:#0b30f6;stop-opacity:0.69999999"
         offset="0"
         id="stop41530" />
      <stop
         style="stop-color:#ff001c;stop-opacity:0.70194983"
         offset="1"
         id="stop41532" />
    </linearGradient>
    <linearGradient
       inkscape:collect="always"
       xlink:href="#linearGradient38240"
       id="linearGradient38242"
       x1="270.06329"
       y1="108.74166"
       x2="368.96173"
       y2="108.74166"
       gradientUnits="userSpaceOnUse"
       gradientTransform="matrix(0.43405083,0,0,0.43405083,209.63973,29.019152)" />
    <linearGradient
       id="linearGradient38240"
       inkscape:swatch="solid">
      <stop
         style="stop-color:#002bff;stop-opacity:1;"
         offset="0"
         id="stop38238" />
    </linearGradient>
    <marker
       style="overflow:visible"
       id="Arrow1Sstart-8"
       refX="0"
       refY="0"
       orient="auto"
       inkscape:stockid="Arrow1Sstart"
       inkscape:isstock="true">
      <path
         transform="matrix(0.2,0,0,0.2,1.2,0)"
         style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
         d="M 0,0 5,-5 -12.5,0 5,5 Z"
         id="path68676-4" />
    </marker>
    <marker
       style="overflow:visible"
       id="Arrow2Send"
       refX="0"
       refY="0"
       orient="auto"
       inkscape:stockid="Arrow2Send"
       inkscape:isstock="true">
      <path
         transform="matrix(-0.3,0,0,-0.3,0.69,0)"
         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
         style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round"
         id="path68697" />
    </marker>
    <marker
       style="overflow:visible"
       id="Arrow1Sstart-8-0"
       refX="0"
       refY="0"
       orient="auto"
       inkscape:stockid="Arrow1Sstart"
       inkscape:isstock="true">
      <path
         transform="matrix(0.2,0,0,0.2,1.2,0)"
         style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
         d="M 0,0 5,-5 -12.5,0 5,5 Z"
         id="path68676-4-4" />
    </marker>
    <marker
       style="overflow:visible"
       id="Arrow2Send-3"
       refX="0"
       refY="0"
       orient="auto"
       inkscape:stockid="Arrow2Send"
       inkscape:isstock="true">
      <path
         transform="matrix(-0.3,0,0,-0.3,0.69,0)"
         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
         style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round"
         id="path68697-0" />
    </marker>
  </defs>
  <g
     inkscape:label="Ebene 1"
     inkscape:groupmode="layer"
     id="layer1"
     transform="translate(-41.537344,-60.215376)">
    <g
       id="g69839"
       transform="matrix(0.37262531,0,0,0.37262531,-6.1711126,31.925465)"
       style="fill-rule:evenodd;stroke:#108000;stroke-opacity:1">
      <g
         id="g69827"
         style="fill-rule:evenodd;stroke:#108000;stroke-opacity:1">
        <rect
           style="opacity:0.971564;mix-blend-mode:normal;fill:#098000;fill-opacity:0.501393;fill-rule:evenodd;stroke:#108000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
           id="rect86-9"
           width="97.898438"
           height="67.95063"
           x="270.56329"
           y="74.766342"
           ry="17.762169"
           transform="matrix(0.4220691,0,0,0.4220691,147.68606,52.931391)" />
      </g>
      <text
         xml:space="preserve"
         style="font-style:normal;font-weight:normal;font-size:2.68014px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.111672;stroke-opacity:1"
         x="276.55472"
         y="90.539818"
         id="text16494-8"><tspan
           id="tspan16492-9"
           style="font-size:2.68014px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.111672;stroke-opacity:1"
           x="276.55472"
           y="90.539818"
           sodipodi:role="line">Ardunino</tspan></text>
    </g>
    <g
       id="g106990"
       style="stroke:#66de03;stroke-opacity:1"
       transform="matrix(0.61676117,0,0,0.61676117,-72.465685,11.82445)">
      <g
         id="g69827-0"
         style="fill:#a2ff00;fill-opacity:0.504178;fill-rule:evenodd;stroke:#66de03;stroke-opacity:1"
         transform="matrix(0.60416467,0,0,0.60416467,26.748816,32.591246)">
        <rect
           style="opacity:0.971564;mix-blend-mode:normal;fill:#a2ff00;fill-opacity:0.504178;fill-rule:evenodd;stroke:#66de03;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
           id="rect86-9-2"
           width="97.898438"
           height="67.95063"
           x="270.56329"
           y="74.766342"
           ry="17.762169"
           transform="matrix(0.4220691,0,0,0.4220691,147.68606,52.931391)" />
      </g>
      <text
         xml:space="preserve"
         style="font-style:normal;font-weight:normal;font-size:1.61925px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.0674683;stroke-opacity:1"
         x="192.59203"
         y="87.000122"
         id="text16494-8-7"><tspan
           id="tspan16492-9-6"
           style="font-size:1.61925px;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.0674683;stroke-opacity:1"
           x="192.59203"
           y="87.000122"
           sodipodi:role="line">Messrechner</tspan></text>
    </g>
    <g
       id="g53215"
       transform="matrix(0.59973583,0,0,0.59973583,-54.898976,23.478845)">
      <g
         id="g104514">
        <rect
           style="opacity:0.971564;mix-blend-mode:normal;fill:url(#linearGradient104483);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient38242);stroke-width:0.434051;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
           id="rect86"
           width="42.492897"
           height="29.494028"
           x="327.07794"
           y="61.471546"
           ry="7.7096844" />
        <text
           xml:space="preserve"
           style="font-style:normal;font-weight:normal;font-size:2.75622px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:#020f00;stroke-width:0.114842;stroke-opacity:1"
           x="338.23734"
           y="67.376602"
           id="text16494"><tspan
             id="tspan16492"
             style="font-size:2.75622px;fill:#000000;fill-opacity:1;stroke:#020f00;stroke-width:0.114842;stroke-opacity:1"
             x="338.23734"
             y="67.376602"
             sodipodi:role="line">Klimakammer</tspan></text>
      </g>
    </g>
    <path
       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.308381;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Sstart-8);marker-end:url(#Arrow2Send)"
       d="m 107.43897,69.239103 33.24637,-0.08734"
       id="path69424"
       inkscape:connector-type="polyline"
       inkscape:connector-curvature="0" />
    <path
       style="display:inline;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.308381;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:url(#Arrow1Sstart-8-0);marker-end:url(#Arrow2Send-3)"
       d="m 57.642018,69.239103 33.246379,-0.08734"
       id="path69424-2"
       inkscape:connector-type="polyline"
       inkscape:connector-curvature="0" />
  </g>
</svg>

Then the conversion process does not crash anymore.

To make the LaTeX output a bit nicer I suggest to make the font small and sans serif:

\documentclass{article}
\usepackage{svg}
\begin{document}
\begin{figure}[htpb]
    \centering
    \includesvg[pretex=\tiny\sffamily]{Zeichnung.svg}
    \caption{Broken svg}
    \label{fig:Broken}
\end{figure}
\end{document}

Result:

enter image description here

To improve it further you can edit the SVG in Inkscape to center the labels, or even to export to a PDF directly from Inkscape and include the PDF with \includegraphics instead of the conversion with the svg package, then you have more control over the result.

Note: I think the second node should be labeled Arduino and not Ardunino.

2
  • Thank you very much for the very quick and helpful answer. The extra tip using sans serif fonts and tiny text comes in very handy.
    – lorenzo
    Apr 11 at 19:30
  • For the meantime, I can really recommend using draw.io for creating .svg files. For anyone who does not want to manually edit their Inkscape .svg Files or export as a pdf
    – lorenzo
    Apr 11 at 19:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.