File: NEWS

package info (click to toggle)
inkscape 0.47.0-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 122,072 kB
  • ctags: 46,938
  • sloc: cpp: 349,791; ansic: 31,306; python: 14,868; xml: 6,613; sh: 5,041; makefile: 1,773; perl: 1,486; asm: 675; ruby: 148
file content (1483 lines) | stat: -rw-r--r-- 71,027 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
Inkscape 0.47

Inkscape 0.47 brings a host of important improvements all across the program:

  • Timed autosave: no more lost work

  • Spiro splines: an exciting new way to work with paths, fully supported in
    Pen, Pencil, and Node tools

  • Auto smooth nodes: a new type of node that keeps the path as smooth as
    possible as you move it or its neighbors

  • New modes in Tweak tool: pushing and jittering whole objects, scaling/
    rotating objects, deleting and duplicating using the "soft brush"

  • Reworked, much more usable snapping system and a Snapping toolbar

  • New path effects, including sketch, hatching, envelope deformation; effects
    can be stacked and assigned to groups

  • A huge collection of preset filters in the new Filters menu

  • New cairo-based PS and EPS export: improved quality, more features
    supported, fallback rasterization for filters and transparency

  • Spell checker for text objects in a document

  • Many new extensions: restacking, calendar, printing marks, cartesian and
    polar grids, interpolating attributes

  • Optimized SVG code options, now with their own Preferences page

  • Many other improvements, usability tweaks, memleak stops, and misc bugfixes

Refactoring effort

The focus of the 0.47 release was to clean up legacy code and push forward the
migration to clean object-oriented C++. The goal of this effort was to increase
reliability and maintainability of Inkscape. In the long run, it will mean
fewer bugs and more new features, because it will be easier to develop and find
bugs in Inkscape.

Migration to lib2geom

Many parts of the code have been changed to use the 2geom library for
geometrical calculations instead of the old libnr and livarot libraries.

Preferences

Instead of global functions directly manipulating an XML document, the
preferences API is now exposed through the Inkscape::Preferences singleton. It
abstracts away the way the preferences are stored in memory. In the future it
may allow for different user settings storage backends (like GConf or the
upcoming dconf on GNOME desktops or .plist files on OS X). Previously, Inkscape
directly manipulated an internal XML document.

The Preferences directory has been moved on Linux (and Mac OS X) from ~
/.inkscape to ~/.config/inkscape to better conform to Linux desktop standards.

Tools

Node tool

  • In previous versions of Inkscape, no visual feedback was given back to the
    user when hovering over paths when using the Node tool. In this update,
    hovering over a path with the Node tool now results in a highlighted path
    outline being displayed. Note: the duration and color of the new path
    outline feature can be configured in the Tools > Node section of the
    Inkscape Preferences dialog.

  • The Node tool can now edit clipping paths and masks of objects on canvas,
    without releasing them. If the selected object has a clipping path and
    mask, the corresponding buttons on the controls bar of the tool will be
    enabled; pressing these buttons will display the editable paths or handles
    of the clippath or mask. A clipping path is stroked green, a mask is
    stroked blue (the same colors as those used for them in Outline mode).

  • Snapping has been improved (more details in Snapping below).

  • When dragging a node handle with Ctrl pressed, it now snaps not only to the
    15 degree increments starting from 0 and to the original handle direction,
    but also to the direction of the opposite handle (if it exists) or of the
    opposite line segment (if it is a straight line).

  • The behavior of the buttons/shortcuts that make a node smooth or cusp has
    been improved:
      □ If a node is already a cusp (diamond shaped), pressing Shift+C again on
        it will retract both its handles. As this works for any number of
        selected nodes, you can always retract all handles in all nodes by
        selecting all nodes and pressing Shift+C twice.
      □ If a non-smooth node is next to a straight line segment, pressing
        Shift+S once makes it half-smooth: it now has one handle aligned with
        that line segment. Another press of Shift+S will expand the second
        handle as well turning it into a full smooth node. If a node is between
        two curve segments, Shift+S will expand both handles as before.

  • Auto smooth nodes: this is a new node type, similar to the one Xara Xtreme
    has. An auto node is a smooth node which automatically adjusts (rotates and
    stretches) its handles when this node or its neighbors are moved. This
    adjustment (same as what you get when you convert node type to Smooth, but
    continuous) keeps the curve at this node as smooth as possible. It feels a
    bit like Spiro paths (see below); although not as smooth as a Spiro, auto
    nodes may often be preferable as they work without applying any path
    effect. Whenever you manually adjust the handles of an auto node or drag
    the adjacent curve, the node loses its auto state and becomes simply
    smooth; for this reason, it is recommended to edit smooth nodes with the
    node handles hidden via a toggle button on the Node tool controls bar. Auto
    nodes are represented by little circles, as opposed to smooth/symmetric
    nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to
    auto, press Shift+A or use the corresponding node type button on the
    controls bar.

Tweak tool

Several new modes are added to the Tweak tool for transforming, duplicating,
and deleting selected objects using the same "soft brush" metaphor that the
path editing and coloring modes use. Using these new modes, it is easy to
"sculpt" scatterings of small objects, such as clone tilings, into complex and
naturalistic textures.

  • Push mode moves those selected objects that are under the brush in the
    direction in which you move the brush. This is similar to the Push path
    mode, except that the Move mode affects entire objects and not parts of the
    paths under the brush.

  • Attract/Repel Objects mode moves those selected objects that are under the
    brush towards the cursor (default) or away from cursor (with Shift
    pressed). This is similar to the Attract/repel path mode, except that the
    Move in/out mode affects entire objects and not parts of the paths under
    cursor.

  • Jitter mode moves those selected objects that are under the brush in random
    directions and by random amounts, but the overall amount of movement
    depends on Force, pen pressure (if you're using a tablet pen), on the
    closeness of the object to the center of brush, and on how long you apply
    the brush.

  • Scale mode scales those selected objects that are under the brush down (by
    default) or up (with Shift pressed). The speed of scaling depends on Force,
    pen pressure (if you're using a tablet pen), on the closeness of the object
    to the center of brush, and on how long you apply the brush.

  • Rotate mode rotates those selected objects that are under the brush
    clockwise (by default) or counterclockwise (with Shift pressed). The speed
    of rotation depends on Force, pen pressure (if you're using a tablet pen),
    on the closeness of the object to the center of brush, and on how long you
    apply the brush.

  • Duplicate/delete mode randomly duplicates those selected objects that are
    under the brush (by default) or deletes them (with Shift pressed). The
    chance of an object to be duplicated and deleted depends on Force, pen
    pressure (if you're using a tablet pen), on the closeness of the object to
    the center of brush, and on how long you apply the brush. Like with the
    regular Duplicate command, duplicating with Tweak tool places the copies
    right over the originals, and you may need to use the Jitter mode to ruffle
    them apart. The duplicates created by the tool are automatically added to
    selection if the originals objects were in selection (e.g. if you're
    tweaking a group of objects, they are duplicated within that group and are
    not by themselves selected).

  • Blur mode blurs the selected objects under the brush more (by default) or
    less (with Shift pressed). The amount of blur added or removed depends on
    Force, pen pressure (if you're using a tablet pen), on the closeness of the
    object to the center of brush, and on how long you apply the brush.

Also, the existing path editing modes of the tool have been rearranged: now
Shrink and Grow are one mode (shrinks by default, grows with Shift), and
Attract and Repel are one mode (attracts by default, repels with Shift). Here
is a complete list of modes and shortcuts of the Tweak tool:

Shift+m, Shift+0                move mode
Shift+i, Shift+1        attract/repel objects mode
Shift+z, Shift+2        jitter mode
Shift+<, Shift+>, Shift+3       scale mode
Shift+[, Shift+], Shift+4       rotate mode
Shift+d, Shift+5        duplicate/delete mode
Shift+p, Shift+6        push path mode
Shift+s, Shift+7        shrink/grow path mode
Shift+a, Shift+8        attract/repel path mode
Shift+r, Shift+9        roughen mode
Shift+c         paint mode
Shift+j         color jitter mode
Shift+b         blur mode

In Paint mode, painting with Shift inverts the color you're applying (e.g. when
painting with yellow, Shift will switch the applied color to blue).

Calligraphy tool

  • The tool's settings can now be set from a preset (see the drop-down list in
    the controls bar). Several presets are provided that imitate various
    drawing implements and styles.

  • When drawing with Alt pressed, Inkscape subtracts the new path you are
    creating from the selected path. With Shift, it unions the new path with
    the selected path. This allows you to quickly patch or erase defects in a
    stroke you have drawn, without leaving the tool.

  • The behavior of the tool when tracking a guide (drawing with Ctrl) has been
    improved:

      □ The initial "jerk" when you start drawing is suppressed.

      □ The undesired flipping of the stroke to the other side of the guide
        path, when drawing along closed paths, is fixed.

      □ If you lose connection with your guide path, the tool tries to continue
        moving in the same direction as if by inertia, so as to minimize the
        tearoff jerk.

Paint Bucket tool

  • Paint Bucket is now more tightly integrated with potrace. As a result,
    memory and CPU usage on each fill operation have been reduced
    significantly.

Eraser Tool

A new tool, Eraser, has been added to the main toolbox. Its shortcut is Shift+E
. It has two main modes, selectable by toggle buttons on its controls bar:

  • Delete Objects mode: any shape touched by dragging is deleted completely.
    This is analogous to "touch selection" in Selector followed by Del.
  • Cut mode: dragging subtracts, using a boolean Subtract operation, parts of
    paths it touches. On the controls bar, you can adjust the Width of the
    trace left by the tool. If nothing is selected, it acts on all objects in
    the current layer, whether selected or not; if there's a selection, its
    action is limited to selection. This mode is similar to Alt+drag in
    Calligraphic tool.

Pen and Pencil

New modes

Apart from the regular Bezier mode, these drawing tools now provide several new
modes:

  • Spiro mode: This mode automatically applies the new Spiro Splines path
    effect (see the section on new effects) to any newly drawn path. As
    mentioned below, it is not yet possible to preview a spiro before it is
    finished. This mode is available in both Pen and Pencil tools.

  • Polyline mode (Pen only): This mode makes it easy to draw many straight
    line segments by disallowing any curves, even when you accidentally drag
    with the mouse instead of clicking.

  • Paraxial mode (Pen only): create straight line segments that are parallel
    to one of the coordinate axes. This works similar to the Polyline mode with
    Ctrl. Normally, each next line segment is drawn perpendicular to the
    previous one, but the direction of the line segment being drawn can be
    toggled by pressing Shift. If you click on the start anchor, the path gets
    closed with an L-shaped segment (its direction of which can also be flipped
    with Shift).

Stroke shapes

As a first step towards this blueprint, it is now possible to automatically
apply predefined vector shapes to path strokes in Pen and Pencil tools. The
choice of shapes in the drop-down list on the controls bar includes:

  • Triangle in and Triangle out: tapering out in both directions

  • Ellipse: smooth elliptic shape stretching along path

  • From clipboard: any path you had previously selected and copied to
    clipboard

To adjust the width of the stroke, open the Path Effect Editor, choose "Pattern
along path" effect, and edit its Width parameter. It is measured in units of
the original size of the applied shape; the triangles and ellipse are all 10px
in size, and the clipboard size can be any size. The default value of Width is
1.00, which means the triangle/elliptic strokes will be 10px wide and the
from-clipboard stroke will be as wide as the copied object was tall.

Pencil smoothing

In Pencil tool, the controls bar now provides the Smoothing parameter,
changeable in the range from 1 to 100, which controls how much smoothing is
applied to the freehand lines you draw. Small Smoothing values produce rough
lines with many nodes; large values give smooth lines with few nodes.
Previously, this control was only available in Inkscape Preferences.

Pencil sketch mode

The sketch mode is still experimental. In essence, it enables the artist to
draw many strokes, which Inkscape then averages into a single path. It tries to
mimic sketching with a real pencil and paper, taking the 'visual average' of
many strokes and condensing it into one stroke.

Pick the pencil tool, press Alt, and sketch away; release Alt to finalize the
result. After each stroke (a stroke starts when the mouse button is pressed
down, and ends when it is released), the resulting path will be an average of
the old result and the newly drawn stroke. In Inkscape's Pencil tool
preferences, one can choose to either average between all drawn strokes (so
that all stroke have the same weight), or just the new stroke and the old
result (so that later strokes have greater weight).

Currently, going back and forth between A and B in one stroke does not give the
expected result; it will result in a long path going back and forth, instead of
the visually expected path going from A to B just once. We are working on this
(difficult!) issue. For best results, draw strokes only from A to B (and not
from B to A).

Text tool

  • When editing multiline or flowed text, the PgUp and PgDn keys now work to
    move the cursor by one screen (i.e. by as many lines as fit into the screen
    at current zoom).

  • The usability of the font family drop-down list in the Text tool controls
    bar has been improved: it no longer steals focus, all keyboard shortcuts
    work as designed (Alt+X to access the family control, Alt+down to open the
    drop-down list with font previews, arrows to move in the list, Enter to set
    chosen font) and the completion feature works (start typing a family name
    and a pop-up list with possible completions appears).

    A remaining problem that may be fixed in a future version is that the first
    opening of the drop-down list of family names may be slow (several seconds)
    if you have many fonts installed (the delay is Inkscape generating the
    previews for all fonts). Subsequent openings of the list are much faster.

Connector tool

  • Connectors are now drawn to the edges of shapes, rather than to the
    bounding box of shapes.
  • The routing buffer around shapes is now altered in the correct direction
    when the user changes this via the spacing control fon the connector
    toolbar.
  • A bug has been fixed where the spinboxes on the connector toolbar did not
    properly respond to single clicks of their up and down arrows.

Path effects

Path Effects stacking

More than one Path Effect can be assigned to an object. A new UI was created to
control the stack in the Path Effects Editor (Shift+Ctrl+7): the Effect list
shows the stack of effects for the selected object; below, buttons allow you to
move a selected effect in the stack up or down or remove it from stack.

The stack works from top to bottom, i.e. the topmost listed effect is applied
first, the second one works on the result of the first, and so on until the
bottom effect which produces the final visible result. A new effect that you
choose in the "Apply new effect" list and created by the Add button gets added
to the end of the current stack.

Path Effects for groups

Path effects can now be assigned to a group. In most cases, the effect is
applied recursively to the member paths, but for Bend Path and Envelope
Deformation the result that the distortion applies to the group as a whole.

  • You can, as usual, enter the group by double-clicking on it, and edit the
    paths there watching the transformed result update live.

  • Path effects can be assigned to groups of groups, applying recursively to
    all grouped paths.

  • The Convert Object to Path command (Ctrl+Shift+C), when applied to a group
    with effects applied, removes these effects from group and converts all its
    member paths to effect-less paths looking exactly as before.

Misc new features

  • The Paste Path Effect command in Path menu can now assign the path effect
    of the clipboard's path to any number of paths, going recursively into
    groups if necessary.

  • A new command, Remove Path Effect in Path menu, removes any path effects
    from all selected objects, going recursively into groups if necessary.

  • Path effects can now be assigned to the sides of a 3D box (use Ctrl+click
    to select individual sides) without breaking its 3D functionality.

  • The Pen and Pencil tools now correctly work with paths with effects: you
    can continue such a path or add a new subpath to it by drawing with Shift,
    while preserving the effects applied to it.

  • Path parameters of effects can now link to existing shapes or texts. For
    example, now it is possible to use a text as the pattern for the Pattern
    Along Path effect, or shape a path with the Envelope Deformation where one
    of the envelope sides is text! Since the effect links to the text, not
    copies it, the result will update live if you edit the text.

  • Lib2geom now has an implementation for EllipticalArc. For Inkscape, this
    means that it is now possible to directly copy-paste ellipse shapes to path
    parameters (e.g. 'pattern' in Pattern along Path), without the need to
    convert the ellipse to path first.


New effects

  • Sketch: Simulates hand-drawn lines. A set of parameters lets you tune the
    effect. They are all summarized in this picture.

    [300px-SketchExemple]

  • Hatches: Fills the shape with rough, randomized hatches, simulating a quick
    hand drawing. It is configurable through numeric parameters as well as
    on-screen handles visible in Node tool.

    [300px-Hatches-lpe].

  • von Koch: This effect creates fractal pictures. A collection of
    transformations (rotations, rescalings, etc...) is recursively applied to
    the input path. The transforms are derived from a "reference" path (a line
    segment) and a "generating" path (basically a collection of segments): the
    transforms are those needed to move the reference segment onto each segment
    of the generating path (components in the generating path having more than
    one segment might be used to define shearing/mirroring transforms). A
    famous example is the von Koch's snowflake.

    [300px-VonKochExample]

    Warning: the complexity of the output path grows exponentially fast with
    the number of generations. As a guardrail, an editable complexity bound is
    provided, above which the effect is disabled.

  • Knot: Creates a knot from a flat self-intersecting curve: at each crossing,
    one strand is interrupted to make it look like it's going under the other.
    The "sign" of each crossing (first strand interrupted, second interrupted,
    or no interruptions) can be set independently by clicking the on-screen
    handle which can be dragged from one crossing to the other.

    [300px-KnotExample]

    Warning: as far as possible, the lpe tries to keep the modifications of
    crossing signs unchanged under small deformations. For large or topology
    changing deformations however, some or all crossings might jump back to
    their default orientation.

  • Spiro splines are a novel way of defining curvilinear paths developed by
    Raph Levien. It takes some getting used to, but for certain tasks (such as
    lettershape design) Spiros have a clear advantage over Bezier curves.
    Recently, Spiro support was added to the FontForge font editor; now it is
    available in Inkscape too, which means you can use all the convenient
    Inkscape path tools (moving and transforming groups of nodes, node
    sculpting, etc.) on Spiro paths.

    A Spiro path is defined by a sequence of points, but unlike a regular path
    with Bezier curves, all Spiro points lie on the path and there are no
    off-path handles. The curvature of the path is defined entirely by the
    positions of the points and their types. The path behaves very similar to a
    springy rod which is forced to pass through the given points and which uses
    the minimum possible curvature to satisfy the requirement. As such, it
    feels quite natural and the resulting path is very smooth - not just
    superficially smooth (i.e. having no cusps), but smooth at a deeper level,
    which you can achieve with Beziers only after a lot of laborious tweaking.

    To create a Spiro path, select any path and assign the "Spiro spline" path
    effect to it. There are no parameters. Each node of your path becomes a
    point of a Spiro path, depending on the type of node:

      □ Smooth nodes (those with two collinear Bezier handles; use Shift+S to
        make a node smooth) become smooth curve points of the Spiro path. Note
        that the length or direction of the Bezier handles of the source path
        is ignored; the only thing that matters is their collinearity.

      □ Cusp nodes of the source path become corner points of the Spiro path,
        like free hinges on the springy rod. Between two corner points, the
        path is always a straight line. To make a node cusp, retract its Bezier
        handles by Ctrl+click, or press Shift+C and move one of the handles so
        they are no longer collinear.

      □ Half-smooth nodes - those with one Bezier handle collinear with a
        straight line segment on the other hand - become "left" or "right"
        points on the Spiro path which behave exactly the same: they sit
        between a straight line and a curve and enforce that these two segments
        join smoothly without a cusp. To create such a node, make sure one of
        the segments is a line (select its ends and press Shift+L), then
        Ctrl+drag the remaining handle to make it snap to the direction of the
        straight line segment on the other side, or press Shift+S to lock it to
        that direction.

    Note that what matters is the actual collinearity of a node's handles,
    regardless of the node type that the node has in the Node tool; for
    example, if a node designated as cusp (diamond-shaped) has collinear
    handles, it will become a smooth curve point of the Spiro path.

    Some configurations of points do not converge and produce wild loops and
    spirals instead of a smooth curve. According to Raph, "The spline solver in
    this release is _not_ numerically robust. When you start drawing random
    points, you'll quickly run into divergence. However, "sensible" plates
    based on real fonts usually converge." Avoid too sharp changes in direction
    between points to prevent divergence. Hopefully, the robustness of the
    algorithm will be improved in future releases.

    For now, to edit Spiro paths viewing the result in real time, you have to
    use the Node tool; it is recommended to turn off the red highlight of the
    source path. The Pen tool does not yet allow you to preview a Spiro as you
    draw, although you can paste the Spiro effect on the path and see the
    result as soon as the path is finalized.

    You can always use the Node tool to continue a Spiro path by duplicating
    and dragging away its end nodes. Also, when you have a Spiro path selected,
    you can add a new subpath to it with Pen or Pencil if you start drawing
    with Shift.

  • Construct Grid: Draws a grid using the first three nodes of a path. The
    center node defines the origin. The other two nodes define the direction
    and length of the two adjacent sides of the first cell. If a path has more
    than three nodes, the other nodes are ignored. One can select the number of
    cells in the two orthogonal directions.

  • Envelope Deformation: Allows you to deform an object (or a group of object)
    by deforming its sides. Modifications are done by deforming the four path
    parameters: Top, Bottom, Left and Right; for each, you can edit it with
    Node tool, copy, paste, or link to an existing path in the document.

  • Ruler: Draws ruler marks along the path; you can set distance between the
    marks, their length for major and minor marks, the major/minor ratio, and
    other parameters.

  • Interpolate Subpaths: Creates a given number of interpolated paths between
    the (first) two subpaths of a path (the subpaths after the second subpath
    are ignored). The interpolations are spread along an editable trajectory
    path.

    [InterpolateSubpathsExample]


Notable effect bugfixes and changes

We try to refrain from changing the behavior of existing path effects, because
it will change appearance in old files when opened in a new version of Inkscape
(but not in any other SVG viewer or editor). However, when an effect is really
broken, we have to fix it:

  • Pattern Along Path:
      □ The pattern used to be stretched across discontinuities (separate
        subpaths). This has been fixed; now it treats a discontinuous path as a
        group of continuous paths and applies the effect separately to each.
      □ Successive copies of the pattern can now be fused into continuous paths
        (using the new "fuse nearby ends" feature) so that "filling" the result
        works as expected.

  • Bend Path:
      □ Closed input paths would sometimes result in unclosed output paths.
        This has been fixed.

Import/Export

PostScript and EPS import

Inkscape's PS and EPS import now uses Ghostscript instead of pstoedit. If you
need to open files of these types, install Ghostscript and make sure the
directory with the ps2pdf utility from Ghostscript installation is in your
PATH. On importing a file, you will see a preferences dialog, similar to PDF
import; for multipage PS files, this dialog allows you to select which page to
open.

PDF import

  • A new checkbox on the PDF import dialog, Replace PDF fonts with
    closest-named installed fonts (on by default) attempts to replace all font
    names in the imported PDF with the most similar names of those fonts
    installed on your system. For example, if the PDF uses the font
    "TimesNewRomanPSMT" and you have "Times New Roman" installed, that font
    will be used, which will likely give you a more correct appearance than the
    unknown font "TimesNewRomanPSMT" that will be displayed as the default sans
    serif font. This is a temporary fix necessary because Inkscape cannot yet
    extract the fonts from the PDF files it imports nor can it embed them into
    SVG; when it gets these capabilities, such font name conversion will become
    unnecessary because all fonts will be preserved.

  • Importing PDF files now works from the command line. For example,

inkscape file.pdf --export-plain-svg=file.svg

    will take the first page of the PDF and use the default import options, and
    save the result to SVG. If you try to import PDF without an --export
    command, it will show the import options dialog as before and open the file
    in the UI.

PDF, PostScript, and EPS export

The new Cairo-based PS and EPS exporter provides much better support for
various vector features, including clipping paths, patterns, and non-ASCII
characters. Those features that are not supported by the targeted format become
embedded bitmaps that preserve the appearance. In particular:

  • transparency is always rasterized in PS or EPS but not PDF, as PDF supports
    vector transparency;

  • filters, such as blur, are by default rasterized in all three formats (PS,
    EPS, PDF). This can be turned off by unchecking the "Rasterize filter
    effects" option in the UI or adding the --export-ignore-filters option via
    the command line. In this case, filtered objects are rendered as vectors
    without filters and without rasterization.

  • The resolution for rasterizing the filters can be set in the UI in the
    "Resolution for rasterization (dpi)" parameter or on the command line by
    --export-dpi parameter (same as used for exporting SVG documents to
    bitmaps). The default is 90 dpi. The rendering quality of filters for
    rasterization, as well as for bitmap export, is always the best possible
    regardless of what you have set in the Filters tab of Preferences (which
    only affects on-screen rendering). For example,

inkscape --export-pdf=out.pdf --export-dpi=300 file.svg

    will export file.svg to out.pdf, rasterizing any filtered objects in it at
    300 dpi. (If there are no filtered objects, the --export-dpi has no
    effect.)

All of PS, EPS, and PDF export formats uniformly support the export area
options (page or drawing) and the new export-id option:

  • You can now export a single object from a complex document (for example, a
    single layer) if you specify the ID of that object in the "Limit export to
    the object with ID" field in the GUI or via the --export-id=ID option on
    the command line. The export will show only that object (all others will
    not be exported). The BoundingBox (page size) of the exported PS/EPS/PDF
    file will correspond to the bounding box of that object. You can override
    this with "Export area is page" (GUI) or --export-area-page (command line)
    option which forces the output to have the size of the SVG document's page
    (this may not be possible with EPS, see below).

  • The "Export area is page" (GUI) or --export-area-page (command line) option
    forces the output to have the size of the SVG document's page. This is the
    default for PS and PDF but not for EPS.

      □ Note, the specification of the EPS format does not allow a bounding box
        to extend beyond the content. This is enforced by the Cairo graphics
        library which means that when --export-area-page is used with EPS
        export, the page bounding box will be trimmed inwards (but never
        expanded outwards) to the bounding box of the content if it is smaller.
        If you want a file which has a %BoundingBox different from the bounding
        box of its content, you can use PS or PDF export formats instead of
        EPS, or add a white background rectangle with the required size to
        source document before exporting to EPS.

      □ The --export-bbox-page command line parameter has been removed; use
        --export-area-page instead.

      □ The --export-area-page option was renamed from --export-area-canvas for
        consistency with the use of the terms page and canvas in the GUI.

  • The "Export area is drawing" (GUI) or --export-area-drawing (command line)
    option forces the output to have the size of the exported objects' bounding
    box, regardless of page size. If no --export-id is specified, this means
    the bounding box of the entire drawing; with --export-id, this means the
    bounding box of the exported object only. This is the default for EPS. Note
    that checking "Export area is page" or using --export-area-page overrides
    this setting for PS and PDF output.

  • The --export-embed-fonts option is removed. Inkscape now always embeds and
    subsets all fonts used in the document when exporting PS, EPS, or PDF.

UniConvertor-based import and export

Inkscape can now use UniConvertor to import files of the following types:

  • Corel DRAW versions 7 to X4 document files (CDR)
  • Corel DRAW versions 7 to X4 Template files (CDT)
  • Corel DRAW Presentation Exchange files (CMX)
  • Corel DRAW Compressed Exchange files (CCX)
  • sK1 files (SK1)
  • Computer Graphics Metafiles (CGM)
  • Windows Metafiles (WMF)
  • HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)

Inkscape can now use UniConvertor to export files of the following types:

  • Windows Metafiles (WMF)
  • sK1 files (SK1)
  • HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)

Text objects are not supported as of UniConvertor 1.1.4.

On Windows, UniConvertor is included with Inkscape distribution and does not
require separate installation.

HPGL export

In addition to the HPGL export via UniConvertor listed above, Inkscape can now
export to HPGL (Hewlett-Packard Graphics Language) via an internal routine that
is geared towards various cutters/plotters.

JavaFX export

Inkscape can export drawings to JavaFX format (.fx file extension).

DXF import and export

  • DXF export for desktop cutting plotters is much faster than in previous
    versions. A new option was added to provide support for RoboMaster desktop
    cutting software. Also, polylines and polysplines are now supported.

  • DXF import is new. It supports a number of the simpler DXF shapes: line,
    Bezier spline, ellipse, circular arc, text.

PNG export

  • PNG export has been updated to include metadata if present in the source
    SVG. This includes the Author, Copyright, Creation Time, Description, and
    Title fields. PNG metadata can be viewed using the ImageMagick identify
    command.

  • Export filenames that are relative (e.g. ../file.png or simply file.png)
    are now resolved relative to the document's location. This applies to the
    filenames you type in the Export dialog as well as those stored in export
    hints in the document itself (and used by the "Batch export" checkbutton as
    well as in command line export with --export-use-hints). However, export
    filenames specified directly on the command line are not resolved, which in
    effect means they work, as before, from the current working directory from
    which you run the export command.

OCAL (Open Clip Art Library) Export

  • Export to Openclipart.org has been disabled for 0.47 as it had become
    non-functional and needs to be re-written.

Autosave

The new autosave feature allow for automatic timed backups as work goes on.
Saved versions are put in a designated directory and do not overwrite the
original SVG file nor each other.

In Inkscape Preferences (Ctrl+Shift+P), Save tab, you can enable this feature
and specify various options:

  • the time interval between backups, in minutes;

  • the directory where you want the backups to be stored;

  • and the maximum number of saved backups (if this number is exceeded, old
    backups will start to be deleted).

Extensions

  • The former Effects menu is renamed to Extensions. This is less confusing
    and better reflects the content of the menu: a collection of extensions,
    written mostly in Python, which perform various tasks with or without
    selection.

New and improved extensions

  • The new Arrange > Restack extension restacks (changes the z-order of)
    selected objects, with options including: left to right, top to bottom (or
    vice versa), radial outward or inward, or at an arbitrary angle. You can
    also specify what point of an object is used to calculate its position for
    restacking.

  • The new Generate from Path > Extrude extension is similar to the old
    Extrude effect, which has been renamed Motion. The new effect requires two
    paths and draws connection lines or polygons between their nodes. If you
    want more dense extrusion, add more nodes to the paths. All the extrusion
    polygons are separate (grouped) objects, so they can be easily painted by
    the Tweak tool to get nicely shaded ribbons, 3D letters, and the like.

  • The new Generate from Path > Scatter extension spreads copies of pattern
    along arbitrary "skeleton" paths. The pattern must be the topmost object in
    the selection. Groups of paths, shapes, clones are allowed.

  • The improved Modify Path > Add Nodes extension now allows segments to be
    divided into a given number of subsegments.

  • The new Modify Path > Convert to Dashes extension takes the dash pattern of
    the stroke and explicitly cuts the curve to duplicate this pattern. This
    can be used to allow desktop cutting plotters, which don't understand
    dashed stroke style, to cut dashed paths. You can also achieve interesting
    effects with smoothly varying dash length if you edit the resulting path
    with Node Sculpting technique (Alt+drag with Node tool).

  • The new Render > Add printing marks extension adds printing marks and color
    bars required by print bureaus. You can either manually define margins by
    which cut marks are created.

  • The new Render > 3D Polyhedron extension draws 2D projections of 3D
    polyhedrons and other 3D shapes. You can choose one of a number of
    predefined shapes (cube, octahedron, truncated dodecahedron and others) or
    load a shape definition from an OBJ file. The shape can be rotated around
    any of the three axes by arbitrary amount; you can also define various
    style options such as color of the faces and stroke width, and enable
    shading with adjustable light source position.

  • The new Render > Alphabet Soup extension is a vector rework of Matt
    Chrisholm's script. Alphabet Soup randomly mashes glyph elements together
    to make exotic-looking text.

  • The new Render > Cartesian Grid extension plots Cartesian (square) grids
    that do not fill the page, but offer three levels of division, logarithmic
    scales (with clutter-reduction and arbitrary base) and customizable line
    width. All like elements (e.g. x-axis subminor divisions) are put into
    subgroups together. A proper border is also drawn, with an independent line
    width.

  • The new Render > Polar Grid extension plots a polar coordinate grid, with
    options for arbitrary-base logarithmic subdivisions, clutter-reduction
    around the origin, circumferential labels and custom line widths.

  • The new Render > Draw from Triangle extension takes a triangle drawn as a
    path (only the first three nodes of a path are counted) and allows to draw
    many triangle-related geometrical objects such as circumcircles, excentral
    triangles, etc. It also lets you specify custom trilinear coordinates and
    triangle centre functions, as well as compute basic triangle properties
    such as area and semiperimeter.

  • The new Render > Guides Creator extension quickly creates horizontal and
    vertical guides for subdividing the canvas. You can choose the divisions
    from None, 1/2, 1/3 ... to 1/10.

  • The new Render > Calendar extension draws a calendar for a given year with
    localizable month/weekday names, colors, and many other options.

  • The new Render > Foldable Box extension creates foldouts for paper boxes.

  • The new Text > Convert to Braille extension recodes English (or just Latin
    letters) text to Braille code. It is not intended to create a real Braille
    text for visually impaired people, just an accurate graphical
    representation of Braille text to be used in illustrations.

  • The new Modify Path > Interpolate Attribute in a Group extension takes a
    group of objects and assigns to its members interpolated values of an
    attribute of your choice, such as width, height, opacity, etc.

  • The new Web > JavaScript extensions allow you to set various interactive
    JavaScript attributes, such as onclick or onfocus, on SVG elements.
    Inkscape does not support them on rendering but you might need them for
    other SVG viewers such as Firefox.

Extension API changes

  • While the "Live preview" checkbox is useful for most effects, for some it
    just does not make sense. Now, you can add the attribute needs-live-preview
    ="false" in the effect element in the .inx file of the effect to suppress
    this checkbox for your effect.

  • Parameters passed to extensions (via the <param> element) now can have a
    boolean attribute, gui-hidden, to indicate that the parameter should not be
    represented in the GUI. If all parameters are marked as hidden, no GUI is
    presented for such extension.

  • All .inx files are now properly formatted XML files with their own
    namespace of: http://www.inkscape.org/namespace/inkscape/extension and a
    Relax NG schema to define it. More information can be found on the
    Extensions page.

Filters

The Filter Editor (former Filter Effects) and Remove Filters commands are moved
from the Object menu to the new Filters top-level menu, which also contains a
collection of preset filters.

Preset filters

The Filter Editor is powerful, but can be quite cumbersome. You can now apply
complex preset filters to selected objects with a single command by choosing it
from the new Filters top-level menu. Submenus categorize the filters by
function or appearance. To view a sampler of all preset filters, open
filters.svg document from Inkscape's examples (share/examples in the Inkscape
tree).

Most filters apply immediately after selecting the command; some present a
dialog where you can adjust some of the parameters before applying the filter
(such filters have "..." at the end of the command in the menu).

By default, if the selected object already has some filter applied, the chosen
filter will be merged with the existing filter for combined effect. However you
can also overlay several filters to an object while keeping them separated:
simply press Ctrl+G after applying any filter and then apply another one; the
filters will then display separately in the Filters Editor.

You can easily add your own filters to these menus. Simply place any SVG file
with the filters to the filters subdirectory of your config directory (~
/.config/Inkscape/ on Linux) and the filters will be picked up from it when you
start Inkscape. By default, they will be placed in the Personal submenu under
Effects > Filters. If you want to control this, add the following attributes to
the filter element:

inkscape:label         is the command label
inkscape:menu          is the submenu to place the command into
inkscape:menu-tooltip  is the tooltip (displayed in the statusbar
                       as you select the command)

No Filters rendering mode

In order to facilitate editing documents that use lots of SVG filter effects,
filter effects can now be disabled for a particular document window by
selecting View > Display mode > No Filters from the menu. This provides an
intermediate step between Normal and Outline view modes.

The Toggle View command in the Display Mode submenu (Ctrl+keypad 5) toggles
between all 3 modes in a loop: Normal, No filters, Outline.

Filter quality setting

In addition to the Blur Quality setting, Inkscape now has a general Filter
Effects Quality setting on the Filters tab of Inkscape Preferences. It affects
all filters and gives you an opportunity to seek optimum balance between speed
and accuracy when rendering filters.

  • Best quality is the quality used when exporting.
  • Better quality uses fast methods for transforming images, which
    occasionally shows up as jagged edges. Full rendering resolution is used.
  • Anything below that also uses low resolution rendering for filters.

For exporting images, the best quality is used regardless of this setting.

SVG support

Optimized CSS properties

  • As a file size optimization, Inkscape does not write into SVG some of the
    stroke properties if the object has stroke:none and some of the fill
    properties when it has fill:none. The only situation where this might
    affect you is if you remove stroke from an object and then turn it back on
    - the object will get the default stroke instead of the same it had before.

    Also, in manually-edited SVG where a parent group has no stroke but sets
    some stroke properties to be inherited by its descendants, you will need to
    set stroke property to other than none on the group, and suppress
    inheritance with stroke:none on those children that don't need it.

    Specifically, if stroke:none, the following properties do not get written
    to SVG:

stroke-width
stroke-linecap
stroke-linejoin
stroke-miterlimit
stroke-opacity
stroke-dasharray
stroke-dashoffset

    Note that this does not include marker properties, which means you can
    still have markers on a path without visible stroke.

    If fill:none, the following properties do not get written to SVG:

fill-opacity
fill-rule

  • The opacity property is not written if it has the default value of 1 (this
    property is not inherited, so the change should have no side effects).

  • The marker-start, marker-mid, and marker-end properties are not written if
    the marker property is already present with the same value.

Optimized path data

In this version, the size of the path data written in the d= attribute of path
elements is reduced by about 10%. Inkscape generates the shortest possible path
strings by avoiding repeated operators and using relative coordinates (when it
helps).

This is controlled by the options on the SVG output page of Inkscape
Preferences dialog. Also, you can change the following attributes in group id=
"svgoutput" in your preferences.xml file:

  • allowrelativecoordinates (default 1) to switch relative coordinates on (1)
    or off (0)
  • forcerepeatcommands (default 0) to force repeating operators (1) or allow
    use of the more compact representation without repeated operators (0)


Horizontal and vertical path segments

If an SVG contains paths with shorthands for horizontal and vertical path
segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if
possible, so the saved file will also contain them.

<script> tag preserved

While Inkscape does not yet support SVG scripting via the <script> element,
this element is now preserved after editing the file in Inkscape.

Initial SVG Fonts support

As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of
SVG Fonts. You can design fonts within Inkscape, but using them to render text
on the canvas is not yet supported. We are waiting for libpango to implement
proper support of the user-fonts feature.

Currently, the main benefit of this feature is to improve the font design
workflow when working with FontForge: You can save SVG files with fonts
embedded and import them into Fontforge, and you only need one file per font
instead of one file per glyph.

An SVG font is a mapping of chunks of SVG drawing to characters. When a certain
character is used in a string, its respective glyph is rendered. If no glyph is
declared for a certain character, then there is a default "missing glyph" that
is rendered. You can set the drawing that defines this missing glyph; this is
done by clicking on the Missing Glyph: From Selection... button at the top of
the dialog.

Here's an example of a font design workflow:

 1. Open the SVG Font dialog by _Text > SVG Fonts_.
 2. Click New under the font list. Select the new font in list; you can rename
    it by clicking on its name and typing a new name. You will see a set of
    black squares in the text preview area. This is the preview text being
    rendered. It only uses the default missing glyph (which is initially
    defined as a black square) because no specific glyphs were defined yet.
 3. Draw something that you want to use for the missing glyph
 4. Click Missing Glyph: From selection...
 5. Draw a glyph for the "a" character (character matching is case sensitive)
 6. On the Glyphs tab, click Add glyph
 7. Type "a" in the Matching String column (at the moment, handling of the
    glyph-name attribute is not implemented)
 8. With the row selected, click Get curves from selection...
 9. Now, you will see the "a" glyph in the preview rendering if the preview
    text contains it. You can edit the preview text as needed to view different
    characters.

Repeat steps 5 through 9 for every glyph you wish to add to your font, then
save the SVG file and open it in FontForge for further editing.

SVG Test Suite Compliance

As a result of last year's GSoC, there is now a rendering test framework along
with a number of tests (found in the SVN repository here). These tests can be
run reasonably easily on any system (you don't need to be able to compile
Inkscape) and include a large part of the  W3C SVG Test Suite. See this page or
this page for up-to-date rendering results. Also see TestingInkscape for
information on running and creating rendering tests.


Editing Aids

Grids

  • The dotted rectangular grid now shows small crosses at the intersection
    points of emphasis lines.

Guides

  • Guides can now be rotated using the mouse. Each guide has an anchor
    (visible as a little circle) around which it can rotate.

      □ Drag a guide anywhere to move it.
      □ Shift+drag to rotate a guide about its anchor (additionally press Ctrl
        to constrain the rotation angle to multiples of 15 degrees).
      □ Ctrl+drag to move the anchor along the guide.
      □ Press Del while hovering the mouse over the guide to delete it.

  • There is now an option in the Preferences dialog (Tools page) to treat
    groups as single objects during conversion to guides (as opposed to
    converting each object inside the group separately).

Snapping

Inkscape's snapping code has undergone major changes to make it more reliable
and easier to use. Snapping to objects now invokes routines from the 2geom
library, which is actively maintained and less error-prone than the old livarot
library.

There is a new snapping toolbar to control the snapping options and modes. Use
_View > Show/Hide > Snap_ controls bar to show or hide this toolbar. The
toolbar contains toggle buttons for various snapping modes (snap nodes, snap to
paths, etc.) as well as a master snapping toggle that disables and reenables
all activated modes.

Also, to control some of the snapping features, a Snapping tab has been created
in the Inkscape Preferences dialog. The new features found on this tab are:

  • Snap indicator: When snapping has occurred, an indicator is displayed at
    that specific position. For now that indicator is just a cross that
    disappears after a second. In the future the shape of the indicator will be
    related to the type of target that has been snapped to.
  • Snap delay: Inkscape now optionally waits some time after the mouse pointer
    has stopped moving before it tries to snap. This makes Inkscape much more
    responsive on complex documents and allows moving objects in a straight
    line over a grid, amongst others.
  • Inkscape can be forced to only try snapping the (source) node that is
    closest to the mouse pointer, à la Corel DRAW. When this mode is enabled, a
    snap indicator will shortly be shown at that node. This will give you
    maximum control of the snapping which is useful for complex drawings with
    many nodes.
  • When multiple snap solutions are found, Inkscape can either prefer the
    closest transformation (when the weight slider is set to 0; this is the old
    mode), or prefer the moved object's node that was initially the closest to
    the pointer (when the slider is set to 1). The way Inkscape calculates the
    preferred snap has been improved too, which should lead to more predictable
    snapping.

Other improvements are:

  • The Node tool now snaps to any unselected node (both cusp and smooth)
    within the path that's being edited, and nodes of other paths. It also
    snaps to the path itself, but only to the stationary segments in between
    two unselected nodes, not to the segment being currently reshaped. It is
    now also possible to snap while moving nodes along a vertical or horizontal
    constraint.
  • In the Document Properties dialog, the checkbox for "always snap" has been
    replaced by a pair of radiobuttons; this should eliminate most of the
    confusion surrounding this option.
  • Holding the Shift key now also disables snapping while dragging node
    handles and while creating single dots.
  • During constrained drawing (using Ctrl), Inkscape will now only snap to the
    points on the constrained line.
  • In the Selector tool, snapping while skewing or moving with a constraint
    (with Ctrl) has been improved.
  • Also in the Selector tool, while moving, Inkscape will now snap the
    bounding box of each selected item individually instead of the selection as
    a whole

Inkscape can consider the following objects for snapping, depending on the
toggles in the Snapping toolbar:

  • Clipping paths and masks
  • Midpoints of line segments
  • Midpoints of bounding box edges
  • Page border
  • Intersections of any kind of paths
  • Smooth nodes
  • Cusp nodes
  • Each of the handle points (when creating new shapes)
  • Radius handles of rectangles
  • Single dots

Other features

Spell checker

There's now a built-in spell checker. Press Ctrl+Alt+K or choose Text > Check
spelling to check all visible text objects in your document (they need not be
selected) in turn, going top-to-bottom and left-to-right. Once a misspelled
word is found, a red frame around it is displayed, and the object with the
misspelling is selected; if you are in Text tool, it also places the text
cursor at the beginning of the misspelled word.

In the dialog, you can choose one of the listed suggestions and Accept it (this
button is disabled unless you choose something in the list); Ignore the word
for the rest of this session; or Add the word to the local dictionary.

Also, since the dialog does not lock Inkscape's window, you can simply edit the
word with Text tool. Once you edit it to something acceptable to the speller,
it will automatically turn off the red frame and continue checking the
document.

On Linux, you need to install Aspell and its dictionaries for the languages you
want to check. On Windows, for now, only the English dictionary is included
with Inkscape builds.

Desktop integration improvements

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

  • Open Recent menu now integrates with Windows recent documents management as
    well as freedesktop.org recent document lists (used by Gnome, KDE and
    Xfce). The list can be cleared from the Preferences dialog (the Interface
    tab).

  • Themable Icons: all icons used in Inkscape are now themable using the
    standard freedesktop.org theming mechanism. The list of names used is
    available here.

Shell mode

If you run inkscape with --shell, it will enter a shell mode. In this mode, you
type in commands at the prompt and Inkscape executes them, without you having
to run a new copy of Inkscape for each command. This feature is mostly useful
for scripting and server uses: it adds no new capabilities but allows you to
improve the speed and memory requirements of any script that repeatedly calls
Inkscape to perform command line tasks (such as export or conversions). Each
command in shell mode must be a complete valid Inkscape command line but
without the Inkscape program name, for example:

$ inkscape --shell
Inkscape 0.47 interactive shell mode. Type 'quit' to quit.
>file.svg --export-pdf=file.pdf
>otherfile.svg --export-png=bitmap.png
Background RRGGBBAA: ffffff00
Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)
Bitmap saved as: bitmap.png
>quit

Gesture-based stroke width adjustment

Similar to editing the fill or stroke colors by dragging away from the color
swatch in the status bar (added in 0.46), this version allows you to drag away
from the stroke width value displayed there to change the stroke width of
selection. Dragging above the 45-degree line from the swatch increases the
width (up to four times the original width), dragging below it decreases the
width (down to zero). With this feature, quick yet precise stroke width
adjustments are possible without opening any dialogs or menus.

Tool switching by input device

Tablets and other input devices that report separate hardware (e.g. pen tip and
eraser on the two ends of the pen) are now recognized and current tool can be
set to change (to Calligraphic Pen or Eraser) in response to the physical tool
being used.

Layers

  • The Layers dialog now can hide or show all layers other than the current:
    click on the layer name with right mouse button to get the pop-up menu. The
    Solo feature allows you to quickly switch between working layers and check
    their content in isolation.

  • A new command, Duplicate Layer, has been added to the Layers menu to
    duplicate an existing layer with all of its objects (even hidden or locked)
    and any sub-layers.

  • The Add Layer dialog can be opened with Ctrl+Shift+N (N for new).

  • Layer names can now be non-unique within the document.

  • Several layer handling inconsistencies have been fixed.

Editing bitmaps in an external editor

Linked (but not embedded) bitmaps can be edited in an external application.
Right-click an image and choose Edit externally...

An image will reload when its linked file changes on disk. Both the external
editor application to use and the reload behavior are configurable on the
Bitmaps page of the Inkscape Preferences dialog.

Command for relinking clones

A new command, Relink Clone to Copied in Edit > Clone, allows you to relink any
clone to a different original object without changing its other properties.
Just copy (Ctrl+C) the object you want to be the new original, select any
number of clones, and choose the Relink command. Now all selected clones are
linked to the copied object.

Note that this may cause the clone to move if the new original and the old
original objects are in different positions.

Automatic relinking of clones on Duplicate

If you turn on the When duplicating original+clones: Relink duplicated clones
option on the Clones tab of Inkscape Preferences (default is off), duplicating
a selection containing both a clone and its original (possibly in groups) will
relink the duplicated clone to the duplicated original instead of the old
original.

Pattern editing

When editing pattern fills:

  • The pattern origin and scale handles now snap.
  • The pattern scaling can now be different in X and Y direction. Press Ctrl
    to have a fixed 1:1 ratio scaling (old behavior).
  • The handles are now positioned at the corners of the unit cell, instead of
    only a quarter of that cell as before. So, now a rectangle filled with
    pattern will have all of the pattern handles in the corners, making it
    harder to manipulate them. However, the handles can be dragged outside the
    rectangle by moving the pattern's origin handle.

Transform dialog: spacing out option

Previously, the Apply to each object separately checkbox had no effect for the
Move tab of the Transform dialog (Ctrl+Shift+M). Now, if several objects are
selected, this checkbox is on, and "Relative move" is on, each object is
shifted relative to the closest selected object on the left (for X) or below
(for Y).

For example, if you have a horizontal row of objects and you move them
relatively by x = 5 px with "Apply to each object separately" on, the leftmost
object will shift by 5px, the next one to the right by 10px, and so on; the
rightmost selected object is displaced by 5*n px where n is the number of
selected objects. As a result, the distance in each pair of adjacent objects
will increase by 5px and the whole row will be spaced out, much like a
letterspacing adjustment spaces out a text string. Moving these objects by X=
-5px will, conversely, squeeze them tighter together: the leftmost will move by
-5px, the next one by -10px, and so on. For Y, the effect is the same except
that the move starts from the object closest to the bottom (i.e. with smallest
Y coordinate).

When determining the order of shifting objects, for X, the left edges of their
bounding boxes are sorted horizontally, and for Y, the bottoms of their
bounding boxes are sorted vertically. The order of selecting the objects or
their z-order do not matter.

Converting text to path produces a group

Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of
paths, one path for each glyph of text, instead of a single monolithic path as
before. Apart from easier manipulation, an additional advantage is that if your
text contained styled spans (i.e. fragments with different color, opacity, or
other properties), these styles will be preserved by the corresponding glyph
paths after the conversion. You can still easily get a single path out of such
a group by selecting it and doing Combine (Ctrl+K).

Combine works on groups

The Combine command now works transparently on groups, i.e. combines paths
inside selected groups at any level of grouping.

Exclusion works on multiple paths

The Exclusion boolean operation can now operate on an arbitrary number of
paths.

No more Whiteboard

The configure flag for Whiteboard has been removed since the feature was
non-functional. This menu item will no longer exist in the releases until it is
properly fixed to avoid any confusion.

Save As directory

On the Save tab in Inkscape Preferences, an option was added to change the
behavior to our old behavior. When this option is on, the "Save as..." dialog
will always open in the directory where the currently open document is. When
it's off, it will open in the directory where you last saved a file using that
dialog..

Packaging Improvements

Packaging for OSX and Windows has been worked on heavily and greatly improved
during this release cycle. Inkscape also now has a Portable version available
for Windows.

User interface

Inkscape Preferences dialog

  • This dialog has been rearranged for more logical grouping of options. New
    pages have been added: Bitmaps (options for the new update-on-file-change
    and external editor features), UI (options for toolbar icon sizes), SVG
    Output (options for SVG formatting, introduced in 0.46 and now editable
    from the dialog as well), and Save (save directory and autosave options).

Bitmap Copy resolution

  • A new option on the Bitmaps tab, Resolution for Create Bitmap Copy, allows
    you to set the resolution of the bitmap created by the corresponding
    command (by default bound to Alt+B). The default value of 90 dpi forces the
    resulting bitmap to align with the default 1px-spaced grid on the canvas.

Zoom correction factor

  • The Interface tab has an adjustable ruler for Zoom correction factor. Move
    the slider until the ruler's on-screen size matches its true size. This is
    used as a reference point for the 100% (original size) zoom command.

Interface language choice

  • The application's interface language can be set from the preferences
    dialog, Interface tab. You'll have to restart Inkscape for this choice to
    take effect.

Toolbars

  • On the Interface tab, the toolbar icon sizes for the three main toolbars
    are now separately configurable and to a few different sizes. This allows
    for a more compact user interface.
  • The vertical toolbox has been converted to a standard GtkToolbar, which
    fixed the problem of it pushing the main window taller. Tools that don't
    fit automatically go into a popup menu.
  • When torn off, toolbars now keep the size they last had in the main window.
    They can be resized by docking, resizing the main window, and then
    undocking again.
  • Some controls (such as the Width in Calligraphic/Tweak/Eraser tools,
    Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket,
    Tolerance in Pencil) are converted from numeric editable fields into
    draggable sliders, with labels and values (usually in the range 0..100)
    displayed on top. As these values don't usually require high precision,
    this makes adjusting them much easier and faster.

Clone/original visualization

When you press Shift+D to find and select the original of the selected clone,
Inkscape draws a dashed blue line between the centers of the bounding boxes of
the clone and the original. This line disappears after one second.

File dialogs

  • The Windows builds of Inkscape now have Windows-native file dialogs to keep
    consistency with other Windows applications.
  • Two new entries in the File type list, All Bitmaps and All Vectors, allow
    you to limit the listing to bitmap or vector formats only.

Document Properties dialog

  • New Color Management tab. In this new tab, you can declare multiple ICC
    color profiles for the current document.
  • New Script tab. ?

Object Properties dialog

  • New Title and Description fields. The Title attribute is intended to be
    used as tooltip. [sas]
  • New Interactivity section to add JavaScript calls.

Miscellaneous

  • The confusing icons on buttons in the controls bar of the Dropper tool
    (pick/assign opacity) are replaced by text labels.
  • Hovering over a swatch now shows the name of the swatch in the status bar.
    This makes it easier for tablet users to identify a swatch by name, as
    holding a stylus still enough for the tooltip to show up may be difficult.
  • In the Align and Distribute dialog, there is an option to treat all
    selected objects as a group when aligning. This spares the trouble of
    manually grouping them, aligning, and ungrouping afterwards.

Notable bug fixes

  • Several memory leaks are stopped, reducing the memory consumption during
    long editing sessions considerably. Closing the last window with a document
    now frees memory used by that document immediately.

  • Copy/paste between Inkscape and other programs, as well as between
    different Inkscape instances, finally works as expected.

  • No more ID clashes on import and paste: previously, importing or pasting
    SVG objects might sometimes distort their colors, because the imported
    objects referred to gradients with the same IDs as those that already exist
    in the document but look different. Now, IDs of all gradients in the pasted
    document are checked for clashes with those in the host document, and if
    necessary changed with all their users updated correspondingly, so such
    unexpected color changes will never happen.

  • The visual bounding box (which is the default bounding box type used by
    Inkscape) of an object with a filter applied now includes the expanded area
    of the filter. For single blur filter (such as the blur you apply with a
    slider in the Fill and Stroke dialog), this expands the bounding box by
    2.4*radius; although theoretically, blur is infinite, this is the distance
    at which the opacity of the object drops below the perceptibility threshold
    of our renderer. For all other filters, the area is expanded by the
    relative amounts you specify on the "Filter general settings" tab of the
    Filter Editor dialog.

    Only visual bounding box is affected; if you use geometric bounding box,
    you will notice no change in most cases. However, the Export Bitmap dialog
    always uses the visual bounding box for selection of the export area; this
    means that you can now export a blurred object to bitmap without any
    clipping of the blur.

  • Bounding box calculation does not include the invisible objects, bug #
    252547.

  • Various fixes to PS and PDF rendering of objects involving masks, patterns,
    and/or bitmaps: bug #208217, bug #217212 and others.

  • File dialogs (Open, Save, Save as) now remember the last visited directory.

  • The --vacuum-defs command line parameter erroneously deleted markers which
    are in use.

  • No more garbage lines in Outline mode.

  • No more artifacts left by the circle cursor in Tweak tool.

  • The Bend Path and Pattern along Path path effects now work correctly with
    closed paths.

  • Several viewBox related bugs fixed:

      □ Documents with viewBox are now editable without transformation defects.
        In particular this affected documents created with e.g. pstoedit. bug #
        168370
      □ Resizing the page adjusts viewBox bug #167682.
      □ preserveAspectRatio parsing code was fixed bug #166885.

  • Several fixes allow Inkscape to correctly render and edit SVG files that
    use currentColor in objects' style (this includes files created by
    gnuplot).

  • Inkscape is now able to handle paths with only 'movetos', i.e. "M 0,0 M 1,1
    M 2,2". These kind of paths can be used to only show markers on a path
    without the rest of the path visible.

  • Open paths (as opposed to closed) are now correctly drawn when start and
    end points are equal (SVG test suite paths-data-10-t.svg).

  • The shorthand 'marker' property is now correctly interpreted (SVG test
    suite painting-marker-03-f.svg).

  • Coordinates and lengths specified in percentages are now correctly
    interpreted (SVG test suite coords-units-02-b.svg).

  • Horizontally scrolling the canvas with a tilt wheel (present on several
    Logitech mice such as the LX5) in the Bezier tool will no longer finish the
    path being drawn.


Known issues

  • First time opening of the drop-down list with font families in Text tool
    may be slow, especially if you have many fonts installed. Subsequent
    accesses of this list are fast.


For information on prior releases, please see:
    http://wiki.inkscape.org/wiki/index.php/Inkscape