Inkscape игнорирует <use> - PullRequest
0 голосов
/ 09 мая 2019

При импорте следующего файла SVG в Inkscape показывается только текст, но игнорируется оператор <use> (или группа, на которую он ссылается). Это ошибка или особенность? Что-нибудь изменить? Кстати, группа <g> является более сложной, чем группа в файле примера. Файл правильно отображается в Chrome. (Windows 10, последняя версия Inkscape)

Спасибо! Марио

<svg width="400" height="200" x="0" y="0"
    xmlns="http://www.w3.org/2000/svg">
<defs>
  <g id="plus">
    <circle cx="40" cy="30" r="20" stroke="#FF0000" fill="none"></circle>
  </g>
</defs>
<svg x="100" y="50">
  <rect x="1" y="1" width="78" height="86" rx="10" ry="10" stroke="#0000FF" fill="none"></rect>
  <use href="#plus"></use>
  <text x="20" y="74" width="68" height="26">ABCD</text>
</svg>
</svg>

1 Ответ

2 голосов
/ 09 мая 2019

<use href="#plus"> должно быть <use xlink:href="#plus">. Кроме того, вам нужно добавить атрибут xmlns:xlink в корневой тег SVG.

<svg width="400" height="200" x="0" y="0"
    xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
  <g id="plus">
    <circle cx="40" cy="30" r="20" stroke="#FF0000" fill="none"></circle>
  </g>
</defs>
<svg x="100" y="50">
  <rect x="1" y="1" width="78" height="86" rx="10" ry="10" stroke="#0000FF" fill="none"></rect>
  <use xlink:href="#plus"></use>
  <text x="20" y="74" width="68" height="26">ABCD</text>
</svg>
</svg>

Если вы сделаете эти исправления, файл загрузится в Inkscape.

...