使用 Inkscape 的 SVG

来自 PostgreSQL Wiki
跳转至导航跳转至搜索

Inkscape SVG 与优化 SVG

Inkscape 支持不同的文件格式来对图形进行序列。Inkscape SVG 是产品专用的格式,其中存储了有关实际图形的完整信息,包括不属于 SVG 标准的概念。因此,此文件非常庞大,并且无法移植到其他工具。相比之下,优化 SVG(请勿将其与普通 SVG 混淆)会创建一个只包含最终渲染所需的那些部分的小文件。此格式甚至可以通过将常见定义收集到高级元素中来执行优化。

有两组参数影响 Inkscape 的行为。

新建文件

首先,你可以选择与实际图形相关的各种参数,例如其大小、像素、点、em 或其他单位的默认度量、缩放因子、元数据、启用/禁用网格,以及更多内容。为了支持在图形中的参数得到一致的使用,这些参数可以存储在一个中心位置。每当你创建一个新的图形时,它们都会从$HOME/.config/inkscape/templates/default.svg读取。(从技术上讲,这是所有新图形的默认模板。如果你想保留 Inkscape 在其他任务中的先前行为,你应该在模板目录中创建一个文件postgres.svg,并使用命令创建新的文件:文件 / 从模板新建 / postgres.)推荐的内容如下

<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<svg
  xmlns="http://www.w3.org/2000/svg"
  xmlns:svg="http://www.w3.org/2000/svg" 
  xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  version="1.1" 
  width="580"
  height="280"
  viewBox="0 0 580 280">
  <defs id="defs1" />

  <sodipodi:namedview
    id="base"
    pagecolor="#ffffff"
    bordercolor="#666666"
    borderopacity="1.0"
    borderlayer="false"
    showborder="true"
    showgrid="true"
    inkscape:document-units="px"
    inkscape:pageopacity="0.0"
    inkscape:pageshadow="2"
    inkscape:showpageshadow="false"
    inkscape:cx="290"
    inkscape:cy="140"
    inkscape:zoom="1.5"
    inkscape:window-maximized="false" >
    <inkscape:grid type="xygrid" id="grid1" />
  </sodipodi:namedview>

  <metadata>
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
      </cc:Work>
    </rdf:RDF>
  </metadata>

<!-- border and background -->
  <rect x="1" y="1" width="99.4%" height="99.4%" rx="1%" 
        fill="whitesmoke" stroke="#CCCCCC" /> <!-- fill="hsl(0, 0%, 97%)" stroke="hsl(0, 0%, 80%)" /> -->

</svg>

另存为

其次,你可以选择如何生成优化 SVG格式。选择以下选项:文件 / 另存为

InkscapeSaveFile 1.png


InkscapeSaveFile 2.png


InkscapeSaveFile 3.png


InkscapeSaveFile 4.png


使用符号

你可以定义在<defs><symbols>构造中在一个(或多个)文件中多次使用的图形元素,并从 SVG 文件中的任何位置引用它们。SVG 1.1(以及 SVG 1.2 草案)提出了一个XLink语法

<use xlink:href="filename#symbol_id"/>

在即将发布的 SVG 2.0 标准中,XLink 已被弃用,取而代之的是无命名空间语法

<use href="filename#symbol_id">

Inkscape(在 0.92 版中)不接受新的语法。但如果你使用其他工具接收 SVG 文件,可能使用了新的语法。在这种情况下,你必须手动更正此文件,不要忘记在根元素中声明命名空间:xmlns:xlink="http://www.w3.org/1999/xlink"

手动更正

使用 XML 或文本编辑器控制优化后的文件,并执行一些手动更正。除以下所示提示外,还有有关此步骤的 一些通用提示

  • 有时候会有很多相同的不必要的 <marker> 元素(Inkscape 0.92)。手动将它们清除。
  • 有时候会有一个 scale(0) 属性,它会导致其元素不可见。将它更改为类似于 scale(0.5) 之类的东西。
  • text 元素总是使用一个额外的 tspan 元素创建。这发生在多行文本中。一个示例
<text ... >
  <tspan x="50" y="20" ... >line one</tspan>
  <tspan x="50" y="40" ... >line two</tspan>
  <tspan x="50" dy="20" ... >line three</tspan>
</text>

如果你创建单行文本,请使用更简单的语法

<text ... >One line</text>