<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dvlierop</id>
	<title>Inkscape Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.inkscape.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dvlierop"/>
	<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/Special:Contributions/Dvlierop"/>
	<updated>2026-04-29T10:03:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.92&amp;diff=96821</id>
		<title>Release notes/0.92</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.92&amp;diff=96821"/>
		<updated>2015-06-02T06:36:43Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Other user interface */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Other languages|en=Release_notes/0.92}}&lt;br /&gt;
&lt;br /&gt;
==Inkscape 0.92==&lt;br /&gt;
&lt;br /&gt;
'''(definitely not released yet - [[AnnouncePlanning092]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
Released on '''«YYYY-MM-DD»'''.&lt;br /&gt;
&lt;br /&gt;
== Dialogs, etc. ==&lt;br /&gt;
&lt;br /&gt;
=== Objects ===&lt;br /&gt;
Hierarchy of document&lt;br /&gt;
* Imported from Ponyscape&lt;br /&gt;
* Includes individual objects as well as layers&lt;br /&gt;
* Allows changing of highlight color of objects&lt;br /&gt;
* Drag and drop reordering of objects&lt;br /&gt;
* Find, lock, and hide individual items&lt;br /&gt;
&lt;br /&gt;
=== Selection Sets ===&lt;br /&gt;
Create selection sets that are not affected document structure&lt;br /&gt;
=== Live Path Effects ===&lt;br /&gt;
==== Spiro Live ====&lt;br /&gt;
----&lt;br /&gt;
Extended video: &amp;lt;https://www.youtube.com/watch?v=bFakiI5f0-Y&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based in Spiro Live Path Effect, now show result while drawing.&lt;br /&gt;
* Nodes '''cusp''' (SHIFT) and '''Spiro'''.&lt;br /&gt;
* Handle append path on cusp and Spiro mode whith helper preview path.&lt;br /&gt;
[[File:Spirolive.gif]]&lt;br /&gt;
&lt;br /&gt;
==== BSpline ====&lt;br /&gt;
----&lt;br /&gt;
Extended video &amp;lt;https://www.youtube.com/watch?v=vwV0DHvA-OE&amp;gt;&lt;br /&gt;
=====Pen &amp;amp; Node mode=====&lt;br /&gt;
Use '''BSpline Live Effect''' while creating and editing paths.&lt;br /&gt;
* Pen and Pencil use&lt;br /&gt;
* Modes '''cusp'''(SHIFT) and '''BSpline''' while drawing.&lt;br /&gt;
* Handle append parhs with preview helper path.&lt;br /&gt;
* Handle '''weight''' of bspline (node tool) with handle movement. SHIFT key required.&lt;br /&gt;
* Handle custom '''weight snaps''' with '''CTRL'''&lt;br /&gt;
&lt;br /&gt;
[[File:Bspline.gif]] [[File:Bspline2.gif]]&lt;br /&gt;
&lt;br /&gt;
=====Live Path Effect mode=====&lt;br /&gt;
[[File:Bspline3.gif|170px|right|thumb]]&lt;br /&gt;
The options in the Live effect dialog give you control on bspline paths.&lt;br /&gt;
* Set to '''Default weight''' (0.3334 time of his curve segment).&lt;br /&gt;
* '''Make cusp''' nodes.&lt;br /&gt;
* Numeric input for '''weight'''.&lt;br /&gt;
* '''Steps with CONTROL''' snaps in node/handle editing.&lt;br /&gt;
* '''Ignore cusp nodes''', affect to all other widgets changes and, for example, retain cusp nodes when you change the power.&lt;br /&gt;
* '''Change only selected nodes''', affect to all other widgets changes.&lt;br /&gt;
* Show a '''helper path''' whith the final shape and the generated new nodes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
==== Fillet/Chamfer ====&lt;br /&gt;
----&lt;br /&gt;
[[File:Fillet-chamfer.png|170px|right|thumb]]&lt;br /&gt;
Extended video: https://www.youtube.com/watch?v=wJKzGhJULfc&lt;br /&gt;
&lt;br /&gt;
* '''Four types:''' fillet, inverse fillet, chamfer and inverse chamfer.&lt;br /&gt;
* Fillet/Chamfer knots are green diamonds&lt;br /&gt;
* '''Change Fillet/Chamfer types:''' &amp;lt;kbd&amp;gt;Ctrl+click&amp;lt;/kbd&amp;gt; green knot&lt;br /&gt;
* '''Fillet/Chamfer knot dialog:''' &amp;lt;kbd&amp;gt;Shift+click&amp;lt;/kbd&amp;gt; green knot&lt;br /&gt;
* Handle units.&lt;br /&gt;
* Methods '''Auto,Force Arcs or Force Bezier'''. Auto use arcs for straight lines and bezier for curves.&lt;br /&gt;
* Numeric '''radius input'''.&lt;br /&gt;
* Optional helper path with knot direction&lt;br /&gt;
* Two kind of radius, '''fixed and flexible'''.&lt;br /&gt;
* Optional Knot distance to node instead radius&lt;br /&gt;
* Ignore 0 radius knots.&lt;br /&gt;
* Change only selected nodes.&lt;br /&gt;
* Chamfer subdivisions input. -double-chamfer, triple chamfer....-&lt;br /&gt;
* Hide Knots, some times useful. ex: 0 radius knot.&lt;br /&gt;
* Type change buttons&lt;br /&gt;
[[File:Fillet-chamfer2.gif]]&lt;br /&gt;
&lt;br /&gt;
==== Roughen ====&lt;br /&gt;
----&lt;br /&gt;
[[File:Roughen.png|170px|right|thumb]]&lt;br /&gt;
&lt;br /&gt;
Extended video: https://www.youtube.com/watch?v=130Dbt0juvY&lt;br /&gt;
&lt;br /&gt;
This filter is a semi-clone of two extensions, (&amp;quot;add nodes&amp;quot; and &amp;quot;jitter nodes&amp;quot;) + handle units.&lt;br /&gt;
&lt;br /&gt;
The parameters are similar to both extensions + a global randomizer.&lt;br /&gt;
&lt;br /&gt;
* Apply to paths, shapes and groups.&lt;br /&gt;
* Apply to clip and masks -if are vectors-&lt;br /&gt;
&lt;br /&gt;
[[File:Roughen.gif]]&lt;br /&gt;
&lt;br /&gt;
==== Simplify ====&lt;br /&gt;
----&lt;br /&gt;
[[File:Simplify.png|170px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Extended video: https://www.youtube.com/watch?v=gaWujN_iTSk&lt;br /&gt;
&lt;br /&gt;
Send the simplify command to a non-destructive live path effect.&lt;br /&gt;
* Use on paths, shapes and groups of them.&lt;br /&gt;
* Apply to clip and masks -if are vectors-&lt;br /&gt;
* User can change modify the threshold -preferences dialog- used by a numeric parameter.&lt;br /&gt;
* Apply Simplify on stack.&lt;br /&gt;
[[File:Simplify.gif]]&lt;br /&gt;
&lt;br /&gt;
==== Perspective/Envelope ====&lt;br /&gt;
----&lt;br /&gt;
[[File:Perspective-envelope.png|170px|thumb|right]] &lt;br /&gt;
Extended video: https://www.youtube.com/watch?v=CjKGatyxTZ8&lt;br /&gt;
&lt;br /&gt;
Apply both deformations by 4 points.&lt;br /&gt;
* Two modes, perspective and envelope.&lt;br /&gt;
* Apply on paths, shapes and groups.&lt;br /&gt;
* Apply on vector clips and mask&lt;br /&gt;
[[File:Perspective-envelope.gif]]&lt;br /&gt;
&lt;br /&gt;
==== Lattice Deformation 2 ====&lt;br /&gt;
----&lt;br /&gt;
[[File:Latice2.png|170px|thumb|right]]&lt;br /&gt;
Extended video: https://www.youtube.com/watch?v=YlK9L88_tWE&amp;lt;br /&amp;gt;&lt;br /&gt;
Symmetry video: https://www.youtube.com/watch?v=jhuVjqFA6ig&lt;br /&gt;
&lt;br /&gt;
Add deformations by a mesh.&amp;lt;br /&amp;gt;&lt;br /&gt;
Vertical,horizontal or both symmetry.&lt;br /&gt;
* Apply to paths, shapes and groups.&lt;br /&gt;
* Apply to vector clips and mask&lt;br /&gt;
&lt;br /&gt;
[[File:Latice2.gif]]&lt;br /&gt;
&lt;br /&gt;
==== Show Handles ====&lt;br /&gt;
----&lt;br /&gt;
[[File:ShowHandles.png|170px|thumb|right]]&lt;br /&gt;
Extended video: https://www.youtube.com/watch?v=h9ul_PR9XYo&lt;br /&gt;
&lt;br /&gt;
A LPE version of Show Handles extension.&lt;br /&gt;
&lt;br /&gt;
* Work on paths, shapes and groups.&lt;br /&gt;
* Work on clones&lt;br /&gt;
* Node and Handle shapes resizeables&lt;br /&gt;
* If not a clone, is a destructive LPE, dont save styles, work on a copy!&lt;br /&gt;
[[File:ShowHandles.gif]]&lt;br /&gt;
&lt;br /&gt;
== Other user interface ==&lt;br /&gt;
&lt;br /&gt;
Snapping in the node tool has been improved:&lt;br /&gt;
&lt;br /&gt;
* When double clicking to insert new nodes, the position of these new nodes will snap to for example path intersections and to path-guide intersections&lt;br /&gt;
* When grabbing a segment of a path and dragging it to deform it, the pointer will now snap&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=95750</id>
		<title>Release notes/0.91</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=95750"/>
		<updated>2015-02-25T21:10:03Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Other languages|en=Release_notes/0.91}}&lt;br /&gt;
&lt;br /&gt;
==Inkscape 0.91==&lt;br /&gt;
&lt;br /&gt;
The Inkscape community announces the release of Inkscape 0.91. Inkscape is an multi-platform, Open-Source Vector Graphics Editor that uses SVG as its native file format. Digital artists use it to produce professional quality work. Engineers and scientists use it to create clear drawings to explain their ideas. Everyday people use it to create simple drawings, develop their design skills, and just have fun. This new version features faster and more accurate rendering, new and improved tools, as well as better and wider file-format support.&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
Released on '''2015-01-28'''.&lt;br /&gt;
&lt;br /&gt;
* Cairo rendering for display and PNG export&lt;br /&gt;
* OpenMP multithreading for all filters&lt;br /&gt;
* C++ code conversion&lt;br /&gt;
* Major improvements in the Text tool&lt;br /&gt;
* Measure tool&lt;br /&gt;
* Type design features [http://libregraphicsworld.org/blog/entry/inkscape-explores-type-design-gets-measure-tool],[http://understandingfonts.com/blog/2011/11/typography-extensions-in-inkscape-0-49/]&lt;br /&gt;
* Symbol library and support for Visio stencils&lt;br /&gt;
* Cross platform WMF and EMF import and export&lt;br /&gt;
* Improved support for Corel DRAW documents, Visio importer&lt;br /&gt;
* Support for real world document and page size units, e.g. millimeters&lt;br /&gt;
* Numerous usability improvements&lt;br /&gt;
* Native Windows 64-bit build&lt;br /&gt;
* See [[Release_notes/0.91#Notable_bug_fixes|Notable bug fixes]]&lt;br /&gt;
&lt;br /&gt;
==Rendering and performance==&lt;br /&gt;
&lt;br /&gt;
Inkscape 0.91 includes a new renderer based on the Cairo library. This work was done mainly during Google Summer of Code 2010 and 2011 projects.&lt;br /&gt;
&lt;br /&gt;
* '''Improved performance.''' The new renderer is significantly faster on most drawings. Renderings of the most complex objects are automatically cached to improve responsiveness during editing.&lt;br /&gt;
* '''OpenMP multithreading for filters.''' Filters use all available processor cores for computation. This results in substantial speedups when editing drawings containing large filtered objects on multi-core systems.&lt;br /&gt;
* '''Substantial memory savings.''' Inkscape now uses less memory when opening complex drawings, in some cases using only 25% of the memory used by Inkscape 0.48. Larger files can now be opened.&lt;br /&gt;
* '''Responsiveness improvements.''' The rendering of the SVG drawing is now cached. This results in massive improvements in responsiveness of path highlights, object selection / deselection, and path editing in delayed update mode.&lt;br /&gt;
* '''Rendering bug fixes.''' Most of the rendering glitches in our bug tracker are no longer present in Inkscape 0.91. The following things now render correctly:&lt;br /&gt;
** Pattern fills (no more gaps between tiles, regardless of transformation)&lt;br /&gt;
** Stroke of transformed objects in patterns&lt;br /&gt;
** Patterns containing clipped objects&lt;br /&gt;
** Nested clipping paths&lt;br /&gt;
** Masked and clipped objects with large masks / clipping paths in Outline view&lt;br /&gt;
** Paths with wide strokes and long miters&lt;br /&gt;
** Fonts&lt;br /&gt;
&lt;br /&gt;
===Color display mode===&lt;br /&gt;
&lt;br /&gt;
A '''grayscale''' display color mode has been added, that shows a preview of your drawing in grayscale. &amp;lt;kbd&amp;gt;Shift+numpad5&amp;lt;/kbd&amp;gt; toggles the color display mode between normal and grayscale.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
=== Node tool ===&lt;br /&gt;
The tool control bar for the Node Tool features a new dropdown to insert new nodes on the selected segments extreme values. For example, (as demonstrated in the image below) it is possible to add a new node at the highest point in a curve using '''Insert Node at Max Y'''&lt;br /&gt;
&lt;br /&gt;
[[File:Add nodes at max.gif]]&lt;br /&gt;
&lt;br /&gt;
=== Measurement tool ===&lt;br /&gt;
The Measurement tool is a new feature for the artist to measure the elements in their drawing. To use the measurement tool, simply choose the tool, click anywhere on the drawing and drag the ruler out. The measurement tool will live-update with measurements of length and angles as you pass over objects in your drawing.&lt;br /&gt;
&lt;br /&gt;
[[File:Ruler.png]]&lt;br /&gt;
&lt;br /&gt;
=== Text tool ===&lt;br /&gt;
* Text size default unit is now points (&amp;lt;code&amp;gt;pt&amp;lt;/code&amp;gt;) and is customizable (&amp;lt;code&amp;gt;px&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;pt&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;pc&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;mm&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;cm&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;in&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Text toolbar shows full list of font style variants for that font&lt;br /&gt;
* Files with text in &amp;lt;code&amp;gt;em&amp;lt;/code&amp;gt; units read correctly&lt;br /&gt;
* Font substitution warning dialog&lt;br /&gt;
&lt;br /&gt;
=== Gradients  ===&lt;br /&gt;
* Gradient toolbar enhanced to select and modify gradient stops, invert, repeat, and link gradients&lt;br /&gt;
* On-canvas gradient editing fixes: double clicking to create stops, correct focus on select&lt;br /&gt;
* Gradients sortable by color, name and usage in Fill/Stroke&lt;br /&gt;
* Gradients can be renamed in Fill/Stroke&lt;br /&gt;
&lt;br /&gt;
== Dialogs, etc. ==&lt;br /&gt;
&lt;br /&gt;
=== Arrange (was rows and columns) ===&lt;br /&gt;
- '''NEW:''' renamed to 'Arrange'&lt;br /&gt;
- '''NEW:''' polar arrangement (separate tab)&lt;br /&gt;
&amp;lt;http://issuu.com/ddeclara/docs/inkscape_radial_arrangement&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Align and Distribute ===&lt;br /&gt;
* The new updated Inkscape features a new set of buttons in the '''Align and Distribute Dialog''' called '''Exchange position of selected objects'''. It adds the ability to exchange the positions of the objects that the artist has selected. &lt;br /&gt;
** In the following example, three objects were selected, and their positions were exchaged with each other (using this new feature) according to their selection order. &lt;br /&gt;
[[File:Swap-objects.gif]]&lt;br /&gt;
** There are also two other new buttons in the dialog that allow the artist to exchange the selected objects based on the stacking (&amp;lt;code&amp;gt;z-index&amp;lt;/code&amp;gt;) order, or just exchange them clockwise based on the object's position on the page.&lt;br /&gt;
&lt;br /&gt;
* Keyboard shortcuts (&amp;lt;kbd&amp;gt;Ctrl+Alt+Keypad numbers&amp;lt;/kbd&amp;gt;) for align operations&lt;br /&gt;
&lt;br /&gt;
=== Document Properties ===&lt;br /&gt;
Optionally disable antialiasing (bug #170356, interface partially implemented)&lt;br /&gt;
&lt;br /&gt;
=== Find/Select ===&lt;br /&gt;
* It is now easier to select items which are not at the top of the Z-order: use &amp;lt;kbd&amp;gt;Alt+mouse wheel scroll&amp;lt;/kbd&amp;gt; to cycle through all items that are stacked on top of each other at the location of the mouse pointer (use &amp;lt;kbd&amp;gt;Shift+Alt+mouse wheel&amp;lt;/kbd&amp;gt; scroll to add to the existing selection). At present, groups are not honoured, i.e., only individual items within groups are considered.&lt;br /&gt;
* New '''Find/Replace''' dialog can operate on text or any attribute&lt;br /&gt;
* &amp;quot;Select Same&amp;quot; is a new feature that allows an artist to select objects that have the same properties as the currently selected object. For example, you could select an object that has a fill of blue. Then, using the new feature select all other objects in the drawing with a fill set to that same shade of blue.&lt;br /&gt;
&lt;br /&gt;
[[File:Selectsame.gif]]&lt;br /&gt;
&lt;br /&gt;
The new feature is a menu choice under '''Edit ▶︎ Select Same''' or as a Context menu if you right click on a selected object. Also there are other choices available to select same, including: matching both Fill and Stroke, matching just stroke, matching stroke style, or matching on object type.&lt;br /&gt;
&lt;br /&gt;
=== Fill and Stroke ===&lt;br /&gt;
* The Gradient view in the fill and stroke dialog now displays a list of all the gradients in the document. The list displays the gradient, the gradient name, and number of uses of that gradient in the document.&lt;br /&gt;
[[File:Gradient-fill-stroke.png‎]]&lt;br /&gt;
&lt;br /&gt;
* More compact Markers selectors&lt;br /&gt;
&lt;br /&gt;
=== Layers  ===&lt;br /&gt;
* Drag and drop to reorder layers and create sublayers&lt;br /&gt;
* '''Show/Hide All layers''' options in context menu&lt;br /&gt;
&lt;br /&gt;
=== Symbols ===&lt;br /&gt;
&lt;br /&gt;
Inkscape has a new Symbols dialog. The dialog displays symbols from a symbol library. Inkscape 0.91 includes five example libraries: logic symbols, AIGA/DOT transportation symbols, map symbols, flow chart shapes and word balloons. The dialog will also create a pseudo-library of all existing symbols in the current Inkscape drawing. &lt;br /&gt;
(A symbol is defined by an SVG &amp;lt;code&amp;gt;&amp;amp;lt;symbol&amp;amp;gt;&amp;lt;/code&amp;gt; element.) Symbols can be dragged from the dialog onto the Inkscape canvas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
          I dunno how to mark up a file or directory; my best guess is  the to use 'code' with a CSS class, but it’s a total guess.  &lt;br /&gt;
          If you know something better, please add it.  Please don’t remove it, though; files and directories deserve to be marked up! :P&lt;br /&gt;
          ~~~~&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
Any document with symbols can serve as a source for a symbol library. Simply copy it to the &amp;lt;code class=&amp;quot;file&amp;quot;&amp;gt;symbols&amp;lt;/code&amp;gt; directory in your configuration directory (typically &amp;lt;code class=&amp;quot;file&amp;quot;&amp;gt;share/inkscape&amp;lt;/code&amp;gt;). If proper care is taken, symbols can be provided with default fill and stroke colors that later can be overridden by the user.&lt;br /&gt;
&lt;br /&gt;
Visio Stencil files (&amp;lt;code class=&amp;quot;file&amp;quot;&amp;gt;.vss&amp;lt;/code&amp;gt;) can also be used by dropping them in the same &amp;lt;code class=&amp;quot;file&amp;quot;&amp;gt;symbols&amp;lt;/code&amp;gt; directory. Results may not be as satisfactory as using SVG symbol libraries.&lt;br /&gt;
&lt;br /&gt;
See the [http://wiki.inkscape.org/wiki/index.php/SymbolsDialog Symbols Dialog] Wiki page for more details.&lt;br /&gt;
&lt;br /&gt;
=== Text and Font ===&lt;br /&gt;
* '''NEW:''' lists fonts used in the current document at the top&lt;br /&gt;
* '''NEW:''' select all text objects with same font as current selection&lt;br /&gt;
* '''NEW (to be verified):''' support list with fallback fonts (CSS2)&lt;br /&gt;
&lt;br /&gt;
=== Transform ===&lt;br /&gt;
* Rotation of objects clockwise or counterclockwise&lt;br /&gt;
&lt;br /&gt;
=== Markers ===&lt;br /&gt;
* Markers now take objects color&lt;br /&gt;
&lt;br /&gt;
=== Trace Bitmap ===&lt;br /&gt;
* Trace bitmap preview updates live and is resizeable&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects===&lt;br /&gt;
&lt;br /&gt;
An object's '''Live Path Effects''' are now forked upon object duplication.&lt;br /&gt;
&lt;br /&gt;
====PowerStroke====&lt;br /&gt;
&lt;br /&gt;
Here a list of the current state. Note that this is very much work in progress and '''anything can change'''. I think this is the most efficient place of keeping track how the powerstroke LPE works.&lt;br /&gt;
&lt;br /&gt;
* Stroke knots are purple diamonds&lt;br /&gt;
* When first applied, 3 stroke knots are added: start, end, and somewhere in the middle along the path&lt;br /&gt;
* '''Add nodes:''' &amp;lt;kbd&amp;gt;Ctrl+click&amp;lt;/kbd&amp;gt; purple knot&lt;br /&gt;
* '''Delete nodes:''' &amp;lt;kbd&amp;gt;Ctrl+Alt+click&amp;lt;/kbd&amp;gt; purple knot&lt;br /&gt;
* &amp;quot;sort points&amp;quot; reorders the stroke knots according to where they lie along the path (where they are closest to the path), instead of keeping them in original order.&lt;br /&gt;
* Start and end caps can be specified. The SVG cap types are available, as well as an extra type, &amp;quot;Zero width&amp;quot;, that is identical to adding a width control knot at the start/end of the path with zero width.&lt;br /&gt;
* Join type can be specified. In addition to the SVG join types, there are two new types:&lt;br /&gt;
&amp;lt;!-- ** '''Extrapolated''': this extrapolates the contour of the stroked path to obtain a more natural looking miter join. //Feature deactivated --&amp;gt;&lt;br /&gt;
** '''Extrapolated arc''': [http://tavmjong.free.fr/SVG/LINEJOIN/index.html Mathematical explanation].&lt;br /&gt;
** '''Spiro''': rounds the join using a spiro curve (the '''rounded''' type rounds the curve using an elliptical arc).&lt;br /&gt;
&lt;br /&gt;
[http://imgh.us/powerstroke-ell.png example screenshot]&lt;br /&gt;
&lt;br /&gt;
====Clone Original====&lt;br /&gt;
The Clone original LPE ignores the path data of the path it has been applied to; instead, it '''copies the original-d path data''', i.e. the path data before LPE calculation, from the path linked to by the Linked path parameter.&lt;br /&gt;
&lt;br /&gt;
The Clone original LPE is made to be used in conjunction with powerstroke. Powerstroke creates a path with a variable stroke, but this path can then not be filled (because the fill is used as the stroke). To fill a powerstroked path, one must create a second path (dummy path), apply the Clone original LPE and link it to the powerstroked path. Because this second path clones the original path data before the Powerstroke LPE, it can be used to fill the powerstroked path.&lt;br /&gt;
&lt;br /&gt;
To quickly create a dummy path and apply this effect, one can select the path to 'clone' and click the menu item '''Edit ▶︎ Clone ▶︎ Clone original path (LPE)'''.&lt;br /&gt;
&lt;br /&gt;
Like for normal clones, pressing &amp;lt;kbd&amp;gt;Shift+D&amp;lt;/kbd&amp;gt;, when the selected path has the Clone original LPE applied, selects the path referred to by the LPE.&lt;br /&gt;
&lt;br /&gt;
Another very useful ability of the Clone original LPE is to create a clone with a different style than its referred path. To facilitate this, the LPE dialog will add the Clone original LPE when a clone is selected and the &amp;quot;+&amp;quot; button is pressed.&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
The new Custom predefined filters allow users to create predefined filters with custom parameters. See [[SpecCustomPredefinedFilters]].&lt;br /&gt;
&lt;br /&gt;
=== Trace Pixel Art (&amp;lt;code&amp;gt;libdepixelize&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
A [https://launchpad.net/libdepixelize new library] developed for Inkscape to automatically vectorize raster images specialized in Pixel Art was integrated in the form of the &amp;quot;Trace Pixel Art&amp;quot; dialog (menu item '''Path ▶︎ Trace Pixel Art...'''). Good and old general &amp;quot;Trace Bitmap&amp;quot; is still there. Check the [http://research.microsoft.com/en-us/um/people/kopf/pixelart/supplementary/index.html supplementary material] of the algorithm authors to see a preview of how the algorithm behaves.&lt;br /&gt;
&lt;br /&gt;
==Other User Interface==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* Canvas background color can be set without exporting it (background transparency is only used for export but not the canvas).&lt;br /&gt;
* Panning the canvas with the &amp;lt;kbd&amp;gt;Space bar&amp;lt;/kbd&amp;gt; is now always turned on and doesn't require an additional mouse button press to grab the canvas: just press the &amp;lt;kbd&amp;gt;Space bar&amp;lt;/kbd&amp;gt; and move the mouse pointer to pan the canvas.&lt;br /&gt;
&lt;br /&gt;
=== Guides ===&lt;br /&gt;
* Guides visibility can be toggled by clicking the ruler&lt;br /&gt;
* Guides can now have labels, and the colour of individual guides can also be set by the user. To label or colour a guide, double click on the guideline to bring up the guide properties dialog.&lt;br /&gt;
[[File:Labelled-guides.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Menu/Access ===&lt;br /&gt;
&lt;br /&gt;
* The interface elements are accessible through the keyboard with &amp;lt;kbd&amp;gt;ALT+key&amp;lt;/kbd&amp;gt; in many more dialogs&lt;br /&gt;
* &amp;quot;Text and Font&amp;quot;, &amp;quot;Fill and Stroke&amp;quot;, and &amp;quot;Check Spelling&amp;quot; dialogs are added to the text object context menu (right click)&lt;br /&gt;
* Menu items renamed: &lt;br /&gt;
** '''Edit ▶︎ Preferences'''&lt;br /&gt;
** '''Edit ▶︎ Input Devices'''&lt;br /&gt;
** '''File ▶︎ Cleanup Document'''&lt;br /&gt;
* Checkboxes to indicated status of View ▶︎ Grid/Guides/Snap/Color Management&lt;br /&gt;
* Group/Ungroup from the context menu&lt;br /&gt;
&lt;br /&gt;
=== Preferences ===&lt;br /&gt;
* New keyboard shortcut editor&lt;br /&gt;
* '''Prefs ▶︎ Interface''' -- New option for dockbar and switcher style (icons, text, icons &amp;amp; text) (bug #1098416)&lt;br /&gt;
* '''Prefs ▶︎ Interface ▶︎ Windows''' -- optionally don't save &amp;amp; restore documents viewport (bug #928205)&lt;br /&gt;
* '''Prefs ▶︎ Behavior ▶︎ Steps''' -- unit selector for steps (move, scale, inset/outset) (bug #170293)&lt;br /&gt;
* '''Prefs ▶︎ Behavior ▶︎ Steps''' -- option for relative snapping of guideline angles (rev 10307)&lt;br /&gt;
* '''Prefs ▶︎ Behavior ▶︎ Clones''' -- optionally relink linked offsets on duplication (bug #686193)&lt;br /&gt;
* '''Prefs ▶︎ Input/Output ▶︎ SVG output''' -- NEW: optionally enforce relative or absolute coordinates (bug #1002230)&lt;br /&gt;
&lt;br /&gt;
=== Dialogs ===&lt;br /&gt;
* Dialog status and position is remembered between sessions&lt;br /&gt;
* Most dialogs now dockable (including &amp;quot;Object properties&amp;quot;, &amp;quot;Object attributes&amp;quot;, &amp;quot;Text and Font&amp;quot;, &amp;quot;Check spelling&amp;quot;, &amp;quot;Export PNG image&amp;quot;, &amp;quot;XML editor&amp;quot;, &amp;quot;Find/Replace&amp;quot;, and &amp;quot;Tiled clones&amp;quot;)&lt;br /&gt;
* New preference to allow Windows users to choose between native and Gtk Open/Save dialog&lt;br /&gt;
* Preferences dialog cleanup&lt;br /&gt;
* Document Metadata dialog merged into Document Properties&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simple calculations in spinboxes===&lt;br /&gt;
In most spinboxes (a spinbox is an entry field with up and down &amp;quot;spinbuttons&amp;quot; next to it) you can now write simple calculations. Some examples: &lt;br /&gt;
&lt;br /&gt;
* &amp;lt;samp&amp;gt;2 * 3&amp;lt;/samp&amp;gt;&lt;br /&gt;
* &amp;lt;samp&amp;gt;50 + 100&amp;lt;/samp&amp;gt;, or &lt;br /&gt;
* &amp;lt;samp&amp;gt;((12 + 34) * (5 + 5) - 2) / 2&amp;lt;/samp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moreover, you can use units in entering values, like &amp;lt;samp&amp;gt;2 + 2 cm&amp;lt;/samp&amp;gt;. The result will be converted to the selected unit for the particular entry.&lt;br /&gt;
&lt;br /&gt;
===Configurable Control Handles===&lt;br /&gt;
&lt;br /&gt;
New preferences have been added to allow for the size of the on-canvas controls to be increased or decreased. The &amp;quot;Input Devices&amp;quot; section has been updated to control this.&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
* The ''Keyboard and mouse reference'' (inkscape-docs project) and the labels of color palettes are now translatable.&lt;br /&gt;
* New UI translation in Latvian.&lt;br /&gt;
* New tutorial translations in Galician and Greek.&lt;br /&gt;
* New ''Keyboard and mouse reference'' translation in Belarusian.&lt;br /&gt;
* New man pages in Chinese (zh_TW) Greek (el), Japanese (ja) and Slovak (sk), and updated French translation. ''[Galician (gl) and Polish (pl) in progress]''&lt;br /&gt;
* Man pages now use PO files for translation (inkscape-docs project).&lt;br /&gt;
* The tutorial generation system now fully supports RTL languages.&lt;br /&gt;
&lt;br /&gt;
==File format support==&lt;br /&gt;
* New Flash XML Graphics (FXG) export format.&lt;br /&gt;
* New Synfig Animation Studio (SIF) export format.&lt;br /&gt;
* New HTML5 Canvas export format&lt;br /&gt;
* New Visio (VSD) import format, based on [http://www.freedesktop.org/wiki/Software/libvisio libvisio].&lt;br /&gt;
* New internal CorelDraw (CDR) import format, based on [http://www.freedesktop.org/wiki/Software/libcdr libcdr].&lt;br /&gt;
* XAML export improvements (including a new Silverlight compatible mode).&lt;br /&gt;
* Compressed SVG and media export extension improvements. New options:&lt;br /&gt;
** set an image directory in the zip file&lt;br /&gt;
** add a text file that lists the fonts used in the SVG document.&lt;br /&gt;
* New preference to allow users to always link, embed or ask when importing bitmaps.&lt;br /&gt;
* New preferences that allow the checking of SVG on input and/or export for invalid or not useful elements, attributes, and properties. Options control whether such items generate warnings (when Inkscape is run from the command line) or in removing such items.&lt;br /&gt;
* The &amp;lt;code&amp;gt;--export-text-to-path&amp;lt;/code&amp;gt; option now works with Plain SVG export.&lt;br /&gt;
&lt;br /&gt;
===EMF/WMF===&lt;br /&gt;
EMF and WMF input and output filters have been completely rewritten and are now cross-platform. It is now possible to copy and paste EMF files between Windows applications running in Wine and a native Linux version of Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Gimp XCF===&lt;br /&gt;
* The '''Save Background''' option allows users to choose if the page background is saved with each GIMP layer.&lt;br /&gt;
* The exported layers now use the &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; attribute or, if not set, the &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* New '''Resolution''' option&lt;br /&gt;
* New '''Help''' tab&lt;br /&gt;
* Some bugs and warnings fixed&lt;br /&gt;
&lt;br /&gt;
===PDF===&lt;br /&gt;
* '''Bleed/margin:''' Added an option to specify an extra margin by which the bounding box to be exported is expanded. This may be helpful to export a PDF with a small white margin around the drawing, or for exporting a bleed region a few mm outside the area of the page.&lt;br /&gt;
&lt;br /&gt;
===PDF/EPS/PS + LaTeX===&lt;br /&gt;
* Added the possibility of scaling the image. The &amp;lt;code&amp;gt;calc&amp;lt;/code&amp;gt; package must be included in the preamble. Then the image can be scaled by defining &amp;lt;code&amp;gt;\svgscale&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;\svgwidth&amp;lt;/code&amp;gt;.&lt;br /&gt;
* The font shape is now also exported. &amp;lt;code&amp;gt;\textit{}&amp;lt;/code&amp;gt; for italic text, &amp;lt;code&amp;gt;\textbf{}&amp;lt;/code&amp;gt; for bold text, and &amp;lt;code&amp;gt;\textsl{}&amp;lt;/code&amp;gt; (slanted) for oblique text. It is important to note that '''Arial''' has an '''oblique''' font shape, not '''italic'''. Thus, the result in LaTeX will be '''slanted''', instead of '''italic'''. It is better to '''use another font''' in Inkscape when you want true italics.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===Units: Breaking change===&lt;br /&gt;
Due to the implementation of proper document units, the functions &amp;lt;code&amp;gt;inkex.unittouu&amp;lt;/code&amp;gt; and &lt;br /&gt;
&amp;lt;code&amp;gt;inkex.uutounit&amp;lt;/code&amp;gt; had to be modified and moved to the &amp;lt;code&amp;gt;inkex.Effect&amp;lt;/code&amp;gt; class. &lt;br /&gt;
&lt;br /&gt;
Unit conversion calls should be replaced with &amp;lt;code&amp;gt;inkex.Effect.unittouu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;inkex.Effect.uutounit&amp;lt;/code&amp;gt; calls (usually &amp;lt;code&amp;gt;self.unittouu&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;self.uutounit&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
See also: [[Notes On Units Handling in Extensions in 0.91]]&lt;br /&gt;
&lt;br /&gt;
===New===&lt;br /&gt;
* The new '''guillotine extension''' is used for exporting PNG slices from a drawing. The slice rectangles are defined by adding horizontal and vertical guides within the canvas boundary, the canvas boundary serves as the outside of the sliced area.&lt;br /&gt;
* The new [http://en.wikipedia.org/wiki/G-code '''G-code'''] tools extension converts paths to G-code (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.&lt;br /&gt;
* New [http://en.wikipedia.org/wiki/QR_code QR code] generator.&lt;br /&gt;
* New '''isometric grid generator'''.&lt;br /&gt;
* New '''bitmap crop''' extension.&lt;br /&gt;
* New '''Extract text''' extension. Outputs a document’s text elements in a chosen order.&lt;br /&gt;
* New '''Merge text''' extension.&lt;br /&gt;
* New '''HSL adjust''' extension.&lt;br /&gt;
* New '''Replace font''' extension.&lt;br /&gt;
* New '''N-Up layout''' extension.&lt;br /&gt;
* New '''Voronoï diagram''' extension (creates Voronoï diagrams and Delaunay triangulations based on the selected objects' barycenter).&lt;br /&gt;
* New '''Interpolate Attribute''' in a group extension.&lt;br /&gt;
* New '''Typography extensions''' menu.&lt;br /&gt;
* New '''[http://www.evilmadscientist.com/2011/hershey-text-an-inkscape-extension-for-engraving-fonts/ Hershey Text]''' extension.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* '''Number nodes.''' New parameters allowing users to choose the starting dot number and the numbering step between two nodes.&lt;br /&gt;
&amp;lt;!-- * '''Color Markers to Match Stroke''' extension improvements. The markers can now inherit the fill and stroke colors and alpha channels from the object, or be customized with color selectors in a separate tab. --&amp;gt;&lt;br /&gt;
* Optional sliders added on &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; extension parameters (full and minimal modes).&lt;br /&gt;
* Extension parameters values (''except attributes!'') can now be contextualized for translation (with &amp;lt;code&amp;gt;msgctxt&amp;lt;/code&amp;gt;).&lt;br /&gt;
* New sub-menus in the '''Render''' menu, grouping the bar-codes, grids and layout extensions.&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
Rendering of the following properties is now supported (without UI except via XML editor):&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;clip-rule&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;color-interpolation-filters&amp;lt;/code&amp;gt;: Non-Inkscape filters that specify &amp;lt;code&amp;gt;linearRGB&amp;lt;/code&amp;gt; color interpolation will render properly. Filters created inside Inkscape will still use &amp;lt;code&amp;gt;sRGB&amp;lt;/code&amp;gt; color interpolation by default.&lt;br /&gt;
* &amp;lt;code&amp;gt;text-decoration&amp;lt;/code&amp;gt;: Underline, strike-through, over line.&lt;br /&gt;
* &amp;lt;code&amp;gt;text-decoration-line&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;text-decoration-style&amp;lt;/code&amp;gt;: Preliminary support (CSS 3).&lt;br /&gt;
* &amp;lt;code&amp;gt;paint-order&amp;lt;/code&amp;gt;: Allows stroke to be painted under fill; useful for text.&lt;br /&gt;
&lt;br /&gt;
== Snapping ==&lt;br /&gt;
* '''The default snap settings have changed, and therefore Inkscape might not always snap as expected. Specifically, please enable the 10th button on the snap toolbar (&amp;quot;Snap cusp nodes&amp;quot;). Please make sure that also these buttons are enabled: &amp;quot;Enable snapping&amp;quot; (the topmost button), &amp;quot;Snap nodes, paths, and handles&amp;quot; (the 7th button), and &amp;quot;Snap to grids&amp;quot; and &amp;quot;Snap to guides&amp;quot; (the lowest two buttons)'''. This should get you started again&lt;br /&gt;
* The snapping preferences and the snap toolbar have been reworked (in the underlying code and in the GUI) to should make the snapping preferences easier to understand, maintain, and find and fix any remaining snapping bugs&lt;br /&gt;
* Inkscape now also snaps perpendicularly and tangentialy to paths, when creating paths in the pen tool, when dragging nodes, or when manipulating guides. Newly created guides (dragged off the ruler) will snap perpendicularly or tangentialy to any curve that is being snapped to. Two checkboxes have been added to the document properties dialog (on the snapping tab). Please note that snapping perpendicularly or tangetialy will not work in the selector tool when transforming an object or a selection of objects.&lt;br /&gt;
* Intersections of paths and guides can now be snapped to too&lt;br /&gt;
* Snapping has been implemented fully for transforming selections of multiple nodes in the node tool&lt;br /&gt;
* Snapping to text anchors and baselines has been implemented properly&lt;br /&gt;
* If one has chosen for only snapping the snap source closest to the mouse pointer, then the tab key can be used to cycle to the next closest snap source&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
Notable bug fixes since last bug fix release ([[Release notes/0.48.5|0.48.5]]):&lt;br /&gt;
* Images are no longer recompressed when embedding or exporting them. [https://bugs.launchpad.net/inkscape/+bug/871563]&lt;br /&gt;
* Relative image paths are no longer stored as absolute (regression introduced with [[Release notes/0.47|0.47]]).&lt;br /&gt;
* Many rendering glitches were fixed.&lt;br /&gt;
* The rendering of the stroke on transformed objects now matches the SVG specification.&lt;br /&gt;
* Values entered in the numeric input boxes for the selector tool (&amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;width&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;height&amp;lt;/code&amp;gt;) are much more accurately applied.&lt;br /&gt;
* Inkscape launches faster due to new icon cache (on disk) and improved font loading. (Bug #[https://bugs.launchpad.net/inkscape/+bug/488247 488247])&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
* '''On MS Windows when the desktop colordepth is set to 16-bit, Inkscape is unusable because of exploding memory usage.''' Please set the '''colordepth''' to 32-bit.&lt;br /&gt;
* The Cairo library used in the new renderer does not implement downscaling, which causes large bitmaps to be pixelated on export. [https://bugs.launchpad.net/inkscape/+bug/804162] The issue can be fixed by upgrading to Cairo 1.14.0. [https://bugs.freedesktop.org/show_bug.cgi?id=41745]&lt;br /&gt;
* On OS X, the conflict with X11/XQuartz's pasteboard syncing has not been solved yet: turning off &amp;quot;Update Pasteboard when CLIPBOARD changes&amp;quot; in X11 Preferences prevents that vector data copied or cut to the clipboard gets rasterized on paste. ([https://bugs.launchpad.net/inkscape/+bug/307005 bug #307005]) &lt;br /&gt;
* On OS X 10.9 or later, embedding bitmap images on import or paste from clipboard may crash Inkscape. ([https://bugs.launchpad.net/inkscape/+bug/1398521 bug #1398521], [https://bugs.launchpad.net/inkscape/+bug/1410793 #1410793])&lt;br /&gt;
* On OS X 10.9 or later, turning off &amp;quot;Displays have separate spaces&amp;quot; in Mission Control helps when using X11 across multiple displays. ([https://bugs.launchpad.net/inkscape/+bug/1244397 bug #1244397]) &lt;br /&gt;
* The reworked '''Import Clip Art''' feature is not available with current OS X packages. ([https://bugs.launchpad.net/inkscape/+bug/943148 bug #943148])&lt;br /&gt;
* On MS Windows, the icons for Preferences, Undo, Redo and Revert are missing. ([https://bugs.launchpad.net/inkscape/+bug/1269698 bug #1269698])&lt;br /&gt;
* On MS Windows, 64bit Inkscape builds on systems with Intel graphic cards may expose lagging when dragging objects or drawing (pen, pencil and calligraphy tools); hiding the rulers can help to improve performance. ([https://bugs.launchpad.net/inkscape/+bug/1351597 bug #1351597])&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
* [[Release notes/0.48]] ([[Release notes/0.48.1 |0.48.1]], [[Release notes/0.48.2 | 0.48.2]], [[Release notes/0.48.3 | 0.48.3]], [[Release notes/0.48.4 | 0.48.4]], [[Release notes/0.48.5 | 0.48.5]])&lt;br /&gt;
* [[Release notes/0.47]]&lt;br /&gt;
* [[Release notes/0.46]]&lt;br /&gt;
* [[Release notes/0.45]]&lt;br /&gt;
* [[Release notes/0.44]]&lt;br /&gt;
* [[Release notes/0.43]]&lt;br /&gt;
* [[Release notes/0.42]]&lt;br /&gt;
* [[Release notes/0.41]]&lt;br /&gt;
* [[Release notes/0.40]]&lt;br /&gt;
* [[Release notes/0.39]]&lt;br /&gt;
* [[Release notes/0.38]]&lt;br /&gt;
* [[Release notes/0.37]]&lt;br /&gt;
* [[Release notes/0.36]]&lt;br /&gt;
* [[Release notes/0.35]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48.4&amp;diff=88034</id>
		<title>Release notes/0.48.4</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48.4&amp;diff=88034"/>
		<updated>2012-12-30T13:21:16Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Release highlights==&lt;br /&gt;
&lt;br /&gt;
Released on '''17 December 2012'''.&lt;br /&gt;
&lt;br /&gt;
Inkscape 0.48.4 is a stability and bugfix release with an important security bugfix. For a complete list of bugs fixed in 0.48.4, see the [https://launchpad.net/inkscape/+milestone/0.48.4 Launchpad milestone page].&lt;br /&gt;
&lt;br /&gt;
==Important bugfixes==&lt;br /&gt;
&lt;br /&gt;
* A security bug was fixed.&lt;br /&gt;
* Some major bugs causing crashes when using extensions or the filters editor were fixed.&lt;br /&gt;
* A bug affecting the outline mode was fixed.&lt;br /&gt;
* Inkscape can now be built on platforms with new versions of the Poppler library (v0.20 and higher). ([https://bugs.launchpad.net/inkscape/+bug/1005565 bug #1005565])&lt;br /&gt;
* Relative path names can be used again on the command line for EPS/PS and other file types handled by script extensions ([https://bugs.launchpad.net/inkscape/+bug/695120 bug #695120])&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
&lt;br /&gt;
* Basque, Belarusian, French, Ukrainian: UI translation updated&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
* Not as awesome as [[Release notes/0.49|0.49]].&lt;br /&gt;
* When snapping nodes, it is no longer sufficient to enable only the button &amp;quot;snap nodes, paths, and handles&amp;quot;. Please enable &amp;quot;snap cusp nodes&amp;quot; and/or &amp;quot;snap smooth nodes&amp;quot; too ([https://bugs.launchpad.net/inkscape/+bug/1093739 bug #1093739])&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
*[[Release notes/0.48.3]]&lt;br /&gt;
*[[Release notes/0.48.2]]&lt;br /&gt;
*[[Release notes/0.48.1]]&lt;br /&gt;
*[[Release notes/0.48]]&lt;br /&gt;
*[[Release notes/0.47]]&lt;br /&gt;
*[[Release notes/0.46]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=77870</id>
		<title>Release notes/0.91</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=77870"/>
		<updated>2012-02-14T21:07:33Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.49==&lt;br /&gt;
&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning049]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
* Cairo rendering for display and PNG export&lt;br /&gt;
* OpenMP multithreading for all filters&lt;br /&gt;
&lt;br /&gt;
==Rendering and performance==&lt;br /&gt;
&lt;br /&gt;
Inkscape 0.49 includes a new renderer based on the Cairo library. This work was done during Google Summer of Code 2010 and 2011 projects.&lt;br /&gt;
* '''Improved performance.''' The new renderer is significantly faster on most drawings. Renderings of the most complex objects are automatically cached to improve responsiveness during editing.&lt;br /&gt;
* '''OpenMP multithreading for filters.''' Filters use all available processor cores for computation. This results in substantial speedups when editing drawings containing large filtered objects on multi-core systems.&lt;br /&gt;
* '''Substantial memory savings.''' Inkscape now uses less memory when opening complex drawings, in some cases using only 25% of the memory used by Inkscape 0.48. Larger files can now be opened.&lt;br /&gt;
* '''Responsiveness improvements.''' The rendering of the SVG drawing is now cached. This results in massive improvements in responsiveness of path highlights, object selection / deselection, and path editing in delayed update mode.&lt;br /&gt;
* '''Rendering bug fixes.''' Most of the rendering glitches in our bug tracker are no longer present in Inkscape 0.49. The following things now render correctly:&lt;br /&gt;
** Pattern fills (no more gaps between tiles, regardless of transformation)&lt;br /&gt;
** Stroke of transformed objects in patterns&lt;br /&gt;
** Patterns containing clipped objects&lt;br /&gt;
** Nested clipping paths&lt;br /&gt;
** Masked and clipped objects with large masks / clipping paths in Outline view&lt;br /&gt;
** Paths with wide strokes and long miters&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
=== Selector tool ===&lt;br /&gt;
&lt;br /&gt;
It is now easier to select items which are not at the top of the Z-order: use Alt+mouse wheel scroll to cycle through all items that are stacked on top of each other at the location of the mouse pointer (use Shift+Alt+mouse wheel scroll to add to the existing selection). At present, groups are not honoured, i.e., only individual items within groups are considered.&lt;br /&gt;
&lt;br /&gt;
=== Node tool ===&lt;br /&gt;
The Node tool's toolbar features new buttons to insert new knots on the selected path segments' extreme values. Click the dropdown arrow next to the insert knots button.&lt;br /&gt;
&lt;br /&gt;
=== Align and distribute dialog ===&lt;br /&gt;
New &amp;quot;Exchange position of selected objects&amp;quot; feature. It adds three buttons in the Align and Distribute dialog (rearrange group) that exchange the positions of the selected objects: 1. according to the selection order, 2. according to the Z-order, and 3. clockwise.&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects===&lt;br /&gt;
====PowerStroke====&lt;br /&gt;
Here a list of the current state. Note that this is very much work in progress and '''anything can change'''. I think this is the most efficient place of keeping track how the powerstroke LPE works.&lt;br /&gt;
* stroke knots are purple diamonds&lt;br /&gt;
* when first applied, 3 stroke knots are added one at start, one at end, one somewhere in the middle along the path.&lt;br /&gt;
* adding nodes: Ctrl+click purple knot, unselect object, reselect it.&lt;br /&gt;
* deleting nodes: Ctrl+Alt+click purple knot, unselect object, reselect it.&lt;br /&gt;
* &amp;quot;sort points&amp;quot; reorders the stroke knots according to where they lie along the path (where they are closest to the path), instead of keeping them in original order.&lt;br /&gt;
&lt;br /&gt;
[http://imgh.us/powerstroke-ell.png example screenshot]&lt;br /&gt;
&lt;br /&gt;
====Clone original====&lt;br /&gt;
The Clone original LPE ignores the path data of the path it has been applied to; instead, it '''copies the original-d path data''', i.e. the path data before LPE calculation, from the path linked to by the Linked path parameter.&lt;br /&gt;
&lt;br /&gt;
The Clone original LPE is made to be used in conjunction with powerstroke. Powerstroke creates a path with a variable stroke, but this path can then not be filled (because the fill is used as the stroke). To fill a powerstroked path, one must create a second path (dummy path), apply the Clone original LPE and link it to the powerstroked path. Because this second path clones the original path data before the Powerstroke LPE, it can be used to fill the powerstroked path.&lt;br /&gt;
To quickly create a dummy path and apply this effect, one can select the path to 'clone' and click the menu item '''Edit &amp;gt; Clone &amp;gt; Clone original path (LPE)'''.&lt;br /&gt;
&lt;br /&gt;
Like for normal clones, pressing Shift+D, when the selected path has the Clone original LPE applied, selects the path referred to by the LPE.&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
The new Custom predefined filters allow users to create predefined filters with custom parameters. See [[SpecCustomPredefinedFilters]].&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
* New Flash XML Graphics (FXG) export format.&lt;br /&gt;
* New Synfig Animation Studio (SIF) export format.&lt;br /&gt;
* XAML export improvements.&lt;br /&gt;
* Compressed SVG and media export extension improvements. New options: set an image directory in the zip file, and add a text file that lists the fonts used in the SVG document.&lt;br /&gt;
&lt;br /&gt;
===Gimp XCF improvements===&lt;br /&gt;
* The &amp;quot;Save Background&amp;quot; option allows users to choose if the page background is saved with each Gimp layer.&lt;br /&gt;
* The exported layers now use the label attribute or, if not set, the id attribute.&lt;br /&gt;
* New help tab.&lt;br /&gt;
* Some bugs and warnings fixed.&lt;br /&gt;
&lt;br /&gt;
===PDF/EPS/PS + LaTeX===&lt;br /&gt;
* Added the possibility of scaling the image. The 'calc' package must be included in the preamble. Then the image can be scaled by defining '\svgscale' instead of '\svgwidth'.&lt;br /&gt;
* The font shape is now also exported. '\textit{}' for italic text, '\textbf{}' for bold text, and '\textsl{}' (slanted) for oblique text. It is important to note that '''Arial''' has an '''oblique''' font shape and not '''italic''', so the result in LaTeX will be '''slanted instead of italic'''. It is better to '''use another font''' in Inkscape when you want true italics.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New===&lt;br /&gt;
* The new guillotine extension is used for exporting png slices from a drawing. The slice rectangles are defined by adding horizontal and vertical guides within the canvas boundary, the canvas boundary serves as the outside of the sliced area.&lt;br /&gt;
* The new [http://en.wikipedia.org/wiki/G-code G-code] tools extension converts paths to G-code (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.&lt;br /&gt;
* New [http://en.wikipedia.org/wiki/QR_code QR code] generator.&lt;br /&gt;
* New isometric grid generator.&lt;br /&gt;
* New bitmap crop extension (Extensions&amp;gt;Bitmaps&amp;gt;Crop).&lt;br /&gt;
* The new Extract text extension output the text elements of the document in a chosen order.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* Number nodes. New parameters allowing users to choose the starting dot number and the numbering step between two nodes.&lt;br /&gt;
* Color Markers to Match Stroke extension improvements. The markers can now inherit the fill and stroke colors and alpha channels from the object, or be customized with color selectors in a separate tab.&lt;br /&gt;
* Optional sliders added on float and int extension parameters (full and minimal modes).&lt;br /&gt;
* Extension parameters values (''except attributes!'') can now be contextualized for translation (with msgctxt).&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
*in many more dialogs, the interface elements are accessible through the keyboard with ALT+key.&lt;br /&gt;
*ability to set the canvas background color without exporting it (background transparency is only used for export but not the canvas).&lt;br /&gt;
*Object properties and attributes dialogs are now dockable&lt;br /&gt;
&lt;br /&gt;
===Menus===&lt;br /&gt;
Text and Font, Fill and Stroke and Check Spelling dialogs added to the text object context menu (right click).&lt;br /&gt;
&lt;br /&gt;
===Simple calculations in spinboxes===&lt;br /&gt;
In most spinboxes (a spinbox is an entry field with up and down &amp;quot;spinbuttons&amp;quot; next to it) you can now write simple calculations. For example: &amp;quot;2 * 3&amp;quot;, &amp;quot;50 + 100&amp;quot;, or &amp;quot;((12 + 34) * (5 + 5) - 2) / 2&amp;quot;.&lt;br /&gt;
Moreover, you can use units in entering values, like &amp;quot;2 + 2 cm&amp;quot;. The result will be converted to the selected unit for the particular entry.&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
* The ''Keyboard and mouse reference'' (inkscape-docs project) and color palettes' labels are now translatable.&lt;br /&gt;
* New tutorial translations in Galician and Greek.&lt;br /&gt;
* New man pages in Chinese (zh_TW) Greek (el), Japanese (ja) and Slovak (sk), and updated French translation. ''[Galician (gl) and Polish (pl) in progress]''&lt;br /&gt;
* Man pages now use PO files for translation (inkscape-docs project).&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;tt&amp;gt;clip-rule&amp;lt;/tt&amp;gt; property is now supported. No UI to set it exists at the moment, other than the XML editor.&lt;br /&gt;
&lt;br /&gt;
== Snapping ==&lt;br /&gt;
* The snapping preferences and the snap toolbar have been reworked, both in the underlying code as well as in the GUI. This should make the snapping preferences easier to understand, easier to maintain, and make it easier to find and fix any remaining snapping bugs&lt;br /&gt;
* Inkscape now also snaps perpendicularly and tangentialy to paths, when creating paths in the pen tool, when dragging nodes, or when manipulating guides. Newly created guides (dragged off the ruler) will snap perpendicularly or tangentialy to any curve that is being snapped to. Two checkboxes have been added to the document properties dialog (on the snapping tab). Please note that snapping perpendicularly or tangetialy will not work in the selector tool when transforming an object or a selection of objects.&lt;br /&gt;
* Intersections of paths and guides can now be snapped to too&lt;br /&gt;
* Snapping has been implemented fully for transforming selections of multiple nodes in the node tool&lt;br /&gt;
* Snapping to text anchors and baselines has been implemented properly&lt;br /&gt;
* If one has chosen for only snapping the snap source closest to the mouse pointer, then the tab key can be used to cycle to the next closest snap source&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
Notable bug fixes since last bug fix release ([[Release notes/0.48.3|0.48.3]]):&lt;br /&gt;
* Relative image paths are no longer stored as absolute (regression introduced with [[Release notes/0.47|0.47]]).&lt;br /&gt;
* Many rendering glitches were fixed.&lt;br /&gt;
* The rendering of the stroke on transformed objects now matches the SVG specification.&lt;br /&gt;
* Values entered in the numeric input boxes for the selector tool (X/Y/width/height) are much more accurately applied.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
* [[ReleaseNotes048]] ([[Release notes/0.48.1 |0.48.1]], [[Release notes/0.48.2 | 0.48.2]], [[Release notes/0.48.3 | 0.48.3]])&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=73658</id>
		<title>Release notes/0.91</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=73658"/>
		<updated>2011-11-05T21:00:51Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.49==&lt;br /&gt;
&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning049]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
* Cairo rendering for display and PNG export&lt;br /&gt;
* OpenMP multithreading for all filters&lt;br /&gt;
&lt;br /&gt;
==Rendering and performance==&lt;br /&gt;
&lt;br /&gt;
Inkscape 0.49 includes a new renderer based on the Cairo library. This work was done during Google Summer of Code 2010 and 2011 projects.&lt;br /&gt;
* '''Improved performance.''' The new renderer is significantly faster on most drawings. Renderings of the most complex objects are automatically cached to improve responsiveness during editing.&lt;br /&gt;
* '''OpenMP multithreading for filters.''' Filters use all available processor cores for computation. This results in substantial speedups when editing drawings containing large filtered objects on multi-core systems.&lt;br /&gt;
* '''Substantial memory savings.''' Inkscape now uses less memory when opening complex drawings, in some cases using only 25% of the memory used by Inkscape 0.48. Larger files can now be opened.&lt;br /&gt;
* '''Responsiveness improvements.''' The rendering of the SVG drawing is now cached. This results in massive improvements in responsiveness of path highlights, object selection / deselection, and path editing in delayed update mode.&lt;br /&gt;
* '''Rendering bug fixes.''' Most of the rendering glitches in our bug tracker are no longer present in Inkscape 0.49. The following things now render correctly:&lt;br /&gt;
** Pattern fills (no more gaps between tiles, regardless of transformation)&lt;br /&gt;
** Stroke of transformed objects in patterns&lt;br /&gt;
** Patterns containing clipped objects&lt;br /&gt;
** Nested clipping paths&lt;br /&gt;
** Masked and clipped objects with large masks / clipping paths in Outline view&lt;br /&gt;
** Paths with wide strokes and long miters&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
=== Selector tool ===&lt;br /&gt;
&lt;br /&gt;
It is now easier to select items which are not at the top of the Z-order: use Alt+mouse wheel scroll to cycle through all items that are stacked on top of each other at the location of the mouse pointer (use Shift+Alt+mouse wheel scroll to add to the existing selection). At present, groups are not honoured, i.e., only individual items within groups are considered.&lt;br /&gt;
&lt;br /&gt;
=== Align and distribute dialog ===&lt;br /&gt;
New &amp;quot;Exchange position of selected objects&amp;quot; feature. It adds three buttons in the Align and Distribute dialog (rearrange group) that exchange the positions of the selected objects: 1. according to the selection order, 2. according to the Z-order, and 3. clockwise.&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects===&lt;br /&gt;
====PowerStroke====&lt;br /&gt;
Here a list of the current state; note that this is very much work in progress and '''anything can change'''. I think this is the most efficient place of keeping track how the powerstroke LPE works.&lt;br /&gt;
* stroke knots are purple diamonds&lt;br /&gt;
* when first applied, 3 stroke knots are added one at start, one at end, one somewhere in the middle along the path.&lt;br /&gt;
* adding nodes: Ctrl+click purple knot, unselect object, reselect it.&lt;br /&gt;
* deleting nodes: Ctrl+Alt+click purple knot, unselect object, reselect it.&lt;br /&gt;
* &amp;quot;sort points&amp;quot; reorders the stroke knots according to where they lie along the path (where they are closest to the path), instead of keeping them in original order.&lt;br /&gt;
&lt;br /&gt;
[http://imgh.us/powerstroke-ell.png example screenshot]&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
The new Custom predefined filters allow users to create predefined filters with custom parameters (http://wiki.inkscape.org/wiki/index.php/SpecCustomPredefinedFilters).&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
* New Flash XML Graphics (FXG) export format.&lt;br /&gt;
* XAML export improvements.&lt;br /&gt;
* Compressed SVG and media export extension improvements. New options: set an image directory in the zip file, and add a text file that lists the fonts used in the SVG document.&lt;br /&gt;
&lt;br /&gt;
===Gimp XCF improvements===&lt;br /&gt;
* The &amp;quot;Save Background&amp;quot; option allows users to choose if the page background is saved with each Gimp layer.&lt;br /&gt;
* The exported layers now use the label attribute or, if not set, the id attribute.&lt;br /&gt;
* New help tab.&lt;br /&gt;
* Some bugs and warnings fixed.&lt;br /&gt;
&lt;br /&gt;
===PDF/EPS/PS + LaTeX===&lt;br /&gt;
* Added the possibility of scaling the image. The 'calc' package must be included in the preamble. Then the image can be scaled by defining '\svgscale' instead of '\svgwidth'.&lt;br /&gt;
* The font shape is now also exported. '\textit{}' for italic text, '\textbf{}' for bold text, and '\textsl{}' (slanted) for oblique text. It is important to note that '''Arial''' has an '''oblique''' font shape and not '''italic''', so the result in LaTeX will be '''slanted instead of italic'''. It is better to '''use another font''' in Inkscape when you want true italics.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New===&lt;br /&gt;
* The new guillotine extension is used for exporting png slices from a drawing. The slice rectangles are defined by adding horizontal and vertical guides within the canvas boundary, the canvas boundary serves as the outside of the sliced area.&lt;br /&gt;
* The new [http://en.wikipedia.org/wiki/G-code G-code] tools extension converts paths to G-code (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.&lt;br /&gt;
* New [http://en.wikipedia.org/wiki/QR_code QR code] generator.&lt;br /&gt;
* New isometric grid generator.&lt;br /&gt;
* New bitmap crop extension (Extensions&amp;gt;Bitmaps&amp;gt;Crop).&lt;br /&gt;
* The new Extract text extension output the text elements of the document in a chosen order.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* Number nodes. New parameters allowing users to choose the starting dot number and the numbering step between two nodes.&lt;br /&gt;
* Color Markers to Match Stroke extension improvements. The markers can now inherit the fill and stroke colors and alpha channels from the object, or be customized with color selectors in a separate tab.&lt;br /&gt;
* Optional sliders added on float and int extension parameters (full and minimal modes).&lt;br /&gt;
* Extensions parameters values (but not attributes!) can now be contextualized for translation (with msgctxt).&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
*in many more diralogs, the interface elements are accessible through the keyboard with ALT+key&lt;br /&gt;
&lt;br /&gt;
===Menus===&lt;br /&gt;
Text and Font, Fill and Stroke and Check Spelling dialogs added to the text object context menu (right click).&lt;br /&gt;
&lt;br /&gt;
===Simple calculations in spinboxes===&lt;br /&gt;
In most spinboxes (a spinbox is an entry field with up and down &amp;quot;spinbuttons&amp;quot; next to it) you can now write simple calculations. For example: &amp;quot;2 * 3&amp;quot;, &amp;quot;50 + 100&amp;quot;, or &amp;quot;((12 + 34) * (5 + 5) - 2) / 2&amp;quot;.&lt;br /&gt;
Moreover, you can use units in entering values, like &amp;quot;2 + 2 cm&amp;quot;. The result will be converted to the selected unit for the particular entry.&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
* The ''Keyboard and mouse reference'' (inkscape-docs project) and color palettes' labels are now translatable.&lt;br /&gt;
* New tutorial translations in Galician and Greek.&lt;br /&gt;
* New man pages in Chinese (zh_TW) Greek (el), Japanese (ja) and Slovak (sk), and updated French translation. ''[Galician (gl) and Polish (pl) in progress]''&lt;br /&gt;
* Man pages now use PO files for translation (inkscape-docs project).&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;tt&amp;gt;clip-rule&amp;lt;/tt&amp;gt; property is now supported. No UI to set it exists at the moment, other than the XML editor.&lt;br /&gt;
&lt;br /&gt;
== Snapping ==&lt;br /&gt;
* The snapping preferences and the snap toolbar have been reworked, both in the underlying code as well as in the GUI. This should make the snapping preferences easier to understand, easier to maintain, and make it easier to find and fix any remaining snapping bugs&lt;br /&gt;
* Intersections of paths and guides can now be snapped to too&lt;br /&gt;
* Snapping has been implemented fully for transforming selections of multiple nodes in the node tool&lt;br /&gt;
* Snapping to text anchors and baselines has been implemented properly&lt;br /&gt;
* If one has chosen for only snapping the snap source closest to the mouse pointer, then the tab key can be used to cycle to the next closest snap source&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
* Relative image paths are no longer stored as absolute (regression introduced with 0.47).&lt;br /&gt;
* Many rendering glitches were fixed.&lt;br /&gt;
* The rendering of the stroke on transformed objects now matches the SVG specification.&lt;br /&gt;
* Values entered in the numeric input boxes for the selector tool (X/Y/width/height) are much more accurately applied.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes048]]&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=72523</id>
		<title>Release notes/0.91</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.91&amp;diff=72523"/>
		<updated>2011-09-18T18:13:31Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.49==&lt;br /&gt;
&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning049]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
* Cairo rendering for display and PNG export&lt;br /&gt;
* OpenMP multithreading for all filters&lt;br /&gt;
&lt;br /&gt;
==Rendering and performance==&lt;br /&gt;
&lt;br /&gt;
Inkscape 0.49 includes a new renderer based on the Cairo library. This work was done during Google Summer of Code 2010 and 2011 projects.&lt;br /&gt;
* '''Improved performance.''' The new renderer is significantly faster on most drawings.&lt;br /&gt;
* '''OpenMP multihtreading for filters.''' Filters use all available processor cores for computation. This results in substantial speedups when editing drawings containing large filtered objects on multi-core systems.&lt;br /&gt;
* '''Substantial memory savings.''' Inkscape now uses less memory when opening complex drawings, in some cases using only 25% of the memory used by Inkscape 0.48. Larger files can now be opened.&lt;br /&gt;
* '''Responsiveness improvements.''' The rendering of the SVG drawing is now cached. This results in massive improvements in responsiveness of path highlights, object selection / deselection, and path editing in delayed update mode.&lt;br /&gt;
* '''Rendering bug fixes.''' Most of the rendering glitches in our bug tracker are no longer present in Inkscape 0.49. The following things now render correctly:&lt;br /&gt;
** Pattern fills (no more gaps between tiles, regardless of transformation)&lt;br /&gt;
** Stroke of transformed objects in patterns&lt;br /&gt;
** Patterns containing clipped objects&lt;br /&gt;
** Nested clipping paths&lt;br /&gt;
** Masked and clipped objects with large masks / clipping paths in Outline view&lt;br /&gt;
** Paths with wide strokes and long miters&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
=== Selector tool ===&lt;br /&gt;
&lt;br /&gt;
It is now easier to select items which are not at the top of the Z-order: use Alt+mouse wheel scroll to cycle through all items that are stacked on top of each other at the location of the mouse pointer (use Shift+Alt+mouse wheel scroll to add to the existing selection). At present, groups are not honoured, i.e., only individual items within groups are considered.&lt;br /&gt;
&lt;br /&gt;
=== Align and distribute dialog ===&lt;br /&gt;
New &amp;quot;Exchange position of selected objects&amp;quot; feature. It adds three buttons in the Align and Distribute dialog (rearrange group) that exchange the positions of the selected objects: 1. according to the selection order, 2. according to the Z-order, and 3. clockwise.&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects===&lt;br /&gt;
====PowerStroke====&lt;br /&gt;
Here a list of the current state; note that this is very much work in progress and '''anything can change'''. I think this is the most efficient place of keeping track how the powerstroke LPE works.&lt;br /&gt;
* stroke knots are purple diamonds&lt;br /&gt;
* when first applied, 3 stroke knots are added one at start, one at end, one somewhere in the middle along the path.&lt;br /&gt;
* adding nodes: ctrl+click purple knot, unselect object, reselect it.&lt;br /&gt;
* &amp;quot;sort points&amp;quot; reorders the stroke knots according to where they lie along the path (where they are closest to the path), instead of keeping them in original order.&lt;br /&gt;
&lt;br /&gt;
[http://imgh.us/powerstroke-ell.png example screenshot]&lt;br /&gt;
&lt;br /&gt;
===Filters===&lt;br /&gt;
The new Custom predefined filters allow users to create predefined filters with custom parameters (http://wiki.inkscape.org/wiki/index.php/SpecCustomPredefinedFilters).&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
* New Flash XML Graphics (FXG) export format.&lt;br /&gt;
* XAML export improvements.&lt;br /&gt;
* Compressed SVG and media export extension improvements. New options: set an image directory in the zip file, and add a text file that lists the fonts used in the SVG document.&lt;br /&gt;
&lt;br /&gt;
===Gimp XCF improvements===&lt;br /&gt;
* The &amp;quot;Save Background&amp;quot; option allows users to choose if the page background is saved with each Gimp layer.&lt;br /&gt;
* The exported layers now use the label attribute or, if not set, the id attribute.&lt;br /&gt;
* New help tab.&lt;br /&gt;
* Some bugs and warnings fixed.&lt;br /&gt;
&lt;br /&gt;
===PDF/EPS/PS + LaTeX===&lt;br /&gt;
* Added the possibility of scaling the image. The 'calc' package must be included in the preamble. Then the image can be scaled by defining '\svgscale' instead of '\svgwidth'.&lt;br /&gt;
* The font shape is now also exported. '\textit{}' for italic text, '\textbf{}' for bold text, and '\textsl{}' (slanted) for oblique text. It is important to note that '''Arial''' has an '''oblique''' font shape and not '''italic''', so the result in LaTeX will be '''slanted instead of italic'''. It is better to '''use another font''' in Inkscape when you want true italics.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New===&lt;br /&gt;
* The new guillotine extension is used for exporting png slices from a drawing. The slice rectangles are defined by adding horizontal and vertical guides within the canvas boundary, the canvas boundary serves as the outside of the sliced area.&lt;br /&gt;
* The new [http://en.wikipedia.org/wiki/G-code G-code] tools extension converts paths to G-code (using circular interpolation), makes offset paths and engraves sharp corners using cone cutters.&lt;br /&gt;
* New [http://en.wikipedia.org/wiki/QR_code QR code] generator.&lt;br /&gt;
* New isometric grid generator.&lt;br /&gt;
* New bitmap crop extension (Extensions&amp;gt;Bitmaps&amp;gt;Crop).&lt;br /&gt;
* The new Extract text extension output the text elements of the document in a chosen order.&lt;br /&gt;
&lt;br /&gt;
===Improvements===&lt;br /&gt;
* Number nodes. New parameters allowing users to choose the starting dot number and the numbering step between two nodes.&lt;br /&gt;
* Color Markers to Match Stroke extension improvements. The markers can now inherit the fill and stroke colors and alpha channels from the object, or be customized with color selectors in a separate tab.&lt;br /&gt;
* Optional sliders added on float and int extension parameters (full and minimal modes).&lt;br /&gt;
* Extensions parameters values (but not attributes!) can now be contextualized for translation (with msgctxt).&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
===Menus===&lt;br /&gt;
Text and Font, Fill and Stroke and Check Spelling dialogs added to the text object context menu (right click).&lt;br /&gt;
&lt;br /&gt;
===Simple calculations in spinboxes===&lt;br /&gt;
In most spinboxes (a spinbox is an entry field with up and down &amp;quot;spinbuttons&amp;quot; next to it) you can now write simple calculations. For example: &amp;quot;2 * 3&amp;quot;, &amp;quot;50 + 100&amp;quot;, or &amp;quot;((12 + 34) * (5 + 5) - 2) / 2&amp;quot;.&lt;br /&gt;
Moreover, you can use units in entering values, like &amp;quot;2 + 2 cm&amp;quot;. The result will be converted to the selected unit for the particular entry.&lt;br /&gt;
&lt;br /&gt;
==Translations==&lt;br /&gt;
* The ''Keyboard and mouse reference'' (inkscape-docs project) and color palettes' labels are now translatable.&lt;br /&gt;
* New tutorial translations in Galician and Greek.&lt;br /&gt;
* New man pages in Chinese (zh_TW) Greek (el), Japaneese (ja) and Slovak (sk), and updated French translation. ''[Galician (gl) and Polish (pl) in progress]''&lt;br /&gt;
* Man pages now use PO files for translation (inkscape-docs project).&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;tt&amp;gt;clip-rule&amp;lt;/tt&amp;gt; property is now supported. No UI to set it exists at the moment, other than the XML editor.&lt;br /&gt;
&lt;br /&gt;
== Snapping ==&lt;br /&gt;
* The snapping preferences and the snap toolbar have been reworked, both in the underlying code as well as in the GUI. This should make the snapping preferences easier to understand, easier to maintain, and make it easier to find and fix any remaining snapping bugs&lt;br /&gt;
* Intersections of paths and guides can now be snapped to too&lt;br /&gt;
* Snapping has been implemented fully for transforming selections of multiple nodes in the node tool&lt;br /&gt;
* Snapping to text anchors and baselines has been implemented properly&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
* Relative image paths are no longer stored as absolute (regression introduced with 0.47).&lt;br /&gt;
* Many rendering glitches were fixed.&lt;br /&gt;
* The rendering of the stroke on transformed objects now matches the SVG specification.&lt;br /&gt;
* Values entered in the numeric input boxes for the selector tool (X/Y/width/height) are much more accurately applied.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes048]]&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Caching&amp;diff=72019</id>
		<title>Caching</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Caching&amp;diff=72019"/>
		<updated>2011-08-31T21:02:41Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* What to cache */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Caching =&lt;br /&gt;
&lt;br /&gt;
This page is for notes in the discussion on adding caching to Inkscape for a performance boost. It started from a note on caching an item's bounding box (end of Aug 2011).&lt;br /&gt;
&lt;br /&gt;
== What to cache ==&lt;br /&gt;
(please write down which object type the data should belong to)&lt;br /&gt;
&lt;br /&gt;
* SPItem bounding box&lt;br /&gt;
** should invalidate on probably all changes? We could also consider storing a relative bounding box, which stays valid after a translation has been applied. I guess 90% of the time items are merely translated, and not really changed&lt;br /&gt;
* SPItem snap points&lt;br /&gt;
** should invalidate on all changes of the item, but also on changing snap preferences&lt;br /&gt;
* SPShape conversion to SBasis (2geom path data)&lt;br /&gt;
** should invalidate on path data and transform change&lt;br /&gt;
* SPShape intersections from a path with itself&lt;br /&gt;
** should invalidate on path data and transform change&lt;br /&gt;
* SPLPEItem, LPE intermediate data (related to the input path, this requires some architectural changes in LPE code)&lt;br /&gt;
** invalidates on path data change&lt;br /&gt;
* LivePathEffect::Parameter&lt;br /&gt;
** intermediate results, like arc-length-reparametrisation for LPE-Bend&lt;br /&gt;
** LivePathEffect::PathParam already caches the conversion to pwd2&lt;br /&gt;
&lt;br /&gt;
Perhaps it is best to start implementing this by invalidating the full cache for an object if any change on it is detected?&lt;br /&gt;
&lt;br /&gt;
== Cache class ==&lt;br /&gt;
&lt;br /&gt;
A Cache object class that can be added to objects that need a cache. Each object then has its own cache, so no clashing of itemnames in the cache etc.&lt;br /&gt;
The item's cache object can be publicly accessible for some classes, and is private in other classes, right?&lt;br /&gt;
&lt;br /&gt;
How about these methods:&lt;br /&gt;
* addValue( string key, any value )&lt;br /&gt;
** adds an item to the cache, could be any type of data (?)&lt;br /&gt;
* retrieve( string key )&lt;br /&gt;
** returns optional value. Must work out how to return &amp;quot;no value found&amp;quot;.&lt;br /&gt;
* invalidate( string key )&lt;br /&gt;
** invalidates named entry, or all entries when string is NULL or &amp;quot;all&amp;quot; ?&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSuse&amp;diff=64231</id>
		<title>CompilingSuse</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSuse&amp;diff=64231"/>
		<updated>2010-08-26T07:23:04Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenSUSE 11.2 ==&lt;br /&gt;
&lt;br /&gt;
It's easiest to use zypper from the command line to install the required packages. So log in as root and execute this:&lt;br /&gt;
&lt;br /&gt;
   zypper install autoconf automake intltool&lt;br /&gt;
   zypper install gcc-c++ glibmm2 gtkmm24-devel gsl-devel boost-devel popt-devel&lt;br /&gt;
   zypper install libtool liblcms liblcms-devel libxml2-devel libxslt-devel libMagick++-devel libpng-devel &lt;br /&gt;
&lt;br /&gt;
Now you're ready to download the source code, for example by using bazaar. This has been explained elsewhere on this wiki. Please be patient, because bazaar will download around 250 MB. After downloading the source code, change to that directory and run&lt;br /&gt;
&lt;br /&gt;
   ./autogen.sh&lt;br /&gt;
   ./configure&lt;br /&gt;
   make -j4     # Assuming you have a quadcore. -j4 tells make to use 4 cores&lt;br /&gt;
   make install # inkscape need to be installed at least once, to put all icons&lt;br /&gt;
                # in the correct shared directories. After that you can simply &lt;br /&gt;
                # run inkscape from the start menu or execute it directly&lt;br /&gt;
                # in the source directory (src/inkscape)&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
== OpenSUSE 10.2 ==&lt;br /&gt;
&lt;br /&gt;
You need to install these packages to pass the compilation of SVN trunk:&lt;br /&gt;
* gtkmm-devel&lt;br /&gt;
* glibmm-devel&lt;br /&gt;
* cairomm-devel &lt;br /&gt;
* libsigc-2.0-devel&lt;br /&gt;
* popt-devel&lt;br /&gt;
* gc-6.6 (Boehm's collector)&lt;br /&gt;
* intltool&lt;br /&gt;
* + their dependencies&lt;br /&gt;
* AND automake-1.8.5 or any other then 1.9.6 that is installed by default. &lt;br /&gt;
* and any other optionally required packages&lt;br /&gt;
&lt;br /&gt;
If you compile automake-1.8.5 by yourself then be sure that you install it to /usr prefix and not to /usr/local. If you still install to /usr/local, then instead of running &amp;quot;autogen.sh&amp;quot; on svn version, run:&lt;br /&gt;
&lt;br /&gt;
   ACLOCAL_FLAGS=&amp;quot;$ACLOCAL_FLAGS -I /usr/share/aclocal&amp;quot; ./autogen.sh&lt;br /&gt;
&lt;br /&gt;
Then run ./configure; make; sudo make install as usually.&lt;br /&gt;
&lt;br /&gt;
Thanks go to Dobey who helped a lot to figure out what was the problem.&lt;br /&gt;
&lt;br /&gt;
== Suse 9.0 ==&lt;br /&gt;
&lt;br /&gt;
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.&lt;br /&gt;
&lt;br /&gt;
Best place to find them:  ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/&lt;br /&gt;
[ This URL does not exist anymore :-( ]&lt;br /&gt;
&lt;br /&gt;
Suse 9.1 includes both now in the GNOME supplemental downloads.&lt;br /&gt;
&lt;br /&gt;
Note that for SuSE the gtk+2 packages are called gtk2.  The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel&lt;br /&gt;
&lt;br /&gt;
To find the .pc files, I had to set:&lt;br /&gt;
&lt;br /&gt;
setenv PKG_CONFIG_PATH/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/&lt;br /&gt;
&lt;br /&gt;
In SuSE 9.1 I ran into this error:&lt;br /&gt;
&lt;br /&gt;
   configure.in:25: required file `./ltmain.sh' not found&lt;br /&gt;
&lt;br /&gt;
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.&lt;br /&gt;
&lt;br /&gt;
For 0.40cvs the libgc dependency is added.  In [[SuSE]] 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source.  Download from:&lt;br /&gt;
&lt;br /&gt;
   http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then configure it with the command:&lt;br /&gt;
&lt;br /&gt;
   $ ./configure --enable-cplus-plus&lt;br /&gt;
&lt;br /&gt;
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/&lt;br /&gt;
&lt;br /&gt;
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/&lt;br /&gt;
&lt;br /&gt;
Also, stuff got installed to /opt/gnome/bin/, so I had to also&lt;br /&gt;
`export PATH=$PATH:/opt/gnome/bin/`&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Needs Work]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingSuse&amp;diff=64225</id>
		<title>CompilingSuse</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingSuse&amp;diff=64225"/>
		<updated>2010-08-26T07:22:12Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenSUSE 11.2 ==&lt;br /&gt;
&lt;br /&gt;
It's easiest to use zypper from the command line to install the required packages. So log in as root and execute this:&lt;br /&gt;
&lt;br /&gt;
   zypper install autoconf automake intltool&lt;br /&gt;
   zypper install gcc-c++ glibmm2 gtkmm24-devel gsl-devel boost-devel popt-devel&lt;br /&gt;
   zypper install libtool liblcms liblcms-devel libxml2-devel libxslt-devel libMagick++-devel libpng-devel &lt;br /&gt;
&lt;br /&gt;
Now you're ready to download the source code, for example by using bazaar. This has been explained elsewhere on this wiki. Please be patient, because bazaar will download around 250 MB. After downloading the source code, change to that directory and run&lt;br /&gt;
&lt;br /&gt;
   ./autogen.sh&lt;br /&gt;
   ./configure&lt;br /&gt;
   make -j4     # Assuming you have a quadcore. -j4 tells make to use 4 cores&lt;br /&gt;
   make install # inkscape need to be installed at least once, to put all icons&lt;br /&gt;
                # in the correct shared directories. After that you can simply &lt;br /&gt;
                # run inkscape from the start menu or execute if directly&lt;br /&gt;
                # in the source directory (src/inkscape)&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
== OpenSUSE 10.2 ==&lt;br /&gt;
&lt;br /&gt;
You need to install these packages to pass the compilation of SVN trunk:&lt;br /&gt;
* gtkmm-devel&lt;br /&gt;
* glibmm-devel&lt;br /&gt;
* cairomm-devel &lt;br /&gt;
* libsigc-2.0-devel&lt;br /&gt;
* popt-devel&lt;br /&gt;
* gc-6.6 (Boehm's collector)&lt;br /&gt;
* intltool&lt;br /&gt;
* + their dependencies&lt;br /&gt;
* AND automake-1.8.5 or any other then 1.9.6 that is installed by default. &lt;br /&gt;
* and any other optionally required packages&lt;br /&gt;
&lt;br /&gt;
If you compile automake-1.8.5 by yourself then be sure that you install it to /usr prefix and not to /usr/local. If you still install to /usr/local, then instead of running &amp;quot;autogen.sh&amp;quot; on svn version, run:&lt;br /&gt;
&lt;br /&gt;
   ACLOCAL_FLAGS=&amp;quot;$ACLOCAL_FLAGS -I /usr/share/aclocal&amp;quot; ./autogen.sh&lt;br /&gt;
&lt;br /&gt;
Then run ./configure; make; sudo make install as usually.&lt;br /&gt;
&lt;br /&gt;
Thanks go to Dobey who helped a lot to figure out what was the problem.&lt;br /&gt;
&lt;br /&gt;
== Suse 9.0 ==&lt;br /&gt;
&lt;br /&gt;
One of the challenges with Suse 9.0 is the lack of a distro provided gtkmm2 and libsigc++ packages.&lt;br /&gt;
&lt;br /&gt;
Best place to find them:  ftp://ftp.gwdg.de/pub/linux/misc/apt4rpm/suse/usr-local-bin/9.0/&lt;br /&gt;
[ This URL does not exist anymore :-( ]&lt;br /&gt;
&lt;br /&gt;
Suse 9.1 includes both now in the GNOME supplemental downloads.&lt;br /&gt;
&lt;br /&gt;
Note that for SuSE the gtk+2 packages are called gtk2.  The gtk+2 2.4 package is not provided via Yast but can be found via rpmseek as gtk2 and gtk2-devel&lt;br /&gt;
&lt;br /&gt;
To find the .pc files, I had to set:&lt;br /&gt;
&lt;br /&gt;
setenv PKG_CONFIG_PATH/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:/opt/gnome/lib/pkgconfig/&lt;br /&gt;
&lt;br /&gt;
In SuSE 9.1 I ran into this error:&lt;br /&gt;
&lt;br /&gt;
   configure.in:25: required file `./ltmain.sh' not found&lt;br /&gt;
&lt;br /&gt;
Copying /usr/share/libtool/ltmain.sh into the top directory fixed it.&lt;br /&gt;
&lt;br /&gt;
For 0.40cvs the libgc dependency is added.  In [[SuSE]] 9.1 this is package 'boehm-gc', but it doesn't work - you need to compile from source.  Download from:&lt;br /&gt;
&lt;br /&gt;
   http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then configure it with the command:&lt;br /&gt;
&lt;br /&gt;
   $ ./configure --enable-cplus-plus&lt;br /&gt;
&lt;br /&gt;
SuSE 9.1 also does not have libsigc++ 2.0; I couldn't find an rpm for it so ended up having to compile it from source, from http://prdownloads.sourceforge.net/libsigc/libsigc++-2.0.3.tar.gz&lt;br /&gt;
&lt;br /&gt;
I also had to compile gtkmm 2.4 and glib 2.4 from source; download them from ftp://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/ and http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/&lt;br /&gt;
&lt;br /&gt;
Looks like these packages are also available from here:ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/RPMS.gnome/&lt;br /&gt;
&lt;br /&gt;
Also, stuff got installed to /opt/gnome/bin/, so I had to also&lt;br /&gt;
`export PATH=$PATH:/opt/gnome/bin/`&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Needs Work]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=PowerStroke&amp;diff=62581</id>
		<title>PowerStroke</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=PowerStroke&amp;diff=62581"/>
		<updated>2010-06-01T21:00:26Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Power stroke =&lt;br /&gt;
&lt;br /&gt;
The proposed power stroke LPE is as follow:&lt;br /&gt;
&lt;br /&gt;
[[Image:Power-stroke-1.png]]&lt;br /&gt;
&lt;br /&gt;
== Functionality ==&lt;br /&gt;
&lt;br /&gt;
This LPE allows a modulated stroke from manually entered values.&lt;br /&gt;
&lt;br /&gt;
Further development could allow direct width reading from a pressure-enabled device.&lt;br /&gt;
&lt;br /&gt;
== Workflow ==&lt;br /&gt;
&lt;br /&gt;
The user simply creates the line, it might for example be based on an outline.&lt;br /&gt;
&lt;br /&gt;
Then the user applies the LPE to his shape, it overrides the normal stroke rendering and allows custom line width at different nodes of the path.&lt;br /&gt;
&lt;br /&gt;
Only the stroke-width property of the path is overridden, the rest of the stroke properties keep working as usual, when relevant.&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
Se image above. User selects a nodes or a set of nodes and affects values to those. When a node is selected, you can see what its value is by the change in values in the number entry or by the state of the push button.&lt;br /&gt;
&lt;br /&gt;
Additionally, hovering over a node could show the value of a node. Graphical feedback could even possibly set different icons for nodes that are set and others that are interpolated.&lt;br /&gt;
&lt;br /&gt;
Perhaps Alt+drag a node to change the thickness?&lt;br /&gt;
&lt;br /&gt;
A combination of a metakey and the scroll wheel would be intuitive as well (with status bar message stating you can do that, of course). -- [[jegHegy]]&lt;br /&gt;
&lt;br /&gt;
= Comments =&lt;br /&gt;
&lt;br /&gt;
== By JohanE ==&lt;br /&gt;
This is very well doable, but would require a new &amp;quot;Nodepath&amp;quot; implementation that enables writing special values (preferably a struct) per node. There is already something like this, the &amp;quot;nodetypes&amp;quot; attribute, but it is too restrictive. Expanding this would enable this effect, and opens up many other possibilities. Nice idea !&lt;br /&gt;
&lt;br /&gt;
== By Pajarico ==&lt;br /&gt;
I'm thinking this tool could allow the user to copy a path or an object or group of objects to any node in a path. Which is similar to what you're proposing, only this doesn't use interpolation between adjacent nodes, it just places an element on a specific node (or nodes if you have several selected).&lt;br /&gt;
&lt;br /&gt;
I'm not sure if it is better to open a separate blueprint or not. --Pajarico, [[User:Pajarico|Pajarico]] 22:36, 21 June 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== By rubikcube ==&lt;br /&gt;
You might want to have a look at how [http://www.synfig.org synfig] handles varying width for paths.  Paths are called &amp;quot;Blines&amp;quot; there, the relevant feature is explained shortly at the bottom of [http://synfig.org/Creating_Shapes one of its manual pages]. --[[User:Rubikcube|Rubikcube]] 17:26, 3 September 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== By Klesus ==&lt;br /&gt;
In concept I've been thinking of this for a long time, so I'm hopeful that this possibly could be expanded to allow control of other things than stroke width like say, stroke color, opacity and perhaps even blur(!) although I doubt blur is something that would be impossible to implement.&lt;br /&gt;
Just my 2 cents.&lt;br /&gt;
&lt;br /&gt;
== By dvlierop ==&lt;br /&gt;
Can this be coupled to the pressure applied using a tablet, while drawing a line? I think this would allow to create an LPE powerstroke in the most possible intuitive way. But I'm more a CAD guy than an artist, so I might be totally off.&lt;br /&gt;
&lt;br /&gt;
= Discussion at LGM 20 =&lt;br /&gt;
&lt;br /&gt;
We had a nice discussion about Power Stroke at LGM2010. Here follows some of the 'results' of the discussion and sketches...&lt;br /&gt;
&lt;br /&gt;
  - effect should be intuitive and simple. advanced features&lt;br /&gt;
    that are difficult to control should be implemented in&lt;br /&gt;
    another &amp;quot;advanced power stroke&amp;quot; effect if desired&lt;br /&gt;
  - how to change the stroke width of multiple control points at the same time?&lt;br /&gt;
  - width is controllable at original path's knots&lt;br /&gt;
  - the type of width interpolation between knots should depend&lt;br /&gt;
    on original path's knot type (smooth, cusp, etc.)&lt;br /&gt;
  - provide options for end caps&lt;br /&gt;
  - offer possibility of asymmetric control points&lt;br /&gt;
  - width control handles should be perpendicular to the original path&lt;br /&gt;
  - keep it simple and useable! don't provide the one effect to rule them all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An interesting sketch by Ivan Louette:&lt;br /&gt;
&lt;br /&gt;
[[File:powerstroke2.svg|600px]]&lt;br /&gt;
&lt;br /&gt;
I have several questions about this drawing: shouldn't the edge of the stroked path always pass through the stroke width control nodes? The inverted one for example, shouldn't the stroke be 'inverted' and have the width a-b? (so the zero width stroke should happen on the left and right of the control knot?)&lt;br /&gt;
&lt;br /&gt;
I propose the following:&lt;br /&gt;
&lt;br /&gt;
[[File:powerstroke3.svg|600px]]&lt;br /&gt;
&lt;br /&gt;
with implementation:&lt;br /&gt;
&lt;br /&gt;
[[File:powerstroke3_impl.svg|400px]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=FeatureNotePad&amp;diff=58519</id>
		<title>FeatureNotePad</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=FeatureNotePad&amp;diff=58519"/>
		<updated>2010-02-15T09:54:10Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Orthogonal Lines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a notepad for quickly noting down good ideas (newest first please).  If you're bored, feel free to write these as full feature requests and add to the tracker, or as separate Wiki pages.&lt;br /&gt;
&lt;br /&gt;
[[FeatureNotePadArchive]] (dupes, already implemented ideas, those with acceptable workarounds, those that cannot be implemented at all)&lt;br /&gt;
&lt;br /&gt;
Note: there is also a bug/feature request tracker at [http://sourceforge.net/tracker/?group_id=93438&amp;amp;atid=604309 sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
== Rotate Everything ==&lt;br /&gt;
&lt;br /&gt;
Often I find myself needing to know how my image would look were it rotated sideways or upside down.  It would be nice if there was an easy and quick method of rotating everything in all layers (or just the whole viewport of the Inkscape window itself).&lt;br /&gt;
&lt;br /&gt;
== Layer Clip and Mask ==&lt;br /&gt;
&lt;br /&gt;
Allow clips and masks to work on entire layers.  Adobe Illustrator has a similar feature that's described and demonstrated in the third page of [http://mos.futurenet.com/pdf/computerarts/ART157_tut_illus.pdf this tutorial] (see points 7 and 8).&lt;br /&gt;
&lt;br /&gt;
== Non Editable Linked Offset ==&lt;br /&gt;
&lt;br /&gt;
If we could have an special &amp;quot;non editable Linked Offset&amp;quot; (working title), effect developers could have an powerful tool for creating various effects that involve &amp;quot;copies&amp;quot; of a parent shape or path (like dropshadows, inner shadows, illumination, randomized copies, etc.)&lt;br /&gt;
&lt;br /&gt;
It would behave the same as an un-scaled linked offset, but it would have to also follow the rotation and tearing of parent shape, and the user could not edit its position, shape or scale through the canvas directly (it would not show position markers, and it would not respond to selection). It could only be altered by changing the parent shape, or by an specified effect settings GUI.&lt;br /&gt;
&lt;br /&gt;
This way effect developers can create multiple options that would be free of the risk of the user accidentally changing the scale of the linked offset, resulting in undesired behavior of the effect position.&lt;br /&gt;
&lt;br /&gt;
Also, I think that this method would facilitate the &amp;quot;stacking&amp;quot; of various effects around one shape.&lt;br /&gt;
&lt;br /&gt;
Effects created this way could be grouped under their own effects menu subgroup, and would have the great advantage of working the same for paths and predefined shapes (ellipse, star, polygon, rectangle) without having to convert to path first, so they don't lose their special shape handlers ( corner radius, star angle, etc.). This way the shape remains editable and the effects aplied follow accordingly.&lt;br /&gt;
&lt;br /&gt;
[[User:Sinuhe|Sinuhe]] 19:16, 23 March (UTC)&lt;br /&gt;
&lt;br /&gt;
== Enhanced Mirror Symmetry ==&lt;br /&gt;
&lt;br /&gt;
When drawing complex shapes it is often useful to have the left and the right side of the shape look the same. The Mirror Symmetry live path effect does this very nicely, but unfortunately there is no way to *join* the mirrored shape with the original one. The two shapes would have to be sub-pixel perfectly aligned in order to avoid tearing.&lt;br /&gt;
&lt;br /&gt;
So basically there would be an option called &amp;quot;do clipping&amp;quot;(name borrowed from the Blender Mirror Modifier) which when selected makes the mirror modifiers delete all the stuff on a certain side of the mirror line(which side *should* be an option too), makes new nodes where the shape was cut, and connects those nodes with the nodes of the mirrored shape. This way you get ONE path with no seam lines between the mirrored pieces.&lt;br /&gt;
&lt;br /&gt;
[[User:Agony|Agony]] 14:23, 14 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Minor Grid Improvements ==&lt;br /&gt;
&lt;br /&gt;
Would be handy to have a way for the origin of the grid be the centre of the page, vertically/horizontally/both, or maybe even a percentage, rather than having to calculate where that might be.  Also, a feature I've used a lot in [http://bourbon.usc.edu/tgif/ tgif] is the ability to quickly halve or double the grid size.  In tgif it's done by left or right click on the ruler.  Lastly, some feedback would be good to show how close an object currently is to the grid, but I've not thought hard about how that might be displayed.&lt;br /&gt;
&lt;br /&gt;
--[[User:Daeghnao|Daeghnao]] 11:07, 16 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Gradient Fills ==&lt;br /&gt;
Conical (or 'angle') gradient fills would be most useful.&lt;br /&gt;
&lt;br /&gt;
[[Image:conical.png]]&lt;br /&gt;
&lt;br /&gt;
== Fill Gallery ==&lt;br /&gt;
A default fill gallery.&lt;br /&gt;
&lt;br /&gt;
When I want to build an area with a nicely complex multicolored fill of some sort, I don't want to have to build the fill from scratch every time.  I want a huge array of default fills to start with, which I can modify to my heart's content using the existing fill editor.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[User:Jonathanbrickman0000|Jonathanbrickman0000]] 17:06, 3 January 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Extend this Idea to a Stylesheet-Sidebar, where the User can easily drag&amp;amp;drop already used styles to objects. I think on something like Microsoft word does when a user is formatting a text-fragment in a new way: the new formatting is shown in the Formating-Sidebar. [[User:MovGP0|MovGP0]] 19:57, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== EPS Export ==&lt;br /&gt;
A modified version of the eps export.&lt;br /&gt;
&lt;br /&gt;
I m currently working with maya and I can't import eps from inkscape.&lt;br /&gt;
Except if i modified the text manualy. I need to replace moveto by &lt;br /&gt;
m and curveto by c. I also need to put my vector in the top right corner.And once import to flip verticaly the line. &lt;br /&gt;
So if there was an option to record a modified eps I think people making 3d will be really happy.&lt;br /&gt;
&lt;br /&gt;
== openclipart.org Export ==&lt;br /&gt;
An easy way to submit clipart to openclipart.org. Currently you have to save a clipart to a file, open a web browser, login to openclipart.org and browse for the previously saved file in order to upload... A &amp;quot;submit selection to openclipart.org&amp;quot; menu entry would be handy, it would remember login and prompt for a cliparts' meta information before upload... Perhaps such functionality should be a plugin...&lt;br /&gt;
&lt;br /&gt;
:I think there should be rather a API that allows write a Plugin doing so, because &lt;br /&gt;
:*there are more Websites that are an interesting target like Wikipedia's Commons, Flickr (supporting only PNG/JPG-Export instead of SVG), and many others&lt;br /&gt;
:*openclipart.org is unreachable while I'm writing this and I'm not sure if the Website is still existing at all. Websites can happen to go offline, so its not wise to code for single distributors. &lt;br /&gt;
:[[User:MovGP0|MovGP0]] 20:14, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Arbitrary Zoom ==&lt;br /&gt;
Arbitrary precision zoom levels:&lt;br /&gt;
&lt;br /&gt;
-Unlimited scaling on zoom would be a very useful feature in some applications, allowing for unlimited detail.&lt;br /&gt;
&lt;br /&gt;
== Rotation ==&lt;br /&gt;
Persistent rotation centers TODO: &lt;br /&gt;
&lt;br /&gt;
* make it work smartly for groups: if a group has center not set, return the center of the first object inside group with the center set&lt;br /&gt;
* a separate tab in the Transform dialog, with 9 buttons in the square grid (for setting it to object's corners, sides, and center) as well as x/y fields for setting center to any position&lt;br /&gt;
&lt;br /&gt;
== Plain SVG Export ==&lt;br /&gt;
''wwwwolf writeth:''&lt;br /&gt;
&lt;br /&gt;
An XSL stylesheet to convert from [[InkscapeSVG]] to [[PlainSVG]]&lt;br /&gt;
&lt;br /&gt;
If we had that, it wouldn't be necessary to use Inkscape's exporter in all situations - it could be used to make plain SVG without user intervention, automatically, and in places where Inkscape isn't even installed - all you need is an XSLT processor. This would be highly cool since some of the programs (I'm looking at YOU, Scribus *and* rsvg) at times choke randomly on Inkscape markup but render Inkscape's plain SVG without problems.&lt;br /&gt;
&lt;br /&gt;
== Extended Stroke Rendering ==&lt;br /&gt;
Extend stroke rendering capabilities&lt;br /&gt;
&lt;br /&gt;
Make it possible for the definition of the rendering of a stroke to be scriptable (at stroke time).  For instance, I might want to render a path as a series of flames - the size of the flames somewhat randomized, perhaps, along the stroke.  Because they are flames, my script would make sure they're always pointing the same direction (up) along the stroke.  Similarly, a series of water droplets would always be rendered dripping in a downward direction.&lt;br /&gt;
&lt;br /&gt;
Note that much of this functionality could also be done outside of scripting, using an approach similar to tiled clones.&lt;br /&gt;
&lt;br /&gt;
== Edge-Offsets ==&lt;br /&gt;
&amp;lt;B&amp;gt;kwixson writes:&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Edge offsets in flowed text with automatically drawn linked offsets of the object with no fill or stroke properties.&lt;br /&gt;
* Visual cue for selected groups (i.e., solid marquee instead of dashed)&lt;br /&gt;
* Undo in draw mode removes last node, not the entire path, same as backspace key&lt;br /&gt;
* Set the ruler 0, 0 coordinates by dragging a cross out of the rulers' corner / double click to set precisely, according to 0,0 index of page dimensions.&lt;br /&gt;
* Make space bar held down transform cursor to Selector tool until spacebar is released, with any tool except Text.&lt;br /&gt;
&lt;br /&gt;
== Smooth drawings ==&lt;br /&gt;
&lt;br /&gt;
2.) Sub-pixel resolution in drawing, is possible with XInput i think?&lt;br /&gt;
 - Again, improves drawing by hand&lt;br /&gt;
3.) Smooth drawing, smooth over small irrelegularities from mouse/drawing board&lt;br /&gt;
 - Same as all of the above, improves drawing, makes it a whole lot more fun! :)&lt;br /&gt;
&lt;br /&gt;
It doesn't seem so hard to implement but it would make a huge diffrence!&lt;br /&gt;
 &lt;br /&gt;
Aside from that, I love where Inkscape is going, the interface is great to work with and it just keeps getting better!&lt;br /&gt;
I find myself building from CVS so I dont't miss out.&lt;br /&gt;
&lt;br /&gt;
GREAT WORK GUYS! :)&lt;br /&gt;
&lt;br /&gt;
== Extrusion and Shadows ==&lt;br /&gt;
&amp;lt;B&amp;gt;Ilja writes:&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.) Extrusion of Objects&lt;br /&gt;
2.) Dropshadow, kind of a clone - a bit fuzzy and little shifted behind&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Sinuhe Writes: &amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'd like to see these in Inkscape, they are very common effects and I would like to see a faster way to achieve them than the current methods (copy object, relocate it, change color, change blur, change alpha).&lt;br /&gt;
&lt;br /&gt;
The current 3D Border effect works only with paths, not objects, wich is not very useful if you want to later modify the form (you lose the special modyfiers for stars, corner radius on rectangles, etc.) I would also like to see a way to change the color of the shadow created.&lt;br /&gt;
&lt;br /&gt;
Currently the best way to get a drop shadow or inner shadow is with a linked offset, so this &amp;quot;new effect&amp;quot; could just be an automatic sequence for creating the linked offset and change its color, alpha, position and blur to user-specified params. The linked offset works with objects as with paths so its just perfect and no need to convert to path. The main problem I see with this technique is that if you accidentally modify the linked offset scale, it won't follow the parent shape in the same precise way, but in a relative position to where it was first placed.&lt;br /&gt;
&lt;br /&gt;
With a similar tool, we could achieve an &amp;quot;Ilumination Effect&amp;quot; (similar to that in Freehand) by creating a linked offset, erasing fill, changing outline color, rising outline width and blurring it(It would have the same issue with accidentally modifying linked offset).&lt;br /&gt;
&lt;br /&gt;
Maybe we need an special object that is like a linked offset but is not directly editable or selectable? It would speed the creation of many different effects that would work in objects as in paths.&lt;br /&gt;
&lt;br /&gt;
== Some small Features ==&lt;br /&gt;
&amp;lt;b&amp;gt;Daddio writes:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
A couple of Small features that would help those of us a &amp;lt;b&amp;gt;lot&amp;lt;/b&amp;gt; that like to draw a basic shape and then tweak it in the xml editor:&amp;lt;br /&amp;gt;&lt;br /&gt;
1) the ablility to convert the SVG coordinates in a path to &amp;lt;i&amp;gt;and from&amp;lt;/i&amp;gt;relative coordinates (small case m's l's c's a's) except perhaps the initial M&amp;lt;br /&amp;gt;&lt;br /&gt;
2) the ability to truncate &amp;lt;i&amp;gt;(or even better, round)&amp;lt;/i&amp;gt; the SVG coordinates to  1, 2 or zero (etc) decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
3) Set a decimal place limit so the generated SVG will stay within that limit.  I don't usually need or want 0.0006 precision!&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;fantasai&amp;lt;/strong&amp;gt; seconds these and suggests a way of saving as Plain SVG with metadata, since&lt;br /&gt;
things like the title, author, and license terms -- which are applicable to published images but not so&lt;br /&gt;
much to in-process drafts -- shouldn't be thrown out with the &amp;quot;last used zoom level&amp;quot; data, which are just&lt;br /&gt;
junk in a publication-ready image.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Orthogonal Lines ==&lt;br /&gt;
njh writes:&lt;br /&gt;
&lt;br /&gt;
Orthogonal lines best-fit to a pen path would be useful for quickly sketching diagrams.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:I think that Inkscape could adapt techniques from professional CAD Software including the Snap-Functionality:&lt;br /&gt;
:&amp;lt;u&amp;gt;existing&amp;lt;/u&amp;gt;&lt;br /&gt;
:*Snap to Nodes of a Line/Polygon&lt;br /&gt;
:*Snap to Line&lt;br /&gt;
:&amp;lt;u&amp;gt;missing&amp;lt;/u&amp;gt;&lt;br /&gt;
:*Snap ortogonal to a Line&lt;br /&gt;
:*Snap to Tangents of Curves&lt;br /&gt;
:*etc. &lt;br /&gt;
:Also there could be a kind of&lt;br /&gt;
:&amp;lt;u&amp;gt;parametic input methods&amp;lt;/u&amp;gt;&lt;br /&gt;
:* There are more than one possibility to express how a circle gets created - ie. a circle could get defined using the center and a radius/diameter, 3 tagent-points, etc.&lt;br /&gt;
:* A line could get constructed using a startingpoint, lenght and angle&lt;br /&gt;
:* and much more...&lt;br /&gt;
:the way a specific line was drawn parametrically could get stored in the SVG-file as XML-Extensions using the Inksape-Namespace. &lt;br /&gt;
:[[User:MovGP0|MovGP0]] 20:36, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Scribus ==&lt;br /&gt;
*Scribus is a DTP coded in C++ (but with Qt). it can work with Python Script.&lt;br /&gt;
May be have a look at this could help doing the same in Inkscape.&lt;br /&gt;
*If the later can be done, this will help eventually include some of good&lt;br /&gt;
Sketch&lt;br /&gt;
(written in Python) possibilities in Inkscape.&lt;br /&gt;
*Also Scribus has good [[NodeTool]], and good text tool featuring textbox (frame)&lt;br /&gt;
or text on a path.&lt;br /&gt;
                                                                                &lt;br /&gt;
cheers&lt;br /&gt;
Cédric&lt;br /&gt;
&lt;br /&gt;
== Plugins ==&lt;br /&gt;
plugins for ways to warp and bend things&lt;br /&gt;
&lt;br /&gt;
== GtkVectDraw ==&lt;br /&gt;
What I can expect from this project is a better integration with gnome-office.&lt;br /&gt;
I dream for a really integrated gnome-office with a lot of code sharing via libraries. &lt;br /&gt;
For example, a vectorial drawing soft has lot of things in common with glabels, [[AbiShow]], etc ... &lt;br /&gt;
We have a lot to learn from Koffice in this respect. &lt;br /&gt;
 &lt;br /&gt;
So please create a fully capable [[GtkVectDraw]] library !&lt;br /&gt;
&lt;br /&gt;
== Small core, great extensions ==&lt;br /&gt;
''Emphasis on a small core plus modular extensions for features (a la Mozilla Firebird)''&lt;br /&gt;
&lt;br /&gt;
But *please* maintain a plugin-pack, and ship it with Inkscape. The way Firebird works sucks. Firebird has poor tab-implementation, and there are &amp;gt;10 extensions that try to improve it, while only 1 good version is needed. The list with extensions is chaos, don't let it be so with Inkscape...&lt;br /&gt;
&lt;br /&gt;
== Sodipodi ==&lt;br /&gt;
The below is in regards to Sodipodi 0.32:&lt;br /&gt;
                                                                                         &lt;br /&gt;
2. The XML viewer doesn't appear to allow selecting multiple items.&lt;br /&gt;
Often times I want to makes changes to many items at once and sometimes&lt;br /&gt;
I'll be working in the XML viewer.  Since this was the only way I could&lt;br /&gt;
figure out how to select individual items in a group it seems completely&lt;br /&gt;
impossible to select several items in a group.&lt;br /&gt;
                                                                                        &lt;br /&gt;
Some notes on feel:&lt;br /&gt;
                                                                                         &lt;br /&gt;
4. The mouse event system feels a bit wonky.  For example, if I take a&lt;br /&gt;
fairly complex design which can be a little bit sluggish when editing and&lt;br /&gt;
&lt;br /&gt;
make adjustments to a path node the cursor doesn't release as soon as I&lt;br /&gt;
let go of the mouse button.  So when I'm working quickly what happens is I&lt;br /&gt;
tweak a node, let go of the mouse button, then move the mouse and it keeps&lt;br /&gt;
adjusting the node even though I'm not holding the button.  This slows me&lt;br /&gt;
down considerably because I have to wait after letting go of the mouse&lt;br /&gt;
button each time.  It also does this when scrolling the main view using&lt;br /&gt;
the middle mouse button.  I'll scroll the view over, let go of the mouse&lt;br /&gt;
button, then when I move the mouse the view still scrolls for a second or&lt;br /&gt;
two.  Very annoying.  :)&lt;br /&gt;
                                                                                         &lt;br /&gt;
                                                                                        &lt;br /&gt;
Feature &amp;quot;wants&amp;quot;:&lt;br /&gt;
                                                                                         &lt;br /&gt;
                                                                                         &lt;br /&gt;
9. More powerful selection commands.  Some examples (from Illustrator):&lt;br /&gt;
                                                                                         &lt;br /&gt;
Select by fill color&lt;br /&gt;
Select by same stroke and fill&lt;br /&gt;
etc...&lt;br /&gt;
                                                                                         &lt;br /&gt;
                                                                                         &lt;br /&gt;
11. (DONE) More and user defined hot-keys.  Can I set any command/mode to a&lt;br /&gt;
hot-key?&lt;br /&gt;
                                                                                         &lt;br /&gt;
&lt;br /&gt;
== Gimp ==&lt;br /&gt;
I noticed that gimp does a cool hack today, they use an image thumbnail of the drawing as the window manager icon for the drawing window, you should do that with inkscape too&lt;br /&gt;
and it is actually usefull, consider I have fix inkscape windows with different flags, with this hack I will be able to identify each window in the tasklist and don't have to search so much&lt;br /&gt;
&lt;br /&gt;
Also, I really wish inkscape where session aware like gedit, so that when I asks nautilus to open a new image it does so in the existing inkscape session instead of starting a new instance&lt;br /&gt;
&lt;br /&gt;
http://bugzilla.gnome.org/show_bug.cgi?id=107668  - the discussion in that bug report might be of interest to you guys too.  the participants are Dom (librsvg), Owen and the Gimp guys&lt;br /&gt;
&lt;br /&gt;
-- Uraeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Nonexisting File ==&lt;br /&gt;
when given a nonexisting file name on the command line, create that file (with an error report too)&lt;br /&gt;
&lt;br /&gt;
== TIFF-Export ==&lt;br /&gt;
Ability to export to uncompressed TIFF.&lt;br /&gt;
&lt;br /&gt;
I agree.  Or perhaps the ability to export a bitmap without any compression (e.g., TIFF or BMP).  I would like to create arrays of individual pixels and export them as a bitmap file.  After I carefully set up my bitmap with cloning and tiling and export it as a bitmap, the pixels are distorted from the compression.&lt;br /&gt;
&lt;br /&gt;
== Multi-Page and Layers ==&lt;br /&gt;
&lt;br /&gt;
Add multi-page support, default layouts for all pages, etc.&lt;br /&gt;
&lt;br /&gt;
== Dia-Import ==&lt;br /&gt;
Ability to import Dia objects. &lt;br /&gt;
Restricted Inkscape mode to work like Dia. There's nothing that Dia can do that is not possible to&lt;br /&gt;
do in Inkscape. &lt;br /&gt;
&lt;br /&gt;
== Viewports ==&lt;br /&gt;
However you gave me an idea: I can store past viewport not only before I do zoom, but also after that; later, when a next zoom is started, I will compare the current viewport with the last stored and, if it's the same, not store it. This way I will be adding one viewport record if there was no panning between zooms and two records if there was panning, these records storing the first and last viewports at this zoom. I think it will be a bit more convenient this way. &lt;br /&gt;
&lt;br /&gt;
:Well, what I had in mind is that viewport undo steps would be separated by editing operations -- so e.g. consecutive pans/zooms with no edits in between them would be coalesced into a single zoom undo step.&lt;br /&gt;
&lt;br /&gt;
== SWF-Export ==&lt;br /&gt;
Exporting vectors as swf files. While this is probably not on the top of everyone's wishlist, it would make inkscape the tool of choice for editing shapes for flash, which is an area where the flash editor does a horrible job. Flash import capabilities for vectors are also very limited, making AI a requirement in order to convert between flash and svg.&lt;br /&gt;
&lt;br /&gt;
Given that svg is going to be replacing flash very (very) soon, a flash import capability would also make life easier for a lot of people...&lt;br /&gt;
&lt;br /&gt;
Ming library: [[http://ming.sourceforge.net/]]&lt;br /&gt;
[[Svg2Swf]] python script (uses Ming): [[http://www.eskimo.com/~robla/svg2swf/]]&lt;br /&gt;
&lt;br /&gt;
One adition: users (flash devigners) should be able to create symbols and give them proper names for inFlash use.&lt;br /&gt;
That would make Inkscape very usefull flash design platform.&lt;br /&gt;
AI has implemented that since CS3.&lt;br /&gt;
&lt;br /&gt;
== Mouse/Pen gestures ==&lt;br /&gt;
Add support for mouse gestures.&lt;br /&gt;
I have used the Mentor Graphics CAD tools for editing&lt;br /&gt;
schematics and PCB layouts, and the built-in support for mouse&lt;br /&gt;
&lt;br /&gt;
gesture has helped the productivity a lot. Granted CAD drawing&lt;br /&gt;
is not exactly vector drawing, but it is not too far apart.&lt;br /&gt;
There is a library libstroke that provides gestures support,&lt;br /&gt;
but I don't have any idea how usable that would be for inkscape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:I thik there is some potential in this, ie. for undo/redo operations or tool-selection. Anyway, when you are working ie. with a tablet, its just about hitting the buttons that are doing just that. [[User:MovGP0|MovGP0]] 20:09, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Find enhancements ==&lt;br /&gt;
Find dialog: collapsable panes: Size &amp;amp; Position (X, Y, W, H; tolerance), Attribute (Name, Value). Pasting in the id, style, size/position fields (add buttons for pasting?) pastes the id, style, size/position of the object on clipboard. Add a regexp checkbox, when it's on matches are always exact but with a regexp matcher. Checkboxes: limit search to selection, (later) to current layer, possibly in (in)visible or (in)sensitive only.&lt;br /&gt;
&lt;br /&gt;
== Fill &amp;amp; Stroke ==&lt;br /&gt;
Plan for fill&amp;amp;stroke:&lt;br /&gt;
&lt;br /&gt;
* add fill opacity/stroke opacity sliders common to all fill/stroke types (gradients, patterns, color)&lt;br /&gt;
*:upon reflection, no. It gives nothing compared to master opacity.&lt;br /&gt;
* maybe separate it into Fill and Stroke dialogs&lt;br /&gt;
* change gradient display/controls to match those of the toolbar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transform Selection ==&lt;br /&gt;
A new &amp;quot;transform with selection&amp;quot; toggle: font (see [[FontKerning]], toggle between [0 or 1, depending on optimize/preserve] and 2).&lt;br /&gt;
&lt;br /&gt;
== Corel Draw and Illustrator Import ==&lt;br /&gt;
Filter to import Corel Draw Files and Adobe Illustrator Files&lt;br /&gt;
(very important at my opinion)&lt;br /&gt;
&lt;br /&gt;
:Probabbly to dificult to do well, just export to svg&lt;br /&gt;
&lt;br /&gt;
:Actually, current AI files are really just PDFs - should be pretty easy&lt;br /&gt;
&lt;br /&gt;
== Postscript Export ==&lt;br /&gt;
On export to Postscript, special-case treatment of text/fonts so that, instead of outputting each instance of a character as a separate  set of coordinates, output the definition of the character once, and then use it (with matrix transforms) for each instance of that character.&lt;br /&gt;
&lt;br /&gt;
On export to Postscript, allow for specifying use of fonts-and-text (particularly useful when planning to create PDFs).&lt;br /&gt;
&lt;br /&gt;
On export to Postscript a) warn about transparencies, b) attempt to automatically correct for transparencies by i) converting underlying fragments to transformed values (complex) or ii) embed a bitmap-based fill.  Possibly allowing optional choice of approach.&lt;br /&gt;
&lt;br /&gt;
Possibly provide a direct-to-PDF export as well?&lt;br /&gt;
&lt;br /&gt;
Possibly allow for a UI mechanism that lets any code in the system define a selection set of objects, displaying their IDs in a floating dialog.  Clicking on the IDs would select the object.  The postscript export warning about transparent objects, then, would be able to return with a selection set through which the user could iterate in order to fix each transparent object.&lt;br /&gt;
&lt;br /&gt;
Provide a saving option which gathers the fonts used by the SVG file (as well as any other externally referenced files) for transfer to another machine.  Preferably stored in a zip or similar mechanism so that they're easy to share.  This is basically a &amp;quot;collect resources&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:I sign this one too, because using SVG from LaTeX is hard to do. The usual approach to this is exporting all as bitmap and then use it. I think that a PS export would do much better. [[User:MovGP0|MovGP0]] 20:00, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Print Preview ==&lt;br /&gt;
Provide a print-preview, print-settings, page-setup style printing framework (a-la Corel, Adobe, etceteras).&lt;br /&gt;
&lt;br /&gt;
== Fill and Stroke Dialog Focus ==&lt;br /&gt;
On right-click menu selection of a dialog (fill and stroke, or object properties, for instance), set focus to the dialog selected to avoid the need for a mouse-seek-and-click to do the set-focus.&lt;br /&gt;
&lt;br /&gt;
== Tiled Cones ==&lt;br /&gt;
Under the &amp;quot;Rotation&amp;quot; tab of the &amp;quot;Create Tiled Clones&amp;quot; menu, perhaps have&lt;br /&gt;
an &amp;quot;Anchor Offset&amp;quot; option &amp;quot;as well as a setting for (px, cm, mm, in, etc - default &amp;quot;px&amp;quot;) which could remain at &amp;quot;0&amp;quot; or &amp;quot;centered&amp;quot; or be changed&lt;br /&gt;
relative to center, say (+ or -) and (x or y):&lt;br /&gt;
&lt;br /&gt;
x = 50, y = 50; x = 50, y = -50; x = -50, y = -50; x = -50, y = 50&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
This would allow for explicit placement of the rotation anchor.&lt;br /&gt;
&lt;br /&gt;
This could also be used for general rotation as well.&lt;br /&gt;
&lt;br /&gt;
== MathML Import ==&lt;br /&gt;
For scientific graphics I often need the possibility to write mathematical Formulas within the SVG-File. A possible way to do so is write the Formulas using TeX, convert to MathML (this is the easy part) convert to PNG and then import to use it. But a Bitmap that is not good for scaling, so you better transform MathML to SVG and import the SVG. &lt;br /&gt;
&lt;br /&gt;
I think that Inkscape should come with a Plugin that can do the MathML to SVG transformation. Later this tool could get extended to convert also simple TeX to MathML to SVG. &lt;br /&gt;
&lt;br /&gt;
Having such a plugin, complex Formulas could get transformed like any SVG (including scaling, rotation, coloring, etc.), but keept as plain MathML in the Sourcecode. This will make inkscape really useful for scientific and technical needs. &lt;br /&gt;
&lt;br /&gt;
[[User:MovGP0|MovGP0]] 19:57, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
Maybe, [http://helm.cs.unibo.it/mml-widget/ GtkMathView] can be used to render MathML into SVG.&lt;br /&gt;
&lt;br /&gt;
== Metadata in Save-Dialog ==&lt;br /&gt;
I think that the Button for editing Document-Metadata should also be shown in the File-Save Dialog, because lazy peoples like myself are ignoring such possibilities if there are not easily accessible. &lt;br /&gt;
&lt;br /&gt;
I think a Button that asks for filling Metadata and another Button for choosing a License (if not filled/choosen already) in the File-Save Dialog would be a good idea. &lt;br /&gt;
&lt;br /&gt;
[[User:MovGP0|MovGP0]] 20:21, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== SVG Profile Selection ==&lt;br /&gt;
There should be a possibility to choose which SVG-Standard a user want to use for his drawing. If choosen one, Inkscape should only show tools that are supported in this standard. So, if a user chooses to use &amp;quot;SVG Mobile 1.0&amp;quot; it doesn't makes sense to present a &amp;quot;SVG 1.2 Full&amp;quot;-only-tool. [[User:MovGP0|MovGP0]] 20:48, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inkscape as Tablet Notepad ==&lt;br /&gt;
My purpose is to be able, e.g., to open an inkscape document from an OO presentation, to use as a blackboard, something I can do with gimp (but Inkscape is much better!). Is there a workaround? I could think of a simple one&lt;br /&gt;
if Inkscape had also a specific extension (an alias), different from .svg.&lt;br /&gt;
No special format, simply a dedicated extension. Mime processing would then send the file to Inkscape, not to a viewer, as it is now.&lt;br /&gt;
Does this make any sense?&lt;br /&gt;
&lt;br /&gt;
== 3D Color Picker ==&lt;br /&gt;
&lt;br /&gt;
Color is inherently three dimensional, and http://www.colorotate.org is a 3D editor that &amp;quot;aligns with the way our minds process color&amp;quot; - http://learn.colorotate.org/ explains color nicely. ColoRotate is kinda like Adobe Kuler, but with a 3D representation its even better. I'd like to see a widget like this in Inkscape! :-)&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=FeatureNotePad&amp;diff=58513</id>
		<title>FeatureNotePad</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=FeatureNotePad&amp;diff=58513"/>
		<updated>2010-02-15T09:53:16Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Rotation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a notepad for quickly noting down good ideas (newest first please).  If you're bored, feel free to write these as full feature requests and add to the tracker, or as separate Wiki pages.&lt;br /&gt;
&lt;br /&gt;
[[FeatureNotePadArchive]] (dupes, already implemented ideas, those with acceptable workarounds, those that cannot be implemented at all)&lt;br /&gt;
&lt;br /&gt;
Note: there is also a bug/feature request tracker at [http://sourceforge.net/tracker/?group_id=93438&amp;amp;atid=604309 sourceforge.net].&lt;br /&gt;
&lt;br /&gt;
== Rotate Everything ==&lt;br /&gt;
&lt;br /&gt;
Often I find myself needing to know how my image would look were it rotated sideways or upside down.  It would be nice if there was an easy and quick method of rotating everything in all layers (or just the whole viewport of the Inkscape window itself).&lt;br /&gt;
&lt;br /&gt;
== Layer Clip and Mask ==&lt;br /&gt;
&lt;br /&gt;
Allow clips and masks to work on entire layers.  Adobe Illustrator has a similar feature that's described and demonstrated in the third page of [http://mos.futurenet.com/pdf/computerarts/ART157_tut_illus.pdf this tutorial] (see points 7 and 8).&lt;br /&gt;
&lt;br /&gt;
== Non Editable Linked Offset ==&lt;br /&gt;
&lt;br /&gt;
If we could have an special &amp;quot;non editable Linked Offset&amp;quot; (working title), effect developers could have an powerful tool for creating various effects that involve &amp;quot;copies&amp;quot; of a parent shape or path (like dropshadows, inner shadows, illumination, randomized copies, etc.)&lt;br /&gt;
&lt;br /&gt;
It would behave the same as an un-scaled linked offset, but it would have to also follow the rotation and tearing of parent shape, and the user could not edit its position, shape or scale through the canvas directly (it would not show position markers, and it would not respond to selection). It could only be altered by changing the parent shape, or by an specified effect settings GUI.&lt;br /&gt;
&lt;br /&gt;
This way effect developers can create multiple options that would be free of the risk of the user accidentally changing the scale of the linked offset, resulting in undesired behavior of the effect position.&lt;br /&gt;
&lt;br /&gt;
Also, I think that this method would facilitate the &amp;quot;stacking&amp;quot; of various effects around one shape.&lt;br /&gt;
&lt;br /&gt;
Effects created this way could be grouped under their own effects menu subgroup, and would have the great advantage of working the same for paths and predefined shapes (ellipse, star, polygon, rectangle) without having to convert to path first, so they don't lose their special shape handlers ( corner radius, star angle, etc.). This way the shape remains editable and the effects aplied follow accordingly.&lt;br /&gt;
&lt;br /&gt;
[[User:Sinuhe|Sinuhe]] 19:16, 23 March (UTC)&lt;br /&gt;
&lt;br /&gt;
== Enhanced Mirror Symmetry ==&lt;br /&gt;
&lt;br /&gt;
When drawing complex shapes it is often useful to have the left and the right side of the shape look the same. The Mirror Symmetry live path effect does this very nicely, but unfortunately there is no way to *join* the mirrored shape with the original one. The two shapes would have to be sub-pixel perfectly aligned in order to avoid tearing.&lt;br /&gt;
&lt;br /&gt;
So basically there would be an option called &amp;quot;do clipping&amp;quot;(name borrowed from the Blender Mirror Modifier) which when selected makes the mirror modifiers delete all the stuff on a certain side of the mirror line(which side *should* be an option too), makes new nodes where the shape was cut, and connects those nodes with the nodes of the mirrored shape. This way you get ONE path with no seam lines between the mirrored pieces.&lt;br /&gt;
&lt;br /&gt;
[[User:Agony|Agony]] 14:23, 14 December 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Minor Grid Improvements ==&lt;br /&gt;
&lt;br /&gt;
Would be handy to have a way for the origin of the grid be the centre of the page, vertically/horizontally/both, or maybe even a percentage, rather than having to calculate where that might be.  Also, a feature I've used a lot in [http://bourbon.usc.edu/tgif/ tgif] is the ability to quickly halve or double the grid size.  In tgif it's done by left or right click on the ruler.  Lastly, some feedback would be good to show how close an object currently is to the grid, but I've not thought hard about how that might be displayed.&lt;br /&gt;
&lt;br /&gt;
--[[User:Daeghnao|Daeghnao]] 11:07, 16 August 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Gradient Fills ==&lt;br /&gt;
Conical (or 'angle') gradient fills would be most useful.&lt;br /&gt;
&lt;br /&gt;
[[Image:conical.png]]&lt;br /&gt;
&lt;br /&gt;
== Fill Gallery ==&lt;br /&gt;
A default fill gallery.&lt;br /&gt;
&lt;br /&gt;
When I want to build an area with a nicely complex multicolored fill of some sort, I don't want to have to build the fill from scratch every time.  I want a huge array of default fills to start with, which I can modify to my heart's content using the existing fill editor.&amp;lt;BR&amp;gt;&lt;br /&gt;
[[User:Jonathanbrickman0000|Jonathanbrickman0000]] 17:06, 3 January 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Extend this Idea to a Stylesheet-Sidebar, where the User can easily drag&amp;amp;drop already used styles to objects. I think on something like Microsoft word does when a user is formatting a text-fragment in a new way: the new formatting is shown in the Formating-Sidebar. [[User:MovGP0|MovGP0]] 19:57, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== EPS Export ==&lt;br /&gt;
A modified version of the eps export.&lt;br /&gt;
&lt;br /&gt;
I m currently working with maya and I can't import eps from inkscape.&lt;br /&gt;
Except if i modified the text manualy. I need to replace moveto by &lt;br /&gt;
m and curveto by c. I also need to put my vector in the top right corner.And once import to flip verticaly the line. &lt;br /&gt;
So if there was an option to record a modified eps I think people making 3d will be really happy.&lt;br /&gt;
&lt;br /&gt;
== openclipart.org Export ==&lt;br /&gt;
An easy way to submit clipart to openclipart.org. Currently you have to save a clipart to a file, open a web browser, login to openclipart.org and browse for the previously saved file in order to upload... A &amp;quot;submit selection to openclipart.org&amp;quot; menu entry would be handy, it would remember login and prompt for a cliparts' meta information before upload... Perhaps such functionality should be a plugin...&lt;br /&gt;
&lt;br /&gt;
:I think there should be rather a API that allows write a Plugin doing so, because &lt;br /&gt;
:*there are more Websites that are an interesting target like Wikipedia's Commons, Flickr (supporting only PNG/JPG-Export instead of SVG), and many others&lt;br /&gt;
:*openclipart.org is unreachable while I'm writing this and I'm not sure if the Website is still existing at all. Websites can happen to go offline, so its not wise to code for single distributors. &lt;br /&gt;
:[[User:MovGP0|MovGP0]] 20:14, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Arbitrary Zoom ==&lt;br /&gt;
Arbitrary precision zoom levels:&lt;br /&gt;
&lt;br /&gt;
-Unlimited scaling on zoom would be a very useful feature in some applications, allowing for unlimited detail.&lt;br /&gt;
&lt;br /&gt;
== Rotation ==&lt;br /&gt;
Persistent rotation centers TODO: &lt;br /&gt;
&lt;br /&gt;
* make it work smartly for groups: if a group has center not set, return the center of the first object inside group with the center set&lt;br /&gt;
* a separate tab in the Transform dialog, with 9 buttons in the square grid (for setting it to object's corners, sides, and center) as well as x/y fields for setting center to any position&lt;br /&gt;
&lt;br /&gt;
== Plain SVG Export ==&lt;br /&gt;
''wwwwolf writeth:''&lt;br /&gt;
&lt;br /&gt;
An XSL stylesheet to convert from [[InkscapeSVG]] to [[PlainSVG]]&lt;br /&gt;
&lt;br /&gt;
If we had that, it wouldn't be necessary to use Inkscape's exporter in all situations - it could be used to make plain SVG without user intervention, automatically, and in places where Inkscape isn't even installed - all you need is an XSLT processor. This would be highly cool since some of the programs (I'm looking at YOU, Scribus *and* rsvg) at times choke randomly on Inkscape markup but render Inkscape's plain SVG without problems.&lt;br /&gt;
&lt;br /&gt;
== Extended Stroke Rendering ==&lt;br /&gt;
Extend stroke rendering capabilities&lt;br /&gt;
&lt;br /&gt;
Make it possible for the definition of the rendering of a stroke to be scriptable (at stroke time).  For instance, I might want to render a path as a series of flames - the size of the flames somewhat randomized, perhaps, along the stroke.  Because they are flames, my script would make sure they're always pointing the same direction (up) along the stroke.  Similarly, a series of water droplets would always be rendered dripping in a downward direction.&lt;br /&gt;
&lt;br /&gt;
Note that much of this functionality could also be done outside of scripting, using an approach similar to tiled clones.&lt;br /&gt;
&lt;br /&gt;
== Edge-Offsets ==&lt;br /&gt;
&amp;lt;B&amp;gt;kwixson writes:&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Edge offsets in flowed text with automatically drawn linked offsets of the object with no fill or stroke properties.&lt;br /&gt;
* Visual cue for selected groups (i.e., solid marquee instead of dashed)&lt;br /&gt;
* Undo in draw mode removes last node, not the entire path, same as backspace key&lt;br /&gt;
* Set the ruler 0, 0 coordinates by dragging a cross out of the rulers' corner / double click to set precisely, according to 0,0 index of page dimensions.&lt;br /&gt;
* Make space bar held down transform cursor to Selector tool until spacebar is released, with any tool except Text.&lt;br /&gt;
&lt;br /&gt;
== Smooth drawings ==&lt;br /&gt;
&lt;br /&gt;
2.) Sub-pixel resolution in drawing, is possible with XInput i think?&lt;br /&gt;
 - Again, improves drawing by hand&lt;br /&gt;
3.) Smooth drawing, smooth over small irrelegularities from mouse/drawing board&lt;br /&gt;
 - Same as all of the above, improves drawing, makes it a whole lot more fun! :)&lt;br /&gt;
&lt;br /&gt;
It doesn't seem so hard to implement but it would make a huge diffrence!&lt;br /&gt;
 &lt;br /&gt;
Aside from that, I love where Inkscape is going, the interface is great to work with and it just keeps getting better!&lt;br /&gt;
I find myself building from CVS so I dont't miss out.&lt;br /&gt;
&lt;br /&gt;
GREAT WORK GUYS! :)&lt;br /&gt;
&lt;br /&gt;
== Extrusion and Shadows ==&lt;br /&gt;
&amp;lt;B&amp;gt;Ilja writes:&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1.) Extrusion of Objects&lt;br /&gt;
2.) Dropshadow, kind of a clone - a bit fuzzy and little shifted behind&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Sinuhe Writes: &amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I'd like to see these in Inkscape, they are very common effects and I would like to see a faster way to achieve them than the current methods (copy object, relocate it, change color, change blur, change alpha).&lt;br /&gt;
&lt;br /&gt;
The current 3D Border effect works only with paths, not objects, wich is not very useful if you want to later modify the form (you lose the special modyfiers for stars, corner radius on rectangles, etc.) I would also like to see a way to change the color of the shadow created.&lt;br /&gt;
&lt;br /&gt;
Currently the best way to get a drop shadow or inner shadow is with a linked offset, so this &amp;quot;new effect&amp;quot; could just be an automatic sequence for creating the linked offset and change its color, alpha, position and blur to user-specified params. The linked offset works with objects as with paths so its just perfect and no need to convert to path. The main problem I see with this technique is that if you accidentally modify the linked offset scale, it won't follow the parent shape in the same precise way, but in a relative position to where it was first placed.&lt;br /&gt;
&lt;br /&gt;
With a similar tool, we could achieve an &amp;quot;Ilumination Effect&amp;quot; (similar to that in Freehand) by creating a linked offset, erasing fill, changing outline color, rising outline width and blurring it(It would have the same issue with accidentally modifying linked offset).&lt;br /&gt;
&lt;br /&gt;
Maybe we need an special object that is like a linked offset but is not directly editable or selectable? It would speed the creation of many different effects that would work in objects as in paths.&lt;br /&gt;
&lt;br /&gt;
== Some small Features ==&lt;br /&gt;
&amp;lt;b&amp;gt;Daddio writes:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
A couple of Small features that would help those of us a &amp;lt;b&amp;gt;lot&amp;lt;/b&amp;gt; that like to draw a basic shape and then tweak it in the xml editor:&amp;lt;br /&amp;gt;&lt;br /&gt;
1) the ablility to convert the SVG coordinates in a path to &amp;lt;i&amp;gt;and from&amp;lt;/i&amp;gt;relative coordinates (small case m's l's c's a's) except perhaps the initial M&amp;lt;br /&amp;gt;&lt;br /&gt;
2) the ability to truncate &amp;lt;i&amp;gt;(or even better, round)&amp;lt;/i&amp;gt; the SVG coordinates to  1, 2 or zero (etc) decimal places.&amp;lt;br /&amp;gt;&lt;br /&gt;
3) Set a decimal place limit so the generated SVG will stay within that limit.  I don't usually need or want 0.0006 precision!&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;fantasai&amp;lt;/strong&amp;gt; seconds these and suggests a way of saving as Plain SVG with metadata, since&lt;br /&gt;
things like the title, author, and license terms -- which are applicable to published images but not so&lt;br /&gt;
much to in-process drafts -- shouldn't be thrown out with the &amp;quot;last used zoom level&amp;quot; data, which are just&lt;br /&gt;
junk in a publication-ready image.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Orthogonal Lines ==&lt;br /&gt;
njh writes:&lt;br /&gt;
&lt;br /&gt;
Orthogonal lines best-fit to a pen path would be useful for quickly sketching diagrams.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:I think that Inkscape could adapt techniques from professional CAD Software including the Snap-Functionality:&lt;br /&gt;
:&amp;lt;u&amp;gt;existing&amp;lt;/u&amp;gt;&lt;br /&gt;
:*Snap to Nodes of a Line/Polygon&lt;br /&gt;
:*Snap to Line&lt;br /&gt;
:&amp;lt;u&amp;gt;missing&amp;lt;/u&amp;gt;&lt;br /&gt;
:*Snap to Center of a Circle&lt;br /&gt;
:*Snap to Quadrants of Cirle&lt;br /&gt;
:*Snap to Middle-Point of a Line&lt;br /&gt;
:*Snap ortogonal to a Line&lt;br /&gt;
:*Snap to Tangents of Curves&lt;br /&gt;
:*Snap to Crossing of Lines&lt;br /&gt;
:*etc. &lt;br /&gt;
:Also there could be a kind of&lt;br /&gt;
:&amp;lt;u&amp;gt;parametic input methods&amp;lt;/u&amp;gt;&lt;br /&gt;
:* There are more than one possibility to express how a circle gets created - ie. a circle could get defined using the center and a radius/diameter, 3 tagent-points, etc.&lt;br /&gt;
:* A line could get constructed using a startingpoint, lenght and angle&lt;br /&gt;
:* and much more...&lt;br /&gt;
:the way a specific line was drawn parametrically could get stored in the SVG-file as XML-Extensions using the Inksape-Namespace. &lt;br /&gt;
:[[User:MovGP0|MovGP0]] 20:36, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Scribus ==&lt;br /&gt;
*Scribus is a DTP coded in C++ (but with Qt). it can work with Python Script.&lt;br /&gt;
May be have a look at this could help doing the same in Inkscape.&lt;br /&gt;
*If the later can be done, this will help eventually include some of good&lt;br /&gt;
Sketch&lt;br /&gt;
(written in Python) possibilities in Inkscape.&lt;br /&gt;
*Also Scribus has good [[NodeTool]], and good text tool featuring textbox (frame)&lt;br /&gt;
or text on a path.&lt;br /&gt;
                                                                                &lt;br /&gt;
cheers&lt;br /&gt;
Cédric&lt;br /&gt;
&lt;br /&gt;
== Plugins ==&lt;br /&gt;
plugins for ways to warp and bend things&lt;br /&gt;
&lt;br /&gt;
== GtkVectDraw ==&lt;br /&gt;
What I can expect from this project is a better integration with gnome-office.&lt;br /&gt;
I dream for a really integrated gnome-office with a lot of code sharing via libraries. &lt;br /&gt;
For example, a vectorial drawing soft has lot of things in common with glabels, [[AbiShow]], etc ... &lt;br /&gt;
We have a lot to learn from Koffice in this respect. &lt;br /&gt;
 &lt;br /&gt;
So please create a fully capable [[GtkVectDraw]] library !&lt;br /&gt;
&lt;br /&gt;
== Small core, great extensions ==&lt;br /&gt;
''Emphasis on a small core plus modular extensions for features (a la Mozilla Firebird)''&lt;br /&gt;
&lt;br /&gt;
But *please* maintain a plugin-pack, and ship it with Inkscape. The way Firebird works sucks. Firebird has poor tab-implementation, and there are &amp;gt;10 extensions that try to improve it, while only 1 good version is needed. The list with extensions is chaos, don't let it be so with Inkscape...&lt;br /&gt;
&lt;br /&gt;
== Sodipodi ==&lt;br /&gt;
The below is in regards to Sodipodi 0.32:&lt;br /&gt;
                                                                                         &lt;br /&gt;
2. The XML viewer doesn't appear to allow selecting multiple items.&lt;br /&gt;
Often times I want to makes changes to many items at once and sometimes&lt;br /&gt;
I'll be working in the XML viewer.  Since this was the only way I could&lt;br /&gt;
figure out how to select individual items in a group it seems completely&lt;br /&gt;
impossible to select several items in a group.&lt;br /&gt;
                                                                                        &lt;br /&gt;
Some notes on feel:&lt;br /&gt;
                                                                                         &lt;br /&gt;
4. The mouse event system feels a bit wonky.  For example, if I take a&lt;br /&gt;
fairly complex design which can be a little bit sluggish when editing and&lt;br /&gt;
&lt;br /&gt;
make adjustments to a path node the cursor doesn't release as soon as I&lt;br /&gt;
let go of the mouse button.  So when I'm working quickly what happens is I&lt;br /&gt;
tweak a node, let go of the mouse button, then move the mouse and it keeps&lt;br /&gt;
adjusting the node even though I'm not holding the button.  This slows me&lt;br /&gt;
down considerably because I have to wait after letting go of the mouse&lt;br /&gt;
button each time.  It also does this when scrolling the main view using&lt;br /&gt;
the middle mouse button.  I'll scroll the view over, let go of the mouse&lt;br /&gt;
button, then when I move the mouse the view still scrolls for a second or&lt;br /&gt;
two.  Very annoying.  :)&lt;br /&gt;
                                                                                         &lt;br /&gt;
                                                                                        &lt;br /&gt;
Feature &amp;quot;wants&amp;quot;:&lt;br /&gt;
                                                                                         &lt;br /&gt;
                                                                                         &lt;br /&gt;
9. More powerful selection commands.  Some examples (from Illustrator):&lt;br /&gt;
                                                                                         &lt;br /&gt;
Select by fill color&lt;br /&gt;
Select by same stroke and fill&lt;br /&gt;
etc...&lt;br /&gt;
                                                                                         &lt;br /&gt;
                                                                                         &lt;br /&gt;
11. (DONE) More and user defined hot-keys.  Can I set any command/mode to a&lt;br /&gt;
hot-key?&lt;br /&gt;
                                                                                         &lt;br /&gt;
&lt;br /&gt;
== Gimp ==&lt;br /&gt;
I noticed that gimp does a cool hack today, they use an image thumbnail of the drawing as the window manager icon for the drawing window, you should do that with inkscape too&lt;br /&gt;
and it is actually usefull, consider I have fix inkscape windows with different flags, with this hack I will be able to identify each window in the tasklist and don't have to search so much&lt;br /&gt;
&lt;br /&gt;
Also, I really wish inkscape where session aware like gedit, so that when I asks nautilus to open a new image it does so in the existing inkscape session instead of starting a new instance&lt;br /&gt;
&lt;br /&gt;
http://bugzilla.gnome.org/show_bug.cgi?id=107668  - the discussion in that bug report might be of interest to you guys too.  the participants are Dom (librsvg), Owen and the Gimp guys&lt;br /&gt;
&lt;br /&gt;
-- Uraeus&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Nonexisting File ==&lt;br /&gt;
when given a nonexisting file name on the command line, create that file (with an error report too)&lt;br /&gt;
&lt;br /&gt;
== TIFF-Export ==&lt;br /&gt;
Ability to export to uncompressed TIFF.&lt;br /&gt;
&lt;br /&gt;
I agree.  Or perhaps the ability to export a bitmap without any compression (e.g., TIFF or BMP).  I would like to create arrays of individual pixels and export them as a bitmap file.  After I carefully set up my bitmap with cloning and tiling and export it as a bitmap, the pixels are distorted from the compression.&lt;br /&gt;
&lt;br /&gt;
== Multi-Page and Layers ==&lt;br /&gt;
&lt;br /&gt;
Add multi-page support, default layouts for all pages, etc.&lt;br /&gt;
&lt;br /&gt;
== Dia-Import ==&lt;br /&gt;
Ability to import Dia objects. &lt;br /&gt;
Restricted Inkscape mode to work like Dia. There's nothing that Dia can do that is not possible to&lt;br /&gt;
do in Inkscape. &lt;br /&gt;
&lt;br /&gt;
== Viewports ==&lt;br /&gt;
However you gave me an idea: I can store past viewport not only before I do zoom, but also after that; later, when a next zoom is started, I will compare the current viewport with the last stored and, if it's the same, not store it. This way I will be adding one viewport record if there was no panning between zooms and two records if there was panning, these records storing the first and last viewports at this zoom. I think it will be a bit more convenient this way. &lt;br /&gt;
&lt;br /&gt;
:Well, what I had in mind is that viewport undo steps would be separated by editing operations -- so e.g. consecutive pans/zooms with no edits in between them would be coalesced into a single zoom undo step.&lt;br /&gt;
&lt;br /&gt;
== SWF-Export ==&lt;br /&gt;
Exporting vectors as swf files. While this is probably not on the top of everyone's wishlist, it would make inkscape the tool of choice for editing shapes for flash, which is an area where the flash editor does a horrible job. Flash import capabilities for vectors are also very limited, making AI a requirement in order to convert between flash and svg.&lt;br /&gt;
&lt;br /&gt;
Given that svg is going to be replacing flash very (very) soon, a flash import capability would also make life easier for a lot of people...&lt;br /&gt;
&lt;br /&gt;
Ming library: [[http://ming.sourceforge.net/]]&lt;br /&gt;
[[Svg2Swf]] python script (uses Ming): [[http://www.eskimo.com/~robla/svg2swf/]]&lt;br /&gt;
&lt;br /&gt;
One adition: users (flash devigners) should be able to create symbols and give them proper names for inFlash use.&lt;br /&gt;
That would make Inkscape very usefull flash design platform.&lt;br /&gt;
AI has implemented that since CS3.&lt;br /&gt;
&lt;br /&gt;
== Mouse/Pen gestures ==&lt;br /&gt;
Add support for mouse gestures.&lt;br /&gt;
I have used the Mentor Graphics CAD tools for editing&lt;br /&gt;
schematics and PCB layouts, and the built-in support for mouse&lt;br /&gt;
&lt;br /&gt;
gesture has helped the productivity a lot. Granted CAD drawing&lt;br /&gt;
is not exactly vector drawing, but it is not too far apart.&lt;br /&gt;
There is a library libstroke that provides gestures support,&lt;br /&gt;
but I don't have any idea how usable that would be for inkscape.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:I thik there is some potential in this, ie. for undo/redo operations or tool-selection. Anyway, when you are working ie. with a tablet, its just about hitting the buttons that are doing just that. [[User:MovGP0|MovGP0]] 20:09, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Find enhancements ==&lt;br /&gt;
Find dialog: collapsable panes: Size &amp;amp; Position (X, Y, W, H; tolerance), Attribute (Name, Value). Pasting in the id, style, size/position fields (add buttons for pasting?) pastes the id, style, size/position of the object on clipboard. Add a regexp checkbox, when it's on matches are always exact but with a regexp matcher. Checkboxes: limit search to selection, (later) to current layer, possibly in (in)visible or (in)sensitive only.&lt;br /&gt;
&lt;br /&gt;
== Fill &amp;amp; Stroke ==&lt;br /&gt;
Plan for fill&amp;amp;stroke:&lt;br /&gt;
&lt;br /&gt;
* add fill opacity/stroke opacity sliders common to all fill/stroke types (gradients, patterns, color)&lt;br /&gt;
*:upon reflection, no. It gives nothing compared to master opacity.&lt;br /&gt;
* maybe separate it into Fill and Stroke dialogs&lt;br /&gt;
* change gradient display/controls to match those of the toolbar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transform Selection ==&lt;br /&gt;
A new &amp;quot;transform with selection&amp;quot; toggle: font (see [[FontKerning]], toggle between [0 or 1, depending on optimize/preserve] and 2).&lt;br /&gt;
&lt;br /&gt;
== Corel Draw and Illustrator Import ==&lt;br /&gt;
Filter to import Corel Draw Files and Adobe Illustrator Files&lt;br /&gt;
(very important at my opinion)&lt;br /&gt;
&lt;br /&gt;
:Probabbly to dificult to do well, just export to svg&lt;br /&gt;
&lt;br /&gt;
:Actually, current AI files are really just PDFs - should be pretty easy&lt;br /&gt;
&lt;br /&gt;
== Postscript Export ==&lt;br /&gt;
On export to Postscript, special-case treatment of text/fonts so that, instead of outputting each instance of a character as a separate  set of coordinates, output the definition of the character once, and then use it (with matrix transforms) for each instance of that character.&lt;br /&gt;
&lt;br /&gt;
On export to Postscript, allow for specifying use of fonts-and-text (particularly useful when planning to create PDFs).&lt;br /&gt;
&lt;br /&gt;
On export to Postscript a) warn about transparencies, b) attempt to automatically correct for transparencies by i) converting underlying fragments to transformed values (complex) or ii) embed a bitmap-based fill.  Possibly allowing optional choice of approach.&lt;br /&gt;
&lt;br /&gt;
Possibly provide a direct-to-PDF export as well?&lt;br /&gt;
&lt;br /&gt;
Possibly allow for a UI mechanism that lets any code in the system define a selection set of objects, displaying their IDs in a floating dialog.  Clicking on the IDs would select the object.  The postscript export warning about transparent objects, then, would be able to return with a selection set through which the user could iterate in order to fix each transparent object.&lt;br /&gt;
&lt;br /&gt;
Provide a saving option which gathers the fonts used by the SVG file (as well as any other externally referenced files) for transfer to another machine.  Preferably stored in a zip or similar mechanism so that they're easy to share.  This is basically a &amp;quot;collect resources&amp;quot; feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:I sign this one too, because using SVG from LaTeX is hard to do. The usual approach to this is exporting all as bitmap and then use it. I think that a PS export would do much better. [[User:MovGP0|MovGP0]] 20:00, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Print Preview ==&lt;br /&gt;
Provide a print-preview, print-settings, page-setup style printing framework (a-la Corel, Adobe, etceteras).&lt;br /&gt;
&lt;br /&gt;
== Fill and Stroke Dialog Focus ==&lt;br /&gt;
On right-click menu selection of a dialog (fill and stroke, or object properties, for instance), set focus to the dialog selected to avoid the need for a mouse-seek-and-click to do the set-focus.&lt;br /&gt;
&lt;br /&gt;
== Tiled Cones ==&lt;br /&gt;
Under the &amp;quot;Rotation&amp;quot; tab of the &amp;quot;Create Tiled Clones&amp;quot; menu, perhaps have&lt;br /&gt;
an &amp;quot;Anchor Offset&amp;quot; option &amp;quot;as well as a setting for (px, cm, mm, in, etc - default &amp;quot;px&amp;quot;) which could remain at &amp;quot;0&amp;quot; or &amp;quot;centered&amp;quot; or be changed&lt;br /&gt;
relative to center, say (+ or -) and (x or y):&lt;br /&gt;
&lt;br /&gt;
x = 50, y = 50; x = 50, y = -50; x = -50, y = -50; x = -50, y = 50&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
This would allow for explicit placement of the rotation anchor.&lt;br /&gt;
&lt;br /&gt;
This could also be used for general rotation as well.&lt;br /&gt;
&lt;br /&gt;
== MathML Import ==&lt;br /&gt;
For scientific graphics I often need the possibility to write mathematical Formulas within the SVG-File. A possible way to do so is write the Formulas using TeX, convert to MathML (this is the easy part) convert to PNG and then import to use it. But a Bitmap that is not good for scaling, so you better transform MathML to SVG and import the SVG. &lt;br /&gt;
&lt;br /&gt;
I think that Inkscape should come with a Plugin that can do the MathML to SVG transformation. Later this tool could get extended to convert also simple TeX to MathML to SVG. &lt;br /&gt;
&lt;br /&gt;
Having such a plugin, complex Formulas could get transformed like any SVG (including scaling, rotation, coloring, etc.), but keept as plain MathML in the Sourcecode. This will make inkscape really useful for scientific and technical needs. &lt;br /&gt;
&lt;br /&gt;
[[User:MovGP0|MovGP0]] 19:57, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
Maybe, [http://helm.cs.unibo.it/mml-widget/ GtkMathView] can be used to render MathML into SVG.&lt;br /&gt;
&lt;br /&gt;
== Metadata in Save-Dialog ==&lt;br /&gt;
I think that the Button for editing Document-Metadata should also be shown in the File-Save Dialog, because lazy peoples like myself are ignoring such possibilities if there are not easily accessible. &lt;br /&gt;
&lt;br /&gt;
I think a Button that asks for filling Metadata and another Button for choosing a License (if not filled/choosen already) in the File-Save Dialog would be a good idea. &lt;br /&gt;
&lt;br /&gt;
[[User:MovGP0|MovGP0]] 20:21, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== SVG Profile Selection ==&lt;br /&gt;
There should be a possibility to choose which SVG-Standard a user want to use for his drawing. If choosen one, Inkscape should only show tools that are supported in this standard. So, if a user chooses to use &amp;quot;SVG Mobile 1.0&amp;quot; it doesn't makes sense to present a &amp;quot;SVG 1.2 Full&amp;quot;-only-tool. [[User:MovGP0|MovGP0]] 20:48, 6 May 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Inkscape as Tablet Notepad ==&lt;br /&gt;
My purpose is to be able, e.g., to open an inkscape document from an OO presentation, to use as a blackboard, something I can do with gimp (but Inkscape is much better!). Is there a workaround? I could think of a simple one&lt;br /&gt;
if Inkscape had also a specific extension (an alias), different from .svg.&lt;br /&gt;
No special format, simply a dedicated extension. Mime processing would then send the file to Inkscape, not to a viewer, as it is now.&lt;br /&gt;
Does this make any sense?&lt;br /&gt;
&lt;br /&gt;
== 3D Color Picker ==&lt;br /&gt;
&lt;br /&gt;
Color is inherently three dimensional, and http://www.colorotate.org is a 3D editor that &amp;quot;aligns with the way our minds process color&amp;quot; - http://learn.colorotate.org/ explains color nicely. ColoRotate is kinda like Adobe Kuler, but with a 3D representation its even better. I'd like to see a widget like this in Inkscape! :-)&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=56473</id>
		<title>Release notes/0.48</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=56473"/>
		<updated>2010-01-31T07:19:12Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Other features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.48==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning048]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
(TODO)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node Tool===&lt;br /&gt;
&lt;br /&gt;
During Google Summer of Code 2009, the node tool underwent an extensive rewrite. Along with more maintainable code, it brings several new features.&lt;br /&gt;
&lt;br /&gt;
* '''Multi-path editing''' - any number of paths can be selected for node editing at once.&lt;br /&gt;
* '''Improved clippath / mask editing''' - the clipping path or mask of an object can be edited at the same time as the object. The clip / mask editing buttons in the node tool are now toggle buttons, rather than mode switch buttons. If the object is transformed after applying a clipping path, the clipping path is no longer offset when editing it in the node tool. If the clipping path is a group, all paths in the group can be edited simultaneously.&lt;br /&gt;
* '''Improved node join''' - it is now possible to join nodes from different paths. More than two endnodes can be joined at once - the distances between nodes will be used to determine which nodes to join, with the closest pairs being joined first. When nothing can be joined (less than 2 endnodes in selecion), each selected stretch of nodes will be joined into one node.&lt;br /&gt;
* '''Improved segment join''' - it is now possible to create a segment between endnodes from different paths. More than one segment can be created at once - the distances between nodes will be used to determine which nodes to join with a segment, with the closest pairs being joined first. When nothing can be joined (less than 2 endnodes in selecion), each selected stretch of nodes will have its middle nodes removed, leaving only one segment.&lt;br /&gt;
* '''Node transforms''' - it is now possible to transform the nodes using the mouse and transformation handles similar to those in the selector tool. They can be turned on and off using the first button in the node toolbar. When the handles are visible, clicking on a selected node will switch between scaling and rotation mode, instead of selecting only that node. You can also use Shift+H to switch the mode. All other operations work normally when transform handles are shown.&lt;br /&gt;
* '''Path direction tools''' - little harpoons are optionally shown in the middle of each segment, visualizing the direction of the path. This is useful when preparing a guide path for text, setting markers, and debugging extensions and Inkscape itself. The &amp;quot;Reverse&amp;quot; command (Shift+R) reverses the direction of subpaths that have some selected nodes, or all subpaths if the node selection is empty.&lt;br /&gt;
* '''Improved tips''' - the tips displayed for nodes and handles are more concise and affected by what modifier keys are pressed.&lt;br /&gt;
&lt;br /&gt;
For a detailed feature comparison between the old and new tool, see [[GSoC2009 Node Tool Rewrite]].&lt;br /&gt;
&lt;br /&gt;
===Spray Tool===&lt;br /&gt;
To use the spray tool, you first need to select one or several items and then click on the Spray icon.&lt;br /&gt;
&lt;br /&gt;
Three modes are available.&lt;br /&gt;
&lt;br /&gt;
*''Spray Copy mode :'' each sprayed item is independant from the others.&lt;br /&gt;
*''Spray Clone mode :'' each sprayed item is a clone of the selected item. Changing the properties of the original item will affect the clones.&lt;br /&gt;
*''Spray Single Path Mode :'' everything you spray is in a single path. You may need to convert your item into a path to make it work properly.&lt;br /&gt;
&lt;br /&gt;
'''Spray options'''&lt;br /&gt;
&lt;br /&gt;
*Amount : probability of apparition of an item.&lt;br /&gt;
*Scatter : for the gaussian spraying, it sets the width of the gaussian.&lt;br /&gt;
*Focus : it sets the center of the gaussian. More precisely, it is the distance to the center of the cursor.&lt;br /&gt;
*Scale : you can choose to scale your items taller or smaller than the original one. The scale is set between two values (Min and Max).&lt;br /&gt;
*Rotation : you can rotate randomly your items. The rotation angle is set between two values (Min and Max).&lt;br /&gt;
&lt;br /&gt;
You can also spray items by scrolling.&lt;br /&gt;
&lt;br /&gt;
The Spray tool is a perfect match for the transforming, duplicating, and deleting modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Path effects== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Import/Export== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Generate from Path &amp;gt; Voronoi Pattern''' extension creates a random pattern of Voronoi cells. The pattern will be accessible from the Fill and Stroke dialog. The pattern can be made to be smooth at the edges by choosing a positive border, or sparse at the edges by using a negative border.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Wireframe Sphere''' extension draws the globe as a collection of ellipses representing a sphere's latitude and longitude lines. The number of lines is adjustable, as well as the tilt and rotation. There is an option to hide the lines at the back of the sphere.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Barcode - Datamatrix''' extension renders a DataMatrix 2D barcode, as specified in BS ISO/IEC 16022:2006. The number of rows and columns of the DataMatrix is adjustable. If more data is given than can be contained in one DataMatrix, more than one DataMatrix will be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Filters==&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
==Editing Aids== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
* Arch paper sizes are added in the Document Properties dialog&lt;br /&gt;
&lt;br /&gt;
* Displaying the '''font samples''' in the drop-down list of the Text tool is now optional. In Inkscape Preferences, go to Tools, Text, and uncheck &amp;quot;Show font samples in the drop-down list&amp;quot; if you don't want to see the samples. This will speed up displaying the list the first time you open it.&lt;br /&gt;
&lt;br /&gt;
* Items in the File &amp;gt; Open Recent menu, when mouseovered, show tooltips with the full URI of each file in the list. Also, files that are in the list but are missing or unaccessible are automatically hidden.&lt;br /&gt;
&lt;br /&gt;
* When a flowed text is truncated (i.e. the frame is too small for the entire text), the frame is shown red, and the statusbar hint includes '''[truncated]'''. You need to resize the frame to see the truncated end of the text. Analogously, if the path of a text-on-path object is too short to display the entire text, the statusbar will report it as '''[truncated]'''.&lt;br /&gt;
&lt;br /&gt;
* Clicking the text alignment buttons (Left, Center, Right) on the Text tool's controls bar now does not let the text jump: it stays within the same bounding box as before, only changing the alignment. &lt;br /&gt;
&lt;br /&gt;
* The position of text's baseline anchor (the small square) is now dependent of the alignment: for left-aligned text it is, as before, at the left end, for centered text in the middle, and for the right-aligned text it is at the right end of the text's first line (this is for horizontal text; for vertical, it is correspondingly at top, middle, or bottom of the first column). This allows snapping, aligning and distributing of text relative the side to which it's aligned.&lt;br /&gt;
&lt;br /&gt;
* Snapping of gradient handles has been improved and now behaves similar to the snapping of all other handles and objects&lt;br /&gt;
&lt;br /&gt;
* When snapping to a bounding box, that bounding box will be shown for a moment (tied to the snap indicator)&lt;br /&gt;
&lt;br /&gt;
* If a new object is being created on the canvas with snapping enabled, then a snap indicator will also be shown for the first point. &lt;br /&gt;
&lt;br /&gt;
* There are now options for Margins when resizing a document to a selection or the drawing in Document Properties.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Adaptive UI===&lt;br /&gt;
(In progress [[User:JonCruz|JonCruz]])&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* The 3D tool no longer inserts an inkscape:perspective element into SVG when it is not needed (i.e. when the document has no 3D box objects).&lt;br /&gt;
&lt;br /&gt;
* Wrong clippaths and masks with cyclic recursion (i.e. clippaths or masks that refer to themselves via other clippaths or masks) no longer crash Inkscape.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=56371</id>
		<title>Release notes/0.48</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=56371"/>
		<updated>2010-01-19T20:18:58Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Other features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.48==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning048]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
(TODO)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node Tool===&lt;br /&gt;
&lt;br /&gt;
During Google Summer of Code 2009, the node tool underwent an extensive rewrite. Along with more maintainable code, it brings several new features.&lt;br /&gt;
&lt;br /&gt;
* '''Multi-path editing''' - any number of paths can be selected for node editing at once.&lt;br /&gt;
* '''Improved clippath / mask editing''' - the clipping path or mask of an object can be edited at the same time as the object. The clip / mask editing buttons in the node tool are now toggle buttons, rather than mode switch buttons. If the object is transformed after applying a clipping path, the clipping path is no longer offset when editing it in the node tool. If the clipping path is a group, all paths in the group can be edited simultaneously.&lt;br /&gt;
* '''Improved node join''' - it is now possible to join nodes from different paths. More than two endnodes can be joined at once - the distances between nodes will be used to determine which nodes to join, with closest pairs being joined first. When nothing can be joined (less than 2 endnodes in selecion), each selected stretch of nodes will be joined into one node.&lt;br /&gt;
* '''Improved segment join''' - it is now possible to create a segment between endnodes from different paths. More than one segment can be created at once - the distances between nodes will be used to determine which nodes to join with a segment, with closest pairs being joined first. When nothing can be joined (less than 2 endnodes in selecion), each selected stretch of nodes will have its middle nodes removed, leaving only one segment.&lt;br /&gt;
* '''Node transforms''' - it is now possible to transform the nodes using the mouse and transformation handles similar to those in the selector tool. They can be turned on and off using the first button in the node toolbar. When the handles are visible, clicking on a selected node will switch between scaling and rotation mode, instead of selecting only that node. You can also use Shift+H to switch the mode. All other operations work normally.&lt;br /&gt;
* '''Path direction tools''' - little half-arrows are shown in the middle of each segment, visualizing the direction of the path. This is useful when preparing a guide path for text, setting markers, and debugging extensions and Inkscape itself. The &amp;quot;Reverse&amp;quot; command (Shift+R) reverses the direction of subpaths that have some selected nodes, or all subpaths if the node selection is empty.&lt;br /&gt;
* '''Improved tips''' - the tips displayed for nodes and handles are more concise and affected by what modifier keys are pressed.&lt;br /&gt;
&lt;br /&gt;
For a detailed feature comparison between the old and new tool, see [[GSoC2009 Node Tool Rewrite]].&lt;br /&gt;
&lt;br /&gt;
===Spray Tool===&lt;br /&gt;
To use the spray tool, you first need to select one or several items and then click on the Spray icon.&lt;br /&gt;
&lt;br /&gt;
Three modes are available.&lt;br /&gt;
&lt;br /&gt;
*''Spray Copy mode :'' each sprayed item is independant from the others.&lt;br /&gt;
*''Spray Clone mode :'' each sprayed item is a clone of the selected item. Changing the properties of the original item will affect the clones.&lt;br /&gt;
*''Spray Single Path Mode :'' everything you spray is in a single path. You may need to convert your item into a path to make it work properly.&lt;br /&gt;
&lt;br /&gt;
'''Spray options'''&lt;br /&gt;
&lt;br /&gt;
*Amount : probability of apparition of an item.&lt;br /&gt;
*Scatter : for the gaussian spraying, it sets the width of the gaussian.&lt;br /&gt;
*Focus : it sets the center of the gaussian. More precisely, it is the distance to the center of the cursor.&lt;br /&gt;
*Scale : you can choose to scale your items taller or smaller than the original one. The scale is set between two values (Min and Max).&lt;br /&gt;
*Rotation : you can rotate randomly your items. The rotation angle is set between two values (Min and Max).&lt;br /&gt;
&lt;br /&gt;
You can also spray items by scrolling.&lt;br /&gt;
&lt;br /&gt;
The Spray tool is a perfect match for the transforming, duplicating, and deleting modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Path effects== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Import/Export== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Wireframe Sphere''' extension draws the globe as a collection of ellipses representing a sphere's latitude and longitude lines. The number of lines is adjustable, as well as the tilt and rotation. There is an option to hide the lines at the back of the sphere.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Barcode - Datamatrix''' extension renders a DataMatrix 2D barcode, as specified in BS ISO/IEC 16022:2006. The number of rows and columns of the DataMatrix is adjustable. If more data is given than can be contained in one DataMatrix, more than one DataMatrix will be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Filters==&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
==Editing Aids== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
* Arch paper sizes are added in the Document Properties dialog&lt;br /&gt;
&lt;br /&gt;
* Displaying the '''font samples''' in the drop-down list of the Text tool is now optional. In Inkscape Preferences, go to Tools, Text, and uncheck &amp;quot;Show font samples in the drop-down list&amp;quot; if you don't want to see the samples. This will speed up displaying the list the first time you open it.&lt;br /&gt;
&lt;br /&gt;
* Items in the File &amp;gt; Open Recent menu, when mouseovered, show tooltips with the full URI of each file in the list. Also, files that are in the list but are missing or unaccessible are automatically hidden.&lt;br /&gt;
&lt;br /&gt;
* When a flowed text is truncated (i.e. the frame is too small for the entire text), the frame is shown red, and the statusbar hint includes '''[truncated]'''. You need to resize the frame to see the truncated end of the text. Analogously, if the path of a text-on-path object is too short to display the entire text, the statusbar will report it as '''[truncated]'''.&lt;br /&gt;
&lt;br /&gt;
* Clicking the text alignment buttons (Left, Center, Right) on the Text tool's controls bar now does not let the text jump: it stays within the same bounding box as before, only changing the alignment. &lt;br /&gt;
&lt;br /&gt;
* The position of text's baseline anchor (the small square) is now dependent of the alignment: for left-aligned text it is, as before, at the left end, for centered text in the middle, and for the right-aligned text it is at the right end of the text's first line (this is for horizontal text; for vertical, it is correspondingly at top, middle, or bottom of the first column). This allows snapping, aligning and distributing of text relative the side to which it's aligned.&lt;br /&gt;
&lt;br /&gt;
* Snapping of gradient handles has been improved and now behaves similar to the snapping of all other handles and objects&lt;br /&gt;
&lt;br /&gt;
* When snapping to a bounding box, that bounding box will be shown for a moment (tied to the snap indicator)&lt;br /&gt;
&lt;br /&gt;
* There are now options for Margins when resizing a document to a selection or the drawing in Document Properties.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Adaptive UI===&lt;br /&gt;
(In progress [[User:JonCruz|JonCruz]])&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* The 3D tool no longer inserts an inkscape:perspective element into SVG when it is not needed (i.e. when the document has no 3D box objects).&lt;br /&gt;
&lt;br /&gt;
* Wrong clippaths and masks with cyclic recursion (i.e. clippaths or masks that refer to themselves via other clippaths or masks) no longer crash Inkscape.&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=55477</id>
		<title>Release notes/0.48</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=55477"/>
		<updated>2010-01-01T20:40:25Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Other features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.48==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning048]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
(TODO)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node Tool===&lt;br /&gt;
&lt;br /&gt;
(TODO - Krzysztof)&lt;br /&gt;
&lt;br /&gt;
For now, see [[GSoC2009 Node Tool Rewrite]]&lt;br /&gt;
&lt;br /&gt;
===Spray Tool===&lt;br /&gt;
To use the spray tool, you first need to select one or several items and then click on the Spray icon.&lt;br /&gt;
&lt;br /&gt;
Three modes are available.&lt;br /&gt;
&lt;br /&gt;
*''Spray Copy mode :'' each sprayed item is independant from the others.&lt;br /&gt;
*''Spray Clone mode :'' each sprayed item is a clone of the selected item. Changing the properties of the original item will affect the clones.&lt;br /&gt;
*''Spray Single Path Mode :'' everything you spray is in a single path. You may need to convert your item into a path to make it work properly.&lt;br /&gt;
&lt;br /&gt;
'''Spray options'''&lt;br /&gt;
&lt;br /&gt;
*Population : probability of apparition of an item.&lt;br /&gt;
*Standard Deviation : for the gaussian spraying, it sets the width of the gaussian.&lt;br /&gt;
*Mean : it sets the center of the gaussian. More precisely, it is the distance to the center of the cursor.&lt;br /&gt;
*Scale : you can choose to scale your items taller or smaller than the original one. The scale is set between two values (Min and Max).&lt;br /&gt;
*Rotation : you can rotate randomly your items. The rotation angle is set between two values (Min and Max).&lt;br /&gt;
&lt;br /&gt;
You can also spray items by scrolling.&lt;br /&gt;
&lt;br /&gt;
The Spray tool is a perfect match for the transforming, duplicating, and deleting modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Path effects== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Import/Export== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Wireframe Sphere''' extension draws the globe as a collection of ellipses representing a sphere's latitude and longitude lines. The number of lines is adjustable, as well as the tilt and rotation. There is an option to hide the lines at the back of the sphere.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Barcode - Datamatrix''' extension renders a DataMatrix 2D barcode, as specified in BS ISO/IEC 16022:2006. The number of rows and columns of the DataMatrix is adjustable. If more data is given than can be contained in one DataMatrix, more than one DataMatrix will be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Filters==&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
==Editing Aids== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
* Arch paper sizes are added in the Document Properties dialog&lt;br /&gt;
&lt;br /&gt;
* Displaying the '''font samples''' in the drop-down list of the Text tool is now optional. In Inkscape Preferences, go to Tools, Text, and uncheck &amp;quot;Show font samples in the drop-down list&amp;quot; if you don't want to see the samples. This will speed up displaying the list the first time you open it.&lt;br /&gt;
&lt;br /&gt;
* Items in the File &amp;gt; Open Recent menu, when mouseovered, show tooltips with the full URI of each file in the list. Also, files that are in the list but are missing or unaccessible are automatically hidden.&lt;br /&gt;
&lt;br /&gt;
* When a flowed text is truncated (i.e. the frame is too small for the entire text), the frame is shown red, and the statusbar hint includes '''[truncated]'''. You need to resize the frame to see the truncated end of the text. Analogously, if the path of a text-on-path object is too short to display the entire text, the statusbar will report it as '''[truncated]'''.&lt;br /&gt;
&lt;br /&gt;
* Clicking the text alignment buttons (Left, Center, Right) on the Text tool's controls bar now does not let the text jump: it stays within the same bounding box as before, only changing the alignment. &lt;br /&gt;
&lt;br /&gt;
* The position of text's baseline anchor (the small square) is now dependent of the alignment: for left-aligned text it is, as before, at the left end, for centered text in the middle, and for the right-aligned text it is at the right end of the text's first line (this is for horizontal text; for vertical, it is correspondingly at top, middle, or bottom of the first column). This allows snapping, aligning and distributing of text relative the side to which it's aligned.&lt;br /&gt;
&lt;br /&gt;
* Snapping of gradient handles has been improved and now behaves similar to the snapping of all other handles and objects&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* The 3D tool no longer inserts an inkscape:perspective element into SVG when it is not needed (i.e. when the document has no 3D box objects).&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=55475</id>
		<title>Release notes/0.48</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.48&amp;diff=55475"/>
		<updated>2010-01-01T20:36:28Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Other features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.48==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning048]])'''&lt;br /&gt;
&lt;br /&gt;
==Release highlights==&lt;br /&gt;
&lt;br /&gt;
(TODO)&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node Tool===&lt;br /&gt;
&lt;br /&gt;
(TODO - Krzysztof)&lt;br /&gt;
&lt;br /&gt;
For now, see [[GSoC2009 Node Tool Rewrite]]&lt;br /&gt;
&lt;br /&gt;
===Spray Tool===&lt;br /&gt;
To use the spray tool, you first need to select one or several items and then click on the Spray icon.&lt;br /&gt;
&lt;br /&gt;
Three modes are available.&lt;br /&gt;
&lt;br /&gt;
*''Spray Copy mode :'' each sprayed item is independant from the others.&lt;br /&gt;
*''Spray Clone mode :'' each sprayed item is a clone of the selected item. Changing the properties of the original item will affect the clones.&lt;br /&gt;
*''Spray Single Path Mode :'' everything you spray is in a single path. You may need to convert your item into a path to make it work properly.&lt;br /&gt;
&lt;br /&gt;
'''Spray options'''&lt;br /&gt;
&lt;br /&gt;
*Population : probability of apparition of an item.&lt;br /&gt;
*Standard Deviation : for the gaussian spraying, it sets the width of the gaussian.&lt;br /&gt;
*Mean : it sets the center of the gaussian. More precisely, it is the distance to the center of the cursor.&lt;br /&gt;
*Scale : you can choose to scale your items taller or smaller than the original one. The scale is set between two values (Min and Max).&lt;br /&gt;
*Rotation : you can rotate randomly your items. The rotation angle is set between two values (Min and Max).&lt;br /&gt;
&lt;br /&gt;
You can also spray items by scrolling.&lt;br /&gt;
&lt;br /&gt;
The Spray tool is a perfect match for the transforming, duplicating, and deleting modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Path effects== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Import/Export== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Wireframe Sphere''' extension draws the globe as a collection of ellipses representing a sphere's latitude and longitude lines. The number of lines is adjustable, as well as the tilt and rotation. There is an option to hide the lines at the back of the sphere.&lt;br /&gt;
&lt;br /&gt;
* The new '''Render &amp;gt; Barcode - Datamatrix''' extension renders a DataMatrix 2D barcode, as specified in BS ISO/IEC 16022:2006. The number of rows and columns of the DataMatrix is adjustable. If more data is given than can be contained in one DataMatrix, more than one DataMatrix will be produced.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Filters==&lt;br /&gt;
&lt;br /&gt;
==SVG Support==&lt;br /&gt;
&lt;br /&gt;
==Editing Aids== --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
* Arch paper sizes are added in the Document Properties dialog&lt;br /&gt;
&lt;br /&gt;
* Displaying the '''font samples''' in the drop-down list of the Text tool is now optional. In Inkscape Preferences, go to Tools, Text, and uncheck &amp;quot;Show font samples in the drop-down list&amp;quot; if you don't want to see the samples. This will speed up displaying the list the first time you open it.&lt;br /&gt;
&lt;br /&gt;
* Items in the File &amp;gt; Open Recent menu, when mouseovered, show tooltips with the full URI of each file in the list. Also, files that are in the list but are missing or unaccessible are automatically hidden.&lt;br /&gt;
&lt;br /&gt;
* When a flowed text is truncated (i.e. the frame is too small for the entire text), the frame is shown red, and the statusbar hint includes '''[truncated]'''. You need to resize the frame to see the truncated end of the text. Analogously, if the path of a text-on-path object is too short to display the entire text, the statusbar will report it as '''[truncated]'''.&lt;br /&gt;
&lt;br /&gt;
* Clicking the text alignment buttons (Left, Center, Right) on the Text tool's controls bar now does not let the text jump: it stays within the same bounding box as before, only changing the alignment. &lt;br /&gt;
&lt;br /&gt;
* The position of text's baseline anchor (the small square) is now dependent of the alignment: for left-aligned text it is, as before, at the left end, for centered text in the middle, and for the right-aligned text it is at the right end of the text's first line (this is for horizontal text; for vertical, it is correspondingly at top, middle, or bottom of the first column). This allows snapping, aligning and distributing of text relative the side to which it's aligned.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* The 3D tool no longer inserts an inkscape:perspective element into SVG when it is not needed (i.e. when the document has no 3D box objects).&lt;br /&gt;
&lt;br /&gt;
==Known issues==&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_Notes/0.48&amp;diff=55299</id>
		<title>Release Notes/0.48</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_Notes/0.48&amp;diff=55299"/>
		<updated>2009-12-21T21:04:52Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Other Features */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.48==&lt;br /&gt;
===Highlights in this release:===&lt;br /&gt;
*Spray Tool&lt;br /&gt;
*Device CMYK&lt;br /&gt;
*Rewritten Node tool&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
===Spray Tool===&lt;br /&gt;
*Spray Copy mode&lt;br /&gt;
*Spray Clone mode&lt;br /&gt;
&lt;br /&gt;
The Spray tool is a perfect match for the transforming, duplicating, and deleting modes of the Tweak tool.&lt;br /&gt;
&lt;br /&gt;
==Other Features==&lt;br /&gt;
* Arch paper sizes are added in the Document Properties dialog&lt;br /&gt;
&lt;br /&gt;
* Displaying the '''font samples''' in the drop-down list of the Text tool is now optional. In Inkscape Preferences, go to Tools, Text, and uncheck &amp;quot;Show font samples in the drop-down list&amp;quot; if you don't want to see the samples. This will speed up displaying the list the first time you open it.&lt;br /&gt;
&lt;br /&gt;
* Items in the File &amp;gt; Open Recent menu, when mouseovered, show tooltips with the full URI of each file in the list. Also, files that are in the list but are missing or unaccessible are automatically hidden.&lt;br /&gt;
&lt;br /&gt;
* When a flowed text is truncated (i.e. the frame is too small for the entire text), the frame is shown red, and the statusbar hint includes '''[truncated]'''. You need to resize the frame to see the truncated end of the text. Analogously, if the path of a text-on-path object is too short to display the entire text, the statusbar will report it as '''[truncated]'''.&lt;br /&gt;
&lt;br /&gt;
* The position of text's baseline anchor is now dependent of the alignment, which allows snapping of text at the side to which it's aligned&lt;br /&gt;
&lt;br /&gt;
=Previous releases=&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes047]]&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=55297</id>
		<title>CompilingFedora</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=55297"/>
		<updated>2009-12-21T20:13:47Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Fedora 8 - 12 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fedora 8, 9 &amp;amp; 10 ==&lt;br /&gt;
&lt;br /&gt;
Load up a terminal and run the following 4 commands to download the Inkscape sourcecode, install the programs Inkscape needs to compile, and compile and install it, and then run it:&lt;br /&gt;
&lt;br /&gt;
    svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape ; cd inkscape &lt;br /&gt;
&lt;br /&gt;
    sudo yum install ImageMagick-c++-devel ImageMagick-c++ ImageMagick-devel ImageMagick glibmm24-devel libsigc++-devel gtkmm24-devel glibmm24 libsigc++ gtkmm24 intltool gc gc-devel lcms lcms-devel gsl gsl-devel libxml2-devel libxslt-devel boost-devel popt-static poppler-devel inkscape&lt;br /&gt;
&lt;br /&gt;
    ./autogen.sh&lt;br /&gt;
    ./configure&lt;br /&gt;
    make&lt;br /&gt;
    sudo make install&lt;br /&gt;
&lt;br /&gt;
    /usr/local/bin/inkscape&lt;br /&gt;
&lt;br /&gt;
Note: for Fedora 8 you might need to do this before running ./configure&lt;br /&gt;
    export PKG_CONFIG_PATH=&amp;quot;/usr/lib/pkgconfig/&amp;quot;&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=53563</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=53563"/>
		<updated>2009-08-09T09:07:27Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.47==&lt;br /&gt;
'''(not released yet - [[AnnouncePlanning047]])'''&lt;br /&gt;
&lt;br /&gt;
==Refactoring effort==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Migration to lib2geom===&lt;br /&gt;
Many parts of the code have been changed to use the 2Geom library for geometrical calculations instead of the old libnr and Livarot libraries.&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the &amp;lt;code&amp;gt;Inkscape::Preferences&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node tool===&lt;br /&gt;
&lt;br /&gt;
* When hovering over a path in the Node tool, the path's outline will be displayed for a short time. This effect, its duration and the color of the outline is configurable.&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* 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).&lt;br /&gt;
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:&lt;br /&gt;
** 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.&lt;br /&gt;
** 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. '''IS THE FOLLOWING CORRECT?''' 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
===Tweak tool===&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	attract/repel objects mode&lt;br /&gt;
 Shift+z, Shift+2	jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
===Calligraphy tool===&lt;br /&gt;
&lt;br /&gt;
* The tool's settings can now be saved and restored as presets.&lt;br /&gt;
&lt;br /&gt;
* When drawing with Alt pressed, Inkscape subtracts the path you have created from the selected path. With Shift, it unions with the selected path. This allows you to quickly patch or fix problems in a stroke you have drawn without leaving the tool.&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
** The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
** The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
===Paint Bucket tool===&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
===Eraser Tool===&lt;br /&gt;
A new eraser tool has been added. Its shortcut is Shift+E. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete Objects mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor. It acts on all objects in the current layer.&lt;br /&gt;
&lt;br /&gt;
===Pen and Pencil===&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Polyline mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when you drag with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial polyline mode''': In this mode, you can create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.&lt;br /&gt;
&lt;br /&gt;
====Pencil sketch mode====&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
===Text tool===&lt;br /&gt;
&lt;br /&gt;
* 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).&lt;br /&gt;
&lt;br /&gt;
* 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). &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
==Path effects==&lt;br /&gt;
===Notable bug fixes and effect changes===&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applies the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].&lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized hatches, simulating a quick hand drawing.&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''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 &amp;quot;reference&amp;quot; path (a line segment) and a &amp;quot;generating&amp;quot; path (basically a collection of segments): the thransforms are the one needed to move the reference 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 [http://en.wikipedia.org/wiki/Koch_snowflake von Koch's snowflake].&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Warning'': Should not be applied to groups yet, unless you don't want to edit the crossing signs.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan] 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- These effects are still hidden or under developpement. unhide them when they are added...&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Angle bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove Path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects for groups===&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPEs, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects stacking===&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===PostScript and EPS import===&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
===PDF import===&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;TimesNewRomanPSMT&amp;quot; and you have &amp;quot;Times New Roman&amp;quot; installed, that font will be used, which will likely give you a more correct appearance than the unknown font &amp;quot;TimesNewRomanPSMT&amp;quot; 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. &lt;br /&gt;
&lt;br /&gt;
* Importing PDF files now works '''from the command line'''. For example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
:It will take the first page of the PDF and all the default import options, and save the result to SVG. If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the import options dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
===PDF, PostScript, and EPS export===&lt;br /&gt;
&lt;br /&gt;
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 are exported via embedded bitmaps that preserve the appearance. In particular:&lt;br /&gt;
&lt;br /&gt;
* '''transparency''' is always rasterized in PS or EPS but not PDF, as PDF supports vector transparency;&lt;br /&gt;
&lt;br /&gt;
* '''filters''', such as blur, are by default rasterized in all three formats (PS, EPS, PDF). This can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
* The '''resolution''' for rasterizing the filters can be set in the UI in the &amp;quot;Resolution for rasterization (dpi)&amp;quot; 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,&lt;br /&gt;
&lt;br /&gt;
 inkscape --export-pdf=out.pdf --export-dpi=300 file.svg&lt;br /&gt;
&lt;br /&gt;
: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.)&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (page or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 &amp;quot;Export area is page&amp;quot; (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).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is page&amp;quot; (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. &lt;br /&gt;
&lt;br /&gt;
**Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
** The '''--export-bbox-page''' command line parameter has been removed; use '''--export-area-page''' instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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 &amp;quot;Export area is page&amp;quot; or using '''--export-area-page''' overrides this setting for PS and PDF output.&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===UniConvertor-based import and export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to import files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 document files (CDR)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
* Computer Graphics Metafiles (CGM)&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
* HPGL (AutoCAD) Plot files (PLT) Requires UniConvertor 1.1.4.&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to export files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Windows Metafiles (WMF)&lt;br /&gt;
* sK1 files (SK1)&lt;br /&gt;
* HPGL (AutoCAD) Plot files (PLT) Requires UniConvertor 1.1.4.&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.4.&lt;br /&gt;
&lt;br /&gt;
On Windows, UniConvertor is included with Inkscape distribution and does not require separate installation.&lt;br /&gt;
&lt;br /&gt;
===HPGL export===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===JavaFX export===&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
===DXF import and export===&lt;br /&gt;
&lt;br /&gt;
* 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 added support for polylines and polysplines.&lt;br /&gt;
&lt;br /&gt;
* DXF import is new. It supports a number of the simpler DXF shapes: line, Bezier spline, ellipse, circular arc, text.&lt;br /&gt;
&lt;br /&gt;
===PNG export===&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;lt;code&amp;gt;identify&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
==Autosave==&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
===New and improved extensions===&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Add printing marks''' extension add useful printing marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Render &amp;gt; Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and other options.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
* The new '''Render &amp;gt; Foldable Box''' extension helps to design and construct paper boxes.&lt;br /&gt;
* The new '''Modify Path &amp;gt; Convert to Dashes''' extension takes the dash pattern of the stroke and explicitly cuts the curve to duplicate this pattern. This is to allow desktop cutting plotters to cut dashed curves.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Preset filters===&lt;br /&gt;
&lt;br /&gt;
The Filter Editor is powerful, but can be quite cumbersome. You can now add complex preset filters to the selected objects with a single command by choosing it from the new '''Filters''' top-level menu. Submenus categorize the filters by function or appearance. 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 &amp;quot;...&amp;quot; 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 apply several overlaid 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 into the Filters Editor.&lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
===''No Filters'' rendering mode===&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
===Filter quality setting===&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==SVG support==&lt;br /&gt;
&lt;br /&gt;
===Optimized CSS properties===&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
===Optimized path data===&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
===No more explicit closing line segment===&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
===Horizontal and vertical path segments===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;script&amp;gt; tag preserved===&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Initial SVG Fonts support===&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. We are waiting libpango to implement proper support for the user-fonts feature. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
There is a concept that has to be understood while using the SVG Font Editor. 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 &amp;quot;missing glyph&amp;quot; that is rendered. You can set the drawing that defines this missing glyph also. This is done by clicking on the '''Missing Glyph: From Selection...''' button at the top of the dialog.&lt;br /&gt;
&lt;br /&gt;
So, an example of workflow would be:&lt;br /&gt;
&lt;br /&gt;
1. Click '''New font'''. Select it. You can rename it if you wish. 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 glyph was defined yet.&lt;br /&gt;
&lt;br /&gt;
2. Draw something for your desired missing glyph&lt;br /&gt;
&lt;br /&gt;
3. Click '''Missing Glyph: From selection...'''&lt;br /&gt;
&lt;br /&gt;
4. Draw a glyph for the &amp;quot;a&amp;quot; character (character matching is case sensitive)&lt;br /&gt;
&lt;br /&gt;
5. On the '''Glyphs''' tab, click '''Add glyph'''&lt;br /&gt;
&lt;br /&gt;
6. Type &amp;quot;a&amp;quot; in the '''Matching String''' column (at the moment, handling of the glyph-name attribute is not implemented)&lt;br /&gt;
&lt;br /&gt;
7. With the row selected, click '''Get curves from selection...'''&lt;br /&gt;
&lt;br /&gt;
8. Now you will probably see the &amp;quot;a&amp;quot; glyph in the preview rendering, if the preview text contains it. You can freely edit the preview text as needed to view different characters.&lt;br /&gt;
&lt;br /&gt;
Repeat steps 4 through 7 for every other glyph you wish to add to your font.&lt;br /&gt;
&lt;br /&gt;
===SVG Test Suite Compliance===&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ 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 [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
==Editing Aids==&lt;br /&gt;
&lt;br /&gt;
===Grids===&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
===Guides===&lt;br /&gt;
&lt;br /&gt;
* Guides can now be rotated using the mouse. Each guide has an anchor (visible as a little circle) around which it can rotate.&lt;br /&gt;
:*'''Drag''' a guide anywhere to move it.&lt;br /&gt;
:*'''Shift+drag''' to rotate a guide about its anchor (additionally press '''Ctrl''' to constrain the rotation angle to multiples of 15 degrees).&lt;br /&gt;
:*'''Ctrl+drag''' to move the anchor along the guide.&lt;br /&gt;
:*Press '''Del''' while hovering the mouse over the guide to delete it.&lt;br /&gt;
 &lt;br /&gt;
* 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).&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone major changes to make it more reliable and easier to use from a developer's perspective. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error prone than the old Livarot library. This fixes at least two known snapping bugs.&lt;br /&gt;
&lt;br /&gt;
There is a new toolbar to control the snapping options and modes. Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar. To control some other new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* '''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&lt;br /&gt;
* '''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. &lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for &amp;quot;always snap&amp;quot; has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift key now also disables snapping while dragging node handles, and while creating single dots&lt;br /&gt;
* During constrained drawing (using Ctrl), Inkscape will now only snap to the points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while skewing or moving with a constraint (with Ctrl) has been improved.&lt;br /&gt;
* Also in the selector tool, while translating Inkscape will now snap the bounding box of each selected item individually instead of the selection as a whole&lt;br /&gt;
&lt;br /&gt;
Inkscape now also considers the following objects for snapping:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments&lt;br /&gt;
* Midpoints of bounding box edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth nodes&lt;br /&gt;
* Cusp nodes&lt;br /&gt;
* Each of the handle points when creating new shapes&lt;br /&gt;
* Radius handles of rectangles&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
===Spell checker===&lt;br /&gt;
&lt;br /&gt;
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text &amp;gt; 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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
document. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Desktop integration improvements===&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Themable Icons''' - all icons used in Inkscape are now themable using the standard freedesktop.org theming mechanism. The list of names used is available [[themable icons|here]].&lt;br /&gt;
&lt;br /&gt;
===Shell mode===&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
===Gesture-based stroke width adjustment===&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
===Enhanced tablet support===&lt;br /&gt;
&lt;br /&gt;
====Input device tool switching====&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
====Extended input device configuration====&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
===Layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menu to allow for duplicating an existing layer with all of its objects (even hidden or locked objects) and any sub-layers.&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
Layer names can now be non-unique.&lt;br /&gt;
&lt;br /&gt;
Several layer-handling inconsistencies have been fixed.&lt;br /&gt;
&lt;br /&gt;
===Linked bitmaps===&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior is configurable.&lt;br /&gt;
&lt;br /&gt;
===Command for relinking clones===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
===Automatic relinking of clones on Duplicate===&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
===Pattern editing===&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Transform dialog: spacing out option===&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with &amp;quot;Apply to each object separately&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
===Converting text to path produces a group===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Combine works on groups===&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
===Path exclusion===&lt;br /&gt;
The Exclusion boolean operation can now operate on an arbitrary number of paths.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Inkscape Preferences dialog===&lt;br /&gt;
&lt;br /&gt;
* 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), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* '''Zoom correction factor''': the Interface tab has an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for 100% (original size) zoom.&lt;br /&gt;
&lt;br /&gt;
* The application's interface language can be set from the preferences dialog. You'll have to restart Inkscape to see the changes.&lt;br /&gt;
&lt;br /&gt;
===Toolbars===&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
===Clone/original visualization===&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.&lt;br /&gt;
* The file dialogs have two new entries in the File type list, All Bitmaps and All Vectors, allowing you to limit the listing to bitmap or vector formats only.&lt;br /&gt;
* In the Align and Distribute dialog there is now an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards).&lt;br /&gt;
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
* The Document Properties dialog now has a Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.&lt;br /&gt;
* 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 is difficult.&lt;br /&gt;
* Title and Description fields in the Object Properties dialog [sas]&lt;br /&gt;
* Interactivity attributes in the Object Properties dialog&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547]&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with e.g. pstoedit. [https://bugs.launchpad.net/inkscape/+bug/168370 bug #168370]&lt;br /&gt;
** Resizing the page adjusts viewBox. [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682]&lt;br /&gt;
** preserveAspectRatio parsing code fixed. [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885]&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite ''paths-data-10-t.svg'')&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
* Horizontally scrolling the canvas with a tilt wheel (present on several Logitech mice like the LX5) in the Bezier tool will no longer finish creating the path.&lt;br /&gt;
&lt;br /&gt;
* Various fixes to PS and PDF rendering of objects involving masks, patterns, and/or bitmaps. [https://bugs.launchpad.net/inkscape/+bug/208217 bug #208217], [https://bugs.launchpad.net/inkscape/+bug/217212 bug #217212].&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=48664</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=48664"/>
		<updated>2009-03-13T20:42:55Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.47==&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
==Refactoring effort==&lt;br /&gt;
&lt;br /&gt;
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 less bugs and more new features, because it will be easier to develop and find bugs in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Migration to lib2geom===&lt;br /&gt;
Many parts of the code have been changed to use the 2Geom library for geometrical calculations instead of the old libnr and Livarot libraries.&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the &amp;lt;code&amp;gt;Inkscape::Preferences&amp;lt;/code&amp;gt; singleton. It abstracts away the way the preferences are stored in memory. In fitire 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.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node tool===&lt;br /&gt;
&lt;br /&gt;
* When hovering over a path in the Node tool, the path's outline will be displayed for a short time. This effect, its duration and the color of the outline is configurable.&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* 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).&lt;br /&gt;
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
===Tweak tool===&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	attract/repel objects mode&lt;br /&gt;
 Shift+z, Shift+2	jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
===Calligraphy tool===&lt;br /&gt;
&lt;br /&gt;
* The tool's settings can now be saved and restored as presets.&lt;br /&gt;
&lt;br /&gt;
* When drawing with Alt pressed, Inkscape subtracts the path you have created from the selected path. With Shift, it unions with the selected path. This allows you to quickly patch or fix problems in a stroke you have drawn without leaving the tool.&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
** The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
** The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
===Paint Bucket tool===&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
===Eraser Tool===&lt;br /&gt;
A new eraser tool has been added. Its shortcut is Shift+E. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete Objects mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor. It acts on all objects in the current layer.&lt;br /&gt;
&lt;br /&gt;
===Pen and Pencil===&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Polyline mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when you drag with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial polyline mode''': In this mode, you can create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.&lt;br /&gt;
&lt;br /&gt;
====Pencil sketch mode====&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
===Text tool===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Path effects==&lt;br /&gt;
===Notable bug fixes and effect changes===&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applies the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].&lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized hatches, simulating a quick hand drawing.&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures. The segments of the shape are recursively replaced with copies of itself. This effect is a generalization of the [http://en.wikipedia.org/wiki/Koch_snowflake Koch snowflake].&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Angle bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects for groups===&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPEs, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects stacking===&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===PostScript and EPS import===&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
===PDF import from the command line===&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the import options dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
===PDF, PostScript, and EPS export===&lt;br /&gt;
&lt;br /&gt;
The new Cairo-based PS and EPS exporter provides a much better support for various vector features, including clipping paths, patterns, and non-ASCII characters. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, are by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
**Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
** The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
===CUniConvertor-based import import===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to import files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
* sK1 files&lt;br /&gt;
* Computer Graphics Metafiles (CGM)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
===HPGL export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
===JavaFX export===&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
===DXF export===&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
===PNG export===&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
==Autosave==&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
===New and improved effects===&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add printing marks''' extension add useful printing marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Render &amp;gt; Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and other options.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
* The new '''Render &amp;gt; Foldable Box''' extension helps to design and construct paper boxes.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Preset filters===&lt;br /&gt;
&lt;br /&gt;
The Filter Editor is powerful, but can be quite cumbersome. You can now add complex preset filters to the selected objects with a single command by choosing it from the new '''Filters''' top-level menu. Submenus categorize the filters by function or appearance. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
===''No Filters'' rendering mode===&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
===Filter quality setting===&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==SVG support==&lt;br /&gt;
&lt;br /&gt;
===Optimized CSS properties===&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
===Optimized path data===&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
===No more explicit closing line segment===&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
===Horizontal and vertical path segments===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;script&amp;gt; tag preserved===&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Initial SVG Fonts support===&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. Currently the main benefit of this feature is to improve the font design workflow when working with FontForge: you only need one file per font instead of one file per glyph.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
===SVG Test Suite Compliance===&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ 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 [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
==Editing Aids==&lt;br /&gt;
&lt;br /&gt;
===Grids===&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
===Guides===&lt;br /&gt;
&lt;br /&gt;
* Guides can now be rotated using the mouse. Each guide has an anchor that determines the point around which it rotates.&lt;br /&gt;
* There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone major changes to make it more reliable and easier to use from a developer's perspective. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error prone than the old Livarot library. This fixes at least two known snapping bugs.&lt;br /&gt;
&lt;br /&gt;
There is a new toolbar to control the snapping options and modes. Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar. To control some other new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* '''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&lt;br /&gt;
* '''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. &lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for &amp;quot;always snap&amp;quot; has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift key now also disables snapping while dragging node handles, and while creating single dots&lt;br /&gt;
* During constrained drawing (using Ctrl), Inkscape will now only snap to the points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while skewing or moving with a constraint (with Ctrl) has been improved.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also considers the following objects for snapping:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments&lt;br /&gt;
* Midpoints of bounding box edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth nodes&lt;br /&gt;
* Cusp nodes&lt;br /&gt;
* Each of the handle points when creating new shapes&lt;br /&gt;
* Radius handles of rectangles&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
===Spell checker===&lt;br /&gt;
&lt;br /&gt;
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text &amp;gt; 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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
document. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Desktop integration improvements===&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Themable Icons''' - all icons used in Inkscape are now themable using the standard freedesktop.org theming mechanism. The list of names used is available [[themable icons|here]].&lt;br /&gt;
&lt;br /&gt;
===Shell mode===&lt;br /&gt;
&lt;br /&gt;
TODO: if it is intended for scripts, why does it spam the console so much? It should only print anything when there are errors. --[[User:Tweenk|Tweenk]] 00:04, 27 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
===Gesture-based stroke width adjustment===&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
===Enhanced tablet support===&lt;br /&gt;
&lt;br /&gt;
====Input device tool switching====&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
====Extended input device configuration====&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
===Layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menu to allow for duplicating an existing layer with all of its objects (even hidden or locked objects) and any sub-layers.&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
Layer names can now be non-unique.&lt;br /&gt;
&lt;br /&gt;
Several layer-handling inconsistencies have been fixed.&lt;br /&gt;
&lt;br /&gt;
===Linked bitmaps===&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior is configurable.&lt;br /&gt;
&lt;br /&gt;
===Command for relinking clones===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
===Automatic relinking of clones on Duplicate===&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
===Pattern editing===&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Transform dialog: spacing out option===&lt;br /&gt;
&lt;br /&gt;
TODO: is this feature really useful? It will look like a bug. --[[User:Tweenk|Tweenk]] 00:04, 27 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with &amp;quot;Apply to each object separately&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
===Converting text to path produces a group===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Combine works on groups===&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
===Path exclusion===&lt;br /&gt;
The Exclusion boolean operation can now operate on an arbitrary number of paths.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Inkscape Preferences dialog===&lt;br /&gt;
&lt;br /&gt;
* 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), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* '''Zoom correction factor''': the Interface tab has an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for 100% (original size) zoom.&lt;br /&gt;
&lt;br /&gt;
* The application's interface language can be set from the preferences dialog. You'll have to restart Inkscape to see the changes.&lt;br /&gt;
&lt;br /&gt;
===Toolbars===&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
===Clone/original visualization===&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.&lt;br /&gt;
* The file dialogs have two new entries in the File type list, All Bitmaps and All Vectors, allowing you to limit the listing to bitmap or vector formats only.&lt;br /&gt;
* In the Align and Distribute dialog there is now an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards).&lt;br /&gt;
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
* The Document Properties dialog now has a Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.&lt;br /&gt;
* 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 is difficult.&lt;br /&gt;
* Title and Description fields in the Object Properties dialog [sas]&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547]&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with e.g. pstoedit. [https://bugs.launchpad.net/inkscape/+bug/168370 bug #168370]&lt;br /&gt;
** Resizing the page adjusts viewBox. [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682]&lt;br /&gt;
** preserveAspectRatio parsing code fixed. [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885]&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite ''paths-data-10-t.svg'')&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=48654</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=48654"/>
		<updated>2009-03-13T20:17:45Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Inkscape 0.47==&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
==Refactoring effort==&lt;br /&gt;
&lt;br /&gt;
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 less bugs and more new features, because it will be easier to develop and find bugs in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Migration to lib2geom===&lt;br /&gt;
Many parts of the code have been changed to use the 2Geom library for geometrical calculations instead of the old libnr and Livarot libraries.&lt;br /&gt;
&lt;br /&gt;
===Preferences===&lt;br /&gt;
Instead of global functions directly manipulating an XML document, the preferences API is now exposed through the &amp;lt;code&amp;gt;Inkscape::Preferences&amp;lt;/code&amp;gt; singleton. It abstracts away the way the preferences are stored in memory. In fitire 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.&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
&lt;br /&gt;
===Node tool===&lt;br /&gt;
&lt;br /&gt;
* When hovering over a path in the Node tool, the path's outline will be displayed for a short time. This effect, its duration and the color of the outline is configurable.&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* 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).&lt;br /&gt;
* The behavior of the buttons/shortcuts that make a node smooth or cusp has been improved:&lt;br /&gt;
** 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.&lt;br /&gt;
** 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
===Tweak tool===&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	attract/repel objects mode&lt;br /&gt;
 Shift+z, Shift+2	jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
===Calligraphy tool===&lt;br /&gt;
&lt;br /&gt;
* The tool's settings can now be saved and restored as presets.&lt;br /&gt;
&lt;br /&gt;
* When drawing with Alt pressed, Inkscape subtracts the path you have created from the selected path. With Shift, it unions with the selected path. This allows you to quickly patch or fix problems in a stroke you have drawn without leaving the tool.&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
** The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
** The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
** 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.&lt;br /&gt;
&lt;br /&gt;
===Paint Bucket tool===&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
===Eraser Tool===&lt;br /&gt;
A new eraser tool has been added. Its shortcut is Shift+E. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete Objects mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor. It acts on all objects in the current layer.&lt;br /&gt;
&lt;br /&gt;
===Pen and Pencil===&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Polyline mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when you drag with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial polyline mode''': In this mode, you can create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.&lt;br /&gt;
&lt;br /&gt;
====Pencil sketch mode====&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
===Text tool===&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Path effects==&lt;br /&gt;
===Notable bug fixes and effect changes===&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applies the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
===New effects===&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters lets you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].&lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized hatches, simulating a quick hand drawing.&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures. The segments of the shape are recursively replaced with copies of itself. This effect is a generalization of the [http://en.wikipedia.org/wiki/Koch_snowflake Koch snowflake].&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Angle bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows you to deform an object (or a group of objects) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
===New features===&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects for groups===&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPEs, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Live Path Effects stacking===&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
==Import/Export==&lt;br /&gt;
===PostScript and EPS import===&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
===PDF import from the command line===&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the import options dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
===PDF, PostScript, and EPS export===&lt;br /&gt;
&lt;br /&gt;
The new Cairo-based PS and EPS exporter provides a much better support for various vector features, including clipping paths, patterns, and non-ASCII characters. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, are by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
**Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
** The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
===CUniConvertor-based import import===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now use UniConvertor to import files of the following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
* sK1 files&lt;br /&gt;
* Computer Graphics Metafiles (CGM)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
===HPGL export===&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
===JavaFX export===&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
===DXF export===&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
===PNG export===&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
==Autosave==&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
===New and improved effects===&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add printing marks''' extension add useful printing marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Render &amp;gt; Calendar''' extension draws a calendar for a given year with localizable month/weekday names, colors, and other options.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
* The new '''Render &amp;gt; Foldable Box''' extension helps to design and construct paper boxes.&lt;br /&gt;
&lt;br /&gt;
===API changes===&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
==Filters==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Preset filters===&lt;br /&gt;
&lt;br /&gt;
The Filter Editor is powerful, but can be quite cumbersome. You can now add complex preset filters to the selected objects with a single command by choosing it from the new '''Filters''' top-level menu. Submenus categorize the filters by function or appearance. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
===''No Filters'' rendering mode===&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
===Filter quality setting===&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
==SVG support==&lt;br /&gt;
&lt;br /&gt;
===Optimized CSS properties===&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
===Optimized path data===&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
===No more explicit closing line segment===&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
===Horizontal and vertical path segments===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;script&amp;gt; tag preserved===&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
===Initial SVG Fonts support===&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
You can design fonts within Inkscape, but using them to render text on the canvas is not yet supported. Currently the main benefit of this feature is to improve the font design workflow when working with FontForge: you only need one file per font instead of one file per glyph.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
===SVG Test Suite Compliance===&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ 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 [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
==Editing Aids==&lt;br /&gt;
&lt;br /&gt;
===Grids===&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
===Guides===&lt;br /&gt;
&lt;br /&gt;
* Guides can now be rotated using the mouse. Each guide has an anchor that determines the point around which it rotates.&lt;br /&gt;
* There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
===Snapping===&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone major changes to make it more reliable and easier to use from a developer's perspective. Snapping to objects now invokes routines from the 2geom library, which is actively maintained and less error prone than the old Livarot library. This fixes at least two known snapping bugs.&lt;br /&gt;
&lt;br /&gt;
There is a new toolbar to control the snapping options and modes. Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar. To control some other new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* '''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&lt;br /&gt;
* '''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. &lt;br /&gt;
* 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.&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for &amp;quot;always snap&amp;quot; has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift key now also disables snapping while dragging node handles, and while creating single dots&lt;br /&gt;
* During constrained drawing (using Ctrl), Inkscape will now only snap to the points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while skewing or moving with a constraint (with Ctrl) has been improved.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also considers the following objects for snapping:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments&lt;br /&gt;
* Midpoints of bounding box edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth nodes&lt;br /&gt;
* Cusp nodes&lt;br /&gt;
* Each of the handle points when creating new shapes&lt;br /&gt;
* The radius handles of rectangles&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Other features==&lt;br /&gt;
&lt;br /&gt;
===Spell checker===&lt;br /&gt;
&lt;br /&gt;
There's now a built-in spell checker. Press '''Ctrl+Alt+K''' or choose ''Text &amp;gt; 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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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&lt;br /&gt;
document. &lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
===Desktop integration improvements===&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Themable Icons''' - all icons used in Inkscape are now themable using the standard freedesktop.org theming mechanism. The list of names used is available [[themable icons|here]].&lt;br /&gt;
&lt;br /&gt;
===Shell mode===&lt;br /&gt;
&lt;br /&gt;
TODO: if it is intended for scripts, why does it spam the console so much? It should only print anything when there are errors. --[[User:Tweenk|Tweenk]] 00:04, 27 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
===Gesture-based stroke width adjustment===&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
===Enhanced tablet support===&lt;br /&gt;
&lt;br /&gt;
====Input device tool switching====&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
====Extended input device configuration====&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
===Layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menu to allow for duplicating an existing layer with all of its objects (even hidden or locked objects) and any sub-layers.&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
Layer names can now be non-unique.&lt;br /&gt;
&lt;br /&gt;
Several layer-handling inconsistencies have been fixed.&lt;br /&gt;
&lt;br /&gt;
===Linked bitmaps===&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior is configurable.&lt;br /&gt;
&lt;br /&gt;
===Command for relinking clones===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
===Automatic relinking of clones on Duplicate===&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
===Pattern editing===&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
===Transform dialog: spacing out option===&lt;br /&gt;
&lt;br /&gt;
TODO: is this feature really useful? It will look like a bug. --[[User:Tweenk|Tweenk]] 00:04, 27 February 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by x = 5 px with &amp;quot;Apply to each object separately&amp;quot; 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).&lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
===Converting text to path produces a group===&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
===Combine works on groups===&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
===Path exclusion===&lt;br /&gt;
The Exclusion boolean operation can now operate on an arbitrary number of paths.&lt;br /&gt;
&lt;br /&gt;
==User interface==&lt;br /&gt;
&lt;br /&gt;
===Inkscape Preferences dialog===&lt;br /&gt;
&lt;br /&gt;
* 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), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* '''Zoom correction factor''': the Interface tab has an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. This is used as a reference point for 100% (original size) zoom.&lt;br /&gt;
&lt;br /&gt;
* The application's interface language can be set from the preferences dialog. You'll have to restart Inkscape to see the changes.&lt;br /&gt;
&lt;br /&gt;
===Toolbars===&lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
* 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.&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
===Clone/original visualization===&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
* The Windows builds of Inkscape now have Windows-native file dialogs to keep consistency with other Windows applications.&lt;br /&gt;
* The file dialogs have two new entries in the File type list, All Bitmaps and All Vectors, allowing you to limit the listing to bitmap or vector formats only.&lt;br /&gt;
* In the Align and Distribute dialog there is now an option to treat all selected objects as a group when aligning. This spares the trouble of manually grouping them, aligning, and ungrouping afterwards).&lt;br /&gt;
* The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
* The Document Properties dialog now has a Color Management tab. In this new tab, you can declare multiple ICC color profiles for the current document.&lt;br /&gt;
* 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 is difficult.&lt;br /&gt;
* Title and Description fields in the Object Properties dialog [sas]&lt;br /&gt;
&lt;br /&gt;
==Notable bug fixes==&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. [https://bugs.launchpad.net/inkscape/+bug/252547 bug #252547]&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* Several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with e.g. pstoedit. [https://bugs.launchpad.net/inkscape/+bug/168370 bug #168370]&lt;br /&gt;
** Resizing the page adjusts viewBox. [https://bugs.launchpad.net/inkscape/+bug/167682 bug #167682]&lt;br /&gt;
** preserveAspectRatio parsing code fixed. [https://bugs.launchpad.net/inkscape/+bug/166885 bug #166885]&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite ''paths-data-10-t.svg'')&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
==Previous releases==&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Debugging_Inkscape&amp;diff=46714</id>
		<title>Debugging Inkscape</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Debugging_Inkscape&amp;diff=46714"/>
		<updated>2009-02-14T19:56:50Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Debugging Tips for Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* If you're hunting down a GTK warning, you can set a breakpoint in gdb for &amp;quot;g_logv&amp;quot; so you can capture a backtrace.  (&amp;quot;br g_logv&amp;quot;, &amp;quot;run&amp;quot;, &amp;quot;bt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* gdb can catch &amp;lt;b&amp;gt;throwing of an exception&amp;lt;/b&amp;gt;. Type: &amp;quot;catch throw&amp;quot; and gdb will stop execution at the point of where the exception is thrown, without unwinding the stack, so you can get a backtrace!&lt;br /&gt;
&lt;br /&gt;
* Bug list&lt;br /&gt;
- w32 version asks for (that crappy) Verdana typeface (which is not the most usual w32 typeface, also some users have deleted it to save disk space)&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for OS X ==&lt;br /&gt;
&lt;br /&gt;
When running the .app package for OS X, it can be difficult to get a backtrace because the application binary is launched through another application and 2 scripts.  One way to get a backtrace is:&lt;br /&gt;
* Add '-g' to $CFLAGS in your build script before building.&lt;br /&gt;
* Remove the signal() calls (&amp;lt;code&amp;gt;segv_handler = signal (SIGSEGV,... &amp;lt;/code&amp;gt;) ) in inkscape_application_init() in src/inkscape.cpp.&lt;br /&gt;
* In the Resources/bin/inkscpe script, change the last line from:&lt;br /&gt;
     &amp;lt;code&amp;gt;exec &amp;quot;$CWD/inkscape-bin&amp;quot; &amp;quot;$@&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
    to:&lt;br /&gt;
     &amp;lt;code&amp;gt;exec &amp;quot;/usr/bin/gdb&amp;quot; &amp;quot;stuff/inkscape-bin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build and package the app (see [[CompilingMacOsX]]).&lt;br /&gt;
* Run the application in Terminal:&lt;br /&gt;
     &amp;lt;code&amp;gt;&lt;br /&gt;
     $ cd packaging/macosx&lt;br /&gt;
     $ Inkscape.app/Contents/MacOS/Inkscape&lt;br /&gt;
     ...&lt;br /&gt;
     (gdb) run&lt;br /&gt;
     &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for Windows ==&lt;br /&gt;
&lt;br /&gt;
First, have a look at the [[Using Eclipse]] page for how to use that program on Windows to debug Inkscape.&lt;br /&gt;
&lt;br /&gt;
Second, make use of the '''View &amp;gt; Messages...''' dialog from within the program.  Capturing the log here will show you messages printed with g_message(), g_warning(), and g_error()..&lt;br /&gt;
&lt;br /&gt;
Finally, look into [http://wiki.inkscape.org/wiki/index.php/FAQ#I.27m_on_Windows.2C_and_command_line_parameters_don.27t_seem_to_work.21 how to compile Inkscape as a command line app] so you can capture debug messages at the prompt, more like you would do in Linux.&lt;br /&gt;
&lt;br /&gt;
===How Johan works===&lt;br /&gt;
Of course I am always compiling with [http://wiki.inkscape.org/wiki/index.php/FAQ#I.27m_on_Windows.2C_and_command_line_parameters_don.27t_seem_to_work.21 -mconsole, instead of -mwindows]. I don't compile with -g or any other extra flags. This is unnecessary and reduces build times &amp;lt;i&amp;gt;significantly&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example for crashes, usually I add g_message(&amp;quot;blah&amp;quot;) to the code to see where the execution of code goes and to see on which line things break:&lt;br /&gt;
&lt;br /&gt;
    g_message(&amp;quot;1&amp;quot;);&lt;br /&gt;
    some_piece_of_code1();&lt;br /&gt;
    g_message(&amp;quot;2&amp;quot;);&lt;br /&gt;
    some_piece_of_code2();&lt;br /&gt;
    g_message(&amp;quot;3&amp;quot;);&lt;br /&gt;
    some_piece_of_code3();&lt;br /&gt;
    g_message(&amp;quot;4&amp;quot;);&lt;br /&gt;
    some_piece_of_code4();&lt;br /&gt;
    g_message(&amp;quot;5&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If I see the message &amp;quot;2&amp;quot; but not &amp;quot;3&amp;quot; I know the crash happened in  some_piece_of_code2.&lt;br /&gt;
&lt;br /&gt;
I also use GDB to get backtraces. Again, don't compile with -g. Not necessary at all! One of the problems with running Inkscape in gdb is that you cannot open a file with the file dialog: Inkscape will hang. I don't know the reason, but I do know a solution! Open the file through Inkscape's cmdline parameters:&lt;br /&gt;
&lt;br /&gt;
     D:\Inkscape\inkscape&amp;gt;gdb&lt;br /&gt;
     GNU gdb 6.6&lt;br /&gt;
     Copyright (C) 2006 Free Software Foundation, Inc.&lt;br /&gt;
     GDB is free software, covered by the GNU General Public License, and you are&lt;br /&gt;
     welcome to change it and/or distribute copies of it under certain conditions.&lt;br /&gt;
     Type &amp;quot;show copying&amp;quot; to see the conditions.&lt;br /&gt;
     There is absolutely no warranty for GDB.  Type &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
     This GDB was configured as &amp;quot;i686-pc-mingw32&amp;quot;.&lt;br /&gt;
     (gdb) file inkscape.exe inkscape.dbg&lt;br /&gt;
     Reading symbols from D:\Inkscape\inkscape/inkscape.exe...(no debugging symbols found)...done.&lt;br /&gt;
     Reading symbols from D:\Inkscape\inkscape/inkscape.dbg...done.&lt;br /&gt;
     (gdb) run Tekening.svg&lt;br /&gt;
     Starting program: D:\Inkscape\inkscape/inkscape.exe Tekening.svg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example of how to fix a bug===&lt;br /&gt;
See this bugreport:&lt;br /&gt;
https://bugs.launchpad.net/inkscape/+bug/169135&lt;br /&gt;
&lt;br /&gt;
I started gdb like above. And then I saw this:&lt;br /&gt;
    Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
    0x005c94ec in Inkscape::UI::Widget::Scalar::setValue ()&lt;br /&gt;
    (gdb) bt&lt;br /&gt;
    #0  0x005c94ec in Inkscape::UI::Widget::Scalar::setValue ()&lt;br /&gt;
    #1  0x0044fc11 in Inkscape::CanvasXYGrid::readRepr ()&lt;br /&gt;
    #2  0x0044de22 in Inkscape::CanvasXYGrid::onReprAttrChanged ()&lt;br /&gt;
&lt;br /&gt;
The crashing piece of code looked like this:&lt;br /&gt;
&lt;br /&gt;
   void Scalar::setValue(double value)&lt;br /&gt;
   {&lt;br /&gt;
       g_assert(_widget != NULL);&lt;br /&gt;
       setProgrammatically = true; // callback is supposed to reset back, if it cares&lt;br /&gt;
       static_cast&amp;lt;Gtk::SpinButton*&amp;gt;(_widget)-&amp;gt;set_value(value);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Nothing much can crash there, the assert checks that _widget is not NULL, and then the cast is valid aswell. So what crashed? What happens is that the setValue method is called for an object that does not exist. _widget is not NULL, but &amp;quot;this&amp;quot; is! this-&amp;gt;_widget would crash. g_assert (this != NULL) would give an assertion message. (checked by adding  &amp;quot;    if (this==NULL) g_message(&amp;quot;ja hoor&amp;quot;);  &amp;quot; )&lt;br /&gt;
&lt;br /&gt;
It is absurd to check for &amp;quot;this&amp;quot; to be non-NULL at the start of every method, so the bug is not in this method but in the function calling it! That's why we turn our attention to Inkscape::CanvasXYGrid::readRepr ().&lt;br /&gt;
&lt;br /&gt;
readRepr is long, but we only have to look where it does something with a Scalar widget. It's the validateScalar functions. When we comment those out, the bug is solved. (it causes another bug with the specific SVG file, where Inkscape hangs when the grid spacing equals zero. validateScalar used to check for that...)&lt;br /&gt;
The strange thing is that the widgets are all created and initialized in the constructor of CanvasXYGrid. So perhaps readRepr is being called *during* construction of CanvasXYGrid, while the Scalar widget is still invalid? Using the g_message tip above I found out that the problem code was:&lt;br /&gt;
        sutemp = _rsu_sx.getSU();&lt;br /&gt;
   g_message(&amp;quot;CanvasXYGrid 1&amp;quot;);&lt;br /&gt;
        sutemp-&amp;gt;setDigits(4);&lt;br /&gt;
   g_message(&amp;quot;CanvasXYGrid 2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Researching the setDigits path, I could not find a bug. Then it hit me: _rsu_sx is initialized, then readRepr is called, but this is &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; _rsu_sy is initialized. Then&lt;br /&gt;
&lt;br /&gt;
    void RegisteredScalarUnit::setValue (double val)&lt;br /&gt;
    {&lt;br /&gt;
        _widget-&amp;gt;setValue (val);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
is called, but _widget is still NULL, hence the crash.&lt;br /&gt;
As usual, the fix is easy:&lt;br /&gt;
    void RegisteredScalarUnit::setValue (double val)&lt;br /&gt;
    {&lt;br /&gt;
        if (_widget)&lt;br /&gt;
            _widget-&amp;gt;setValue (val);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Don't forget to fix the setValue methods of the other Registered widgets!!!&lt;br /&gt;
&lt;br /&gt;
The fix can be seen in [http://inkscape.svn.sourceforge.net/viewvc/inkscape?view=rev&amp;amp;revision=16544 SVN revision 16544]. &lt;br /&gt;
&lt;br /&gt;
===Problems running GDB===&lt;br /&gt;
From an inexperienced user of GDB just trying to get backtraces, here is a tip I found running gdb.&lt;br /&gt;
&lt;br /&gt;
I simply downloaded the latest version of Inkscape Dev full debug, extracted to a directory and ran gdb exactly as above from within the directory, only changing the name of the svg file.&lt;br /&gt;
&lt;br /&gt;
Everything went exactly as above for &amp;quot;file inkscape.exe inkscape.dbg&amp;quot;, however after executing the &amp;quot;run {filename.svg}&amp;quot; command, I received the following message;&lt;br /&gt;
     Program received signal SIGSEV, Segmentation fault.&lt;br /&gt;
     0x03de8cf1 in xslDebugStatus ()&lt;br /&gt;
&lt;br /&gt;
This has stumped me once before, but this time I checked out the help menus, and found under &amp;quot;help running&amp;quot; that I could simply type &amp;quot;continue&amp;quot;. I figured that xslDebugStatus was nothing to do with the Inkscape program itself, but more to do with gdb, and after typing &amp;quot;continue&amp;quot; it seems to run Inkscape under gdb as normal, allowing backtraces.&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for Linux ==&lt;br /&gt;
&lt;br /&gt;
Debugging Inkscape on Linux is most easily done using Eclipse (or any other IDE). When however a breakpoint is reached while Inkscape is handling events (or something like that), then X will stop responding. If you want to debug in such a case then you'll have to use gdb from the console. In Fedora 10 you'll get to the console when pressing ctrl-alt-F5. Now enter&lt;br /&gt;
     declare -x DISPLAY=&amp;quot;:0&amp;quot;&lt;br /&gt;
and startup gdb to load Inkscape and the debugging symbols, set your breakpoints, and start Inkscape. Now you can switch back to X (ctrl-alt-F1) and interact with Inkscape. When Inkscape stops responding because it hit a breakpoint, switch back to the console and do your debugging.&lt;br /&gt;
&lt;br /&gt;
If you happen to run into some issues with one of the Gtk+ libraries and want to step through its code using the debugger, you will have to install its debugging symbols. For Fedora 10 you can simply enable the fedora-debuginfo repository in /etc/yum.repos.d/fedora.repo and then use yum to install for example the &amp;quot;gtk2-debuginfo&amp;quot; and &amp;quot;glib-debuginfo&amp;quot; package. For other distros you'll find some usefull information here:&lt;br /&gt;
     http://live.gnome.org/GettingTraces/DistroSpecificInstructions&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Debugging_Inkscape&amp;diff=46704</id>
		<title>Debugging Inkscape</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Debugging_Inkscape&amp;diff=46704"/>
		<updated>2009-02-14T19:56:12Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Debugging Tips for Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* If you're hunting down a GTK warning, you can set a breakpoint in gdb for &amp;quot;g_logv&amp;quot; so you can capture a backtrace.  (&amp;quot;br g_logv&amp;quot;, &amp;quot;run&amp;quot;, &amp;quot;bt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* gdb can catch &amp;lt;b&amp;gt;throwing of an exception&amp;lt;/b&amp;gt;. Type: &amp;quot;catch throw&amp;quot; and gdb will stop execution at the point of where the exception is thrown, without unwinding the stack, so you can get a backtrace!&lt;br /&gt;
&lt;br /&gt;
* Bug list&lt;br /&gt;
- w32 version asks for (that crappy) Verdana typeface (which is not the most usual w32 typeface, also some users have deleted it to save disk space)&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for OS X ==&lt;br /&gt;
&lt;br /&gt;
When running the .app package for OS X, it can be difficult to get a backtrace because the application binary is launched through another application and 2 scripts.  One way to get a backtrace is:&lt;br /&gt;
* Add '-g' to $CFLAGS in your build script before building.&lt;br /&gt;
* Remove the signal() calls (&amp;lt;code&amp;gt;segv_handler = signal (SIGSEGV,... &amp;lt;/code&amp;gt;) ) in inkscape_application_init() in src/inkscape.cpp.&lt;br /&gt;
* In the Resources/bin/inkscpe script, change the last line from:&lt;br /&gt;
     &amp;lt;code&amp;gt;exec &amp;quot;$CWD/inkscape-bin&amp;quot; &amp;quot;$@&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
    to:&lt;br /&gt;
     &amp;lt;code&amp;gt;exec &amp;quot;/usr/bin/gdb&amp;quot; &amp;quot;stuff/inkscape-bin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build and package the app (see [[CompilingMacOsX]]).&lt;br /&gt;
* Run the application in Terminal:&lt;br /&gt;
     &amp;lt;code&amp;gt;&lt;br /&gt;
     $ cd packaging/macosx&lt;br /&gt;
     $ Inkscape.app/Contents/MacOS/Inkscape&lt;br /&gt;
     ...&lt;br /&gt;
     (gdb) run&lt;br /&gt;
     &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for Windows ==&lt;br /&gt;
&lt;br /&gt;
First, have a look at the [[Using Eclipse]] page for how to use that program on Windows to debug Inkscape.&lt;br /&gt;
&lt;br /&gt;
Second, make use of the '''View &amp;gt; Messages...''' dialog from within the program.  Capturing the log here will show you messages printed with g_message(), g_warning(), and g_error()..&lt;br /&gt;
&lt;br /&gt;
Finally, look into [http://wiki.inkscape.org/wiki/index.php/FAQ#I.27m_on_Windows.2C_and_command_line_parameters_don.27t_seem_to_work.21 how to compile Inkscape as a command line app] so you can capture debug messages at the prompt, more like you would do in Linux.&lt;br /&gt;
&lt;br /&gt;
===How Johan works===&lt;br /&gt;
Of course I am always compiling with [http://wiki.inkscape.org/wiki/index.php/FAQ#I.27m_on_Windows.2C_and_command_line_parameters_don.27t_seem_to_work.21 -mconsole, instead of -mwindows]. I don't compile with -g or any other extra flags. This is unnecessary and reduces build times &amp;lt;i&amp;gt;significantly&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example for crashes, usually I add g_message(&amp;quot;blah&amp;quot;) to the code to see where the execution of code goes and to see on which line things break:&lt;br /&gt;
&lt;br /&gt;
    g_message(&amp;quot;1&amp;quot;);&lt;br /&gt;
    some_piece_of_code1();&lt;br /&gt;
    g_message(&amp;quot;2&amp;quot;);&lt;br /&gt;
    some_piece_of_code2();&lt;br /&gt;
    g_message(&amp;quot;3&amp;quot;);&lt;br /&gt;
    some_piece_of_code3();&lt;br /&gt;
    g_message(&amp;quot;4&amp;quot;);&lt;br /&gt;
    some_piece_of_code4();&lt;br /&gt;
    g_message(&amp;quot;5&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If I see the message &amp;quot;2&amp;quot; but not &amp;quot;3&amp;quot; I know the crash happened in  some_piece_of_code2.&lt;br /&gt;
&lt;br /&gt;
I also use GDB to get backtraces. Again, don't compile with -g. Not necessary at all! One of the problems with running Inkscape in gdb is that you cannot open a file with the file dialog: Inkscape will hang. I don't know the reason, but I do know a solution! Open the file through Inkscape's cmdline parameters:&lt;br /&gt;
&lt;br /&gt;
     D:\Inkscape\inkscape&amp;gt;gdb&lt;br /&gt;
     GNU gdb 6.6&lt;br /&gt;
     Copyright (C) 2006 Free Software Foundation, Inc.&lt;br /&gt;
     GDB is free software, covered by the GNU General Public License, and you are&lt;br /&gt;
     welcome to change it and/or distribute copies of it under certain conditions.&lt;br /&gt;
     Type &amp;quot;show copying&amp;quot; to see the conditions.&lt;br /&gt;
     There is absolutely no warranty for GDB.  Type &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
     This GDB was configured as &amp;quot;i686-pc-mingw32&amp;quot;.&lt;br /&gt;
     (gdb) file inkscape.exe inkscape.dbg&lt;br /&gt;
     Reading symbols from D:\Inkscape\inkscape/inkscape.exe...(no debugging symbols found)...done.&lt;br /&gt;
     Reading symbols from D:\Inkscape\inkscape/inkscape.dbg...done.&lt;br /&gt;
     (gdb) run Tekening.svg&lt;br /&gt;
     Starting program: D:\Inkscape\inkscape/inkscape.exe Tekening.svg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example of how to fix a bug===&lt;br /&gt;
See this bugreport:&lt;br /&gt;
https://bugs.launchpad.net/inkscape/+bug/169135&lt;br /&gt;
&lt;br /&gt;
I started gdb like above. And then I saw this:&lt;br /&gt;
    Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
    0x005c94ec in Inkscape::UI::Widget::Scalar::setValue ()&lt;br /&gt;
    (gdb) bt&lt;br /&gt;
    #0  0x005c94ec in Inkscape::UI::Widget::Scalar::setValue ()&lt;br /&gt;
    #1  0x0044fc11 in Inkscape::CanvasXYGrid::readRepr ()&lt;br /&gt;
    #2  0x0044de22 in Inkscape::CanvasXYGrid::onReprAttrChanged ()&lt;br /&gt;
&lt;br /&gt;
The crashing piece of code looked like this:&lt;br /&gt;
&lt;br /&gt;
   void Scalar::setValue(double value)&lt;br /&gt;
   {&lt;br /&gt;
       g_assert(_widget != NULL);&lt;br /&gt;
       setProgrammatically = true; // callback is supposed to reset back, if it cares&lt;br /&gt;
       static_cast&amp;lt;Gtk::SpinButton*&amp;gt;(_widget)-&amp;gt;set_value(value);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Nothing much can crash there, the assert checks that _widget is not NULL, and then the cast is valid aswell. So what crashed? What happens is that the setValue method is called for an object that does not exist. _widget is not NULL, but &amp;quot;this&amp;quot; is! this-&amp;gt;_widget would crash. g_assert (this != NULL) would give an assertion message. (checked by adding  &amp;quot;    if (this==NULL) g_message(&amp;quot;ja hoor&amp;quot;);  &amp;quot; )&lt;br /&gt;
&lt;br /&gt;
It is absurd to check for &amp;quot;this&amp;quot; to be non-NULL at the start of every method, so the bug is not in this method but in the function calling it! That's why we turn our attention to Inkscape::CanvasXYGrid::readRepr ().&lt;br /&gt;
&lt;br /&gt;
readRepr is long, but we only have to look where it does something with a Scalar widget. It's the validateScalar functions. When we comment those out, the bug is solved. (it causes another bug with the specific SVG file, where Inkscape hangs when the grid spacing equals zero. validateScalar used to check for that...)&lt;br /&gt;
The strange thing is that the widgets are all created and initialized in the constructor of CanvasXYGrid. So perhaps readRepr is being called *during* construction of CanvasXYGrid, while the Scalar widget is still invalid? Using the g_message tip above I found out that the problem code was:&lt;br /&gt;
        sutemp = _rsu_sx.getSU();&lt;br /&gt;
   g_message(&amp;quot;CanvasXYGrid 1&amp;quot;);&lt;br /&gt;
        sutemp-&amp;gt;setDigits(4);&lt;br /&gt;
   g_message(&amp;quot;CanvasXYGrid 2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Researching the setDigits path, I could not find a bug. Then it hit me: _rsu_sx is initialized, then readRepr is called, but this is &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; _rsu_sy is initialized. Then&lt;br /&gt;
&lt;br /&gt;
    void RegisteredScalarUnit::setValue (double val)&lt;br /&gt;
    {&lt;br /&gt;
        _widget-&amp;gt;setValue (val);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
is called, but _widget is still NULL, hence the crash.&lt;br /&gt;
As usual, the fix is easy:&lt;br /&gt;
    void RegisteredScalarUnit::setValue (double val)&lt;br /&gt;
    {&lt;br /&gt;
        if (_widget)&lt;br /&gt;
            _widget-&amp;gt;setValue (val);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Don't forget to fix the setValue methods of the other Registered widgets!!!&lt;br /&gt;
&lt;br /&gt;
The fix can be seen in [http://inkscape.svn.sourceforge.net/viewvc/inkscape?view=rev&amp;amp;revision=16544 SVN revision 16544]. &lt;br /&gt;
&lt;br /&gt;
===Problems running GDB===&lt;br /&gt;
From an inexperienced user of GDB just trying to get backtraces, here is a tip I found running gdb.&lt;br /&gt;
&lt;br /&gt;
I simply downloaded the latest version of Inkscape Dev full debug, extracted to a directory and ran gdb exactly as above from within the directory, only changing the name of the svg file.&lt;br /&gt;
&lt;br /&gt;
Everything went exactly as above for &amp;quot;file inkscape.exe inkscape.dbg&amp;quot;, however after executing the &amp;quot;run {filename.svg}&amp;quot; command, I received the following message;&lt;br /&gt;
     Program received signal SIGSEV, Segmentation fault.&lt;br /&gt;
     0x03de8cf1 in xslDebugStatus ()&lt;br /&gt;
&lt;br /&gt;
This has stumped me once before, but this time I checked out the help menus, and found under &amp;quot;help running&amp;quot; that I could simply type &amp;quot;continue&amp;quot;. I figured that xslDebugStatus was nothing to do with the Inkscape program itself, but more to do with gdb, and after typing &amp;quot;continue&amp;quot; it seems to run Inkscape under gdb as normal, allowing backtraces.&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for Linux ==&lt;br /&gt;
&lt;br /&gt;
Debugging Inkscape on Linux is most easily done using Eclipse (or any other IDE). When however a breakpoint is reached while Inkscape is handling events (or something like that), then X will stop responding. If you want to debug in such a case then you'll have to use gdb from the console. In Fedora 10 you'll get to the console when pressing ctrl-alt-F5. Now enter&lt;br /&gt;
     declare -x DISPLAY=&amp;quot;:0&amp;quot;&lt;br /&gt;
and startup gdb to load Inkscape and the debugging symbols, set your breakpoints, and start Inkscape. Now you can switch back to X (ctrl-alt-F1) and interact with Inkscape. When Inkscape stops responding because it hit a breakpoint, switch back to the console and do your debugging.&lt;br /&gt;
&lt;br /&gt;
If you happen to run into some issues with one of the Gtk+ libraries and want to step through its code using the debugger, you will have to install their debugging symbols. For Fedora 10 you can simply enable the fedora-debuginfo repository in /etc/yum.repos.d/fedora.repo and then use yum to install for example the &amp;quot;gtk2-debuginfo&amp;quot; and &amp;quot;glib-debuginfo&amp;quot; package. For other distros you'll find some usefull information here:&lt;br /&gt;
     http://live.gnome.org/GettingTraces/DistroSpecificInstructions&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Debugging_Inkscape&amp;diff=46694</id>
		<title>Debugging Inkscape</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Debugging_Inkscape&amp;diff=46694"/>
		<updated>2009-02-14T13:31:53Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* If you're hunting down a GTK warning, you can set a breakpoint in gdb for &amp;quot;g_logv&amp;quot; so you can capture a backtrace.  (&amp;quot;br g_logv&amp;quot;, &amp;quot;run&amp;quot;, &amp;quot;bt&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* gdb can catch &amp;lt;b&amp;gt;throwing of an exception&amp;lt;/b&amp;gt;. Type: &amp;quot;catch throw&amp;quot; and gdb will stop execution at the point of where the exception is thrown, without unwinding the stack, so you can get a backtrace!&lt;br /&gt;
&lt;br /&gt;
* Bug list&lt;br /&gt;
- w32 version asks for (that crappy) Verdana typeface (which is not the most usual w32 typeface, also some users have deleted it to save disk space)&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for OS X ==&lt;br /&gt;
&lt;br /&gt;
When running the .app package for OS X, it can be difficult to get a backtrace because the application binary is launched through another application and 2 scripts.  One way to get a backtrace is:&lt;br /&gt;
* Add '-g' to $CFLAGS in your build script before building.&lt;br /&gt;
* Remove the signal() calls (&amp;lt;code&amp;gt;segv_handler = signal (SIGSEGV,... &amp;lt;/code&amp;gt;) ) in inkscape_application_init() in src/inkscape.cpp.&lt;br /&gt;
* In the Resources/bin/inkscpe script, change the last line from:&lt;br /&gt;
     &amp;lt;code&amp;gt;exec &amp;quot;$CWD/inkscape-bin&amp;quot; &amp;quot;$@&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
    to:&lt;br /&gt;
     &amp;lt;code&amp;gt;exec &amp;quot;/usr/bin/gdb&amp;quot; &amp;quot;stuff/inkscape-bin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build and package the app (see [[CompilingMacOsX]]).&lt;br /&gt;
* Run the application in Terminal:&lt;br /&gt;
     &amp;lt;code&amp;gt;&lt;br /&gt;
     $ cd packaging/macosx&lt;br /&gt;
     $ Inkscape.app/Contents/MacOS/Inkscape&lt;br /&gt;
     ...&lt;br /&gt;
     (gdb) run&lt;br /&gt;
     &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for Windows ==&lt;br /&gt;
&lt;br /&gt;
First, have a look at the [[Using Eclipse]] page for how to use that program on Windows to debug Inkscape.&lt;br /&gt;
&lt;br /&gt;
Second, make use of the '''View &amp;gt; Messages...''' dialog from within the program.  Capturing the log here will show you messages printed with g_message(), g_warning(), and g_error()..&lt;br /&gt;
&lt;br /&gt;
Finally, look into [http://wiki.inkscape.org/wiki/index.php/FAQ#I.27m_on_Windows.2C_and_command_line_parameters_don.27t_seem_to_work.21 how to compile Inkscape as a command line app] so you can capture debug messages at the prompt, more like you would do in Linux.&lt;br /&gt;
&lt;br /&gt;
===How Johan works===&lt;br /&gt;
Of course I am always compiling with [http://wiki.inkscape.org/wiki/index.php/FAQ#I.27m_on_Windows.2C_and_command_line_parameters_don.27t_seem_to_work.21 -mconsole, instead of -mwindows]. I don't compile with -g or any other extra flags. This is unnecessary and reduces build times &amp;lt;i&amp;gt;significantly&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For example for crashes, usually I add g_message(&amp;quot;blah&amp;quot;) to the code to see where the execution of code goes and to see on which line things break:&lt;br /&gt;
&lt;br /&gt;
    g_message(&amp;quot;1&amp;quot;);&lt;br /&gt;
    some_piece_of_code1();&lt;br /&gt;
    g_message(&amp;quot;2&amp;quot;);&lt;br /&gt;
    some_piece_of_code2();&lt;br /&gt;
    g_message(&amp;quot;3&amp;quot;);&lt;br /&gt;
    some_piece_of_code3();&lt;br /&gt;
    g_message(&amp;quot;4&amp;quot;);&lt;br /&gt;
    some_piece_of_code4();&lt;br /&gt;
    g_message(&amp;quot;5&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
If I see the message &amp;quot;2&amp;quot; but not &amp;quot;3&amp;quot; I know the crash happened in  some_piece_of_code2.&lt;br /&gt;
&lt;br /&gt;
I also use GDB to get backtraces. Again, don't compile with -g. Not necessary at all! One of the problems with running Inkscape in gdb is that you cannot open a file with the file dialog: Inkscape will hang. I don't know the reason, but I do know a solution! Open the file through Inkscape's cmdline parameters:&lt;br /&gt;
&lt;br /&gt;
     D:\Inkscape\inkscape&amp;gt;gdb&lt;br /&gt;
     GNU gdb 6.6&lt;br /&gt;
     Copyright (C) 2006 Free Software Foundation, Inc.&lt;br /&gt;
     GDB is free software, covered by the GNU General Public License, and you are&lt;br /&gt;
     welcome to change it and/or distribute copies of it under certain conditions.&lt;br /&gt;
     Type &amp;quot;show copying&amp;quot; to see the conditions.&lt;br /&gt;
     There is absolutely no warranty for GDB.  Type &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
     This GDB was configured as &amp;quot;i686-pc-mingw32&amp;quot;.&lt;br /&gt;
     (gdb) file inkscape.exe inkscape.dbg&lt;br /&gt;
     Reading symbols from D:\Inkscape\inkscape/inkscape.exe...(no debugging symbols found)...done.&lt;br /&gt;
     Reading symbols from D:\Inkscape\inkscape/inkscape.dbg...done.&lt;br /&gt;
     (gdb) run Tekening.svg&lt;br /&gt;
     Starting program: D:\Inkscape\inkscape/inkscape.exe Tekening.svg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Example of how to fix a bug===&lt;br /&gt;
See this bugreport:&lt;br /&gt;
https://bugs.launchpad.net/inkscape/+bug/169135&lt;br /&gt;
&lt;br /&gt;
I started gdb like above. And then I saw this:&lt;br /&gt;
    Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
    0x005c94ec in Inkscape::UI::Widget::Scalar::setValue ()&lt;br /&gt;
    (gdb) bt&lt;br /&gt;
    #0  0x005c94ec in Inkscape::UI::Widget::Scalar::setValue ()&lt;br /&gt;
    #1  0x0044fc11 in Inkscape::CanvasXYGrid::readRepr ()&lt;br /&gt;
    #2  0x0044de22 in Inkscape::CanvasXYGrid::onReprAttrChanged ()&lt;br /&gt;
&lt;br /&gt;
The crashing piece of code looked like this:&lt;br /&gt;
&lt;br /&gt;
   void Scalar::setValue(double value)&lt;br /&gt;
   {&lt;br /&gt;
       g_assert(_widget != NULL);&lt;br /&gt;
       setProgrammatically = true; // callback is supposed to reset back, if it cares&lt;br /&gt;
       static_cast&amp;lt;Gtk::SpinButton*&amp;gt;(_widget)-&amp;gt;set_value(value);&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
Nothing much can crash there, the assert checks that _widget is not NULL, and then the cast is valid aswell. So what crashed? What happens is that the setValue method is called for an object that does not exist. _widget is not NULL, but &amp;quot;this&amp;quot; is! this-&amp;gt;_widget would crash. g_assert (this != NULL) would give an assertion message. (checked by adding  &amp;quot;    if (this==NULL) g_message(&amp;quot;ja hoor&amp;quot;);  &amp;quot; )&lt;br /&gt;
&lt;br /&gt;
It is absurd to check for &amp;quot;this&amp;quot; to be non-NULL at the start of every method, so the bug is not in this method but in the function calling it! That's why we turn our attention to Inkscape::CanvasXYGrid::readRepr ().&lt;br /&gt;
&lt;br /&gt;
readRepr is long, but we only have to look where it does something with a Scalar widget. It's the validateScalar functions. When we comment those out, the bug is solved. (it causes another bug with the specific SVG file, where Inkscape hangs when the grid spacing equals zero. validateScalar used to check for that...)&lt;br /&gt;
The strange thing is that the widgets are all created and initialized in the constructor of CanvasXYGrid. So perhaps readRepr is being called *during* construction of CanvasXYGrid, while the Scalar widget is still invalid? Using the g_message tip above I found out that the problem code was:&lt;br /&gt;
        sutemp = _rsu_sx.getSU();&lt;br /&gt;
   g_message(&amp;quot;CanvasXYGrid 1&amp;quot;);&lt;br /&gt;
        sutemp-&amp;gt;setDigits(4);&lt;br /&gt;
   g_message(&amp;quot;CanvasXYGrid 2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Researching the setDigits path, I could not find a bug. Then it hit me: _rsu_sx is initialized, then readRepr is called, but this is &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; _rsu_sy is initialized. Then&lt;br /&gt;
&lt;br /&gt;
    void RegisteredScalarUnit::setValue (double val)&lt;br /&gt;
    {&lt;br /&gt;
        _widget-&amp;gt;setValue (val);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
is called, but _widget is still NULL, hence the crash.&lt;br /&gt;
As usual, the fix is easy:&lt;br /&gt;
    void RegisteredScalarUnit::setValue (double val)&lt;br /&gt;
    {&lt;br /&gt;
        if (_widget)&lt;br /&gt;
            _widget-&amp;gt;setValue (val);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
Don't forget to fix the setValue methods of the other Registered widgets!!!&lt;br /&gt;
&lt;br /&gt;
The fix can be seen in [http://inkscape.svn.sourceforge.net/viewvc/inkscape?view=rev&amp;amp;revision=16544 SVN revision 16544]. &lt;br /&gt;
&lt;br /&gt;
===Problems running GDB===&lt;br /&gt;
From an inexperienced user of GDB just trying to get backtraces, here is a tip I found running gdb.&lt;br /&gt;
&lt;br /&gt;
I simply downloaded the latest version of Inkscape Dev full debug, extracted to a directory and ran gdb exactly as above from within the directory, only changing the name of the svg file.&lt;br /&gt;
&lt;br /&gt;
Everything went exactly as above for &amp;quot;file inkscape.exe inkscape.dbg&amp;quot;, however after executing the &amp;quot;run {filename.svg}&amp;quot; command, I received the following message;&lt;br /&gt;
     Program received signal SIGSEV, Segmentation fault.&lt;br /&gt;
     0x03de8cf1 in xslDebugStatus ()&lt;br /&gt;
&lt;br /&gt;
This has stumped me once before, but this time I checked out the help menus, and found under &amp;quot;help running&amp;quot; that I could simply type &amp;quot;continue&amp;quot;. I figured that xslDebugStatus was nothing to do with the Inkscape program itself, but more to do with gdb, and after typing &amp;quot;continue&amp;quot; it seems to run Inkscape under gdb as normal, allowing backtraces.&lt;br /&gt;
&lt;br /&gt;
== Debugging Tips for Linux ==&lt;br /&gt;
&lt;br /&gt;
Debugging Inkscape on Linux is most easily done using Eclipse or any other IDE. When however a breakpoint is reached while Inkscape is handling events (or something like that), then X will stop responding! If you want to debug in such a case then you'll have to debug using gdb from the console. In Fedora 10 you'll get to the console when pressing ctrl-alt-F5. Now enter&lt;br /&gt;
     declare -x DISPLAY=&amp;quot;:0&amp;quot;&lt;br /&gt;
and startup gdb to load Inkscape, to load the debugging symbols, set your breakpoints, and to start Inkscape. Now you can switch back to X (ctrl-alt-F1) and interact with Inkscape. When Inkscape stops responding because it hit a breakpoint, switch back to the console and do your debugging.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=42454</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=42454"/>
		<updated>2009-01-25T18:25:47Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Grids, guides, snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
* [presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
:* The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
:* The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
:* 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 prevent jerks.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
===Pencil sketch mode===&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, is by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add cut marks''' extension add cut marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created, or use a rectangle for that.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* A collection of effects for creating SVG filters was added in the Filters submenu (see the section on SVG Filters).&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==One-command filters via extensions==&lt;br /&gt;
&lt;br /&gt;
The Filter Effects dialog is powerful, but can be quite cumbersome. There is now a way to add complex predefined filters to the selected objects by a single command by choosing it from Effects &amp;gt; Filters submenu. Further submenus categorize the filters by function. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
==Initial SVG Fonts support==&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
The user can design fonts within Inkscape, but using these to render on canvas is not yet supported. Currently the main benefit of this feature is to improve the font design workflow when working with FontForge.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
===Better font design workflow when using FontForge===&lt;br /&gt;
Now we only need to create one SVG file containing an SVGFont and import it in FontForge instead of the several files (one SVG for each glyph) that were needed in 0.46 (before SVGFonts support).&lt;br /&gt;
&lt;br /&gt;
=SVG Test Suite Compliance=&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ 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 [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Desktop integration improvements==&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as Gnome and Xfce recent document lists.&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
===New Layer shortcut===&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Combine works on groups==&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
* 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), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
* There is an other new option on the Interface tab, '''language''', which changes the language of the user interface (menus and number formats) regardless the system settings. A combo-box presents all possible Inkscape translations. A change requires a restart of Inkscape.&lt;br /&gt;
&lt;br /&gt;
* On the Interface tab, there's a button to clear the list of files in File &amp;gt; Open Recent submenu.&lt;br /&gt;
&lt;br /&gt;
* The list of recently opened files can be cleared on the Interface tab.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
==SVG Fonts dialog==&lt;br /&gt;
&lt;br /&gt;
New SVG Fonts dialog. See [[ReleaseNotes047#Initial_SVG_Fonts_support]]&lt;br /&gt;
&lt;br /&gt;
==Document Properties dialog==&lt;br /&gt;
===Color Management tab===&lt;br /&gt;
In this new tab, the user can declare multiple ICC color profiles for the current document.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective. Besides, snapping to objects now invokes routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs. A new and very noticeable feature is the '''toolbar''' to control the snapping options and modes. (Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar). To control some other new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* A '''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&lt;br /&gt;
* A '''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. &lt;br /&gt;
* Inkscape can be forced to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Coreldraw. 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.&lt;br /&gt;
* 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 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.&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always snap' ''' has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift key now also disables snapping while dragging '''node-handles''', and while creating single dots&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape will now only snap to points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' has been improved.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also snaps or snaps to:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments and bounding box' edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth and/or cusp nodes (configurable)&lt;br /&gt;
* Each of the handle points when creating new shapes&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with pstoedit for example ([https://bugs.launchpad.net/inkscape/+bug/168370 #168370])&lt;br /&gt;
** resizing page adjusts viewBox ([https://bugs.launchpad.net/inkscape/+bug/167682 #167682])&lt;br /&gt;
** preserveAspectRatio parsing code fixed ([https://bugs.launchpad.net/inkscape/+bug/166885 #166885])&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite paths-data-10-t.svg)&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=42444</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=42444"/>
		<updated>2009-01-25T18:15:00Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
* [presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
:* The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
:* The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
:* 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 prevent jerks.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
===Pencil sketch mode===&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, is by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add cut marks''' extension add cut marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created, or use a rectangle for that.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* A collection of effects for creating SVG filters was added in the Filters submenu (see the section on SVG Filters).&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==One-command filters via extensions==&lt;br /&gt;
&lt;br /&gt;
The Filter Effects dialog is powerful, but can be quite cumbersome. There is now a way to add complex predefined filters to the selected objects by a single command by choosing it from Effects &amp;gt; Filters submenu. Further submenus categorize the filters by function. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
==Initial SVG Fonts support==&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
The user can design fonts within Inkscape, but using these to render on canvas is not yet supported. Currently the main benefit of this feature is to improve the font design workflow when working with FontForge.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
===Better font design workflow when using FontForge===&lt;br /&gt;
Now we only need to create one SVG file containing an SVGFont and import it in FontForge instead of the several files (one SVG for each glyph) that were needed in 0.46 (before SVGFonts support).&lt;br /&gt;
&lt;br /&gt;
=SVG Test Suite Compliance=&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ 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 [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Desktop integration improvements==&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as Gnome and Xfce recent document lists.&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
===New Layer shortcut===&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Combine works on groups==&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
* 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), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
* There is an other new option on the Interface tab, '''language''', which changes the language of the user interface (menus and number formats) regardless the system settings. A combo-box presents all possible Inkscape translations. A change requires a restart of Inkscape.&lt;br /&gt;
&lt;br /&gt;
* On the Interface tab, there's a button to clear the list of files in File &amp;gt; Open Recent submenu.&lt;br /&gt;
&lt;br /&gt;
* The list of recently opened files can be cleared on the Interface tab.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
==SVG Fonts dialog==&lt;br /&gt;
&lt;br /&gt;
New SVG Fonts dialog. See [[ReleaseNotes047#Initial_SVG_Fonts_support]]&lt;br /&gt;
&lt;br /&gt;
==Document Properties dialog==&lt;br /&gt;
===Color Management tab===&lt;br /&gt;
In this new tab, the user can declare multiple ICC color profiles for the current document.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
&lt;br /&gt;
The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective. Besides, snapping to objects now invokes routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs. Another significant changeis the new '''toolbar''' to control the snapping options and modes. (Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar) &lt;br /&gt;
&lt;br /&gt;
To control some new snapping features, a dedicated tab has been created in the preferences dialog. The new features found on this tab are:&lt;br /&gt;
* A snap delay: Inkscape now optionally waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. &lt;br /&gt;
* When multiple snap solutions are found, then Inkscape can either prefer the '''closest transformation''' (when the weight-slider is set to 0; this is the old mode), or prefer the 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.&lt;br /&gt;
* Inkscape can be forced to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Coreldraw. 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 more complex drawings with many nodes.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also snaps or snaps to:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments and bounding box' edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth and/or cusp nodes (configurable)&lt;br /&gt;
* All of the handle points when creating new shapes&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
Other improvements are:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always snap' ''' has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift now also disables snapping while dragging '''node-handles'''.&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' has been improved.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring.&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the preferences dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with pstoedit for example ([https://bugs.launchpad.net/inkscape/+bug/168370 #168370])&lt;br /&gt;
** resizing page adjusts viewBox ([https://bugs.launchpad.net/inkscape/+bug/167682 #167682])&lt;br /&gt;
** preserveAspectRatio parsing code fixed ([https://bugs.launchpad.net/inkscape/+bug/166885 #166885])&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite paths-data-10-t.svg)&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=42434</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=42434"/>
		<updated>2009-01-25T16:33:29Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
* [presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
* The behavior of the tool when tracking a guide (drawing with Ctrl) has been improved:&lt;br /&gt;
&lt;br /&gt;
:* The initial &amp;quot;jerk&amp;quot; when you start drawing is suppressed.&lt;br /&gt;
&lt;br /&gt;
:* The undesired flipping of the stroke to the other side of the guide path, when drawing along closed paths, is fixed. &lt;br /&gt;
&lt;br /&gt;
:* 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 prevent jerks.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
===Pencil sketch mode===&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, is by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add cut marks''' extension add cut marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created, or use a rectangle for that.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* A collection of effects for creating SVG filters was added in the Filters submenu (see the section on SVG Filters).&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code. This is obviously just an aesthetical feature. It is not intended to create real braille text for visually impaired people but instead it is meant to enable an accurate graphical representation of braille text to be used in illustrations.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==One-command filters via extensions==&lt;br /&gt;
&lt;br /&gt;
The Filter Effects dialog is powerful, but can be quite cumbersome. There is now a way to add complex predefined filters to the selected objects by a single command by choosing it from Effects &amp;gt; Filters submenu. Further submenus categorize the filters by function. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
==Initial SVG Fonts support==&lt;br /&gt;
&lt;br /&gt;
As a SoC 2008 project, JucaBlues implemented initial parsing and rendering of [http://www.w3.org/TR/SVG11/fonts.html SVG Fonts].&lt;br /&gt;
The user can design fonts within Inkscape, but using these to render on canvas is not yet supported. Currently the main benefit of this feature is to improve the font design workflow when working with FontForge.&lt;br /&gt;
&lt;br /&gt;
You can open the SVG Font dialog through Text-&amp;gt;SVG Fonts menu option.&lt;br /&gt;
&lt;br /&gt;
===Better font design workflow when using FontForge===&lt;br /&gt;
Now we only need to create one SVG file containing an SVGFont and import it in FontForge instead of the several files (one SVG for each glyph) that were needed in 0.46 (before SVGFonts support).&lt;br /&gt;
&lt;br /&gt;
=SVG Test Suite Compliance=&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ 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 [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Desktop integration improvements==&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as Gnome and Xfce recent document lists.&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The Layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command, '''Duplicate Layer''', has been added to the Layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
===New Layer shortcut===&lt;br /&gt;
&lt;br /&gt;
The New Layer dialog can be opened with '''Ctrl+Shift+N''' shortcut.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Combine works on groups==&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
* 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), and '''SVG Output''' (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
* There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
* There is an other new option on the Interface tab, '''language''', which changes the language of the user interface (menus and number formats) regardless the system settings. A combo-box presents all possible Inkscape translations. A change requires a restart of Inkscape.&lt;br /&gt;
&lt;br /&gt;
* On the Interface tab, there's a button to clear the list of files in File &amp;gt; Open Recent submenu.&lt;br /&gt;
&lt;br /&gt;
* The list of recently opened files can be cleared on the Interface tab.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
==SVG Fonts dialog==&lt;br /&gt;
&lt;br /&gt;
New SVG Fonts dialog. See [[ReleaseNotes047#Initial_SVG_Fonts_support]]&lt;br /&gt;
&lt;br /&gt;
==Document Properties dialog==&lt;br /&gt;
===Color Management tab===&lt;br /&gt;
In this new tab, the user can declare multiple ICC color profiles for the current document.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* Inkscape now has a '''toolbar''' to control the snapping options and modes. Use View &amp;gt; Show/Hide &amp;gt; Snap controls bar to show or hide this toolbar. &lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint.&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' has been improved.&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always snap' ''' has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option.&lt;br /&gt;
* Holding the Shift now also disables snapping while dragging '''node-handles'''.&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective.&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs.&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring.&lt;br /&gt;
&lt;br /&gt;
To control some new snapping features, a dedicated tab has been created in the preferences dialog. These new features are:&lt;br /&gt;
* A snap delay: Inkscape now optionally waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. &lt;br /&gt;
* When multiple snap solutions are found, then Inkscape can either prefer the '''closest transformation''' (when the weight-slider is set to 0; this is the old mode), or prefer the 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.&lt;br /&gt;
* Inkscape can be forced to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Coreldraw. 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 more complex drawings with many nodes.&lt;br /&gt;
&lt;br /&gt;
Inkscape now also snaps or snaps to:&lt;br /&gt;
* Clipping paths and masks&lt;br /&gt;
* Midpoints of line segments and bounding box' edges&lt;br /&gt;
* Page border&lt;br /&gt;
* Intersections of any kind of paths&lt;br /&gt;
* Smooth and/or cusp nodes (configurable)&lt;br /&gt;
* All of the handle points when creating new shapes&lt;br /&gt;
* Single dots&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the preferences dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with pstoedit for example ([https://bugs.launchpad.net/inkscape/+bug/168370 #168370])&lt;br /&gt;
** resizing page adjusts viewBox ([https://bugs.launchpad.net/inkscape/+bug/167682 #167682])&lt;br /&gt;
** preserveAspectRatio parsing code fixed ([https://bugs.launchpad.net/inkscape/+bug/166885 #166885])&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite paths-data-10-t.svg)&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite ''painting-marker-03-f.svg'')&lt;br /&gt;
&lt;br /&gt;
* Coordinates and lengths specified in percentages are now correctly interpreted (SVG test suite ''coords-units-02-b.svg'')&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Potrace&amp;diff=42274</id>
		<title>Potrace</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Potrace&amp;diff=42274"/>
		<updated>2009-01-21T19:36:05Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Potrace is an open source [[raster]] to [[vector]] conversion utility. It has been embedded in Inkscape and can trace bitmap images into .svg and .pdf formats. &lt;br /&gt;
&lt;br /&gt;
==To use==&lt;br /&gt;
# Import the bitmap you want to trace using the File menu, (File-&amp;gt;Import...)&lt;br /&gt;
# Select the bitmap&lt;br /&gt;
# Choose trace from the Path Menu (Path-&amp;gt;Trace Bitmap ...)&lt;br /&gt;
# The Trace Bitmap dialog has settings for the tracing operation and a &amp;quot;preview&amp;quot;&lt;br /&gt;
# When you are happy with the preview, click OK, potrace will spend a few seconds processing the bitmap&lt;br /&gt;
# Close the dialog box and verify that you bitmap has been converted to a grouped set of vector shapes. ([[User:Autodmc|Autodmc]] 11:23, 9 February 2006 (PST))&lt;br /&gt;
&lt;br /&gt;
==????==&lt;br /&gt;
features welcome on [[Potrace]]:&lt;br /&gt;
 - tracing picture sequences or movie clips (.mpeg, .avi, .mov, .gif animated, .iff animated) into .sgv or .pdf sequences, .svg animated, and .swf&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Tools]]&lt;br /&gt;
* [http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.html Inkscape Manual]&lt;br /&gt;
* [http://www.inkscape.org/doc/tracing/tutorial-tracing.html Tutorial]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://potrace.sourceforge.net/ Potrace at Sourceforge]&lt;br /&gt;
*[http://confluence.concord.org/display/CCTR/Tracing+Color+Raster+Images Review of Color Tracing with Potrace and Inkscape]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=41894</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=41894"/>
		<updated>2009-01-10T22:31:46Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
===Pencil sketch mode===&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all summarized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, is by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add cut marks''' extension add cut marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created, or use a rectangle for that.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* A collection of effects for creating SVG filters was added in the Filters submenu (see the section on SVG Filters).&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==One-command filters via extensions==&lt;br /&gt;
&lt;br /&gt;
The Filter Effects dialog is powerful, but can be quite cumbersome. There is now a way to add complex predefined filters to the selected objects by a single command by choosing it from Effects &amp;gt; Filters submenu. Further submenus categorize the filters by function. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=SVG Test Suite Compliance=&lt;br /&gt;
&lt;br /&gt;
[describe what has been improved over 0.46 and point to recent test result website]&lt;br /&gt;
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 [http://inkscape.svn.sourceforge.net/svnroot/inkscape/gsoc-testsuite/tester/ 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 [http://www.w3.org/Graphics/SVG/Test/ [[W3C]] SVG Test Suite]. See [http://home.hccnet.nl/th.v.d.gronde/inkscape/ResultViewer.html this list] for up-to-date rendering results. Also see [[TestingInkscape]] for information on running and creating rendering tests.&lt;br /&gt;
&lt;br /&gt;
List of render test changes with respect to 0.46:&lt;br /&gt;
...[files which failed on 0.46 and now pass, and vice versa]&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Desktop integration improvements==&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as Gnome and Xfce recent document lists.&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Combine works on groups==&lt;br /&gt;
&lt;br /&gt;
The Combine command now works transparently on groups, i.e. combines paths inside selected groups at any level of grouping.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
There is an other new option on the Interface tab, '''language''', which changes the language of the user interface (menus and number formats) regardless the system settings. A combo-box presents all possible Inkscape translations. A change requires a restart of Inkscape.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* Inkscape now has a toolbar to control the snapping&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the document properties dialog&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* Inkscape can now also snap '''midpoints''' of line segments&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap '''intersections of paths''' (where we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
* Inkscape now has a snapping tab in the '''preferences dialog'''. It contains some non-document specific settings&lt;br /&gt;
* Optionally, Inkscape now waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. This '''snap delay''' can be disabled or specified in the preferences dialog&lt;br /&gt;
* A slider has been added to the preferences dialog which controls which type of snapping Inkscape will prefer. When multiple snap solutions are found, then Inkscape can either prefer the '''closest transformation''' (when the weight-slider is set to 0; this is the old mode), or prefer the 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&lt;br /&gt;
* There's now a toggle to force Inkscape to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Coreldraw. 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 more complex drawings with many nodes.&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the preferences dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
*  ''New Layer'' dialog can be opened with '''Ctrl+Shift+N''' shortcut now&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with pstoedit for example ([https://bugs.launchpad.net/inkscape/+bug/168370 #168370])&lt;br /&gt;
** resizing page adjusts viewBox ([https://bugs.launchpad.net/inkscape/+bug/167682 #167682])&lt;br /&gt;
** preserveAspectRatio parsing code fixed ([https://bugs.launchpad.net/inkscape/+bug/166885 #166885])&lt;br /&gt;
&lt;br /&gt;
* open paths (as opposed to closed paths) are now correctly drawn when start and end points are equal. (SVG test suite paths-data-10-t.svg)&lt;br /&gt;
&lt;br /&gt;
* The shorthand 'marker' property is now correctly interpreted (SVG test suite painting-marker-03-f.svg)&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=40504</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=40504"/>
		<updated>2008-12-14T21:50:08Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
===Pencil sketch mode===&lt;br /&gt;
[johan]&lt;br /&gt;
Press alt and sketch away, release alt to finalize result.&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the target formats are exported via embedded rasters that preserve the appearance; in particular:&lt;br /&gt;
&lt;br /&gt;
* transparency is always rasterized in PS or EPS (but not PDF, as PDF supports vector transparency);&lt;br /&gt;
&lt;br /&gt;
* filters, such as blur, is by default rasterized in all three formats (PS, EPS, PDF), but this can be turned off by unchecking the &amp;quot;Rasterize filter effects&amp;quot; option in the UI or adding the --export-ignore-filters option via the command line, in which case filtered objects are rendered as vectors without filters and without rasterization.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing&amp;quot; (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add cut marks''' extension add cut marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created, or use a rectangle for that.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* A collection of effects for creating SVG filters was added in the Filters submenu (see the section on SVG Filters).&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==One-command filters via extensions==&lt;br /&gt;
&lt;br /&gt;
The Filter Effects dialog is powerful, but can be quite cumbersome. There is now a way to add complex predefined filters to the selected objects by a single command by choosing it from Effects &amp;gt; Filters submenu. Further submenus categorize the filters by function. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Desktop integration improvements==&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* '''Open Recent menu''' now integrates with Windows recent documents management as well as Gnome and Xfce recent document lists.&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the document properties dialog&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* Inkscape can now also snap '''midpoints''' of line segments&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap '''intersections of paths''' (where we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
* Inkscape now has a snapping tab in the '''preferences dialog'''. It contains some non-document specific settings&lt;br /&gt;
* Optionally, Inkscape now waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. This '''snap delay''' can be disabled or specified in the preferences dialog&lt;br /&gt;
* A slider has been added to the preferences dialog which controls which type of snapping Inkscape will prefer. When multiple snap solutions are found, then Inkscape can either prefer the '''closest transformation''' (when the weight-slider is set to 0; this is the old mode), or prefer the 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&lt;br /&gt;
* There's now a toggle to force Inkscape to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Coreldraw. 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 more complex drawings with many nodes.&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the preferences dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
*  ''New Layer'' dialog can be opened with '''Ctrl+Shift+N''' shortcut now&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
* several '''[[ViewBoxToDo|viewBox]]''' related bugs fixed&lt;br /&gt;
** Documents with viewBox are now editable without transformation defects. In particular this affected documents created with pstoedit for example ([https://bugs.launchpad.net/inkscape/+bug/168370 #168370])&lt;br /&gt;
** resizing page adjusts viewBox ([https://bugs.launchpad.net/inkscape/+bug/167682 #167682])&lt;br /&gt;
** preserveAspectRatio parsing code fixed ([https://bugs.launchpad.net/inkscape/+bug/166885 #166885])&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=TestingFramework&amp;diff=40044</id>
		<title>TestingFramework</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=TestingFramework&amp;diff=40044"/>
		<updated>2008-12-06T14:03:54Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Valgrind Memory Leak Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inkscape Testing Framework ==&lt;br /&gt;
&lt;br /&gt;
In order to detect and identify bugs quickly and reliably, we should set up a testing framework for Inkscape.&lt;br /&gt;
&lt;br /&gt;
There are several different ways to test a desktop Linux application.  Each method provides different kinds of&lt;br /&gt;
information about the codebase and are each valuable in different ways.  A multi-pronged approach that uses&lt;br /&gt;
more than one kind of testing is expected to gain the best results.&lt;br /&gt;
&lt;br /&gt;
=== Compile Testing ===&lt;br /&gt;
&lt;br /&gt;
In compile testing, the codebase is repetitively checked out and compiled in one or more different ways.&lt;br /&gt;
For example, with different compilers or for different platforms (Linux, Windows, Mac OSX, ...)  Errors in&lt;br /&gt;
configuration, compilation, linking, or basic executation are detected, collected, and reported on a periodic&lt;br /&gt;
basis (such as daily compile reports).&lt;br /&gt;
&lt;br /&gt;
It may be possible to set up compile testing using [[SourceForge]]'s compile farm.  Another option to &lt;br /&gt;
investigate is the Mozilla project's &amp;quot;Tinderbox&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Unit Testing ===&lt;br /&gt;
&lt;br /&gt;
Unit testing is implemented at the file level.  Each *.c or *.cpp file is provided with a test file containing &lt;br /&gt;
calls for each of the functions, and that exercises the API, including a wide variety of error situations such&lt;br /&gt;
as NULL pointers, buffer overflows, very large or very small floating point numbers, zero or negative int's,&lt;br /&gt;
uninitialized objects, etc.&lt;br /&gt;
&lt;br /&gt;
The intention of unit tests is to provide sanity checks that the developer can use as they implement the&lt;br /&gt;
code.  Ideally, when implementing a new code file, the programmer could first implement the unit test&lt;br /&gt;
from a spec, and then work on implementing the code to pass the unit test; this is the development&lt;br /&gt;
style advocated in the Extreme Programming philosophy.&lt;br /&gt;
&lt;br /&gt;
=== Regression Testing ===&lt;br /&gt;
&lt;br /&gt;
In regression testing, the philosophy is to implement test cases for each bug found, and to run these&lt;br /&gt;
test cases against the codebase to determine that bug fixes actually fix the bug, and to ensure in the&lt;br /&gt;
future that the bugs do not re-occur.  &lt;br /&gt;
&lt;br /&gt;
This can be implemented by assembling a repository of &amp;quot;problem&amp;quot; SVG files that have caused Inkscape&lt;br /&gt;
to error in programmatically detectable manners (such as crashes or emission of invalid SVG or PNG's).&lt;br /&gt;
&lt;br /&gt;
=== GUI Testing ===&lt;br /&gt;
&lt;br /&gt;
To eneable a11y in Inkscape for testing with dogtail, start Inkscape with the following command.&lt;br /&gt;
* GTK_MODULES=gail:atk-bridge inkscape&lt;br /&gt;
&lt;br /&gt;
=== Fault Response Testing ===&lt;br /&gt;
&lt;br /&gt;
In fault response testing, the application is put into various critical situations and the behavior &lt;br /&gt;
detected and compared against expectations.  Examples include out-of-disk-space, out-of-memory,&lt;br /&gt;
response to different signals, loading and saving very large files, starting up with invalid or unreadible&lt;br /&gt;
config files, and so forth.&lt;br /&gt;
&lt;br /&gt;
=== Specification Compliance Testing ===&lt;br /&gt;
&lt;br /&gt;
In spec testing, the application is run against various input cases and caused to generate output that&lt;br /&gt;
can be tested against &amp;quot;known&amp;quot; correct data.  For instance, the [[W3C]] produces an SVG compliance test&lt;br /&gt;
suite with SVG files and the expected rendered output as PNG's.  Inkscape can be run on each of the&lt;br /&gt;
SVG's from the commandline and caused to save the rendering as a PNG.  An image-difference tool &lt;br /&gt;
can then be used to calculate a diff-score between the emitted PNG and the [[W3C]] image.&lt;br /&gt;
&lt;br /&gt;
Similarly, this process can be used against other applications such as Batik or librsvg, to check&lt;br /&gt;
inter-application conformance on the same SVG files.  Ideally, all SVG applications should render&lt;br /&gt;
a given SVG file identically.  &lt;br /&gt;
&lt;br /&gt;
=== Performance Testing ===&lt;br /&gt;
&lt;br /&gt;
In performance testing the application is measured as to how well it works against various criteria such&lt;br /&gt;
as start-up time, output quality, processing speed, etc.  &lt;br /&gt;
&lt;br /&gt;
=== Valgrind Memory Leak Testing ===&lt;br /&gt;
&lt;br /&gt;
What I did here is simply ran inkscape through valgrind with the following command: &lt;br /&gt;
&lt;br /&gt;
    valgrind -v --leak-check=yes --leak-resolution=high --num-callers=15 --show-reachable=yes --log-file=inkscape.log src/inkscape&lt;br /&gt;
&lt;br /&gt;
I then drew a few objects, edited some points and exit. &lt;br /&gt;
&lt;br /&gt;
What I would like to see is people investigate the memory problems listed here and as they are resolved, we remove them from the list until we don't have any more. Then we can try to find more! :)&lt;br /&gt;
&lt;br /&gt;
Note: Turn off Inkscape's garbage collection before starting valgrind, e.g.&lt;br /&gt;
    export _INKSCAPE_GC=disable&lt;br /&gt;
(As suggested John Coswell)[http://www.coswellproductions.com/wordpress/2008/04/30/quick-drying-paint-profiling-inkscape-using-valgrind/]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=TestingFramework&amp;diff=40034</id>
		<title>TestingFramework</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=TestingFramework&amp;diff=40034"/>
		<updated>2008-12-06T13:56:49Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Valgrind Memory Leak Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Inkscape Testing Framework ==&lt;br /&gt;
&lt;br /&gt;
In order to detect and identify bugs quickly and reliably, we should set up a testing framework for Inkscape.&lt;br /&gt;
&lt;br /&gt;
There are several different ways to test a desktop Linux application.  Each method provides different kinds of&lt;br /&gt;
information about the codebase and are each valuable in different ways.  A multi-pronged approach that uses&lt;br /&gt;
more than one kind of testing is expected to gain the best results.&lt;br /&gt;
&lt;br /&gt;
=== Compile Testing ===&lt;br /&gt;
&lt;br /&gt;
In compile testing, the codebase is repetitively checked out and compiled in one or more different ways.&lt;br /&gt;
For example, with different compilers or for different platforms (Linux, Windows, Mac OSX, ...)  Errors in&lt;br /&gt;
configuration, compilation, linking, or basic executation are detected, collected, and reported on a periodic&lt;br /&gt;
basis (such as daily compile reports).&lt;br /&gt;
&lt;br /&gt;
It may be possible to set up compile testing using [[SourceForge]]'s compile farm.  Another option to &lt;br /&gt;
investigate is the Mozilla project's &amp;quot;Tinderbox&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Unit Testing ===&lt;br /&gt;
&lt;br /&gt;
Unit testing is implemented at the file level.  Each *.c or *.cpp file is provided with a test file containing &lt;br /&gt;
calls for each of the functions, and that exercises the API, including a wide variety of error situations such&lt;br /&gt;
as NULL pointers, buffer overflows, very large or very small floating point numbers, zero or negative int's,&lt;br /&gt;
uninitialized objects, etc.&lt;br /&gt;
&lt;br /&gt;
The intention of unit tests is to provide sanity checks that the developer can use as they implement the&lt;br /&gt;
code.  Ideally, when implementing a new code file, the programmer could first implement the unit test&lt;br /&gt;
from a spec, and then work on implementing the code to pass the unit test; this is the development&lt;br /&gt;
style advocated in the Extreme Programming philosophy.&lt;br /&gt;
&lt;br /&gt;
=== Regression Testing ===&lt;br /&gt;
&lt;br /&gt;
In regression testing, the philosophy is to implement test cases for each bug found, and to run these&lt;br /&gt;
test cases against the codebase to determine that bug fixes actually fix the bug, and to ensure in the&lt;br /&gt;
future that the bugs do not re-occur.  &lt;br /&gt;
&lt;br /&gt;
This can be implemented by assembling a repository of &amp;quot;problem&amp;quot; SVG files that have caused Inkscape&lt;br /&gt;
to error in programmatically detectable manners (such as crashes or emission of invalid SVG or PNG's).&lt;br /&gt;
&lt;br /&gt;
=== GUI Testing ===&lt;br /&gt;
&lt;br /&gt;
To eneable a11y in Inkscape for testing with dogtail, start Inkscape with the following command.&lt;br /&gt;
* GTK_MODULES=gail:atk-bridge inkscape&lt;br /&gt;
&lt;br /&gt;
=== Fault Response Testing ===&lt;br /&gt;
&lt;br /&gt;
In fault response testing, the application is put into various critical situations and the behavior &lt;br /&gt;
detected and compared against expectations.  Examples include out-of-disk-space, out-of-memory,&lt;br /&gt;
response to different signals, loading and saving very large files, starting up with invalid or unreadible&lt;br /&gt;
config files, and so forth.&lt;br /&gt;
&lt;br /&gt;
=== Specification Compliance Testing ===&lt;br /&gt;
&lt;br /&gt;
In spec testing, the application is run against various input cases and caused to generate output that&lt;br /&gt;
can be tested against &amp;quot;known&amp;quot; correct data.  For instance, the [[W3C]] produces an SVG compliance test&lt;br /&gt;
suite with SVG files and the expected rendered output as PNG's.  Inkscape can be run on each of the&lt;br /&gt;
SVG's from the commandline and caused to save the rendering as a PNG.  An image-difference tool &lt;br /&gt;
can then be used to calculate a diff-score between the emitted PNG and the [[W3C]] image.&lt;br /&gt;
&lt;br /&gt;
Similarly, this process can be used against other applications such as Batik or librsvg, to check&lt;br /&gt;
inter-application conformance on the same SVG files.  Ideally, all SVG applications should render&lt;br /&gt;
a given SVG file identically.  &lt;br /&gt;
&lt;br /&gt;
=== Performance Testing ===&lt;br /&gt;
&lt;br /&gt;
In performance testing the application is measured as to how well it works against various criteria such&lt;br /&gt;
as start-up time, output quality, processing speed, etc.  &lt;br /&gt;
&lt;br /&gt;
=== Valgrind Memory Leak Testing ===&lt;br /&gt;
&lt;br /&gt;
What I did here is simply ran inkscape through valgrind with the following command: &lt;br /&gt;
&lt;br /&gt;
    valgrind -v --leak-check=yes --leak-resolution=high --num-callers=15 --show-reachable=yes --log-file=inkscape.log src/inkscape&lt;br /&gt;
&lt;br /&gt;
I then drew a few objects, edited some points and exit. &lt;br /&gt;
&lt;br /&gt;
What I would like to see is people investigate the memory problems listed here and as they are resolved, we remove them from the list until we don't have any more. Then we can try to find more! :)&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=39934</id>
		<title>CompilingFedora</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=39934"/>
		<updated>2008-12-03T19:39:34Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Fedora 8, 9 &amp;amp; 10 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fedora 8, 9 &amp;amp; 10 ==&lt;br /&gt;
&lt;br /&gt;
Load up a terminal and run the following 4 commands to download the Inkscape sourcecode, install the programs Inkscape needs to compile, and compile and install it, and then run it:&lt;br /&gt;
&lt;br /&gt;
    svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape ; cd inkscape &lt;br /&gt;
&lt;br /&gt;
    sudo yum install ImageMagick-c++-devel ImageMagick-c++ ImageMagick-devel ImageMagick glibmm24-devel libsigc++-devel gtkmm24-devel glibmm24 libsigc++ gtkmm24 intltool gc gc-devel lcms lcms-devel gsl gsl-devel libxml2-devel libxslt-devel boost-devel popt-static inkscape&lt;br /&gt;
&lt;br /&gt;
    ./autogen.sh&lt;br /&gt;
    ./configure&lt;br /&gt;
    make&lt;br /&gt;
    sudo make install&lt;br /&gt;
&lt;br /&gt;
    /usr/local/bin/inkscape&lt;br /&gt;
&lt;br /&gt;
Note: for Fedora 8 you might need to do this before running ./configure&lt;br /&gt;
    export PKG_CONFIG_PATH=&amp;quot;/usr/lib/pkgconfig/&amp;quot;&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=39894</id>
		<title>CompilingFedora</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=39894"/>
		<updated>2008-12-02T22:02:28Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Fedora 8 &amp;amp; 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fedora 8, 9 &amp;amp; 10 ==&lt;br /&gt;
&lt;br /&gt;
Load up a terminal and run the following 4 commands to download the Inkscape sourcecode, install the programs Inkscape needs to compile, and compile and install it, and then run it:&lt;br /&gt;
&lt;br /&gt;
    svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape ; cd inkscape &lt;br /&gt;
&lt;br /&gt;
    sudo yum install ImageMagick-c++-devel ImageMagick-c++ ImageMagick-devel ImageMagick glibmm24-devel libsigc++-devel gtkmm24-devel glibmm24 libsigc++ gtkmm24 intltool gc gc-devel lcms lcms-devel gsl gsl-devel inkscape&lt;br /&gt;
&lt;br /&gt;
    ./autogen.sh ; ./configure ; make ; sudo make install&lt;br /&gt;
&lt;br /&gt;
    /usr/local/bin/inkscape&lt;br /&gt;
&lt;br /&gt;
Note: for Fedora 8 you might need to do this before running ./configure&lt;br /&gt;
    export PKG_CONFIG_PATH=&amp;quot;/usr/lib/pkgconfig/&amp;quot;&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=39384</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=39384"/>
		<updated>2008-11-26T21:15:15Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snap indicator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' and brings many other improvements.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add cut marks''' extension add cut marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created, or use a rectangle for that.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* A collection of effects for creating SVG filters was added in the Filters submenu (see the section on SVG Filters).&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==One-command filters via extensions==&lt;br /&gt;
&lt;br /&gt;
The Filter Effects dialog is powerful, but can be quite cumbersome. There is now a way to add complex predefined filters to the selected objects by a single command by choosing it from Effects &amp;gt; Filters submenu. Further submenus categorize the filters by function. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the document properties dialog&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
* Inkscape now has a snapping tab in the '''preferences dialog'''. It contains some non-document specific settings&lt;br /&gt;
* Optionally, Inkscape now waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. This '''snap delay''' can be disabled or specified in the preferences dialog&lt;br /&gt;
* A slider has been added to the preferences dialog which controls which type of snapping Inkscape will prefer. When multiple snap solutions are found, then Inkscape can either prefer the '''closest transformation''' (when the weight-slider is set to 0; this is the old mode), or prefer the 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&lt;br /&gt;
* There's now a toggle to force Inkscape to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Coreldraw. 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 more complex drawings with many nodes.&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the preferences dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
*  ''New Layer'' dialog can be opened with '''Ctrl+Shift+N''' shortcut now&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=39374</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=39374"/>
		<updated>2008-11-26T21:14:33Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
*'''Auto smooth nodes''': a new &amp;quot;auto&amp;quot; node type was added, 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, it 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 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
 Shift+b	        blur mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
Shortcuts:&lt;br /&gt;
&lt;br /&gt;
* '''Shift+E''' enables the tool&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect:&lt;br /&gt;
**The pattern used to be stretched across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each. &lt;br /&gt;
** Successive copies of the pattern can now be fused into continuous paths (using the new &amp;quot;fuse nearby ends&amp;quot; feature) so that &amp;quot;filling&amp;quot; the result works as expected.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of parameters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]].[jfb] &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''Hatches''' Fills the given shape with rough, configurable and randomized, hatches, simulating quick hand-drawn hatches.[jfb]&lt;br /&gt;
:[[Image:hatches-lpe.png|300px]].&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path.&lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.[jfb]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with the &amp;lt;code&amp;gt;ps2pdf&amp;lt;/code&amp;gt; utility from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog similar to PDF import, which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==PDF, PostScript, and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PS and EPS exporter provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
The new cairo-based PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' and brings many other improvements.&lt;br /&gt;
&lt;br /&gt;
All of PS, EPS, and PDF export formats uniformly support the export area options (canvas or drawing) and the new export-id option: &lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Limit export to the object with ID&amp;quot; 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 at all). The BoundingBox (page size) of the exported PS/EPS/PDF file will correspond to the bounding box of that object; you can override that with &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option which forces the output to have the size of the SVG document's canvas (this may not be possible with EPS, see below).&lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is whole canvas&amp;quot; (GUI) or '''--export-area-canvas''' (command line) option forces the output to have the size of the SVG document's canvas. This is the default for PS and PDF but not for EPS. &lt;br /&gt;
&lt;br /&gt;
:*Note that for EPS, the specification of the format does not allow its bounding box to extend beyond its content. This means that when --export-area-canvas is used with EPS export, the canvas bounding box will be trimmed inwards (but never 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.&lt;br /&gt;
&lt;br /&gt;
:* The &amp;lt;b&amp;gt;--export-bbox-page&amp;lt;/b&amp;gt; command line parameter is removed; use &amp;lt;b&amp;gt;--export-area-canvas&amp;lt;/b&amp;gt; instead. &lt;br /&gt;
&lt;br /&gt;
* The &amp;quot;Export area is the drawing (GUI) or '''--export-area-drawing''' (command line) option forces the output to have the size of the exported objects' bounding box, regardless of canvas 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. &lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;b&amp;gt;--export-embed-fonts&amp;lt;/b&amp;gt; option is removed; now Inkscape always embeds and subsets all fonts used in the document when exporting PS, EPS, or PDF.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
* If you specify a relative path for exported PNG file (e.g. &amp;lt;code&amp;gt;../&amp;lt;/code&amp;gt;) it will now be resolved relative to the current document's location.&lt;br /&gt;
&lt;br /&gt;
* PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Printing &amp;gt; Add cut marks''' extension add cut marks and color bars required by printing bureaus. You can either manually define margins by which cut marks are created, or use a rectangle for that.&lt;br /&gt;
* The new '''Render &amp;gt; 3D Polyhedron''' extension allows drawing polyhedrons from scratch and render them from OBJ files.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's [http://www.theory.org/artprojects/alphabetsoup/main.html GPLed script]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; 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 allows entry of custom trilinear coordinated and triangle centre functions, as well as computation of basic triangle properties such as area and semiperimeter.&lt;br /&gt;
* The new '''Render &amp;gt; Guides Creator''' extension allows creating easily horizontal and vertical guides for dividing equally the canvas. You can choose the divisions from None, 1/2, 1/3 ... to 1/10.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* A collection of effects for creating SVG filters was added in the Filters submenu (see the section on SVG Filters).&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=Filters=&lt;br /&gt;
&lt;br /&gt;
==One-command filters via extensions==&lt;br /&gt;
&lt;br /&gt;
The Filter Effects dialog is powerful, but can be quite cumbersome. There is now a way to add complex predefined filters to the selected objects by a single command by choosing it from Effects &amp;gt; Filters submenu. Further submenus categorize the filters by function. 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 &amp;quot;...&amp;quot; at the end of the command in the menu). If the selected object already has some filter applied, the chosen filter will be merged with the existing filter for combined effect. &lt;br /&gt;
&lt;br /&gt;
You can easily add your own filters to these menus. Simply place any SVG file with the filters to the &amp;lt;code&amp;gt;filters&amp;lt;/code&amp;gt; subdirectory of your config directory (&amp;lt;code&amp;gt;~/.config/Inkscape/&amp;lt;/code&amp;gt; on Linux) and the filters will be picked up. By default, they will be placed in the Personal submenu under Effects &amp;gt; Filters. If you want to control this, add the following attributes to the &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; element:&lt;br /&gt;
&lt;br /&gt;
 inkscape:label         is the command label&lt;br /&gt;
 inkscape:menu          is the submenu to place the command into&lt;br /&gt;
 inkscape:menu-tooltip  is the tooltip (displayed in the statusbar &lt;br /&gt;
                        as you select the command)&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Filter quality setting==&lt;br /&gt;
&lt;br /&gt;
Instead of the 'blur quality' setting, Inkscape now has a general 'filter effects quality' setting. It affects all filters and gives you an opportunity to find optimum balance between speed and accuracy when rendering filters.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
==Converting text to path produces a group==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the document properties dialog&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
* Inkscape now has a snapping tab in the '''preferences dialog'''. It contains some non-document specific settings&lt;br /&gt;
* Optionally, Inkscape now waits some time after the mouse pointer has stopped moving before it tries to snap. This makes Inkscape more responsive on complex documents and allows moving objects in a straight line over a grid, amongst others. This '''snap delay''' can be disabled or specified in the preferences dialog&lt;br /&gt;
* A slider has been added to the preferences dialog which controls which type of snapping Inkscape will prefer. When multiple snap solutions are found, then Inkscape can either prefer the '''closest transformation''' (when the weight-slider is set to 0; this is the old mode), or prefer the 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&lt;br /&gt;
* There's now a toggle to force Inkscape to only try snapping the (source) node that is '''closest to the mouse pointer''', à la Coreldraw. 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 more complex drawings with many nodes.&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Localization and documentation=&lt;br /&gt;
&lt;br /&gt;
* Hebrew localization complete now&lt;br /&gt;
&lt;br /&gt;
=Other changes and improvements=&lt;br /&gt;
&lt;br /&gt;
*  ''New Layer'' dialog can be opened with '''Ctrl+Shift+N''' shortcut now&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory.&lt;br /&gt;
&lt;br /&gt;
* The --vacuum-defs command line parameter erroneously deleted markers which are in use.&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode.&lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool.&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=37804</id>
		<title>Compiling Inkscape on Windows 32-bit</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Compiling_Inkscape_on_Windows_32-bit&amp;diff=37804"/>
		<updated>2008-11-08T13:42:53Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See the [http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=847856&amp;amp;group_id=93438&amp;amp;atid=604308 Win32 Build ticket] for some info.&lt;br /&gt;
&lt;br /&gt;
=== Inkscape under Windows ===&lt;br /&gt;
&lt;br /&gt;
Inkscape was originally written for Linux, but has been ported to other platforms, including Windows, through the work of a number of dedicated developers.&lt;br /&gt;
&lt;br /&gt;
You can get pre-built binaries of the Windows releases (both stable and development) from the [http://www.inkscape.org/download/?lang=en Inkscape download page]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building Your Own Binary ===&lt;br /&gt;
As well as getting a pre-built binary, you can also build your own. You may do this for fun, to learn about programming, or to help test or improve Inkscape.&lt;br /&gt;
&lt;br /&gt;
Several steps are required to build your own binary, as follows;&lt;br /&gt;
* You will need to download and install the MinGW compiler&lt;br /&gt;
* You will also need the supporting libraries used by Inkscape&lt;br /&gt;
* A recommended step is to download and install the TortoiseSVN program to help manage source files and patching&lt;br /&gt;
* You need to download the source code and possibly apply patches if bug testing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Getting The Compiler &amp;amp; Libraries ====&lt;br /&gt;
&lt;br /&gt;
Thanks to Ishmal, it is extremely easy to set up your system to compile Inkscape. He has made a complete set of compiler and library files available from his website - http://inkscape.modevia.com/win32libs/.&lt;br /&gt;
&lt;br /&gt;
Before you download, check for the latest versions. As of '''April 17 2008''' those are:&lt;br /&gt;
* The mingw compiler version 4.2.1 http://inkscape.modevia.com/win32libs/mingw-4.2.1-071022-dw2.7z&lt;br /&gt;
* Other libraries http://inkscape.modevia.com/win32libs/devlibs-2.12-svn-0809052229.7z (you can also get the files using svn, located at https://svn.modevia.com/inkscape/devlibs) &lt;br /&gt;
&lt;br /&gt;
The configuration files expect these packages in specific directories:&lt;br /&gt;
* Unzip the compiler (mingw-{version}.7z) to C:\MINGW (referenced by mingwenv.bat)&lt;br /&gt;
* Unzip the other libraries (devlibs-{version}.7z) to C:\DEVLIBS (referenced in build.xml used by buildtool)&lt;br /&gt;
&lt;br /&gt;
==== Getting The Inkscape Source ====&lt;br /&gt;
The best way to get the source is straight from the SVN repository using the TortoiseSVN program. Follow these steps;&lt;br /&gt;
&lt;br /&gt;
'''''Setting up a local source repository:'''''&lt;br /&gt;
* Get TortoiseSVN from http://tortoisesvn.net/downloads&lt;br /&gt;
* Install Tortoise SVN.&lt;br /&gt;
* Once Tortoise is installed, make a working folder wherever you want.&lt;br /&gt;
* Inside the working folder, right click and select ''TortoiseSVN'' -&amp;gt; ''Create repository here''. This will make a bunch of folders inside your working folder.&lt;br /&gt;
* Now make another folder in the working folder called 0.46branch or whatever else you'd like to call it. This will hold the source files.&lt;br /&gt;
&lt;br /&gt;
'''''Getting the source:'''''&lt;br /&gt;
* Enter the folder you created for the source files. Right click and select ''SVN Checkout''.&lt;br /&gt;
* Enter the URL for the source code you want;&lt;br /&gt;
** For the 0.46 release branch, use https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/branches/RELEASE_0_46_BRANCH/ (This branch of the source is frozen for the 0.46 release. New features are not allowed in order to focus on bug fixing. This is what you need to test for bugs in the 0.46 release.)&lt;br /&gt;
*** To get this to work with the libraries above, I had to edit build-dw2.xml and build.xml and replace the instances (1 per file) of libpoppler-2.dll with libpoppler-3.dll. It compiles without the changes, but won't run. (Compiling/Running on Vista). &lt;br /&gt;
** For the 0.47 development branch (trunk), use https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk/ (This branch of the source is for ongoing development and includes new and experimental features not in the 0.46 release branch. It is slowly diverging from the 0.46 release branch, thus becoming progressively less useful for testing bugs in the 0.46 release.)&lt;br /&gt;
* TortoiseSVN will now download the source files, which are just over 30Mb.&lt;br /&gt;
&lt;br /&gt;
'''''Notes:'''''&lt;br /&gt;
* You can also get a zipped up version of the trunk (0.47 dev) from Ishmal's site - http://inkscape.modevia.com/svn-snap/&lt;br /&gt;
&lt;br /&gt;
==== Patching The Source Code ====&lt;br /&gt;
&lt;br /&gt;
'''''Using TortoiseSVN:'''''&lt;br /&gt;
&lt;br /&gt;
Tortoise makes patching quite easy. Follow these steps;&lt;br /&gt;
&lt;br /&gt;
1. Find your patch. Windows Patches to the main SVN are now being kept in a folder under your main working directory called ''packaging\win32\patches''. If you download or make a subsequent patch, put it in this directory to keep things orderly. It should be called {patchname}.patch or {patchname}.diff&lt;br /&gt;
&lt;br /&gt;
2. Right click on the patch, and select ''TortoiseSVN'' -&amp;gt; ''Apply Patch...''. Because the Windows patches are kept a little tucked away, Tortoise will probably give a message; '''The path {working directory}\packaging\win32\patches seems not to match the paths in the patchfile. But Tortoise found the path {working directory} matches it better. Do you want to use the suggested path instead?''' Click ''Yes'' to proceed.&lt;br /&gt;
&lt;br /&gt;
3. Now comes the actual patching process. See the Tortoise website for an explanation of how to use the merge tool - http://tortoisesvn.net/docs/release/TortoiseMerge_en/tmerge-dug.html#tmerge-dug-open-view (see also the following pages)&lt;br /&gt;
&lt;br /&gt;
4. Once patched, you will now notice that the patched file has a red exclamation rather than a green tick, as do its parent folders. This signifies that it has been altered from the SVN version, and helps you find altered files really quickly.&lt;br /&gt;
&lt;br /&gt;
5. If you want to go back to the SVN version you originally ''checked out'', simply right click on an individual file or a whole folder and select ''TortoiseSVN'' -&amp;gt; ''Revert''. This will bring up a list of files that can be reverted. If you only selected one file, only that will be available to revert. If you selected a folder, all the modified files in that folder will be available to revert. Tick only those you wish to revert to the SVN version last checked out.&lt;br /&gt;
&lt;br /&gt;
'''''Notes:'''''&lt;br /&gt;
* When applying several patches at once, you will possibly find that some patches update the same code modules. This is normal, and Tortoise can help you compare files and resolve conflicts. See the [http://tortoisesvn.net/docs/release/TortoiseMerge_en/tmerge-dug.html#tmerge-dug-open-view link mentioned above] to learn more.&lt;br /&gt;
* Sometimes conflicts are not able to be resolved using Tortoise, and you will need to edit the files by hand. Don't worry, you can always ''revert'' the files if you make a mistake. A good text editor to help is Notepad 2 - http://www.flos-freeware.ch/&lt;br /&gt;
* If you edit the source files yourself, Tortoise will register that the files are changed with an exclamation mark. To create your own patch from a changed file, right click on the ''src'' directory folder that contains your changed file, then select ''Tortoise SVN -&amp;gt; Create Patch''. Now tick only the file/s you edited and save the patch file. This can be posted to a bug report as a test, and possibly committed to SVN if your patch works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Using the GNU patch program:'''''&lt;br /&gt;
&lt;br /&gt;
For those who love the command line, you can patch the hard way using the GNU patch program.&lt;br /&gt;
&lt;br /&gt;
* Download the program from here  - http://gnuwin32.sourceforge.net/packages/patch.htm&lt;br /&gt;
* Put the patch program wherever you like, as it works independently from the compiler.&lt;br /&gt;
* If the patch file refers to the location in its header, put it in the /src directory and then patch, otherwise put it in the same directory as the file to be patched&lt;br /&gt;
* In a command window, type something like the following;&lt;br /&gt;
     ...&amp;gt;patch --binary {''modulename''}.cpp {''modulename''}.cpp.patch&lt;br /&gt;
* You should now have a patched code module to copy back to the same spot in the source tree.&lt;br /&gt;
* The ''--binary'' switch is only necessary if the files contain the wrong sort of line endings. The [http://gnuwin32.sourceforge.net/packages/patch.htm GnuWin32 Patch page] notes the following; ''&amp;quot;On MS-Windows, the patch file must be a text file, i.e. CR-LF must be used as line endings. A file with LF may give the error: &amp;quot;Assertion failed, hunk, file patch.c, line 343,&amp;quot; unless the option '--binary' is given.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
==== Building The Binary ====&lt;br /&gt;
&lt;br /&gt;
Before you begin, it might be an idea to temporarily lower the level of any over zealous security software, screen savers or other background programs that chew a lot of processor power when the computer is not attended. These programs can interfere with the build process, and cause you to have to start again.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Doing A New Build'''''&lt;br /&gt;
&lt;br /&gt;
You will need to open a command window (DOS prompt) to build the binary. Go to the Start Menu, select Run, and then type command (or cmd). Now you need to step into the Inkscape source directory:&lt;br /&gt;
    ...\&amp;gt; cd ...\inkscape&lt;br /&gt;
&lt;br /&gt;
Firstly run the batch file that sets up the MinGW environment variables&lt;br /&gt;
    ...\&amp;gt; mingwenv.bat&lt;br /&gt;
You can usually just type mingwenv (enter) and Windows will execute the batch file.&lt;br /&gt;
&lt;br /&gt;
Now, build the build tool:&lt;br /&gt;
    ...\&amp;gt; g++ buildtool.cpp -o btool&lt;br /&gt;
or, if you get errors about gettimeofday:&lt;br /&gt;
    ...\&amp;gt; g++ -DNEED_GETTIMEOFDAY buildtool.cpp -o btool&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can start the build process by simply running btool.&lt;br /&gt;
    ...\&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
Grab a coffee and find something else to do. On an AMD-64 3000+ 1Gb it takes about 70 minutes, but your mileage may vary. The build process can normally continue in the background while you're doing other stuff on your PC.&lt;br /&gt;
&lt;br /&gt;
If everything went well, you should now have you fresh Inkscape in the ...\Inkscape directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Re-building after modifying source modules'''''&lt;br /&gt;
&lt;br /&gt;
If you've already built the source once and done a few changes to source code files, you can do a quick rebuild using many of the files already compiled in the ''build'' directory. Only those that need to be rebuilt will be, and the ''btool'' program automatically figures that out. It will then 'link' the relevant files together and copy them into the ''inkscape'' directory.&lt;br /&gt;
&lt;br /&gt;
To do a quick rebuild, simply go to the directory that contains the source and do the following;&lt;br /&gt;
&lt;br /&gt;
* Delete or rename the ''inkscape'' directory, which contains the previous fully built and linked version of Inkscape&lt;br /&gt;
* Now open a command window and run the following;&lt;br /&gt;
     ...&amp;gt; mingwenv&lt;br /&gt;
     ...&amp;gt; btool&lt;br /&gt;
* Ishmal's build tool should now rebuild the individual files that have changed, along with any extra 'dependencies' these might require. If you've only applied one new patch, it can be done in less than 5 minutes!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Note:''''' It is best not to do a quick rebuild if you have changed the version of libraries in C:\DEVLIBS. This can cause problems, as the files in the ''build'' directory incorporate functions from these libraries, which can change significantly between library versions. You will need to rebuild from scratch (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Rebuilding From Scratch'''''&lt;br /&gt;
&lt;br /&gt;
To rebuild from scratch, you need to clean out any build files. First of all, if you want to keep the previously built version, rename the ''inkscape'' directory. Now open a command window and run the following;&lt;br /&gt;
     ...&amp;gt; mingwenv&lt;br /&gt;
     ...&amp;gt; btool clean&lt;br /&gt;
     ...&amp;gt; btool&lt;br /&gt;
&lt;br /&gt;
==== Dealing With Build Errors ====&lt;br /&gt;
Feel free to add any questions or answers you have in here;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - My firewall software (Comodo's Defense+ component or similar) stopped the process continuing to the next step in the build, because I wasn't there to permit an action and it timed out. What can I do?&lt;br /&gt;
&lt;br /&gt;
'''A1''' - The best thing is to disable stuff like Defense+ (put it in learning mode works) because it will stop any process that is not approved, and building makes new files which can't be approved before they're built. Disabling Comodo's Defense+ does not disable your firewall, either inbound or outbound, but just the part that scans every application for suspicious operations. Other firewalls etc may vary.&lt;br /&gt;
&lt;br /&gt;
'''A2''' - If that doesn't suit, often you can simply run btool again and wait for Defense+ (or similar) to ask for approval for the process, and it will then continue as normal with the build. But remember that approving all the processes involved in the build process once doesn't mean they will all slip through next time.&lt;br /&gt;
&lt;br /&gt;
'''A3''' - This is the more complex way to continue, but may help if you have problems with A2. If you know the stage the process was meant to be up to (look at the output in the command windows and compare to the stages in the ''build.xml'' file), you can start again from there.&lt;br /&gt;
&lt;br /&gt;
You may see something like this in the command window;&lt;br /&gt;
     =============================&lt;br /&gt;
     ## Target : link : link objects and library to create executable&lt;br /&gt;
     ---- task : rc&lt;br /&gt;
     ============ cmd ============&lt;br /&gt;
     windres -o build/inkres.o --include-dir=src src/inkscape.rc&lt;br /&gt;
     =============================&lt;br /&gt;
     ---- task : link&lt;br /&gt;
This will likely be followed by an error message. This means you were at the ''link'' stage&lt;br /&gt;
&lt;br /&gt;
Now simply type;&lt;br /&gt;
     ...&amp;gt;btool ''stage''&lt;br /&gt;
Or in this case&lt;br /&gt;
     ...&amp;gt;btool link&lt;br /&gt;
And the build will continue from there.&lt;br /&gt;
&lt;br /&gt;
After this, you will probably have to step through the remaining stages manually, one by one. The stages can include (see build.xml, where each stage is labelled 'target name=&amp;quot;''target''&amp;quot;') ''init'', ''touchabout'', ''compile'', ''java'', ''lib'', ''i18n'', ''link'', ''linkinkview'', ''dist'', ''dist-all'', ''clean''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - How do I rebuild just one ''file.o'' file? For instance if one particular file has gone wrong, or I want to try patching just one part of the code.&lt;br /&gt;
&lt;br /&gt;
'''A''' - To find the right command for building any particular file in Inkscape, just look in the compile.lst after you have used btool once. Search for the name of the particular file (eg: print.cpp) and you will find the command used to compile it. You'll need to paste this into a text file, remove any carriage reurns and then paste that onto the command line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Q''' - After I patched a file, I left a backup of the old file in the same directory called Copy of{filename}.cpp. The compiler complains about this file when building and stops.&lt;br /&gt;
&lt;br /&gt;
'''A''' - Do not leave anything with a suffix .cpp in the source directories, apart from the original (or patched) source files. The build tool will try to compile everything ending in .cpp and will complain. If you backup an old file in the same directory before patching, call it {filename}.cpp.old or similar.&lt;br /&gt;
&lt;br /&gt;
==== For more information ====&lt;br /&gt;
There is some old information on building Inkscape with either Mingw on Windows, or a cross-compiler on Linux, at http://inkscape.modevia.com/win32_inkscape_org/win32buildnotes.html&lt;br /&gt;
&lt;br /&gt;
=== Create the Setup package for Win32 ===&lt;br /&gt;
&lt;br /&gt;
To create the setup package you need the NSIS installer on your PC. Get that from http://nsis.sf.net .&lt;br /&gt;
You have successfully built Inkscape and everything is in the ...\Inkscape\Inkscape\ directory.&lt;br /&gt;
Open the ...\Inkscape\packaging\win32\inkscape.nsi using the NSIS program and compile the package. Sooo easy :-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== A Note from Jon about UNICODE on Win32 ====&lt;br /&gt;
&lt;br /&gt;
Actually, Microsoft themselves never use _UNICODE, nor it's 'evil' friends TCHAR and _T.&lt;br /&gt;
If it is used, it results in a binary that can not be run on Windows 95/98[[/ME]]. It is more of a &amp;quot;Windows NT only&amp;quot; define.&lt;br /&gt;
&lt;br /&gt;
Microsoft applications like MS Office have been pure 16-bit Unicode internally for years now. Also remember that BSTRs in Win32 are required to have 16-bit Unicode data. So for any COM access on a Win32 box running Win9x[[/ME]] 'multibyte' or '8-bit' COM calls convert all ANSI data to Unicode once you pass things in. To avoid this, Microsoft just keeps data 16-bit Unicode and then translates to local ANSI codepage only when data needs to be passed directly to a Win32 call.&lt;br /&gt;
&lt;br /&gt;
To help developers, Microsoft finally made public their API they had been using. It's [http://www.microsoft.com/globaldev/handson/dev/mslu_announce.mspx &amp;quot;The Microsoft Layer for Unicode&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Although that simplifies things, it's not required. I've done Win32 programs that are 16-bit Unicode and run on Windows 95/98[[/ME]] with no problems years before they released that.&lt;br /&gt;
&lt;br /&gt;
Soo.... _UNICODE can't be used as it makes your binary unusable on Win9x[[/ME]]. Then it turns out that TCHAR and _T can't be used either. (Oh, and MS can't really use them, since Office does run on Win9x[[/ME]]). So just explicitly use some 16-bit datatype for chars. Microsoft is misleading in their documentation when they state that wchar_t is 16-bit. Most other platforms (including Mac OS, Linux, Solaris, BSD, etc) follow the language standard's recommendation and make it 32-bit. So it is best to avoid wchar_t for any real cross-platform code.&lt;br /&gt;
&lt;br /&gt;
So, some general guidelines are:&lt;br /&gt;
* Never define _UNICODE&lt;br /&gt;
* Don't use _T&lt;br /&gt;
* Don't use TCHAR&lt;br /&gt;
* Don't use wchar_t&lt;br /&gt;
* Use some explicit 16-bit type for characters/strings&lt;br /&gt;
** [http://www.icu-project.org/ International Components for Unicode (ICU)] does this&lt;br /&gt;
&lt;br /&gt;
So then it's a simple matter of converting data from the standard UTF-8 GTK+ data to UTF-16 data before passing to Win32-land. &lt;br /&gt;
&lt;br /&gt;
The result? A single binary that executes properly on both [[Win9X/ME]] and [[WinNT/2K/XP]], including full and proper font and filename support.&lt;br /&gt;
&lt;br /&gt;
And, as I've mentioned before, I've actually achieved this for a few different shipping products and projects.&lt;br /&gt;
&lt;br /&gt;
-- [[JonCruz|Jon C]]&lt;br /&gt;
&lt;br /&gt;
=== SVN and Windows ===&lt;br /&gt;
&lt;br /&gt;
If you want to access Inkscapes' subversion repository on SourceForge from Windows, I'd heartily recommend [[TortoiseSVN]].&lt;br /&gt;
It has the SSH stuff built into it so you don't have to mess about with putty, and&lt;br /&gt;
it integrates right into Explorer, so SVN becomes just an extension of the right-click file commands.&lt;br /&gt;
get it from http://tortoisesvn.net/&lt;br /&gt;
&lt;br /&gt;
John&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=36814</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=36814"/>
		<updated>2008-10-15T10:54:49Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
&lt;br /&gt;
- many instances of SP_ACTIVE_DESKTOP were eliminated (although there still remain quite a lot to be removed)&lt;br /&gt;
&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Tweak tool==&lt;br /&gt;
&lt;br /&gt;
Several new modes are added to the Tweak tool for transforming, duplicating, and deleting selected objects using the same &amp;quot;soft brush&amp;quot; metaphor that the path editing and coloring modes use. Using these new modes, it is easy to &amp;quot;sculpt&amp;quot; scatterings of small objects, such as clone tilings, into complex and naturalistic textures.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move in/out 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.&lt;br /&gt;
&lt;br /&gt;
* '''Move 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.&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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. &lt;br /&gt;
&lt;br /&gt;
* '''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. As with regular Duplicate command, duplicating with Tweak tool places the copies right over the originals, and you may need to use the Move jitter mode to ruffle them apart. &lt;br /&gt;
&lt;br /&gt;
: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). &lt;br /&gt;
&lt;br /&gt;
*'''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. &lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 Shift+m, Shift+0	        move mode&lt;br /&gt;
 Shift+i, Shift+1	move in/out mode&lt;br /&gt;
 Shift+z, Shift+2	move jitter mode&lt;br /&gt;
 Shift+&amp;lt;, Shift+&amp;gt;, Shift+3	scale mode&lt;br /&gt;
 Shift+[, Shift+], Shift+4	rotate mode&lt;br /&gt;
 Shift+d, Shift+5	duplicate/delete mode&lt;br /&gt;
 Shift+p, Shift+6	push path mode&lt;br /&gt;
 Shift+s, Shift+7	shrink/grow path mode&lt;br /&gt;
 Shift+a, Shift+8	attract/repel path mode&lt;br /&gt;
 Shift+r, Shift+9	roughen mode&lt;br /&gt;
 Shift+c	        color paint mode&lt;br /&gt;
 Shift+j	        color jitter mode&lt;br /&gt;
&lt;br /&gt;
In Color Paint mode, painting with Shift inverts the color you're applying (e.g. when painting with white, Shift will switch applied color to black; blue, to yellow, etc.).&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': Simulates hand-drawn lines. A set of paramters let you tune the effect. They are all sumerized in this [[:Image:SketchParameters.png|picture]]. &lt;br /&gt;
&lt;br /&gt;
:[[Image:SketchExemple.png|300px]]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': This effect creates fractal pictures (example). To the input shape are added some transformed (rotated/scaled/slanted) copies of it, and then copies of the copies, etc... to get the final shape. The transforms are defined via a path. &lt;br /&gt;
:[[Image:VonKochExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': Creates a knot from a flat self intersecting curve. At each crossing, one string is interrupted to make it look like going under the other. The &amp;quot;sign&amp;quot; of each crossing can be set independantly. &lt;br /&gt;
:[[Image:KnotExample.png|300px]]&lt;br /&gt;
&lt;br /&gt;
:''Known limitation'': can not be applied to groups nor be shared by different objects.&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with ps2pdf from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog which, for multipage PS files, allows you to select the page to open.&lt;br /&gt;
&lt;br /&gt;
==PostScript and EPS export==&lt;br /&gt;
&lt;br /&gt;
The new PS and EPS exporter uses cairo and provides a much better support for various vector features, including '''clipping paths''', '''patterns''', and '''non-ASCII characters'''. Those features that are not supported by the Postscript language, such as transparency, are exported via rasters embedded into Postscript.&lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
The new PDF exporter correctly translates into PDF '''clipping paths''' and '''patterns''' (requires a recent version of cairo).&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before, by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
==PNG export==&lt;br /&gt;
&lt;br /&gt;
PNG export has been updated to include metadata if present in the source SVG.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
* As a file size optimization, Inkscape does not write into SVG some of the stroke properties if the object has &amp;lt;code&amp;gt;stroke:none&amp;lt;/code&amp;gt; and some of the fill properties when it has &amp;lt;code&amp;gt;fill:none&amp;lt;/code&amp;gt;. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
:Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
:Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
:If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;opacity&amp;lt;/code&amp;gt; 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).&lt;br /&gt;
&lt;br /&gt;
*The &amp;lt;code&amp;gt;marker-start&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;marker-mid&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;marker-end&amp;lt;/code&amp;gt; properties are not written if the &amp;lt;code&amp;gt;marker&amp;lt;/code&amp;gt; property is already present with the same value.&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Shell mode==&lt;br /&gt;
&lt;br /&gt;
If you run inkscape with &amp;lt;code&amp;gt;--shell&amp;lt;/code&amp;gt;, it will enter an interactive command line 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:&lt;br /&gt;
&lt;br /&gt;
 $ inkscape --shell&lt;br /&gt;
 Inkscape 0.46+devel interactive shell mode. Type 'quit' to quit.&lt;br /&gt;
 &amp;gt;file.svg --export-pdf=file.pdf&lt;br /&gt;
 &amp;gt;otherfile.svg --export-png=bitmap.png&lt;br /&gt;
 Background RRGGBBAA: ffffff00&lt;br /&gt;
 Area 0:0:744.094:1052.36 exported to 744 x 1052 pixels (90 dpi)&lt;br /&gt;
 Bitmap saved as: bitmap.png&lt;br /&gt;
 &amp;gt;quit&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
Similar to editing the fill or stroke colors by dragging away from the swatch in the status bar, which was added in the last version, 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 twice the original width), dragging below it decreases the width (down to half the original width). With this feature, quick and precise stroke width adjustments are possible without opening any dialogs or menus.&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
There is a new option on the Interface tab, '''Zoom correction factor''', which displays an adjustable ruler. Move the slider until the ruler's on-screen size matches its true size. The resulting conversion factor is used internally when zooming to 1:1 etc. such that objects are displayed in their true size.&lt;br /&gt;
&lt;br /&gt;
== Align and Distribute dialog ==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat all selected objects as a group when aligning (this spares the user the trouble to manually group them, align, and ungroup afterwards).&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* 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. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* Whether or not to snap to '''smooth nodes''' is now an option in the preferences&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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. &lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode &lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=34014</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=34014"/>
		<updated>2008-08-08T21:08:48Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with ps2pdf from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog which, for multipage PS files, allows you to select the page to open. &lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
[this seems no longer to be true, fix it!!! -johan]&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* It is now possible to snap to '''intersections of paths''' (were we previously only snapped to intersections of line-segments)&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* Inkscape is now able to handle paths with only 'movetos', i.e. &amp;quot;M 0,0 M 1,1 M 2,2&amp;quot;. These kind of paths can be used to only show markers on a path without the rest of the path visible.&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Bounding box calculation does not include the invisible objects. (#252547)&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode &lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=33804</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=33804"/>
		<updated>2008-08-06T21:47:09Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
Apart from the regular Bezier mode, the pen tool now provides several new modes:&lt;br /&gt;
&lt;br /&gt;
* '''Spiro mode''': This mode automatically applies the new Spiro Splines LPE (see the section on new effects) to any newly drawn path. As mentioned below, it is not yet possible to preview Spiros before the path is finished.&lt;br /&gt;
&lt;br /&gt;
* '''Zigzag mode''': This mode makes it easy to draw many straight line segments in quick succession by disallowing curves (even when the user drags with the mouse).&lt;br /&gt;
&lt;br /&gt;
* '''Paraxial mode''': In this mode, the user can only create straight line segments that are parallel to one of the coordinate axes. Normally, each line segment is drawn perpendicular to the previous one. The direction of the line segment being drawn can be toggled with Shift. When clicking on the start anchor, the path is closed with an L-shaped segment (the direction of which can also be flipped with Shift).&lt;br /&gt;
&lt;br /&gt;
Furthermore, it is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards [http://wiki.inkscape.org/wiki/index.php/Vector-brushes this blueprint].&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in 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:&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with ps2pdf from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog which, for multipage PS files, allows you to select the page to open. &lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced tablet support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate Layer command===&lt;br /&gt;
&lt;br /&gt;
A new command has been added to the layers menus to allow for duplicating an existing layer with all of its objects.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Command for relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
==Auto relinking clones on Duplicate==&lt;br /&gt;
&lt;br /&gt;
If you turn on the '''When duplicating original+clones: Relink duplicated clones''' option on 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.&lt;br /&gt;
&lt;br /&gt;
==Pattern editing==&lt;br /&gt;
&lt;br /&gt;
When editing pattern fills:&lt;br /&gt;
* The pattern origin and scale handles now snap.&lt;br /&gt;
* The pattern scaling can now be different in X and Y direction. Press '''Ctrl''' to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
==Transform dialog: spacing out option==&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
==Title and Description==&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
==Clone/original visualization==&lt;br /&gt;
&lt;br /&gt;
When you press Shift+D to find and select the original of the selected clone, Inkscape draws a dashed line between the centers of the bounding boxes of the clone and the original. This line disappears after one second.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
* When '''pasting''', previously aligned originals will stay aligned to the grid. The code for this had to be reinvented due to the refactoring&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode &lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=33494</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=33494"/>
		<updated>2008-08-04T21:21:15Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
* Pattern editing&lt;br /&gt;
:* The pattern origin and scale nodes now snap.&lt;br /&gt;
:* The pattern scaling can now be different in X and Y direction. Press control to have a fixed 1:1 ratio scaling (old behavior).&lt;br /&gt;
:* The nodes now display the outline of the unit cell, instead of only a quarter of that cell. So now, a rectangle filled with pattern will have all of the pattern knots in the corners, making it harder to manipulate them. However, the nodes can be dragged outside the rectangle by moving the pattern's origin point.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
[spiro mode, straight line mode in pen]&lt;br /&gt;
&lt;br /&gt;
It is now possible to automatically apply predefined vector brushes to path strokes in pen and pencil tools. This is a first step towards the following blueprint: [[http://wiki.inkscape.org/wiki/index.php/Vector-brushes]]&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
=Transform dialog=&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in Inkscape¹.  But when an effect is really broken, we have to fix it.&lt;br /&gt;
&lt;br /&gt;
[¹ fixme: Shouldn't the above say &amp;quot;it will change editing behaviour in old files&amp;quot; ?  If it changes the appearance, then that's a bug: inkscape should always save SVG that represents the appearance, and should display according to the SVG rather than any inkscape:blah annotations.  --pjrm &amp;lt;br&amp;gt;&lt;br /&gt;
What is meant is the following. Files with LPEs opened in a random viewer will always look the same, regardless of Inkscape version. However, when viewed in Inkscape, the LPE is recalculated. When LPE behavior changes, the appearance will change. --johan]&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Interpolate Subpaths''': [Johan]&lt;br /&gt;
&lt;br /&gt;
* '''Path Length''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Text Label''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with ps2pdf from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog which, for multipage PS files, allows you to select the page to open. &lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==JavaFX export==&lt;br /&gt;
&lt;br /&gt;
[]&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;script&amp;gt; support==&lt;br /&gt;
&lt;br /&gt;
While Inkscape does not yet support SVG scripting via the &amp;lt;script&amp;gt; element, this element is now preserved after editing the file in Inkscape.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced Tablet Support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate layer===&lt;br /&gt;
&lt;br /&gt;
Commands have been added to the layers menus to allow for duplicating an existing layer.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
* Snapping to objects now uses routines from the '''2geom libraries''', which are actively maintained and are less error prone than the old Livarot libraries. This fixes at least two known snapping bugs&lt;br /&gt;
* While drawing and '''constraining to specific angles''' (using CTRL), Inkscape should now only snap to points on the constrained line.&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode &lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool&lt;br /&gt;
&lt;br /&gt;
* The Live Path Effects '''Bend Path''' and '''Pattern along Path''' now work correctly with closed paths.&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=32844</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=32844"/>
		<updated>2008-07-21T21:32:13Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47= &lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
- ratio of code lines and comment lines (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- number of fixme's and todo's (difference with 0.46)&lt;br /&gt;
&lt;br /&gt;
- cairo&lt;br /&gt;
&lt;br /&gt;
- speed improvement? (LPE? bootup?)&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
&lt;br /&gt;
[presets - Aubanel]&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
&lt;br /&gt;
Cut mode works for both selected and not selected objects.&lt;br /&gt;
&lt;br /&gt;
==Pen and Pencil==&lt;br /&gt;
&lt;br /&gt;
[spiro mode]&lt;br /&gt;
&lt;br /&gt;
[stroke shape - max]&lt;br /&gt;
&lt;br /&gt;
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 line. 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.)&lt;br /&gt;
&lt;br /&gt;
==Text tool==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
=Transform dialog=&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in Inkscape¹.  But when an effect is really broken, we have to fix it.&lt;br /&gt;
&lt;br /&gt;
[¹ fixme: Shouldn't the above say &amp;quot;it will change editing behaviour in old files&amp;quot; ?  If it changes the appearance, then that's a bug: inkscape should always save SVG that represents the appearance, and should display according to the SVG rather than any inkscape:blah annotations.  --pjrm &amp;lt;br&amp;gt;&lt;br /&gt;
What is meant is the following. Files with LPEs opened in a random viewer will always look the same, regardless of Inkscape version. However, when viewed in Inkscape, the LPE is recalculated. When LPE behavior changes, the appearance will change. --johan]&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
&lt;br /&gt;
* '''Sketch''': [Johan Engelen]&lt;br /&gt;
&lt;br /&gt;
* '''von Koch''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Knot''': [JF Barraud]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''AngleBisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle through 3 points''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Circle with radius''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Envelope Deformation''' allows the user to deform an object (or a group of object) by deforming its sides. Modifications are done by deforming the 4 Path parameters : Top and Bottom, Left and Right.&lt;br /&gt;
&lt;br /&gt;
* '''Lattice Deformation''' allows the user to deform an object (or a group of object) by moving 16 control points.&lt;br /&gt;
&lt;br /&gt;
* '''Ruler''': [max]&lt;br /&gt;
&lt;br /&gt;
* '''Freehand Shape''': [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for EllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path or Deformations the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*You can as usual enter the group by double-clicking on it. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Live Path Effects stacking==&lt;br /&gt;
&lt;br /&gt;
With Live Path Effects stacking, more than one Live Path Effect can be assigned to an item. A new UI was created to control the stack.&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==PostScript and EPS import==&lt;br /&gt;
&lt;br /&gt;
Inkscape's capability to open or import PS and EPS files now uses Ghostscript instead of pstoedit. If you need to open files of these types, install Ghostscript and make sure the directory with ps2pdf from Ghostscript installation is in your PATH. On opening, you will see a preferences dialog which, for multipage PS files, allows you to select the page to open. &lt;br /&gt;
&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
==PDF import from the command line==&lt;br /&gt;
&lt;br /&gt;
Now you can use, for example,&lt;br /&gt;
&lt;br /&gt;
 inkscape file.pdf --export-plain-svg=file.svg&lt;br /&gt;
&lt;br /&gt;
It will take the first page of the PDF and all the default import options, and save the result to SVG. (Before, it crashed because it tried to open the PDF import preferences dialog and could not do it in the command line mode.) If you try to import PDF without an &amp;lt;code&amp;gt;--export&amp;lt;/code&amp;gt; command, it will show the prefs dialog as before and open the file in the UI.&lt;br /&gt;
&lt;br /&gt;
==HPGL export==&lt;br /&gt;
&lt;br /&gt;
Inkscape can now export to HPGL (Hewlett-Packard Graphics Language). It is a file format that is used for various cutters/plotters.&lt;br /&gt;
&lt;br /&gt;
==DXF export==&lt;br /&gt;
&lt;br /&gt;
DXF export is much faster than in previous versions.&lt;br /&gt;
&lt;br /&gt;
= Autosave =&lt;br /&gt;
&lt;br /&gt;
Autosave has now been added to 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 and each other. Go to Inkscape Preferences, Autosave tab, to enable this feature and specify the backup time interval, the directory, and the maximum number of saved backups (if this number is exceeded, old backups will start to be deleted).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
* [preset filter effects]&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the '''SVG output''' page of Inkscape Preferences dialog, as well as the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
==No more explicit closing line segment==&lt;br /&gt;
Inkscape used to always explicitly write the closing line segment to SVG for closed paths. For example: &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 L 0,0 z&amp;quot;. With the improved SVG path data writing, Inkscape no longer generates this closing line segment, resulting in &amp;quot;M 0,0 L 1,0 L 1,1 L 0,1 z&amp;quot;.&lt;br /&gt;
When SVG path data input contains this explicit closing segment, it is maintained throughout transformations, but is removed after using the node edit tool.&lt;br /&gt;
&lt;br /&gt;
==Horizontal and vertical path segments==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=Other features=&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced Tablet Support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Layers==&lt;br /&gt;
&lt;br /&gt;
===Show/hide other layers===&lt;br /&gt;
&lt;br /&gt;
The layers dialog now allows for hiding or showing all layers other than the current layer. This &amp;quot;solo&amp;quot; feature allows for faster switching between working layers and for quick checking with and without others shown.&lt;br /&gt;
&lt;br /&gt;
===Duplicate layer===&lt;br /&gt;
&lt;br /&gt;
Commands have been added to the layers menus to allow for duplicating an existing layer.&lt;br /&gt;
&lt;br /&gt;
==External image editing and reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
==Relinking clones==&lt;br /&gt;
&lt;br /&gt;
A new command, '''Relink Clone to Copied''' in ''Edit &amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Inkscape Preferences dialog==&lt;br /&gt;
&lt;br /&gt;
This dialog has been rearranged for more logical grouping of options. New pages has been added: Bitmaps (options for the new update-on-file-change and external editor features), UI (options for toolbar icon sizes), and SVG Output (options for SVG formatting, introduced in 0.46 and now editable from the dialog as well). &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
* The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
* The main tools toolbar has been converted to a standard GtkToolbar, removing the problem of it pushing the main window taller. Tools that don't fit automatically flow into a popup menu.&lt;br /&gt;
&lt;br /&gt;
* When torn off, toolbars now keep the size they last had in the main window. They can be resized by docking, sizing the main window, and then undocking agin.&lt;br /&gt;
&lt;br /&gt;
* 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 much precision, this makes adjusting them much easier and faster.&lt;br /&gt;
&lt;br /&gt;
* [the Title and Description fields on the Object Properties dialog - sas]&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* '''Clipping paths and masks''' are now also snappable&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* Holding the shift-key now also disables snapping while dragging '''node-handles'''&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
* '''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.&lt;br /&gt;
&lt;br /&gt;
* '''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).&lt;br /&gt;
&lt;br /&gt;
* File dialogs remember last visited directory&lt;br /&gt;
&lt;br /&gt;
* No more garbage lines in outline mode &lt;br /&gt;
&lt;br /&gt;
* No more artifacts left by the circle cursor in Tweak tool&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=31914</id>
		<title>CompilingFedora</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=31914"/>
		<updated>2008-07-07T20:44:15Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: Removing entries for Fedora 2 &amp;amp; 3; Anyone compiling Inkscape is not using distributions this old&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fedora 8 &amp;amp; 9 ==&lt;br /&gt;
&lt;br /&gt;
Load up a terminal and run the following 4 commands to download the Inkscape sourcecode, install the programs Inkscape needs to compile, and compile and install it, and then run it:&lt;br /&gt;
&lt;br /&gt;
    svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape ; cd inkscape &lt;br /&gt;
&lt;br /&gt;
    sudo yum install ImageMagick-c++-devel ImageMagick-c++ ImageMagick-devel ImageMagick glibmm24-devel libsigc++-devel gtkmm24-devel glibmm24 libsigc++ gtkmm24 intltool gc gc-devel lcms lcms-devel gsl gsl-devel inkscape&lt;br /&gt;
&lt;br /&gt;
    ./automake.sh ; ./configure ; make ; sudo make install&lt;br /&gt;
&lt;br /&gt;
    /usr/local/bin/inkscape&lt;br /&gt;
&lt;br /&gt;
Note: for Fedora 8 you might need to do this before running ./configure&lt;br /&gt;
    export PKG_CONFIG_PATH=&amp;quot;/usr/lib/pkgconfig/&amp;quot;&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=31904</id>
		<title>CompilingFedora</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=CompilingFedora&amp;diff=31904"/>
		<updated>2008-07-07T20:38:02Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Fedora 8 &amp;amp; 9 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Fedora 8 &amp;amp; 9 ==&lt;br /&gt;
&lt;br /&gt;
Load up a terminal and run the following 4 commands to download the Inkscape sourcecode, install the programs Inkscape needs to compile, and compile and install it, and then run it:&lt;br /&gt;
&lt;br /&gt;
    svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape ; cd inkscape &lt;br /&gt;
&lt;br /&gt;
    sudo yum install ImageMagick-c++-devel ImageMagick-c++ ImageMagick-devel ImageMagick glibmm24-devel libsigc++-devel gtkmm24-devel glibmm24 libsigc++ gtkmm24 intltool gc gc-devel lcms lcms-devel gsl gsl-devel inkscape&lt;br /&gt;
&lt;br /&gt;
    ./automake.sh ; ./configure ; make ; sudo make install&lt;br /&gt;
&lt;br /&gt;
    /usr/local/bin/inkscape&lt;br /&gt;
&lt;br /&gt;
Note: for Fedora 8 you might need to do this before running ./configure&lt;br /&gt;
    export PKG_CONFIG_PATH=&amp;quot;/usr/lib/pkgconfig/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Fedora Core 2 for Inkscape 0.40CVS ==&lt;br /&gt;
&lt;br /&gt;
After having the most up to date RPMs for FC2 from fedora updates, this is what I found for compiling Inkscape.&lt;br /&gt;
&lt;br /&gt;
Well...after checking out a clean copy of the inkscape module, autogen.sh will not generate ltmain.sh, so I had to make a softlink to a copy of ltmain.sh, which was located here: /usr/share/libtools/ltmain.sh&lt;br /&gt;
&lt;br /&gt;
So I ran:&lt;br /&gt;
&lt;br /&gt;
   $ ln -s /usr/share/libtools/ltmain.sh ./&lt;br /&gt;
&lt;br /&gt;
Then I ran:&lt;br /&gt;
&lt;br /&gt;
   $ ./autogen.sh&lt;br /&gt;
&lt;br /&gt;
Then to get all the makefiles, I ran:&lt;br /&gt;
&lt;br /&gt;
   $ ./configure&lt;br /&gt;
&lt;br /&gt;
Now need to have Boehm Garbage collector installed. Follow the Boehm Garbage Collector instructions on the [[CompilingInkscape]] page for this to work. After installed, then rerun:&lt;br /&gt;
&lt;br /&gt;
   $ ./configure&lt;br /&gt;
&lt;br /&gt;
For libsigc++2 currently you must download and install: http://sourceforge.net/project/showfiles.php?group_id=1970&lt;br /&gt;
&lt;br /&gt;
Now you need gtkmm 2.4 and glibmm 2.4:&lt;br /&gt;
&lt;br /&gt;
http://ftp.gnome.org/pub/GNOME/sources/glibmm/2.4/&lt;br /&gt;
&lt;br /&gt;
http://ftp.gnome.org/pub/GNOME/sources/gtkmm/2.4/&lt;br /&gt;
&lt;br /&gt;
You need to ./configure; make; make install for libsigc++, glibmm 2.4 and gtkmm 2.4 &lt;br /&gt;
&lt;br /&gt;
Afterwards update your paths and all that and then run ./autogen.sh; ./configure; make; make install on the CVS version of inkscape...&lt;br /&gt;
&lt;br /&gt;
I don't think /usr/local/lib is in /etc/ld.so.conf or /etc/ld.so.conf.d/*.conf by default on FC2...&lt;br /&gt;
Fix that, then `export [[LD_LIBRARY_PATH]]=/usr/local/lib`, then run `ldconfig`, and try running `inkscape`.&lt;br /&gt;
-- Jizzbug&lt;br /&gt;
&lt;br /&gt;
This is what i get now: &lt;br /&gt;
  *** glibc detected *** free(): invalid pointer: 0x0832ce78 ***&lt;br /&gt;
  Emergency save activated!&lt;br /&gt;
-- Confabulator&lt;br /&gt;
&lt;br /&gt;
== Fedora Core 3 and 0.41CVS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mandrake 10.2 b3 and 0.41 Static Builds ==&lt;br /&gt;
&lt;br /&gt;
If I try to run either the .386 or .686 Static Builds of 0.41 on Mandrake 10.2 beta3, I get the above error:&lt;br /&gt;
&lt;br /&gt;
  *** glibc detected *** free(): invalid pointer: 0x0959d210 ***&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;invalid pointer&amp;quot; is a different value for each one, but same error. I don't have the dependencies I need to compile from source. So, I guess I'll wait another few months before trying Inkscape. (I'm so anxious. As an ex-user of Sodipodi, I've been waiting for something that was a bit more user friendly).&lt;br /&gt;
   -- This is almost certainly a GCC bug ([[MikeHearn]])&lt;br /&gt;
&lt;br /&gt;
See [[CompilingFC2]] and [[FC3]] -- those pages can probably be deleted if this one is brought up to date.&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer Documentation]]&lt;br /&gt;
[[Category:Needs Work]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=29254</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=29254"/>
		<updated>2008-05-21T20:37:29Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snap indicator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
Added 4 preset buttons for dip, pen, brush and reed in the toolbox. Clicking one button sets the calligraphic tool with the matching presets.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
Erasing is also limited to the currently selected objects if there are any selected.&lt;br /&gt;
&lt;br /&gt;
=Transform dialog=&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in Inkscape¹.  But when an effect is really broken, we have to fix it.&lt;br /&gt;
&lt;br /&gt;
[¹ fixme: Shouldn't the above say &amp;quot;it will change editing behaviour in old files&amp;quot; ?  If it changes the appearance, then that's a bug: inkscape should always save SVG that represents the appearance, and should display according to the SVG rather than any inkscape:blah annotations.  --pjrm &amp;lt;br&amp;gt;&lt;br /&gt;
What is meant is the following. Files with LPEs opened in a random viewer will always look the same, regardless of Inkscape version. However, when viewed in Inkscape, the LPE is recalculated. When LPE behavior changes, the appearance will change. --johan]&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
[new: sketch, von koch, knot]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for SVGEllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*Original path of the group can as usual be edited by double-clicking. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced Tablet Support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
==External Image Editing and Reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be disabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=29244</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=29244"/>
		<updated>2008-05-21T20:35:39Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
Added 4 preset buttons for dip, pen, brush and reed in the toolbox. Clicking one button sets the calligraphic tool with the matching presets.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
Erasing is also limited to the currently selected objects if there are any selected.&lt;br /&gt;
&lt;br /&gt;
=Transform dialog=&lt;br /&gt;
&lt;br /&gt;
Previously, the '''Apply to each object separately''' checkbox had no effect for the '''Move''' tab. Now, if several objects are selected, this checkbox is on, and &amp;quot;Relative move&amp;quot; is on, each object is shifted relative to the closest selected object on the left (for X) or below (for Y). &lt;br /&gt;
&lt;br /&gt;
For example, if you have a horizontal row of objects and you move them relatively by X=5px with &amp;quot;Apply to each object separately&amp;quot; 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). &lt;br /&gt;
&lt;br /&gt;
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. Order of selecting the objects or z-order does not matter.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in Inkscape¹.  But when an effect is really broken, we have to fix it.&lt;br /&gt;
&lt;br /&gt;
[¹ fixme: Shouldn't the above say &amp;quot;it will change editing behaviour in old files&amp;quot; ?  If it changes the appearance, then that's a bug: inkscape should always save SVG that represents the appearance, and should display according to the SVG rather than any inkscape:blah annotations.  --pjrm &amp;lt;br&amp;gt;&lt;br /&gt;
What is meant is the following. Files with LPEs opened in a random viewer will always look the same, regardless of Inkscape version. However, when viewed in Inkscape, the LPE is recalculated. When LPE behavior changes, the appearance will change. --johan]&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
[new: sketch, von koch, knot]&lt;br /&gt;
&lt;br /&gt;
* '''Perspective paths''': Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective). [max]&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
* '''Construct Grid'''  [johan]&lt;br /&gt;
&lt;br /&gt;
* '''Perpendicular bisector''' [max]&lt;br /&gt;
&lt;br /&gt;
* '''Tangent to a curve''' [max]&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for SVGEllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*Original path of the group can as usual be edited by double-clicking. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced Tablet Support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
==External Image Editing and Reload==&lt;br /&gt;
&lt;br /&gt;
Linked bitmaps have a context menu option to launch editing in an external application. Linked images now will reload when the linked file changes on disk. Both the external editor application and the reload behavior can be controlled by user preferences.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Grids==&lt;br /&gt;
* The dotted rectangular grid now shows small crosses at the intersection points of emphasis lines.&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes. It is now also possible to snap while moving nodes along a vertical or horizontal constraint&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* In the selector tool, snapping while '''skewing ''' or '''constrained translating''' have been improved&lt;br /&gt;
* When creating '''new shapes''', all of their handle points now snap&lt;br /&gt;
* In the document properties dialog, the checkbox for ''' 'always'''' snap has been replaced by two radiobuttons; this should eliminate most of the confusion surrounding this option&lt;br /&gt;
* The code relating to the snapping mechanisms has undergone '''major refactoring''' to make it more reliable and easier to use from a developer's perspective&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, an indicator is displayed at that specific position. For now that indicator is just a cross that disappears in a second. In the future the shape of the indicator will be related to the type of target that has been snapped to. The snapping indicator can be enabled in the Document Properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=28474</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=28474"/>
		<updated>2008-05-04T16:31:14Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snap indicator */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
Added 4 preset buttons for dip, pen, brush and reed in the toolbox. Clicking one button sets the calligraphic tool with the matching presets.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
Erasing is also limited to the currently selected objects if there are any selected.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in Inkscape¹.  But when an effect is really broken, we have to fix it.&lt;br /&gt;
&lt;br /&gt;
[¹ fixme: Shouldn't the above say &amp;quot;it will change editing behaviour in old files&amp;quot; ?  If it changes the appearance, then that's a bug: inkscape should always save SVG that represents the appearance, and should display according to the SVG rather than any inkscape:blah annotations.  --pjrm &amp;lt;br&amp;gt;&lt;br /&gt;
What is meant is the following. Files with LPEs opened in a random viewer will always look the same, regardless of Inkscape version. However, when viewed in Inkscape, the LPE is recalculated. When LPE behavior changes, the appearance will change. --johan]&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
[new: sketch, von koch, knot]&lt;br /&gt;
&lt;br /&gt;
* Perspective paths: Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective).&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for SVGEllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*Original path of the group can as usual be edited by double-clicking. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced Tablet Support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes.&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* Snapping while '''skewing has''' been improved&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
When snapping has occurred, a symbol is drawn at that specific position. For now that symbol is just a cross that is erased again after a second. In the future the shape of the symbol will be related to the type of target that has been snapped to. The snapping indicator can be enabled in the document properties dialog.&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=28464</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=28464"/>
		<updated>2008-05-04T16:24:18Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
Added 4 preset buttons for dip, pen, brush and reed in the toolbox. Clicking one button sets the calligraphic tool with the matching presets.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
Erasing is also limited to the currently selected objects if there are any selected.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in Inkscape¹.  But when an effect is really broken, we have to fix it.&lt;br /&gt;
&lt;br /&gt;
[¹ fixme: Shouldn't the above say &amp;quot;it will change editing behaviour in old files&amp;quot; ?  If it changes the appearance, then that's a bug: inkscape should always save SVG that represents the appearance, and should display according to the SVG rather than any inkscape:blah annotations.  --pjrm &amp;lt;br&amp;gt;&lt;br /&gt;
What is meant is the following. Files with LPEs opened in a random viewer will always look the same, regardless of Inkscape version. However, when viewed in Inkscape, the LPE is recalculated. When LPE behavior changes, the appearance will change. --johan]&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
[new: sketch, von koch, knot]&lt;br /&gt;
&lt;br /&gt;
* Perspective paths: Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective).&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for SVGEllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*Original path of the group can as usual be edited by double-clicking. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced Tablet Support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes.&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* Snapping while '''skewing has''' been improved&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
[mention that it exist, and the different snaps that are indicated]&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=28454</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=28454"/>
		<updated>2008-05-04T16:23:57Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Refactoring effort=&lt;br /&gt;
[mention the 'main' goal of 0.47 and list which things have been refactored and the benefits/new features/different workflow? --johan]&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display, flashing - johan]&lt;br /&gt;
* 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).&lt;br /&gt;
* Snapping has been improved (more details in Snapping below)&lt;br /&gt;
* When dragging a node '''handle with Ctrl''', 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).&lt;br /&gt;
* The behavior of the buttons/shortucts that make a node smooth or cusp has been improved:&lt;br /&gt;
:* If a node is already 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.&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
==Calligraphy tool ==&lt;br /&gt;
Added 4 preset buttons for dip, pen, brush and reed in the toolbox. Clicking one button sets the calligraphic tool with the matching presets.&lt;br /&gt;
&lt;br /&gt;
==Paint Bucket tool==&lt;br /&gt;
* Paint Bucket is now more tightly integrated with potrace.  As a result, memory and CPU usage on each fill operation have been reduced significantly.&lt;br /&gt;
&lt;br /&gt;
==Eraser Tool==&lt;br /&gt;
A new eraser tool has been added. It has two main modes:&lt;br /&gt;
* Delete-mode where any shape touched by the tool is deleted completely. This operation is in line with &amp;quot;vector&amp;quot; editing.&lt;br /&gt;
* Cut mode where erasing acts similar to erasing in a standard bitmap editor.&lt;br /&gt;
Erasing is also limited to the currently selected objects if there are any selected.&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
== Notable bug fixes and effect changes==&lt;br /&gt;
We try to refrain from changing the behavior of LPE's, because it will change appearance in old files when opened in Inkscape¹.  But when an effect is really broken, we have to fix it.&lt;br /&gt;
&lt;br /&gt;
[¹ fixme: Shouldn't the above say &amp;quot;it will change editing behaviour in old files&amp;quot; ?  If it changes the appearance, then that's a bug: inkscape should always save SVG that represents the appearance, and should display according to the SVG rather than any inkscape:blah annotations.  --pjrm &amp;lt;br&amp;gt;&lt;br /&gt;
What is meant is the following. Files with LPEs opened in a random viewer will always look the same, regardless of Inkscape version. However, when viewed in Inkscape, the LPE is recalculated. When LPE behavior changes, the appearance will change. --johan]&lt;br /&gt;
&lt;br /&gt;
* The Pattern Along Path effect used to stretch the pattern across discontinuities. This has been fixed; now it treats a discontinuous path as a group of continuous paths and applied the effect separately to each.&lt;br /&gt;
&lt;br /&gt;
==New effects==&lt;br /&gt;
[new: sketch, von koch, knot]&lt;br /&gt;
&lt;br /&gt;
* Perspective paths: Draw an arbitrary path as if viewed in perspective. This is work in progress. Known limitations (among others): It can only use the first perspective that exists in the document defs, and the perspective cannot be adapted interactively yet (the effect must be removed and reapplied after modifying the perspective).&lt;br /&gt;
&lt;br /&gt;
* '''Spiro splines''' are a novel way of defining curvilinear paths [http://www.levien.com/spiro/ 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:To create a Spiro path, select any path and assign the &amp;quot;Spiro spline&amp;quot; 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:&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* 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.&lt;br /&gt;
&lt;br /&gt;
:* Half-smooth nodes - those with one Bezier handle collinear with a straight line segment on the other hand - become &amp;quot;left&amp;quot; or &amp;quot;right&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
: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. &lt;br /&gt;
&lt;br /&gt;
:Some configurations of points do not converge and produce wild loops and spirals instead of a smooth curve. According to Raph, &amp;quot;The spline solver in this release is _not_ numerically robust. When you start drawing random points, you'll quickly run into divergence. However, &amp;quot;sensible&amp;quot; plates based on real fonts usually converge.&amp;quot; Avoid too sharp changes in direction between points to prevent divergence. Hopefully, the robustness of the algorithm will be improved in future releases.&lt;br /&gt;
&lt;br /&gt;
: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 as it is a distraction. 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. &lt;br /&gt;
&lt;br /&gt;
: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.&lt;br /&gt;
&lt;br /&gt;
==New features==&lt;br /&gt;
* The '''Paste Path Effect''' command is enabled to assign the path effect of the clipboard to any number of paths, going recursively into groups if necessary.&lt;br /&gt;
&lt;br /&gt;
* A new command, '''Remove path effect''' removes any path effects from all selected objects, going recursively into groups if necessary. &lt;br /&gt;
&lt;br /&gt;
* Along with the commands to open the path effects dialog and to paste path effects, the three commands were collected in a submenu under Path menu.&lt;br /&gt;
&lt;br /&gt;
* Live path effects can now be assigned to the sides of a 3D box (use Ctrl+click to select individual sides).&lt;br /&gt;
&lt;br /&gt;
* The Pen and Pencil tools now correctly work with paths with LPEs: you can continue such a path or add a new subpath to it by drawing with Shift, all preserving the effect applied to it.&lt;br /&gt;
&lt;br /&gt;
* Path type parameters can now link to existing shapes &amp;lt;b&amp;gt;and text&amp;lt;/b&amp;gt;, like clones do. Now it is possible to use text as input for the Pattern Along Path effect for example!&lt;br /&gt;
&lt;br /&gt;
* Lib2geom now has an implementation for SVGEllipticalArc. For Inkscape, this means that it is now possible to directly copy-paste ellipse shapes on path parameters (e.g. 'pattern' in Pattern along Path), without the need to convert the ellipse object to path first. [needs coding and checking]&lt;br /&gt;
&lt;br /&gt;
==Live Path Effect for groups==&lt;br /&gt;
&lt;br /&gt;
LPE can now be assigned to a group. For most LPE, the effect is applied recursively but for Bend Path the result is more powerful : the distortion applies on the whole group. &lt;br /&gt;
&lt;br /&gt;
*Original path of the group can as usual be edited by double-clicking. &lt;br /&gt;
*It applies recursively, this means that a LPE can be assigned to groups of groups &lt;br /&gt;
*The Effect can be applied definitively with &amp;quot;Convert Object to path&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Arrange &amp;gt; Restack''' extension restacks the Z-order of selected objects, from left to right, top to bottom (or vice versa), with radial outward or inward or by an arbitrary angle, specifying the base point for comparison (top, left, middle, etc.).&lt;br /&gt;
* The improved '''Modify Path &amp;gt; Add Nodes''' extension now also allows segments to be divided into a given number of subsegments.&lt;br /&gt;
* The new '''Render &amp;gt; Alphabet Soup''' extension is a vector rework of Matt Chrisholm's GPLed script [http://www.theory.org/artprojects/alphabetsoup/main.html]. Alphabet Soup randomly mashes glyph-elements together to make exotic looking text.&lt;br /&gt;
* The new '''Render &amp;gt; 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 customisable line width. All like elements (eg x-axis subminor divisions) are put into subgroups together. A proper border is also drawn, with an independent line thickness.&lt;br /&gt;
* The new '''Render &amp;gt; Polar Grid''' extension plots a polar co-ordinate grid, with options for arbitrary-base logarithmic subdivisions, clutter-reduction around the origin, circumferential labels and custom line widths.&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
&lt;br /&gt;
==API changes==&lt;br /&gt;
&lt;br /&gt;
While the &amp;quot;Live preview&amp;quot; checkbox is useful for most effects, for some it just does not make sense. Now, you can add the attribute &amp;lt;code&amp;gt;needs-live-preview=&amp;quot;false&amp;quot;&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;effect&amp;lt;/code&amp;gt; element in the .inx file of the effect to suppress this checkbox for your effect.&lt;br /&gt;
&lt;br /&gt;
Parameters passed to extensions (via the &amp;lt;param&amp;gt; element) now have a new boolean attribute - &amp;lt;code&amp;gt;gui-hidden&amp;lt;/code&amp;gt; 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.&lt;br /&gt;
&lt;br /&gt;
All '''.inx''' files are now properly formatted XML files with its own namespace of: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.inkscape.org/namespace/inkscape/extension&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; and a Relax NG schema to define it. More information can be found in the [[Extensions]] Article.&lt;br /&gt;
&lt;br /&gt;
=SVG output=&lt;br /&gt;
&lt;br /&gt;
==Optimized CSS properties==&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Specifically, if stroke:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 stroke-width&lt;br /&gt;
 stroke-linecap&lt;br /&gt;
 stroke-linejoin&lt;br /&gt;
 stroke-miterlimit&lt;br /&gt;
 stroke-opacity&lt;br /&gt;
 stroke-dasharray&lt;br /&gt;
 stroke-dashoffset&lt;br /&gt;
&lt;br /&gt;
Note that this does not include marker properties, which means you can still have markers on a path without visible stroke.&lt;br /&gt;
&lt;br /&gt;
If fill:none, the following properties do not get written to SVG:&lt;br /&gt;
&lt;br /&gt;
 fill-opacity&lt;br /&gt;
 fill-rule&lt;br /&gt;
&lt;br /&gt;
==Optimized path data==&lt;br /&gt;
&lt;br /&gt;
In this version, the size of the path data written in the &amp;lt;code&amp;gt;d=&amp;lt;/code&amp;gt; attribute of &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; elements is reduced by about 10%. Inkscape generates the shortest possible path strings by avoiding repeated operators and using relative coordinates (when it helps).&lt;br /&gt;
&lt;br /&gt;
This is controlled by the following attributes in &amp;lt;code&amp;gt;group id=&amp;quot;svgoutput&amp;quot;&amp;lt;/code&amp;gt; in your preferences.xml file:&lt;br /&gt;
&lt;br /&gt;
* allowrelativecoordinates (default 1) to switch relative coordinates on (1) or off (0)&lt;br /&gt;
* forcerepeatcommands (default 0) to force repeating operators (1) or allow use of the more compact representation without repeated operators (0)&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
==Filters can be disabled==&lt;br /&gt;
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 its menu.  This provides an intermediate step between &amp;quot;normal&amp;quot; and &amp;quot;outline&amp;quot; view modes.&lt;br /&gt;
&lt;br /&gt;
The Toggle view command in the Display mode submenu (Ctrl+keypad 5) toggles between the outline view and either regular or no-filters view, depending on which was used most recent.&lt;br /&gt;
&lt;br /&gt;
==Native file dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Clipboard enhancements==&lt;br /&gt;
&lt;br /&gt;
The clipboard used by Inkscape is now system-wide instead of being confined to a single instance of the application. Copied elements are exported to the clipboard using all the available output formats. SVG data can be pasted into other applications supporting one of Inkscape's output formats, and SVG data provided by other applications can be pasted into Inkscape.&lt;br /&gt;
&lt;br /&gt;
If you copy a string that can be interpreted as a hexadecimal color specification, i.e. 2f7ab4 or #014522b0, and then paste it into Inkscape, the fill of the selected objects will change to the given color. This is especially useful when working with HTML pages.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[editable in node tool - johan]&lt;br /&gt;
&lt;br /&gt;
==Stroke width changeable by dragging==&lt;br /&gt;
&lt;br /&gt;
[bbyak]&lt;br /&gt;
&lt;br /&gt;
==Enhanced Tablet Support==&lt;br /&gt;
&lt;br /&gt;
===Input device tool switching===&lt;br /&gt;
&lt;br /&gt;
Tablets and other input devices that report separate hardware are now recognized and current tool and/or settings can be set to switch in response to the physical tool being used.&lt;br /&gt;
&lt;br /&gt;
===Extended input device configuration===&lt;br /&gt;
&lt;br /&gt;
The stock Input Devices dialog has been replaced with a completely redone version that provides a more useful representation of settings. It also contains a simple area for testing different inputs of different devices.&lt;br /&gt;
&lt;br /&gt;
Additionally hardware setup itself has been separated from general settings to allow for easier dynamic switching of settings appropriate to the task at hand.&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels.&lt;br /&gt;
&lt;br /&gt;
==Swatches==&lt;br /&gt;
&lt;br /&gt;
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 to show a tool tip is difficult.&lt;br /&gt;
&lt;br /&gt;
==Toolbars==&lt;br /&gt;
&lt;br /&gt;
The toolbar icon sizes for the three main toolbars are now separately configurable and to a few different sizes. This allows users to get a smaller UI on certain systems, including Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
&lt;br /&gt;
==Guides==&lt;br /&gt;
&lt;br /&gt;
There is now an option to treat groups as single objects during conversion to guides (as opposed to converting each object inside the group separately).&lt;br /&gt;
&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes.&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
* Snapping while skewing has been improved&lt;br /&gt;
&lt;br /&gt;
==Snap indicator==&lt;br /&gt;
[mention that it exist, and the different snaps that are indicated]&lt;br /&gt;
&lt;br /&gt;
=Notable bug fixes=&lt;br /&gt;
&lt;br /&gt;
* 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 &amp;quot;Filter general settings&amp;quot; tab of the Filter Effects dialog.&lt;br /&gt;
&lt;br /&gt;
: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 bbox for selection of the export area; this means that you can now export a blurred object to bitmap without any clipping of the blur.&lt;br /&gt;
&lt;br /&gt;
* Several fixes allows Inkscape to correctly render and edit SVG files that use &amp;lt;code&amp;gt;currentColor&amp;lt;/code&amp;gt; in objects' style (this includes files created by gnuplot).&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
	<entry>
		<id>https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=24174</id>
		<title>Release notes/0.47</title>
		<link rel="alternate" type="text/html" href="https://wiki.inkscape.org/wiki/index.php?title=Release_notes/0.47&amp;diff=24174"/>
		<updated>2008-03-12T10:00:02Z</updated>

		<summary type="html">&lt;p&gt;Dvlierop: /* Snapping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Inkscape 0.47=&lt;br /&gt;
'''(not released yet)'''&lt;br /&gt;
&lt;br /&gt;
=Tools=&lt;br /&gt;
&lt;br /&gt;
==Node tool==&lt;br /&gt;
&lt;br /&gt;
* [helper path display - johan]&lt;br /&gt;
* on-canvas mask/clip edit - johan&lt;br /&gt;
* snapping has been improved (more details in the snapping paragraph)&lt;br /&gt;
&lt;br /&gt;
=Live path effects=&lt;br /&gt;
&lt;br /&gt;
[sketch, von koch, ...]&lt;br /&gt;
&lt;br /&gt;
=Import/Export=&lt;br /&gt;
==Corel DRAW files import==&lt;br /&gt;
&lt;br /&gt;
Now Inkscape can import more Corel DRAW files of following types:&lt;br /&gt;
&lt;br /&gt;
* Corel DRAW Compressed Exchange files (CCX)&lt;br /&gt;
* Corel DRAW 7-X4 Template files (CDT)&lt;br /&gt;
* Corel DRAW Presentation Exchange files (CMX)&lt;br /&gt;
&lt;br /&gt;
Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==sK1 files import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import sK1 files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==CGM import==&lt;br /&gt;
&lt;br /&gt;
Inkscape uses UniConvertor to import Computer Graphics Metafile (CGM) files. Text objects are not supported as of UniConvertor 1.1.1.&lt;br /&gt;
&lt;br /&gt;
==PDF export==&lt;br /&gt;
&lt;br /&gt;
With PDF export, it is now possible to make the PDF page the size of the entire drawing, instead of the same as SVG page as before by the &amp;quot;Export drawing, not page&amp;quot; checkbox in PDF export options. Also, you can export a single object from a complex document to PDF if you specify the ID of that object in the &amp;quot;Limit export to the object with ID&amp;quot; field; the page of such PDF will be the same size as the bounding box of that object and will show only that object (all others will be hidden).&lt;br /&gt;
&lt;br /&gt;
The same capabilities are available from the command line by using &amp;lt;code&amp;gt;--export-area-drawing&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;--export-id=ID&amp;lt;/code&amp;gt; parameters with &amp;lt;code&amp;gt;--export-pdf&amp;lt;/code&amp;gt; (previously, they only worked for PNG export).&lt;br /&gt;
&lt;br /&gt;
=Extension effects=&lt;br /&gt;
==New and improved effects==&lt;br /&gt;
&lt;br /&gt;
* The new '''Text &amp;gt; Convert to Braille''' extension recodes English (or just Latin letters) text to [http://en.wikipedia.org/wiki/Braille Braille] code created for visually impaired people.&lt;br /&gt;
&lt;br /&gt;
=User interface=&lt;br /&gt;
==Native File Dialogs for Windows==&lt;br /&gt;
The windows builds of inkscape now have Windows-native file dialogs to keep consistency with other windows applications.&lt;br /&gt;
&lt;br /&gt;
==Masks and clipping paths==&lt;br /&gt;
&lt;br /&gt;
[johan]&lt;br /&gt;
&lt;br /&gt;
==Dropper tool==&lt;br /&gt;
&lt;br /&gt;
The confusing icons on buttons in the controls bar of the Dropper tool (pick/assign opacity) are replaced by text labels. &lt;br /&gt;
&lt;br /&gt;
=Grids, guides, snapping=&lt;br /&gt;
==Snapping==&lt;br /&gt;
Snapping has been implemented or improved in these areas:&lt;br /&gt;
* The '''node tool''' now snaps to any unselected node (cusp or smooth) within the path that's being edited, and to cusp nodes of other paths. It also snaps to the path itself, but only to the stationary segments in between two unselected nodes.&lt;br /&gt;
* The object snapper now also allows to snap to the '''page border'''&lt;br /&gt;
&lt;br /&gt;
= Previous releases =&lt;br /&gt;
&lt;br /&gt;
* [[ReleaseNotes046]]&lt;br /&gt;
* [[ReleaseNotes045]]&lt;br /&gt;
* [[ReleaseNotes044]]&lt;br /&gt;
* [[ReleaseNotes043]]&lt;br /&gt;
* [[ReleaseNotes042]]&lt;br /&gt;
* [[ReleaseNotes041]]&lt;br /&gt;
* [[ReleaseNotes040]]&lt;br /&gt;
* [[ReleaseNotes039]]&lt;br /&gt;
* [[ReleaseNotes038]]&lt;br /&gt;
* [[ReleaseNotes037]]&lt;br /&gt;
* [[ReleaseNotes036]]&lt;br /&gt;
* [[ReleaseNotes035]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Marketing]]&lt;/div&gt;</summary>
		<author><name>Dvlierop</name></author>
	</entry>
</feed>