Inkscape tutorial: 高级

bulia byak, buliabyak@users.sf.net ; josh andler, scislac@users.sf.net

本教程包括:复制/粘贴、节点编辑、手绘和Bezier曲线、路径操作、布尔操作、偏移、简化、以及文本工具。

通过Ctrl+arrows, 滚轮, 或者 中键拖动 将绘图页面向下卷动。绘图对象的创建、选择、变换等基本操作,请参考帮助Help > 教程Tutorials中的基础教程。

粘贴操作

当用Ctrl+C复制对象或Ctrl+X剪切对象后,通常的粘贴Paste命令(Ctrl+V)将复制的对象粘贴到鼠标光标处,如果光标在绘图窗口外,则粘贴到文档窗口的中心。实际上,剪贴板中的对象仍然记着它的原始位置,你可以用原位粘贴Paste in Place将它粘回原始位置(Ctrl+Alt+V)。

另一个粘贴命令,粘贴样式Paste Style(Shift+Ctrl+V),将复制对象的样式应用到所选对象。样式包括:填充、轮廓、以及字体设置,但不包括形状、大小、以及与该形状相关的参数,如星形的角数等。

命令粘贴大小Paste Size,将复制对象的大小应用到所选对象上。该命令包括:粘贴大小、宽度、高度,以及分别粘贴大小、宽度、高度。

粘贴大小Paste Size将全部选择的总大小缩放到剪贴板中对象的总大小。粘贴宽度Paste Width/粘贴高度Paste Height则仅影响水平和竖直方向上的尺寸。这些命令依据复制对象的长宽比是否锁定(选择工具控制栏,W和H的中间),如果复制对象的长宽比锁定,目标对象的另外一个方向上的尺寸将根据该比例自动缩放;否则,另一个方向的尺寸将不改变。带有“分别Separately”的相应命令也是类似的,不同之处在于将每个选择对象都分别缩放以适应复制的对象。

Clipboard is system-wide - you can copy/paste objects between different Inkscape instances as well as between Inkscape and other applications (which must be able to handle SVG on the clipboard to use this).

手绘和规则路径

创建任意形状的最简单的方法是使用铅笔(手绘)工具(F6):

An example image

对于更规则一些的形状,可以用钢笔(Bezier)工具(Shift+F6):

An example image

With the Pen tool, each click creates a sharp node without any curve handles, so a series of clicks produces a sequence of straight line segments. click and drag creates a smooth Bezier node with two collinear opposite handles. Press Shift while dragging out a handle to rotate only one handle and fix the other. As usual, Ctrl limits the direction of either the current line segment or the Bezier handles to 15 degree increments. Pressing Enter finalizes the line, Esc cancels it. To cancel only the last segment of an unfinished line, press Backspace.

在手绘和bezier工具模式下,选中路径的两端都会显示一个方形的锚点anchors,在这些锚点上可以继续绘图,从而延长路径,或使其封闭(从一个锚点画到另一个锚点),而不产生新的路径。

编辑路径

形状工具创建的是形状,而钢笔和铅笔工具创建的是路径。路径由直线和Bezier曲线构成,像其他对象一样,路径也可以设置任意类型的填充和轮廓属性。但与形状不同的是,修改路径时可以随意调整节点和(直线或曲线)段,而不是预先设置好的控制柄。切换到节点工具(F2),然后选择下面的路径:

An example image

你会看到路径上有一些灰色的方形节点。通过点击Shift+点击、或拖出弹性选框,来选择这些节点,与选择器工具拾取对象完全相同。也可以单击路径中的一段来选择相邻的节点。选中的节点将高亮显示,并出现节点控制柄:一个或两个与该节点相连的小圆圈。!键在当前子路径范围内反选节点(子路径上至少选中一个节点);Alt+!在整个路径范围内反选节点。

Paths are edited by dragging their nodes, node handles, or directly dragging a path segment. (Try to drag some nodes, handles, and path segments of the above path.) Ctrl works as usual to restrict movement and rotation. The arrow keys, Tab, [, ], <, > keys with their modifiers all work just as they do in selector, but apply to nodes instead of objects. You can add nodes anywhere on a path by either double clicking or by Ctrl+Alt+click at the desired location.

You can delete nodes with Del or Ctrl+Alt+click. When deleting nodes it will try to retain the shape of the path, if you desire for the handles of the adjacent nodes to be retracted (not retaining the shape) you can delete with Ctrl+Del. Additionally, you can duplicate (Shift+D) selected nodes. The path can be broken (Shift+B) at the selected nodes, or if you select two endnodes on one path, you can join them (Shift+J).

A node can be made cusp (Shift+C), which means its two handles can move independently at any angle to each other; smooth (Shift+S), which means its handles are always on the same straight line (collinear); symmetric (Shift+Y), which is the same as smooth, but the handles also have the same length; and auto-smooth (Shift+A), a special node that automatically adjusts the handles of the node and surrounding auto-smooth nodes to maintain a smooth curve. When you switch the type of node, you can preserve the position of one of the two handles by hovering your mouse over it, so that only the other handle is rotated/scaled to match.

通过Ctrl+click控制柄,可以将节点的控制柄收回(到节点上),如果相邻两个节点的控制柄都被收回,它们中间将变为直线。在节点上Shift+drag可以将控制柄重新拉出。

子路径和结合

一个路径可以包含数个子路径subpath。每个子路径中的节点互相连接,子路径与子路径之间则是断开的。左下图,三个子路径组合为一个路径,右下图中则互相独立,各自为一个路径:

An example image

要注意的是,复合路径并不等同于群组,它是一个单独的对象。如果你选中左上的对象,然后切换到节点工具,将会看到,三个子路径上的节点都显现出来,而在右侧,每次只能选中一个路径进行节点编辑。

通过对几个路径进行结合Combine可以形成一个复合路径(Ctrl+K),也可以将一个复合路径分解为几个独立的路径 (Shift+Ctrl+K)。在上图中练习一下。由于一个对象只能有一种填充和轮廓样式,结合后的复合路径将继承第一个对象(处于叠放次序的底层)的属性。

在合并有填充的路径时,如果路径之间有重叠区域,合并后,重叠部分的填充将消失:

An example image

这是创建内部有孔的形状的最简单的方法。路径工具的高级操作请参考下面的“布尔操作”。

转换为路径

任何的形状和文本都可以转为路径 (Shift+Ctrl+C)。转换不改变对象的外观,但对象原本所具有的特殊编辑方式(例如矩形倒圆,改变文本内容等)都将不复存在,而变为用节点工具进行编辑。这里有两个星形,左边的一个是形状,右边的已经转为路径,切换到节点工具模式,选择这两个对象,看看他们的区别:

An example image

而且,任何对象的轮廓stroke都可以转换为路径(“outline”)。下图中第一个是原始路径(无填充,黑色轮廓),第二个是执行轮廓转为路径Stroke to Path后(黑色填充,无轮廓):

An example image

布尔操作

路径Path菜单中命令可以将多个路径以布尔操作boolean operations的方式结合到一起:

An example image

布尔操作对应的快捷键也与相应的运算相适应(合并union对应加号,相减difference对应减号,等)。命令相减Difference排除Exclusion 只针对两个路径,其它操作可以应用于任意数量的对象。操作后的对象总是保留参与操作的底层对象的样式。

排除Exclusion结合Combine 操作有些类似,只不过,排除Exclusion 在原始对象相交的地方添加节点。分割Division剪切路径Cut Path命令的区别在于前者用顶层路径将底层路径完全剪切,而后者只剪切轮廓,填充则完全完全删除(适用于将不用填充的轮廓分为数段)。

嵌入与扩展

Inscape不仅可以通过缩放,也可以通过偏移offsetting来扩展和收缩形状,即将路径上的点沿法线方向移动。相应的命令为:嵌入Inset (Ctrl+() 和 扩展Outset (Ctrl+))。下图中给出了原始路径(红色)以及通过嵌入和扩展产生的新路径:

An example image

正常情况下,嵌入Inset扩展Outset命令生成的对象是路径(如果原始对象不是路径,将先转为路径)。通常,更方便的命令是动态偏移Dynamic Offset (Ctrl+J),通过一个拖动控制柄(同形状的控制柄类似)来控制偏移量。选中下面的对象,切换到节点工具,拖动控制柄到一个合适的位置:

An example image

这种动态偏移对象dynamic offset object会记录原始位置,多次调整偏移时不会产生退化(degrade)。如果不需要再调整,可以将偏移对象转为路径。

也许,更有效的是关联偏移linked offset,与动态偏移类似,但原始对象仍然保留,并且可以编辑。一个原始对象可以有多个关联偏移。下图中,原始对象是红色的,其中一个关联偏移轮廓是黑色的,没有填充,另一个有黑色填充,但没有轮廓。

选择红色的对象,编辑其节点,观察关联偏移对象的变化。选择关联对象,拖动控制柄,调节偏移量。你会注意到,移动和改变原始对象影响到关联偏移对象,而偏移对象的移动和变换是独立的,同时保持和源对象的链接关系。

An example image

简化

简化Simplify (Ctrl+L)命令在尽量保持形状的情况下减少路径上的节点。铅笔工具创建的对象,节点数目往往过多,需要这个工具来简化。下图中,左侧的形状是通过手绘工具创建的,右侧是简化后的。原始对象有28个节点,简化后只有17个(节点工具编辑时更容易一些),而且更平滑。

An example image

简化的程度(称为阈值threshold)取决于选区的大小。所以,如果选择路径的同时也选择了较大对象,简化的程度将更大。并且,简化的速度将加快。也就是所,如果连着按几次Ctrl+L(间隔不超过0.5秒),每次简化的阈值将递增。(如果等一会再执行,阈值又会还原原始大小。)通过这种方法可以比较精确地控制简化的程度。

除了平滑手绘对象,简化命令还可以产生许多创造性的效果。显得尖锐和呆板的对象经过简化经常后产生更柔和的效果:锐角变得平滑,引入更自然的变形效果,显得更生动,更有风格。下面是一个剪贴画对象经过简化后的效果:

An example image

创建文本

Inkscape可以创建复杂的文本。也可以很方便地绘制简短的文字对象,例如标题,标识,标语,流程图等中的文字。本节介绍Inkscape中文本工具的基本功能。

切换到文本工具(F8),在页面上的任意位置点击,然后输入文字。打开文本和字体对话框Text and Font dialog(Shift+Ctrl+T),可以修改文字的字体,样式,大小和对齐方式。这个对话框里也有一个文字输入框,可以修改选中的文本的内容。在这个对话框里输入文本可能比在画布上更方便(而且支持拼写检查)。

像其它工具一样,文本工具模式下可以选择其自身类型的对象——文本对象——点击选择,将输入光标放到文本中的任意位置(比如这个段落)。

文本编辑中常用的一个操作是调整文字间距和行间距,Inkscape中同样有对应的键盘操作方式。当编辑文本时,Alt+<Alt+>改变当前行的字间距letter spacing,该行的长度在当前缩放级别上每次改变一个像素(选择工具中,同样用这些键实现像素级别的缩放)。通常,如果字体比默认的大,字间距紧凑一些看起来更协调。例如:

An example image

紧凑一些的作为标题看起来更好一些,但仍然不是很完美:字间距并不一致,例如,“a"和"t"的间隔比"t"和"i"的间距大。在一些质量比较差的字体中,(尤其是字体比较大的情况下)这种不均衡的紧排更明显;但是,不管任何字体,总会存在这种文本组合,需要手工调整松紧。

在Inkscape中调整起来是很方便的,将光标放到需要调整的两个字符的中间,Alt+arrows键移动光标右侧的文字。与上面相同的文字,手动调整字符间距后:

An example image

除了Alt+LeftAlt+Right将文字左右移动,Alt+UpAlt+Down也可以将文字上下移动:

An example image

当然也可以将文字转为路径(Shift+Ctrl+C),并将字符像路径一样移动。但是,让其保持为文字无疑是更好的选择,不仅可以编辑,改变字体时也不会丢失间距,文件的体积也更小。保留为文本的唯一缺点是,当你将该SVG文件拿到别的计算机上打开时,这个机子上必须安装有相应的字体。

与字间距类似,在多行文本中也可以调整行间距line spacing。在本教程的任意段落中,Ctrl+Alt+<Ctrl+Alt+>来增大和缩小行间距,每次调整,整个文本的高度在当前缩放级别上改变一个像素。与选择工具类似,配合Shift键,行间距和字间距的调整量扩大十倍。

XML编辑器

Inkscape中的终极工具是XML编辑器(Shift+Ctrl+X),可以实时显示整个文档的XML树形图。修改绘图时,你可以注意一下XML树形图中的变化。也可以在XML编辑器中修改文本、元素或者节点属性,然后在画图上查看效果。这是一个非常形象化的学习SVG格式的交互式工具。并且可以实现一些通常的编辑工具无法完成的功能。

小结

这个教程只展示了Inkscape功能的一小部分,我们希望你能喜欢。欢迎探索它的功能,展示你的灵感。更多信息,最新版本,以及寻求用户社区的帮助,请登录www.inkscape.org