使用 Inkscape 的 SVG
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格式。选择以下选项:文件 / 另存为
使用符号
你可以定义在<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>