dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueis06_en.pdf · %lobu>jmib tebk...

36

Upload: buimien

Post on 17-Jul-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp
Page 2: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #96 31 contents ^

HHOOWW--TTOOWritten by Mark Crutch II nnkkssccaappee -- PPaarrtt 3366

T he last tab of the Tiled Clones

dialog is labelled “Trace” and,

unsurprisingly, it's used for tracing

existing drawings or bitmap

images to create an array of clones

that are related to some aspect of

the underlying image. Initially it

looks complex, but it's actually far

simpler than it appears.

After using the Reset button in

the dialog, most of the fields in

this tab become disabled. To

activate tracing mode, you have to

first check the box on the top line.

From then on it's just a case of

choosing the options you want

from each of the three numbered

sections. These can be broadly

described as:

• Which aspect of the image do

you want to use as your source of

data values?

• How do you want to modify

those values?

• What features of the clones do

you want those values to apply to?

To demonstrate, I ' ll use the

familiar face of La Giaconda as a

background image, with a red

round-cornered square as the

selected parent object for cloning.

When tracing, the clones are first

placed, sized and rotated in

accordance with the other tabs in

the dialog, then the background

image is tested underneath each

clone's position to extract a value

that will be used to further adjust

the clone.

In section 1 , we need to tell

Inkscape what value to extract.

You can choose from a general

color value or one of the individual

components of that color – Red,

Green, Blue, Hue, Saturation or

Lightness. There's also an option

for Opacity, which extracts the

alpha value from the underlying

image. This section results in a

single number for each clone. If “L”

was chosen, for example, the dark

parts of the image will yield a low

number, whereas the light parts

yield a high number.

Section 2 gives you the

opportunity to modify the

collection of numbers that you've

created in section 1 . You can adjust

the “gamma”, which allows you to

shift the midpoint of the number

range. This is best adjusted in small

amounts once you've seen what

the output looks like. Positive

numbers will shift the mid-point

upwards, negative values will shift

it downwards. For example, when

tracing a dark image using the “L”

channel, you might want to shift

the mid-point down – to better

center the range within the values

you're extracting. When tracing a

light image, on the other hand, you

might want to shift it upwards.

The Randomise field, as you

might expect, just modifies each

value from section 1 by a random

number. The value in this field

represents the maximum amount

of randomness that is allowed. The

Invert checkbox swaps low values

for high values, and vice versa. It's

used when you want low numbers

from your light areas, and high

numbers from the dark areas, for

example.

Finally, section 3 is where we

tell Inkscape what to do with the

extracted, adjusted values. For

each clone, you can use the

corresponding number to modify

any combination of Presence (the

probability that the clone is

created or not) , Colour, Size and

Opacity. The latter two are the

easiest to explain: in both cases

the original parent element

represents the maximum value

that is allowed. None of your

clones can get any larger, or more

opaque, than the parent. Instead,

the generated values are used to

reduce the size of the clone, or

reduce its opacity (making it more

transparent).

Page 3: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #96 32 contents ^

HOWTO - INKSCAPE

Let's take a look at an example.

I 've traced the Lightness values of

La Giaconda, adjusting them with a

Gamma of -1 .0, and finally applying

the results to the Size and Opacity

of the clones. The parent object is

in the top left, and you can see

that dark areas (where “L” is low)

result in small reductions of size

and opacity. Light areas (where “L”

is large) result in much bigger

reductions. Checking the Invert

control would have resulted in the

opposite effect: large, opaque

clones in the light areas and small,

transparent ones in the dark areas.

The Presence option in section

3 is, in my opinion, broken. A

sensible way for this to work would

be for values above a certain

threshold to result in a clone being

drawn, with values below that

threshold producing no clone.

That's not what happens though.

Rather the value is used to adjust

the probability that a clone will be

drawn. Whether it actually is drawn

or not then comes down to

(weighted) luck. With “L” selected

in section 1 , it becomes likely that

clones will be drawn in dark areas,

and less likely they'll be drawn in

light areas, but as it's all down to

chance, it makes the results

somewhat unpredictable. To make

matters worse, the presence

calculation, in all its randomness, is

performed every time you click the

“Create” button. Click it again and

the arrangement will be different.

Another click, another

arrangement. Just take a look at

this example – all three images

were taken using exactly the same

settings, just by clicking the button

three times. With such radically

different results from the same

input values, it's no wonder I

question the benefit of this

“feature”.

The Colour checkbox is perhaps

the most useful of all the options

in section 3. To use it you first have

to unset the fill of your parent

object, just as we did last time

when using the “Colour” tab. This

option is a little different to the

others because it doesn't use the

value from section 1 . Instead, it

takes the RGB value of the pixels

under the clone and, after

adjusting them in accordance with

section 2, applies the resultant

color to the clone. A picture

describes it far better than a lot of

words.

This effect usually works best

with a large number of fairly small

clones. That combination can bring

a lesser computer to its knees

fairly quickly, though, so be careful

before you hit the Create button.

One limitation of this dialog is

that each of the four options in

section 3 is tied to a single set of

manipulations in section 2. You

Page 4: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #96 33 contents ^

HOWTO - INKSCAPEcan't have Opacity set directly by

the “L” value, whilst also having

Size modified by the inverted

value, or use a different gamma for

the Colour and Presence. It's not

usually a problem, but if you do

need such combinations then

you've little choice but to use the

Tiled Clones dialog as a starting

point, then manually adjust each

clone afterwards.

The Trace tab can be used in

conjunction with the other tabs if

you want to add some rotation to

your clones, or perhaps adjust

their size or spacing. The latter can

be especially useful if you need to

tighten up the array when using

the Size checkbox in section 3. You

should also bear in mind that the

examples I 've given here are

deliberately simplistic. Your parent

object can be almost any shape or

group. The background you're

tracing, similarly, can be a

collection of objects rather than a

bitmap image. Just remember that

cloning complex parents takes

more processing power and

memory, so prepare for

slowdowns or even crashes if you

push the complexity or number of

clones too high.

To conclude our look at the

Tiled Clones dialog, I 'm going to

return to a couple of controls that I

skipped over previously. The first is

the “Use saved size and position of

the tile” checkbox at the bottom of

the dialog. Remember how

Inkscape uses the bounding box of

the parent as the basic unit of

measurement throughout this

dialog? This checkbox overrides

that default to instead use the

“saved” bounding box dimensions –

where “saved” just means “the last

value used before you checked this

box”.

Consider our color trace of La

Giaconda. By using 1 6 rows and 1 1

columns, my particular rounded

square covers the space quite

nicely. But what if I decide to

rotate the square to make a

diamond? Doing that increases the

size of the bounding box, so my 1 6

rows and 1 1 columns now spills

well over the edges of the

background image.

One obvious solution is to

reduce just the number of rows

and columns, but that still leaves

me with big gaps between the

tiles. I could tweak the values in

the Shift tab to compensate, but as

I already had a tile placement that

suited my needs, it's easier just to

tell Inkscape to “save” that and re-

use it for subsequent tiled clones.

Returning to the image as it was

previously (by pressing CTRL-Z a

few times) gets me back to a tile

layout I 'm happy with. At this point

I can tick the “Use saved size...”

checkbox to use that layout even

while I change other parameters in

the dialog, or make modifications

that will alter the size of the

parent's bounding box. Rotating

the parent again, and adding a

little variation with the Randomise

field in the Rotation tab, produces

a much better result.

The last control to cover in the

Tiled Clones dialog is actually the

first one. It's the pop-up menu on

the Symmetry tab, which

determines how the tiles are

initially arranged, prior to any

adjustments from the other tabs.

Mathematically speaking, there are

1 7 possible symmetries for a two-

dimensional pattern – see the

Wikipedia page for “Wallpaper

group” for more technical details.

These symmetries are based on

translating (moving), rotating and

reflecting the parent object to

create a repeating pattern, and the

Page 5: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #96 34 contents ^

Mark uses Inkscape to create threewebcomics, 'The Greys' , 'Monsters,Inked' and 'Elvie' , which can all befound athttp://www.peppertop.com/

HOWTO - INKSCAPEpop-up lists each symmetry by its

mathematical title in “short”

notation (such as “P1 ”) followed by

a description of the symmetry

(such as “simple translation”) .

So far, I 've only used P1 for this

tutorial, because it's the simplest

to understand when used with the

other tabs in the dialog. Other

symmetries can quickly lead to

complex (and confusing) results,

but they can be useful if you want

to create tiled patterns or

kaleidoscopic art. Some work best

with triangular arrangements of

objects, others with more

rectangular parents.

Unfortunately, however, it's

very easy to confuse Inkscape

when using more complex

symmetries. Even something as

simple as switching your document

from portrait to landscape mode

can result in wildly misplaced

clones. The following page shows

examples of all 1 7 symmetries, but

several of these had to be created

in a fresh document and imported

into the final image in order for

them to work as expected. In a

couple of cases, I was never able to

produce the expected

arrangement. They came close, but

I had to manually arrange the

clones a little to get the correct

result. I 've outlined those ones in

red. If you do want to use the

advanced symmetries, I

recommend checking out this page

in the official manual, which

contains a similar set of images but

with a little more detail:

http://tavmjong.free.fr/INKSCAPE/

MANUAL/html/Tiles-

Symmetries.html

Page 6: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #97 25 contents ^

HH OOWW--TTOOWritten by Mark Crutch II nn kkssccaa ppee -- PPaa rrtt 33 66

O ver the past few instalments,

I 've detailed the workings of

the Tiled Clones dialog. As well as

producing some interesting, and

often kaleidoscopic, visual effects,

this dialog can be useful for

creating particular arrangements

of objects. Because the dialog's

units are based on the bounding

box of the parent object (rather

than using explicitly stated

dimensions) , this approach isn't

terribly useful for positioning

objects at specific coordinates or

locations, so the next few articles

will look at the different tools

Inkscape provides for these kinds

of manipulations.

It's important to remember,

however, that Inkscape is not a

“computer aided design” (CAD)

program, of the sort used by

architects or engineers. If you want

to create technical drawings that

could be used by builders or

manufacturing companies, there

are other Open Source programs

that might serve you better, such

as FreeCAD, OpenSCAD, or QCAD.

With each release, Inkscape gains

more functionality in this area –

such as the new Measure tool in

0.91 – but it's still a long way from

a fully fledged CAD application.

With that limitation in mind, we'll

start with the most obvious form

of positioning: snapping to a grid.

Inkscape is rather flexible when

it comes to grids. You can have

more than one active at a time,

and each one can be either

rectangular (based on horizontal

and vertical lines) , or axonometric

(vertical lines, plus two sets of

angled lines) . Usually, however, it's

easiest to work with just one grid

at a time, most commonly a

rectangular one. Launch Inkscape

to create a new document, and, if

there's no grid visible, try pressing

“#” or use View > Grid to enable

the display of the default grid. To

edit this grid, or to add a new one,

use the File > Document

Properties menu, then select the

Grids tab.

To create a new grid, select

either Rectangular or Axonometric

from the pop-up menu at the top,

then click the New button. Each

grid gets its own tab in the

“Defined grids” section, with

slightly different icons for the two

grid types – but the icons are

always blue, regardless of the

color of your grid lines. They're

named automatically, with no easy

mechanism to change the name,

and no distinction in naming

between the two grid types. The

use of similar, identically-colored

icons and fixed, generic names

means that managing numerous

grids is less than straightforward,

so it's best to stick with just one or

two. The tab bar isn't scrollable –

the dialog just grows in size if you

start to add too many; and there's

also a practical limit imposed by

the UI .

Each grid has three checkboxes

that control snapping and visibility.

These are in addition to the View >

Grid option (toggled via the “#”

key), so, for a grid to be visible, you

need both of the top two

checkboxes to be enabled and the

View > Grid toggle to be on. Think

of the toggle as a global way of

showing and hiding all the possible

grids at once, with the checkboxes

being a way to more finely control

what each individual grid

contributes.

The first checkbox, “Enabled”,

simply switches the entire grid on

and off. With it unchecked, the

remaining options are all disabled

and the grid plays no part in

snapping or display. You might use

this if you have multiple grids so

that only one is switched on at a

time – typically when swapping

between rectangular and

axonometric within the same

drawing.

Page 7: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #97 26 contents ^

HOWTO - INKSCAPE

The second checkbox, “Visible”,

has only a visual effect. With this

unchecked, the grid will not be

displayed, but can still play a part

in snapping if the grid is enabled

via the first checkbox. As it can be

difficult and frustrating to snap to

a grid you can't see, I strongly

recommend always leaving this

option checked.

The third checkbox, “Snap to

visible grid lines only”, is slightly

misleading with its labelling –

though the tooltip is clearer. This

checkbox concerns grid lines that

are automatically suppressed as

you zoom out. If you were to zoom

out far enough, the grid lines

would become so dense that they

just appear as a solid colored

background. Inkscape avoids this

by hiding grid lines that would be

drawn too densely, and would have

been a hindrance rather than a

help. With this option unchecked,

you can still snap to these

suppressed lines, but I recommend

leaving it enabled so that you snap

to only visible grid lines. This may

require you to zoom in a little to

get the precise snapping point

you're looking for, but it's usually a

good trade-off against the

frustration of constantly mis-

snapping to invisible grid lines.

The remaining options in the

dialog are used to define the

displayed lines, and are fairly self-

descriptive. You can position the

origin of the grid – 0,0 is good for

most drawings – and define the

spacing between grid lines in both

the x and y directions. As most

people usually need a square grid

it would be good to have an option

to link these values, but it's no

great hardship to simply enter the

same value into each field. You can

set the color, and opacity for the

grid lines – it's usually best to keep

the opacity low so that they are

less dominant on the screen, and

less likely to be mistaken for real

lines in your drawing. By setting

different colors or opacities for

major and minor grid lines, you can

create a “graph paper” effect. This

becomes visible only when you're

zoomed in closely enough, and, if

you do decide to use this feature,

it's best to make the major lines

more opaque than the minor ones.

Set the “Major grid line every” field

to 0 if you want to disable this

feature. Finally, the “Show dots

instead of lines” checkbox does

exactly what it describes, and

results in a more lightweight view

of the grid. Setting this option, or

changing the line colors, can make

it easier to work with multiple

grids that are all active at the same

time, should you need to.

The options for creating an

axonometric grid are broadly

similar to those for creating a

rectangular one. There's only a

single entry for spacing, and a

couple of new fields for defining

the angles of the x and z axes. The

default values of 30° are fine for

isometric drawings, though you

might want to use 45° for an

“oblique” projection. Setting either

of these too close to 0° or 90°

results in rendering problems. Any

value outside this range is capped,

though that isn't reflected in the

displayed number. Unfortunately,

there's no “Show dots instead of

lines” option for axonometric

grids.

Also missing is the ability to

create logarithmic or polar grids.

Both are possible via extensions –

though these create “real” SVG

objects, rather than Inkscape grids,

so they can't be toggled with the

“#” key, and have to be snapped to

via object snapping, not grid

snapping. If you do have need of

these grid types, however, you can

find them under Extensions >

Render. In 0.48, you're looking for

the Cartesian Grid and Polar Grid

entries, whereas in 0.91 they've

both been moved into an extra

“Grids” submenu. The image on the

next page (top right) gives an

example of grids produced using

these extensions.

Going back to Inkscape's

rectangular and axonometric grids,

the setup we've done so far just

lets you visually align objects. To

really use them as layout tools,

you'll also need to enable

snapping. As with grids, there's a

Page 8: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #97 27 contents ^

HOWTO - INKSCAPEglobal toggle for snapping: press

the “%” key (Shift-5 on my

keyboard) to trigger it, use the

View > Snap menu entry, or click

on the first icon on the Snap

Controls Bar (button 1 in the

screenshot below).

With snapping enabled, you

also need to have either button 2

or 3 (or both) enabled. These

dictate what parts of your drawing

can be snapped: button 2 enables

the snapping of bounding box

corners, and kicks in when you

resize or move an object using the

Select tool; button 3 enables the

snapping of nodes and handles, so

has an effect when you initially

draw an object, or subsequently

edit it using the appropriate

object-specific tool. Enabling

either button makes a few others

available that you can use to

enable more specific snappings –

such as snapping the center point

of a bounding box, rather than just

its corners – but most of the time I

find that one of the main two

buttons is good enough.

As well as defining which parts

of an object should snap, we also

have to tell Inkscape what we want

them to snap to. Button 4 enables

snapping to the grid. The button

after it enables snapping to

guidelines (covered in Part 1 6 of

this series) – I usually leave this

enabled as it has no effect unless

you specifically add some

guidelines, in which case you

probably want it switched on

anyway. The other button in this

section enables snapping to the

page border, which I find to be less

useful for my own projects.

There's one final setting to look

at (shown left) regarding snapping,

so it's back to File > Document

Properties, but this time select the

Snap tab.

Within this panel, you can set

how voracious Inkscape is in its

efforts to snap. For each section,

the “Always snap” option means

exactly that: snap to the nearest

snapping point, regardless of how

far away it might be. This is useful

if you absolutely have to draw to

the grid to ensure dimensional

accuracy. More generally, however,

“Snap only when closer than”

offers a good trade-off between

accuracy and freedom. With this

mode enabled, you can freely place

your objects, nodes and handles,

unless they get close to a snapping

point, in which case they will jump

to that location. Exactly how close

is set by the “Snap distance” slider.

The values are measured in screen

pixels, so zooming has an effect on

the effective “hit area” in which

snapping occurs: zoom in to give

yourself more freedom, or zoom

out to make snapping more likely.

Within File > Inkscape

Preferences (Edit > Preferences in

0.91 ) , there are “Grids” and

“Snapping” panels that offer a few

other options. The defaults are

usually fine for most users, but if

Page 9: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #97 28 contents ^

Mark uses Inkscape to create threewebcomics, 'The Greys' , 'Monsters,Inked' and 'Elvie' , which can all befound athttp://www.peppertop.com/

HOWTO - INKSCAPEyou find yourself heavily using

grids or snapping, it might be

worth taking a look to see if any of

these settings can improve your

workflow.

With a grid visible and snapping

enabled, you should find it quite

easy to create shapes that stick to

the grid intersections. When you

need to place nodes off the grid,

you can either press the “%” to

disable snapping (whilst leaving

the grid visible) , or more easily (on

a US or UK keyboard, at least) you

can press “#” to turn the grid off

entirely, removing it as a snap

target. Often, however, there's a

requirement to place objects

relative to one another, rather

than to an absolute grid; that will

be the subject of the next

instalment...

NNEEWW SSPPEECCIIAALL EEDDIITTIIOONNSS PPAAGGEE

I t's not perfect, by any stretch of the imagination, but this new page on the site links to the most

popular Special Edition topics. As of writing there are links to GIMP, Inkscape, LibreOffice,

Python and Scribus Special Editions.

http://fullcirclemagazine.org/special-editions/

Page 10: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #98 21 contents ^

HHOOWW--TTOOWritten by Mark Crutch II nnkkssccaappee -- PPaarrtt 3388

O ne common requirement

when creating vector

drawings is to align objects relative

to one another. You might want a

circle that's centered within a

square, or a triangle that touches

the top of the page. A related

requirement is to distribute

several objects evenly, with

identical gaps between each of

them. These types of

arrangements are made easy with

Inkscape's Align and Distribute

dialog.

This dialog can be opened via

the Object menu, the icon to the

right of the main “Commands”

toolbar, or by pressing CTRL-SHIFT-

A. The screenshot was taken from

version 0.91 and has a few minor

differences to the 0.48 version

that's still in many distributions'

repositories: the buttons I 've

outlined in red are new to 0.91 ,

and a few of the other icons have

moved to new positions. For this

article, I ' ll be concentrating on the

Align section at the top of the

dialog, which hasn't significantly

changed between versions.

Let's start with an extremely

simple alignment task: to center a

circle in the middle of a page. Start

by drawing a circle anywhere in the

workspace – it doesn't even have

to be inside the page. Now, with

the circle selected, open the Align

and Distribute dialog and select

“Page” from the “Relative to” pop-

up menu. There's no option to

center both horizontally and

vertically at once, so you have to

click the “Center on vertical axis”

button first, followed by the

“Center on horizontal axis” button

afterwards (or vice versa, if you

prefer) . These buttons can be

found, one above the other, in the

two rows of icons within the

“Align” section of the dialog.

That was pretty

straightforward, right? Now create

three or four circles of different

sizes, each with a stroke but no fill.

Select them all and repeat the

previous steps. If all went well you

should now have a series of

concentric circles all centered on

the page. This example image

shows the “before” and “after”

arrangement of some circles that

were centered in this way:

It's important to understand

that you can align more than one

object at the same time. Usually

this reduces the number of steps

you need to perform, but

sometimes it can be confusing

when an inadvertently selected

object disappears behind a larger

shape that you're trying to align.

When dealing with multiple

objects, you sometimes want to

center the whole arrangement,

whilst keeping the individual

elements in the same relative

positions. One approach is to

group them all first: the buttons in

the dialog will align the group, but

won't descend into it to affect the

individual elements. The same

effect can be achieved by enabling

the “Treat selection as group”

checkbox in the dialog before you

click on the alignment buttons,

saving you the trouble of grouping

and then un-grouping your objects

(see illustration on following page,

top left) .

With “Treat selection as group”

unchecked, let's take a look at

some other possibilities. On either

side of the two centering buttons

Page 11: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #98 22 contents ^

HOWTO - INKSCAPE

you'll find buttons for aligning the

top, bottom, left or right edges of

your objects. In practice, this refers

to the edge of the bounding box

for the objects – either the visual

or the geometric bounding box,

depending on how your Inkscape

preferences are set. Most of the

time this distinction isn't

important, but it can drastically

alter the results when a filter is

applied to your objects and the

visual bounding box is in use.

So far, we've only aligned things

relative to the page. Using the

pop-up menu you can select

various other options. For now

we'll look at “Drawing” and

“Selection Area” (just “Selection”

in 0.48). “Drawing” refers to an

imaginary bounding box that

encompasses everything you've

drawn in your image, whether it's

inside or outside the page

boundary. It stretches from the

left edge of the leftmost object in

your drawing to the right edge of

the rightmost object, and the

equivalent in height. “Selection”,

on the other hand, just refers to

the bounding box that

encompasses all of the currently

selected objects.

In this example, I 've created a

few objects and selected all of

them except for the purple star.

Notice the difference as I use the

“Align left edges” button, first with

the page, then the drawing and

finally the selection.

As well as aligning to the page,

drawing or selection bounding

boxes, objects can also be aligned

relative to one another. To do this

you need to select at least two

objects: one of them will remain

anchored in its original position,

and all the other objects will be

aligned to it. Inkscape offers four

options for choosing which of the

objects will be anchored: the first

object you selected, the last one,

the biggest object or the smallest.

Of these choices I recommend

using only First Selected and Last

Selected. They make it easy to

determine what's going to move,

and what isn't. When trying to

align objects, you've usually got a

good idea of the outcome you're

trying to achieve, so being able to

specify exactly which object is used

as the anchor for alignment is

more useful than some unclear

definition of “bigger” or “smaller”.

For example, suppose you have

a rectangle that you duplicate and

rotate through 90°. Which of the

two is “bigger” and will be used as

the anchor? They're both exactly

the same area, but one is wider

and the other is taller. The answer

depends on what type of

Page 12: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #98 23 contents ^

HOWTO - INKSCAPEalignment you choose: the buttons

on the top row, which move the

objects horizontally, consider the

object with the largest width to be

the “biggest”; the buttons on the

second row, which move the

objects vertically, consider the

tallest object to be the “biggest”.

In this example the red rectangle is

a rotated copy of the yellow one,

and the alignment mode was set to

“Biggest object” before each of

the centering buttons was pressed.

Clearly the use of “Biggest

object” and “Smallest object” can

cause problems and confusion if

multiple objects are the same size,

but it can also be misleading when

an optical illusion leads you to

think that (for example) a dark

object is bigger than a similarly

sized light object. There's a similar

problem when selecting multiple

objects at once, then using “First

selected” or “Last selected”

(Inkscape bases its choice of

anchor on the z-index of the items

in that case), leading to my rules

for aligning objects relative to

each other:

• Use “First selected”.

• De-select everything (click in the

work area, away from any objects –

or use Edit > Deselect) .

• Select the object you want to

align to (the anchor).

• Hold shift and drag a rectangle

over the objects you want to align.

• Add or remove individual objects

from the selection by holding

SHIFT as you click on them.

• Click on one alignment button

from the top row and/or one

alignment button from the second

row to move the objects into place.

With that approach you'll

always be in control of which

objects are moved, and where they

move to. The only variation that I

ever use is when the objects I want

to move are already selected –

especially if it's a complex

selection. In that case it's worth

using “Last selected” and just

holding SHIFT whilst clicking on

the anchor object to add it to the

selection. If the anchor is already

selected, you can SHIFT-click to de-

select it, then do the same again to

re-select it, thus making it the last

selected object.

When using First/Last/

Biggest/Smallest you should note

that the behaviour of the “Treat

selection as group” checkbox

changes somewhat – often in a

counter-intuitive way. In these

modes, the anchor object has to be

part of the group, so you might

expect it to move along with

everything else in order to

maintain the relative positions of

objects (as we saw when using the

Page/Drawing/Selection modes).

What actually happens, however, is

that the anchor object remains

stationary and all the other

selected objects move as though

they're grouped. In other words it

becomes a “treat selection as

group, except for the anchor

object” checkbox.

Furthermore, the effect of this

checkbox changes depending on

the layout of your objects. In this

example, I 've drawn three red stars

and one green circle, arranged per

the top image. Using “First

selected” mode I click on the circle,

then hold SHIFT and drag a

rectangle over the stars. Ensuring

that “Treat selection as group” is

checked, a click on the “Center on

vertical axis” button should move

the stars, keeping the circle in

place. Logic might suggest that I ' ll

end up with the second image, but

actually what I get is the third one.

What's going on?

It's our old friend the bounding

box at play once more. Consider

the bounding box of the first

image – it's the total width of the

stars plus the circle. When

centering the selection, it's this

bounding box that's used for the

calculation, even though the circle

won't be moved with the other

objects. The result is that the stars

are moved so that the center of

the original bounding box is

centered with the circle, even

though doing so results in a

smaller bounding box afterwards.

There are two solutions to this

dilemma: the most obvious is to

group the stars then align the

group to the circle with the “Treat

selection as group” checkbox un-

ticked. This turns a complex

Page 13: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #98 24 contents ^

Mark uses Inkscape to create threewebcomics, 'The Greys' , 'Monsters,Inked' and 'Elvie' , which can all befound athttp://www.peppertop.com/

HOWTO - INKSCAPEarrangement of four objects into a

simpler problem involving just two

– the circle and the group. It's the

approach I used to produce the

second image in the example. The

other alternative is to click the

“Center on vertical axis” button a

second time: after the first press,

the new bounding box is only as

wide as the stars, so aligning again

(with the checkbox enabled)

results in the expected behaviour.

With everything you've read so

far, you should be able to

understand the behaviour of most

of the alignment buttons in the

dialog, but there are two that defy

the rules: the last button on each

row is purely used to align text

objects.

These buttons align text objects

to the vertical or horizontal

baseline of other text objects.

They ignore any non-text objects in

the selection, pay no attention to

the state of the “Treat as group”

checkbox, and don't even honour

the “Relative to” pop-up. If you're

using Inkscape for some simple

desktop publishing work – perhaps

creating a poster or flyer – then

they can be used to ensure that

different sections of text adhere to

the same baseline (the line that

runs under the text, ignoring any

descenders such as the tail on a

“y”) . This can give a more

professional appearance. An

alternative approach is to drag out

a guide from the ruler (see part

1 6) , enable snapping, and activate

the “Snap text anchors and

baselines” option. Regardless of

your method, if you use multi-line

text, then it's only the baseline of

the first line that is snapped or

aligned to, preventing completely

separate pieces of text from easily

sharing the same “baseline grid” as

you might in a proper DTP program

such as Scribus.

Perhaps the most important

thing to remember about aligning

in Inkscape is that, however you

align your objects, if you end up

with an alignment you're not

happy with, simply press CTRL-Z or

use Edit > Undo to reverse the

action. There's logic to alignment

in Inkscape – even if that logic

doesn't always produce the

outcome you might initially expect.

Page 14: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #99 21 contents ^

HHOOWW--TTOOWritten by Mark Crutch II nnkkssccaappee -- PPaarrtt 3399

L ast time I introduced the Align

and Distribute dialog, but went

only as far as describing the Align

part. This time I 'll continue – not

only onto the Distribute section,

but down through the remaining

sections of the dialog as well. Let's

start with a reminder of what the

dialog looks like, noting that

there's been a little rearrangement

of the buttons between 0.48 and

0.91 , and the ones outlined in red

are new to 0.91 .

Much like the Align section, the

Distribute part of the dialog is split

into two rows of buttons,

governing horizontal and vertical

distribution, respectively. Using

these, you can distribute a number

of objects so that they're spaced

evenly along the horizontal axis or

the vertical axis. If you want to

distribute along both axes – to

create a staircase effect – you'll

need to press a button from each

row in turn.

As you might expect, the

objects to be distributed are the

ones that are selected on the

canvas. Selection order doesn't

matter, and you can't choose the

anchor objects: everything is

calculated implicitly from the

positions of the elements. When

distributing horizontally, for

example, the objects furthest to

the left and right will be left in

place, with all the others being

distributed between them. For

vertical distribution, the rules are

the same, except with the highest

and lowest (by y coordinates)

being left in place.

What this means, in practice, is

that you need to get your first and

last objects into the right place

before trying to use these buttons.

Often that involves snapping to

the grid, or aligning to another

object as described last time. Only

once those are in the right

locations should you select all the

objects you want to distribute –

including the first and last ones –

and then click on one of the

buttons.

The difference between each of

the buttons is quite well

represented by their icons.

Considering each of the five

buttons in the first row (I 'm sure

you can infer the equivalent

functions for the second row), the

buttons move your selected

objects so that:

• The left edges of their bounding

boxes are evenly distributed

• The centers of their bounding

boxes are evenly distributed

• The right edges of their

bounding boxes are evenly

distributed

• The space between each

bounding box is evenly distributed

• The space between baseline

anchors of text objects is evenly

distributed

That last one probably needs a

little more explanation. Much like

the text alignment buttons

mentioned in the previous

instalment, these two text

distribution buttons work only

with a selection of text objects.

When you edit text in Inkscape,

you may notice a small square

below the text you enter. This is

the baseline anchor, and its

position varies depending on the

text justification. These buttons

move your text objects so that the

baseline anchors are evenly

distributed. Before rushing to use

these buttons to distribute your

text, however, do consider

whether that's really what you

want: usually the previous button

(even spaces between objects)

gives a better result.

Often you'll find that the

difference between distribution

options is negligible, especially

when the objects are all similarly

sized. When you start to distribute

Page 15: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #99 22 contents ^

HOWTO - INKSCAPEdifferently sized elements,

however, the differences can be

significant, as you can see from the

image shown below.

Continuing downwards, the

layout of the dialog diverges

between versions 0.48 and 0.91 .

For the latter, the next section of

the dialog is labelled as

“Rearrange”, and consists of six

icons of varying provenance:

• Arrange Connector Network:

Moved from the “Connector

network layout” section in 0.48

• Exchange positions, selection

order: New to 0.91

• Exchange positions, stacking

order: New to 0.91

• Exchange positions, clockwise

rotate: New to 0.91

• Randomise centers: Moved from

the “Distribute” section in 0.48

• Unclump objects: Moved from

the “Distribute” section in 0.48

The first of these works only if

your selected objects form a

network that was created with the

Connector tool (see part 27 of this

series for more details) . It's just a

duplicate of the same button in the

Connector tool controls – except

that this one offers fewer settings.

My advice is to use the dedicated

connector toolbar if you need this

functionality, but really you're

better off using a different

application altogether for anything

more than a trivial connector

layout.

Have you ever wanted to swap

the positions of two objects? To

move the left one to the right, and

the right one to the left, for

example? In that case the three

new buttons in 0.91 are for you.

With two objects selected, their

positions will be swapped, but if

you have more than two things

selected then the first moves to

the position of the second, the

second to the third, the third to

the fourth, and so on. The last

moves to the position of the first.

But what determines which

object is first, second or third?

That's simply down to which

button you click. The first button

bases it on which order the objects

were selected in – so it's best to

hold shift and click on each one

individually to ensure you know

the selection order. The second

button uses the stacking order, or

z-index, of the selected objects.

The one on top is moved to the

position of the one beneath it.

That moves to the position of the

one beneath that, and so on down

the stack. The bottom object is

moved to the position of the

topmost item. Note, however, that

it's just the positions that are

changed, not the z-indexes, so the

stacking order remains the same.

The final button swaps the

positions of the selected objects in

a “clockwise” direction, based on

the x and y coordinates of each

object.

Whilst these buttons are a

welcome addition, I hope that their

functionality will be expanded

further in a future release. There's

no option to reverse the order, for

example. If you want to rotate 1 00

objects one step anti-clockwise

you currently have to do it by

clicking the clockwise button 99

times!

The “Randomise centers”

button does exactly as its name

suggests. Click it and your selected

Page 16: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #99 23 contents ^

HOWTO - INKSCAPEobjects are randomly moved

around. This may be useful if

you've used the Spray tool or Tiled

Clones dialog to create a lot of

objects that you then want to

randomly distribute – but the same

effect can often be better

achieved by using the Randomise

fields in the Tiled Clones dialog, or

with the Tweak tool (see part 22).

The final button in this section

is described as “Unclump objects”.

In practice, it moves your objects a

little in order to more evenly space

the edge-to-edge distances. You

can apply it repeatedly, but it will

eventually reach equilibrium. It can

be useful for neatly arranging

objects in two dimensions – think

of it as a 2D equivalent to the

“equidistant spacing” buttons in

the Distribute section. Be careful if

your objects overlap too much, as

it can tend to pull them all

together into a single pile rather

than separating them out – the

exact opposite of “unclumping” in

my book!

In fact, separating objects out is

really the job of the last section in

this dialog: Remove overlaps. The

spinboxes allow you to specify the

minimum distance between

bounding boxes in both horizontal

and vertical directions, whilst

clicking the button at the right will

actually perform the operation.

You can use the H and V

parameters to push your objects

further apart by setting them to

values greater than 0 (in pixels) .

You can also enter negative values,

but doing so won't pull your

objects closer together: because

this is the minimum spacing, it

simply means that already

overlapping objects can continue

to overlap to some degree. Do

note that the calculations are

based on the rectangular bounding

boxes, though, so if you're working

with objects such as circles you can

sometimes find that their

movements aren't what you

expected. Take a look at the

bounding boxes to see what really

happened.

If you look again at the

screenshot of this dialog, you

might be forgiven for thinking that

I 've covered all of it, but that's only

because you've been misled by a

slight oddity in this dialog. On first

opening it, there's a section at the

bottom labelled “Nodes”, with four

additional buttons – as seen in last

month's screenshot. As you start to

select objects, however, that

section disappears from sight. In

practice, it's still available, but only

when you switch to the Node tool

in the main toolbar. On doing so,

the dialog changes completely to

just show this:

To use this mode, you must first

select some nodes using the Node

tool. You can even select nodes

from multiple different paths, if

you wish. Clicking on the first

button will align the nodes along a

single horizontal line that lies

halfway between the top and

bottom of the nodes' bounding

box . The second button does the

same trick along the vertical axis.

There's no option to align to the

top, bottom, left or right of the

box, nor to the first node selected.

If you need a specific alignment

then the best approach is to set a

guide at the right place, align

horizontally or vertically, then drag

the still selected nodes to the

guide, preferably with snapping

enabled.

Clicking both of the alignment

buttons in succession is a quick

way to collapse all the nodes down

to a single point, and can be

particularly useful for ensuring

that nodes from different paths

are co-located, such as when trying

to fake the appearance of a

connection between more than

two paths at a single point.

Unfortunately all the selected

nodes move, with no option to use

one as an anchor point, so, whilst

it's a quick way to co-locate them,

it's not so useful if you need them

at a specific position. It's also

important to note that this is just a

visual effect – there's no native

support for co-located nodes in

SVG – so you have to take care to

select all the relevant nodes if you

need to move them later.

Page 17: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #99 24 contents ^

Mark uses Inkscape to create threewebcomics, 'The Greys' , 'Monsters,Inked' and 'Elvie' , which can all befound athttp://www.peppertop.com/

HOWTO - INKSCAPE

The last two buttons in Node

mode distribute the selected

nodes evenly. Like the equivalent

tool for objects, they are

distributed between the nodes

that are positioned furthest to the

left and right (or top and bottom

for vertical distribution).

That concludes our tour of the

Align and Distribute dialog. It may

not offer all the options of a fully-

fledged CAD application, but once

you get used to the features it

does have, it can quickly become

an invaluable addition to your

toolbox. If you want to produce

good looking diagrams with evenly

spaced, neatly-aligned content, it's

well worth spending a little time

becoming familiar with its

capabilities.

PYTHON SPECIAL EDITIONS:

http://fullcirclemagazine.org/issue-py01 / http://fullcirclemagazine.org/issue-py02/

http://fullcirclemagazine.org/python-special-edition-issue-three/

http://fullcirclemagazine.org/python-special-edition-volume-four/

http://fullcirclemagazine.org/python-special-edition-volume-five/

http://fullcirclemagazine.org/python-special-edition-volume-six/

Page 18: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 37 contents ^

HH OOWW--TTOOWritten by Mark Crutch II nn kkssccaa ppee -- PPaa rrtt 4400

T o celebrate the incredibleachievement of 1 00 editions of

Full Circle Magazine, I 'm going totake a break from the usualtutorial format, and instead list1 00 useful tips for working withInkscape. Some of these havepreviously been mentioned in thisseries, others have yet to becovered – whilst there are a fewthat would probably never haveseen the light of day if it wasn't forthis celebratory change of style.

INSTALLING INKSCAPE

1 . The easiest way to getInkscapeonto a Linux machine is simply toinstall it from your distro'srepositories. This may still get youversion 0.48.x, but for mostpeople, that's probably goodenough to work with until yournext major distribution upgrade.

2. The version after 0.48.x is 0.91– there was a jump in versionnumber to give a better indicationof how well developed theprogram is. If you want to get 0.91onto an older Debian or Ubuntubased distro, your best bet is to

install from the InkscapeDeveloper's PPA:https://launchpad.net/~inkscape.dev/+archive/ubuntu/stable

3. If you need to use Inkscape ona Mac, make sure you check outthe official FAQ first as the needfor XQuartz on OSX throws up afew issues.

4. If you usually use a laptop youmight be tempted to try using thetrackpad with Inkscape. Whilst youmight get away with it for smallcreations or edits, for any seriouswork with Inkscape you really needa mouse with at least two buttonsand a clickable scroll wheel.

5. Equally you might think that agraphics tablet would be a goodpurchase, but you really should trybefore you buy. Whilst a tablet canbe a real boon for some graphicsprograms, such as GIMP, Krita orMyPaint, the vector nature ofInkscape makes a tablet far lessuseful than you might expect. Forsome calligraphic styles it maywork well, but if you just want todraw something freehand it's

probably easier to use a pencil andpaper, then scan your work andtrace over it manually.

6. Another one for laptop users:Inkscape's easier to use with a full-sized keyboard. Some of thekeyboard shortcuts use thenumeric keypad, making themrather inconvenient on a cut-downkeyboard.

7. That said, version 0.91 doesallow you to configure thekeyboard shortcuts much moreeasily than earlier releases, so,

with a bit of work, you might beable to get away with a smallerkeyboard. Head to Edit >Preferences > Interface >Keyboard Shortcuts, then click onthe shortcut you want to changeand press the new key combinationyou want to use.

THE BASICS

8. Keep an eye on the status bar!This is perhaps the most importanttip for using Inkscape, as it notonly tells you what you'vecurrently got selected, but also

Page 19: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 38 contents ^

HOWTO - INKSCAPEoffers details about the variouskeyboard modifiers you can usewith each tool.

9. Use the context menus on thestatus bar widgets for fast accessto some commonly used optionsand defaults.

1 0. The spinboxes on the toolcontrol bar also have usefulcontext menus. Unfortunately thespinboxes inside dialogs tend to beless useful.

1 1 . In 0.91 you can do simplearithmetic inside spinboxes, savingyou from having to perform thecalculations elsewhere and copy

the results in.

1 2 Can't see an object when youdraw it? Start by checking thefollowing:• That your fill and/or stroke bothhave a color, and aren'ttransparent.• That your stroke has somethickness to it.• That your layer is opaque.View with filters off (see the

“Filters” section), in case you'veblurred it away to nothingness.• Is it a circle or arc? Make surethe arc handles are far enoughapart.• Check the object dimensions –perhaps it's just very, very small.

This can happen if you accidentallyrelease the mouse button whilstdragging.• Did you draw it inside an alreadyclipped group?

1 3. If you've lost your objectentirely, use View > Display Mode >Outline to see everything, eventransparent objects, as simpleoutlines.

1 4. Use the area outside the pageboundary. Objects placed herewon't appear on screen if your SVGis loaded into a web browser, andit's easy to omit them whenexporting to a PNG, so this is agood place to keep temporarynotes, copies of objects that youmight need again, or just to use asa scratch-pad. I find it to be a greatplace to hide the Easter Eggs in mycomics!

KEYBOARD SHORTCUTS

1 5. The keyboard shortcutpreferences of 0.91 offer a usefulway to view the existing shortcuts.For a more comprehensiveoverview, or for 0.48 users, use thereference document here:https://inkscape.org/en/doc/keys.html – it's from version 0.46, but

almost everything still applies tothe more recent versions.

1 6. If you're using Linux andfinding that the whole windowmoves when you try to ALT-drag anobject, try holding the Windowskey down as well.

1 7. Don't work at full-screen size.Reduce the size of the window tospeed up redraws, especially whenusing filters. Undock dialogs tomake this more practical.

1 8 Selecting an object alsoswitches the active layer – use thisas a quick way to draw somethingon the same layer as an existingobject.

1 9. Use the CTRL key to “control”your movements:• When drawing, to keep tointeger ratios. This is the easiestway to draw circles and squares.• When moving objects or nodes,to only move horizontally orvertically.• When rotating or skewing, toonly move by fixed amounts, as setin the preferences.• When scaling, to scaleproportionally.• CTRL + drag up/down using thestar/polygon tool to get properly

Page 20: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 39 contents ^

HOWTO - INKSCAPEaligned shapes.• Use CTRL+Mouse Wheel toquickly zoom in and out, regardlessof which tool is currently selected.

20. If you really want fine controlof the zoom level, use the inputfield at the far right of the statusbar.

21 . Press and hold Q to quicklyzoom any selected objects to fillthe window. With the objectzoomed, focus a different windowor dialog and release the Q key to“fix” the zoom at that level. Onceback in the main window, make theedits you need to, then just tap theQ key to zoom back out again.

22. Use a middle-click (on themouse wheel) to pan. Combinedwith the zooming tips above, thiswill help you navigate around yourcanvas in record time!

23. Press the spacebar to quicklytoggle modes from your currenttool to the selection tool and back.Be careful on 0.91 , though, wherethe default “spacebar activatespan” setting interferes with thisunless your mouse is absolutelystationary.

24. Whilst dragging an object

around, press the spacebar tostamp a copy of it. Unfortunately0.91 's pan setting also interfereswith this. Again, make sure themouse is stationary first.

25. Use the cursor keys to moveselected objects around. Hold ALTto move by smaller amounts. Mostusefully, hold SHIFT to move insteps that are independent of yourzoom level. This means you canmove an object “out of the way”,then zoom in to tweak it, beforemoving it back by the sameamount, knowing it will end up inits original position.

26. Use the “<” and “>” keys toscale objects, or “[“ and “]” torotate them. Hold ALT to scale orrotate by a smaller amount.

GUIDES

27. Create guides by draggingfrom the rulers. Drag from theends of the rulers, for a guideangled at 45°.

28. Move a guide by dragging itwith the mouse. Rotate it byholding SHIFT while dragging.

29. Double-click on a guide to

bring up a dialog that lets youmake fine adjustments.

30. Delete guides using thisdialog, or by simply moving themouse over the guide until itchanges color, then pressing thedelete key. There's also an Edit >Delete all Guides menu on 0.91 .

31 0 With 0.91 you can change thecolor of a guide, and even give it alabel.

32 You can quickly show and hideall guides using the “|” key.

33. You can also create guidesfrom objects by selecting theobject then using the Object >Objects to Guides menu entry. Thisdoesn't delete the original objectand is especially useful if you need

to match an odd angle in yourdesign.

34. Edit > Guides Around Pagedoes the same for the pageoutline, putting the guide originsat the four corners. This is handy ifyou want to create a backgroundrectangle that exactly matches thepage size: just enable snapping toguides and off you go.

GRIDS & SNAPPING

35. You can create multiple gridsvia File > Document Properties >Grids. They can be eitherrectangular or axonometric(angled, allowing for isometric andoblique grids) . If you need polar orlogarithmic grids, however, you'llhave to fake it using the options inthe Extensions menu.

36. You can show or hide thecurrently active grid(s) by pressingthe “#” key. When the grid ishidden it isn't used for snapping.

37. If you do want to turn offsnapping entirely, you can toggle itwith the “%” key.

38. Don't enable too manysnapping options at once: it makes

Page 21: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 40 contents ^

HOWTO - INKSCAPEit tricky to draw as the imagebecomes more complex and full ofpotential snap points.39. Use File > DocumentProperties > Snap to adjust howfiercely snapping is applied. With0.91 there are also a few extracheckboxes to allow for snappingto clipping and masking paths,without you having to releasethem first.

PATHS

40. Get familiar with paths.They're the basic unit ofconstruction in Inkscape – justabout any other object can beconverted to a path via the Path >Object to Path or Path > Stroke toPath menu options. Rememberthat this is a one-way conversion,so keep a copy if you'll need to editthe original.

41 . When drawing paths with theBézier tool, use single clicks toroughly outline the shape youwant with individual nodes, thenadjust the curves afterwards. It's alot easier than trying to drag eachpoint to bend the path as you goalong.

42. Use Boolean operations to

construct complex shapes out ofsimpler ones.

43. Can't bend a path? One orboth of the handles missing?Holding SHIFT will let you drag thehandle out of the node. If you stillcan't bend it, check that you don'thave the Spiro live path effectpresent (Path > Path Effect Editor) ,as this significantly affects the waythat paths can be manipulated.

44. You can select multiple nodesby dragging a selection rectangleover them, by SHIFT-clicking onindividual nodes – or a combinationof both. You can also select nodesfrom more than one path at a time,which can sometimes beinvaluable.

45. Click a path segment to selectthe nodes at either end. SHIFT-clickpath segments to add pairs ofnodes to your selection.

46. Select the nodes at the end ofa path segment then press theINSERT key, or SHIFT-I , to create anew node in the middle. Theoriginal nodes and the new ones allremain selected, so you can pressINSERT multiple times to quicklycreate a large number of newnodes.

47. You can rotate nodeselections using the “[“ and “]”keys. Hover over a node – even onethat's not selected – to use it asthe center of rotation. If you wantto rotate about the center of theselected nodes, make sure yourmouse pointer is not hovering overany other node.

48. The “<” and “>” keys also workon node selections.

49. For a different take onrotating and scaling nodeselections, enable the “Showtransformation handles forselected nodes” button on the toolcontrol bar. This will give youhandles like those of the selectiontool, but applying to the selectednodes rather than whole objects.Just like the selection handles,clicking an already selected nodewill toggle between the scalemode and rotate & skew.

50. Hold CTRL-ALT when moving anode to move it along the pathitself. Unfortunately it works withonly straight path segments, butdoes work with multiple nodesselected – they'll all move in thesame direction as the one you'redragging. This is great for changing

the size of a path without affectingits angles.

51 . With multiple nodes selected,hold ALT when dragging one ofthem and the others will move by aproportional amount, based ontheir proximity to the node you'removing. This can best be seen byputting lots of nodes on a path,selecting all of them, then ALT-dragging a node near the center.

CLIPPING AND MASKING

52. Use clipping to constrainan object or group to the shape ofa clipping path, with a hard edge.

Page 22: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 41 contents ^

HOWTO - INKSCAPEThis can be used to simulate anobject disappearing belowanother.

53. When clipping, always convertprimitive clipping shapes, such asrectangles or circles, into pathsfirst. That way you can use nodeediting to modify the shape of thepath without having to release the

clip, making it easier to make fineadjustments.

54. Unfortunately the SVGstandard has no option for an“inverse” clipping path. Instead youhave to do the job by hand: createthe path you want, then use theBoolean “Difference” operation toremove it from a rectangle that

covers the whole object. That givesyou a rectangle with your path cutout of it, which you can then use toclip your original object.

55. Use masking, rather thanclipping, where you want a softedge or to affect the opacity of themasked object. Unfortunately youhave to release the mask to makeadjustments.

56. Masks are based on grayscalevalues from 0 (black) to 255(white). Use gradients from whiteto transparent instead, to get abetter idea of the effect you'llhave. The transparent parts of themask will become transparent inthe final image, the white parts willbe opaque. This makes it slightlycounter-intuitive, because the bitsyou can see through the mask willdisappear, and the bits you havecovered up will be visible, but it'sstill easier than working with ablack and white mask thatcompletely obscures the drawingbelow.

57. You can use clipping andmasking on bitmap images tocreate interesting shaped pictures,or to crop them to a specific size.

58. Group each image before you

do this, then you can enter thegroup and move it around afterclipping in order to adjust theposition.

WORKING WITH BITMAPS

59. Always link your images,rather than embedding them. Ifyou want to embed to redistributethe file, use Extensions > Images >Embed Images... to convert thembefore saving the file with anothername.

60. Right-click on an image andselect Image Properties from thecontext menu. Edit the URL to arelative path if you want toredistribute your work, or even justmove it around on your hard drive.In other words, if you want to use“picture.png” in your drawing, putit into the same directory as theInkscape file, then drag it into yourediting window. Edit the URL tojust read “picture.png” instead ofthe full path, and it will continue towork provided it's kept in the samedirectory as the SVG file.

61 . Try to use high-resolutionbitmaps scaled down, rather thansmall ones scaled up, if you can. Itgives Inkscape more data to work

Page 23: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 42 contents ^

HOWTO - INKSCAPEwith if you want to export yourfinal design.

62. When exporting PNG files,always use File > Export Bitmap(File > Export PNG Image in 0.91 ) ,not Save As... Cairo PNG. The latterloses transparency and sometimesintroduces other issues into theexported file.

CLONES

63. If you have lots of identicalobjects in your image or design,using clones can significantlyreduce your file size. It also meansthat you can modify all of them atonce, simply by changing theoriginal.

64. Keep an eye out for situationswhere you can break your objectsdown into smaller sub-units, thenonly clone certain parts. Whendrawing comics, I 've found this tobe a quick way to producecharacters in similar poses whereonly the head or mouth changes.

65. If you've created lots of tiledclones, you can easily unlink themby just deleting the original. Thisrequires your preferences to beset so that deleting the original

unlinks the clones, rather thandeleting them.

66. If you're having troubleselecting the original object, selecta clone if it and press SHIFT-D.

67. Transform your clones thenclip or mask them to providesimple “zoom” or “pan” effects.

68. Group objects before cloningif you want to clip the original.Apply the clip to the group and youcan still enter the group to clonethe full-sized, unclipped versionwithin it. Then just cut and pastethat clone outside the group towherever you want it.

69. You can move clones betweenlayers. Cut them from one layerand paste into another, or justselect them and use SHIFT-PAGEUP/DOWN.

70. If you want to copy clones toanother drawing, group themtogether with the original first,otherwise you'll just end uppasting an “orphan clone”.Alternatively you can use Edit >Clone > Unlink Clone to turn theminto real copies first.

TEXT

71 . When creating text, makesure you click once on the canvas,then type. Don't click-and-drag abox. The latter creates “flowedtext” which has compatibilityissues if you're using your imageoutside of Inkscape.

72. If you do create flowed text,use Text > Unflow beforedistributing your image.

73. Select characters, or put thetext cursor between them and useALT plus the usual keys to move(arrow keys) and rotate (“[“, “] ”)parts of the text.

74. To ensure that your imageappears exactly as you expect it toon other people's machines,regardless of the fonts they have,convert text to paths using Path >Object to Path. This will result in agroup of paths, one for eachindividual glyph.

75. If you want a singlecompound path, select the textand use Path > Union (CTRL-+).

76. To put text onto a path, selectboth, then use Text > Put on Path.

Use Path > Reverse to switch thetext between the “inside” and“outside” of the path.

77. Don't use Inkscape's SVG FontEditor. Unfortunately the SVG Fontformat never became mainstream,and even more peculiarly it's notsupported by Inkscape. Yes, theInkscape developers wrote aneditor for a font format that youcan't actually use in Inkscape!

FILTERS

78. Filters are part of the SVGstandard, and can be used tointroduce textures and effects thatjust aren't possible with purevectors. Creating your own filtersis confusing but the program doescome with a good selection ofpredefined filters that are worthexploring.

79. Each filter consists of a chainof effects, each with its ownparameters. If you add a filter to anobject, then add another, theindividual chains of both effectswill be combined to create a longerchain. You can't easily remove oneof the filters after that'shappened, so when auditioningfilters, remember to apply one,

Page 24: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 43 contents ^

HOWTO - INKSCAPEthen undo before applying thenext one.

80. If you do want to use multiplefilters, but still keep the chainsseparate, group your objectsbetween each filter. In otherwords, group the objects and applyfilter one, then group the resultand apply filter two to that group,

then group the result... and so on.

81 . Filters slow rendering down –sometimes quite significantly. Usethe different options in View >Display Modes to regain somespeed if you don't need to see thefiltered objects all the time. If youcan put the filtered objects ontoanother layer, you can speed things

up by hiding that layer temporarily.

82. If you want to regain somespeed, but still see a filtered objectfor reference, use Edit > Make aBitmap Copy to create a bitmap“snapshot” of your object. Thenyou can use the “No Filters” displaymode and use the bitmap as atemporary reference point.

83. With 0.91 came the ability forpredefined filters to prompt forparameters, making it possible forthe filter creator to expose themain settings to the user. As aresult, some 0.48 filters look likethey've disappeared, but haveactually just been groupedtogether into a single filter withparameters.

84. Many filters have a LivePreview checkbox. You shouldalways use this to see what theresult of the filter will look likebefore you commit. The “live”nature means that it can slowthings down, especially when youwant to tweak lots of parameters,so in that case you can uncheck it,change the values, then check itagain when you're done to seewhat effect your changes will have.

SAVING YOUR WORK

85. Use File > Vacuum Defs (0.48)or File > Clean Up Document (0.91 )before saving, to remove behind-the-scenes fragments of SVG thatare no longer used in yourdocument. You should definitelydo this before sending the file onto anyone else.

Page 25: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 44 contents ^

HOWTO - INKSCAPE86. Are you distributing your fileto other people? Use File >Document Metadata (0.48) or File> Document Properties >Metadata (0.91 ) to set metadatasuch as the drawing's title or a listof contributors' names.

87. Save as Plain SVG if you wantto put a file online without all theInkscape metadata. Save anInkscape copy as well, though, incase you have to edit it later.

88. If file size is a concern, save asOptimised SVG. It loses someprecision, but probably nothingyou'll notice unless you've drawn areally tiny image. In exchange itcan reduce the file sizeconsiderably. If you need to do thisfor lots of images, use the “Scour”utility fromhttp://codedread.com/scour/

89. To save storage space on yourserver or desktop, use thecompressed (svgz) save options.The files will be identical to theoriginals, but gzipped. Thedownside of this is that not all filemanagers will show previews forsvgz files, and Firefox won't loadthem directly from disk (it will loadthem from a web server, though).

90. When saving to other vectorformats, such as PDF, make sureyou convert your text to outlinesfirst. Do this manually, rather thanjust using the checkbox in theexport dialog, as the latter doesn'talways produce the right resultswith some fonts.

USING SVGS ONLINE

91 . If you want to keep the filesizes down on your web host, youmight choose to serve compressed(svgz) files. Unfortunately thedefault configuration for most webservers doesn't deal with themcorrectly. Try it out, and badgeryour ISP if it doesn't work. If theywon't fix it globally then, forApache at least, you can get it towork by putting these two linesinto a .htaccess file on your host:

AddType image/svg+xml svgsvgz

AddEncoding gzip svgz

92. If you've got plenty of spaceon your host, however, it'sprobably not worth trying to servesvgz files. Most web servers willgzip files on-the-fly, so this formatis good only for keeping storagespace and server load down, rather

than reducing bandwidth.

93. Are you creating SVGs forWikipedia or other mediawikibased sites? Use Wikimedia's SVGCheck tool to test for commonproblems first. This can also beuseful for general checking ofSVGs prior to putting them online.https://commons.wikimedia.org/wiki/Commons:SVG_Check

94. If you're a web developer,take a look at the structure of asimple SVG file. It's an XML format,which opens it to manipulation inthe browser using the usualJavascript DOM calls. This lets youinsert, remove, move or modifyparts of your SVG imagedynamically. If you haven't donemuch work with XML before, youmight need to read up on XMLnamespaces – and use thenamespace-aware versions of theDOM calls – in order to get thingsworking correctly.

95. SVG supports a standardcalled SMIL for animation.Unfortunately this is being phasedout in some browsers, and wasnever supported in InternetExplorer. There's work on a moregeneral web animation frameworkto replace it, but it's not ready yet.

If you need to animate an SVG fileright now, Javascript is the bestcross-platform way to do it.

FURTHER INFORMATION

96. Obviously one of the bestways to learn about Inkscape is toread all the tutorials in Full CircleMagazine. Another option is theofficial Inkscape manual, writtenby Tavmjong Bah, Inkscapedeveloper and member of the W3CSVG working group. Unfortunatelyit hasn't been updated for 0.91 yet,but almost all the content is stillrelevant. You can read it online athttp://tavmjong.free.fr/INKSCAPE/but it's also available in dead-treeformat if you prefer.

97. There are some greatcommunity resources for Inkscape,but I 'm going to call out three inparticular:• http://www.inkscapeforum.com

– a friendly and helpful forum, withsome extremely experiencedInkscape users.• http://inkscapecommunity.com

– frequented by many of the samepeople as above, but betterorganised if you're looking fortutorials, guides or referencematerial.

Page 26: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 00 45 contents ^

Mark uses Inkscape to create threewebcomics, 'The Greys' , 'Monsters,Inked' and 'Elvie' , which can all befound athttp://www.peppertop.com/

HOWTO - INKSCAPE• http://www.inkscapeforum.it – anItalian forum, but with a smallinternational section. There areother localised Inkscapecommunities around the globethough, so if English isn't your firstlanguage, do search to see if

there's already something in yournative tongue. If not, why not starta site yourself?

98. A bit of a blatant plug, but atmy own site, www.peppertop.com,you can find over 200 comic strips,

all of them at least partly createdwith Inkscape. You can evendownload the source to most ofthem, so you can see how some ofthese tips and tricks have beenused in practice. Every Greys striphas at least one Easter Egg hidden

in it somewhere, usually to befound by opening the Inkscape fileand investigating. How many canyou find?

99. Do you know your way roundC++ or Python? Why not considerbecoming an Inkscape developer inyour spare time. Seehttps://inkscape.org/en/develop/for more details.

1 00. Not a developer, but stillwant to help? There are other waysto contribute, seehttps://inkscape.org/en/contributefor details. Don't forget that youcan also make a financial donation.

Page 27: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 01 24 contents ^

HHOOWW--TTOOWritten by Mark Crutch II nnkkssccaappee -- PPaarrtt 4411

A fter last month's special

celebratory detour, we return

to finish the subject of aligning and

positioning objects in Inkscape.

We've already seen a variety of

approaches, from grids and

snapping through to tiled clones

and the Align and Distribute

dialog, but we still have two

dialogs to consider. They both live

near the bottom of the Object

menu: “Transform...”, and

“Arrange...” (“Rows and Columns...”

if you're still using 0.48.x) .

The Transform dialog provides a

more precise approach to moving,

scaling, rotating and skewing

objects when compared with

simply dragging the selection

handles using the mouse. In the

world of SVG, every object can

have a transformation applied to

it. Rotate or skew an object, then

look at it in the XML editor and

you'll see that there's no obvious

“rotate” or “skew” attribute, but

rather a single “transform”

attribute which holds a matrix that

defines the cumulative effects of

any transformations you may have

applied. The details of this matrix

are a little too mathematically

intense for this series, but it's

enough to know that each object

can have its own matrix applied,

and that a single matrix can

combine the effects of moving,

scaling, rotating and skewing into a

single set of numbers. The

Transform dialog is essentially a

more user-friendly way of

tweaking that matrix.

On opening the dialog from the

menu, or using the CTRL-SHIFT-M

shortcut, you'll be presented with

a simple interface featuring a

handful of tabs, each with just a

few fields. This dialog has seen

little change between 0.48 and

0.91 .

The fields on the Move tab

allow you to move your selected

objects by a specific distance,

when the “Relative move”

checkbox is enabled. Disable this,

and you can move your objects to

absolute x and y coordinates. In

addition, the current absolute

coordinates are displayed in the

fields. With 0.91 , just about every

spinbox in Inkscape lets you enter

simple calculations, so there's a

good argument for never enabling

this checkbox in that version. Want

to move your shape 50 pixels to

the right? Just append “+50” to the

number in the “Horizontal” box,

then hit Return and watch the field

update with the newly calculated

value.

Positions and movements are

based on Inkscape's own

coordinate system which has the

positive y axis running upwards

from the bottom of the page

(remember, this is the opposite of

SVG's coordinate system, which

has the origin at the top left, with

the positive y-axis running

downwards). Similarly, the

selected objects are placed such

that the bottom left corner of the

bounding box is at the specified

coordinates, with no option to use

a different corner, or even the

center of the box as the reference

point.

The “Apply to each object

separately” checkbox is effectively

the opposite of the “Treat

selection as group” checkbox in

Page 28: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 01 25 contents ^

HOWTO - INKSCAPEthe Align and Distribute dialog. If

you select multiple objects and

leave this un-checked, then the

transformation will be applied as

though all the objects were

grouped. With it checked, each

object is individually transformed.

When relatively moving things,

there's little difference, but, for an

absolute move, it results in all the

items being placed at the same

position on the page. It's also

particularly relevant when using

the other tabs, where the results

can differ significantly due to the

state of this checkbox. Consider

the Rotate tab: there's a huge

difference between rotating a

group of separate objects and

rotating each object individually.

The Scale, Rotate and Skew

tabs in this dialog really need no

additional explanation as the fields

are all straightforward to

understand. It's important to note,

however, that only the current

tab's values are used when the

Apply button is clicked. You can't

queue up a collection of

movement, rotation and skewing

to apply as a single operation, but

instead have to press the button

with the Move tab to the fore, then

again with the Rotate tab selected,

and so on.

On the subject of the Rotate

tab, there has been a slight change

with version 0.91 : this release adds

buttons to determine whether

rotations should be clockwise or

anti-clockwise. The corresponding

field accepts both positive and

negative values in either release of

Inkscape, so the buttons just make

the existing functionality more

obvious, rather than adding

anything new.

The last tab, Matrix, allows you

to directly manipulate the six

values in the SVG matrix

transformation. With the “Edit

current matrix” checkbox enabled,

you can modify the transform

that's currently being applied to

the selected element, if there is

one. With this unchecked, any

changes you make in this tab will

be mathematically combined with

the existing matrix to produce a

new, cumulative matrix. If you are

mathematically inclined, and wish

to play around with this tab, I

recommend reading the SVG

specification for coordinate

systems and transformations:

http://www.w3.org/TR/SVG/coords

.html

It's worth noting that SVG's

transform attribute does allow for

a series of individual translate() ,

scale() , rotate() , skewX() and

skewY() functions to be used,

rather than just the matrix()

operation that combines them all.

From an authoring perspective, it

would be far nicer to store a 45°

rotation in the SVG file as

rotate(45), rather than

matrix(0.707,0.707,-

0.707,0.707,0,0) , but there's no

option in Inkscape to do that,

unfortunately.

The last feature we'll consider

in this part of the series is the

dialog that can be found via Object

> Rows and Columns... (0.48) or

Object > Arrange... (0.91 ) . The

latter lays the interface out a little

more neatly and adds a second tab,

so I 'll describe that version. 0.48

users should be able to work out

the differences in the first tab, but

you'll just have to look on in envy

when I describe the Polar

Coordinates options in the second.

Let's start by creating a few

objects to arrange. I 've

deliberately used different sizes,

and semi-randomly placed them.

I 've numbered them from left to

right, top to bottom, to make it

easier to see which object moves

where – once they're arranged

using the dialog.

Page 29: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 01 26 contents ^

HOWTO - INKSCAPE

On selecting these nine objects

and opening the dialog, it's

possible to set various

combinations of rows and columns,

ranging from 1 x9 to 9x1 . These

fields are dynamic: as items are

added to, or removed from the

selection, the rows and columns

will change; similarly as each field

is manually altered so the other

will change to ensure that you

don't end up with an impossible

combination for the number of

elements that are selected. In this

example, I 've set the arrangement

to 3 rows by 3 columns.

You can think of this dialog as

creating a number of conceptual

cells which are arranged in rows

and columns, then your objects

placed within them. They're

“conceptual” in that they're never

really created, or drawn, on the

canvas, but serve as a tool to more

easily describe how Inkscape

arrives at its final layout. The

height of each cell is determined

by the height of the tallest object

in the row, and the state of the

Equal Height checkbox. If left

unchecked, then the height of each

row is free to change to suit the

tallest object within it; if checked,

all the rows will be the same

height, equal to the tallest object

in any of the rows. An analogous

calculation is carried out to

determine the width of each cell,

too.

With the dimensions of each

cell calculated, they are now

distributed into their final

positions. If the “Fit into selection

box” radio button is active, they

are evenly distributed to fit within

the dimensions of the original

selection's bounding box. This

gives you the ability to distribute

the objects within a specific area

by carefully positioning two

opposing corner objects.

Alternatively you can select the

“Set spacing” option, and enter

values for the X and Y fields. In this

mode the cells will be arranged

with the specified amount of space

between the columns (X value) and

rows (Y value). These numbers can

be negative if you want to make

the cells overlap. Note that 0.48

allows these numbers to be

specified only in pixels whereas

0.91 , as you can see from the

screenshot, has a pop-up menu

from which to choose different

units.

With these imaginary cells

conceptually placed on the canvas,

it's finally time to move your

objects into them. The “Alignment”

buttons let you define how to

place each object within its cell,

allowing for any of nine relative

positions (though you'll probably

just use the center button most of

the time). Note that 0.48 had the

same nine possibilities available,

but laid out as a pair of three-

option radio buttons which

specified the horizontal and

vertical alignments separately.

Having distributed our virtual

cells, and aligned the objects

within them, the result is

something like this:

It's important to understand

how Inkscape chooses the order

for the arrangement. Whereas

other parts of the application use

an object's z-index or selection

order, this dialog is only concerned

Page 30: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 01 27 contents ^

HOWTO - INKSCAPE

with the placement of the objects

on the canvas. They're ordered

from left to right, top to bottom,

and laid out in the same way. You

can see this effect quite clearly if I

move the blue “8” object up a

little, leaving its z-index the same,

then reapply the arrangement:

Because the objects are laid out

from left to right, top to bottom,

some arrangements can lead to an

empty space in the bottom right

corner. Here are the same nine

objects in a 2x5 arrangement:

Note that there's no way to get

the blank space to be anywhere

other than the bottom right cell. If

you want a different alignment

you'll have to manually alter the

results afterwards. It's also not

possible to have more than one

blank cell – the dynamic nature of

the Rows and Columns fields will

stymie any attempts. Trying to put

these nine objects into a 2x6

arrangement, expecting six objects

on the top row, and three on the

bottom, just leads to the same

result as before and the fields

adjusting themselves to 2x5.

The second tab of this dialog

allows you to place objects in a

polar arrangement. You can either

draw a circle, ellipse or arc as a

guide on which to place your

objects, or you can enter the

parameters for such a shape within

the dialog itself.

The easiest way to do this is to

draw a target shape (circle, ellipse

or arc) that you wish to place your

objects on. Send it to the bottom

of the z-order, then select all the

objects you wish to arrange plus

the target itself. Ensuring that

“First selected...” is active, click the

Arrange button. With our previous

selection of nine rounded

rectangles, and a grey ellipse as

the target, the result is something

like this:

As you can see, the objects have

been arranged anti-clockwise,

starting from the top right. To

make them run clockwise from the

top left, flip the ellipse

horizontally first. For clockwise

from the bottom right, flip it

vertically. For anti-clockwise from

the bottom left, flip it both

horizontally and vertically before

creating the arrangement.

If the target object is your only

circle, ellipse or arc in the

selection, it doesn't really matter

whether you use the “First

selected...” or “Last selected...”

option. If you do have more than

one, however, you should ensure

that you select the target first,

Page 31: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 01 28 contents ^

Mark uses Inkscape to create threewebcomics, 'The Greys' , 'Monsters,Inked' and 'Elvie' , which can all befound athttp://www.peppertop.com/

HOWTO - INKSCAPEthen add everything else to the

selection (“First Selected...”) or

select everything else, then add

the target to the selection (“Last

selected...”) .

If you don't wish to create an

additional object on the canvas to

use as a target, the

“Parameterized” option reveals

additional fields (shown in the

screenshot) to let you specify the

details of the target arc to use.

Realistically, it's almost always

easier to draw an arc on the canvas

to use as the target. You'll get

visible feedback as to where your

objects will be placed, and you can

simply delete the arc once your

arrangement is done, if you don't

want it left in the drawing.

The specific position of each

object on the target shape is set

using the “Anchor point” section in

the top half of the dialog. You can

specify one of nine positions on

the object's bounding box – so

choosing the top-left button, for

example, would position the

objects such that the top-left

corner of each individual bounding

box is placed on the target. The

center button is the most common

choice here, and is the one I used

for the previous image. An

interesting alternative is to use the

“Object's rotational center” option.

This will position each object so

that its rotational center is placed

on the target, allowing you a finer

degree of control over the

placement of each individual

object.

The “Rotate objects” checkbox

determines whether your objects

will be rotated when they are

arranged, or left with their original

orientation. The previous image

was made with this checked; had it

been left un-checked, all of the

positioned objects would have

retained their original orientation,

such that the numbers would all

have been the right way up.

There's a small bug that you

may have to work around: whilst

writing this article, I found that the

Polar mode would occasionally

place all my objects on top of each

other, rather than spacing them

out around the target shape. I was

able to reliably fix this by undoing

the placement, then shifting the

target object up (SHIFT-Up arrow),

then back down to its previous

position (SHIFT-Down arrow),

before repeating my arrangement

attempt.

That concludes our look at the

myriad ways in which you can

arrange and position objects within

Inkscape. Amongst them there

should be something to suit most

artistic requirements. From

snapping to grids, tiled clones to

polar arrangements, Inkscape has

far more ways to position your

shapes than initially meets the eye.

Page 32: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 02 34 contents ^

HH OOWW--TTOOWritten by Mark Crutch II nn kkssccaa ppee -- PPaa rrtt 4411

T his month we're going to start

looking at Live Path Effects

(LPEs). These are a way to add

more powerful capabilities to

paths – such as drawing a pattern

that follows a path (for creating

ropes and chains) , or rendering a

path as though it's been roughly

sketched. There are 1 3 LPEs in

version 0.48, increasing to 1 5 in

0.91 with a slight change of UI as

well.

Let's dive straight in with a

relatively simple LPE: Spiro Spline.

Draw a path using Bézier tool,

consisting of straight lines forming

a simple spiral type of shape.

Something like this:

Now select the path and open

the LPE dialog using the Path >

Path Effects... menu option (Path

Effect Editor... in 0.48). At this

point, the user interface diverges.

To add the Spiro Spline LPE to your

path:

• In 0.48.x, select “Spiro spline”

from the drop-down list of effects

at the top of the dialog, then click

on the Add button next to it.

• In 0.91 , click the “+” button at the

bottom left of the dialog. This will

open another dialog listing the

available effects. Scroll down and

select “Spiro spline,” then click the

Add button. The second dialog will

close, adding the effect to the list

in the main dialog.

With the Spiro Spline effect

added to your path, you might be a

little underwhelmed to see that

there's been no change to the

appearance of your spiral. This is

because the spiro algorithm works

only on paths where some of the

nodes are smooth or symmetrical.

Currently, all the nodes in our

shape are corner/cusp nodes.

Double-click on the path to both

select it and switch to the node

tool, and you should see that all

the nodes have the diamond-

shaped handles that represent

cusp nodes. Press CTRL-A to select

them all, and use the buttons on

the tool control bar to change

them to smooth, symmetrical or

auto-smooth. Immediately you

should see the effects of the spiro

algorithm, as your square spiral

turns into a super-smooth version.

You may be forgiven for

thinking that your new spiral is just

a normal result of switching to

smooth nodes, but that's not the

case. In the LPE dialog, you'll

notice that the Spiro Spline entry

has an “eye” icon next to it. Click

that to toggle the effect on and

off, and you'll notice that the spiro

version of the path is noticeably

smoother than the normal version.

Here's the original (black), smooth

(green), and spiro (purple) versions

of the path – overlaid on top of

each other so you can more easily

see the differences between them.

The real difference comes when

you start to manipulate the path:

spiro splines are indifferent to

changes in the node handles, so

the most practical way to modify

the path is to move the nodes

themselves. The algorithm is a

little unstable, and can sometimes

shoot off into wild shapes as you

do so; undoing your edit, or

moving the nodes a little more, will

generally get things back on track.

For example, this image shows a

green original path, plus the same

path with the spiro LPE added in

purple, demonstrating just how

out-of-control the spiro algorithm

can get!

Page 33: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 02 35 contents ^

HOWTO - INKSCAPE

As well as moving nodes,

there's one other way to

manipulate spiro paths: straighten

some sections. Simply select the

end nodes of a segment and use

the “Make selected segments

lines” button on the tool control

bar to straighten it. The spiro

algorithm will ensure a smooth

transition between straight and

curved segments. If you need to

introduce a sharp transition into

your path, you first have to convert

one of your smooth nodes into a

corner node. That alone isn't

usually enough to do the job

though – moving the adjacent

node to one side will usually also

alter the path on the opposite side

in an effort to maintain the spiro

path's smoothness. The secret is to

move the handles of the corner

node so that they're no longer co-

linear, then you'll be able to move

the spiro paths on either side as

you would expect, with a sharp

transition occurring at the corner

node.

The spiro algorithm was

originally created by Raph Levien

for font design (see

http://www.levien.com/spiro/ for

more details) , but it can also be

useful for flowing, organic shapes

such as plants, leaves, and...

tentacles. It's so useful, in fact,

that Inkscape has dedicated

buttons on the Bézier and Pencil

toolbars which automatically add

the Spiro Spline LPE to any lines

you draw with them. Select the

Pencil tool and ensure that the

smoothing is set to about 50% - a

little either way won't make much

difference. On the tool control bar

(shown above), enable Spiro mode

using the second button on the

bar:

Now it's time to draw

something on the canvas: the kind

of shape that suits spiro mode. Try

drawing a circle, keeping it as neat

as you can, and finishing in the

starting node. As you draw you'll

see a green line indicating your

path, regardless of your current fill

and stroke settings – don't worry,

that's just a guideline that won't be

visible when you've finished.

Unless you have supernatural

control over your muscles, the

green path is likely to be bumpy

and distorted; yet, on releasing the

mouse button, it will be replaced

with a nicely rounded circle. If your

original path was extremely rough,

you might not get a perfect circle,

but the final shape will certainly be

a lot smoother than your hand-

drawn efforts.

Select the path you've drawn,

and, in the Path Effects dialog, you

should see that the Spiro Spline

effect has been added. Toggle the

visibility button (the eye-shaped

icon) to see how the spiro version

compares with your original path.

Now try the process again with a

different shape – a figure of eight,

or a spiral. As you can see, for

some shapes it's a lot easier to

create something neat and smooth

using spiro mode.

When using the Bézier tool in

spiro mode, the icon on the tool

control bar is the same, but the

drawing process is a little

different. I usually suggest drawing

Bézier paths as a series of straight

line segments by single-clicking to

place each node, then going back

in Node Edit mode to add curves

afterwards. If you take that

approach with spiro mode enabled,

you'll get a series of corner nodes

which, as we've seen, don't really

play a role in the spiro algorithm.

Instead you need to click-and-drag

as you place each node, in order to

set the curves as you go along.

Personally, I find this to be much

harder to control, but give it a try

to see if you're better at it than

me! You can always lay down

straight segments with spiro mode

enabled, then explicitly change

some points into cusp nodes

afterwards. It's not a huge

workflow improvement, but does

save you a trip to the Path Effects

dialog to manually add the LPE.

One big problem with having

spiro buttons on these two tools it

that it's easy for newcomers to

Inkscape to enable them, then

forget about it. A common

question on the support forums is,

“why can't I change the shape of

my path using the node handles?”

The answer is usually because the

Spiro LPE has unintentionally been

added, so watch out for that if you

find yourself similarly stuck.

Let's move on to another LPE:

Gears.

You first have to draw a path

with at least three nodes – to

begin, I ' ll use exactly three so that

Page 34: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 02 36 contents ^

HOWTO - INKSCAPEit's clear what the relevance of

each one is. With your path drawn

and selected, open the Path

Effects dialog and add the Gears

LPE. You should immediately see

your path replaced by a gear.

Double-click on it so that you can

see the three nodes and move

them around. It should quickly

become apparent that the nodes

are used to set:

1 ) The angle of the first gear tooth,

relative to the center point.

2) The center point of the gear.

3) The radius of the gear (from

the center to the mid-point of the

tooth).

With your gear selected, switch

to the Bézier tool. The start and

end nodes of your path should be

visible: click on the end node, then

double-click somewhere else on

the canvas to add another

segment to your path. Now the

path has four nodes, and you

should find that a second gear has

been added, centered at the new

end node.

You can repeat this process to

add more nodes, and hence more

gears. Applying the Gear LPE to

any path with more than three

nodes follows the same rules: the

first three nodes define the

parameters for the first gear, and

any subsequent nodes set the

center points for additional gears

in the chain. Once you've got a few

gears on screen, switch to the node

tool to move their centers, noting

how Inkscape automatically adjusts

the radius and number of teeth in

the process. Try dragging the first

node around the second one to

crank your gear train into life (after

all, it is a LIVE path effect) .

As well as the values that are

implicitly set by the positions of

the nodes, there are two additional

parameters required to fully

specify the effect. These can be

found at the bottom of the Path

Effects dialog, in fields labelled

“Teeth” (the number of teeth on

the first gear) , and “Phi” (the

“tooth pressure angle” - set it to

about 20 for realistic looking

teeth). Almost all LPEs populate

this part of the dialog with a UI of

some sort, and in some cases the

number of additional parameters is

rather excessive (watch out if

you're working on a small screen!) .

You may have guessed from the

UI that it's possible to apply more

than one LPE to a path. In

programming terms you can think

of an LPE as a function that takes a

path as an input, and produces

another path as an output,

allowing you to chain them

together. Be aware, however, that

the order in which you chain them

is significant. Consider this simple

path, made up of cusp nodes:

If we apply either the Spiro

Spline or Gears LPE to the path we

get the results we'd expect:

But if we apply both LPEs to the

path, the effects differ greatly

depending on the order. We'll start

with the least surprising

combination: Gears first and Spiro

Spline second.

It may not be easy to see, but

the only real effect is that the

teeth of the gears have become

more rounded (though each gear

also has one tooth that's

misshapen). Thinking about our

chain of LPEs the general effect

makes some sense: the first LPE

outputs a composite path in the

shape of the gears, then the spiro

algorithm is applied to that path,

smoothing out any cusp nodes that

are present in it. But what happens

if we apply the Spiro Spline LPE

first, and the Gears LPE second?

Page 35: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

full circle magazine #1 02 37 contents ^

Mark uses Inkscape to create threewebcomics, 'The Greys' , 'Monsters,Inked' and 'Elvie' , which can all befound athttp://www.peppertop.com/

HOWTO - INKSCAPE

Now we've got a load more

gears! This is because the path that

is created by the Spiro Spline LPE

has more nodes than our original

input path. Although we drew 6

nodes, the spiro version of the

path actually has 1 3, so when the

second LPE runs it creates a lot of

extra gears. We could have

predicted this result had we only

kept an eye on Inkscape's status

bar: when an LPE is active it shows

the number of nodes in the output

path, not the number in the

original path. Try using the Gears

LPE again, and have a look at how

many nodes that generates!

Why not practice drawing

naturalistic curves and mechanistic

gears, then next time we'll

continue to look at some of the

other LPEs that are available.

PYTHON SPECIAL EDITIONS:

http://fullcirclemagazine.org/issue-py01 / http://fullcirclemagazine.org/issue-py02/

http://fullcirclemagazine.org/python-special-edition-issue-three/

http://fullcirclemagazine.org/python-special-edition-volume-four/

http://fullcirclemagazine.org/python-special-edition-volume-five/

http://fullcirclemagazine.org/python-special-edition-volume-six/

Page 36: dl.fullcirclemagazine.orgdl.fullcirclemagazine.org/issueIS06_en.pdf · %lobu>jmib tebk qo>@fkd>a>ohfj>dbrpfkdqeb\+] @e>kkbi vlrjfdeqt>kqqlpefcq qebjfa mlfkqaltk_ql?bqqbo @bkqboqebo>kdbtfqefkqebs>irbp

29 contents ^

HHOOWW TTOO CCOONNTTRRIIBBUUTTEE

Ful l Circle Team

Edit or - Ronnie Tucker

[email protected]

Webmaster - Lucas Westermann

[email protected]

Edit ing & Proof reading

Mike Kennedy, Gord Campbell, Robert

Orsino, Josh Hertel, Bert Jerred, Jim

Dyer and Emily Gonyer

Our thanks go to Canonical, the many

t ranslat ion teams around the world

and Thorst en Wilms for the FCM logo.

FULL CIRCLENEEDSYOU!A magazine isn't a magazine without art icles and Full Circle is no

except ion. We need your opinions, desktops, stories, how-to's,

reviews, and anything else you want to tell your fellow *buntu users.

Send your art icles to: art [email protected]

We are always looking for new art icles to include in Full Circle. For help and advice

please see the Of f icial Ful l Circle St yle Guide: ht tp:/ /url.fullcirclemagazine.org/75d471

Send your comment s or Linux experiences to: let [email protected]

Hardware/sof tware reviews should be sent to: [email protected]

Quest ions for Q&A should go to: quest [email protected]

Deskt op screens should be emailed to: [email protected]

... or you can visit our sit e via: fullcirclemagazine.org

FCM#116Deadl ine:

Sunday 11th Dec 2016.

Release:

Friday 30th Dec 2016.

EPUB Format - Most edit ions have a link to the epub f ile

on that issues download page. If you have any problems

with the epub f ile, email: [email protected]

Issuu - You can read Full Circle online via Issuu:

ht tp:/ / issuu.com/fullcirclemagazine. Please share and rate

FCM as it helps to spread the word about FCM and Ubuntu.

Magzst er - You can also read Full Circle online via

Magzster: ht tp:/ /www.magzter.com/publishers/Full-Circle.

Please share and rate FCM as it helps to spread the word

about FCM and Ubuntu Linux.

Get t ing Ful l Circle Magazine:

For t he Ful l Circle Weekly News:

You can keep up to date with the Weekly News using the RSS

feed: ht tp:/ / fullcirclemagazine.org/ feed/podcast

Or, if your out and about , you can get the Weekly News via

St itcher Radio (Android/ iOS/web):

ht tp:/ /www.st itcher.com/s?f id=85347&ref id=stpr

and via TuneIn at : ht tp:/ / tunein.com/radio/Full-Circle-Weekly-

News-p855064/

Special Editions - Jonathan Hoskin