Code

Grabbing news from the wiki
[inkscape.git] / NEWS
1 Inkscape 0.47
3 Inkscape 0.47 brings a host of important improvements all across the program:
5   • Timed autosave: no more lost work
7   • Spiro splines: an exciting new way to work with paths, fully supported in
8     Pen, Pencil, and Node tools
10   • Auto smooth nodes: a new type of node that keeps the path as smooth as
11     possible as you move it or its neighbors
13   • New modes in Tweak tool: pushing and jittering whole objects, scaling/
14     rotating objects, deleting and duplicating using the "soft brush"
16   • Reworked, much more usable snapping system and a Snapping toolbar
18   • New path effects, including sketch, hatching, envelope deformation; effects
19     can be stacked and assigned to groups
21   • A huge collection of preset filters in the new Filters menu
23   • New cairo-based PS and EPS export: improved quality, more features
24     supported, fallback rasterization for filters and transparency
26   • Spell checker for text objects in a document
28   • Many new extensions: restacking, calendar, printing marks, cartesian and
29     polar grids, interpolating attributes
31   • Optimized SVG code options, now with their own Preferences page
33   • Many other improvements, usability tweaks, memleak stops, and misc bugfixes
35 Refactoring effort
37 The focus of the 0.47 release was to clean up legacy code and push forward the
38 migration to clean object-oriented C++. The goal of this effort was to increase
39 reliability and maintainability of Inkscape. In the long run, it will mean
40 fewer bugs and more new features, because it will be easier to develop and find
41 bugs in Inkscape.
43 Migration to lib2geom
45 Many parts of the code have been changed to use the 2geom library for
46 geometrical calculations instead of the old libnr and livarot libraries.
48 Preferences
50 Instead of global functions directly manipulating an XML document, the
51 preferences API is now exposed through the Inkscape::Preferences singleton. It
52 abstracts away the way the preferences are stored in memory. In the future it
53 may allow for different user settings storage backends (like GConf or the
54 upcoming dconf on GNOME desktops or .plist files on OS X). Previously, Inkscape
55 directly manipulated an internal XML document.
57 The Preferences directory has been moved on Linux (and Mac OS X) from ~
58 /.inkscape to ~/.config/inkscape to better conform to Linux desktop standards.
60 Tools
62 Node tool
64   • In previous versions of Inkscape, no visual feedback was given back to the
65     user when hovering over paths when using the Node tool. In this update,
66     hovering over a path with the Node tool now results in a highlighted path
67     outline being displayed. Note: the duration and color of the new path
68     outline feature can be configured in the Tools > Node section of the
69     Inkscape Preferences dialog.
71   • The Node tool can now edit clipping paths and masks of objects on canvas,
72     without releasing them. If the selected object has a clipping path and
73     mask, the corresponding buttons on the controls bar of the tool will be
74     enabled; pressing these buttons will display the editable paths or handles
75     of the clippath or mask. A clipping path is stroked green, a mask is
76     stroked blue (the same colors as those used for them in Outline mode).
78   • Snapping has been improved (more details in Snapping below).
80   • When dragging a node handle with Ctrl pressed, it now snaps not only to the
81     15 degree increments starting from 0 and to the original handle direction,
82     but also to the direction of the opposite handle (if it exists) or of the
83     opposite line segment (if it is a straight line).
85   • The behavior of the buttons/shortcuts that make a node smooth or cusp has
86     been improved:
87       □ If a node is already a cusp (diamond shaped), pressing Shift+C again on
88         it will retract both its handles. As this works for any number of
89         selected nodes, you can always retract all handles in all nodes by
90         selecting all nodes and pressing Shift+C twice.
91       □ If a non-smooth node is next to a straight line segment, pressing
92         Shift+S once makes it half-smooth: it now has one handle aligned with
93         that line segment. Another press of Shift+S will expand the second
94         handle as well turning it into a full smooth node. If a node is between
95         two curve segments, Shift+S will expand both handles as before.
97   • Auto smooth nodes: this is a new node type, similar to the one Xara Xtreme
98     has. An auto node is a smooth node which automatically adjusts (rotates and
99     stretches) its handles when this node or its neighbors are moved. This
100     adjustment (same as what you get when you convert node type to Smooth, but
101     continuous) keeps the curve at this node as smooth as possible. It feels a
102     bit like Spiro paths (see below); although not as smooth as a Spiro, auto
103     nodes may often be preferable as they work without applying any path
104     effect. Whenever you manually adjust the handles of an auto node or drag
105     the adjacent curve, the node loses its auto state and becomes simply
106     smooth; for this reason, it is recommended to edit smooth nodes with the
107     node handles hidden via a toggle button on the Node tool controls bar. Auto
108     nodes are represented by little circles, as opposed to smooth/symmetric
109     nodes (squares) and cusp nodes (diamonds). To convert selected node(s) to
110     auto, press Shift+A or use the corresponding node type button on the
111     controls bar.
113 Tweak tool
115 Several new modes are added to the Tweak tool for transforming, duplicating,
116 and deleting selected objects using the same "soft brush" metaphor that the
117 path editing and coloring modes use. Using these new modes, it is easy to
118 "sculpt" scatterings of small objects, such as clone tilings, into complex and
119 naturalistic textures.
121   • Push mode moves those selected objects that are under the brush in the
122     direction in which you move the brush. This is similar to the Push path
123     mode, except that the Move mode affects entire objects and not parts of the
124     paths under the brush.
126   • Attract/Repel Objects mode moves those selected objects that are under the
127     brush towards the cursor (default) or away from cursor (with Shift
128     pressed). This is similar to the Attract/repel path mode, except that the
129     Move in/out mode affects entire objects and not parts of the paths under
130     cursor.
132   • Jitter mode moves those selected objects that are under the brush in random
133     directions and by random amounts, but the overall amount of movement
134     depends on Force, pen pressure (if you're using a tablet pen), on the
135     closeness of the object to the center of brush, and on how long you apply
136     the brush.
138   • Scale mode scales those selected objects that are under the brush down (by
139     default) or up (with Shift pressed). The speed of scaling depends on Force,
140     pen pressure (if you're using a tablet pen), on the closeness of the object
141     to the center of brush, and on how long you apply the brush.
143   • Rotate mode rotates those selected objects that are under the brush
144     clockwise (by default) or counterclockwise (with Shift pressed). The speed
145     of rotation depends on Force, pen pressure (if you're using a tablet pen),
146     on the closeness of the object to the center of brush, and on how long you
147     apply the brush.
149   • Duplicate/delete mode randomly duplicates those selected objects that are
150     under the brush (by default) or deletes them (with Shift pressed). The
151     chance of an object to be duplicated and deleted depends on Force, pen
152     pressure (if you're using a tablet pen), on the closeness of the object to
153     the center of brush, and on how long you apply the brush. Like with the
154     regular Duplicate command, duplicating with Tweak tool places the copies
155     right over the originals, and you may need to use the Jitter mode to ruffle
156     them apart. The duplicates created by the tool are automatically added to
157     selection if the originals objects were in selection (e.g. if you're
158     tweaking a group of objects, they are duplicated within that group and are
159     not by themselves selected).
161   • Blur mode blurs the selected objects under the brush more (by default) or
162     less (with Shift pressed). The amount of blur added or removed depends on
163     Force, pen pressure (if you're using a tablet pen), on the closeness of the
164     object to the center of brush, and on how long you apply the brush.
166 Also, the existing path editing modes of the tool have been rearranged: now
167 Shrink and Grow are one mode (shrinks by default, grows with Shift), and
168 Attract and Repel are one mode (attracts by default, repels with Shift). Here
169 is a complete list of modes and shortcuts of the Tweak tool:
171 Shift+m, Shift+0                move mode
172 Shift+i, Shift+1        attract/repel objects mode
173 Shift+z, Shift+2        jitter mode
174 Shift+<, Shift+>, Shift+3       scale mode
175 Shift+[, Shift+], Shift+4       rotate mode
176 Shift+d, Shift+5        duplicate/delete mode
177 Shift+p, Shift+6        push path mode
178 Shift+s, Shift+7        shrink/grow path mode
179 Shift+a, Shift+8        attract/repel path mode
180 Shift+r, Shift+9        roughen mode
181 Shift+c         paint mode
182 Shift+j         color jitter mode
183 Shift+b         blur mode
185 In Paint mode, painting with Shift inverts the color you're applying (e.g. when
186 painting with yellow, Shift will switch the applied color to blue).
188 Calligraphy tool
190   • The tool's settings can now be set from a preset (see the drop-down list in
191     the controls bar). Several presets are provided that imitate various
192     drawing implements and styles.
194   • When drawing with Alt pressed, Inkscape subtracts the new path you are
195     creating from the selected path. With Shift, it unions the new path with
196     the selected path. This allows you to quickly patch or erase defects in a
197     stroke you have drawn, without leaving the tool.
199   • The behavior of the tool when tracking a guide (drawing with Ctrl) has been
200     improved:
202       □ The initial "jerk" when you start drawing is suppressed.
204       □ The undesired flipping of the stroke to the other side of the guide
205         path, when drawing along closed paths, is fixed.
207       □ If you lose connection with your guide path, the tool tries to continue
208         moving in the same direction as if by inertia, so as to minimize the
209         tearoff jerk.
211 Paint Bucket tool
213   • Paint Bucket is now more tightly integrated with potrace. As a result,
214     memory and CPU usage on each fill operation have been reduced
215     significantly.
217 Eraser Tool
219 A new tool, Eraser, has been added to the main toolbox. Its shortcut is Shift+E
220 . It has two main modes, selectable by toggle buttons on its controls bar:
222   • Delete Objects mode: any shape touched by dragging is deleted completely.
223     This is analogous to "touch selection" in Selector followed by Del.
224   • Cut mode: dragging subtracts, using a boolean Subtract operation, parts of
225     paths it touches. On the controls bar, you can adjust the Width of the
226     trace left by the tool. If nothing is selected, it acts on all objects in
227     the current layer, whether selected or not; if there's a selection, its
228     action is limited to selection. This mode is similar to Alt+drag in
229     Calligraphic tool.
231 Pen and Pencil
233 New modes
235 Apart from the regular Bezier mode, these drawing tools now provide several new
236 modes:
238   • Spiro mode: This mode automatically applies the new Spiro Splines path
239     effect (see the section on new effects) to any newly drawn path. As
240     mentioned below, it is not yet possible to preview a spiro before it is
241     finished. This mode is available in both Pen and Pencil tools.
243   • Polyline mode (Pen only): This mode makes it easy to draw many straight
244     line segments by disallowing any curves, even when you accidentally drag
245     with the mouse instead of clicking.
247   • Paraxial mode (Pen only): create straight line segments that are parallel
248     to one of the coordinate axes. This works similar to the Polyline mode with
249     Ctrl. Normally, each next line segment is drawn perpendicular to the
250     previous one, but the direction of the line segment being drawn can be
251     toggled by pressing Shift. If you click on the start anchor, the path gets
252     closed with an L-shaped segment (its direction of which can also be flipped
253     with Shift).
255 Stroke shapes
257 As a first step towards this blueprint, it is now possible to automatically
258 apply predefined vector shapes to path strokes in Pen and Pencil tools. The
259 choice of shapes in the drop-down list on the controls bar includes:
261   • Triangle in and Triangle out: tapering out in both directions
263   • Ellipse: smooth elliptic shape stretching along path
265   • From clipboard: any path you had previously selected and copied to
266     clipboard
268 To adjust the width of the stroke, open the Path Effect Editor, choose "Pattern
269 along path" effect, and edit its Width parameter. It is measured in units of
270 the original size of the applied shape; the triangles and ellipse are all 10px
271 in size, and the clipboard size can be any size. The default value of Width is
272 1.00, which means the triangle/elliptic strokes will be 10px wide and the
273 from-clipboard stroke will be as wide as the copied object was tall.
275 Pencil smoothing
277 In Pencil tool, the controls bar now provides the Smoothing parameter,
278 changeable in the range from 1 to 100, which controls how much smoothing is
279 applied to the freehand lines you draw. Small Smoothing values produce rough
280 lines with many nodes; large values give smooth lines with few nodes.
281 Previously, this control was only available in Inkscape Preferences.
283 Pencil sketch mode
285 The sketch mode is still experimental. In essence, it enables the artist to
286 draw many strokes, which Inkscape then averages into a single path. It tries to
287 mimic sketching with a real pencil and paper, taking the 'visual average' of
288 many strokes and condensing it into one stroke.
290 Pick the pencil tool, press Alt, and sketch away; release Alt to finalize the
291 result. After each stroke (a stroke starts when the mouse button is pressed
292 down, and ends when it is released), the resulting path will be an average of
293 the old result and the newly drawn stroke. In Inkscape's Pencil tool
294 preferences, one can choose to either average between all drawn strokes (so
295 that all stroke have the same weight), or just the new stroke and the old
296 result (so that later strokes have greater weight).
298 Currently, going back and forth between A and B in one stroke does not give the
299 expected result; it will result in a long path going back and forth, instead of
300 the visually expected path going from A to B just once. We are working on this
301 (difficult!) issue. For best results, draw strokes only from A to B (and not
302 from B to A).
304 Text tool
306   • When editing multiline or flowed text, the PgUp and PgDn keys now work to
307     move the cursor by one screen (i.e. by as many lines as fit into the screen
308     at current zoom).
310   • The usability of the font family drop-down list in the Text tool controls
311     bar has been improved: it no longer steals focus, all keyboard shortcuts
312     work as designed (Alt+X to access the family control, Alt+down to open the
313     drop-down list with font previews, arrows to move in the list, Enter to set
314     chosen font) and the completion feature works (start typing a family name
315     and a pop-up list with possible completions appears).
317     A remaining problem that may be fixed in a future version is that the first
318     opening of the drop-down list of family names may be slow (several seconds)
319     if you have many fonts installed (the delay is Inkscape generating the
320     previews for all fonts). Subsequent openings of the list are much faster.
322 Connector tool
324   • Connectors are now drawn to the edges of shapes, rather than to the
325     bounding box of shapes.
326   • The routing buffer around shapes is now altered in the correct direction
327     when the user changes this via the spacing control fon the connector
328     toolbar.
329   • A bug has been fixed where the spinboxes on the connector toolbar did not
330     properly respond to single clicks of their up and down arrows.
332 Path effects
334 Path Effects stacking
336 More than one Path Effect can be assigned to an object. A new UI was created to
337 control the stack in the Path Effects Editor (Shift+Ctrl+7): the Effect list
338 shows the stack of effects for the selected object; below, buttons allow you to
339 move a selected effect in the stack up or down or remove it from stack.
341 The stack works from top to bottom, i.e. the topmost listed effect is applied
342 first, the second one works on the result of the first, and so on until the
343 bottom effect which produces the final visible result. A new effect that you
344 choose in the "Apply new effect" list and created by the Add button gets added
345 to the end of the current stack.
347 Path Effects for groups
349 Path effects can now be assigned to a group. In most cases, the effect is
350 applied recursively to the member paths, but for Bend Path and Envelope
351 Deformation the result that the distortion applies to the group as a whole.
353   • You can, as usual, enter the group by double-clicking on it, and edit the
354     paths there watching the transformed result update live.
356   • Path effects can be assigned to groups of groups, applying recursively to
357     all grouped paths.
359   • The Convert Object to Path command (Ctrl+Shift+C), when applied to a group
360     with effects applied, removes these effects from group and converts all its
361     member paths to effect-less paths looking exactly as before.
363 Misc new features
365   • The Paste Path Effect command in Path menu can now assign the path effect
366     of the clipboard's path to any number of paths, going recursively into
367     groups if necessary.
369   • A new command, Remove Path Effect in Path menu, removes any path effects
370     from all selected objects, going recursively into groups if necessary.
372   • Path effects can now be assigned to the sides of a 3D box (use Ctrl+click
373     to select individual sides) without breaking its 3D functionality.
375   • The Pen and Pencil tools now correctly work with paths with effects: you
376     can continue such a path or add a new subpath to it by drawing with Shift,
377     while preserving the effects applied to it.
379   • Path parameters of effects can now link to existing shapes or texts. For
380     example, now it is possible to use a text as the pattern for the Pattern
381     Along Path effect, or shape a path with the Envelope Deformation where one
382     of the envelope sides is text! Since the effect links to the text, not
383     copies it, the result will update live if you edit the text.
385   • Lib2geom now has an implementation for EllipticalArc. For Inkscape, this
386     means that it is now possible to directly copy-paste ellipse shapes to path
387     parameters (e.g. 'pattern' in Pattern along Path), without the need to
388     convert the ellipse to path first.
391 New effects
393   • Sketch: Simulates hand-drawn lines. A set of parameters lets you tune the
394     effect. They are all summarized in this picture.
396     [300px-SketchExemple]
398   • Hatches: Fills the shape with rough, randomized hatches, simulating a quick
399     hand drawing. It is configurable through numeric parameters as well as
400     on-screen handles visible in Node tool.
402     [300px-Hatches-lpe].
404   • von Koch: This effect creates fractal pictures. A collection of
405     transformations (rotations, rescalings, etc...) is recursively applied to
406     the input path. The transforms are derived from a "reference" path (a line
407     segment) and a "generating" path (basically a collection of segments): the
408     transforms are those needed to move the reference segment onto each segment
409     of the generating path (components in the generating path having more than
410     one segment might be used to define shearing/mirroring transforms). A
411     famous example is the von Koch's snowflake.
413     [300px-VonKochExample]
415     Warning: the complexity of the output path grows exponentially fast with
416     the number of generations. As a guardrail, an editable complexity bound is
417     provided, above which the effect is disabled.
419   • Knot: Creates a knot from a flat self-intersecting curve: at each crossing,
420     one strand is interrupted to make it look like it's going under the other.
421     The "sign" of each crossing (first strand interrupted, second interrupted,
422     or no interruptions) can be set independently by clicking the on-screen
423     handle which can be dragged from one crossing to the other.
425     [300px-KnotExample]
427     Warning: as far as possible, the lpe tries to keep the modifications of
428     crossing signs unchanged under small deformations. For large or topology
429     changing deformations however, some or all crossings might jump back to
430     their default orientation.
432   • Spiro splines are a novel way of defining curvilinear paths developed by
433     Raph Levien. It takes some getting used to, but for certain tasks (such as
434     lettershape design) Spiros have a clear advantage over Bezier curves.
435     Recently, Spiro support was added to the FontForge font editor; now it is
436     available in Inkscape too, which means you can use all the convenient
437     Inkscape path tools (moving and transforming groups of nodes, node
438     sculpting, etc.) on Spiro paths.
440     A Spiro path is defined by a sequence of points, but unlike a regular path
441     with Bezier curves, all Spiro points lie on the path and there are no
442     off-path handles. The curvature of the path is defined entirely by the
443     positions of the points and their types. The path behaves very similar to a
444     springy rod which is forced to pass through the given points and which uses
445     the minimum possible curvature to satisfy the requirement. As such, it
446     feels quite natural and the resulting path is very smooth - not just
447     superficially smooth (i.e. having no cusps), but smooth at a deeper level,
448     which you can achieve with Beziers only after a lot of laborious tweaking.
450     To create a Spiro path, select any path and assign the "Spiro spline" path
451     effect to it. There are no parameters. Each node of your path becomes a
452     point of a Spiro path, depending on the type of node:
454       □ Smooth nodes (those with two collinear Bezier handles; use Shift+S to
455         make a node smooth) become smooth curve points of the Spiro path. Note
456         that the length or direction of the Bezier handles of the source path
457         is ignored; the only thing that matters is their collinearity.
459       □ Cusp nodes of the source path become corner points of the Spiro path,
460         like free hinges on the springy rod. Between two corner points, the
461         path is always a straight line. To make a node cusp, retract its Bezier
462         handles by Ctrl+click, or press Shift+C and move one of the handles so
463         they are no longer collinear.
465       □ Half-smooth nodes - those with one Bezier handle collinear with a
466         straight line segment on the other hand - become "left" or "right"
467         points on the Spiro path which behave exactly the same: they sit
468         between a straight line and a curve and enforce that these two segments
469         join smoothly without a cusp. To create such a node, make sure one of
470         the segments is a line (select its ends and press Shift+L), then
471         Ctrl+drag the remaining handle to make it snap to the direction of the
472         straight line segment on the other side, or press Shift+S to lock it to
473         that direction.
475     Note that what matters is the actual collinearity of a node's handles,
476     regardless of the node type that the node has in the Node tool; for
477     example, if a node designated as cusp (diamond-shaped) has collinear
478     handles, it will become a smooth curve point of the Spiro path.
480     Some configurations of points do not converge and produce wild loops and
481     spirals instead of a smooth curve. According to Raph, "The spline solver in
482     this release is _not_ numerically robust. When you start drawing random
483     points, you'll quickly run into divergence. However, "sensible" plates
484     based on real fonts usually converge." Avoid too sharp changes in direction
485     between points to prevent divergence. Hopefully, the robustness of the
486     algorithm will be improved in future releases.
488     For now, to edit Spiro paths viewing the result in real time, you have to
489     use the Node tool; it is recommended to turn off the red highlight of the
490     source path. The Pen tool does not yet allow you to preview a Spiro as you
491     draw, although you can paste the Spiro effect on the path and see the
492     result as soon as the path is finalized.
494     You can always use the Node tool to continue a Spiro path by duplicating
495     and dragging away its end nodes. Also, when you have a Spiro path selected,
496     you can add a new subpath to it with Pen or Pencil if you start drawing
497     with Shift.
499   • Construct Grid: Draws a grid using the first three nodes of a path. The
500     center node defines the origin. The other two nodes define the direction
501     and length of the two adjacent sides of the first cell. If a path has more
502     than three nodes, the other nodes are ignored. One can select the number of
503     cells in the two orthogonal directions.
505   • Envelope Deformation: Allows you to deform an object (or a group of object)
506     by deforming its sides. Modifications are done by deforming the four path
507     parameters: Top, Bottom, Left and Right; for each, you can edit it with
508     Node tool, copy, paste, or link to an existing path in the document.
510   • Ruler: Draws ruler marks along the path; you can set distance between the
511     marks, their length for major and minor marks, the major/minor ratio, and
512     other parameters.
514   • Interpolate Subpaths: Creates a given number of interpolated paths between
515     the (first) two subpaths of a path (the subpaths after the second subpath
516     are ignored). The interpolations are spread along an editable trajectory
517     path.
519     [InterpolateSubpathsExample]
522 Notable effect bugfixes and changes
524 We try to refrain from changing the behavior of existing path effects, because
525 it will change appearance in old files when opened in a new version of Inkscape
526 (but not in any other SVG viewer or editor). However, when an effect is really
527 broken, we have to fix it:
529   • Pattern Along Path:
530       □ The pattern used to be stretched across discontinuities (separate
531         subpaths). This has been fixed; now it treats a discontinuous path as a
532         group of continuous paths and applies the effect separately to each.
533       □ Successive copies of the pattern can now be fused into continuous paths
534         (using the new "fuse nearby ends" feature) so that "filling" the result
535         works as expected.
537   • Bend Path:
538       □ Closed input paths would sometimes result in unclosed output paths.
539         This has been fixed.
541 Import/Export
543 PostScript and EPS import
545 Inkscape's PS and EPS import now uses Ghostscript instead of pstoedit. If you
546 need to open files of these types, install Ghostscript and make sure the
547 directory with the ps2pdf utility from Ghostscript installation is in your
548 PATH. On importing a file, you will see a preferences dialog, similar to PDF
549 import; for multipage PS files, this dialog allows you to select which page to
550 open.
552 PDF import
554   • A new checkbox on the PDF import dialog, Replace PDF fonts with
555     closest-named installed fonts (on by default) attempts to replace all font
556     names in the imported PDF with the most similar names of those fonts
557     installed on your system. For example, if the PDF uses the font
558     "TimesNewRomanPSMT" and you have "Times New Roman" installed, that font
559     will be used, which will likely give you a more correct appearance than the
560     unknown font "TimesNewRomanPSMT" that will be displayed as the default sans
561     serif font. This is a temporary fix necessary because Inkscape cannot yet
562     extract the fonts from the PDF files it imports nor can it embed them into
563     SVG; when it gets these capabilities, such font name conversion will become
564     unnecessary because all fonts will be preserved.
566   • Importing PDF files now works from the command line. For example,
568 inkscape file.pdf --export-plain-svg=file.svg
570     will take the first page of the PDF and use the default import options, and
571     save the result to SVG. If you try to import PDF without an --export
572     command, it will show the import options dialog as before and open the file
573     in the UI.
575 PDF, PostScript, and EPS export
577 The new Cairo-based PS and EPS exporter provides much better support for
578 various vector features, including clipping paths, patterns, and non-ASCII
579 characters. Those features that are not supported by the targeted format become
580 embedded bitmaps that preserve the appearance. In particular:
582   • transparency is always rasterized in PS or EPS but not PDF, as PDF supports
583     vector transparency;
585   • filters, such as blur, are by default rasterized in all three formats (PS,
586     EPS, PDF). This can be turned off by unchecking the "Rasterize filter
587     effects" option in the UI or adding the --export-ignore-filters option via
588     the command line. In this case, filtered objects are rendered as vectors
589     without filters and without rasterization.
591   • The resolution for rasterizing the filters can be set in the UI in the
592     "Resolution for rasterization (dpi)" parameter or on the command line by
593     --export-dpi parameter (same as used for exporting SVG documents to
594     bitmaps). The default is 90 dpi. The rendering quality of filters for
595     rasterization, as well as for bitmap export, is always the best possible
596     regardless of what you have set in the Filters tab of Preferences (which
597     only affects on-screen rendering). For example,
599 inkscape --export-pdf=out.pdf --export-dpi=300 file.svg
601     will export file.svg to out.pdf, rasterizing any filtered objects in it at
602     300 dpi. (If there are no filtered objects, the --export-dpi has no
603     effect.)
605 All of PS, EPS, and PDF export formats uniformly support the export area
606 options (page or drawing) and the new export-id option:
608   • You can now export a single object from a complex document (for example, a
609     single layer) if you specify the ID of that object in the "Limit export to
610     the object with ID" field in the GUI or via the --export-id=ID option on
611     the command line. The export will show only that object (all others will
612     not be exported). The BoundingBox (page size) of the exported PS/EPS/PDF
613     file will correspond to the bounding box of that object. You can override
614     this with "Export area is page" (GUI) or --export-area-page (command line)
615     option which forces the output to have the size of the SVG document's page
616     (this may not be possible with EPS, see below).
618   • The "Export area is page" (GUI) or --export-area-page (command line) option
619     forces the output to have the size of the SVG document's page. This is the
620     default for PS and PDF but not for EPS.
622       □ Note, the specification of the EPS format does not allow a bounding box
623         to extend beyond the content. This is enforced by the Cairo graphics
624         library which means that when --export-area-page is used with EPS
625         export, the page bounding box will be trimmed inwards (but never
626         expanded outwards) to the bounding box of the content if it is smaller.
627         If you want a file which has a %BoundingBox different from the bounding
628         box of its content, you can use PS or PDF export formats instead of
629         EPS, or add a white background rectangle with the required size to
630         source document before exporting to EPS.
632       □ The --export-bbox-page command line parameter has been removed; use
633         --export-area-page instead.
635       □ The --export-area-page option was renamed from --export-area-canvas for
636         consistency with the use of the terms page and canvas in the GUI.
638   • The "Export area is drawing" (GUI) or --export-area-drawing (command line)
639     option forces the output to have the size of the exported objects' bounding
640     box, regardless of page size. If no --export-id is specified, this means
641     the bounding box of the entire drawing; with --export-id, this means the
642     bounding box of the exported object only. This is the default for EPS. Note
643     that checking "Export area is page" or using --export-area-page overrides
644     this setting for PS and PDF output.
646   • The --export-embed-fonts option is removed. Inkscape now always embeds and
647     subsets all fonts used in the document when exporting PS, EPS, or PDF.
649 UniConvertor-based import and export
651 Inkscape can now use UniConvertor to import files of the following types:
653   • Corel DRAW versions 7 to X4 document files (CDR)
654   • Corel DRAW versions 7 to X4 Template files (CDT)
655   • Corel DRAW Presentation Exchange files (CMX)
656   • Corel DRAW Compressed Exchange files (CCX)
657   • sK1 files (SK1)
658   • Computer Graphics Metafiles (CGM)
659   • Windows Metafiles (WMF)
660   • HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)
662 Inkscape can now use UniConvertor to export files of the following types:
664   • Windows Metafiles (WMF)
665   • sK1 files (SK1)
666   • HPGL (AutoCAD) Plot files (PLT) (requires UniConvertor 1.1.4)
668 Text objects are not supported as of UniConvertor 1.1.4.
670 On Windows, UniConvertor is included with Inkscape distribution and does not
671 require separate installation.
673 HPGL export
675 In addition to the HPGL export via UniConvertor listed above, Inkscape can now
676 export to HPGL (Hewlett-Packard Graphics Language) via an internal routine that
677 is geared towards various cutters/plotters.
679 JavaFX export
681 Inkscape can export drawings to JavaFX format (.fx file extension).
683 DXF import and export
685   • DXF export for desktop cutting plotters is much faster than in previous
686     versions. A new option was added to provide support for RoboMaster desktop
687     cutting software. Also, polylines and polysplines are now supported.
689   • DXF import is new. It supports a number of the simpler DXF shapes: line,
690     Bezier spline, ellipse, circular arc, text.
692 PNG export
694   • PNG export has been updated to include metadata if present in the source
695     SVG. This includes the Author, Copyright, Creation Time, Description, and
696     Title fields. PNG metadata can be viewed using the ImageMagick identify
697     command.
699   • Export filenames that are relative (e.g. ../file.png or simply file.png)
700     are now resolved relative to the document's location. This applies to the
701     filenames you type in the Export dialog as well as those stored in export
702     hints in the document itself (and used by the "Batch export" checkbutton as
703     well as in command line export with --export-use-hints). However, export
704     filenames specified directly on the command line are not resolved, which in
705     effect means they work, as before, from the current working directory from
706     which you run the export command.
708 OCAL (Open Clip Art Library) Export
710   • Export to Openclipart.org has been disabled for 0.47 as it had become
711     non-functional and needs to be re-written.
713 Autosave
715 The new autosave feature allow for automatic timed backups as work goes on.
716 Saved versions are put in a designated directory and do not overwrite the
717 original SVG file nor each other.
719 In Inkscape Preferences (Ctrl+Shift+P), Save tab, you can enable this feature
720 and specify various options:
722   • the time interval between backups, in minutes;
724   • the directory where you want the backups to be stored;
726   • and the maximum number of saved backups (if this number is exceeded, old
727     backups will start to be deleted).
729 Extensions
731   • The former Effects menu is renamed to Extensions. This is less confusing
732     and better reflects the content of the menu: a collection of extensions,
733     written mostly in Python, which perform various tasks with or without
734     selection.
736 New and improved extensions
738   • The new Arrange > Restack extension restacks (changes the z-order of)
739     selected objects, with options including: left to right, top to bottom (or
740     vice versa), radial outward or inward, or at an arbitrary angle. You can
741     also specify what point of an object is used to calculate its position for
742     restacking.
744   • The new Generate from Path > Extrude extension is similar to the old
745     Extrude effect, which has been renamed Motion. The new effect requires two
746     paths and draws connection lines or polygons between their nodes. If you
747     want more dense extrusion, add more nodes to the paths. All the extrusion
748     polygons are separate (grouped) objects, so they can be easily painted by
749     the Tweak tool to get nicely shaded ribbons, 3D letters, and the like.
751   • The new Generate from Path > Scatter extension spreads copies of pattern
752     along arbitrary "skeleton" paths. The pattern must be the topmost object in
753     the selection. Groups of paths, shapes, clones are allowed.
755   • The improved Modify Path > Add Nodes extension now allows segments to be
756     divided into a given number of subsegments.
758   • The new Modify Path > Convert to Dashes extension takes the dash pattern of
759     the stroke and explicitly cuts the curve to duplicate this pattern. This
760     can be used to allow desktop cutting plotters, which don't understand
761     dashed stroke style, to cut dashed paths. You can also achieve interesting
762     effects with smoothly varying dash length if you edit the resulting path
763     with Node Sculpting technique (Alt+drag with Node tool).
765   • The new Render > Add printing marks extension adds printing marks and color
766     bars required by print bureaus. You can either manually define margins by
767     which cut marks are created.
769   • The new Render > 3D Polyhedron extension draws 2D projections of 3D
770     polyhedrons and other 3D shapes. You can choose one of a number of
771     predefined shapes (cube, octahedron, truncated dodecahedron and others) or
772     load a shape definition from an OBJ file. The shape can be rotated around
773     any of the three axes by arbitrary amount; you can also define various
774     style options such as color of the faces and stroke width, and enable
775     shading with adjustable light source position.
777   • The new Render > Alphabet Soup extension is a vector rework of Matt
778     Chrisholm's script. Alphabet Soup randomly mashes glyph elements together
779     to make exotic-looking text.
781   • The new Render > Cartesian Grid extension plots Cartesian (square) grids
782     that do not fill the page, but offer three levels of division, logarithmic
783     scales (with clutter-reduction and arbitrary base) and customizable line
784     width. All like elements (e.g. x-axis subminor divisions) are put into
785     subgroups together. A proper border is also drawn, with an independent line
786     width.
788   • The new Render > Polar Grid extension plots a polar coordinate grid, with
789     options for arbitrary-base logarithmic subdivisions, clutter-reduction
790     around the origin, circumferential labels and custom line widths.
792   • The new Render > Draw from Triangle extension takes a triangle drawn as a
793     path (only the first three nodes of a path are counted) and allows to draw
794     many triangle-related geometrical objects such as circumcircles, excentral
795     triangles, etc. It also lets you specify custom trilinear coordinates and
796     triangle centre functions, as well as compute basic triangle properties
797     such as area and semiperimeter.
799   • The new Render > Guides Creator extension quickly creates horizontal and
800     vertical guides for subdividing the canvas. You can choose the divisions
801     from None, 1/2, 1/3 ... to 1/10.
803   • The new Render > Calendar extension draws a calendar for a given year with
804     localizable month/weekday names, colors, and many other options.
806   • The new Render > Foldable Box extension creates foldouts for paper boxes.
808   • The new Text > Convert to Braille extension recodes English (or just Latin
809     letters) text to Braille code. It is not intended to create a real Braille
810     text for visually impaired people, just an accurate graphical
811     representation of Braille text to be used in illustrations.
813   • The new Modify Path > Interpolate Attribute in a Group extension takes a
814     group of objects and assigns to its members interpolated values of an
815     attribute of your choice, such as width, height, opacity, etc.
817   • The new Web > JavaScript extensions allow you to set various interactive
818     JavaScript attributes, such as onclick or onfocus, on SVG elements.
819     Inkscape does not support them on rendering but you might need them for
820     other SVG viewers such as Firefox.
822 Extension API changes
824   • While the "Live preview" checkbox is useful for most effects, for some it
825     just does not make sense. Now, you can add the attribute needs-live-preview
826     ="false" in the effect element in the .inx file of the effect to suppress
827     this checkbox for your effect.
829   • Parameters passed to extensions (via the <param> element) now can have a
830     boolean attribute, gui-hidden, to indicate that the parameter should not be
831     represented in the GUI. If all parameters are marked as hidden, no GUI is
832     presented for such extension.
834   • All .inx files are now properly formatted XML files with their own
835     namespace of: http://www.inkscape.org/namespace/inkscape/extension and a
836     Relax NG schema to define it. More information can be found on the
837     Extensions page.
839 Filters
841 The Filter Editor (former Filter Effects) and Remove Filters commands are moved
842 from the Object menu to the new Filters top-level menu, which also contains a
843 collection of preset filters.
845 Preset filters
847 The Filter Editor is powerful, but can be quite cumbersome. You can now apply
848 complex preset filters to selected objects with a single command by choosing it
849 from the new Filters top-level menu. Submenus categorize the filters by
850 function or appearance. To view a sampler of all preset filters, open
851 filters.svg document from Inkscape's examples (share/examples in the Inkscape
852 tree).
854 Most filters apply immediately after selecting the command; some present a
855 dialog where you can adjust some of the parameters before applying the filter
856 (such filters have "..." at the end of the command in the menu).
858 By default, if the selected object already has some filter applied, the chosen
859 filter will be merged with the existing filter for combined effect. However you
860 can also overlay several filters to an object while keeping them separated:
861 simply press Ctrl+G after applying any filter and then apply another one; the
862 filters will then display separately in the Filters Editor.
864 You can easily add your own filters to these menus. Simply place any SVG file
865 with the filters to the filters subdirectory of your config directory (~
866 /.config/Inkscape/ on Linux) and the filters will be picked up from it when you
867 start Inkscape. By default, they will be placed in the Personal submenu under
868 Effects > Filters. If you want to control this, add the following attributes to
869 the filter element:
871 inkscape:label         is the command label
872 inkscape:menu          is the submenu to place the command into
873 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar
874                        as you select the command)
876 No Filters rendering mode
878 In order to facilitate editing documents that use lots of SVG filter effects,
879 filter effects can now be disabled for a particular document window by
880 selecting View > Display mode > No Filters from the menu. This provides an
881 intermediate step between Normal and Outline view modes.
883 The Toggle View command in the Display Mode submenu (Ctrl+keypad 5) toggles
884 between all 3 modes in a loop: Normal, No filters, Outline.
886 Filter quality setting
888 In addition to the Blur Quality setting, Inkscape now has a general Filter
889 Effects Quality setting on the Filters tab of Inkscape Preferences. It affects
890 all filters and gives you an opportunity to seek optimum balance between speed
891 and accuracy when rendering filters.
893   • Best quality is the quality used when exporting.
894   • Better quality uses fast methods for transforming images, which
895     occasionally shows up as jagged edges. Full rendering resolution is used.
896   • Anything below that also uses low resolution rendering for filters.
898 For exporting images, the best quality is used regardless of this setting.
900 SVG support
902 Optimized CSS properties
904   • As a file size optimization, Inkscape does not write into SVG some of the
905     stroke properties if the object has stroke:none and some of the fill
906     properties when it has fill:none. The only situation where this might
907     affect you is if you remove stroke from an object and then turn it back on
908     - the object will get the default stroke instead of the same it had before.
910     Also, in manually-edited SVG where a parent group has no stroke but sets
911     some stroke properties to be inherited by its descendants, you will need to
912     set stroke property to other than none on the group, and suppress
913     inheritance with stroke:none on those children that don't need it.
915     Specifically, if stroke:none, the following properties do not get written
916     to SVG:
918 stroke-width
919 stroke-linecap
920 stroke-linejoin
921 stroke-miterlimit
922 stroke-opacity
923 stroke-dasharray
924 stroke-dashoffset
926     Note that this does not include marker properties, which means you can
927     still have markers on a path without visible stroke.
929     If fill:none, the following properties do not get written to SVG:
931 fill-opacity
932 fill-rule
934   • The opacity property is not written if it has the default value of 1 (this
935     property is not inherited, so the change should have no side effects).
937   • The marker-start, marker-mid, and marker-end properties are not written if
938     the marker property is already present with the same value.
940 Optimized path data
942 In this version, the size of the path data written in the d= attribute of path
943 elements is reduced by about 10%. Inkscape generates the shortest possible path
944 strings by avoiding repeated operators and using relative coordinates (when it
945 helps).
947 This is controlled by the options on the SVG output page of Inkscape
948 Preferences dialog. Also, you can change the following attributes in group id=
949 "svgoutput" in your preferences.xml file:
951   • allowrelativecoordinates (default 1) to switch relative coordinates on (1)
952     or off (0)
953   • forcerepeatcommands (default 0) to force repeating operators (1) or allow
954     use of the more compact representation without repeated operators (0)
957 Horizontal and vertical path segments
959 If an SVG contains paths with shorthands for horizontal and vertical path
960 segments ('H' or 'V'), then Inkscape will try to maintain those shorthands if
961 possible, so the saved file will also contain them.
963 <script> tag preserved
965 While Inkscape does not yet support SVG scripting via the <script> element,
966 this element is now preserved after editing the file in Inkscape.
968 Initial SVG Fonts support
970 As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of
971 SVG Fonts. You can design fonts within Inkscape, but using them to render text
972 on the canvas is not yet supported. We are waiting for libpango to implement
973 proper support of the user-fonts feature.
975 Currently, the main benefit of this feature is to improve the font design
976 workflow when working with FontForge: You can save SVG files with fonts
977 embedded and import them into Fontforge, and you only need one file per font
978 instead of one file per glyph.
980 An SVG font is a mapping of chunks of SVG drawing to characters. When a certain
981 character is used in a string, its respective glyph is rendered. If no glyph is
982 declared for a certain character, then there is a default "missing glyph" that
983 is rendered. You can set the drawing that defines this missing glyph; this is
984 done by clicking on the Missing Glyph: From Selection... button at the top of
985 the dialog.
987 Here's an example of a font design workflow:
989  1. Open the SVG Font dialog by _Text > SVG Fonts_.
990  2. Click New under the font list. Select the new font in list; you can rename
991     it by clicking on its name and typing a new name. You will see a set of
992     black squares in the text preview area. This is the preview text being
993     rendered. It only uses the default missing glyph (which is initially
994     defined as a black square) because no specific glyphs were defined yet.
995  3. Draw something that you want to use for the missing glyph
996  4. Click Missing Glyph: From selection...
997  5. Draw a glyph for the "a" character (character matching is case sensitive)
998  6. On the Glyphs tab, click Add glyph
999  7. Type "a" in the Matching String column (at the moment, handling of the
1000     glyph-name attribute is not implemented)
1001  8. With the row selected, click Get curves from selection...
1002  9. Now, you will see the "a" glyph in the preview rendering if the preview
1003     text contains it. You can edit the preview text as needed to view different
1004     characters.
1006 Repeat steps 5 through 9 for every glyph you wish to add to your font, then
1007 save the SVG file and open it in FontForge for further editing.
1009 SVG Test Suite Compliance
1011 As a result of last year's GSoC, there is now a rendering test framework along
1012 with a number of tests (found in the SVN repository here). These tests can be
1013 run reasonably easily on any system (you don't need to be able to compile
1014 Inkscape) and include a large part of the  W3C SVG Test Suite. See this page or
1015 this page for up-to-date rendering results. Also see TestingInkscape for
1016 information on running and creating rendering tests.
1019 Editing Aids
1021 Grids
1023   • The dotted rectangular grid now shows small crosses at the intersection
1024     points of emphasis lines.
1026 Guides
1028   • Guides can now be rotated using the mouse. Each guide has an anchor
1029     (visible as a little circle) around which it can rotate.
1031       □ Drag a guide anywhere to move it.
1032       □ Shift+drag to rotate a guide about its anchor (additionally press Ctrl
1033         to constrain the rotation angle to multiples of 15 degrees).
1034       □ Ctrl+drag to move the anchor along the guide.
1035       □ Press Del while hovering the mouse over the guide to delete it.
1037   • There is now an option in the Preferences dialog (Tools page) to treat
1038     groups as single objects during conversion to guides (as opposed to
1039     converting each object inside the group separately).
1041 Snapping
1043 Inkscape's snapping code has undergone major changes to make it more reliable
1044 and easier to use. Snapping to objects now invokes routines from the 2geom
1045 library, which is actively maintained and less error-prone than the old livarot
1046 library.
1048 There is a new snapping toolbar to control the snapping options and modes. Use
1049 _View > Show/Hide > Snap_ controls bar to show or hide this toolbar. The
1050 toolbar contains toggle buttons for various snapping modes (snap nodes, snap to
1051 paths, etc.) as well as a master snapping toggle that disables and reenables
1052 all activated modes.
1054 Also, to control some of the snapping features, a Snapping tab has been created
1055 in the Inkscape Preferences dialog. The new features found on this tab are:
1057   • Snap indicator: When snapping has occurred, an indicator is displayed at
1058     that specific position. For now that indicator is just a cross that
1059     disappears after a second. In the future the shape of the indicator will be
1060     related to the type of target that has been snapped to.
1061   • Snap delay: Inkscape now optionally waits some time after the mouse pointer
1062     has stopped moving before it tries to snap. This makes Inkscape much more
1063     responsive on complex documents and allows moving objects in a straight
1064     line over a grid, amongst others.
1065   • Inkscape can be forced to only try snapping the (source) node that is
1066     closest to the mouse pointer, à la Corel DRAW. When this mode is enabled, a
1067     snap indicator will shortly be shown at that node. This will give you
1068     maximum control of the snapping which is useful for complex drawings with
1069     many nodes.
1070   • When multiple snap solutions are found, Inkscape can either prefer the
1071     closest transformation (when the weight slider is set to 0; this is the old
1072     mode), or prefer the moved object's node that was initially the closest to
1073     the pointer (when the slider is set to 1). The way Inkscape calculates the
1074     preferred snap has been improved too, which should lead to more predictable
1075     snapping.
1077 Other improvements are:
1079   • The Node tool now snaps to any unselected node (both cusp and smooth)
1080     within the path that's being edited, and nodes of other paths. It also
1081     snaps to the path itself, but only to the stationary segments in between
1082     two unselected nodes, not to the segment being currently reshaped. It is
1083     now also possible to snap while moving nodes along a vertical or horizontal
1084     constraint.
1085   • In the Document Properties dialog, the checkbox for "always snap" has been
1086     replaced by a pair of radiobuttons; this should eliminate most of the
1087     confusion surrounding this option.
1088   • Holding the Shift key now also disables snapping while dragging node
1089     handles and while creating single dots.
1090   • During constrained drawing (using Ctrl), Inkscape will now only snap to the
1091     points on the constrained line.
1092   • In the Selector tool, snapping while skewing or moving with a constraint
1093     (with Ctrl) has been improved.
1094   • Also in the Selector tool, while moving, Inkscape will now snap the
1095     bounding box of each selected item individually instead of the selection as
1096     a whole
1098 Inkscape can consider the following objects for snapping, depending on the
1099 toggles in the Snapping toolbar:
1101   • Clipping paths and masks
1102   • Midpoints of line segments
1103   • Midpoints of bounding box edges
1104   • Page border
1105   • Intersections of any kind of paths
1106   • Smooth nodes
1107   • Cusp nodes
1108   • Each of the handle points (when creating new shapes)
1109   • Radius handles of rectangles
1110   • Single dots
1112 Other features
1114 Spell checker
1116 There's now a built-in spell checker. Press Ctrl+Alt+K or choose Text > Check
1117 spelling to check all visible text objects in your document (they need not be
1118 selected) in turn, going top-to-bottom and left-to-right. Once a misspelled
1119 word is found, a red frame around it is displayed, and the object with the
1120 misspelling is selected; if you are in Text tool, it also places the text
1121 cursor at the beginning of the misspelled word.
1123 In the dialog, you can choose one of the listed suggestions and Accept it (this
1124 button is disabled unless you choose something in the list); Ignore the word
1125 for the rest of this session; or Add the word to the local dictionary.
1127 Also, since the dialog does not lock Inkscape's window, you can simply edit the
1128 word with Text tool. Once you edit it to something acceptable to the speller,
1129 it will automatically turn off the red frame and continue checking the
1130 document.
1132 On Linux, you need to install Aspell and its dictionaries for the languages you
1133 want to check. On Windows, for now, only the English dictionary is included
1134 with Inkscape builds.
1136 Desktop integration improvements
1138   • Clipboard is system-wide: you can now copy/paste objects between different
1139     Inkscape instances as well as between Inkscape and other applications
1140     (which must be able to handle SVG on the clipboard to use this).
1142   • Open Recent menu now integrates with Windows recent documents management as
1143     well as freedesktop.org recent document lists (used by Gnome, KDE and
1144     Xfce). The list can be cleared from the Preferences dialog (the Interface
1145     tab).
1147   • Themable Icons: all icons used in Inkscape are now themable using the
1148     standard freedesktop.org theming mechanism. The list of names used is
1149     available here.
1151 Shell mode
1153 If you run inkscape with --shell, it will enter a shell mode. In this mode, you
1154 type in commands at the prompt and Inkscape executes them, without you having
1155 to run a new copy of Inkscape for each command. This feature is mostly useful
1156 for scripting and server uses: it adds no new capabilities but allows you to
1157 improve the speed and memory requirements of any script that repeatedly calls
1158 Inkscape to perform command line tasks (such as export or conversions). Each
1159 command in shell mode must be a complete valid Inkscape command line but
1160 without the Inkscape program name, for example:
1162 $ inkscape --shell
1163 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.
1164 >file.svg --export-pdf=file.pdf
1165 >otherfile.svg --export-png=bitmap.png
1166 Background RRGGBBAA: ffffff00
1167 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)
1168 Bitmap saved as: bitmap.png
1169 >quit
1171 Gesture-based stroke width adjustment
1173 Similar to editing the fill or stroke colors by dragging away from the color
1174 swatch in the status bar (added in 0.46), this version allows you to drag away
1175 from the stroke width value displayed there to change the stroke width of
1176 selection. Dragging above the 45-degree line from the swatch increases the
1177 width (up to four times the original width), dragging below it decreases the
1178 width (down to zero). With this feature, quick yet precise stroke width
1179 adjustments are possible without opening any dialogs or menus.
1181 Tool switching by input device
1183 Tablets and other input devices that report separate hardware (e.g. pen tip and
1184 eraser on the two ends of the pen) are now recognized and current tool can be
1185 set to change (to Calligraphic Pen or Eraser) in response to the physical tool
1186 being used.
1188 Layers
1190   • The Layers dialog now can hide or show all layers other than the current:
1191     click on the layer name with right mouse button to get the pop-up menu. The
1192     Solo feature allows you to quickly switch between working layers and check
1193     their content in isolation.
1195   • A new command, Duplicate Layer, has been added to the Layers menu to
1196     duplicate an existing layer with all of its objects (even hidden or locked)
1197     and any sub-layers.
1199   • The Add Layer dialog can be opened with Ctrl+Shift+N (N for new).
1201   • Layer names can now be non-unique within the document.
1203   • Several layer handling inconsistencies have been fixed.
1205 Editing bitmaps in an external editor
1207 Linked (but not embedded) bitmaps can be edited in an external application.
1208 Right-click an image and choose Edit externally...
1210 An image will reload when its linked file changes on disk. Both the external
1211 editor application to use and the reload behavior are configurable on the
1212 Bitmaps page of the Inkscape Preferences dialog.
1214 Command for relinking clones
1216 A new command, Relink Clone to Copied in Edit > Clone, allows you to relink any
1217 clone to a different original object without changing its other properties.
1218 Just copy (Ctrl+C) the object you want to be the new original, select any
1219 number of clones, and choose the Relink command. Now all selected clones are
1220 linked to the copied object.
1222 Note that this may cause the clone to move if the new original and the old
1223 original objects are in different positions.
1225 Automatic relinking of clones on Duplicate
1227 If you turn on the When duplicating original+clones: Relink duplicated clones
1228 option on the Clones tab of Inkscape Preferences (default is off), duplicating
1229 a selection containing both a clone and its original (possibly in groups) will
1230 relink the duplicated clone to the duplicated original instead of the old
1231 original.
1233 Pattern editing
1235 When editing pattern fills:
1237   • The pattern origin and scale handles now snap.
1238   • The pattern scaling can now be different in X and Y direction. Press Ctrl
1239     to have a fixed 1:1 ratio scaling (old behavior).
1240   • The handles are now positioned at the corners of the unit cell, instead of
1241     only a quarter of that cell as before. So, now a rectangle filled with
1242     pattern will have all of the pattern handles in the corners, making it
1243     harder to manipulate them. However, the handles can be dragged outside the
1244     rectangle by moving the pattern's origin handle.
1246 Transform dialog: spacing out option
1248 Previously, the Apply to each object separately checkbox had no effect for the
1249 Move tab of the Transform dialog (Ctrl+Shift+M). Now, if several objects are
1250 selected, this checkbox is on, and "Relative move" is on, each object is
1251 shifted relative to the closest selected object on the left (for X) or below
1252 (for Y).
1254 For example, if you have a horizontal row of objects and you move them
1255 relatively by x = 5 px with "Apply to each object separately" on, the leftmost
1256 object will shift by 5px, the next one to the right by 10px, and so on; the
1257 rightmost selected object is displaced by 5*n px where n is the number of
1258 selected objects. As a result, the distance in each pair of adjacent objects
1259 will increase by 5px and the whole row will be spaced out, much like a
1260 letterspacing adjustment spaces out a text string. Moving these objects by X=
1261 -5px will, conversely, squeeze them tighter together: the leftmost will move by
1262 -5px, the next one by -10px, and so on. For Y, the effect is the same except
1263 that the move starts from the object closest to the bottom (i.e. with smallest
1264 Y coordinate).
1266 When determining the order of shifting objects, for X, the left edges of their
1267 bounding boxes are sorted horizontally, and for Y, the bottoms of their
1268 bounding boxes are sorted vertically. The order of selecting the objects or
1269 their z-order do not matter.
1271 Converting text to path produces a group
1273 Converting a text or flowed text to path (Ctrl+Shift+C) now produces a group of
1274 paths, one path for each glyph of text, instead of a single monolithic path as
1275 before. Apart from easier manipulation, an additional advantage is that if your
1276 text contained styled spans (i.e. fragments with different color, opacity, or
1277 other properties), these styles will be preserved by the corresponding glyph
1278 paths after the conversion. You can still easily get a single path out of such
1279 a group by selecting it and doing Combine (Ctrl+K).
1281 Combine works on groups
1283 The Combine command now works transparently on groups, i.e. combines paths
1284 inside selected groups at any level of grouping.
1286 Exclusion works on multiple paths
1288 The Exclusion boolean operation can now operate on an arbitrary number of
1289 paths.
1291 No more Whiteboard
1293 The configure flag for Whiteboard has been removed since the feature was
1294 non-functional. This menu item will no longer exist in the releases until it is
1295 properly fixed to avoid any confusion.
1297 Save As directory
1299 On the Save tab in Inkscape Preferences, an option was added to change the
1300 behavior to our old behavior. When this option is on, the "Save as..." dialog
1301 will always open in the directory where the currently open document is. When
1302 it's off, it will open in the directory where you last saved a file using that
1303 dialog..
1305 Packaging Improvements
1307 Packaging for OSX and Windows has been worked on heavily and greatly improved
1308 during this release cycle. Inkscape also now has a Portable version available
1309 for Windows.
1311 User interface
1313 Inkscape Preferences dialog
1315   • This dialog has been rearranged for more logical grouping of options. New
1316     pages have been added: Bitmaps (options for the new update-on-file-change
1317     and external editor features), UI (options for toolbar icon sizes), SVG
1318     Output (options for SVG formatting, introduced in 0.46 and now editable
1319     from the dialog as well), and Save (save directory and autosave options).
1321 Bitmap Copy resolution
1323   • A new option on the Bitmaps tab, Resolution for Create Bitmap Copy, allows
1324     you to set the resolution of the bitmap created by the corresponding
1325     command (by default bound to Alt+B). The default value of 90 dpi forces the
1326     resulting bitmap to align with the default 1px-spaced grid on the canvas.
1328 Zoom correction factor
1330   • The Interface tab has an adjustable ruler for Zoom correction factor. Move
1331     the slider until the ruler's on-screen size matches its true size. This is
1332     used as a reference point for the 100% (original size) zoom command.
1334 Interface language choice
1336   • The application's interface language can be set from the preferences
1337     dialog, Interface tab. You'll have to restart Inkscape for this choice to
1338     take effect.
1340 Toolbars
1342   • On the Interface tab, the toolbar icon sizes for the three main toolbars
1343     are now separately configurable and to a few different sizes. This allows
1344     for a more compact user interface.
1345   • The vertical toolbox has been converted to a standard GtkToolbar, which
1346     fixed the problem of it pushing the main window taller. Tools that don't
1347     fit automatically go into a popup menu.
1348   • When torn off, toolbars now keep the size they last had in the main window.
1349     They can be resized by docking, resizing the main window, and then
1350     undocking again.
1351   • Some controls (such as the Width in Calligraphic/Tweak/Eraser tools,
1352     Tremor, Wiggle, and Mass in Calligraphic, Threshold in Paintbucket,
1353     Tolerance in Pencil) are converted from numeric editable fields into
1354     draggable sliders, with labels and values (usually in the range 0..100)
1355     displayed on top. As these values don't usually require high precision,
1356     this makes adjusting them much easier and faster.
1358 Clone/original visualization
1360 When you press Shift+D to find and select the original of the selected clone,
1361 Inkscape draws a dashed blue line between the centers of the bounding boxes of
1362 the clone and the original. This line disappears after one second.
1364 File dialogs
1366   • The Windows builds of Inkscape now have Windows-native file dialogs to keep
1367     consistency with other Windows applications.
1368   • Two new entries in the File type list, All Bitmaps and All Vectors, allow
1369     you to limit the listing to bitmap or vector formats only.
1371 Document Properties dialog
1373   • New Color Management tab. In this new tab, you can declare multiple ICC
1374     color profiles for the current document.
1375   • New Script tab. ?
1377 Object Properties dialog
1379   • New Title and Description fields. The Title attribute is intended to be
1380     used as tooltip. [sas]
1381   • New Interactivity section to add JavaScript calls.
1383 Miscellaneous
1385   • The confusing icons on buttons in the controls bar of the Dropper tool
1386     (pick/assign opacity) are replaced by text labels.
1387   • Hovering over a swatch now shows the name of the swatch in the status bar.
1388     This makes it easier for tablet users to identify a swatch by name, as
1389     holding a stylus still enough for the tooltip to show up may be difficult.
1390   • In the Align and Distribute dialog, there is an option to treat all
1391     selected objects as a group when aligning. This spares the trouble of
1392     manually grouping them, aligning, and ungrouping afterwards.
1394 Notable bug fixes
1396   • Several memory leaks are stopped, reducing the memory consumption during
1397     long editing sessions considerably. Closing the last window with a document
1398     now frees memory used by that document immediately.
1400   • Copy/paste between Inkscape and other programs, as well as between
1401     different Inkscape instances, finally works as expected.
1403   • No more ID clashes on import and paste: previously, importing or pasting
1404     SVG objects might sometimes distort their colors, because the imported
1405     objects referred to gradients with the same IDs as those that already exist
1406     in the document but look different. Now, IDs of all gradients in the pasted
1407     document are checked for clashes with those in the host document, and if
1408     necessary changed with all their users updated correspondingly, so such
1409     unexpected color changes will never happen.
1411   • The visual bounding box (which is the default bounding box type used by
1412     Inkscape) of an object with a filter applied now includes the expanded area
1413     of the filter. For single blur filter (such as the blur you apply with a
1414     slider in the Fill and Stroke dialog), this expands the bounding box by
1415     2.4*radius; although theoretically, blur is infinite, this is the distance
1416     at which the opacity of the object drops below the perceptibility threshold
1417     of our renderer. For all other filters, the area is expanded by the
1418     relative amounts you specify on the "Filter general settings" tab of the
1419     Filter Editor dialog.
1421     Only visual bounding box is affected; if you use geometric bounding box,
1422     you will notice no change in most cases. However, the Export Bitmap dialog
1423     always uses the visual bounding box for selection of the export area; this
1424     means that you can now export a blurred object to bitmap without any
1425     clipping of the blur.
1427   • Bounding box calculation does not include the invisible objects, bug #
1428     252547.
1430   • Various fixes to PS and PDF rendering of objects involving masks, patterns,
1431     and/or bitmaps: bug #208217, bug #217212 and others.
1433   • File dialogs (Open, Save, Save as) now remember the last visited directory.
1435   • The --vacuum-defs command line parameter erroneously deleted markers which
1436     are in use.
1438   • No more garbage lines in Outline mode.
1440   • No more artifacts left by the circle cursor in Tweak tool.
1442   • The Bend Path and Pattern along Path path effects now work correctly with
1443     closed paths.
1445   • Several viewBox related bugs fixed:
1447       □ Documents with viewBox are now editable without transformation defects.
1448         In particular this affected documents created with e.g. pstoedit. bug #
1449         168370
1450       □ Resizing the page adjusts viewBox bug #167682.
1451       □ preserveAspectRatio parsing code was fixed bug #166885.
1453   • Several fixes allow Inkscape to correctly render and edit SVG files that
1454     use currentColor in objects' style (this includes files created by
1455     gnuplot).
1457   • Inkscape is now able to handle paths with only 'movetos', i.e. "M 0,0 M 1,1
1458     M 2,2". These kind of paths can be used to only show markers on a path
1459     without the rest of the path visible.
1461   • Open paths (as opposed to closed) are now correctly drawn when start and
1462     end points are equal (SVG test suite paths-data-10-t.svg).
1464   • The shorthand 'marker' property is now correctly interpreted (SVG test
1465     suite painting-marker-03-f.svg).
1467   • Coordinates and lengths specified in percentages are now correctly
1468     interpreted (SVG test suite coords-units-02-b.svg).
1470   • Horizontally scrolling the canvas with a tilt wheel (present on several
1471     Logitech mice such as the LX5) in the Bezier tool will no longer finish the
1472     path being drawn.
1475 Known issues
1477   • First time opening of the drop-down list with font families in Text tool
1478     may be slow, especially if you have many fonts installed. Subsequent
1479     accesses of this list are fast.
1482 For information on prior releases, please see:
1483     http://wiki.inkscape.org/wiki/index.php/Inkscape